Merge "Add comments to EditPage::getBaseRevision()"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 25 Nov 2015 22:04:57 +0000 (22:04 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 25 Nov 2015 22:04:57 +0000 (22:04 +0000)
168 files changed:
RELEASE-NOTES-1.27
Rakefile [new file with mode: 0644]
autoload.php
composer.json
includes/Block.php
includes/GlobalFunctions.php
includes/Import.php
includes/Revision.php
includes/api/ApiBase.php
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryFilearchive.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisionsBase.php
includes/db/DatabasePostgres.php
includes/externalstore/ExternalStoreMwstore.php
includes/filebackend/FSFile.php
includes/filebackend/FileBackendStore.php
includes/filebackend/FileOp.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/filejournal/FileJournal.php
includes/filebackend/lockmanager/DBLockManager.php
includes/filebackend/lockmanager/LockManager.php
includes/filerepo/file/ForeignAPIFile.php
includes/jobqueue/JobQueueDB.php
includes/jobqueue/JobQueueRedis.php
includes/password/PasswordFactory.php
includes/upload/UploadStash.php
includes/utils/IP.php
includes/utils/UIDGenerator.php
maintenance/benchmarks/bench_Wikimedia_base_convert.php [new file with mode: 0644]
maintenance/benchmarks/bench_wfBaseConvert.php [deleted file]
resources/lib/oojs-ui/i18n/bs.json
resources/lib/oojs-ui/i18n/hr.json
resources/lib/oojs-ui/i18n/pl.json
resources/lib/oojs-ui/oojs-ui-apex-noimages.css
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/apex/icons-interactions.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons.json
resources/lib/oojs-ui/themes/apex/images/icons/beta-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/beta-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/beta.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/beta.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clear-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clear-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clear.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clear.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clock-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clock-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clock.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/clock.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/heart-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/heart-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/heart.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/heart.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/key-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/remove.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/remove.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trash.png
resources/lib/oojs-ui/themes/apex/images/icons/trash.svg
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.svg
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.svg
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons.json
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-destructive.svg [new file with mode: 0644]
tests/parser/parserTest.inc
tests/phpunit/includes/filebackend/FileBackendTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/utils/UIDGeneratorTest.php

index 6850e2b..c66da4f 100644 (file)
@@ -155,6 +155,7 @@ changes to languages because of Phabricator reports.
   ResourceLoaderContext instance is deprecated.
 * ResourceLoader::getLessCompiler() now takes an optional parameter of
   additional LESS variables to set for the compiler.
+* wfBaseConvert() marked as deprecated, use Wikimedia\base_convert() directly instead.
 
 == Compatibility ==
 
diff --git a/Rakefile b/Rakefile
new file mode 100644 (file)
index 0000000..6eef121
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,14 @@
+require 'bundler/setup'
+
+require 'rubocop/rake_task'
+RuboCop::RakeTask.new(:rubocop) do |task|
+  # if you use mediawiki-vagrant, rubocop will by default use it's .rubocop.yml
+  # the next line makes it explicit that you want .rubocop.yml from the directory
+  # where `bundle exec rake` is executed
+  task.options = ['-c', '.rubocop.yml']
+end
+
+task default: [:test]
+
+desc 'Run all build/tests commands (CI entry point)'
+task test: [:rubocop]
index 2522c56..2844dc7 100644 (file)
@@ -164,7 +164,7 @@ $wgAutoloadLocalClasses = array(
        'BenchIfSwitch' => __DIR__ . '/maintenance/benchmarks/bench_if_switch.php',
        'BenchStrtrStrReplace' => __DIR__ . '/maintenance/benchmarks/bench_strtr_str_replace.php',
        'BenchUtf8TitleCheck' => __DIR__ . '/maintenance/benchmarks/bench_utf8_title_check.php',
-       'BenchWfBaseConvert' => __DIR__ . '/maintenance/benchmarks/bench_wfBaseConvert.php',
+       'BenchWikimediaBaseConvert' => __DIR__ . '/maintenance/benchmarks/bench_Wikimedia_base_convert.php',
        'BenchWfIsWindows' => __DIR__ . '/maintenance/benchmarks/bench_wfIsWindows.php',
        'BenchmarkDeleteTruncate' => __DIR__ . '/maintenance/benchmarks/bench_delete_truncate.php',
        'BenchmarkHooks' => __DIR__ . '/maintenance/benchmarks/benchmarkHooks.php',
index e203cf7..d90d8fc 100644 (file)
@@ -21,7 +21,7 @@
                "ext-iconv": "*",
                "liuggio/statsd-php-client": "1.0.16",
                "mediawiki/at-ease": "1.1.0",
-               "oojs/oojs-ui": "0.13.3",
+               "oojs/oojs-ui": "0.14.0",
                "oyejorge/less.php": "1.7.0.9",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
index b57b3e8..4729f50 100644 (file)
@@ -308,8 +308,8 @@ class Block {
                        if ( $block->getType() == self::TYPE_RANGE ) {
                                # This is the number of bits that are allowed to vary in the block, give
                                # or take some floating point errors
-                               $end = wfBaseconvert( $block->getRangeEnd(), 16, 10 );
-                               $start = wfBaseconvert( $block->getRangeStart(), 16, 10 );
+                               $end = Wikimedia\base_convert( $block->getRangeEnd(), 16, 10 );
+                               $start = Wikimedia\base_convert( $block->getRangeStart(), 16, 10 );
                                $size = log( $end - $start + 1, 2 );
 
                                # This has the nice property that a /32 block is ranked equally with a
index 9566069..43b936b 100644 (file)
@@ -3330,6 +3330,8 @@ function wfRelativePath( $path, $from ) {
  * Supports base 2 through 36; digit values 10-36 are represented
  * as lowercase letters a-z. Input is case-insensitive.
  *
+ * @deprecated 1.27 Use Wikimedia\base_convert() directly
+ *
  * @param string $input Input number
  * @param int $sourceBase Base of the input number
  * @param int $destBase Desired base of the output
index f0576d7..519f74a 100644 (file)
@@ -1499,7 +1499,7 @@ class WikiRevision {
         */
        function getSha1() {
                if ( $this->sha1base36 ) {
-                       return wfBaseConvert( $this->sha1base36, 36, 16 );
+                       return Wikimedia\base_convert( $this->sha1base36, 36, 16 );
                }
                return false;
        }
index 3b98a65..1d7ac72 100644 (file)
@@ -1526,7 +1526,7 @@ class Revision implements IDBAccessObject {
         * @return string
         */
        public static function base36Sha1( $text ) {
-               return wfBaseConvert( sha1( $text ), 16, 36, 31 );
+               return Wikimedia\base_convert( sha1( $text ), 16, 36, 31 );
        }
 
        /**
index 1227899..8e5cdcc 100644 (file)
  * @ingroup API
  */
 abstract class ApiBase extends ContextSource {
-       // These constants allow modules to specify exactly how to treat incoming parameters.
 
-       // Default value of the parameter
+       /**
+        * @name Constants for ::getAllowedParams() arrays
+        * These constants are keys in the arrays returned by ::getAllowedParams()
+        * and accepted by ::getParameterFromSettings() that define how the
+        * parameters coming in from the request are to be interpreted.
+        * @{
+        */
+
+       /** (null|boolean|integer|string) Default value of the parameter. */
        const PARAM_DFLT = 0;
-       // Boolean, do we accept more than one item for this parameter (e.g.: titles)?
+
+       /** (boolean) Accept multiple pipe-separated values for this parameter (e.g. titles)? */
        const PARAM_ISMULTI = 1;
-       // Can be either a string type (e.g.: 'integer') or an array of allowed values
+
+       /**
+        * (string|string[]) Either an array of allowed value strings, or a string
+        * type as described below. If not specified, will be determined from the
+        * type of PARAM_DFLT.
+        *
+        * Supported string types are:
+        * - boolean: A boolean parameter, returned as false if the parameter is
+        *   omitted and true if present (even with a falsey value, i.e. it works
+        *   like HTML checkboxes). PARAM_DFLT must be boolean false, if specified.
+        *   Cannot be used with PARAM_ISMULTI.
+        * - integer: An integer value. See also PARAM_MIN, PARAM_MAX, and
+        *   PARAM_RANGE_ENFORCE.
+        * - limit: An integer or the string 'max'. Default lower limit is 0 (but
+        *   see PARAM_MIN), and requires that PARAM_MAX and PARAM_MAX2 be
+        *   specified. Cannot be used with PARAM_ISMULTI.
+        * - namespace: An integer representing a MediaWiki namespace.
+        * - NULL: Any string.
+        * - password: Any non-empty string. Input value is private or sensitive.
+        *   <input type="password"> would be an appropriate HTML form field.
+        * - string: Any non-empty string, not expected to be very long or contain newlines.
+        *   <input type="text"> would be an appropriate HTML form field.
+        * - submodule: The name of a submodule of this module, see PARAM_SUBMODULE_MAP.
+        * - text: Any non-empty string, expected to be very long or contain newlines.
+        *   <textarea> would be an appropriate HTML form field.
+        * - timestamp: A timestamp in any format recognized by MWTimestamp, or the
+        *   string 'now' representing the current timestamp. Will be returned in
+        *   TS_MW format.
+        * - user: A MediaWiki username. Will be returned normalized but not canonicalized.
+        * - upload: An uploaded file. Will be returned as a WebRequestUpload object.
+        *   Cannot be used with PARAM_ISMULTI.
+        */
        const PARAM_TYPE = 2;
-       // Max value allowed for a parameter. Only applies if TYPE='integer'
+
+       /** (integer) Max value allowed for the parameter, for PARAM_TYPE 'integer' and 'limit'. */
        const PARAM_MAX = 3;
-       // Max value allowed for a parameter for bots and sysops. Only applies if TYPE='integer'
+
+       /**
+        * (integer) Max value allowed for the parameter for users with the
+        * apihighlimits right, for PARAM_TYPE 'limit'.
+        */
        const PARAM_MAX2 = 4;
-       // Lowest value allowed for a parameter. Only applies if TYPE='integer'
+
+       /** (integer) Lowest value allowed for the parameter, for PARAM_TYPE 'integer' and 'limit'. */
        const PARAM_MIN = 5;
-       // Boolean, do we allow the same value to be set more than once when ISMULTI=true
+
+       /** (boolean) Allow the same value to be set more than once when PARAM_MULTI is true? */
        const PARAM_ALLOW_DUPLICATES = 6;
-       // Boolean, is the parameter deprecated (will show a warning)
+
+       /** (boolean) Is the parameter deprecated (will show a warning)? */
        const PARAM_DEPRECATED = 7;
-       /// @since 1.17
-       const PARAM_REQUIRED = 8; // Boolean, is the parameter required?
-       /// @since 1.17
-       // Boolean, if MIN/MAX are set, enforce (die) these?
-       // Only applies if TYPE='integer' Use with extreme caution
+
+       /**
+        * (boolean) Is the parameter required?
+        * @since 1.17
+        */
+       const PARAM_REQUIRED = 8;
+
+       /**
+        * (boolean) For PARAM_TYPE 'integer', enforce PARAM_MIN and PARAM_MAX?
+        * @since 1.17
+        */
        const PARAM_RANGE_ENFORCE = 9;
-       /// @since 1.25
-       // Specify an alternative i18n message for this help parameter.
-       // Value is $msg for ApiBase::makeMessage()
+
+       /**
+        * (string|array|Message) Specify an alternative i18n documentation message
+        * for this parameter. Default is apihelp-{$path}-param-{$param}.
+        * @since 1.25
+        */
        const PARAM_HELP_MSG = 10;
-       /// @since 1.25
-       // Specify additional i18n messages to append to the normal message. Value
-       // is an array of $msg for ApiBase::makeMessage()
+
+       /**
+        * ((string|array|Message)[]) Specify additional i18n messages to append to
+        * the normal message for this parameter.
+        * @since 1.25
+        */
        const PARAM_HELP_MSG_APPEND = 11;
-       /// @since 1.25
-       // Specify additional information tags for the parameter. Value is an array
-       // of arrays, with the first member being the 'tag' for the info and the
-       // remaining members being the values. In the help, this is formatted using
-       // apihelp-{$path}-paraminfo-{$tag}, which is passed $1 = count, $2 =
-       // comma-joined list of values, $3 = module prefix.
+
+       /**
+        * (array) Specify additional information tags for the parameter. Value is
+        * an array of arrays, with the first member being the 'tag' for the info
+        * and the remaining members being the values. In the help, this is
+        * formatted using apihelp-{$path}-paraminfo-{$tag}, which is passed
+        * $1 = count, $2 = comma-joined list of values, $3 = module prefix.
+        * @since 1.25
+        */
        const PARAM_HELP_MSG_INFO = 12;
-       /// @since 1.25
-       // When PARAM_TYPE is an array, this may be an array mapping those values
-       // to page titles which will be linked in the help.
+
+       /**
+        * (string[]) When PARAM_TYPE is an array, this may be an array mapping
+        * those values to page titles which will be linked in the help.
+        * @since 1.25
+        */
        const PARAM_VALUE_LINKS = 13;
-       /// @since 1.25
-       // When PARAM_TYPE is an array, this is an array mapping those values to
-       // $msg for ApiBase::makeMessage(). Any value not having a mapping will use
-       // apihelp-{$path}-paramvalue-{$param}-{$value} is used.
+
+       /**
+        * ((string|array|Message)[]) When PARAM_TYPE is an array, this is an array
+        * mapping those values to $msg for ApiBase::makeMessage(). Any value not
+        * having a mapping will use apihelp-{$path}-paramvalue-{$param}-{$value}.
+        * @since 1.25
+        */
        const PARAM_HELP_MSG_PER_VALUE = 14;
-       /// @since 1.26
-       // When PARAM_TYPE is 'submodule', map parameter values to submodule paths.
-       // Default is to use all modules in $this->getModuleManager() in the group
-       // matching the parameter name.
+
+       /**
+        * (string[]) When PARAM_TYPE is 'submodule', map parameter values to
+        * submodule paths. Default is to use all modules in
+        * $this->getModuleManager() in the group matching the parameter name.
+        * @since 1.26
+        */
        const PARAM_SUBMODULE_MAP = 15;
-       /// @since 1.26
-       // When PARAM_TYPE is 'submodule', used to indicate the 'g' prefix added by
-       // ApiQueryGeneratorBase (and similar if anything else ever does that).
+
+       /**
+        * (string) When PARAM_TYPE is 'submodule', used to indicate the 'g' prefix
+        * added by ApiQueryGeneratorBase (and similar if anything else ever does that).
+        * @since 1.26
+        */
        const PARAM_SUBMODULE_PARAM_PREFIX = 16;
 
-       const LIMIT_BIG1 = 500; // Fast query, std user limit
-       const LIMIT_BIG2 = 5000; // Fast query, bot/sysop limit
-       const LIMIT_SML1 = 50; // Slow query, std user limit
-       const LIMIT_SML2 = 500; // Slow query, bot/sysop limit
+       /**@}*/
+
+       /** Fast query, standard limit. */
+       const LIMIT_BIG1 = 500;
+       /** Fast query, apihighlimits limit. */
+       const LIMIT_BIG2 = 5000;
+       /** Slow query, standard limit. */
+       const LIMIT_SML1 = 50;
+       /** Slow query, apihighlimits limit. */
+       const LIMIT_SML2 = 500;
 
        /**
         * getAllowedParams() flag: When set, the result could take longer to generate,
index 699cba8..6c7e69b 100644 (file)
@@ -216,7 +216,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                        if ( !$this->validateSha1Hash( $sha1 ) ) {
                                $this->dieUsage( 'The SHA1 hash provided is not valid', 'invalidsha1hash' );
                        }
-                       $sha1 = wfBaseConvert( $sha1, 16, 36, 31 );
+                       $sha1 = Wikimedia\base_convert( $sha1, 16, 36, 31 );
                } elseif ( isset( $params['sha1base36'] ) ) {
                        $sha1 = strtolower( $params['sha1base36'] );
                        if ( !$this->validateSha1Base36Hash( $sha1 ) ) {
index 76f594e..fe2ec8f 100644 (file)
@@ -362,7 +362,7 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                                }
                                if ( Revision::userCanBitfield( $row->ar_deleted, Revision::DELETED_TEXT, $user ) ) {
                                        if ( $row->ar_sha1 != '' ) {
-                                               $rev['sha1'] = wfBaseConvert( $row->ar_sha1, 36, 16, 40 );
+                                               $rev['sha1'] = Wikimedia\base_convert( $row->ar_sha1, 36, 16, 40 );
                                        } else {
                                                $rev['sha1'] = '';
                                        }
index 8156edb..71be951 100644 (file)
@@ -114,7 +114,7 @@ class ApiQueryFilearchive extends ApiQueryBase {
                                if ( !$this->validateSha1Hash( $sha1 ) ) {
                                        $this->dieUsage( 'The SHA1 hash provided is not valid', 'invalidsha1hash' );
                                }
-                               $sha1 = wfBaseConvert( $sha1, 16, 36, 31 );
+                               $sha1 = Wikimedia\base_convert( $sha1, 16, 36, 31 );
                        } elseif ( $sha1base36Set ) {
                                $sha1 = strtolower( $params['sha1base36'] );
                                if ( !$this->validateSha1Base36Hash( $sha1 ) ) {
@@ -183,7 +183,7 @@ class ApiQueryFilearchive extends ApiQueryBase {
                                $file['user'] = $row->fa_user_text;
                        }
                        if ( $fld_sha1 ) {
-                               $file['sha1'] = wfBaseConvert( $row->fa_sha1, 36, 16, 40 );
+                               $file['sha1'] = Wikimedia\base_convert( $row->fa_sha1, 36, 16, 40 );
                        }
                        if ( $fld_timestamp ) {
                                $file['timestamp'] = wfTimestamp( TS_ISO_8601, $row->fa_timestamp );
index 0a8e2c9..8dbd812 100644 (file)
@@ -518,7 +518,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
                }
 
                if ( $sha1 ) {
-                       $vals['sha1'] = wfBaseConvert( $file->getSha1(), 36, 16, 40 );
+                       $vals['sha1'] = Wikimedia\base_convert( $file->getSha1(), 36, 16, 40 );
                }
 
                if ( $meta ) {
index 0a11f4b..c99d87c 100644 (file)
@@ -552,7 +552,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        }
                        if ( Revision::userCanBitfield( $row->rev_deleted, Revision::DELETED_TEXT, $user ) ) {
                                if ( $row->rev_sha1 !== '' ) {
-                                       $vals['sha1'] = wfBaseConvert( $row->rev_sha1, 36, 16, 40 );
+                                       $vals['sha1'] = Wikimedia\base_convert( $row->rev_sha1, 36, 16, 40 );
                                } else {
                                        $vals['sha1'] = '';
                                }
index 5bc1e79..d7fb580 100644 (file)
@@ -213,7 +213,7 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                        }
                        if ( $revision->userCan( Revision::DELETED_TEXT, $user ) ) {
                                if ( $revision->getSha1() != '' ) {
-                                       $vals['sha1'] = wfBaseConvert( $revision->getSha1(), 36, 16, 40 );
+                                       $vals['sha1'] = Wikimedia\base_convert( $revision->getSha1(), 36, 16, 40 );
                                } else {
                                        $vals['sha1'] = '';
                                }
index 9c5127f..4d9891e 100644 (file)
@@ -1611,7 +1611,7 @@ SQL;
         * @return string Integer
         */
        private function bigintFromLockName( $lockName ) {
-               return wfBaseConvert( substr( sha1( $lockName ), 0, 15 ), 16, 10 );
+               return Wikimedia\base_convert( substr( sha1( $lockName ), 0, 15 ), 16, 10 );
        }
 } // end DatabasePostgres class
 
index 89ac734..c3c5dcb 100644 (file)
@@ -78,7 +78,7 @@ class ExternalStoreMwstore extends ExternalStoreMedium {
                $be = FileBackendGroup::singleton()->get( $backend );
                if ( $be instanceof FileBackend ) {
                        // Get three random base 36 characters to act as shard directories
-                       $rand = wfBaseConvert( mt_rand( 0, 46655 ), 10, 36, 3 );
+                       $rand = Wikimedia\base_convert( mt_rand( 0, 46655 ), 10, 36, 3 );
                        // Make sure ID is roughly lexicographically increasing for performance
                        $id = str_pad( UIDGenerator::newTimestampedUID128( 32 ), 26, '0', STR_PAD_LEFT );
                        // Segregate items by wiki ID for the sake of bookkeeping
index 213bb87..2604c88 100644 (file)
@@ -208,7 +208,7 @@ class FSFile {
                MediaWiki\restoreWarnings();
 
                if ( $this->sha1Base36 !== false ) {
-                       $this->sha1Base36 = wfBaseConvert( $this->sha1Base36, 16, 36, 31 );
+                       $this->sha1Base36 = Wikimedia\base_convert( $this->sha1Base36, 16, 36, 31 );
                }
 
                return $this->sha1Base36;
index 1432bb9..e21aaea 100644 (file)
@@ -1551,7 +1551,7 @@ abstract class FileBackendStore extends FileBackend {
                if ( $digits > 0 ) {
                        $numShards = pow( $base, $digits );
                        for ( $index = 0; $index < $numShards; $index++ ) {
-                               $shards[] = '.' . wfBaseConvert( $index, 10, $base, $digits );
+                               $shards[] = '.' . Wikimedia\base_convert( $index, 10, $base, $digits );
                        }
                }
 
index 5d4e8e1..8359943 100644 (file)
@@ -513,7 +513,7 @@ class CreateFileOp extends FileOp {
        }
 
        protected function getSourceSha1Base36() {
-               return wfBaseConvert( sha1( $this->params['content'] ), 16, 36, 31 );
+               return Wikimedia\base_convert( sha1( $this->params['content'] ), 16, 36, 31 );
        }
 
        public function storagePathsChanged() {
@@ -581,7 +581,7 @@ class StoreFileOp extends FileOp {
                $hash = sha1_file( $this->params['src'] );
                MediaWiki\restoreWarnings();
                if ( $hash !== false ) {
-                       $hash = wfBaseConvert( $hash, 16, 36, 31 );
+                       $hash = Wikimedia\base_convert( $hash, 16, 36, 31 );
                }
 
                return $hash;
index 72a877d..93d8d07 100644 (file)
@@ -261,7 +261,7 @@ class SwiftFileBackend extends FileBackendStore {
                        return $status;
                }
 
-               $sha1Hash = wfBaseConvert( sha1( $params['content'] ), 16, 36, 31 );
+               $sha1Hash = Wikimedia\base_convert( sha1( $params['content'] ), 16, 36, 31 );
                $contentType = isset( $params['headers']['content-type'] )
                        ? $params['headers']['content-type']
                        : $this->getContentType( $params['dst'], $params['content'], null );
@@ -319,7 +319,7 @@ class SwiftFileBackend extends FileBackendStore {
 
                        return $status;
                }
-               $sha1Hash = wfBaseConvert( $sha1Hash, 16, 36, 31 );
+               $sha1Hash = Wikimedia\base_convert( $sha1Hash, 16, 36, 31 );
                $contentType = isset( $params['headers']['content-type'] )
                        ? $params['headers']['content-type']
                        : $this->getContentType( $params['dst'], null, $params['src'] );
index 4ee5222..2f39dad 100644 (file)
@@ -81,9 +81,9 @@ abstract class FileJournal {
                for ( $i = 0; $i < 5; $i++ ) {
                        $s .= mt_rand( 0, 2147483647 );
                }
-               $s = wfBaseConvert( sha1( $s ), 16, 36, 31 );
+               $s = Wikimedia\base_convert( sha1( $s ), 16, 36, 31 );
 
-               return substr( wfBaseConvert( wfTimestamp( TS_MW ), 10, 36, 9 ) . $s, 0, 31 );
+               return substr( Wikimedia\base_convert( wfTimestamp( TS_MW ), 10, 36, 9 ) . $s, 0, 31 );
        }
 
        /**
index 2c86c37..c93b4b4 100644 (file)
@@ -376,7 +376,7 @@ class PostgreSqlLockManager extends DBLockManager {
                $db = $this->getConnection( $lockSrv ); // checked in isServerUp()
                $bigints = array_unique( array_map(
                        function ( $key ) {
-                               return wfBaseConvert( substr( $key, 0, 15 ), 16, 10 );
+                               return Wikimedia\base_convert( substr( $key, 0, 15 ), 16, 10 );
                        },
                        array_map( array( $this, 'sha1Base16Absolute' ), $paths )
                ) );
index 8115fd4..7605a9b 100644 (file)
@@ -152,7 +152,7 @@ abstract class LockManager {
         * @return string
         */
        final protected function sha1Base36Absolute( $path ) {
-               return wfBaseConvert( sha1( "{$this->domain}:{$path}" ), 16, 36, 31 );
+               return Wikimedia\base_convert( sha1( "{$this->domain}:{$path}" ), 16, 36, 31 );
        }
 
        /**
index cad806d..26ea38b 100644 (file)
@@ -244,7 +244,7 @@ class ForeignAPIFile extends File {
         */
        function getSha1() {
                return isset( $this->mInfo['sha1'] )
-                       ? wfBaseConvert( strval( $this->mInfo['sha1'] ), 16, 36, 31 )
+                       ? Wikimedia\base_convert( strval( $this->mInfo['sha1'] ), 16, 36, 31 )
                        : null;
        }
 
index ed2d0fa..f10866e 100644 (file)
@@ -727,7 +727,7 @@ class JobQueueDB extends JobQueue {
                        // Additional job metadata
                        'job_id' => $dbw->nextSequenceValue( 'job_job_id_seq' ),
                        'job_timestamp' => $dbw->timestamp(),
-                       'job_sha1' => wfBaseConvert(
+                       'job_sha1' => Wikimedia\base_convert(
                                sha1( serialize( $job->getDeduplicationInfo() ) ),
                                16, 36, 31
                        ),
index deb5aa5..78d2a36 100644 (file)
@@ -639,7 +639,7 @@ LUA;
                        // Additional job metadata
                        'uuid' => UIDGenerator::newRawUUIDv4( UIDGenerator::QUICK_RAND ),
                        'sha1' => $job->ignoreDuplicates()
-                               ? wfBaseConvert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
+                               ? Wikimedia\base_convert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
                                : '',
                        'timestamp' => time() // UNIX timestamp
                );
index e1f272b..6b634cb 100644 (file)
@@ -204,7 +204,7 @@ final class PasswordFactory {
                // Generate random hex chars
                $hex = MWCryptRand::generateHex( $length );
                // Convert from base 16 to base 32 to get a proper password like string
-               return wfBaseConvert( $hex, 16, 32 );
+               return Wikimedia\base_convert( $hex, 16, 32 );
        }
 
        /**
index e241383..53f0cd2 100644 (file)
@@ -226,8 +226,8 @@ class UploadStash {
                // see: http://www.jwz.org/doc/mid.html
                list( $usec, $sec ) = explode( ' ', microtime() );
                $usec = substr( $usec, 2 );
-               $key = wfBaseConvert( $sec . $usec, 10, 36 ) . '.' .
-                       wfBaseConvert( mt_rand(), 10, 36 ) . '.' .
+               $key = Wikimedia\base_convert( $sec . $usec, 10, 36 ) . '.' .
+                       Wikimedia\base_convert( mt_rand(), 10, 36 ) . '.' .
                        $this->userId . '.' .
                        $extension;
 
index 9f52249..119805e 100644 (file)
@@ -411,7 +411,7 @@ class IP {
                                }
                        }
                        if ( $n !== false ) {
-                               # Floating points can handle the conversion; faster than wfBaseConvert()
+                               # Floating points can handle the conversion; faster than Wikimedia\base_convert()
                                $n = strtoupper( str_pad( base_convert( $n, 10, 16 ), 8, '0', STR_PAD_LEFT ) );
                        }
                } else {
@@ -551,11 +551,11 @@ class IP {
                        } else {
                                # Native 32 bit functions WONT work here!!!
                                # Convert to a padded binary number
-                               $network = wfBaseConvert( $network, 16, 2, 128 );
+                               $network = Wikimedia\base_convert( $network, 16, 2, 128 );
                                # Truncate the last (128-$bits) bits and replace them with zeros
                                $network = str_pad( substr( $network, 0, $bits ), 128, 0, STR_PAD_RIGHT );
                                # Convert back to an integer
-                               $network = wfBaseConvert( $network, 2, 10 );
+                               $network = Wikimedia\base_convert( $network, 2, 10 );
                        }
                } else {
                        $network = false;
@@ -587,13 +587,13 @@ class IP {
                        if ( $network === false ) {
                                $start = $end = false;
                        } else {
-                               $start = wfBaseConvert( $network, 10, 16, 32, false );
+                               $start = Wikimedia\base_convert( $network, 10, 16, 32, false );
                                # Turn network to binary (again)
-                               $end = wfBaseConvert( $network, 10, 2, 128 );
+                               $end = Wikimedia\base_convert( $network, 10, 2, 128 );
                                # Truncate the last (128-$bits) bits and replace them with ones
                                $end = str_pad( substr( $end, 0, $bits ), 128, 1, STR_PAD_RIGHT );
                                # Convert to hex
-                               $end = wfBaseConvert( $end, 2, 16, 32, false );
+                               $end = Wikimedia\base_convert( $end, 2, 16, 32, false );
                                # see toHex() comment
                                $start = "v6-$start";
                                $end = "v6-$end";
index 26eebcd..10e4334 100644 (file)
@@ -73,8 +73,8 @@ class UIDGenerator {
                        }
                        file_put_contents( $this->nodeIdFile, $nodeId ); // cache
                }
-               $this->nodeId32 = wfBaseConvert( substr( sha1( $nodeId ), 0, 8 ), 16, 2, 32 );
-               $this->nodeId48 = wfBaseConvert( $nodeId, 16, 2, 48 );
+               $this->nodeId32 = Wikimedia\base_convert( substr( sha1( $nodeId ), 0, 8 ), 16, 2, 32 );
+               $this->nodeId48 = Wikimedia\base_convert( $nodeId, 16, 2, 48 );
                // If different processes run as different users, they may have different temp dirs.
                // This is dealt with by initializing the clock sequence number and counters randomly.
                $this->lockFile88 = wfTempDir() . '/mw-' . __CLASS__ . '-UID-88';
@@ -82,6 +82,7 @@ class UIDGenerator {
        }
 
        /**
+        * @todo: move to MW-specific factory class and inject temp dir
         * @return UIDGenerator
         */
        protected static function singleton() {
@@ -105,7 +106,7 @@ class UIDGenerator {
         *
         * @param int $base Specifies a base other than 10
         * @return string Number
-        * @throws MWException
+        * @throws RuntimeException
         */
        public static function newTimestampedUID88( $base = 10 ) {
                Assert::parameterType( 'integer', $base, '$base' );
@@ -115,13 +116,13 @@ class UIDGenerator {
                $gen = self::singleton();
                $time = $gen->getTimestampAndDelay( 'lockFile88', 1, 1024 );
 
-               return wfBaseConvert( $gen->getTimestampedID88( $time ), 2, $base );
+               return Wikimedia\base_convert( $gen->getTimestampedID88( $time ), 2, $base );
        }
 
        /**
         * @param array $info (UIDGenerator::millitime(), counter, clock sequence)
         * @return string 88 bits
-        * @throws MWException
+        * @throws RuntimeException
         */
        protected function getTimestampedID88( array $info ) {
                list( $time, $counter ) = $info;
@@ -133,7 +134,7 @@ class UIDGenerator {
                $id_bin .= $this->nodeId32;
                // Convert to a 1-27 digit integer string
                if ( strlen( $id_bin ) !== 88 ) {
-                       throw new MWException( "Detected overflow for millisecond timestamp." );
+                       throw new RuntimeException( "Detected overflow for millisecond timestamp." );
                }
 
                return $id_bin;
@@ -151,7 +152,7 @@ class UIDGenerator {
         *
         * @param int $base Specifies a base other than 10
         * @return string Number
-        * @throws MWException
+        * @throws RuntimeException
         */
        public static function newTimestampedUID128( $base = 10 ) {
                Assert::parameterType( 'integer', $base, '$base' );
@@ -161,13 +162,13 @@ class UIDGenerator {
                $gen = self::singleton();
                $time = $gen->getTimestampAndDelay( 'lockFile128', 16384, 1048576 );
 
-               return wfBaseConvert( $gen->getTimestampedID128( $time ), 2, $base );
+               return Wikimedia\base_convert( $gen->getTimestampedID128( $time ), 2, $base );
        }
 
        /**
         * @param array $info (UIDGenerator::millitime(), counter, clock sequence)
         * @return string 128 bits
-        * @throws MWException
+        * @throws RuntimeException
         */
        protected function getTimestampedID128( array $info ) {
                list( $time, $counter, $clkSeq ) = $info;
@@ -181,7 +182,7 @@ class UIDGenerator {
                $id_bin .= $this->nodeId48;
                // Convert to a 1-39 digit integer string
                if ( strlen( $id_bin ) !== 128 ) {
-                       throw new MWException( "Detected overflow for millisecond timestamp." );
+                       throw new RuntimeException( "Detected overflow for millisecond timestamp." );
                }
 
                return $id_bin;
@@ -192,7 +193,7 @@ class UIDGenerator {
         *
         * @param int $flags Bitfield (supports UIDGenerator::QUICK_RAND)
         * @return string
-        * @throws MWException
+        * @throws RuntimeException
         */
        public static function newUUIDv4( $flags = 0 ) {
                $hex = ( $flags & self::QUICK_RAND )
@@ -218,7 +219,7 @@ class UIDGenerator {
         *
         * @param int $flags Bitfield (supports UIDGenerator::QUICK_RAND)
         * @return string 32 hex characters with no hyphens
-        * @throws MWException
+        * @throws RuntimeException
         */
        public static function newRawUUIDv4( $flags = 0 ) {
                return str_replace( '-', '', self::newUUIDv4( $flags ) );
@@ -265,15 +266,15 @@ class UIDGenerator {
         * @param int $count Number of IDs to return (1 to 10000)
         * @param int $flags (supports UIDGenerator::QUICK_VOLATILE)
         * @return array Ordered list of float integer values
-        * @throws MWException
+        * @throws RuntimeException
         */
        protected function getSequentialPerNodeIDs( $bucket, $bits, $count, $flags ) {
                if ( $count <= 0 ) {
                        return array(); // nothing to do
                } elseif ( $count > 10000 ) {
-                       throw new MWException( "Number of requested IDs ($count) is too high." );
+                       throw new RuntimeException( "Number of requested IDs ($count) is too high." );
                } elseif ( $bits < 16 || $bits > 48 ) {
-                       throw new MWException( "Requested bit size ($bits) is out of range." );
+                       throw new RuntimeException( "Requested bit size ($bits) is out of range." );
                }
 
                $counter = null; // post-increment persistent counter value
@@ -288,7 +289,7 @@ class UIDGenerator {
                        $counter = $cache->incr( $bucket, $count );
                        if ( $counter === false ) {
                                if ( !$cache->add( $bucket, (int)$count ) ) {
-                                       throw new MWException( 'Unable to set value to ' . get_class( $cache ) );
+                                       throw new RuntimeException( 'Unable to set value to ' . get_class( $cache ) );
                                }
                                $counter = $count;
                        }
@@ -306,10 +307,10 @@ class UIDGenerator {
                        }
                        // Acquire the UID lock file
                        if ( $handle === false ) {
-                               throw new MWException( "Could not open '{$path}'." );
+                               throw new RuntimeException( "Could not open '{$path}'." );
                        } elseif ( !flock( $handle, LOCK_EX ) ) {
                                fclose( $handle );
-                               throw new MWException( "Could not acquire '{$path}'." );
+                               throw new RuntimeException( "Could not acquire '{$path}'." );
                        }
                        // Fetch the counter value and increment it...
                        rewind( $handle );
@@ -342,7 +343,7 @@ class UIDGenerator {
         * @param int $clockSeqSize The number of possible clock sequence values
         * @param int $counterSize The number of possible counter values
         * @return array (result of UIDGenerator::millitime(), counter, clock sequence)
-        * @throws MWException
+        * @throws RuntimeException
         */
        protected function getTimestampAndDelay( $lockFile, $clockSeqSize, $counterSize ) {
                // Get the UID lock file handle
@@ -355,10 +356,10 @@ class UIDGenerator {
                }
                // Acquire the UID lock file
                if ( $handle === false ) {
-                       throw new MWException( "Could not open '{$this->$lockFile}'." );
+                       throw new RuntimeException( "Could not open '{$this->$lockFile}'." );
                } elseif ( !flock( $handle, LOCK_EX ) ) {
                        fclose( $handle );
-                       throw new MWException( "Could not acquire '{$this->$lockFile}'." );
+                       throw new RuntimeException( "Could not acquire '{$this->$lockFile}'." );
                }
                // Get the current timestamp, clock sequence number, last time, and counter
                rewind( $handle );
@@ -380,7 +381,7 @@ class UIDGenerator {
                                $counter = (int)$data[3] % $counterSize;
                                if ( ++$counter >= $counterSize ) { // sanity (starts at 0)
                                        flock( $handle, LOCK_UN ); // abort
-                                       throw new MWException( "Counter overflow for timestamp value." );
+                                       throw new RuntimeException( "Counter overflow for timestamp value." );
                                }
                        }
                } else { // last UID info not initialized
@@ -396,7 +397,7 @@ class UIDGenerator {
                        // We don't want processes using too high or low timestamps to avoid duplicate
                        // UIDs and clock sequence number churn. This process should just be restarted.
                        flock( $handle, LOCK_UN ); // abort
-                       throw new MWException( "Process clock is outdated or drifted." );
+                       throw new RuntimeException( "Process clock is outdated or drifted." );
                }
                // If microtime() is synced and a clock change was detected, then the clock went back
                if ( $clockChanged ) {
@@ -438,17 +439,17 @@ class UIDGenerator {
        /**
         * @param array $time Result of UIDGenerator::millitime()
         * @return string 46 MSBs of "milliseconds since epoch" in binary (rolls over in 4201)
-        * @throws MWException
+        * @throws RuntimeException
         */
        protected function millisecondsSinceEpochBinary( array $time ) {
                list( $sec, $msec ) = $time;
                $ts = 1000 * $sec + $msec;
                if ( $ts > pow( 2, 52 ) ) {
-                       throw new MWException( __METHOD__ .
+                       throw new RuntimeException( __METHOD__ .
                                ': sorry, this function doesn\'t work after the year 144680' );
                }
 
-               return substr( wfBaseConvert( $ts, 10, 2, 46 ), -46 );
+               return substr( Wikimedia\base_convert( $ts, 10, 2, 46 ), -46 );
        }
 
        /**
diff --git a/maintenance/benchmarks/bench_Wikimedia_base_convert.php b/maintenance/benchmarks/bench_Wikimedia_base_convert.php
new file mode 100644 (file)
index 0000000..810937a
--- /dev/null
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Benchmark for Wikimedia\base_convert()
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Benchmark
+ * @author Tyler Romeo
+ */
+
+require_once __DIR__ . '/Benchmarker.php';
+
+/**
+ * Maintenance script that benchmarks Wikimedia\base_convert().
+ *
+ * Code exists in vendor repository brought in via composer.
+ *
+ * @ingroup Benchmark
+ */
+class BenchWikimediaBaseConvert extends Benchmarker {
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = "Benchmark for Wikimedia\\base_convert.";
+               $this->addOption( "inbase", "Input base", false, true );
+               $this->addOption( "outbase", "Output base", false, true );
+               $this->addOption( "length", "Size in digits to generate for input", false, true );
+       }
+
+       public function execute() {
+               $inbase = $this->getOption( "inbase", 36 );
+               $outbase = $this->getOption( "outbase", 16 );
+               $length = $this->getOption( "length", 128 );
+               $number = self::makeRandomNumber( $inbase, $length );
+
+               $this->bench( array(
+                       array(
+                               'function' => 'Wikimedia\base_convert',
+                               'args' => array( $number, $inbase, $outbase, 0, true, 'php' )
+                       ),
+                       array(
+                               'function' => 'Wikimedia\base_convert',
+                               'args' => array( $number, $inbase, $outbase, 0, true, 'bcmath' )
+                       ),
+                       array(
+                               'function' => 'Wikimedia\base_convert',
+                               'args' => array( $number, $inbase, $outbase, 0, true, 'gmp' )
+                       ),
+               ) );
+
+               $this->output( $this->getFormattedResults() );
+       }
+
+       protected static function makeRandomNumber( $base, $length ) {
+               $baseChars = "0123456789abcdefghijklmnopqrstuvwxyz";
+               $res = "";
+               for ( $i = 0; $i < $length; $i++ ) {
+                       $res .= $baseChars[mt_rand( 0, $base - 1 )];
+               }
+
+               return $res;
+       }
+}
+
+$maintClass = 'BenchWikimediaBaseConvert';
+require_once RUN_MAINTENANCE_IF_MAIN;
diff --git a/maintenance/benchmarks/bench_wfBaseConvert.php b/maintenance/benchmarks/bench_wfBaseConvert.php
deleted file mode 100644 (file)
index b4be12b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * Benchmark for wfBaseConvert
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Benchmark
- * @author Tyler Romeo
- */
-
-require_once __DIR__ . '/Benchmarker.php';
-
-/**
- * Maintenance script that benchmarks wfBaseConvert().
- *
- * @ingroup Benchmark
- */
-class BenchWfBaseConvert extends Benchmarker {
-       public function __construct() {
-               parent::__construct();
-               $this->mDescription = "Benchmark for wfBaseConvert.";
-               $this->addOption( "inbase", "Input base", false, true );
-               $this->addOption( "outbase", "Output base", false, true );
-               $this->addOption( "length", "Size in digits to generate for input", false, true );
-       }
-
-       public function execute() {
-               $inbase = $this->getOption( "inbase", 36 );
-               $outbase = $this->getOption( "outbase", 16 );
-               $length = $this->getOption( "length", 128 );
-               $number = self::makeRandomNumber( $inbase, $length );
-
-               $this->bench( array(
-                       array(
-                               'function' => 'wfBaseConvert',
-                               'args' => array( $number, $inbase, $outbase, 0, true, 'php' )
-                       ),
-                       array(
-                               'function' => 'wfBaseConvert',
-                               'args' => array( $number, $inbase, $outbase, 0, true, 'bcmath' )
-                       ),
-                       array(
-                               'function' => 'wfBaseConvert',
-                               'args' => array( $number, $inbase, $outbase, 0, true, 'gmp' )
-                       ),
-               ) );
-
-               $this->output( $this->getFormattedResults() );
-       }
-
-       protected static function makeRandomNumber( $base, $length ) {
-               $baseChars = "0123456789abcdefghijklmnopqrstuvwxyz";
-               $res = "";
-               for ( $i = 0; $i < $length; $i++ ) {
-                       $res .= $baseChars[mt_rand( 0, $base - 1 )];
-               }
-
-               return $res;
-       }
-}
-
-$maintClass = 'BenchWfBaseConvert';
-require_once RUN_MAINTENANCE_IF_MAIN;
index d41efdb..5674a78 100644 (file)
        "ooui-toolgroup-expand": "Više",
        "ooui-toolgroup-collapse": "Manje",
        "ooui-dialog-message-accept": "U redu",
-       "ooui-dialog-message-reject": "Otkaži",
+       "ooui-dialog-message-reject": "Odustani",
        "ooui-dialog-process-error": "Nešto je pošlo naopako",
        "ooui-dialog-process-dismiss": "Odbaci",
-       "ooui-dialog-process-retry": "Pokušajte ponovo",
+       "ooui-dialog-process-retry": "Pokušaj ponovo",
        "ooui-dialog-process-continue": "Nastavi",
        "ooui-selectfile-button-select": "Izaberi datoteku",
-       "ooui-selectfile-placeholder": "Nijedna datoteka nije izabrana"
+       "ooui-selectfile-not-supported": "Izbor datoteke nije podržan",
+       "ooui-selectfile-placeholder": "Nijedna datoteka nije izabrana",
+       "ooui-selectfile-dragdrop-placeholder": "Prevuci datoteku ovdje"
 }
index 9118898..36cc8eb 100644 (file)
@@ -17,5 +17,7 @@
        "ooui-dialog-message-reject": "Odustani",
        "ooui-dialog-process-error": "Nešto je pošlo po zlu",
        "ooui-dialog-process-dismiss": "Zatvori",
-       "ooui-dialog-process-retry": "Pokušajte ponovo"
+       "ooui-dialog-process-retry": "Pokušajte ponovo",
+       "ooui-selectfile-button-select": "Odaberi datoteku",
+       "ooui-selectfile-placeholder": "Datoteka nije označena"
 }
index 9ceb96f..5584715 100644 (file)
@@ -20,8 +20,8 @@
                        "The Polish"
                ]
        },
-       "ooui-outline-control-move-down": "Przenieś niżej",
-       "ooui-outline-control-move-up": "Przenieś wyżej",
+       "ooui-outline-control-move-down": "Przesuń w dół",
+       "ooui-outline-control-move-up": "Przesuń w górę",
        "ooui-outline-control-remove": "Usuń element",
        "ooui-toolbar-more": "Więcej",
        "ooui-toolgroup-expand": "Więcej",
@@ -35,5 +35,5 @@
        "ooui-selectfile-button-select": "Wybierz plik",
        "ooui-selectfile-not-supported": "Wybór pliku nie jest obsługiwany",
        "ooui-selectfile-placeholder": "Nie wybrano pliku",
-       "ooui-selectfile-dragdrop-placeholder": "Umieść plik tutaj"
+       "ooui-selectfile-dragdrop-placeholder": "Upuść plik tutaj"
 }
index 4a04b48..d19bdc0 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.3
+ * OOjs UI v0.14.0
  * 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-18T01:09:30Z
+ * Date: 2015-11-25T01:06:55Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
index 1c7db1d..7dcadb9 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.3
+ * OOjs UI v0.14.0
  * 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-18T01:09:23Z
+ * Date: 2015-11-25T01:06:47Z
  */
 /**
  * @class
index 9b82a29..9fef769 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.3
+ * OOjs UI v0.14.0
  * 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-18T01:09:30Z
+ * Date: 2015-11-25T01:06:55Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
        border-right: 1px solid #dddddd;
 }
 .oo-ui-bookletLayout-outlinePanel > .oo-ui-outlineControlsWidget {
-       box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
 }
 .oo-ui-indexLayout > .oo-ui-menuLayout-menu {
        height: 3em;
 .oo-ui-panelLayout-framed {
        border: 1px solid #aaaaaa;
        border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+       box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
 }
 .oo-ui-panelLayout-padded.oo-ui-panelLayout-framed {
        margin: 1em 0;
 .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
        border: 1px solid #aaaaaa;
        border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+       box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
 }
index 8894ef7..ab2b505 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.3
+ * OOjs UI v0.14.0
  * 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-18T01:09:23Z
+ * Date: 2015-11-25T01:06:47Z
  */
 /**
  * @class
index a00b973..f36814e 100644 (file)
@@ -1,20 +1,12 @@
-/*
- * Local backports:
- *
- * - 4fbbc737c86b500c11bbb471ec1001c50ab8853c
- *   SelectFileWidget: Use i18n string for button label
- *   We totally forgot to use a localisation message we carefully introduced.
- */
-
 /*!
- * OOjs UI v0.13.3
+ * OOjs UI v0.14.0
  * 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-18T01:09:23Z
+ * Date: 2015-11-25T01:06:47Z
  */
 ( function ( OO ) {
 
@@ -14390,10 +14382,6 @@ OO.ui.SelectFileWidget.prototype.updateUI = function () {
                        this.setLabel( this.placeholder );
                }
        }
-
-       if ( this.$input ) {
-               this.$input.attr( 'title', this.getLabel() );
-       }
 };
 
 /**
@@ -14414,8 +14402,7 @@ OO.ui.SelectFileWidget.prototype.addInput = function () {
        this.$input = $( '<input type="file">' );
        this.$input.on( 'change', this.onFileSelectedHandler );
        this.$input.attr( {
-               tabindex: -1,
-               title: this.getLabel()
+               tabindex: -1
        } );
        if ( this.accept ) {
                this.$input.attr( 'accept', this.accept.join( ', ' ) );
@@ -16296,6 +16283,47 @@ OO.ui.TextInputWidget.prototype.moveCursorToEnd = function () {
        return this.selectRange( this.getInputLength() );
 };
 
+/**
+ * Insert new content into the input.
+ *
+ * @param {string} content Content to be inserted
+ * @chainable
+ */
+OO.ui.TextInputWidget.prototype.insertContent = function ( content ) {
+       var start, end,
+               range = this.getRange(),
+               value = this.getValue();
+
+       start = Math.min( range.from, range.to );
+       end = Math.max( range.from, range.to );
+
+       this.setValue( value.slice( 0, start ) + content + value.slice( end ) );
+       this.selectRange( start + content.length );
+       return this;
+};
+
+/**
+ * Insert new content either side of a selection.
+ *
+ * @param {string} pre Content to be inserted before the selection
+ * @param {string} post Content to be inserted after the selection
+ * @chainable
+ */
+OO.ui.TextInputWidget.prototype.encapsulateContent = function ( pre, post ) {
+       var start, end,
+               range = this.getRange(),
+               offset = pre.length;
+
+       start = Math.min( range.from, range.to );
+       end = Math.max( range.from, range.to );
+
+       this.selectRange( start ).insertContent( pre );
+       this.selectRange( offset + end ).insertContent( post );
+
+       this.selectRange( offset + start, offset + end );
+       return this;
+};
+
 /**
  * Set the validation pattern.
  *
@@ -16421,14 +16449,6 @@ OO.ui.TextInputWidget.prototype.setLabelPosition = function ( labelPosition ) {
        return this;
 };
 
-/**
- * Deprecated alias of #setLabelPosition
- *
- * @deprecated Use setLabelPosition instead.
- */
-OO.ui.TextInputWidget.prototype.setPosition =
-       OO.ui.TextInputWidget.prototype.setLabelPosition;
-
 /**
  * Update the position of the inline label.
  *
diff --git a/resources/lib/oojs-ui/themes/apex/icons-interactions.json b/resources/lib/oojs-ui/themes/apex/icons-interactions.json
new file mode 100644 (file)
index 0000000..02dfffa
--- /dev/null
@@ -0,0 +1,58 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
+       "images": {
+               "beta": { "file": "images/icons/beta.svg" },
+               "betaLaunch": { "file": "images/icons/betaLaunch.svg" },
+               "bookmark": { "file": {
+                       "ltr": "images/icons/bookmark-ltr.svg",
+                       "rtl": "images/icons/bookmark-rtl.svg"
+               } },
+               "browser": { "file": {
+                       "ltr": "images/icons/browser-ltr.svg",
+                       "rtl": "images/icons/browser-rtl.svg"
+               } },
+               "clear": { "file": "images/icons/clear.svg" },
+               "clock": { "file": "images/icons/clock.svg" },
+               "funnel": { "file": {
+                       "ltr": "images/icons/funnel-ltr.svg",
+                       "rtl": "images/icons/funnel-rtl.svg"
+               } },
+               "heart": { "file": "images/icons/heart.svg" },
+               "key": { "file": {
+                       "ltr": "images/icons/key-ltr.svg",
+                       "rtl": "images/icons/key-rtl.svg"
+               } },
+               "keyboard": { "file": {
+                       "ltr": "images/icons/keyboard-ltr.svg",
+                       "rtl": "images/icons/keyboard-rtl.svg"
+               } },
+               "logOut": { "file": {
+                       "ltr": "images/icons/logOut-ltr.svg",
+                       "rtl": "images/icons/logOut-rtl.svg"
+               } },
+               "newWindow": { "file": {
+                       "ltr": "images/icons/newWindow-ltr.svg",
+                       "rtl": "images/icons/newWindow-rtl.svg"
+               } },
+               "printer": { "file": {
+                       "ltr": "images/icons/printer-ltr.svg",
+                       "rtl": "images/icons/printer-rtl.svg"
+               } },
+               "ribbonPrize": { "file": "images/icons/ribbonPrize.svg" },
+               "sun": { "file": {
+                       "ltr": "images/icons/sun-ltr.svg",
+                       "rtl": "images/icons/sun-rtl.svg"
+               } },
+               "watchlist": { "file": {
+                       "ltr": "images/icons/watchlist-ltr.svg",
+                       "rtl": "images/icons/watchlist-rtl.svg"
+               } }
+       }
+}
index 829f0c2..091d5d7 100644 (file)
@@ -38,7 +38,7 @@
                        "ltr": "images/icons/arched-arrow-ltr.svg",
                        "rtl": "images/icons/arched-arrow-rtl.svg"
                } },
-               "remove": { "file": "images/icons/remove.svg" },
+               "remove": { "file": "images/icons/trash.svg" },
                "search": { "file": "images/icons/search.svg" },
                "settings": { "file": "images/icons/settings.svg" },
                "tag": { "file": "images/icons/tag.svg" },
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/beta-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/beta-invert.png
new file mode 100644 (file)
index 0000000..7d23df2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/beta-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/beta-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/beta-invert.svg
new file mode 100644 (file)
index 0000000..4d8c673
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 12l-3-2-1 4-1-4-3 2 2-3-4-1 4-1-2-3 3 2 1-4 1 4 3-2-2 3 4 1-4 1 2 3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/beta.png b/resources/lib/oojs-ui/themes/apex/images/icons/beta.png
new file mode 100644 (file)
index 0000000..ef3e20a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/beta.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/beta.svg b/resources/lib/oojs-ui/themes/apex/images/icons/beta.svg
new file mode 100644 (file)
index 0000000..51a5c78
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 12l-3-2-1 4-1-4-3 2 2-3-4-1 4-1-2-3 3 2 1-4 1 4 3-2-2 3 4 1-4 1 2 3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png
new file mode 100644 (file)
index 0000000..d620367
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.svg
new file mode 100644 (file)
index 0000000..5058629
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M15.3 14.7C16.1 10.9 14.7 4 12 4c-2.7 0-4.2 6.7-3.4 10.5L7 18h2.7l.3 1h4c.2-.3.1-.5.3-1H17l-1.7-3.3zM12 10c-.8 0-1.5-.7-1.5-1.5S11.2 7 12 7s1.5.7 1.5 1.5S12.8 10 12 10zm2 10c0 1.1-2 2-2 2s-2-.9-2-2"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.png b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.png
new file mode 100644 (file)
index 0000000..f1e48ac
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.svg b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.svg
new file mode 100644 (file)
index 0000000..c3f99d6
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15.3 14.7C16.1 10.9 14.7 4 12 4c-2.7 0-4.2 6.7-3.4 10.5L7 18h2.7l.3 1h4c.2-.3.1-.5.3-1H17l-1.7-3.3zM12 10c-.8 0-1.5-.7-1.5-1.5S11.2 7 12 7s1.5.7 1.5 1.5S12.8 10 12 10zm2 10c0 1.1-2 2-2 2s-2-.9-2-2"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr-invert.png
new file mode 100644 (file)
index 0000000..008246c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr-invert.svg
new file mode 100644 (file)
index 0000000..bf39564
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M15 5H8c-1.1 0-2 .9-2 2v3h3v11l4-3 4 3V7c0-1.1-.9-2-2-2zM9 9H7V7c0-.6.4-1 1-1h1v3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr.png
new file mode 100644 (file)
index 0000000..371dfc6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-ltr.svg
new file mode 100644 (file)
index 0000000..ba3ff91
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15 5H8c-1.1 0-2 .9-2 2v3h3v11l4-3 4 3V7c0-1.1-.9-2-2-2zM9 9H7V7c0-.6.4-1 1-1h1v3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl-invert.png
new file mode 100644 (file)
index 0000000..deff3f6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl-invert.svg
new file mode 100644 (file)
index 0000000..f665223
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M8 5h7c1.1 0 2 .9 2 2v3h-3v11l-4-3-4 3V7c0-1.1.9-2 2-2zm6 4h2V7c0-.6-.4-1-1-1h-1v3z" id="path88"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl.png
new file mode 100644 (file)
index 0000000..4a50c17
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/bookmark-rtl.svg
new file mode 100644 (file)
index 0000000..ba0be74
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M8 5h7c1.1 0 2 .9 2 2v3h-3v11l-4-3-4 3V7c0-1.1.9-2 2-2zm6 4h2V7c0-.6-.4-1-1-1h-1v3z" id="path88"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr-invert.png
new file mode 100644 (file)
index 0000000..4632447
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr-invert.svg
new file mode 100644 (file)
index 0000000..762e641
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M3 6v11c0 1.7 1.3 3 3 3h15V6H3zm2.5 1C6.3 7 7 7.7 7 8.5S6.3 10 5.5 10 4 9.3 4 8.5 4.7 7 5.5 7zM20 19H6c-1.1 0-2-.9-2-2v-6h16v8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr.png
new file mode 100644 (file)
index 0000000..80f1a47
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/browser-ltr.svg
new file mode 100644 (file)
index 0000000..e7be7e5
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M3 6v11c0 1.7 1.3 3 3 3h15V6H3zm2.5 1C6.3 7 7 7.7 7 8.5S6.3 10 5.5 10 4 9.3 4 8.5 4.7 7 5.5 7zM20 19H6c-1.1 0-2-.9-2-2v-6h16v8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl-invert.png
new file mode 100644 (file)
index 0000000..5a3df4b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b6d0f5c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M21 6v11c0 1.7-1.3 3-3 3H3V6h18zm-2.5 1c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S20 9.3 20 8.5 19.3 7 18.5 7zM4 19h14c1.1 0 2-.9 2-2v-6H4v8z" id="path98"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl.png
new file mode 100644 (file)
index 0000000..ea215df
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/browser-rtl.svg
new file mode 100644 (file)
index 0000000..080e237
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M21 6v11c0 1.7-1.3 3-3 3H3V6h18zm-2.5 1c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S20 9.3 20 8.5 19.3 7 18.5 7zM4 19h14c1.1 0 2-.9 2-2v-6H4v8z" id="path98"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clear-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/clear-invert.png
new file mode 100644 (file)
index 0000000..d8b538e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/clear-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clear-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/clear-invert.svg
new file mode 100644 (file)
index 0000000..0738205
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="clear">
+        <path id="circle-with-cross" d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 11l-1 1-3-3-3 3-1-1 3-3-3-3 1-1 3 3 3-3 1 1-3 3 3 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clear.png b/resources/lib/oojs-ui/themes/apex/images/icons/clear.png
new file mode 100644 (file)
index 0000000..b18e2e6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/clear.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clear.svg b/resources/lib/oojs-ui/themes/apex/images/icons/clear.svg
new file mode 100644 (file)
index 0000000..8689e77
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="clear">
+        <path id="circle-with-cross" d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 11l-1 1-3-3-3 3-1-1 3-3-3-3 1-1 3 3 3-3 1 1-3 3 3 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clock-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/clock-invert.png
new file mode 100644 (file)
index 0000000..2580eaf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/clock-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clock-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/clock-invert.svg
new file mode 100644 (file)
index 0000000..3f1a467
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="clock">
+        <path id="circle" d="m 12,5 c -3.865993,0 -7,3.1340068 -7,7 0,3.865993 3.134007,7 7,7 3.865993,0 7,-3.134007 7,-7 0,-3.8659932 -3.134007,-7 -7,-7 z m 0,1.25 c 3.174708,0 5.75,2.5752917 5.75,5.75 0,3.174708 -2.575292,5.75 -5.75,5.75 C 8.825292,17.75 6.25,15.174708 6.25,12 6.25,8.8252917 8.825292,6.25 12,6.25 z" />
+        <path id="hands" d="m 15.605461,14.078994 c 0,0 -1.674293,-1.358389 -2.811549,-2.149554 0.505447,-1.682718 1.194821,-4.6044835 1.194821,-4.6044835 0,0 -3.053744,3.7648795 -3.423703,4.7027645 -0.32503,0.819947 1.024233,1.55074 1.646915,1.177972 1.333819,0.386808 3.393516,0.873301 3.393516,0.873301 z" />
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clock.png b/resources/lib/oojs-ui/themes/apex/images/icons/clock.png
new file mode 100644 (file)
index 0000000..bc875bd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/clock.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/clock.svg b/resources/lib/oojs-ui/themes/apex/images/icons/clock.svg
new file mode 100644 (file)
index 0000000..04d9492
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="clock">
+        <path id="circle" d="m 12,5 c -3.865993,0 -7,3.1340068 -7,7 0,3.865993 3.134007,7 7,7 3.865993,0 7,-3.134007 7,-7 0,-3.8659932 -3.134007,-7 -7,-7 z m 0,1.25 c 3.174708,0 5.75,2.5752917 5.75,5.75 0,3.174708 -2.575292,5.75 -5.75,5.75 C 8.825292,17.75 6.25,15.174708 6.25,12 6.25,8.8252917 8.825292,6.25 12,6.25 z" />
+        <path id="hands" d="m 15.605461,14.078994 c 0,0 -1.674293,-1.358389 -2.811549,-2.149554 0.505447,-1.682718 1.194821,-4.6044835 1.194821,-4.6044835 0,0 -3.053744,3.7648795 -3.423703,4.7027645 -0.32503,0.819947 1.024233,1.55074 1.646915,1.177972 1.333819,0.386808 3.393516,0.873301 3.393516,0.873301 z" />
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr-invert.png
new file mode 100644 (file)
index 0000000..056e781
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr-invert.svg
new file mode 100644 (file)
index 0000000..3ea25f4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M11 13L5 6h15l-6 7v7c-1.7 0-3-1.3-3-3v-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr.png
new file mode 100644 (file)
index 0000000..df174d6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-ltr.svg
new file mode 100644 (file)
index 0000000..8d5bf44
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M11 13L5 6h15l-6 7v7c-1.7 0-3-1.3-3-3v-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl-invert.png
new file mode 100644 (file)
index 0000000..7d4f60a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl-invert.svg
new file mode 100644 (file)
index 0000000..1fa603f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g256">
+        <path d="M14 13l6-7H5l6 7v7c1.7 0 3-1.3 3-3v-4z" id="path258"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl.png
new file mode 100644 (file)
index 0000000..1204eb1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/funnel-rtl.svg
new file mode 100644 (file)
index 0000000..ec54b1b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g256">
+        <path d="M14 13l6-7H5l6 7v7c1.7 0 3-1.3 3-3v-4z" id="path258"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/heart-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/heart-invert.png
new file mode 100644 (file)
index 0000000..b631396
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/heart-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/heart-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/heart-invert.svg
new file mode 100644 (file)
index 0000000..fc78226
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M15 7c-2 0-3 2-3 2s-1-2-3-2c-2.5 0-4 2-4 4 0 4 5 5 7 8 2-3 7-4 7-8 0-2-1.5-4-4-4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/heart.png b/resources/lib/oojs-ui/themes/apex/images/icons/heart.png
new file mode 100644 (file)
index 0000000..0bd2124
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/heart.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/heart.svg b/resources/lib/oojs-ui/themes/apex/images/icons/heart.svg
new file mode 100644 (file)
index 0000000..6433201
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15 7c-2 0-3 2-3 2s-1-2-3-2c-2.5 0-4 2-4 4 0 4 5 5 7 8 2-3 7-4 7-8 0-2-1.5-4-4-4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr-invert.png
new file mode 100644 (file)
index 0000000..1e9d92d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr-invert.svg
new file mode 100644 (file)
index 0000000..131bbdb
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M14.5 4C11.5 4 9 6.5 9 9.5c0 1 .3 1.9.7 2.8L4 18v2h4v-2h2v-2h2l1.2-1.2c.4.1.9.2 1.3.2 3 0 5.5-2.5 5.5-5.5S17.5 4 14.5 4zM16 9c-.8 0-1.5-.7-1.5-1.5S15.2 6 16 6s1.5.7 1.5 1.5S16.8 9 16 9z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr.png
new file mode 100644 (file)
index 0000000..ba9ce73
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/key-ltr.svg
new file mode 100644 (file)
index 0000000..fc0d3c3
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M14.5 4C11.5 4 9 6.5 9 9.5c0 1 .3 1.9.7 2.8L4 18v2h4v-2h2v-2h2l1.2-1.2c.4.1.9.2 1.3.2 3 0 5.5-2.5 5.5-5.5S17.5 4 14.5 4zM16 9c-.8 0-1.5-.7-1.5-1.5S15.2 6 16 6s1.5.7 1.5 1.5S16.8 9 16 9z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl-invert.png
new file mode 100644 (file)
index 0000000..9d46092
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl-invert.svg
new file mode 100644 (file)
index 0000000..fbd3329
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M9.5 4c3 0 5.5 2.5 5.5 5.5 0 1-.3 1.9-.7 2.8L20 18v2h-4v-2h-2v-2h-2l-1.2-1.2c-.4.1-.9.2-1.3.2-3 0-5.5-2.5-5.5-5.5S6.5 4 9.5 4zM8 9c.8 0 1.5-.7 1.5-1.5S8.8 6 8 6s-1.5.7-1.5 1.5S7.2 9 8 9z" id="path336"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl.png
new file mode 100644 (file)
index 0000000..65ed300
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/key-rtl.svg
new file mode 100644 (file)
index 0000000..8975b66
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M9.5 4c3 0 5.5 2.5 5.5 5.5 0 1-.3 1.9-.7 2.8L20 18v2h-4v-2h-2v-2h-2l-1.2-1.2c-.4.1-.9.2-1.3.2-3 0-5.5-2.5-5.5-5.5S6.5 4 9.5 4zM8 9c.8 0 1.5-.7 1.5-1.5S8.8 6 8 6s-1.5.7-1.5 1.5S7.2 9 8 9z" id="path336"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr-invert.png
new file mode 100644 (file)
index 0000000..1dcd4c3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr-invert.svg
new file mode 100644 (file)
index 0000000..84479e8
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M3 7v9c0 1.7 1.3 3 3 3h15V7H3zm8 2h2v2h-2V9zm0 3h2v2h-2v-2zM8 9h2v2H8V9zm0 3h2v2H8v-2zm-1 5H6c-.6 0-1-.4-1-1v-1h2v2zm0-3H5v-2h2v2zm0-3H5V9h2v2zm9 6H8v-2h8v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm3 6h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr.png
new file mode 100644 (file)
index 0000000..7af2472
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-ltr.svg
new file mode 100644 (file)
index 0000000..2bb795e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M3 7v9c0 1.7 1.3 3 3 3h15V7H3zm8 2h2v2h-2V9zm0 3h2v2h-2v-2zM8 9h2v2H8V9zm0 3h2v2H8v-2zm-1 5H6c-.6 0-1-.4-1-1v-1h2v2zm0-3H5v-2h2v2zm0-3H5V9h2v2zm9 6H8v-2h8v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm3 6h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl-invert.png
new file mode 100644 (file)
index 0000000..61c95be
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl-invert.svg
new file mode 100644 (file)
index 0000000..2700729
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g346">
+        <path d="M21 7v9c0 1.7-1.3 3-3 3H3V7h18zm-8 2h-2v2h2V9zm0 3h-2v2h2v-2zm3-3h-2v2h2V9zm0 3h-2v2h2v-2zm1 5h1c.6 0 1-.4 1-1v-1h-2v2zm0-3h2v-2h-2v2zm0-3h2V9h-2v2zm-9 6h8v-2H8v2zm0-3h2v-2H8v2zm0-3h2V9H8v2zm-3 6h2v-2H5v2zm0-3h2v-2H5v2zm0-3h2V9H5v2z" id="path348"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl.png
new file mode 100644 (file)
index 0000000..b6e9b6e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/keyboard-rtl.svg
new file mode 100644 (file)
index 0000000..b7b47cc
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g346">
+        <path d="M21 7v9c0 1.7-1.3 3-3 3H3V7h18zm-8 2h-2v2h2V9zm0 3h-2v2h2v-2zm3-3h-2v2h2V9zm0 3h-2v2h2v-2zm1 5h1c.6 0 1-.4 1-1v-1h-2v2zm0-3h2v-2h-2v2zm0-3h2V9h-2v2zm-9 6h8v-2H8v2zm0-3h2v-2H8v2zm0-3h2V9H8v2zm-3 6h2v-2H5v2zm0-3h2v-2H5v2zm0-3h2V9H5v2z" id="path348"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr-invert.png
new file mode 100644 (file)
index 0000000..52467f2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr-invert.svg
new file mode 100644 (file)
index 0000000..dcbf49e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M15 14v3l5-4.5L15 8v3H8c0 1.7 1.3 3 3 3h4zm-1-9H4v15h10v-2H6V7h8V5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr.png
new file mode 100644 (file)
index 0000000..a08b629
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-ltr.svg
new file mode 100644 (file)
index 0000000..61c369f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M15 14v3l5-4.5L15 8v3H8c0 1.7 1.3 3 3 3h4zm-1-9H4v15h10v-2H6V7h8V5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl-invert.png
new file mode 100644 (file)
index 0000000..734b5f2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl-invert.svg
new file mode 100644 (file)
index 0000000..e953bab
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g402">
+        <path d="M9 14v3l-5-4.5L9 8v3h7c0 1.7-1.3 3-3 3H9zm1-9h10v15H10v-2h8V7h-8V5z" id="path404"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl.png
new file mode 100644 (file)
index 0000000..135df45
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/logOut-rtl.svg
new file mode 100644 (file)
index 0000000..5cb4687
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g402">
+        <path d="M9 14v3l-5-4.5L9 8v3h7c0 1.7-1.3 3-3 3H9zm1-9h10v15H10v-2h8V7h-8V5z" id="path404"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr-invert.png
new file mode 100644 (file)
index 0000000..c1a9fab
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr-invert.svg
new file mode 100644 (file)
index 0000000..9febfff
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g4">
+        <path d="M12 5l2.5 2.5L11 11c-1.2 1.2-1.2 2.8 0 4l5.5-5.5L19 12V5h-7zm5 12H8c-.6 0-1-.4-1-1V7h3L8 5H5v11c0 1.7 1.3 3 3 3h11v-3l-2-2v3z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr.png
new file mode 100644 (file)
index 0000000..ed7b930
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-ltr.svg
new file mode 100644 (file)
index 0000000..02e24f6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M12 5l2.5 2.5L11 11c-1.2 1.2-1.2 2.8 0 4l5.5-5.5L19 12V5h-7zm5 12H8c-.6 0-1-.4-1-1V7h3L8 5H5v11c0 1.7 1.3 3 3 3h11v-3l-2-2v3z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl-invert.png
new file mode 100644 (file)
index 0000000..8dd0188
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl-invert.svg
new file mode 100644 (file)
index 0000000..e72ecf5
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g462">
+        <path d="M12 5L9.5 7.5 13 11c1.2 1.2 1.2 2.8 0 4L7.5 9.5 5 12V5h7zM7 17h9c.6 0 1-.4 1-1V7h-3l2-2h3v11c0 1.7-1.3 3-3 3H5v-3l2-2v3z" id="path464"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl.png
new file mode 100644 (file)
index 0000000..46567c7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/newWindow-rtl.svg
new file mode 100644 (file)
index 0000000..16ad8b4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g462">
+        <path d="M12 5L9.5 7.5 13 11c1.2 1.2 1.2 2.8 0 4L7.5 9.5 5 12V5h7zM7 17h9c.6 0 1-.4 1-1V7h-3l2-2h3v11c0 1.7-1.3 3-3 3H5v-3l2-2v3z" id="path464"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr-invert.png
new file mode 100644 (file)
index 0000000..786beb1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr-invert.svg
new file mode 100644 (file)
index 0000000..08c2c36
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M18 8h-1V4H7v4H3v6c0 1.7 1.3 3 3 3h1v3h10v-3h4v-6c0-1.7-1.3-3-3-3zM8 5h8v3H8V5zm8 14H8v-6h8v6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr.png
new file mode 100644 (file)
index 0000000..051ab1d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/printer-ltr.svg
new file mode 100644 (file)
index 0000000..7081606
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M18 8h-1V4H7v4H3v6c0 1.7 1.3 3 3 3h1v3h10v-3h4v-6c0-1.7-1.3-3-3-3zM8 5h8v3H8V5zm8 14H8v-6h8v6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl-invert.png
new file mode 100644 (file)
index 0000000..bd37410
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl-invert.svg
new file mode 100644 (file)
index 0000000..19d6b2e
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M6 8h1V4h10v4h4v6c0 1.7-1.3 3-3 3h-1v3H7v-3H3v-6c0-1.7 1.3-3 3-3zm10-3H8v3h8V5zM8 19h8v-6H8v6z" id="path532"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl.png
new file mode 100644 (file)
index 0000000..18e247d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/printer-rtl.svg
new file mode 100644 (file)
index 0000000..79fd4e1
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M6 8h1V4h10v4h4v6c0 1.7-1.3 3-3 3h-1v3H7v-3H3v-6c0-1.7 1.3-3 3-3zm10-3H8v3h8V5zM8 19h8v-6H8v6z" id="path532"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/remove.png b/resources/lib/oojs-ui/themes/apex/images/icons/remove.png
deleted file mode 100644 (file)
index 9dc34b8..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/remove.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/remove.svg b/resources/lib/oojs-ui/themes/apex/images/icons/remove.svg
deleted file mode 100644 (file)
index ef5f97b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="remove">
-        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize-invert.png
new file mode 100644 (file)
index 0000000..329da36
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize-invert.svg
new file mode 100644 (file)
index 0000000..d1d5e10
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="Layer_1">
+        <g>
+            <circle cx="11.5" cy="8.5" r="2.5"/>
+            <path d="M16.3 8.7L17 8l-.8-.8.4-.8-1.1-.5.1-.9-1.2-.2-.1-.9-1.2.2-.4-.8-1.1.5L11 3l-.8.8-.9-.4-.5 1.1-.9-.2-.2 1.2-.9.2.2 1.2-.9.4.5 1.1L6 9l.8.8-.4.8 1.1.5-.1.9 1.2.2.1.9 1.2-.2.4.8 1.1-.5.6.8.8-.8.8.4.5-1.1.9.1.2-1.2.9-.1-.2-1.2.8-.4-.4-1zM11.5 12C9.6 12 8 10.4 8 8.5S9.6 5 11.5 5 15 6.6 15 8.5 13.4 12 11.5 12zm.5 3l-.7-.7-1.1.6-.4-.7-.8.3V23l2.5-3 2.5 3v-8.5l-1-.5z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize.png b/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize.png
new file mode 100644 (file)
index 0000000..304a4fa
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize.svg b/resources/lib/oojs-ui/themes/apex/images/icons/ribbonPrize.svg
new file mode 100644 (file)
index 0000000..d15f387
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_1">
+        <g>
+            <circle cx="11.5" cy="8.5" r="2.5"/>
+            <path d="M16.3 8.7L17 8l-.8-.8.4-.8-1.1-.5.1-.9-1.2-.2-.1-.9-1.2.2-.4-.8-1.1.5L11 3l-.8.8-.9-.4-.5 1.1-.9-.2-.2 1.2-.9.2.2 1.2-.9.4.5 1.1L6 9l.8.8-.4.8 1.1.5-.1.9 1.2.2.1.9 1.2-.2.4.8 1.1-.5.6.8.8-.8.8.4.5-1.1.9.1.2-1.2.9-.1-.2-1.2.8-.4-.4-1zM11.5 12C9.6 12 8 10.4 8 8.5S9.6 5 11.5 5 15 6.6 15 8.5 13.4 12 11.5 12zm.5 3l-.7-.7-1.1.6-.4-.7-.8.3V23l2.5-3 2.5 3v-8.5l-1-.5z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr-invert.png
new file mode 100644 (file)
index 0000000..9c2fe07
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr-invert.svg
new file mode 100644 (file)
index 0000000..7f7ef3a
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M18.1 5.1c0 .3-.1.6-.3.9l-1.4 1.4-.9-.8 2.2-2.2c.3.1.4.4.4.7zm-.5 5.3h3.2c0 .3-.1.6-.4.9s-.5.4-.8.4h-2v-1.3zm-6.2-5V2.2c.3 0 .6.1.9.4s.4.5.4.8v2h-1.3zm6.4 11.7c-.3 0-.6-.1-.8-.3l-1.4-1.4.8-.8 2.2 2.2c-.2.2-.5.3-.8.3zM6.2 4.9c.3 0 .6.1.8.3l1.4 1.4-.8.9-2.2-2.3c.2-.2.5-.3.8-.3zm5.2 11.7h1.2v3.2c-.3 0-.6-.1-.9-.4s-.4-.5-.4-.8l.1-2zm-7-6.2h2v1.2H3.2c0-.3.1-.6.4-.9s.5-.3.8-.3zM6.2 16l1.4-1.4.8.8-2.2 2.2c-.2-.2-.3-.5-.3-.8s.1-.6.3-.8z"/>
+    <circle cx="12" cy="11" r="4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr.png
new file mode 100644 (file)
index 0000000..459f4c9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/sun-ltr.svg
new file mode 100644 (file)
index 0000000..4bde183
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M18.1 5.1c0 .3-.1.6-.3.9l-1.4 1.4-.9-.8 2.2-2.2c.3.1.4.4.4.7zm-.5 5.3h3.2c0 .3-.1.6-.4.9s-.5.4-.8.4h-2v-1.3zm-6.2-5V2.2c.3 0 .6.1.9.4s.4.5.4.8v2h-1.3zm6.4 11.7c-.3 0-.6-.1-.8-.3l-1.4-1.4.8-.8 2.2 2.2c-.2.2-.5.3-.8.3zM6.2 4.9c.3 0 .6.1.8.3l1.4 1.4-.8.9-2.2-2.3c.2-.2.5-.3.8-.3zm5.2 11.7h1.2v3.2c-.3 0-.6-.1-.9-.4s-.4-.5-.4-.8l.1-2zm-7-6.2h2v1.2H3.2c0-.3.1-.6.4-.9s.5-.3.8-.3zM6.2 16l1.4-1.4.8.8-2.2 2.2c-.2-.2-.3-.5-.3-.8s.1-.6.3-.8z"/>
+    <circle cx="12" cy="11" r="4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl-invert.png
new file mode 100644 (file)
index 0000000..3481d18
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl-invert.svg
new file mode 100644 (file)
index 0000000..f90bc0c
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M5.9 5.1c0 .3.1.6.3.9l1.4 1.4.9-.8-2.2-2.2c-.3.1-.4.4-.4.7zm.5 5.3H3.2c0 .3.1.6.4.9.3.3.5.4.8.4h2v-1.3zm6.2-5V2.2c-.3 0-.6.1-.9.4-.3.3-.4.5-.4.8v2h1.3zM6.2 17.1c.3 0 .6-.1.8-.3l1.4-1.4-.8-.8-2.2 2.2c.2.2.5.3.8.3zM17.8 4.9c-.3 0-.6.1-.8.3l-1.4 1.4.8.9 2.2-2.3c-.2-.2-.5-.3-.8-.3zm-5.2 11.7h-1.2v3.2c.3 0 .6-.1.9-.4.3-.3.4-.5.4-.8l-.1-2zm7-6.2h-2v1.2h3.2c0-.3-.1-.6-.4-.9-.3-.3-.5-.3-.8-.3zM17.8 16l-1.4-1.4-.8.8 2.2 2.2c.2-.2.3-.5.3-.8 0-.3-.1-.6-.3-.8z" id="path678"/>
+    <circle cx="12" cy="11" r="4" id="circle680" transform="matrix(-1 0 0 1 24 0)"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl.png
new file mode 100644 (file)
index 0000000..8a0fc83
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/sun-rtl.svg
new file mode 100644 (file)
index 0000000..2570610
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M5.9 5.1c0 .3.1.6.3.9l1.4 1.4.9-.8-2.2-2.2c-.3.1-.4.4-.4.7zm.5 5.3H3.2c0 .3.1.6.4.9.3.3.5.4.8.4h2v-1.3zm6.2-5V2.2c-.3 0-.6.1-.9.4-.3.3-.4.5-.4.8v2h1.3zM6.2 17.1c.3 0 .6-.1.8-.3l1.4-1.4-.8-.8-2.2 2.2c.2.2.5.3.8.3zM17.8 4.9c-.3 0-.6.1-.8.3l-1.4 1.4.8.9 2.2-2.3c-.2-.2-.5-.3-.8-.3zm-5.2 11.7h-1.2v3.2c.3 0 .6-.1.9-.4.3-.3.4-.5.4-.8l-.1-2zm7-6.2h-2v1.2h3.2c0-.3-.1-.6-.4-.9-.3-.3-.5-.3-.8-.3zM17.8 16l-1.4-1.4-.8.8 2.2 2.2c.2-.2.3-.5.3-.8 0-.3-.1-.6-.3-.8z" id="path678"/>
+    <circle cx="12" cy="11" r="4" id="circle680" transform="matrix(-1 0 0 1 24 0)"/>
+</svg>
index dfee886..9dc34b8 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/trash.png and b/resources/lib/oojs-ui/themes/apex/images/icons/trash.png differ
index 76502dc..bb8167a 100644 (file)
@@ -1,4 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2H6zm1 1h10l-1 11H8z"/>
+    <g id="trash-can">
+        <path d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
+    </g>
 </svg>
index 594836e..89448ed 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png and b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png differ
index 071bd32..47fa0c1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g>
-        <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
+    <g id="trash-can-undo">
+        <path d="M4.5 3.5l-1 1L6 7v2h1v7.97L8 18h6.97l.03-.03 1-.97 2.5 2.5 1-1L16 15l-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1zM9 5v1l1 1h6v1h-5l1 1h3v3l1 1V9h1V6h-3V5zM8 9l1 1v6h1v-5l1 1v4h1v-3l1 1v2h1v-1l1 1v1H8zm5 1l1 1v-1z"/>
     </g>
 </svg>
index 182e56d..51abef3 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png and b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png differ
index 69c17b4..b247bfb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="g714">
-        <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z" id="path716"/>
+    <g id="trash-can-undo">
+        <path d="M18.5 3.5l1 1L17 7v2h-1v7.97L15 18H8.03L8 17.97 7 17l-2.5 2.5-1-1L7 15l1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1zM14 5v1l-1 1H7v1h5l-1 1H8v3l-1 1V9H6V6h3V5zm1 4l-1 1v6h-1v-5l-1 1v4h-1v-3l-1 1v2H9v-1l-1 1v1h7zm-5 1l-1 1v-1z"/>
     </g>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr-invert.png
new file mode 100644 (file)
index 0000000..19b4561
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr-invert.svg
new file mode 100644 (file)
index 0000000..5e4a2f3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M13 14h5v1h-5v-1zm0 3h5v-1h-5v1zm0 1h5v1h-5v-1zm-1-5v3l-5 3 1-6-4-3 6-1 2-5s1.9 5 2 5l6 1-4 3h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr.png
new file mode 100644 (file)
index 0000000..4b94c1a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-ltr.svg
new file mode 100644 (file)
index 0000000..79c7d5c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M13 14h5v1h-5v-1zm0 3h5v-1h-5v1zm0 1h5v1h-5v-1zm-1-5v3l-5 3 1-6-4-3 6-1 2-5s1.9 5 2 5l6 1-4 3h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl-invert.png
new file mode 100644 (file)
index 0000000..48bf383
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl-invert.svg
new file mode 100644 (file)
index 0000000..073ef3d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g780">
+        <path d="M11 14H6v1h5v-1zm0 3H6v-1h5v1zm0 1H6v1h5v-1zm1-5v3l5 3-1-6 4-3-6-1-2-5s-1.9 5-2 5l-6 1 4 3h4z" id="path782"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl.png
new file mode 100644 (file)
index 0000000..f9cc5ea
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/watchlist-rtl.svg
new file mode 100644 (file)
index 0000000..8bfe43e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g780">
+        <path d="M11 14H6v1h5v-1zm0 3H6v-1h5v1zm0 1H6v1h5v-1zm1-5v3l5 3-1-6 4-3-6-1-2-5s-1.9 5-2 5l-6 1 4 3h4z" id="path782"/>
+    </g>
+</svg>
index 01a4e0d..fc058cd 100644 (file)
@@ -63,7 +63,7 @@
                        "ltr": "images/icons/arched-arrow-ltr.svg",
                        "rtl": "images/icons/arched-arrow-rtl.svg"
                } },
-               "remove": { "file": "images/icons/remove.svg", "variants": [ "destructive" ] },
+               "remove": { "file": "images/icons/trash.svg", "variants": [ "destructive" ] },
                "search": { "file": {
                        "ltr": "images/icons/search-ltr.svg",
                        "rtl": "images/icons/search-rtl.svg"
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.png
deleted file mode 100644 (file)
index 84e6498..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.svg
deleted file mode 100644 (file)
index c242b8a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #D11D13 }</style>
-    <g id="remove">
-        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.png
deleted file mode 100644 (file)
index 3343de8..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.svg
deleted file mode 100644 (file)
index 0e2c8ba..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <g id="remove">
-        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.png
deleted file mode 100644 (file)
index 9dc34b8..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.svg
deleted file mode 100644 (file)
index ef5f97b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="remove">
-        <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0H9v6h1v-6zm4 0h-1v6h1v-6zm0-4V5H9v1H6v3h1v7.966l1 1.03v-.073V18h6.984l.016-.018v.015l1-1.03V9h1V6h-3zm1 11H8V9h7v8zm1-9H7V7h9v1z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-destructive.png
new file mode 100644 (file)
index 0000000..ca4a7b9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-destructive.svg
new file mode 100644 (file)
index 0000000..7ef05a6
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #D11D13 }</style>
+    <path d="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2H6zm1 1h10l-1 11H8z"/>
+</svg>
index 005ade5..f29e8b8 100644 (file)
@@ -1054,7 +1054,7 @@ class ParserTest {
                        'media_type' => MEDIATYPE_BITMAP,
                        'mime' => 'image/jpeg',
                        'metadata' => serialize( array() ),
-                       'sha1' => wfBaseConvert( '1', 16, 36, 31 ),
+                       'sha1' => Wikimedia\base_convert( '1', 16, 36, 31 ),
                        'fileExists' => true
                ), $this->db->timestamp( '20010115123500' ), $user );
 
@@ -1068,7 +1068,7 @@ class ParserTest {
                        'media_type' => MEDIATYPE_BITMAP,
                        'mime' => 'image/png',
                        'metadata' => serialize( array() ),
-                       'sha1' => wfBaseConvert( '2', 16, 36, 31 ),
+                       'sha1' => Wikimedia\base_convert( '2', 16, 36, 31 ),
                        'fileExists' => true
                ), $this->db->timestamp( '20130225203040' ), $user );
 
@@ -1081,7 +1081,7 @@ class ParserTest {
                                'media_type'  => MEDIATYPE_DRAWING,
                                'mime'        => 'image/svg+xml',
                                'metadata'    => serialize( array() ),
-                               'sha1'        => wfBaseConvert( '', 16, 36, 31 ),
+                               'sha1'        => Wikimedia\base_convert( '', 16, 36, 31 ),
                                'fileExists'  => true
                ), $this->db->timestamp( '20010115123500' ), $user );
 
@@ -1095,7 +1095,7 @@ class ParserTest {
                        'media_type' => MEDIATYPE_BITMAP,
                        'mime' => 'image/jpeg',
                        'metadata' => serialize( array() ),
-                       'sha1' => wfBaseConvert( '3', 16, 36, 31 ),
+                       'sha1' => Wikimedia\base_convert( '3', 16, 36, 31 ),
                        'fileExists' => true
                ), $this->db->timestamp( '20010115123500' ), $user );
 
@@ -1134,7 +1134,7 @@ class ParserTest {
 </OBJECT>
 </BODY>
 </DjVuXML>',
-                       'sha1' => wfBaseConvert( '', 16, 36, 31 ),
+                       'sha1' => Wikimedia\base_convert( '', 16, 36, 31 ),
                        'fileExists' => true
                ), $this->db->timestamp( '20010115123600' ), $user );
        }
index 95c6092..9bef8e0 100644 (file)
@@ -1716,7 +1716,7 @@ class FileBackendTest extends MediaWikiTestCase {
                $this->assertEquals( strlen( $fileBContents ),
                        $this->backend->getFileSize( array( 'src' => $fileC ) ),
                        "Correct file size of $fileC" );
-               $this->assertEquals( wfBaseConvert( sha1( $fileBContents ), 16, 36, 31 ),
+               $this->assertEquals( Wikimedia\base_convert( sha1( $fileBContents ), 16, 36, 31 ),
                        $this->backend->getFileSha1Base36( array( 'src' => $fileC ) ),
                        "Correct file SHA-1 of $fileC" );
        }
@@ -1815,7 +1815,7 @@ class FileBackendTest extends MediaWikiTestCase {
                $this->assertEquals( strlen( $fileBContents ),
                        $this->backend->getFileSize( array( 'src' => $fileC ) ),
                        "Correct file size of $fileC" );
-               $this->assertEquals( wfBaseConvert( sha1( $fileBContents ), 16, 36, 31 ),
+               $this->assertEquals( Wikimedia\base_convert( sha1( $fileBContents ), 16, 36, 31 ),
                        $this->backend->getFileSha1Base36( array( 'src' => $fileC ) ),
                        "Correct file SHA-1 of $fileC" );
        }
@@ -1892,7 +1892,7 @@ class FileBackendTest extends MediaWikiTestCase {
                $this->assertEquals( strlen( $fileBContents ),
                        $this->backend->getFileSize( array( 'src' => $fileA ) ),
                        "Correct file size of $fileA" );
-               $this->assertEquals( wfBaseConvert( sha1( $fileBContents ), 16, 36, 31 ),
+               $this->assertEquals( Wikimedia\base_convert( sha1( $fileBContents ), 16, 36, 31 ),
                        $this->backend->getFileSha1Base36( array( 'src' => $fileA ) ),
                        "Correct file SHA-1 of $fileA" );
        }
index f7c428a..6948082 100644 (file)
@@ -243,7 +243,7 @@ class NewParserTest extends MediaWikiTestCase {
                                        'media_type' => MEDIATYPE_BITMAP,
                                        'mime' => 'image/jpeg',
                                        'metadata' => serialize( array() ),
-                                       'sha1' => wfBaseConvert( '1', 16, 36, 31 ),
+                                       'sha1' => Wikimedia\base_convert( '1', 16, 36, 31 ),
                                        'fileExists' => true ),
                                $this->db->timestamp( '20010115123500' ), $user
                        );
@@ -263,7 +263,7 @@ class NewParserTest extends MediaWikiTestCase {
                                        'media_type' => MEDIATYPE_BITMAP,
                                        'mime' => 'image/png',
                                        'metadata' => serialize( array() ),
-                                       'sha1' => wfBaseConvert( '2', 16, 36, 31 ),
+                                       'sha1' => Wikimedia\base_convert( '2', 16, 36, 31 ),
                                        'fileExists' => true ),
                                $this->db->timestamp( '20130225203040' ), $user
                        );
@@ -284,7 +284,7 @@ class NewParserTest extends MediaWikiTestCase {
                                        'media_type' => MEDIATYPE_BITMAP,
                                        'mime' => 'image/jpeg',
                                        'metadata' => serialize( array() ),
-                                       'sha1' => wfBaseConvert( '3', 16, 36, 31 ),
+                                       'sha1' => Wikimedia\base_convert( '3', 16, 36, 31 ),
                                        'fileExists' => true ),
                                $this->db->timestamp( '20010115123500' ), $user
                        );
@@ -299,7 +299,7 @@ class NewParserTest extends MediaWikiTestCase {
                                        'media_type'  => MEDIATYPE_DRAWING,
                                        'mime'        => 'image/svg+xml',
                                        'metadata'    => serialize( array() ),
-                                       'sha1'        => wfBaseConvert( '', 16, 36, 31 ),
+                                       'sha1'        => Wikimedia\base_convert( '', 16, 36, 31 ),
                                        'fileExists'  => true
                        ), $this->db->timestamp( '20010115123500' ), $user );
                }
@@ -340,7 +340,7 @@ class NewParserTest extends MediaWikiTestCase {
 </OBJECT>
 </BODY>
 </DjVuXML>',
-                               'sha1' => wfBaseConvert( '', 16, 36, 31 ),
+                               'sha1' => Wikimedia\base_convert( '', 16, 36, 31 ),
                                'fileExists' => true
                        ), $this->db->timestamp( '20140115123600' ), $user );
                }
index fedcc76..89b2c17 100644 (file)
@@ -18,7 +18,7 @@ class UIDGeneratorTest extends PHPUnit_Framework_TestCase {
                $this->assertEquals( true, ctype_digit( $id ), "UID made of digit characters" );
                $this->assertLessThanOrEqual( $digitlen, strlen( $id ),
                        "UID has the right number of digits" );
-               $this->assertLessThanOrEqual( $bits, strlen( wfBaseConvert( $id, 10, 2 ) ),
+               $this->assertLessThanOrEqual( $bits, strlen( Wikimedia\base_convert( $id, 10, 2 ) ),
                        "UID has the right number of bits" );
 
                $ids = array();
@@ -31,8 +31,8 @@ class UIDGeneratorTest extends PHPUnit_Framework_TestCase {
                $this->assertSame( array_unique( $ids ), $ids, "All generated IDs are unique." );
 
                foreach ( $ids as $id ) {
-                       $id_bin = wfBaseConvert( $id, 10, 2 );
-                       $lastId_bin = wfBaseConvert( $lastId, 10, 2 );
+                       $id_bin = Wikimedia\base_convert( $id, 10, 2 );
+                       $lastId_bin = Wikimedia\base_convert( $lastId, 10, 2 );
 
                        $this->assertGreaterThanOrEqual(
                                substr( $lastId_bin, 0, $tbits ),