src/mobile.startup/mobile.startup.js
const currentPageHTMLParser = require( './currentPageHTMLParser' );
const time = require( './time' );
const LanguageInfo = require( './LanguageInfo' );
const currentPage = require( './currentPage' );
const Drawer = require( './Drawer' );
const CtaDrawer = require( './CtaDrawer' );
const lazyImageLoader = require( './lazyImages/lazyImageLoader' );
const icons = require( './icons' );
const PageHTMLParser = require( './PageHTMLParser' );
const showOnPageReload = require( './showOnPageReload' );
const OverlayManager = require( './OverlayManager' );
const View = require( './View' );
const Overlay = require( './Overlay' );
const references = require( './references/references' );
const search = {
SearchOverlay: require( './search/SearchOverlay' ),
SearchGateway: require( './search/SearchGateway' )
};
const promisedView = require( './promisedView' );
const headers = require( './headers' );
const Skin = require( './Skin' );
const mediaViewer = {
overlay: require( './mediaViewer/overlay' )
};
const languageInfoOverlay = require( './languageOverlay/languageInfoOverlay' );
const languageOverlay = require( './languageOverlay/languageOverlay' );
const amcOutreach = require( './amcOutreach/amcOutreach' );
// Expose chunk to temporary variable which will be deleted and exported via ResourceLoader
// package inside mobile.startup.exports.
/**
* The main library for accessing MobileFrontend's stable APIs.
*
* @module mobile.startup
*/
mw._mobileFrontend = {
/**
* Internal for use inside Minerva only
*
* @memberof module:mobile.startup
* @type module:mobile.startup/AmcOutreach
*/
amcOutreach,
// Internal for use inside GrowthExperiments only.
overlayHeader: headers.header,
/**
* Internal for use inside Minerva, GrowthExperiments only.
* @type module:mobile.startup/Drawer
*/
Drawer,
// Internal for use inside Minerva only.
CtaDrawer,
/**
* Internal for use inside Minerva, ExternalGuidance and Echo only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/View
*/
View,
/**
* Internal for use inside Minerva, ExternalGuidance,
* GrowthExperiments and Echo only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/Overlay
*/
Overlay,
/**
* Internal for use inside Minerva only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/PageHTMLParser
*/
currentPageHTMLParser,
/**
* Internal for use inside Minerva, ExternalGuidance and Echo only.
*
* @memberof module:mobile.startup
* @return {module:mobile.startup/OverlayManager}
*/
getOverlayManager: () => {
return OverlayManager.getSingleton();
},
/**
* Internal for use inside Minerva only.
* @type module:mobile.startup/Page
* @memberof module:mobile.startup
*/
currentPage,
/**
* Internal for use inside Minerva only.
* @type module:mobile.startup/PageHTMLParser
* @memberof module:mobile.startup
*/
PageHTMLParser,
/**
* Internal for use inside Minerva only.
* @type module:mobile.startup/Icon
* @memberof module:mobile.startup
*/
spinner: icons.spinner,
/**
* Internal for use inside Minerva only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/mediaViewer
*/
mediaViewer,
/**
* Internal for use inside Minerva only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/references
*/
references,
/**
* Internal for use inside Minerva only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/search
*/
search,
/**
* Internal for use inside Minerva only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/time
*/
time,
// Internal for use inside Echo, GrowthExperiments only.
promisedView,
/**
* Loads all images on the page, stable to call.
*
* @memberof module:mobile.startup
* @return {jQuery.Deferred}
*/
loadAllImagesInPage: () => {
return lazyImageLoader.loadImages(
lazyImageLoader.queryPlaceholders( document.getElementById( 'content' ) )
);
},
/**
* Show a notification on page reload, internal for Minerva
*
* @memberof module:mobile.startup
* @param {string} msg
* @return {jQuery.Deferred}
*/
notifyOnPageReload: ( msg ) => showOnPageReload( msg ),
/**
* Internal for use inside VisualEditor
*
* @memberof module:mobile.startup
* @return {string|undefined}
*/
license() {
const skin = Skin.getSingleton();
return skin.getLicenseMsg();
},
/**
* Internal for use inside Minerva. See {@link module:mobile.startup} for access.
*
* @module mobile.startup/languages
*/
/**
* Access to language overlays for usage inside Minerva only.
*
* @memberof module:mobile.startup
* @type module:mobile.startup/languages
*/
languages: {
languageOverlay,
/**
* Shows information about suggested languages.
*
* @memberof module:mobile.startup/languages
* @param {mw.Api} api
* @param {boolean} showSuggestedLanguage If the suggested languages section
* should be rendered.
*/
languageInfoOverlay( api, showSuggestedLanguage ) {
return languageInfoOverlay( new LanguageInfo( api ), showSuggestedLanguage );
}
}
};