]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - resources/Resources.php
MediaWiki 1.30.2-scripts2
[autoinstallsdev/mediawiki.git] / resources / Resources.php
1 <?php
2 /**
3  * Definition of core ResourceLoader modules.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  * http://www.gnu.org/copyleft/gpl.html
19  *
20  * @file
21  */
22
23 if ( !defined( 'MEDIAWIKI' ) ) {
24         die( 'Not an entry point.' );
25 }
26
27 return [
28
29         /**
30          * Special modules who have their own classes
31          */
32         'startup' => [ 'class' => 'ResourceLoaderStartUpModule' ],
33
34         // Scripts managed by the local wiki (stored in the MediaWiki namespace)
35         'site' => [ 'class' => 'ResourceLoaderSiteModule' ],
36         'site.styles' => [ 'class' => 'ResourceLoaderSiteStylesModule' ],
37         'noscript' => [
38                 'class' => 'ResourceLoaderWikiModule',
39                 'styles' => [ 'MediaWiki:Noscript.css' ],
40                 'group' => 'noscript',
41         ],
42         'filepage' => [
43                 'class' => 'ResourceLoaderWikiModule',
44                 'styles' => [ 'MediaWiki:Filepage.css' ],
45         ],
46         'user.groups' => [
47                 // Merged into 'user' since MediaWiki 1.28 - kept for back-compat
48                 'dependencies' => 'user',
49                 'targets' => [ 'desktop', 'mobile' ],
50         ],
51
52         // Scripts managed by the current user (stored in their user space)
53         'user' => [ 'class' => 'ResourceLoaderUserModule' ],
54         'user.styles' => [ 'class' => 'ResourceLoaderUserStylesModule' ],
55
56         // Populate mediawiki.user placeholders with information about the current user
57         'user.defaults' => [ 'class' => 'ResourceLoaderUserDefaultsModule' ],
58         'user.options' => [ 'class' => 'ResourceLoaderUserOptionsModule' ],
59         'user.tokens' => [ 'class' => 'ResourceLoaderUserTokensModule' ],
60
61         // Scripts for the dynamic language specific data, like grammar forms.
62         'mediawiki.language.data' => [ 'class' => 'ResourceLoaderLanguageDataModule' ],
63
64         /* MediaWiki base skinning modules */
65
66         /**
67          * Common skin styles, grouped into three graded levels.
68          *
69          * Level 1 "elements":
70          *     The base level that only contains the most basic of common skin styles.
71          *     Only styles for single elements are included, no styling for complex structures like the
72          *     TOC is present. This level is for skins that want to implement the entire style of even
73          *     content area structures like the TOC themselves.
74          *
75          * Level 2 "content":
76          *     The most commonly used level for skins implemented from scratch. This level includes all
77          *     the single element styles from "elements" as well as styles for complex structures such
78          *     as the TOC that are output in the content area by MediaWiki rather than the skin.
79          *     Essentially this is the common level that lets skins leave the style of the content area
80          *     as it is normally styled, while leaving the rest of the skin up to the skin
81          *     implementation.
82          *
83          * Level 3 "interface":
84          *     The highest level, this stylesheet contains extra common styles for classes like
85          *     .firstHeading, #contentSub, et cetera which are not outputted by MediaWiki but are common
86          *     to skins like MonoBook, Vector, etc... Essentially this level is for styles that are
87          *     common to MonoBook clones. And since practically every skin that currently exists within
88          *     core is a MonoBook clone, all our core skins currently use this level.
89          *
90          * These modules are typically loaded by addModuleStyles(), which has absolutely no concept of
91          * dependency management. As a result they contain duplicate stylesheet references instead of
92          * setting 'dependencies' to the lower level the module is based on. For this reason avoid
93          * including more than one of them into your skin as this will result in duplicate CSS.
94          */
95         'mediawiki.skinning.elements' => [
96                 'styles' => [
97                         'resources/src/mediawiki.skinning/elements.css' => [ 'media' => 'screen' ],
98                 ],
99         ],
100         'mediawiki.skinning.content' => [
101                 'styles' => [
102                         'resources/src/mediawiki.skinning/elements.css' => [ 'media' => 'screen' ],
103                         'resources/src/mediawiki.skinning/content.css' => [ 'media' => 'screen' ],
104                 ],
105         ],
106         // Used in the web installer. Test it after modifying this definition!
107         'mediawiki.skinning.interface' => [
108                 'class' => 'ResourceLoaderSkinModule',
109                 'styles' => [
110                         'resources/src/mediawiki.skinning/elements.css' => [ 'media' => 'screen' ],
111                         'resources/src/mediawiki.skinning/content.css' => [ 'media' => 'screen' ],
112                         'resources/src/mediawiki.skinning/interface.css' => [ 'media' => 'screen' ],
113                 ],
114         ],
115
116         'mediawiki.skinning.content.parsoid' => [
117                 // Style Parsoid HTML+RDFa output consistent with wikitext from PHP parser
118                 // with the interface.css styles; skinStyles should be used if your
119                 // skin over-rides common content styling.
120                 'skinStyles' => [
121                         'default' => 'resources/src/mediawiki.skinning/content.parsoid.less',
122                 ],
123                 'targets' => [ 'desktop', 'mobile' ],
124         ],
125
126         'mediawiki.skinning.content.externallinks' => [
127                 'styles' => [
128                         'resources/src/mediawiki.skinning/content.externallinks.css' => [ 'media' => 'screen' ],
129                 ],
130         ],
131
132         /* jQuery */
133
134         'jquery' => [
135                 'scripts' => ( $GLOBALS['wgUsejQueryThree'] ?
136                         [
137                                 'resources/lib/jquery/jquery3.js',
138                                 'resources/lib/jquery/jquery.migrate.js',
139                         ] : [
140                                 'resources/lib/jquery/jquery.js',
141                         ]
142                 ),
143                 'raw' => true,
144                 'targets' => [ 'desktop', 'mobile' ],
145         ],
146
147         /* jQuery Plugins */
148
149         'jquery.accessKeyLabel' => [
150                 'scripts' => 'resources/src/jquery/jquery.accessKeyLabel.js',
151                 'dependencies' => [
152                         'jquery.client',
153                         'mediawiki.RegExp',
154                 ],
155                 'messages' => [ 'brackets', 'word-separator' ],
156                 'targets' => [ 'mobile', 'desktop' ],
157         ],
158         'jquery.appear' => [
159                 'deprecated' => 'Please use "mediawiki.viewport" instead.',
160                 'scripts' => 'resources/lib/jquery/jquery.appear.js',
161         ],
162         'jquery.async' => [
163                 'scripts' => 'resources/lib/jquery/jquery.async.js',
164         ],
165         'jquery.autoEllipsis' => [
166                 'deprecated' => 'Use CSS text-overflow instead.',
167                 'scripts' => 'resources/src/jquery/jquery.autoEllipsis.js',
168                 'dependencies' => 'jquery.highlightText',
169                 'targets' => [ 'desktop', 'mobile' ],
170         ],
171         'jquery.badge' => [
172                 'deprecated' => 'Please use Notifications instead.',
173                 'scripts' => 'resources/src/jquery/jquery.badge.js',
174                 'styles' => 'resources/src/jquery/jquery.badge.css',
175                 'dependencies' => 'mediawiki.language',
176         ],
177         'jquery.byteLength' => [
178                 'scripts' => 'resources/src/jquery/jquery.byteLength.js',
179                 'targets' => [ 'desktop', 'mobile' ],
180         ],
181         'jquery.byteLimit' => [
182                 'scripts' => 'resources/src/jquery/jquery.byteLimit.js',
183                 'dependencies' => 'jquery.byteLength',
184                 'targets' => [ 'desktop', 'mobile' ],
185         ],
186         'jquery.checkboxShiftClick' => [
187                 'scripts' => 'resources/src/jquery/jquery.checkboxShiftClick.js',
188                 'targets' => [ 'desktop', 'mobile' ],
189         ],
190         'jquery.chosen' => [
191                 'scripts' => 'resources/lib/jquery.chosen/chosen.jquery.js',
192                 'styles' => 'resources/lib/jquery.chosen/chosen.css',
193         ],
194         'jquery.client' => [
195                 'scripts' => 'resources/lib/jquery.client/jquery.client.js',
196                 'targets' => [ 'desktop', 'mobile' ],
197         ],
198         'jquery.color' => [
199                 'scripts' => 'resources/src/jquery/jquery.color.js',
200                 'dependencies' => 'jquery.colorUtil',
201         ],
202         'jquery.colorUtil' => [
203                 'scripts' => 'resources/src/jquery/jquery.colorUtil.js',
204         ],
205         'jquery.confirmable' => [
206                 'scripts' => [
207                         'resources/src/jquery/jquery.confirmable.js',
208                         'resources/src/jquery/jquery.confirmable.mediawiki.js',
209                 ],
210                 'messages' => [
211                         'confirmable-confirm',
212                         'confirmable-yes',
213                         'confirmable-no',
214                         'word-separator',
215                 ],
216                 'styles' => 'resources/src/jquery/jquery.confirmable.css',
217                 'dependencies' => 'mediawiki.jqueryMsg',
218         ],
219         'jquery.cookie' => [
220                 'scripts' => 'resources/lib/jquery/jquery.cookie.js',
221                 'targets' => [ 'desktop', 'mobile' ],
222         ],
223         'jquery.expandableField' => [
224                 'scripts' => 'resources/src/jquery/jquery.expandableField.js',
225         ],
226         'jquery.farbtastic' => [
227                 'scripts' => 'resources/src/jquery/jquery.farbtastic.js',
228                 'styles' => 'resources/src/jquery/jquery.farbtastic.css',
229                 'dependencies' => 'jquery.colorUtil',
230         ],
231         'jquery.footHovzer' => [
232                 'scripts' => 'resources/src/jquery/jquery.footHovzer.js',
233                 'styles' => 'resources/src/jquery/jquery.footHovzer.css',
234         ],
235         'jquery.form' => [
236                 'scripts' => 'resources/lib/jquery/jquery.form.js',
237         ],
238         'jquery.fullscreen' => [
239                 'scripts' => 'resources/lib/jquery/jquery.fullscreen.js',
240         ],
241         'jquery.getAttrs' => [
242                 'targets' => [ 'desktop', 'mobile' ],
243                 'scripts' => 'resources/src/jquery/jquery.getAttrs.js',
244                 'targets' => [ 'desktop', 'mobile' ],
245         ],
246         'jquery.hidpi' => [
247                 'scripts' => 'resources/src/jquery/jquery.hidpi.js',
248                 'targets' => [ 'desktop', 'mobile' ],
249         ],
250         'jquery.highlightText' => [
251                 'scripts' => 'resources/src/jquery/jquery.highlightText.js',
252                 'dependencies' => [
253                         'mediawiki.RegExp',
254                 ],
255                 'targets' => [ 'desktop', 'mobile' ],
256         ],
257         'jquery.hoverIntent' => [
258                 'scripts' => 'resources/lib/jquery/jquery.hoverIntent.js',
259         ],
260         'jquery.i18n' => [
261                 'scripts' => [
262                         'resources/lib/jquery.i18n/src/jquery.i18n.js',
263                         'resources/lib/jquery.i18n/src/jquery.i18n.messagestore.js',
264                         'resources/lib/jquery.i18n/src/jquery.i18n.parser.js',
265                         'resources/lib/jquery.i18n/src/jquery.i18n.emitter.js',
266                         'resources/lib/jquery.i18n/src/jquery.i18n.emitter.bidi.js',
267                         'resources/lib/jquery.i18n/src/jquery.i18n.language.js',
268                         'resources/lib/jquery.i18n/src/jquery.i18n.fallbacks.js',
269                 ],
270                 'dependencies' => 'mediawiki.libs.pluralruleparser',
271                 'languageScripts' => [
272                         'bs' => 'resources/lib/jquery.i18n/src/languages/bs.js',
273                         'dsb' => 'resources/lib/jquery.i18n/src/languages/dsb.js',
274                         'fi' => 'resources/lib/jquery.i18n/src/languages/fi.js',
275                         'ga' => 'resources/lib/jquery.i18n/src/languages/ga.js',
276                         'he' => 'resources/lib/jquery.i18n/src/languages/he.js',
277                         'hsb' => 'resources/lib/jquery.i18n/src/languages/hsb.js',
278                         'hu' => 'resources/lib/jquery.i18n/src/languages/hu.js',
279                         'hy' => 'resources/lib/jquery.i18n/src/languages/hy.js',
280                         'la' => 'resources/lib/jquery.i18n/src/languages/la.js',
281                         'ml' => 'resources/lib/jquery.i18n/src/languages/ml.js',
282                         'os' => 'resources/lib/jquery.i18n/src/languages/os.js',
283                         'ru' => 'resources/lib/jquery.i18n/src/languages/ru.js',
284                         'sl' => 'resources/lib/jquery.i18n/src/languages/sl.js',
285                         'uk' => 'resources/lib/jquery.i18n/src/languages/uk.js',
286                 ],
287                 'targets' => [ 'desktop', 'mobile' ],
288         ],
289         'jquery.localize' => [
290                 'scripts' => 'resources/src/jquery/jquery.localize.js',
291         ],
292         'jquery.makeCollapsible' => [
293                 'scripts' => 'resources/src/jquery/jquery.makeCollapsible.js',
294                 'styles' => 'resources/src/jquery/jquery.makeCollapsible.css',
295                 'messages' => [ 'collapsible-expand', 'collapsible-collapse' ],
296                 'targets' => [ 'desktop', 'mobile' ],
297         ],
298         'jquery.mockjax' => [
299                 'scripts' => 'resources/lib/jquery/jquery.mockjax.js',
300         ],
301         'jquery.mw-jump' => [
302                 'scripts' => 'resources/src/jquery/jquery.mw-jump.js',
303                 'targets' => [ 'desktop', 'mobile' ],
304         ],
305         'jquery.placeholder' => [
306                 'deprecated' => 'Use of "jquery.placeholder" is deprecated since MediaWiki 1.29.0',
307
308                 'scripts' => 'resources/src/jquery/jquery.placeholder.js',
309                 'targets' => [ 'desktop', 'mobile' ],
310         ],
311         'jquery.qunit' => [
312                 'scripts' => 'resources/lib/qunitjs/qunit.js',
313                 'styles' => 'resources/lib/qunitjs/qunit.css',
314                 'targets' => [ 'desktop', 'mobile' ],
315         ],
316         'jquery.spinner' => [
317                 'scripts' => 'resources/src/jquery/jquery.spinner.js',
318                 'styles' => 'resources/src/jquery/jquery.spinner.css',
319                 'targets' => [ 'desktop', 'mobile' ],
320         ],
321         'jquery.jStorage' => [
322                 'deprecated' => 'Please use "mediawiki.storage" instead.',
323                 'scripts' => 'resources/lib/jquery/jquery.jStorage.js',
324         ],
325         'jquery.suggestions' => [
326                 'targets' => [ 'desktop', 'mobile' ],
327                 'scripts' => 'resources/src/jquery/jquery.suggestions.js',
328                 'styles' => 'resources/src/jquery/jquery.suggestions.css',
329                 'dependencies' => 'jquery.highlightText',
330         ],
331         'jquery.tabIndex' => [
332                 'scripts' => 'resources/src/jquery/jquery.tabIndex.js',
333         ],
334         'jquery.tablesorter' => [
335                 'scripts' => 'resources/src/jquery/jquery.tablesorter.js',
336                 'styles' => 'resources/src/jquery/jquery.tablesorter.less',
337                 'messages' => [ 'sort-descending', 'sort-ascending' ],
338                 'dependencies' => [
339                         'mediawiki.RegExp',
340                         'mediawiki.language.months',
341                 ],
342         ],
343         'jquery.textSelection' => [
344                 'scripts' => 'resources/src/jquery/jquery.textSelection.js',
345                 'dependencies' => 'jquery.client',
346                 'targets' => [ 'mobile', 'desktop' ],
347         ],
348         'jquery.throttle-debounce' => [
349                 'scripts' => 'resources/lib/jquery/jquery.ba-throttle-debounce.js',
350                 'targets' => [ 'desktop', 'mobile' ],
351         ],
352         'jquery.xmldom' => [
353                 'scripts' => 'resources/lib/jquery/jquery.xmldom.js',
354         ],
355
356         /* jQuery Tipsy */
357
358         'jquery.tipsy' => [
359                 'deprecated' => true,
360                 'scripts' => 'resources/src/jquery.tipsy/jquery.tipsy.js',
361                 'styles' => 'resources/src/jquery.tipsy/jquery.tipsy.css',
362         ],
363
364         /* jQuery UI */
365
366         'jquery.ui.core' => [
367                 'deprecated' => 'Please use "mediawiki.ui.button" or "oojs-ui" instead.',
368                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.core.js',
369                 'dependencies' => [
370                         'jquery.ui.core.styles',
371                 ],
372                 'group' => 'jquery.ui',
373         ],
374         'jquery.ui.core.styles' => [
375                 'skinStyles' => [
376                         'default' => [
377                                 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css',
378                                 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.theme.css',
379                         ],
380                 ],
381                 'group' => 'jquery.ui',
382         ],
383         'jquery.ui.accordion' => [
384                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.accordion.js',
385                 'dependencies' => [
386                         'jquery.ui.core',
387                         'jquery.ui.widget',
388                 ],
389                 'skinStyles' => [
390                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.accordion.css',
391                 ],
392                 'group' => 'jquery.ui',
393         ],
394         'jquery.ui.autocomplete' => [
395                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.autocomplete.js',
396                 'dependencies' => [
397                         'jquery.ui.core',
398                         'jquery.ui.widget',
399                         'jquery.ui.position',
400                         'jquery.ui.menu',
401                 ],
402                 'skinStyles' => [
403                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.autocomplete.css',
404                 ],
405                 'group' => 'jquery.ui',
406         ],
407         'jquery.ui.button' => [
408                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.button.js',
409                 'dependencies' => [
410                         'jquery.ui.core',
411                         'jquery.ui.widget',
412                 ],
413                 'skinStyles' => [
414                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.button.css',
415                 ],
416                 'group' => 'jquery.ui',
417         ],
418         'jquery.ui.datepicker' => [
419                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.datepicker.js',
420                 'dependencies' => 'jquery.ui.core',
421                 'skinStyles' => [
422                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.datepicker.css',
423                 ],
424                 'languageScripts' => [
425                         'af' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-af.js',
426                         'ar' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ar.js',
427                         'ar-dz' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ar-DZ.js',
428                         'az' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-az.js',
429                         'bg' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-bg.js',
430                         'bs' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-bs.js',
431                         'ca' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ca.js',
432                         'cs' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-cs.js',
433                         'da' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-da.js',
434                         'de-at' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-de-AT.js',
435                         'de-ch' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-de-CH.js',
436                         'de' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-de.js',
437                         'el' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-el.js',
438                         'en-au' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-en-AU.js',
439                         'en-gb' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-en-GB.js',
440                         'en-nz' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-en-NZ.js',
441                         'eo' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-eo.js',
442                         'es' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-es.js',
443                         'et' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-et.js',
444                         'eu' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-eu.js',
445                         'fa' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fa.js',
446                         'fi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fi.js',
447                         'fo' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fo.js',
448                         'fr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fr.js',
449                         'fr-ch' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fr-CH.js',
450                         'gl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-gl.js',
451                         'he' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-he.js',
452                         'hi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hi.js',
453                         'hr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hr.js',
454                         'hu' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hu.js',
455                         'hy' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hy.js',
456                         'id' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-id.js',
457                         'is' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-is.js',
458                         'it' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-it.js',
459                         'ja' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ja.js',
460                         'ka' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ka.js',
461                         'kk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-kk.js',
462                         'km' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-km.js',
463                         'ko' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ko.js',
464                         'lb' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lb.js',
465                         'lt' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lt.js',
466                         'lv' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lv.js',
467                         'mk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-mk.js',
468                         'ml' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ml.js',
469                         'ms' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ms.js',
470                         'nl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-nl.js',
471                         'nl-be' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-nl-BE.js',
472                         'no' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-no.js',
473                         'pl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pl.js',
474                         'pt' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pt.js',
475                         'pt-br' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pt-BR.js',
476                         'rm' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-rm.js',
477                         'ro' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ro.js',
478                         'ru' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ru.js',
479                         'sk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sk.js',
480                         'sl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sl.js',
481                         'sq' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sq.js',
482                         'sr-ec' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sr.js',
483                         'sr-el' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sr-SR.js',
484                         'sv' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sv.js',
485                         'ta' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ta.js',
486                         'th' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-th.js',
487                         'tj' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-tj.js',
488                         'tr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-tr.js',
489                         'uk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-uk.js',
490                         'vi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-vi.js',
491                         'zh-cn' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-CN.js',
492                         'zh-hk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-HK.js',
493                         'zh-tw' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-TW.js',
494                 ],
495                 'group' => 'jquery.ui',
496         ],
497         'jquery.ui.dialog' => [
498                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.dialog.js',
499                 'dependencies' => [
500                         'jquery.ui.core',
501                         'jquery.ui.widget',
502                         'jquery.ui.button',
503                         'jquery.ui.draggable',
504                         'jquery.ui.mouse',
505                         'jquery.ui.position',
506                         'jquery.ui.resizable',
507                 ],
508                 'skinStyles' => [
509                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.dialog.css',
510                 ],
511                 'group' => 'jquery.ui',
512         ],
513         'jquery.ui.draggable' => [
514                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.draggable.js',
515                 'dependencies' => [
516                         'jquery.ui.core',
517                         'jquery.ui.mouse',
518                         'jquery.ui.widget',
519                 ],
520                 'group' => 'jquery.ui',
521         ],
522         'jquery.ui.droppable' => [
523                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.droppable.js',
524                 'dependencies' => [
525                         'jquery.ui.core',
526                         'jquery.ui.mouse',
527                         'jquery.ui.widget',
528                         'jquery.ui.draggable',
529                 ],
530                 'group' => 'jquery.ui',
531         ],
532         'jquery.ui.menu' => [
533                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.menu.js',
534                 'dependencies' => [
535                         'jquery.ui.core',
536                         'jquery.ui.widget',
537                         'jquery.ui.position',
538                 ],
539                 'skinStyles' => [
540                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.menu.css',
541                 ],
542                 'group' => 'jquery.ui',
543         ],
544         'jquery.ui.mouse' => [
545                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.mouse.js',
546                 'dependencies' => 'jquery.ui.widget',
547                 'group' => 'jquery.ui',
548         ],
549         'jquery.ui.position' => [
550                 'deprecated' => true,
551                 'targets' => [ 'mobile', 'desktop' ],
552                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.position.js',
553                 'group' => 'jquery.ui',
554         ],
555         'jquery.ui.progressbar' => [
556                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.progressbar.js',
557                 'dependencies' => [
558                         'jquery.ui.core',
559                         'jquery.ui.widget',
560                 ],
561                 'skinStyles' => [
562                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.progressbar.css',
563                 ],
564                 'group' => 'jquery.ui',
565         ],
566         'jquery.ui.resizable' => [
567                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.resizable.js',
568                 'dependencies' => [
569                         'jquery.ui.core',
570                         'jquery.ui.widget',
571                         'jquery.ui.mouse',
572                 ],
573                 'skinStyles' => [
574                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.resizable.css',
575                 ],
576                 'group' => 'jquery.ui',
577         ],
578         'jquery.ui.selectable' => [
579                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.selectable.js',
580                 'dependencies' => [
581                         'jquery.ui.core',
582                         'jquery.ui.widget',
583                         'jquery.ui.mouse',
584                 ],
585                 'skinStyles' => [
586                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.selectable.css',
587                 ],
588                 'group' => 'jquery.ui',
589         ],
590         'jquery.ui.slider' => [
591                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.slider.js',
592                 'dependencies' => [
593                         'jquery.ui.core',
594                         'jquery.ui.widget',
595                         'jquery.ui.mouse',
596                 ],
597                 'skinStyles' => [
598                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.slider.css',
599                 ],
600                 'group' => 'jquery.ui',
601         ],
602         'jquery.ui.sortable' => [
603                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.sortable.js',
604                 'dependencies' => [
605                         'jquery.ui.core',
606                         'jquery.ui.mouse',
607                         'jquery.ui.widget',
608                 ],
609                 'group' => 'jquery.ui',
610         ],
611         'jquery.ui.spinner' => [
612                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.spinner.js',
613                 'dependencies' => [
614                         'jquery.ui.core',
615                         'jquery.ui.widget',
616                         'jquery.ui.button',
617                 ],
618                 'skinStyles' => [
619                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.spinner.css',
620                 ],
621                 'group' => 'jquery.ui',
622         ],
623         'jquery.ui.tabs' => [
624                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.tabs.js',
625                 'dependencies' => [
626                         'jquery.ui.core',
627                         'jquery.ui.widget',
628                 ],
629                 'skinStyles' => [
630                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.tabs.css',
631                 ],
632                 'group' => 'jquery.ui',
633         ],
634         'jquery.ui.tooltip' => [
635                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.tooltip.js',
636                 'dependencies' => [
637                         'jquery.ui.core',
638                         'jquery.ui.widget',
639                         'jquery.ui.position',
640                 ],
641                 'skinStyles' => [
642                         'default' => 'resources/lib/jquery.ui/themes/smoothness/jquery.ui.tooltip.css',
643                 ],
644                 'group' => 'jquery.ui',
645         ],
646         'jquery.ui.widget' => [
647                 'deprecated' => true,
648                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.widget.js',
649                 'group' => 'jquery.ui',
650         ],
651         // Effects
652         'jquery.effects.core' => [
653                 'deprecated' => true,
654                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect.js',
655                 'group' => 'jquery.ui',
656         ],
657         'jquery.effects.blind' => [
658                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-blind.js',
659                 'dependencies' => 'jquery.effects.core',
660                 'group' => 'jquery.ui',
661         ],
662         'jquery.effects.bounce' => [
663                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-bounce.js',
664                 'dependencies' => 'jquery.effects.core',
665                 'group' => 'jquery.ui',
666         ],
667         'jquery.effects.clip' => [
668                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-clip.js',
669                 'dependencies' => 'jquery.effects.core',
670                 'group' => 'jquery.ui',
671         ],
672         'jquery.effects.drop' => [
673                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-drop.js',
674                 'dependencies' => 'jquery.effects.core',
675                 'group' => 'jquery.ui',
676         ],
677         'jquery.effects.explode' => [
678                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-explode.js',
679                 'dependencies' => 'jquery.effects.core',
680                 'group' => 'jquery.ui',
681         ],
682         'jquery.effects.fade' => [
683                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-fade.js',
684                 'dependencies' => 'jquery.effects.core',
685                 'group' => 'jquery.ui',
686         ],
687         'jquery.effects.fold' => [
688                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-fold.js',
689                 'dependencies' => 'jquery.effects.core',
690                 'group' => 'jquery.ui',
691         ],
692         'jquery.effects.highlight' => [
693                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-highlight.js',
694                 'dependencies' => 'jquery.effects.core',
695                 'group' => 'jquery.ui',
696         ],
697         'jquery.effects.pulsate' => [
698                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-pulsate.js',
699                 'dependencies' => 'jquery.effects.core',
700                 'group' => 'jquery.ui',
701         ],
702         'jquery.effects.scale' => [
703                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-scale.js',
704                 'dependencies' => 'jquery.effects.core',
705                 'group' => 'jquery.ui',
706         ],
707         'jquery.effects.shake' => [
708                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-shake.js',
709                 'dependencies' => 'jquery.effects.core',
710                 'group' => 'jquery.ui',
711         ],
712         'jquery.effects.slide' => [
713                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-slide.js',
714                 'dependencies' => 'jquery.effects.core',
715                 'group' => 'jquery.ui',
716         ],
717         'jquery.effects.transfer' => [
718                 'scripts' => 'resources/lib/jquery.ui/jquery.ui.effect-transfer.js',
719                 'dependencies' => 'jquery.effects.core',
720                 'group' => 'jquery.ui',
721         ],
722
723         /* json2 */
724         'json' => [
725                 'deprecated' => 'Use of the "json" module is deprecated since MediaWiki 1.29.0',
726                 'targets' => [ 'desktop', 'mobile' ],
727         ],
728
729         /* Moment.js */
730
731         'moment' => [
732                 'scripts' => [
733                         // HACK: For some reason if you don't define window.moment first, loading moment fatals
734                         'resources/src/moment-global.js',
735                         'resources/lib/moment/moment.js',
736                 ],
737                 'languageScripts' => [
738                         'aeb-arab' => 'resources/lib/moment/locale/ar-tn.js',
739                         'af' => 'resources/lib/moment/locale/af.js',
740                         'ar' => 'resources/lib/moment/locale/ar.js',
741                         'ar-ma' => 'resources/lib/moment/locale/ar-ma.js',
742                         'ar-sa' => 'resources/lib/moment/locale/ar-sa.js',
743                         'az' => 'resources/lib/moment/locale/az.js',
744                         'be' => 'resources/lib/moment/locale/be.js',
745                         'bg' => 'resources/lib/moment/locale/bg.js',
746                         'bm' => 'resources/lib/moment/locale/bm.js',
747                         'bn' => 'resources/lib/moment/locale/bn.js',
748                         'bo' => 'resources/lib/moment/locale/bo.js',
749                         'br' => 'resources/lib/moment/locale/br.js',
750                         'bs' => 'resources/lib/moment/locale/bs.js',
751                         'ca' => 'resources/lib/moment/locale/ca.js',
752                         'cs' => 'resources/lib/moment/locale/cs.js',
753                         'cv' => 'resources/lib/moment/locale/cv.js',
754                         'cy' => 'resources/lib/moment/locale/cy.js',
755                         'da' => 'resources/lib/moment/locale/da.js',
756                         'de' => 'resources/lib/moment/locale/de.js',
757                         'de-at' => 'resources/lib/moment/locale/de-at.js',
758                         'de-ch' => 'resources/lib/moment/locale/de-ch.js',
759                         'dv' => 'resources/lib/moment/locale/dv.js',
760                         'el' => 'resources/lib/moment/locale/el.js',
761                         'en' => 'resources/src/moment-dmy.js',
762                         'en-au' => 'resources/lib/moment/locale/en-au.js',
763                         'en-ca' => 'resources/lib/moment/locale/en-ca.js',
764                         'en-gb' => 'resources/lib/moment/locale/en-gb.js',
765                         'eo' => 'resources/lib/moment/locale/eo.js',
766                         'es' => 'resources/lib/moment/locale/es.js',
767                         'et' => 'resources/lib/moment/locale/et.js',
768                         'eu' => 'resources/lib/moment/locale/eu.js',
769                         'fa' => 'resources/lib/moment/locale/fa.js',
770                         'fi' => 'resources/lib/moment/locale/fi.js',
771                         'fo' => 'resources/lib/moment/locale/fo.js',
772                         'fr' => 'resources/lib/moment/locale/fr.js',
773                         'fr-ca' => 'resources/lib/moment/locale/fr-ca.js',
774                         'fy' => 'resources/lib/moment/locale/fy.js',
775                         'gd' => 'resources/lib/moment/locale/gd.js',
776                         'gl' => 'resources/lib/moment/locale/gl.js',
777                         'gom-latn' => 'resources/lib/moment/locale/gom-latn.js',
778                         'gu' => 'resources/lib/moment/locale/gu.js',
779                         'he' => 'resources/lib/moment/locale/he.js',
780                         'hi' => 'resources/lib/moment/locale/hi.js',
781                         'hr' => 'resources/lib/moment/locale/hr.js',
782                         'hu' => 'resources/lib/moment/locale/hu.js',
783                         'hy-am' => 'resources/lib/moment/locale/hy-am.js',
784                         'id' => 'resources/lib/moment/locale/id.js',
785                         'is' => 'resources/lib/moment/locale/is.js',
786                         'it' => 'resources/lib/moment/locale/it.js',
787                         'ja' => 'resources/lib/moment/locale/ja.js',
788                         'jv' => 'resources/lib/moment/locale/jv.js',
789                         'ka' => 'resources/lib/moment/locale/ka.js',
790                         'kk-cyrl' => 'resources/lib/moment/locale/kk.js',
791                         'kn' => 'resources/lib/moment/locale/kn.js',
792                         'ko' => 'resources/lib/moment/locale/ko.js',
793                         'ky' => 'resources/lib/moment/locale/ky.js',
794                         'lo' => 'resources/lib/moment/locale/lo.js',
795                         'lt' => 'resources/lib/moment/locale/lt.js',
796                         'lv' => 'resources/lib/moment/locale/lv.js',
797                         'mi' => 'resources/lib/moment/locale/mi.js',
798                         'mk' => 'resources/lib/moment/locale/mk.js',
799                         'ml' => 'resources/lib/moment/locale/ml.js',
800                         'mr' => 'resources/lib/moment/locale/mr.js',
801                         'ms-my' => 'resources/lib/moment/locale/ms-my.js',
802                         'ms' => 'resources/lib/moment/locale/ms.js',
803                         'my' => 'resources/lib/moment/locale/my.js',
804                         'nb' => 'resources/lib/moment/locale/nb.js',
805                         'ne' => 'resources/lib/moment/locale/ne.js',
806                         'nl' => 'resources/lib/moment/locale/nl.js',
807                         'nn' => 'resources/lib/moment/locale/nn.js',
808                         'pa' => 'resources/lib/moment/locale/pa-in.js',
809                         'pl' => 'resources/lib/moment/locale/pl.js',
810                         'pt' => 'resources/lib/moment/locale/pt.js',
811                         'pt-br' => 'resources/lib/moment/locale/pt-br.js',
812                         'ro' => 'resources/lib/moment/locale/ro.js',
813                         'ru' => 'resources/lib/moment/locale/ru.js',
814                         'sd' => 'resources/lib/moment/locale/sd.js',
815                         'se' => 'resources/lib/moment/locale/se.js',
816                         'si' => 'resources/lib/moment/locale/si.js',
817                         'sk' => 'resources/lib/moment/locale/sk.js',
818                         'sl' => 'resources/lib/moment/locale/sl.js',
819                         'sq' => 'resources/lib/moment/locale/sq.js',
820                         'sr-ec' => 'resources/lib/moment/locale/sr-cyrl.js',
821                         'sr-el' => 'resources/lib/moment/locale/sr.js',
822                         'ss' => 'resources/lib/moment/locale/ss.js',
823                         'sv' => 'resources/lib/moment/locale/sv.js',
824                         'sw' => 'resources/lib/moment/locale/sw.js',
825                         'ta' => 'resources/lib/moment/locale/ta.js',
826                         'te' => 'resources/lib/moment/locale/te.js',
827                         'tet' => 'resources/lib/moment/locale/tet.js',
828                         'th' => 'resources/lib/moment/locale/th.js',
829                         'tl-ph' => 'resources/lib/moment/locale/tl-ph.js',
830                         'tr' => 'resources/lib/moment/locale/tr.js',
831                         'tzm' => 'resources/lib/moment/locale/tzm.js',
832                         'tzm-latn' => 'resources/lib/moment/locale/tzm-latn.js',
833                         'uk' => 'resources/lib/moment/locale/uk.js',
834                         'ur' => 'resources/lib/moment/locale/ur.js',
835                         'uz' => 'resources/lib/moment/locale/uz.js',
836                         'uz-latn' => 'resources/lib/moment/locale/uz-latn.js',
837                         'vi' => 'resources/lib/moment/locale/vi.js',
838                         'yo' => 'resources/lib/moment/locale/yo.js',
839                         'zh-hans' => 'resources/lib/moment/locale/zh-cn.js',
840                         'zh-hant' => 'resources/lib/moment/locale/zh-tw.js',
841                         'zh-cn' => 'resources/lib/moment/locale/zh-cn.js',
842                         'zh-hk' => 'resources/lib/moment/locale/zh-hk.js',
843                         'zh-tw' => 'resources/lib/moment/locale/zh-tw.js',
844                 ],
845                 // HACK: skinScripts come after languageScripts, and we need locale overrides to come
846                 // after locale definitions
847                 'skinScripts' => [
848                         'default' => [
849                                 'resources/src/moment-locale-overrides.js',
850                         ],
851                 ],
852                 'dependencies' => [
853                         'mediawiki.language',
854                 ],
855                 'targets' => [ 'desktop', 'mobile' ],
856         ],
857
858         /* MediaWiki */
859
860         'mediawiki' => [
861                 'class' => 'ResourceLoaderRawFileModule',
862                 // Keep in sync with maintenance/jsduck/eg-iframe.html
863                 'scripts' => [
864                         'resources/src/mediawiki/mediawiki.js',
865                         'resources/src/mediawiki/mediawiki.requestIdleCallback.js',
866                         'resources/src/mediawiki/mediawiki.errorLogger.js',
867                 ],
868                 'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
869                 'targets' => [ 'desktop', 'mobile' ],
870         ],
871         'mediawiki.apihelp' => [
872                 'styles' => 'resources/src/mediawiki/mediawiki.apihelp.css',
873                 'targets' => [ 'desktop' ],
874         ],
875         'mediawiki.template' => [
876                 'scripts' => 'resources/src/mediawiki/mediawiki.template.js',
877                 'targets' => [ 'desktop', 'mobile' ],
878         ],
879         'mediawiki.template.mustache' => [
880                 'scripts' => [
881                         'resources/lib/mustache/mustache.js',
882                         'resources/src/mediawiki/mediawiki.template.mustache.js',
883                 ],
884                 'targets' => [ 'desktop', 'mobile' ],
885                 'dependencies' => 'mediawiki.template',
886         ],
887         'mediawiki.template.regexp' => [
888                 'scripts' => 'resources/src/mediawiki/mediawiki.template.regexp.js',
889                 'targets' => [ 'desktop', 'mobile' ],
890                 'dependencies' => 'mediawiki.template',
891         ],
892         'mediawiki.apipretty' => [
893                 'styles' => 'resources/src/mediawiki/mediawiki.apipretty.css',
894                 'targets' => [ 'desktop', 'mobile' ],
895         ],
896         'mediawiki.api' => [
897                 'scripts' => 'resources/src/mediawiki/api.js',
898                 'dependencies' => [
899                         'mediawiki.util',
900                         'user.tokens',
901                 ],
902                 'targets' => [ 'desktop', 'mobile' ],
903         ],
904         'mediawiki.api.category' => [
905                 'scripts' => 'resources/src/mediawiki/api/category.js',
906                 'dependencies' => [
907                         'mediawiki.api',
908                         'mediawiki.Title',
909                 ],
910         ],
911         'mediawiki.api.edit' => [
912                 'scripts' => 'resources/src/mediawiki/api/edit.js',
913                 'dependencies' => [
914                         'mediawiki.api',
915                         'mediawiki.Title',
916                         'mediawiki.user',
917                 ],
918                 'targets' => [ 'desktop', 'mobile' ],
919         ],
920         'mediawiki.api.login' => [
921                 'scripts' => 'resources/src/mediawiki/api/login.js',
922                 'dependencies' => 'mediawiki.api',
923         ],
924         'mediawiki.api.options' => [
925                 'scripts' => 'resources/src/mediawiki/api/options.js',
926                 'dependencies' => 'mediawiki.api',
927                 'targets' => [ 'desktop', 'mobile' ],
928         ],
929         'mediawiki.api.parse' => [
930                 'scripts' => 'resources/src/mediawiki/api/parse.js',
931                 'dependencies' => 'mediawiki.api',
932                 'targets' => [ 'desktop', 'mobile' ],
933         ],
934         'mediawiki.api.upload' => [
935                 'scripts' => 'resources/src/mediawiki/api/upload.js',
936                 'dependencies' => [
937                         'mediawiki.api',
938                         'mediawiki.api.edit',
939                 ],
940                 'targets' => [ 'desktop', 'mobile' ],
941         ],
942         'mediawiki.api.user' => [
943                 'scripts' => 'resources/src/mediawiki/api/user.js',
944                 'dependencies' => [
945                         'mediawiki.api',
946                 ],
947                 'targets' => [ 'desktop', 'mobile' ],
948         ],
949         'mediawiki.api.watch' => [
950                 'scripts' => 'resources/src/mediawiki/api/watch.js',
951                 'dependencies' => [
952                         'mediawiki.api',
953                 ],
954         ],
955         'mediawiki.api.messages' => [
956                 'scripts' => 'resources/src/mediawiki/api/messages.js',
957                 'dependencies' => [
958                         'mediawiki.api',
959                 ],
960                 'targets' => [ 'desktop', 'mobile' ],
961         ],
962         'mediawiki.api.rollback' => [
963                 'scripts' => 'resources/src/mediawiki/api/rollback.js',
964                 'dependencies' => [
965                         'mediawiki.api',
966                 ],
967         ],
968         'mediawiki.content.json' => [
969                 'styles' => 'resources/src/mediawiki/mediawiki.content.json.less',
970         ],
971         'mediawiki.confirmCloseWindow' => [
972                 'scripts' => [
973                         'resources/src/mediawiki/mediawiki.confirmCloseWindow.js',
974                 ],
975                 'targets' => [ 'desktop', 'mobile' ],
976         ],
977         'mediawiki.debug' => [
978                 'scripts' => [
979                         'resources/src/mediawiki/mediawiki.debug.js',
980                 ],
981                 'styles' => [
982                         'resources/src/mediawiki/mediawiki.debug.less',
983                 ],
984                 'dependencies' => [
985                         'jquery.footHovzer',
986                 ],
987         ],
988         'mediawiki.diff.styles' => [
989                 'styles' => [
990                         'resources/src/mediawiki/mediawiki.diff.styles.css',
991                         'resources/src/mediawiki/mediawiki.diff.styles.print.css' => [
992                                 'media' => 'print'
993                         ],
994                 ],
995                 'targets' => [ 'desktop', 'mobile' ],
996         ],
997         'mediawiki.feedback' => [
998                 'scripts' => 'resources/src/mediawiki/mediawiki.feedback.js',
999                 'styles' => 'resources/src/mediawiki/mediawiki.feedback.css',
1000                 'dependencies' => [
1001                         'mediawiki.messagePoster',
1002                         'mediawiki.Title',
1003                         'oojs-ui-core',
1004                         'oojs-ui-windows',
1005                 ],
1006                 'messages' => [
1007                         'feedback-adding',
1008                         'feedback-back',
1009                         'feedback-bugcheck',
1010                         'feedback-dialog-intro',
1011                         'feedback-external-bug-report-button',
1012                         'feedback-bugnew',
1013                         'feedback-bugornote',
1014                         'feedback-cancel',
1015                         'feedback-close',
1016                         'feedback-dialog-title',
1017                         'feedback-error1',
1018                         'feedback-error2',
1019                         'feedback-error3',
1020                         'feedback-error4',
1021                         'feedback-message',
1022                         'feedback-subject',
1023                         'feedback-submit',
1024                         'feedback-terms',
1025                         'feedback-termsofuse',
1026                         'feedback-thanks',
1027                         'feedback-thanks-title',
1028                         'feedback-useragent'
1029                 ],
1030                 'targets' => [ 'desktop', 'mobile' ],
1031         ],
1032         'mediawiki.feedlink' => [
1033                 'styles' => 'resources/src/mediawiki/mediawiki.feedlink.css',
1034         ],
1035         'mediawiki.filewarning' => [
1036                 'scripts' => 'resources/src/mediawiki/mediawiki.filewarning.js',
1037                 'styles' => 'resources/src/mediawiki/mediawiki.filewarning.less',
1038                 'dependencies' => [
1039                         'oojs-ui-core',
1040                         'oojs-ui.styles.icons-alerts',
1041                 ],
1042         ],
1043         'mediawiki.ForeignApi' => [
1044                 'targets' => [ 'desktop', 'mobile' ],
1045                 'class' => 'ResourceLoaderForeignApiModule',
1046                 // Additional dependencies generated dynamically
1047                 'dependencies' => 'mediawiki.ForeignApi.core',
1048         ],
1049         'mediawiki.ForeignApi.core' => [
1050                 'scripts' => 'resources/src/mediawiki/ForeignApi.js',
1051                 'dependencies' => [
1052                         'mediawiki.api',
1053                         'oojs',
1054                 ],
1055                 'targets' => [ 'desktop', 'mobile' ],
1056         ],
1057         'mediawiki.helplink' => [
1058                 'styles' => [
1059                         'resources/src/mediawiki/mediawiki.helplink.less',
1060                 ],
1061                 'targets' => [ 'desktop', 'mobile' ],
1062         ],
1063         'mediawiki.hidpi' => [
1064                 'scripts' => 'resources/src/mediawiki/mediawiki.hidpi.js',
1065                 'dependencies' => 'jquery.hidpi',
1066                 'skipFunction' => 'resources/src/mediawiki.hidpi-skip.js',
1067                 'targets' => [ 'desktop', 'mobile' ],
1068         ],
1069         'mediawiki.hlist' => [
1070                 'targets' => [ 'desktop', 'mobile' ],
1071                 'styles' => [
1072                         'resources/src/mediawiki/mediawiki.hlist-allskins.less',
1073                 ],
1074                 'skinStyles' => [
1075                         'default' => 'resources/src/mediawiki/mediawiki.hlist.css',
1076                 ],
1077         ],
1078         'mediawiki.htmlform' => [
1079                 'scripts' => [
1080                         'resources/src/mediawiki/htmlform/htmlform.js',
1081                         'resources/src/mediawiki/htmlform/autocomplete.js',
1082                         'resources/src/mediawiki/htmlform/autoinfuse.js',
1083                         'resources/src/mediawiki/htmlform/checkmatrix.js',
1084                         'resources/src/mediawiki/htmlform/cloner.js',
1085                         'resources/src/mediawiki/htmlform/hide-if.js',
1086                         'resources/src/mediawiki/htmlform/multiselect.js',
1087                         'resources/src/mediawiki/htmlform/selectandother.js',
1088                         'resources/src/mediawiki/htmlform/selectorother.js',
1089                 ],
1090                 'dependencies' => [
1091                         'mediawiki.RegExp',
1092                         'jquery.byteLimit',
1093                 ],
1094                 'messages' => [
1095                         'htmlform-chosen-placeholder',
1096                         // @todo Load this message in content language
1097                         'colon-separator',
1098                 ],
1099                 'targets' => [ 'desktop', 'mobile' ],
1100         ],
1101         'mediawiki.htmlform.checker' => [
1102                 'scripts' => [
1103                         'resources/src/mediawiki/htmlform/htmlform.Checker.js',
1104                 ],
1105                 'dependencies' => [
1106                         'jquery.throttle-debounce',
1107                 ],
1108                 'targets' => [ 'desktop', 'mobile' ],
1109         ],
1110         'mediawiki.htmlform.ooui' => [
1111                 'scripts' => [
1112                         'resources/src/mediawiki/htmlform/htmlform.Element.js',
1113                 ],
1114                 'dependencies' => [
1115                         'oojs-ui-core',
1116                 ],
1117                 'targets' => [ 'desktop', 'mobile' ],
1118         ],
1119         'mediawiki.htmlform.styles' => [
1120                 'styles' => 'resources/src/mediawiki/htmlform/styles.css',
1121                 'targets' => [ 'desktop', 'mobile' ],
1122         ],
1123         'mediawiki.htmlform.ooui.styles' => [
1124                 'styles' => 'resources/src/mediawiki/htmlform/ooui.styles.css',
1125                 'targets' => [ 'desktop', 'mobile' ],
1126         ],
1127         'mediawiki.icon' => [
1128                 'styles' => 'resources/src/mediawiki/mediawiki.icon.less',
1129                 'targets' => [ 'desktop', 'mobile' ],
1130         ],
1131         'mediawiki.inspect' => [
1132                 'scripts' => 'resources/src/mediawiki/mediawiki.inspect.js',
1133                 'dependencies' => [
1134                         'jquery.byteLength',
1135                         'mediawiki.RegExp',
1136                 ],
1137                 'targets' => [ 'desktop', 'mobile' ],
1138         ],
1139         'mediawiki.messagePoster' => [
1140                 'scripts' => [
1141                         'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.factory.js',
1142                         'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.MessagePoster.js',
1143                 ],
1144                 'dependencies' => [
1145                         'oojs',
1146                         'mediawiki.api',
1147                         'mediawiki.ForeignApi',
1148                 ],
1149                 'targets' => [ 'desktop', 'mobile' ],
1150         ],
1151         'mediawiki.messagePoster.wikitext' => [
1152                 'scripts' => [
1153                         'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.WikitextMessagePoster.js',
1154                 ],
1155                 'dependencies' => [
1156                         'mediawiki.api.edit',
1157                         'mediawiki.messagePoster',
1158                 ],
1159                 'targets' => [ 'desktop', 'mobile' ],
1160         ],
1161         'mediawiki.notification' => [
1162                 'styles' => [
1163                         'resources/src/mediawiki/mediawiki.notification.common.css',
1164                         'resources/src/mediawiki/mediawiki.notification.print.css'
1165                                 => [ 'media' => 'print' ],
1166                 ],
1167                 'skinStyles' => [
1168                         'default' => 'resources/src/mediawiki/mediawiki.notification.css',
1169                 ],
1170                 'scripts' => 'resources/src/mediawiki/mediawiki.notification.js',
1171                 'dependencies' => [
1172                         'mediawiki.util',
1173                 ],
1174                 'targets' => [ 'desktop', 'mobile' ],
1175         ],
1176         'mediawiki.notify' => [
1177                 'scripts' => 'resources/src/mediawiki/mediawiki.notify.js',
1178                 'targets' => [ 'desktop', 'mobile' ],
1179         ],
1180         'mediawiki.notification.convertmessagebox' => [
1181                 'dependencies' => [
1182                         'mediawiki.notification',
1183                 ],
1184                 'scripts' => 'resources/src/mediawiki/mediawiki.notification.convertmessagebox.js',
1185                 'targets' => [ 'desktop', 'mobile' ],
1186         ],
1187         'mediawiki.notification.convertmessagebox.styles' => [
1188                 'styles' => [
1189                         'resources/src/mediawiki/mediawiki.notification.convertmessagebox.styles.less',
1190                 ],
1191                 'targets' => [ 'desktop', 'mobile' ],
1192         ],
1193         'mediawiki.RegExp' => [
1194                 'scripts' => 'resources/src/mediawiki/mediawiki.RegExp.js',
1195                 'targets' => [ 'desktop', 'mobile' ],
1196         ],
1197         'mediawiki.pager.tablePager' => [
1198                 'styles' => 'resources/src/mediawiki/mediawiki.pager.tablePager.less',
1199         ],
1200         'mediawiki.searchSuggest' => [
1201                 'targets' => [ 'desktop', 'mobile' ],
1202                 'scripts' => 'resources/src/mediawiki/mediawiki.searchSuggest.js',
1203                 'styles' => 'resources/src/mediawiki/mediawiki.searchSuggest.css',
1204                 'messages' => [
1205                         'searchsuggest-search',
1206                         'searchsuggest-containing',
1207                 ],
1208                 'dependencies' => [
1209                         'jquery.suggestions',
1210                         'jquery.getAttrs',
1211                         'mediawiki.api',
1212                 ],
1213         ],
1214         'mediawiki.sectionAnchor' => [
1215                 // Back-compat to hide it on cached pages (T18691; Ie9e334e973; 2015-03-17)
1216                 'styles' => 'resources/src/mediawiki/mediawiki.sectionAnchor.css',
1217                 'targets' => [ 'desktop', 'mobile' ],
1218         ],
1219         'mediawiki.storage' => [
1220                 'scripts' => 'resources/src/mediawiki/mediawiki.storage.js',
1221                 'targets' => [ 'desktop', 'mobile' ],
1222         ],
1223         'mediawiki.Title' => [
1224                 'scripts' => [
1225                         'resources/src/mediawiki/mediawiki.Title.js',
1226                         'resources/src/mediawiki/mediawiki.Title.phpCharToUpper.js',
1227                 ],
1228                 'dependencies' => [
1229                         'jquery.byteLength',
1230                         'mediawiki.util',
1231                 ],
1232                 'targets' => [ 'desktop', 'mobile' ],
1233         ],
1234         'mediawiki.Upload' => [
1235                 'scripts' => 'resources/src/mediawiki/mediawiki.Upload.js',
1236                 'dependencies' => [
1237                         'mediawiki.api.upload',
1238                 ],
1239         ],
1240         'mediawiki.ForeignUpload' => [
1241                 'scripts' => 'resources/src/mediawiki/mediawiki.ForeignUpload.js',
1242                 'dependencies' => [
1243                         'mediawiki.ForeignApi',
1244                         'mediawiki.Upload',
1245                         'oojs',
1246                 ],
1247                 'messages' => [
1248                         'uploaddisabledtext',
1249                         'upload-dialog-disabled',
1250                         'upload-foreign-cant-upload',
1251                 ]
1252         ],
1253         'mediawiki.ForeignStructuredUpload.config' => [
1254                 'class' => 'ResourceLoaderUploadDialogModule',
1255         ],
1256         'mediawiki.ForeignStructuredUpload' => [
1257                 'scripts' => 'resources/src/mediawiki/mediawiki.ForeignStructuredUpload.js',
1258                 'dependencies' => [
1259                         'mediawiki.ForeignUpload',
1260                         'mediawiki.ForeignStructuredUpload.config',
1261                 ],
1262                 'messages' => [
1263                         'upload-foreign-cant-load-config',
1264                 ],
1265         ],
1266         'mediawiki.Upload.Dialog' => [
1267                 'scripts' => [
1268                         'resources/src/mediawiki/mediawiki.Upload.Dialog.js',
1269                 ],
1270                 'dependencies' => [
1271                         'mediawiki.Upload.BookletLayout',
1272                 ],
1273                 'messages' => [
1274                         'upload-dialog-title',
1275                         'upload-dialog-button-cancel',
1276                         'upload-dialog-button-back',
1277                         'upload-dialog-button-done',
1278                         'upload-dialog-button-save',
1279                         'upload-dialog-button-upload',
1280                 ],
1281         ],
1282         'mediawiki.Upload.BookletLayout' => [
1283                 'scripts' => [
1284                         'resources/src/mediawiki/mediawiki.Upload.BookletLayout.js',
1285                 ],
1286                 'styles' => [
1287                         'resources/src/mediawiki/mediawiki.Upload.BookletLayout.css',
1288                 ],
1289                 'dependencies' => [
1290                         'oojs-ui-core',
1291                         'oojs-ui-widgets',
1292                         'oojs-ui-windows',
1293                         'oojs-ui.styles.icons-content',
1294                         'oojs-ui.styles.icons-editing-advanced',
1295                         'moment',
1296                         'mediawiki.Title',
1297                         'mediawiki.user',
1298                         'mediawiki.Upload',
1299                         'mediawiki.jqueryMsg',
1300                         'mediawiki.widgets.StashedFileWidget'
1301                 ],
1302                 'messages' => [
1303                         'upload-form-label-infoform-title',
1304                         'upload-form-label-infoform-name',
1305                         'upload-form-label-infoform-name-tooltip',
1306                         'upload-form-label-infoform-description',
1307                         'upload-form-label-infoform-description-tooltip',
1308                         'upload-form-label-usage-title',
1309                         'upload-form-label-usage-filename',
1310                         'action-upload',
1311                         'apierror-mustbeloggedin',
1312                         'badaccess-groups',
1313                         'apierror-timeout',
1314                         'apierror-offline',
1315                         'apierror-unknownerror',
1316                         'api-error-unknown-warning',
1317                         'fileexists',
1318                         'filepageexists',
1319                         'file-exists-duplicate',
1320                         'file-deleted-duplicate',
1321                         'filename-bad-prefix',
1322                         'filename-thumb-name',
1323                         'filewasdeleted',
1324                         'badfilename',
1325                         'protectedpagetext',
1326                 ],
1327         ],
1328         'mediawiki.ForeignStructuredUpload.BookletLayout' => [
1329                 'scripts' => 'resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js',
1330                 'styles' => 'resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.less',
1331                 'dependencies' => [
1332                         'mediawiki.ForeignStructuredUpload',
1333                         'mediawiki.Upload.BookletLayout',
1334                         'mediawiki.widgets.CategoryMultiselectWidget',
1335                         'mediawiki.widgets.DateInputWidget',
1336                         'mediawiki.jqueryMsg',
1337                         'mediawiki.api.messages',
1338                         'moment',
1339                         'mediawiki.libs.jpegmeta',
1340                 ],
1341                 'messages' => [
1342                         'upload-form-label-own-work',
1343                         'upload-form-label-infoform-categories',
1344                         'upload-form-label-infoform-date',
1345                         'upload-form-label-own-work-message-generic-local',
1346                         'upload-form-label-not-own-work-message-generic-local',
1347                         'upload-form-label-not-own-work-local-generic-local',
1348                         'upload-form-label-own-work-message-generic-foreign',
1349                         'upload-form-label-not-own-work-message-generic-foreign',
1350                         'upload-form-label-not-own-work-local-generic-foreign',
1351                 ],
1352         ],
1353         'mediawiki.toc' => [
1354                 'scripts' => 'resources/src/mediawiki/mediawiki.toc.js',
1355                 'styles' => [
1356                         'resources/src/mediawiki/mediawiki.toc.css'
1357                                 => [ 'media' => 'screen' ],
1358                         'resources/src/mediawiki/mediawiki.toc.print.css'
1359                                 => [ 'media' => 'print' ],
1360                 ],
1361                 'dependencies' => 'mediawiki.cookie',
1362                 'messages' => [ 'showtoc', 'hidetoc' ],
1363                 'targets' => [ 'desktop', 'mobile' ],
1364         ],
1365         'mediawiki.Uri' => [
1366                 'scripts' => 'resources/src/mediawiki/mediawiki.Uri.js',
1367                 'templates' => [
1368                         'strict.regexp' => 'resources/src/mediawiki/mediawiki.Uri.strict.regexp',
1369                         'loose.regexp' => 'resources/src/mediawiki/mediawiki.Uri.loose.regexp',
1370                 ],
1371                 'dependencies' => 'mediawiki.util',
1372                 'targets' => [ 'desktop', 'mobile' ],
1373         ],
1374         'mediawiki.user' => [
1375                 'scripts' => 'resources/src/mediawiki/mediawiki.user.js',
1376                 'dependencies' => [
1377                         'mediawiki.api',
1378                         'mediawiki.api.user',
1379                         'mediawiki.storage',
1380                         'user.options',
1381                         'user.tokens',
1382                 ],
1383                 'targets' => [ 'desktop', 'mobile' ],
1384         ],
1385         'mediawiki.userSuggest' => [
1386                 'scripts' => 'resources/src/mediawiki/mediawiki.userSuggest.js',
1387                 'dependencies' => [
1388                         'jquery.suggestions',
1389                         'mediawiki.api'
1390                 ]
1391         ],
1392         'mediawiki.util' => [
1393                 'class' => 'ResourceLoaderMediaWikiUtilModule',
1394                 'scripts' => 'resources/src/mediawiki/mediawiki.util.js',
1395                 'dependencies' => [
1396                         'jquery.accessKeyLabel',
1397                         'mediawiki.RegExp',
1398                         'mediawiki.notify',
1399                 ],
1400                 'targets' => [ 'desktop', 'mobile' ],
1401         ],
1402         'mediawiki.viewport' => [
1403                 'scripts' => 'resources/src/mediawiki/mediawiki.viewport.js',
1404                 'targets' => [ 'desktop', 'mobile' ],
1405         ],
1406         'mediawiki.checkboxtoggle' => [
1407                 'scripts' => 'resources/src/mediawiki/mediawiki.checkboxtoggle.js',
1408         ],
1409         'mediawiki.checkboxtoggle.styles' => [
1410                 'styles' => 'resources/src/mediawiki/mediawiki.checkboxtoggle.css',
1411         ],
1412         'mediawiki.cookie' => [
1413                 'scripts' => 'resources/src/mediawiki/mediawiki.cookie.js',
1414                 'dependencies' => 'jquery.cookie',
1415                 'targets' => [ 'desktop', 'mobile' ],
1416         ],
1417         'mediawiki.toolbar' => [
1418                 'class' => 'ResourceLoaderEditToolbarModule',
1419                 'scripts' => 'resources/src/mediawiki.toolbar/toolbar.js',
1420                 'styles' => 'resources/src/mediawiki.toolbar/toolbar.less',
1421                 'dependencies' => 'jquery.textSelection',
1422         ],
1423         'mediawiki.experiments' => [
1424                 'scripts' => 'resources/src/mediawiki/mediawiki.experiments.js',
1425                 'targets' => [ 'desktop', 'mobile' ],
1426         ],
1427
1428         /* MediaWiki Action */
1429
1430         'mediawiki.action.edit' => [
1431                 'scripts' => [
1432                         'resources/src/mediawiki.action/mediawiki.action.edit.js',
1433                         'resources/src/mediawiki.action/mediawiki.action.edit.stash.js',
1434                 ],
1435                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.css',
1436                 'dependencies' => [
1437                         'mediawiki.action.edit.styles',
1438                         'jquery.textSelection',
1439                         'oojs-ui-core',
1440                         'mediawiki.widgets.visibleByteLimit',
1441                         'mediawiki.api',
1442                 ],
1443         ],
1444         'mediawiki.action.edit.styles' => [
1445                 'targets' => [ 'desktop', 'mobile' ],
1446                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.less',
1447         ],
1448         'mediawiki.action.edit.collapsibleFooter' => [
1449                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js',
1450                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css',
1451                 'dependencies' => [
1452                         'jquery.makeCollapsible',
1453                         'mediawiki.storage',
1454                         'mediawiki.icon',
1455                 ],
1456         ],
1457         'mediawiki.action.edit.preview' => [
1458                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.preview.js',
1459                 'dependencies' => [
1460                         'jquery.form',
1461                         'jquery.spinner',
1462                         'jquery.textSelection',
1463                         'mediawiki.api',
1464                         'mediawiki.diff.styles',
1465                         'mediawiki.language',
1466                         'mediawiki.util',
1467                         'mediawiki.jqueryMsg',
1468                         'oojs-ui-core',
1469                 ],
1470                 'messages' => [
1471                         // Keep the uses message keys in sync with EditPage#setHeaders
1472                         'creating',
1473                         'editconflict',
1474                         'editing',
1475                         'editingcomment',
1476                         'editingsection',
1477                         'pagetitle',
1478                         'otherlanguages',
1479                         'summary-preview',
1480                         'subject-preview',
1481                         'parentheses',
1482                         'previewerrortext',
1483                 ],
1484         ],
1485         'mediawiki.action.history' => [
1486                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.history.js',
1487                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.css',
1488         ],
1489         'mediawiki.action.history.styles' => [
1490                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.styles.css',
1491         ],
1492         // using this module is deprecated, for diff styles use mediawiki.diff.styles instead
1493         'mediawiki.action.history.diff' => [
1494                 'styles' => [
1495                         'resources/src/mediawiki/mediawiki.diff.styles.css',
1496                         'resources/src/mediawiki/mediawiki.diff.styles.print.css' => [
1497                                 'media' => 'print'
1498                         ],
1499                 ],
1500                 'targets' => [ 'desktop', 'mobile' ],
1501         ],
1502         'mediawiki.action.view.dblClickEdit' => [
1503                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.dblClickEdit.js',
1504                 'dependencies' => [
1505                         'mediawiki.util',
1506                         'user.options',
1507                 ],
1508         ],
1509         'mediawiki.action.view.metadata' => [
1510                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.metadata.css',
1511                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.metadata.js',
1512                 'messages' => [
1513                         'metadata-expand',
1514                         'metadata-collapse',
1515                 ],
1516         ],
1517         'mediawiki.action.view.categoryPage.styles' => [
1518                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less',
1519                 'targets' => [ 'desktop', 'mobile' ]
1520         ],
1521         'mediawiki.action.view.postEdit' => [
1522                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.js',
1523                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.less',
1524                 'skinStyles' => [
1525                         'monobook' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.monobook.css',
1526                 ],
1527                 'dependencies' => [
1528                         'mediawiki.jqueryMsg',
1529                         'mediawiki.notification'
1530                 ],
1531                 'messages' => [
1532                         'postedit-confirmation-created',
1533                         'postedit-confirmation-restored',
1534                         'postedit-confirmation-saved',
1535                 ],
1536         ],
1537         'mediawiki.action.view.redirect' => [
1538                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.redirect.js',
1539                 'dependencies' => 'jquery.client',
1540                 'targets' => [ 'desktop', 'mobile' ],
1541         ],
1542         'mediawiki.action.view.redirectPage' => [
1543                 'targets' => [ 'desktop', 'mobile' ],
1544                 'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.redirectPage.css',
1545         ],
1546         'mediawiki.action.view.rightClickEdit' => [
1547                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.rightClickEdit.js',
1548         ],
1549         'mediawiki.action.edit.editWarning' => [
1550                 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js',
1551                 'dependencies' => [
1552                         'jquery.textSelection',
1553                         'mediawiki.jqueryMsg',
1554                         'mediawiki.confirmCloseWindow',
1555                         'user.options',
1556                 ],
1557                 'messages' => [
1558                         'editwarning-warning',
1559                         // editwarning-warning uses {{int:prefs-editing}}
1560                         'prefs-editing'
1561                 ],
1562         ],
1563         'mediawiki.action.view.filepage' => [
1564                 'styles' => [
1565                         'resources/src/mediawiki.action/mediawiki.action.view.filepage.print.css' =>
1566                                 [ 'media' => 'print' ],
1567                         'resources/src/mediawiki.action/mediawiki.action.view.filepage.css',
1568                 ],
1569         ],
1570
1571         /* MediaWiki Language */
1572
1573         'mediawiki.language' => [
1574                 'scripts' => [
1575                         'resources/src/mediawiki.language/mediawiki.language.js',
1576                         'resources/src/mediawiki.language/mediawiki.language.numbers.js',
1577                         'resources/src/mediawiki.language/mediawiki.language.fallback.js',
1578                 ],
1579                 'languageScripts' => [
1580                         'bs' => 'resources/src/mediawiki.language/languages/bs.js',
1581                         'dsb' => 'resources/src/mediawiki.language/languages/dsb.js',
1582                         'fi' => 'resources/src/mediawiki.language/languages/fi.js',
1583                         'ga' => 'resources/src/mediawiki.language/languages/ga.js',
1584                         'hsb' => 'resources/src/mediawiki.language/languages/hsb.js',
1585                         'hu' => 'resources/src/mediawiki.language/languages/hu.js',
1586                         'hy' => 'resources/src/mediawiki.language/languages/hy.js',
1587                         'la' => 'resources/src/mediawiki.language/languages/la.js',
1588                         'os' => 'resources/src/mediawiki.language/languages/os.js',
1589                         'sl' => 'resources/src/mediawiki.language/languages/sl.js',
1590                 ],
1591                 'dependencies' => [
1592                         'mediawiki.language.data',
1593                         'mediawiki.cldr',
1594                 ],
1595                 'targets' => [ 'desktop', 'mobile' ],
1596                 'messages' => [
1597                         'and',
1598                         'comma-separator',
1599                         'word-separator'
1600                 ],
1601         ],
1602
1603         'mediawiki.cldr' => [
1604                 'scripts' => 'resources/src/mediawiki.language/mediawiki.cldr.js',
1605                 'dependencies' => [
1606                         'mediawiki.libs.pluralruleparser',
1607                 ],
1608                 'targets' => [ 'desktop', 'mobile' ],
1609         ],
1610
1611         'mediawiki.libs.pluralruleparser' => [
1612                 'scripts' => 'resources/src/mediawiki.libs/CLDRPluralRuleParser.js',
1613                 'targets' => [ 'desktop', 'mobile' ],
1614         ],
1615
1616         'mediawiki.language.init' => [
1617                 'scripts' => 'resources/src/mediawiki.language/mediawiki.language.init.js',
1618                 'targets' => [ 'desktop', 'mobile' ],
1619         ],
1620
1621         'mediawiki.jqueryMsg' => [
1622                 // Add data for mediawiki.jqueryMsg, such as allowed tags
1623                 'class' => 'ResourceLoaderJqueryMsgModule',
1624                 'scripts' => 'resources/src/mediawiki/mediawiki.jqueryMsg.js',
1625                 'dependencies' => [
1626                         'mediawiki.util',
1627                         'mediawiki.language',
1628                         'user.options',
1629                 ],
1630                 'targets' => [ 'desktop', 'mobile' ],
1631         ],
1632
1633         'mediawiki.language.months' => [
1634                 'scripts' => 'resources/src/mediawiki.language/mediawiki.language.months.js',
1635                 'dependencies' => 'mediawiki.language',
1636                 'messages' => array_merge(
1637                         Language::$mMonthMsgs,
1638                         Language::$mMonthGenMsgs,
1639                         Language::$mMonthAbbrevMsgs
1640                 )
1641         ],
1642
1643         'mediawiki.language.names' => [ 'class' => 'ResourceLoaderLanguageNamesModule' ],
1644
1645         'mediawiki.language.specialCharacters' => [
1646                 'class' => 'ResourceLoaderSpecialCharacterDataModule'
1647         ],
1648
1649         /* MediaWiki Libs */
1650
1651         'mediawiki.libs.jpegmeta' => [
1652                 'scripts' => 'resources/src/mediawiki.libs/mediawiki.libs.jpegmeta.js',
1653                 'targets' => [ 'desktop', 'mobile' ],
1654         ],
1655
1656         /* MediaWiki Page */
1657
1658         'mediawiki.page.gallery' => [
1659                 'scripts' => 'resources/src/mediawiki/page/gallery.js',
1660                 'dependencies' => [
1661                         'mediawiki.page.gallery.styles',
1662                         'jquery.throttle-debounce',
1663                 ]
1664         ],
1665         'mediawiki.page.gallery.styles' => [
1666                 'styles' => [
1667                         'resources/src/mediawiki/page/gallery.print.css' => [ 'media' => 'print' ],
1668                         'resources/src/mediawiki/page/gallery.css',
1669                 ],
1670                 'targets' => [ 'desktop', 'mobile' ],
1671         ],
1672         'mediawiki.page.gallery.slideshow' => [
1673                 'scripts' => 'resources/src/mediawiki/page/gallery-slideshow.js',
1674                 'dependencies' => [
1675                         'mediawiki.api',
1676                         'mediawiki.Title',
1677                         'oojs',
1678                         'oojs-ui-core',
1679                         'oojs-ui-widgets',
1680                         'oojs-ui.styles.icons-media',
1681                         'oojs-ui.styles.icons-movement'
1682                 ],
1683                 'messages' => [
1684                         'gallery-slideshow-toggle'
1685                 ]
1686         ],
1687         'mediawiki.page.ready' => [
1688                 'scripts' => 'resources/src/mediawiki/page/ready.js',
1689                 'dependencies' => [
1690                         'jquery.accessKeyLabel',
1691                         'jquery.checkboxShiftClick',
1692                         'jquery.mw-jump',
1693                 ],
1694                 'targets' => [ 'desktop', 'mobile' ],
1695         ],
1696         'mediawiki.page.startup' => [
1697                 'scripts' => 'resources/src/mediawiki/page/startup.js',
1698                 'targets' => [ 'desktop', 'mobile' ],
1699         ],
1700         'mediawiki.page.patrol.ajax' => [
1701                 'scripts' => 'resources/src/mediawiki/page/patrol.ajax.js',
1702                 'dependencies' => [
1703                         'mediawiki.api',
1704                         'mediawiki.util',
1705                         'mediawiki.Title',
1706                         'mediawiki.notify',
1707                         'jquery.spinner',
1708                         'user.tokens'
1709                 ],
1710                 'messages' => [
1711                         'markedaspatrollednotify',
1712                         'markedaspatrollederrornotify',
1713                         'markedaspatrollederror-noautopatrol'
1714                 ],
1715         ],
1716         'mediawiki.page.watch.ajax' => [
1717                 'scripts' => 'resources/src/mediawiki/page/watch.js',
1718                 'dependencies' => [
1719                         'mediawiki.page.startup',
1720                         'mediawiki.api.watch',
1721                         'mediawiki.notify',
1722                         'mediawiki.util',
1723                         'mediawiki.Title',
1724                         'mediawiki.jqueryMsg',
1725                         'jquery.accessKeyLabel',
1726                         'mediawiki.RegExp',
1727                 ],
1728                 'messages' => [
1729                         'watch',
1730                         'unwatch',
1731                         'watching',
1732                         'unwatching',
1733                         'tooltip-ca-watch',
1734                         'tooltip-ca-unwatch',
1735                         'watcherrortext',
1736                         'addedwatchtext',
1737                         'addedwatchtext-talk',
1738                         'removedwatchtext',
1739                         'removedwatchtext-talk',
1740                 ],
1741         ],
1742         'mediawiki.page.rollback' => [
1743                 'scripts' => 'resources/src/mediawiki/page/rollback.js',
1744                 'dependencies' => [
1745                         'mediawiki.api.rollback',
1746                         'mediawiki.notify',
1747                         'mediawiki.util',
1748                         'jquery.spinner',
1749                 ],
1750                 'messages' => [
1751                         'rollbackfailed',
1752                         'actioncomplete',
1753                 ],
1754         ],
1755         'mediawiki.page.image.pagination' => [
1756                 'scripts' => 'resources/src/mediawiki/page/image-pagination.js',
1757                 'dependencies' => [
1758                         'mediawiki.util',
1759                         'jquery.spinner',
1760                 ],
1761         ],
1762
1763         /* MediaWiki Special pages */
1764
1765         'mediawiki.rcfilters.filters.base.styles' => [
1766                 'styles' => [
1767                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less',
1768                 ],
1769         ],
1770         'mediawiki.rcfilters.highlightCircles.seenunseen.styles' => [
1771                 'styles' => [
1772                         'resources/src/mediawiki.rcfilters/' .
1773                         'styles/mw.rcfilters.ui.ChangesListWrapperWidget.highlightCircles.seenunseen.less',
1774                 ],
1775         ],
1776         'mediawiki.rcfilters.filters.dm' => [
1777                 'scripts' => [
1778                         'resources/src/mediawiki.rcfilters/mw.rcfilters.js',
1779                         'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js',
1780                         'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js',
1781                         'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js',
1782                         'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js',
1783                         'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueryItemModel.js',
1784                         'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js',
1785                         'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ChangesListViewModel.js',
1786                         'resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js',
1787                         'resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js',
1788                 ],
1789                 'dependencies' => [
1790                         'jquery.byteLength',
1791                         'oojs',
1792                         'mediawiki.api',
1793                         'mediawiki.api.options',
1794                         'mediawiki.Uri',
1795                         'mediawiki.user',
1796                 ],
1797         ],
1798         'mediawiki.rcfilters.filters.ui' => [
1799                 'scripts' => [
1800                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CheckboxInputWidget.js',
1801                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js',
1802                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ItemMenuOptionWidget.js',
1803                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuOptionWidget.js',
1804                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuSectionOptionWidget.js',
1805                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js',
1806                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js',
1807                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuHeaderWidget.js',
1808                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MenuSelectWidget.js',
1809                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ViewSwitchWidget.js',
1810                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ValuePickerWidget.js',
1811                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesLimitPopupWidget.js',
1812                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesLimitButtonWidget.js',
1813                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DateButtonWidget.js',
1814                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DatePopupWidget.js',
1815                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js',
1816                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js',
1817                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SavedLinksListWidget.js',
1818                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SavedLinksListItemWidget.js',
1819                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SaveFiltersPopupButtonWidget.js',
1820                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FormWrapperWidget.js',
1821                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterItemHighlightButton.js',
1822                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.HighlightColorPickerWidget.js',
1823                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.LiveUpdateButtonWidget.js',
1824                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MarkSeenButtonWidget.js',
1825                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RcTopSectionWidget.js',
1826                         'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.WatchlistTopSectionWidget.js',
1827                         'resources/src/mediawiki.rcfilters/mw.rcfilters.HighlightColors.js',
1828                         'resources/src/mediawiki.rcfilters/mw.rcfilters.init.js',
1829                 ],
1830                 'styles' => [
1831                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.mixins.less',
1832                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.variables.less',
1833                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.less',
1834                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.Overlay.less',
1835                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterTagMultiselectWidget.less',
1836                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ItemMenuOptionWidget.less',
1837                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterMenuOptionWidget.less',
1838                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterMenuSectionOptionWidget.less',
1839                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.TagItemWidget.less',
1840                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterMenuHeaderWidget.less',
1841                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.MenuSelectWidget.less',
1842                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ViewSwitchWidget.less',
1843                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ValuePickerWidget.less',
1844                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ChangesLimitPopupWidget.less',
1845                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.DatePopupWidget.less',
1846                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterWrapperWidget.less',
1847                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ChangesListWrapperWidget.less',
1848                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.HighlightColorPickerWidget.less',
1849                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterItemHighlightButton.less',
1850                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.SavedLinksListWidget.less',
1851                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.SavedLinksListItemWidget.less',
1852                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.SaveFiltersPopupButtonWidget.less',
1853                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.LiveUpdateButtonWidget.less',
1854                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.RcTopSectionWidget.less',
1855                         'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.WatchlistTopSectionWidget.less',
1856                 ],
1857                 'skinStyles' => [
1858                         'monobook' => [
1859                                 'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.Overlay.monobook.less',
1860                                 'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.CapsuleItemWidget.monobook.less',
1861                                 'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterMenuOptionWidget.monobook.less',
1862                         ],
1863                 ],
1864                 'messages' => [
1865                         'rcfilters-tag-remove',
1866                         'rcfilters-activefilters',
1867                         'rcfilters-advancedfilters',
1868                         'rcfilters-group-results-by-page',
1869                         'rcfilters-grouping-title',
1870                         'rcfilters-limit-title',
1871                         'rcfilters-limit-shownum',
1872                         'rcfilters-days-title',
1873                         'rcfilters-hours-title',
1874                         'rcfilters-days-show-days',
1875                         'rcfilters-days-show-hours',
1876                         'rcfilters-highlighted-filters-list',
1877                         'rcfilters-quickfilters',
1878                         'rcfilters-quickfilters-placeholder-title',
1879                         'rcfilters-quickfilters-placeholder-description',
1880                         'rcfilters-savedqueries-defaultlabel',
1881                         'rcfilters-savedqueries-rename',
1882                         'rcfilters-savedqueries-setdefault',
1883                         'rcfilters-savedqueries-unsetdefault',
1884                         'rcfilters-savedqueries-remove',
1885                         'rcfilters-savedqueries-new-name-label',
1886                         'rcfilters-savedqueries-new-name-placeholder',
1887                         'rcfilters-savedqueries-add-new-title',
1888                         'rcfilters-savedqueries-apply-label',
1889                         'rcfilters-savedqueries-apply-and-setdefault-label',
1890                         'rcfilters-savedqueries-cancel-label',
1891                         'rcfilters-restore-default-filters',
1892                         'rcfilters-clear-all-filters',
1893                         'rcfilters-show-new-changes',
1894                         'rcfilters-search-placeholder',
1895                         'rcfilters-invalid-filter',
1896                         'rcfilters-empty-filter',
1897                         'rcfilters-filterlist-title',
1898                         'rcfilters-filterlist-feedbacklink',
1899                         'rcfilters-filterlist-noresults',
1900                         'rcfilters-filterlist-whatsthis',
1901                         'rcfilters-highlightbutton-title',
1902                         'rcfilters-highlightmenu-title',
1903                         'rcfilters-highlightmenu-help',
1904                         'rcfilters-noresults-conflict',
1905                         'rcfilters-state-message-subset',
1906                         'rcfilters-state-message-fullcoverage',
1907                         'rcfilters-filter-excluded',
1908                         'rcfilters-tag-prefix-namespace',
1909                         'rcfilters-tag-prefix-namespace-inverted',
1910                         'rcfilters-tag-prefix-tags',
1911                         'rcfilters-exclude-button-off',
1912                         'rcfilters-exclude-button-on',
1913                         'rcfilters-view-advanced-filters-label',
1914                         'rcfilters-view-tags',
1915                         'rcfilters-view-namespaces-tooltip',
1916                         'rcfilters-view-tags-tooltip',
1917                         'rcfilters-view-return-to-default-tooltip',
1918                         'rcfilters-liveupdates-button',
1919                         'rcfilters-liveupdates-button-title-on',
1920                         'rcfilters-liveupdates-button-title-off',
1921                         'rcfilters-watchlist-markseen-button',
1922                         'rcfilters-watchlist-edit-watchlist-button',
1923                         'rcfilters-other-review-tools',
1924                         'blanknamespace',
1925                         'namespaces',
1926                         'invert',
1927                         'recentchanges-noresult',
1928                         'quotation-marks',
1929                 ],
1930                 'dependencies' => [
1931                         'oojs-ui',
1932                         'jquery.makeCollapsible',
1933                         'mediawiki.language',
1934                         'mediawiki.user',
1935                         'mediawiki.rcfilters.filters.dm',
1936                         'oojs-ui.styles.icons-content',
1937                         'oojs-ui.styles.icons-moderation',
1938                         'oojs-ui.styles.icons-editing-core',
1939                         'oojs-ui.styles.icons-editing-styling',
1940                         'oojs-ui.styles.icons-interactions',
1941                         'oojs-ui.styles.icons-content',
1942                         'oojs-ui.styles.icons-layout',
1943                         'oojs-ui.styles.icons-media',
1944                 ],
1945         ],
1946         'mediawiki.special' => [
1947                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.css',
1948                 'targets' => [ 'desktop', 'mobile' ],
1949         ],
1950         'mediawiki.special.apisandbox.styles' => [
1951                 'targets' => [ 'desktop', 'mobile' ],
1952                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.top.css',
1953         ],
1954         'mediawiki.special.apisandbox' => [
1955                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.css',
1956                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.js',
1957                 'targets' => [ 'desktop', 'mobile' ],
1958                 'dependencies' => [
1959                         'mediawiki.api',
1960                         'mediawiki.jqueryMsg',
1961                         'mediawiki.util',
1962                         'oojs-ui',
1963                         'oojs-ui.styles.icons-content',
1964                         'oojs-ui.styles.icons-editing-advanced',
1965                         'oojs-ui.styles.icons-interactions',
1966                         'oojs-ui.styles.icons-moderation',
1967                         'mediawiki.widgets.datetime',
1968                         'jquery.makeCollapsible',
1969                 ],
1970                 'messages' => [
1971                         'apisandbox-intro',
1972                         'apisandbox-submit',
1973                         'apisandbox-reset',
1974                         'apisandbox-fullscreen',
1975                         'apisandbox-fullscreen-tooltip',
1976                         'apisandbox-unfullscreen',
1977                         'apisandbox-unfullscreen-tooltip',
1978                         'apisandbox-retry',
1979                         'apisandbox-loading',
1980                         'apisandbox-load-error',
1981                         'apisandbox-fetch-token',
1982                         'apisandbox-helpurls',
1983                         'apisandbox-examples',
1984                         'apisandbox-dynamic-parameters',
1985                         'apisandbox-dynamic-parameters-add-label',
1986                         'apisandbox-dynamic-parameters-add-placeholder',
1987                         'apisandbox-dynamic-error-exists',
1988                         'apisandbox-deprecated-parameters',
1989                         'apisandbox-no-parameters',
1990                         'api-help-param-limit',
1991                         'api-help-param-limit2',
1992                         'api-help-param-integer-min',
1993                         'api-help-param-integer-max',
1994                         'api-help-param-integer-minmax',
1995                         'api-help-param-multi-separate',
1996                         'api-help-param-multi-max',
1997                         'apisandbox-submit-invalid-fields-title',
1998                         'apisandbox-submit-invalid-fields-message',
1999                         'apisandbox-results',
2000                         'apisandbox-sending-request',
2001                         'apisandbox-loading-results',
2002                         'apisandbox-results-error',
2003                         'apisandbox-results-login-suppressed',
2004                         'apisandbox-request-selectformat-label',
2005                         'apisandbox-request-format-url-label',
2006                         'apisandbox-request-url-label',
2007                         'apisandbox-request-format-json-label',
2008                         'apisandbox-request-json-label',
2009                         'apisandbox-request-time',
2010                         'apisandbox-results-fixtoken',
2011                         'apisandbox-results-fixtoken-fail',
2012                         'apisandbox-alert-page',
2013                         'apisandbox-alert-field',
2014                         'apisandbox-continue',
2015                         'apisandbox-continue-clear',
2016                         'apisandbox-continue-help',
2017                         'apisandbox-param-limit',
2018                         'apisandbox-multivalue-all-namespaces',
2019                         'apisandbox-multivalue-all-values',
2020                         'api-format-prettyprint-status',
2021                         'blanknamespace',
2022                 ],
2023         ],
2024         'mediawiki.special.block' => [
2025                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.block.js',
2026                 'dependencies' => [
2027                         'mediawiki.util',
2028                         'mediawiki.htmlform',
2029                 ],
2030         ],
2031         'mediawiki.special.changecredentials.js' => [
2032                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changecredentials.js',
2033                 'dependencies' => [
2034                         'mediawiki.api',
2035                         'mediawiki.htmlform.ooui'
2036                 ],
2037                 'targets' => [ 'desktop', 'mobile' ],
2038         ],
2039         'mediawiki.special.changeslist' => [
2040                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.css',
2041                 'targets' => [ 'desktop', 'mobile' ],
2042         ],
2043         'mediawiki.special.changeslist.enhanced' => [
2044                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
2045         ],
2046         'mediawiki.special.changeslist.legend' => [
2047                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css',
2048                 'targets' => [ 'desktop', 'mobile' ],
2049         ],
2050         'mediawiki.special.changeslist.legend.js' => [
2051                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js',
2052                 'dependencies' => [
2053                         'jquery.makeCollapsible',
2054                         'mediawiki.cookie',
2055                 ],
2056                 'targets' => [ 'desktop', 'mobile' ],
2057         ],
2058         'mediawiki.special.changeslist.visitedstatus' => [
2059                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.visitedstatus.js',
2060         ],
2061         'mediawiki.special.comparepages.styles' => [
2062                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.comparepages.styles.less',
2063         ],
2064         'mediawiki.special.contributions' => [
2065                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.contributions.js',
2066                 'dependencies' => [
2067                         'mediawiki.widgets.DateInputWidget',
2068                         'mediawiki.jqueryMsg',
2069                 ]
2070         ],
2071         'mediawiki.special.edittags' => [
2072                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.edittags.js',
2073                 'dependencies' => [
2074                         'jquery.chosen',
2075                 ],
2076                 'messages' => [
2077                         'tags-edit-chosen-placeholder',
2078                         'tags-edit-chosen-no-results',
2079                 ],
2080         ],
2081         'mediawiki.special.edittags.styles' => [
2082                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.edittags.css',
2083         ],
2084         'mediawiki.special.import' => [
2085                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.import.js',
2086         ],
2087         'mediawiki.special.movePage' => [
2088                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js',
2089                 'dependencies' => [
2090                         'mediawiki.widgets.visibleByteLimit',
2091                         'mediawiki.widgets',
2092                 ],
2093         ],
2094         'mediawiki.special.movePage.styles' => [
2095                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.movePage.css',
2096         ],
2097         'mediawiki.special.pageLanguage' => [
2098                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
2099                 'dependencies' => [
2100                         'oojs-ui-core',
2101                 ],
2102         ],
2103         'mediawiki.special.pagesWithProp' => [
2104                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.pagesWithProp.css',
2105         ],
2106         'mediawiki.special.preferences' => [
2107                 'scripts' => [
2108                         'resources/src/mediawiki.special/mediawiki.special.preferences.confirmClose.js',
2109                         'resources/src/mediawiki.special/mediawiki.special.preferences.convertmessagebox.js',
2110                         'resources/src/mediawiki.special/mediawiki.special.preferences.tabs.js',
2111                         'resources/src/mediawiki.special/mediawiki.special.preferences.timezone.js',
2112                 ],
2113                 'messages' => [
2114                         'prefs-tabs-navigation-hint',
2115                         'prefswarning-warning',
2116                         'saveprefs',
2117                         'savedprefs',
2118                 ],
2119                 'dependencies' => [
2120                         'mediawiki.language',
2121                         'mediawiki.confirmCloseWindow',
2122                         'mediawiki.notification.convertmessagebox',
2123                 ],
2124         ],
2125         'mediawiki.special.preferences.styles' => [
2126                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.preferences.styles.css',
2127         ],
2128         'mediawiki.special.recentchanges' => [
2129                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.recentchanges.js',
2130                 'targets' => [ 'desktop', 'mobile' ],
2131         ],
2132         'mediawiki.special.search' => [
2133                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.js',
2134                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.css',
2135                 'dependencies' => 'mediawiki.widgets.SearchInputWidget',
2136                 'messages' => [
2137                         'powersearch-togglelabel',
2138                         'powersearch-toggleall',
2139                         'powersearch-togglenone',
2140                 ],
2141         ],
2142         'mediawiki.special.search.commonsInterwikiWidget' => [
2143                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.commonsInterwikiWidget.js',
2144                 'dependencies' => [
2145                         'mediawiki.api',
2146                         'mediawiki.Uri',
2147                         'mediawiki.jqueryMsg'
2148                 ],
2149                 'targets' => [ 'desktop', 'mobile' ],
2150                 'messages' => [
2151                         'search-interwiki-more-results',
2152                         'searchprofile-images'
2153                 ],
2154         ],
2155         'mediawiki.special.search.interwikiwidget.styles' => [
2156                 'styles' => 'resources/src/mediawiki.special/'
2157                         . 'mediawiki.special.search.interwikiwidget.styles.less',
2158                 'targets' => [ 'desktop', 'mobile' ]
2159         ],
2160         'mediawiki.special.search.styles' => [
2161                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.styles.css',
2162                 'targets' => [ 'desktop', 'mobile' ],
2163         ],
2164         'mediawiki.special.undelete' => [
2165                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.undelete.js',
2166         ],
2167         'mediawiki.special.unwatchedPages' => [
2168                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.unwatchedPages.js',
2169                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.unwatchedPages.css',
2170                 'messages' => [
2171                         'addedwatchtext-short',
2172                         'removedwatchtext-short',
2173                         'unwatch',
2174                         'unwatching',
2175                         'watch',
2176                         'watcherrortext',
2177                         'watching',
2178                 ],
2179                 'dependencies' => [
2180                         'mediawiki.api',
2181                         'mediawiki.api.watch',
2182                         'mediawiki.notify',
2183                         'mediawiki.Title',
2184                         'mediawiki.util',
2185                 ],
2186         ],
2187         'mediawiki.special.upload' => [
2188                 'templates' => [
2189                         'thumbnail.html' => 'resources/src/mediawiki.special/templates/thumbnail.html',
2190                 ],
2191                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.upload.js',
2192                 'messages' => [
2193                         'widthheight',
2194                         'size-bytes',
2195                         'size-kilobytes',
2196                         'size-megabytes',
2197                         'size-gigabytes',
2198                         'largefileserver',
2199                         'editwarning-warning',
2200                         // editwarning-warning uses {{int:prefs-editing}}
2201                         'prefs-editing',
2202                 ],
2203                 'dependencies' => [
2204                         'mediawiki.special.upload.styles',
2205                         'jquery.spinner',
2206                         'mediawiki.jqueryMsg',
2207                         'mediawiki.api',
2208                         'mediawiki.libs.jpegmeta',
2209                         'mediawiki.Title',
2210                         'mediawiki.util',
2211                         'mediawiki.confirmCloseWindow',
2212                         'user.options',
2213                 ],
2214         ],
2215         'mediawiki.special.upload.styles' => [
2216                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.upload.styles.css',
2217         ],
2218         'mediawiki.special.userlogin.common.styles' => [
2219                 'targets' => [ 'desktop', 'mobile' ],
2220                 'skinStyles' => [
2221                         'default' => 'resources/src/mediawiki.special/mediawiki.special.userlogin.common.css',
2222                 ],
2223         ],
2224         'mediawiki.special.userlogin.login.styles' => [
2225                 'styles' => [
2226                         'resources/src/mediawiki.special/mediawiki.special.userlogin.login.css',
2227                 ],
2228         ],
2229         'mediawiki.special.userlogin.signup.js' => [
2230                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js',
2231                 'messages' => [
2232                         'createacct-emailrequired',
2233                         'noname',
2234                         'userexists',
2235                 ],
2236                 'dependencies' => [
2237                         'mediawiki.api',
2238                         'mediawiki.jqueryMsg',
2239                         'jquery.throttle-debounce',
2240                         'mediawiki.htmlform.checker',
2241                 ],
2242         ],
2243         'mediawiki.special.userlogin.signup.styles' => [
2244                 'styles' => [
2245                         'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.css',
2246                 ],
2247         ],
2248         'mediawiki.special.userrights' => [
2249                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.userrights.css',
2250                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.userrights.js',
2251                 'dependencies' => [
2252                         'mediawiki.notification.convertmessagebox',
2253                 ],
2254         ],
2255         'mediawiki.special.watchlist' => [
2256                 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.watchlist.js',
2257                 'messages' => [
2258                         'addedwatchtext',
2259                         'addedwatchtext-talk',
2260                         'removedwatchtext',
2261                         'removedwatchtext-talk',
2262                         'tooltip-ca-watch',
2263                         'tooltip-ca-unwatch',
2264                         'watchlist-unwatch',
2265                         'watchlist-unwatch-undo',
2266                 ],
2267                 'dependencies' => [
2268                         'mediawiki.api.watch',
2269                         'mediawiki.jqueryMsg',
2270                         'mediawiki.Title',
2271                         'mediawiki.util',
2272                         'oojs-ui-core',
2273                         'user.options',
2274                 ],
2275         ],
2276         'mediawiki.special.watchlist.styles' => [
2277                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.watchlist.css',
2278         ],
2279         'mediawiki.special.version' => [
2280                 'styles' => 'resources/src/mediawiki.special/mediawiki.special.version.css',
2281         ],
2282
2283         /* MediaWiki Installer */
2284
2285         // Used in the web installer. Test it after modifying this definition!
2286         'mediawiki.legacy.config' => [
2287                 // These files are not actually loaded via ResourceLoader, so dependencies etc. won't work.
2288                 'scripts' => 'mw-config/config.js',
2289                 'styles' => 'mw-config/config.css',
2290         ],
2291
2292         /* MediaWiki Legacy */
2293
2294         'mediawiki.legacy.commonPrint' => [
2295                 'styles' => [
2296                         'resources/src/mediawiki.legacy/commonPrint.css' => [ 'media' => 'print' ]
2297                 ],
2298         ],
2299         'mediawiki.legacy.protect' => [
2300                 'scripts' => 'resources/src/mediawiki.legacy/protect.js',
2301                 'dependencies' => 'jquery.byteLimit',
2302                 'messages' => [ 'protect-unchain-permissions' ]
2303         ],
2304         // Used in the web installer. Test it after modifying this definition!
2305         'mediawiki.legacy.shared' => [
2306                 'targets' => [ 'desktop', 'mobile' ],
2307                 'styles' => [
2308                         'resources/src/mediawiki.legacy/shared.css' => [ 'media' => 'screen' ]
2309                 ],
2310         ],
2311         'mediawiki.legacy.oldshared' => [
2312                 'styles' => [
2313                         'resources/src/mediawiki.legacy/oldshared.css' => [ 'media' => 'screen' ]
2314                 ],
2315         ],
2316         'mediawiki.legacy.wikibits' => [
2317                 'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
2318                 'targets' => [ 'desktop', 'mobile' ],
2319         ],
2320
2321         /* MediaWiki UI */
2322
2323         'mediawiki.ui' => [
2324                 'skinStyles' => [
2325                         'default' => [
2326                                 'resources/src/mediawiki.ui/default.less',
2327                         ],
2328                 ],
2329                 'targets' => [ 'desktop', 'mobile' ],
2330         ],
2331         'mediawiki.ui.checkbox' => [
2332                 'skinStyles' => [
2333                         'default' => [
2334                                 'resources/src/mediawiki.ui/components/checkbox.less',
2335                         ],
2336                 ],
2337                 'targets' => [ 'desktop', 'mobile' ],
2338         ],
2339         'mediawiki.ui.radio' => [
2340                 'skinStyles' => [
2341                         'default' => [
2342                                 'resources/src/mediawiki.ui/components/radio.less',
2343                         ],
2344                 ],
2345                 'targets' => [ 'desktop', 'mobile' ],
2346         ],
2347         // Lightweight module for anchor styles
2348         'mediawiki.ui.anchor' => [
2349                 'skinStyles' => [
2350                         'default' => [
2351                                 'resources/src/mediawiki.ui/components/anchors.less',
2352                         ],
2353                 ],
2354                 'targets' => [ 'desktop', 'mobile' ],
2355         ],
2356         // Lightweight module for button styles
2357         'mediawiki.ui.button' => [
2358                 'skinStyles' => [
2359                         'default' => [
2360                                 'resources/src/mediawiki.ui/components/buttons.less',
2361                         ],
2362                 ],
2363                 'targets' => [ 'desktop', 'mobile' ],
2364         ],
2365         'mediawiki.ui.input' => [
2366                 'skinStyles' => [
2367                         'default' => [
2368                                 'resources/src/mediawiki.ui/components/inputs.less',
2369                         ],
2370                 ],
2371                 'targets' => [ 'desktop', 'mobile' ],
2372         ],
2373         'mediawiki.ui.icon' => [
2374                 'skinStyles' => [
2375                         'default' => [
2376                                 'resources/src/mediawiki.ui/components/icons.less',
2377                         ],
2378                 ],
2379                 'targets' => [ 'desktop', 'mobile' ],
2380         ],
2381         // Lightweight module for text styles
2382         'mediawiki.ui.text' => [
2383                 'skinStyles' => [
2384                         'default' => [
2385                                 'resources/src/mediawiki.ui/components/text.less',
2386                         ],
2387                 ],
2388                 'targets' => [ 'desktop', 'mobile' ],
2389         ],
2390
2391         'mediawiki.widgets' => [
2392                 'scripts' => [
2393                         'resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js',
2394                         'resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.js',
2395                         'resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js',
2396                         'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js',
2397                         'resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js',
2398                         'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js',
2399                         'resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js',
2400                 ],
2401                 'skinStyles' => [
2402                         'default' => [
2403                                 'resources/src/mediawiki.widgets/mw.widgets.TitleWidget.less',
2404                         ],
2405                 ],
2406                 'dependencies' => [
2407                         'oojs-ui-widgets',
2408                         'mediawiki.widgets.styles',
2409                         // TitleInputWidget
2410                         'mediawiki.Title',
2411                         'mediawiki.api',
2412                         'jquery.byteLimit',
2413                         // TitleOptionWidget
2414                         'jquery.highlightText',
2415                 ],
2416                 'messages' => [
2417                         // NamespaceInputWidget
2418                         'blanknamespace',
2419                         'namespacesall',
2420                         // TitleInputWidget
2421                         'mw-widgets-titleinput-description-new-page',
2422                         'mw-widgets-titleinput-description-redirect',
2423                 ],
2424                 'targets' => [ 'desktop', 'mobile' ],
2425         ],
2426         'mediawiki.widgets.styles' => [
2427                 'skinStyles' => [
2428                         'default' => [
2429                                 'resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.base.css',
2430                                 'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.base.css',
2431                         ],
2432                 ],
2433                 'targets' => [ 'desktop', 'mobile' ],
2434         ],
2435         'mediawiki.widgets.DateInputWidget' => [
2436                 'scripts' => [
2437                         'resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.js',
2438                         'resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js',
2439                 ],
2440                 'skinStyles' => [
2441                         'default' => [
2442                                 'resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.less',
2443                                 'resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.less',
2444                         ],
2445                 ],
2446                 'messages' => [
2447                         'mw-widgets-dateinput-no-date',
2448                         'mw-widgets-dateinput-placeholder-day',
2449                         'mw-widgets-dateinput-placeholder-month',
2450                 ],
2451                 'dependencies' => [
2452                         'oojs-ui-widgets',
2453                         'oojs-ui.styles.icons-movement',
2454                         'moment',
2455                         'mediawiki.widgets.DateInputWidget.styles',
2456                 ],
2457                 'targets' => [ 'desktop', 'mobile' ],
2458         ],
2459         'mediawiki.widgets.DateInputWidget.styles' => [
2460                 'skinStyles' => [
2461                         'default' => [
2462                                 'resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.styles.less',
2463                         ],
2464                 ],
2465                 'targets' => [ 'desktop', 'mobile' ],
2466         ],
2467         'mediawiki.widgets.visibleByteLimit' => [
2468                 'scripts' => [
2469                         'resources/src/mediawiki.widgets.visibleByteLimit/mediawiki.widgets.visibleByteLimit.js'
2470                 ],
2471                 'dependencies' => [
2472                         'oojs-ui-core',
2473                         'jquery.byteLimit'
2474                 ],
2475                 'targets' => [ 'desktop', 'mobile' ]
2476         ],
2477         'mediawiki.widgets.datetime' => [
2478                 'scripts' => [
2479                         'resources/src/mediawiki.widgets.datetime/mediawiki.widgets.datetime.js',
2480                         'resources/src/mediawiki.widgets.datetime/CalendarWidget.js',
2481                         'resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js',
2482                         'resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js',
2483                         'resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js',
2484                 ],
2485                 'skinStyles' => [
2486                         'default' => [
2487                                 'resources/src/mediawiki.widgets.datetime/CalendarWidget.less',
2488                                 'resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.less',
2489                         ],
2490                 ],
2491                 'messages' => [
2492                         'timezone-utc',
2493                         'timezone-local',
2494                         'january',
2495                         'february',
2496                         'march',
2497                         'april',
2498                         'may_long',
2499                         'june',
2500                         'july',
2501                         'august',
2502                         'september',
2503                         'october',
2504                         'november',
2505                         'december',
2506                         'jan',
2507                         'feb',
2508                         'mar',
2509                         'apr',
2510                         'may',
2511                         'jun',
2512                         'jul',
2513                         'aug',
2514                         'sep',
2515                         'oct',
2516                         'nov',
2517                         'dec',
2518                         'sunday',
2519                         'monday',
2520                         'tuesday',
2521                         'wednesday',
2522                         'thursday',
2523                         'friday',
2524                         'saturday',
2525                         'sun',
2526                         'mon',
2527                         'tue',
2528                         'wed',
2529                         'thu',
2530                         'fri',
2531                         'sat',
2532                         'period-am',
2533                         'period-pm',
2534                 ],
2535                 'dependencies' => [
2536                         'oojs-ui-core',
2537                         'oojs-ui.styles.icons-moderation',
2538                         'oojs-ui.styles.icons-movement',
2539                 ],
2540                 'targets' => [ 'desktop', 'mobile' ],
2541         ],
2542         'mediawiki.widgets.CategorySelector' => [
2543                 'deprecated' => 'Use "mw.widgets.CategoryMultiselectWidget" instead. See T161285.',
2544                 'dependencies' => [
2545                         'mediawiki.widgets.CategoryMultiselectWidget',
2546                 ],
2547         ],
2548         'mediawiki.widgets.CategoryMultiselectWidget' => [
2549                 'scripts' => [
2550                         'resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js',
2551                         'resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js',
2552                 ],
2553                 'dependencies' => [
2554                         'oojs-ui-widgets',
2555                         'mediawiki.api',
2556                         'mediawiki.ForeignApi',
2557                         'mediawiki.Title',
2558                 ],
2559                 'messages' => [
2560                         'red-link-title',
2561                         'mw-widgets-categoryselector-add-category-placeholder',
2562                 ],
2563                 'targets' => [ 'desktop', 'mobile' ],
2564         ],
2565         'mediawiki.widgets.SelectWithInputWidget' => [
2566                 'scripts' => 'resources/src/mediawiki.widgets/mw.widgets.SelectWithInputWidget.js',
2567                 'dependencies' => [
2568                         'mediawiki.widgets.SelectWithInputWidget.styles',
2569                         'oojs-ui-widgets',
2570                 ],
2571                 'targets' => [ 'desktop', 'mobile' ],
2572         ],
2573         'mediawiki.widgets.SelectWithInputWidget.styles' => [
2574                 'styles' => 'resources/src/mediawiki.widgets/mw.widgets.SelectWithInputWidget.base.css',
2575                 'targets' => [ 'desktop', 'mobile' ],
2576         ],
2577         'mediawiki.widgets.MediaSearch' => [
2578                 'scripts' => [
2579                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.APIResultsProvider.js',
2580                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.APIResultsQueue.js',
2581                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceProvider.js',
2582                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchProvider.js',
2583                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js',
2584                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchQueue.js',
2585                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchWidget.js',
2586                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResultWidget.js',
2587                 ],
2588                 'styles' => [
2589                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaSearchWidget.css',
2590                         'resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResultWidget.css',
2591                 ],
2592                 'dependencies' => [
2593                         'oojs-ui-widgets',
2594                         'mediawiki.ForeignApi',
2595                         'mediawiki.Title',
2596                         'mediawiki.util',
2597                 ],
2598                 'messages' => [
2599                         'mw-widgets-mediasearch-noresults',
2600                         'mw-widgets-mediasearch-input-placeholder',
2601                 ],
2602                 'targets' => [ 'desktop', 'mobile' ],
2603         ],
2604         'mediawiki.widgets.UserInputWidget' => [
2605                 'scripts' => [
2606                         'resources/src/mediawiki.widgets/mw.widgets.UserInputWidget.js',
2607                 ],
2608                 'dependencies' => [
2609                         'mediawiki.api',
2610                         'oojs-ui-widgets',
2611                 ],
2612                 'targets' => [ 'desktop', 'mobile' ],
2613         ],
2614         'mediawiki.widgets.UsersMultiselectWidget' => [
2615                 'scripts' => [
2616                         'resources/src/mediawiki.widgets/mw.widgets.UsersMultiselectWidget.js',
2617                 ],
2618                 'dependencies' => [
2619                         'mediawiki.api',
2620                         'oojs-ui-widgets',
2621                 ],
2622                 'targets' => [ 'desktop', 'mobile' ],
2623         ],
2624         'mediawiki.widgets.SearchInputWidget' => [
2625                 'scripts' => [
2626                         'resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js',
2627                 ],
2628                 'dependencies' => [
2629                         'mediawiki.searchSuggest',
2630                         'oojs-ui.styles.icons-interactions',
2631                         // FIXME: Needs TitleInputWidget only
2632                         'mediawiki.widgets',
2633                 ],
2634         ],
2635         'mediawiki.widgets.SearchInputWidget.styles' => [
2636                 'skinStyles' => [
2637                         'default' => [
2638                                 'resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.css',
2639                         ],
2640                 ],
2641                 'targets' => [ 'desktop', 'mobile' ],
2642         ],
2643         'mediawiki.widgets.StashedFileWidget' => [
2644                 'scripts' => [
2645                         'resources/src/mediawiki.widgets/mw.widgets.StashedFileWidget.js',
2646                 ],
2647                 'skinStyles' => [
2648                         'default' => [
2649                                 'resources/src/mediawiki.widgets/mw.widgets.StashedFileWidget.less',
2650                         ],
2651                 ],
2652                 'dependencies' => [
2653                         'mediawiki.api',
2654                         'oojs-ui-core',
2655                 ],
2656         ],
2657
2658         /* es5-shim */
2659         'es5-shim' => [
2660                 'deprecated' => 'Use of the "es5-shim" module is deprecated since MediaWiki 1.29.0',
2661                 'targets' => [ 'desktop', 'mobile' ],
2662         ],
2663
2664         /* dom-level2-shim */
2665         'dom-level2-shim' => [
2666                 'deprecated' => 'Use of the "dom-level2-shim" module is deprecated since MediaWiki 1.29.0',
2667                 'targets' => [ 'desktop', 'mobile' ],
2668         ],
2669
2670         /* OOjs */
2671         'oojs' => [
2672                 'scripts' => [
2673                         'resources/lib/oojs/oojs.jquery.js',
2674                         'resources/src/oojs-global.js',
2675                 ],
2676                 'targets' => [ 'desktop', 'mobile' ],
2677         ],
2678
2679         'mediawiki.router' => [
2680                 'scripts' => [
2681                         'resources/src/mediawiki.router/index.js',
2682                 ],
2683                 'targets' => [ 'desktop', 'mobile' ],
2684                 'dependencies' => [
2685                         'oojs-router',
2686                 ],
2687         ],
2688
2689         'oojs-router' => [
2690                 'scripts' => [
2691                         'resources/lib/oojs-router/oojs-router.js',
2692                 ],
2693                 'targets' => [ 'desktop', 'mobile' ],
2694                 'dependencies' => [
2695                         'oojs',
2696                 ],
2697         ],
2698
2699         /* OOjs UI */
2700
2701         // Omnibus module.
2702         'oojs-ui' => [
2703                 'dependencies' => [
2704                         'oojs-ui-core',
2705                         'oojs-ui-widgets',
2706                         'oojs-ui-toolbars',
2707                         'oojs-ui-windows',
2708                 ],
2709                 'targets' => [ 'desktop', 'mobile' ],
2710         ],
2711
2712         // The core JavaScript library.
2713         'oojs-ui-core' => [
2714                 'class' => 'ResourceLoaderOOUIFileModule',
2715                 'scripts' => [
2716                         'resources/lib/oojs-ui/oojs-ui-core.js',
2717                         'resources/src/oojs-ui-local.js',
2718                 ],
2719                 'themeScripts' => 'core',
2720                 'dependencies' => [
2721                         'oojs',
2722                         'oojs-ui-core.styles',
2723                         'oojs-ui.styles.indicators',
2724                         'oojs-ui.styles.textures',
2725                         'mediawiki.language',
2726                         'oojs-ui.styles.icons-content',
2727                         'oojs-ui.styles.icons-alerts',
2728                         'oojs-ui.styles.icons-interactions',
2729                 ],
2730                 'targets' => [ 'desktop', 'mobile' ],
2731         ],
2732         // This contains only the styles required by core widgets.
2733         'oojs-ui-core.styles' => [
2734                 'class' => 'ResourceLoaderOOUIFileModule',
2735                 'styles' => [
2736                         'resources/lib/oojs-ui/wikimedia-ui-base.less', // Providing Wikimedia UI LESS variables to all
2737                         'resources/src/oojs-ui-local.css', // HACK, see inside the file
2738                 ],
2739                 'themeStyles' => 'core',
2740                 'targets' => [ 'desktop', 'mobile' ],
2741         ],
2742         // Additional widgets and layouts module.
2743         'oojs-ui-widgets' => [
2744                 'class' => 'ResourceLoaderOOUIFileModule',
2745                 'scripts' => 'resources/lib/oojs-ui/oojs-ui-widgets.js',
2746                 'themeStyles' => 'widgets',
2747                 'dependencies' => [
2748                         'oojs-ui-core',
2749                         'oojs-ui.styles.icons-interactions',
2750                         'oojs-ui.styles.icons-content',
2751                         'oojs-ui.styles.icons-editing-advanced',
2752                         'oojs-ui.styles.icons-movement',
2753                         'oojs-ui.styles.icons-moderation',
2754                 ],
2755                 'messages' => [
2756                         'ooui-outline-control-move-down',
2757                         'ooui-outline-control-move-up',
2758                         'ooui-outline-control-remove',
2759                         'ooui-selectfile-button-select',
2760                         'ooui-selectfile-dragdrop-placeholder',
2761                         'ooui-selectfile-not-supported',
2762                         'ooui-selectfile-placeholder',
2763                 ],
2764                 'targets' => [ 'desktop', 'mobile' ],
2765         ],
2766         // Toolbar and tools module.
2767         'oojs-ui-toolbars' => [
2768                 'class' => 'ResourceLoaderOOUIFileModule',
2769                 'scripts' => 'resources/lib/oojs-ui/oojs-ui-toolbars.js',
2770                 'themeStyles' => 'toolbars',
2771                 'dependencies' => [
2772                         'oojs-ui-core',
2773                         'oojs-ui.styles.icons-movement',
2774                 ],
2775                 'messages' => [
2776                         'ooui-toolbar-more',
2777                         'ooui-toolgroup-collapse',
2778                         'ooui-toolgroup-expand',
2779                 ],
2780                 'targets' => [ 'desktop', 'mobile' ],
2781         ],
2782         // Windows and dialogs module.
2783         'oojs-ui-windows' => [
2784                 'class' => 'ResourceLoaderOOUIFileModule',
2785                 'scripts' => 'resources/lib/oojs-ui/oojs-ui-windows.js',
2786                 'themeStyles' => 'windows',
2787                 'dependencies' => [
2788                         'oojs-ui-core',
2789                         'oojs-ui.styles.icons-movement',
2790                 ],
2791                 'messages' => [
2792                         'ooui-dialog-message-accept',
2793                         'ooui-dialog-message-reject',
2794                         'ooui-dialog-process-continue',
2795                         'ooui-dialog-process-dismiss',
2796                         'ooui-dialog-process-error',
2797                         'ooui-dialog-process-retry',
2798                 ],
2799                 'targets' => [ 'desktop', 'mobile' ],
2800         ],
2801
2802         'oojs-ui.styles.indicators' => [
2803                 'class' => 'ResourceLoaderOOUIImageModule',
2804                 'themeImages' => 'indicators',
2805         ],
2806         'oojs-ui.styles.textures' => [
2807                 'class' => 'ResourceLoaderOOUIImageModule',
2808                 'themeImages' => 'textures',
2809         ],
2810         'oojs-ui.styles.icons-accessibility' => [
2811                 'class' => 'ResourceLoaderOOUIImageModule',
2812                 'themeImages' => 'icons-accessibility',
2813         ],
2814         'oojs-ui.styles.icons-alerts' => [
2815                 'class' => 'ResourceLoaderOOUIImageModule',
2816                 'themeImages' => 'icons-alerts',
2817         ],
2818         'oojs-ui.styles.icons-content' => [
2819                 'class' => 'ResourceLoaderOOUIImageModule',
2820                 'themeImages' => 'icons-content',
2821         ],
2822         'oojs-ui.styles.icons-editing-advanced' => [
2823                 'class' => 'ResourceLoaderOOUIImageModule',
2824                 'themeImages' => 'icons-editing-advanced',
2825         ],
2826         'oojs-ui.styles.icons-editing-core' => [
2827                 'class' => 'ResourceLoaderOOUIImageModule',
2828                 'themeImages' => 'icons-editing-core',
2829         ],
2830         'oojs-ui.styles.icons-editing-list' => [
2831                 'class' => 'ResourceLoaderOOUIImageModule',
2832                 'themeImages' => 'icons-editing-list',
2833         ],
2834         'oojs-ui.styles.icons-editing-styling' => [
2835                 'class' => 'ResourceLoaderOOUIImageModule',
2836                 'themeImages' => 'icons-editing-styling',
2837         ],
2838         'oojs-ui.styles.icons-interactions' => [
2839                 'class' => 'ResourceLoaderOOUIImageModule',
2840                 'themeImages' => 'icons-interactions',
2841         ],
2842         'oojs-ui.styles.icons-layout' => [
2843                 'class' => 'ResourceLoaderOOUIImageModule',
2844                 'themeImages' => 'icons-layout',
2845         ],
2846         'oojs-ui.styles.icons-location' => [
2847                 'class' => 'ResourceLoaderOOUIImageModule',
2848                 'themeImages' => 'icons-location',
2849         ],
2850         'oojs-ui.styles.icons-media' => [
2851                 'class' => 'ResourceLoaderOOUIImageModule',
2852                 'themeImages' => 'icons-media',
2853         ],
2854         'oojs-ui.styles.icons-moderation' => [
2855                 'class' => 'ResourceLoaderOOUIImageModule',
2856                 'themeImages' => 'icons-moderation',
2857         ],
2858         'oojs-ui.styles.icons-movement' => [
2859                 'class' => 'ResourceLoaderOOUIImageModule',
2860                 'themeImages' => 'icons-movement',
2861         ],
2862         'oojs-ui.styles.icons-user' => [
2863                 'class' => 'ResourceLoaderOOUIImageModule',
2864                 'themeImages' => 'icons-user',
2865         ],
2866         'oojs-ui.styles.icons-wikimedia' => [
2867                 'class' => 'ResourceLoaderOOUIImageModule',
2868                 'themeImages' => 'icons-wikimedia',
2869         ],
2870 ];