mirror of
https://github.com/nasa/openmct.git
synced 2025-06-15 05:38:12 +00:00
[Stylesheets] Add spec, docs
Add tests and JSDoc to the style sheet loader introduced to allow bundles to introduce their own CSS files through the platform's regular extension mechanism; WTD-591.
This commit is contained in:
@ -1,28 +1,41 @@
|
||||
/*global define*/
|
||||
|
||||
define(
|
||||
["angular"],
|
||||
function (angular) {
|
||||
[],
|
||||
function () {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* The StyleSheetLoader adds links to style sheets exposed from
|
||||
* various bundles as extensions of category `stylesheets`.
|
||||
* @constructor
|
||||
* @param {object[]} stylesheets stylesheet extension definitions
|
||||
* @param $document Angular's jqLite-wrapped document element
|
||||
*/
|
||||
function StyleSheetLoader(stylesheets, $document) {
|
||||
var head = $document.find('head');
|
||||
var head = $document.find('head'),
|
||||
document = $document[0];
|
||||
|
||||
// Procedure for adding a single stylesheet
|
||||
function addStyleSheet(stylesheet) {
|
||||
var link = angular.element('<link>'),
|
||||
// Create a link element, and construct full path
|
||||
var link = document.createElement('link'),
|
||||
path = [
|
||||
stylesheet.bundle.path,
|
||||
stylesheet.bundle.resources,
|
||||
stylesheet.stylesheetUrl
|
||||
].join("/");
|
||||
|
||||
link.attr("rel", "stylesheet");
|
||||
link.attr("type", "text/css");
|
||||
link.attr("href", path);
|
||||
// Initialize attributes on the link
|
||||
link.setAttribute("rel", "stylesheet");
|
||||
link.setAttribute("type", "text/css");
|
||||
link.setAttribute("href", path);
|
||||
|
||||
// Append the link to the head element
|
||||
head.append(link);
|
||||
}
|
||||
|
||||
// Add all stylesheets from extensions
|
||||
stylesheets.forEach(addStyleSheet);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user