drupal/core/themes/claro/js/ajax.es6.js

46 lines
1.3 KiB
JavaScript

/**
* @file
* Ajax theme overrides for Claro.
*/
(Drupal => {
/**
* Theme override of the ajax progress indicator for full screen.
*
* @return {string}
* The HTML markup for the throbber.
*/
Drupal.theme.ajaxProgressIndicatorFullscreen = () =>
'<div class="ajax-progress ajax-progress--fullscreen"><div class="ajax-progress__throbber ajax-progress__throbber--fullscreen">&nbsp;</div></div>';
/**
* Theme override of the ajax progress indicator.
*
* @param {string} message
* The message shown on the UI.
* @return {string}
* The HTML markup for the throbber.
*/
Drupal.theme.ajaxProgressThrobber = message => {
// Build markup without adding extra white space since it affects rendering.
const messageMarkup =
typeof message === 'string'
? Drupal.theme('ajaxProgressMessage', message)
: '';
const throbber = '<div class="ajax-progress__throbber">&nbsp;</div>';
return `<div class="ajax-progress ajax-progress--throbber">${throbber}${messageMarkup}</div>`;
};
/**
* Theme override of the ajax progress message.
*
* @param {string} message
* The message shown on the UI.
* @return {string}
* The HTML markup for the throbber.
*/
Drupal.theme.ajaxProgressMessage = message =>
`<div class="ajax-progress__message">${message}</div>`;
})(Drupal);