UNPKG

@atlassian/aui

Version:

Atlassian User Interface Framework

89 lines (69 loc) 2.87 kB
(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