CssImportRule
Represents a CSS import rule.
using AngleSharp.Dom.Collections;
using AngleSharp.Extensions;
using AngleSharp.Parser.Css;
namespace AngleSharp.Dom.Css
{
internal sealed class CssImportRule : CssRule, ICssImportRule, ICssRule, IStyleFormattable
{
private readonly MediaList _media;
private string _href;
private ICssStyleSheet _styleSheet;
public string Href {
get {
return _href;
}
set {
_href = value;
}
}
IMediaList ICssImportRule.Media {
get {
return _media;
}
}
public ICssStyleSheet Sheet {
get {
return _styleSheet;
}
set {
_styleSheet = value;
}
}
internal MediaList Media => _media;
internal CssImportRule(CssParser parser)
: base(CssRuleType.Import, parser)
{
_media = new MediaList(parser);
}
protected override void ReplaceWith(ICssRule rule)
{
CssImportRule cssImportRule = rule as CssImportRule;
_href = cssImportRule._href;
_media.Import(cssImportRule._media);
_styleSheet = cssImportRule._styleSheet;
}
public override string ToCss(IStyleFormatter formatter)
{
string mediaText = _media.MediaText;
string str = string.IsNullOrEmpty(mediaText) ? string.Empty : " ";
string value = _href.CssUrl() + str + mediaText;
return formatter.Rule("@import", value);
}
}
}