Skip to content

Commit

Permalink
Merge pull request AngleSharp#92 from jogibear9988/fix90
Browse files Browse the repository at this point in the history
add content visibility property - fixes AngleSharp#90
  • Loading branch information
FlorianRappl authored Nov 25, 2021
2 parents 8dc13db + 387587c commit f279b9d
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
namespace AngleSharp.Css.Tests.Declarations
{
using NUnit.Framework;
using static CssConstructionFunctions;

[TestFixture]
public class CssContentVisibilityPropertyTests
{
[Test]
public void CssContentVisibilityIsHidden()
{
var source = "a{content-visibility:hidden}";
var parsed = ParseStyle(source);
Assert.AreEqual("content-visibility: hidden", parsed.Style.CssText);
}

[Test]
public void CssContentVisibilityIsUnkown()
{
var source = "a{content-visibility:aa}";
var parsed = ParseStyle(source);
Assert.AreEqual("", parsed.Style.CssText);
}
}
}
1 change: 1 addition & 0 deletions src/AngleSharp.Css/Constants/InitialValues.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ static class InitialValues
public static readonly ICssValue QuotesDecl = new Quote("«", "»");
public static readonly ICssValue PointerEventsDecl = new Constant<PointerEvent>(CssKeywords.Auto, PointerEvent.Auto);
public static readonly ICssValue ContentDecl = new Constant<Object>(CssKeywords.Normal, null);
public static readonly ICssValue ContentVisibilityDecl = new Constant<Visibility>(CssKeywords.Visible, Visibility.Visible);
public static readonly ICssValue CounterIncrementDecl = new Constant<Object>(CssKeywords.None, null);
public static readonly ICssValue CounterResetDecl = new Constant<Object>(CssKeywords.None, null);
public static readonly ICssValue DisplayDecl = new Constant<DisplayMode>(CssKeywords.Inline, DisplayMode.Inline);
Expand Down
10 changes: 10 additions & 0 deletions src/AngleSharp.Css/Constants/Map.cs
Original file line number Diff line number Diff line change
Expand Up @@ -894,5 +894,15 @@ static class Map
{ CssKeywords.MinContent, Sizing.MinContent},
{ CssKeywords.MaxContent, Sizing.MaxContent },
};

/// <summary>
/// Contains the string-ContentVisibility mapping.
/// </summary>
public static readonly Dictionary<String, Visibility> ContentVisibilities = new Dictionary<String, Visibility>(StringComparer.OrdinalIgnoreCase)
{
{ CssKeywords.Visible, Visibility.Visible },
{ CssKeywords.Hidden, Visibility.Hidden },
{ CssKeywords.Collapse, Visibility.Collapse },
};
}
}
5 changes: 5 additions & 0 deletions src/AngleSharp.Css/Constants/PropertyNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,11 @@ public static class PropertyNames
/// </summary>
public static readonly String Content = "content";

/// <summary>
/// The content-visibility declaration.
/// </summary>
public static readonly String ContentVisibility = "content-visibility";

/// <summary>
/// The counter-increment declaration.
/// </summary>
Expand Down
17 changes: 17 additions & 0 deletions src/AngleSharp.Css/Declarations/ContentVisibilityDeclaration.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
namespace AngleSharp.Css.Declarations
{
using AngleSharp.Css.Dom;
using System;
using static ValueConverters;

static class ContentVisibilityDeclaration
{
public static String Name = PropertyNames.ContentVisibility;

public static IValueConverter Converter = VisibilityConverter;

public static ICssValue InitialValue = InitialValues.ContentVisibilityDecl;

public static PropertyFlags Flags = PropertyFlags.None;
}
}
7 changes: 7 additions & 0 deletions src/AngleSharp.Css/Factories/DefaultDeclarationFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,13 @@ public class DefaultDeclarationFactory : IDeclarationFactory
initialValue: ContentDeclaration.InitialValue,
flags: ContentDeclaration.Flags)
},
{
ContentVisibilityDeclaration.Name, new DeclarationInfo(
name: ContentVisibilityDeclaration.Name,
converter: ContentVisibilityDeclaration.Converter,
initialValue: ContentVisibilityDeclaration.InitialValue,
flags: ContentVisibilityDeclaration.Flags)
},
{
BoxDecorationBreakDeclaration.Name, new DeclarationInfo(
name: BoxDecorationBreakDeclaration.Name,
Expand Down
5 changes: 5 additions & 0 deletions src/AngleSharp.Css/ValueConverters.cs
Original file line number Diff line number Diff line change
Expand Up @@ -560,6 +560,11 @@ static class ValueConverters
/// </summary>
public static readonly IValueConverter FootnotePolicyConverter = Map.FootnotePolicies.ToConverter();

/// <summary>
/// Represents a converter for the Visibility enumeration.
/// </summary>
public static readonly IValueConverter ContentVisibilityConverter = Map.Visibilities.ToConverter();

#endregion

#region Specific
Expand Down

0 comments on commit f279b9d

Please sign in to comment.