insertRule method
Implementation
int insertRule(String text, int index) {
final Document document = _sheetBinding.document;
final double windowWidth = document.viewport?.viewportSize.width ?? document.preloadViewportSize?.width ?? -1;
final double windowHeight = document.viewport?.viewportSize.height ?? document.preloadViewportSize?.height ?? -1;
final bool isDarkMode = ownerView.rootController.isDarkMode ?? false;
final List<CSSRule> rules = CSSParser(text, href: _sheetBinding.sheet.href)
.parseRules(windowWidth: windowWidth, windowHeight: windowHeight, isDarkMode: isDarkMode);
if (index < 0 || index > _rule.cssRules.length) {
throw RangeError.index(index, _rule.cssRules, 'index');
}
final List<String> layerPrefix = _rule.layerNamePath;
for (final r in rules) {
r.parentStyleSheet = _sheetBinding.sheet;
_prefixLayerForInsertedRule(r, layerPrefix);
}
_rule.cssRules.insertAll(index, rules);
cssRules.refresh();
_sheetBinding.scheduleStyleUpdateForCSSOM();
return index;
}