vartheme_bs4-8.x-6.10/js/misc/theme.js
js/misc/theme.js
/**
* @file
* Theme hooks for the Drupal Bootstrap base theme.
*/
(function ($, Drupal, Bootstrap, Attributes) {
/**
* Fallback for theming an icon if the Icon API module is not installed.
*/
if (!Drupal.icon) Drupal.icon = { bundles: {} };
if (!Drupal.theme.icon || Drupal.theme.prototype.icon) {
$.extend(Drupal.theme, /** @lends Drupal.theme */ {
/**
* Renders an icon.
*
* @param {string} bundle
* The bundle which the icon belongs to.
* @param {string} icon
* The name of the icon to render.
* @param {object|Attributes} [attributes]
* An object of attributes to also apply to the icon.
*
* @returns {string}
*/
icon: function (bundle, icon, attributes) {
if (!Drupal.icon.bundles[bundle]) return '';
attributes = Attributes.create(attributes).addClass('icon').set('aria-hidden', 'true');
icon = Drupal.icon.bundles[bundle](icon, attributes);
return '<span' + attributes + '></span>';
}
});
}
/**
* Callback for modifying an icon in the "bootstrap" icon bundle.
*
* @param {string} icon
* The icon being rendered.
* @param {Attributes} attributes
* Attributes object for the icon.
*/
Drupal.icon.bundles.varicon = function (icon, attributes) {
attributes.addClass(['varicon', 'varicon-' + icon]);
};
/**
* Add necessary theming hooks.
*/
$.extend(Drupal.theme, /** @lends Drupal.theme */ {
/**
* Renders a Bootstrap AJAX glyphicon throbber.
*
* @returns {string}
*/
ajaxThrobber: function () {
return Drupal.theme('varthemeIcon', 'refresh', {'class': ['ajax-throbber', 'varicon-spin'] });
},
/**
* Renders a glyphicon.
*
* @param {string} name
* The name of the glyphicon.
* @param {object|Attributes} [attributes]
* An object of attributes to apply to the icon.
*
* @returns {string}
*/
varthemeIcon: function (name, attributes) {
return Drupal.theme('icon', 'varicon', name, attributes);
}
});
})(window.jQuery, window.Drupal, window.Drupal.bootstrap, window.Attributes);
