mirror of https://github.com/rancher/ui.git
71 lines
1.3 KiB
JavaScript
71 lines
1.3 KiB
JavaScript
export function findRule(selector, sheetTitle) {
|
|
var sheet = findSheet(sheetTitle);
|
|
var rules;
|
|
|
|
if ( sheet )
|
|
{
|
|
try {
|
|
rules = sheet.cssRules || sheet.rules;
|
|
}
|
|
catch (e) {
|
|
// You can't read external stylesheets...
|
|
return null;
|
|
}
|
|
|
|
for ( var j = 0 ; j < rules.length ; j++ )
|
|
{
|
|
if ( (rules[j].selectorText||'').toLowerCase() === selector )
|
|
{
|
|
return rules[j];
|
|
}
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
export function findSheet(title) {
|
|
var sheets = document.styleSheets;
|
|
|
|
if ( sheets )
|
|
{
|
|
var sheet;
|
|
for ( var i = 0 ; i < sheets.length ; i++ )
|
|
{
|
|
sheet = sheets[i];
|
|
if ( sheet.title === title )
|
|
{
|
|
return sheet;
|
|
}
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
export function createSheet(title) {
|
|
var style = document.createElement('style');
|
|
style.setAttribute('title',title);
|
|
style.appendChild(document.createTextNode(''));
|
|
document.head.appendChild(style);
|
|
return style.sheet;
|
|
}
|
|
|
|
export function addRule(sheet, selector, rules, index) {
|
|
if ( sheet.insertRule )
|
|
{
|
|
sheet.insertRule(selector + "{" + rules + "}", index);
|
|
}
|
|
else if ( sheet.addRule )
|
|
{
|
|
sheet.addRule(selector, rules, index);
|
|
}
|
|
}
|
|
|
|
export default {
|
|
findRule: findRule,
|
|
findSheet: findSheet,
|
|
createSheet: createSheet,
|
|
addRule: addRule,
|
|
};
|