Files
filebrowser/frontend/src/utils/css.ts
T

32 lines
792 B
TypeScript
Raw Normal View History

2024-04-01 17:18:22 +02:00
export default function getRule(rules: string[]) {
2018-02-01 12:17:04 +00:00
for (let i = 0; i < rules.length; i++) {
2021-03-21 12:51:58 +01:00
rules[i] = rules[i].toLowerCase();
2018-02-01 12:17:04 +00:00
}
2021-03-21 12:51:58 +01:00
let result = null;
2024-04-01 17:18:22 +02:00
const find = Array.prototype.find;
2018-02-01 12:17:04 +00:00
2025-01-30 10:18:48 +01:00
find.call(document.styleSheets, (styleSheet: CSSStyleSheet) => {
result = find.call(styleSheet.cssRules, (cssRule: CSSRule) => {
2021-03-21 12:51:58 +01:00
let found = false;
2018-02-01 12:17:04 +00:00
2025-01-30 10:18:48 +01:00
// faster than checking instanceof for every element
if (cssRule.constructor.name === "CSSStyleRule") {
2018-02-01 12:17:04 +00:00
for (let i = 0; i < rules.length; i++) {
2025-01-30 10:18:48 +01:00
if (
(cssRule as CSSStyleRule).selectorText.toLowerCase() === rules[i]
) {
2021-03-21 12:51:58 +01:00
found = true;
2018-02-01 12:17:04 +00:00
}
}
}
2021-03-21 12:51:58 +01:00
return found;
});
2018-02-01 12:17:04 +00:00
2021-03-21 12:51:58 +01:00
return result != null;
});
2018-02-01 12:17:04 +00:00
2025-01-30 10:18:48 +01:00
return result as CSSStyleRule | null;
2018-02-01 12:17:04 +00:00
}