@atlassian/aui
Version:
Atlassian User Interface Framework
89 lines (69 loc) • 2.87 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['module', 'exports', './jquery', './internal/animation', './internal/amdify', './internal/globalize', './template'], factory);
} else if (typeof exports !== "undefined") {
factory(module, exports, require('./jquery'), require('./internal/animation'), require('./internal/amdify'), require('./internal/globalize'), require('./template'));
} else {
var mod = {
exports: {}
};
factory(mod, mod.exports, global.jquery, global.animation, global.amdify, global.globalize, global.template);
global.banner = mod.exports;
}
})(this, function (module, exports, _jquery, _animation, _amdify, _globalize, _template) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _jquery2 = _interopRequireDefault(_jquery);
var _amdify2 = _interopRequireDefault(_amdify);
var _globalize2 = _interopRequireDefault(_globalize);
var _template2 = _interopRequireDefault(_template);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var ID_BANNER_CONTAINER = 'header';
function banner(options) {
var $banner = renderBannerElement(options);
pruneBannerContainer();
insertBanner($banner);
return $banner[0];
}
function renderBannerElement(options) {
var html = '<div class="aui-banner aui-banner-{type}" role="banner">' + '{body}' + '</div>';
var $banner = (0, _jquery2.default)((0, _template2.default)(html).fill({
'type': 'error',
'body:html': options.body || ''
}).toString());
return $banner;
}
function pruneBannerContainer() {
var $container = findContainer();
var $allBanners = $container.find('.aui-banner');
$allBanners.get().forEach(function (banner) {
var isBannerAriaHidden = banner.getAttribute('aria-hidden') === 'true';
if (isBannerAriaHidden) {
(0, _jquery2.default)(banner).remove();
}
});
}
function findContainer() {
return (0, _jquery2.default)('#' + ID_BANNER_CONTAINER);
}
function insertBanner($banner) {
var $bannerContainer = findContainer();
if (!$bannerContainer.length) {
throw new Error('You must implement the application header');
}
$banner.prependTo($bannerContainer);
(0, _animation.recomputeStyle)($banner);
$banner.attr('aria-hidden', 'false');
}
(0, _amdify2.default)('aui/banner', banner);
(0, _globalize2.default)('banner', banner);
exports.default = banner;
module.exports = exports['default'];
});
//# sourceMappingURL=banner.js.map