'targets' => array( 'desktop', 'mobile' ),
),
- /**
- * Skins
- * Be careful not to add 'scripts' to these modules,
- * since they are loaded with OutputPage::addModuleStyles so that the skin styles
- * apply without javascript.
- * If a skin needs custom js in the interface, register a separate module
- * and add it to the load queue with OutputPage::addModules.
- *
- * See Vector for an example.
- */
- 'skins.vector.styles' => array(
- // Used in the web installer. Test it after modifying this definition!
- 'styles' => array(
- 'screen.less' => array( 'media' => 'screen' ),
- 'screen-hd.less' => array( 'media' => 'screen and (min-width: 982px)' ),
- ),
- 'remoteSkinPath' => 'vector',
- 'localBasePath' => $GLOBALS['wgStyleDirectory'] . '/vector',
- ),
- 'skins.monobook.styles' => array(
- 'styles' => array(
- 'main.css' => array( 'media' => 'screen' ),
- ),
- 'remoteSkinPath' => 'monobook',
- 'localBasePath' => $GLOBALS['wgStyleDirectory'] . '/monobook',
- ),
- 'skins.vector.js' => array(
- 'scripts' => array(
- 'collapsibleTabs.js',
- 'vector.js',
- ),
- 'position' => 'top',
- 'dependencies' => array(
- 'jquery.throttle-debounce',
- 'jquery.tabIndex',
- ),
- 'remoteSkinPath' => 'vector',
- 'localBasePath' => $GLOBALS['wgStyleDirectory'] . '/vector',
- ),
-
/* jQuery */
'jquery' => array(
'scripts' => 'resources/lib/jquery/jquery.hoverIntent.js',
),
'jquery.json' => array(
- 'scripts' => 'resources/lib/jquery/jquery.json.js',
+ // @deprecated since 1.24: Use the 'json' module and global JSON object instead.
+ 'scripts' => array(
+ 'resources/lib/jquery/jquery.json.js',
+ 'resources/src/jquery.json-deprecate.js',
+ ),
'targets' => array( 'mobile', 'desktop' ),
),
'jquery.localize' => array(
),
'jquery.jStorage' => array(
'scripts' => 'resources/lib/jquery/jquery.jStorage.js',
- 'dependencies' => 'jquery.json',
+ 'dependencies' => 'json',
),
'jquery.suggestions' => array(
'scripts' => 'resources/src/jquery/jquery.suggestions.js',
'group' => 'jquery.ui',
),
+ /* json2 */
+
+ 'json' => array(
+ 'scripts' => 'resources/lib/json2/json2.js',
+ 'targets' => array( 'desktop', 'mobile' ),
+ 'skipFunction' => 'resources/src/json-skip.js',
+ ),
+
/* Moment.js */
'moment' => array(
'scripts' => 'resources/lib/moment/moment.js',
'languageScripts' => array(
- 'ar-ma' => 'resources/lib/moment/lang/ar-ma.js',
'ar' => 'resources/lib/moment/lang/ar.js',
+ 'ar-ma' => 'resources/lib/moment/lang/ar-ma.js',
+ 'ar-sa' => 'resources/lib/moment/lang/ar-sa.js',
+ 'az' => 'resources/lib/moment/lang/az.js',
'bg' => 'resources/lib/moment/lang/bg.js',
+ 'bn' => 'resources/lib/moment/lang/bn.js',
'br' => 'resources/lib/moment/lang/br.js',
'bs' => 'resources/lib/moment/lang/bs.js',
'ca' => 'resources/lib/moment/lang/ca.js',
'cy' => 'resources/lib/moment/lang/cy.js',
'da' => 'resources/lib/moment/lang/da.js',
'de' => 'resources/lib/moment/lang/de.js',
+ 'de-at' => 'resources/lib/moment/lang/de-at.js',
'el' => 'resources/lib/moment/lang/el.js',
'en-au' => 'resources/lib/moment/lang/en-au.js',
'en-ca' => 'resources/lib/moment/lang/en-ca.js',
'sk' => 'resources/lib/moment/lang/sk.js',
'sl' => 'resources/lib/moment/lang/sl.js',
'sq' => 'resources/lib/moment/lang/sq.js',
- 'sr-el' => 'resources/lib/moment/lang/sr.js',
- 'sr-ec' => 'resources/lib/moment/lang/sr-cyr.js',
+ 'sr' => 'resources/lib/moment/lang/sr.js',
+ 'sr-ec' => 'resources/lib/moment/lang/sr-cyrl.js',
'sv' => 'resources/lib/moment/lang/sv.js',
'ta' => 'resources/lib/moment/lang/ta.js',
'th' => 'resources/lib/moment/lang/th.js',
'tl-ph' => 'resources/lib/moment/lang/tl-ph.js',
'tr' => 'resources/lib/moment/lang/tr.js',
- 'tzm-la' => 'resources/lib/moment/lang/tzm-la.js',
'tzm' => 'resources/lib/moment/lang/tzm.js',
+ 'tzm-latn' => 'resources/lib/moment/lang/tzm-latn.js',
'uk' => 'resources/lib/moment/lang/uk.js',
'uz' => 'resources/lib/moment/lang/uz.js',
'vi' => 'resources/lib/moment/lang/vi.js',
'dependencies' => array(
'jquery.hidpi',
),
+ 'skipFunction' => 'resources/src/mediawiki.hidpi-skip.js',
'targets' => array( 'desktop', 'mobile' ),
),
'mediawiki.hlist' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.inspect.js',
'dependencies' => array(
'jquery.byteLength',
- 'jquery.json',
+ 'json',
),
'targets' => array( 'desktop', 'mobile' ),
),
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.js',
'styles' => 'resources/src/mediawiki.special/mediawiki.special.css',
'skinStyles' => array(
- 'vector' => 'skins/vector/special.less', // FIXME this should use $wgStyleDirectory
+ 'vector' => 'skins/Vector/special.less', // FIXME this should use $wgStyleDirectory
),
),
'mediawiki.special.block' => array(
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js',
'dependencies' => 'jquery.byteLimit',
),
+ 'mediawiki.special.pageLanguage' => array(
+ 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
+ ),
'mediawiki.special.pagesWithProp' => array(
'styles' => 'resources/src/mediawiki.special/mediawiki.special.pagesWithProp.css',
),
'styles' => 'resources/src/mediawiki.special/mediawiki.special.preferences.css',
'position' => 'top',
'skinStyles' => array(
- 'vector' => 'skins/vector/special.preferences.less', // FIXME this should use $wgStyleDirectory
+ 'vector' => 'skins/Vector/special.preferences.less', // FIXME this should use $wgStyleDirectory
),
'messages' => array(
'prefs-tabs-navigation-hint',
/* MediaWiki UI */
'mediawiki.ui' => array(
- 'skinStyles' => array(
- 'default' => 'resources/src/mediawiki.ui/default.less',
- 'vector' => 'resources/src/mediawiki.ui/vector.less',
+ 'styles' => array(
+ 'resources/src/mediawiki.ui/default.less',
),
'position' => 'top',
'targets' => array( 'desktop', 'mobile' ),
),
// Lightweight module for button styles
'mediawiki.ui.button' => array(
- 'skinStyles' => array(
- 'default' => 'resources/src/mediawiki.ui/components/default/buttons.less',
- 'vector' => 'resources/src/mediawiki.ui/components/vector/buttons.less',
+ 'styles' => array(
+ 'resources/src/mediawiki.ui/components/buttons.less',
),
'position' => 'top',
'targets' => array( 'desktop', 'mobile' ),
),
+ /* es5-shim */
+ 'es5-shim' => array(
+ 'scripts' => array(
+ 'resources/lib/es5-shim/es5-shim.js',
+ ),
+ 'targets' => array( 'desktop', 'mobile' ),
+ 'skipFunction' => 'resources/src/es5-skip.js',
+ ),
+
/* OOjs */
- // WARNING: OOjs and OOjs-UI are NOT COMPATIBLE with older browsers and
- // WILL BREAK if loaded in browsers that don't support ES5
'oojs' => array(
'scripts' => array(
'resources/lib/oojs/oojs.js',
),
'targets' => array( 'desktop', 'mobile' ),
+ 'dependencies' => array(
+ 'es5-shim',
+ 'json',
+ ),
),
+
+ /* OOjs UI */
+ // WARNING: OOjs-UI is NOT TESTED with older browsers and is likely to break
+ // if loaded in browsers that don't support ES5
'oojs-ui' => array(
'scripts' => array(
'resources/lib/oojs-ui/oojs-ui.js',
'ooui-dialog-confirm-default-cancel'
),
'dependencies' => array(
+ 'es5-shim',
'oojs',
),
'targets' => array( 'desktop', 'mobile' ),