File tree Expand file tree Collapse file tree 4 files changed +48
-11
lines changed
AngleSharp.Css.Tests/Parsing Expand file tree Collapse file tree 4 files changed +48
-11
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ Released on Thursday, November 4 2021.
55- Fixed issue with unbalanced grid areas and rows (#82 )
66- Fixed small numbers to be transformed into negative exponentials (#80 )
77- Fixed issue handling exponential unit values (#79 )
8+ - Fixed ` InvalidCastException ` in template merging with CSS variables (#83 )
89
910# 0.16.1
1011
Original file line number Diff line number Diff line change @@ -113,6 +113,36 @@ @keyframes errorAnimation {
113113 input:invalid {
114114 color: red;
115115 }
116+ " ;
117+ var parser = new CssParser ( ) ;
118+ var formatter = new MinifyStyleFormatter ( ) ;
119+ var ss = await parser . ParseStyleSheetAsync ( css ) ;
120+ var newCss = ss . ToCss ( formatter ) ;
121+ Assert . IsNotNull ( newCss ) ;
122+ }
123+
124+ [ Test ]
125+ public async Task CastingException_Issue83 ( )
126+ {
127+ var css = @"
128+ .kardex-wrapper {
129+ height: 100vh;
130+ width: 100vw;
131+ display: grid;
132+ grid-template-rows: var(--header-height) 10px 1fr;
133+ grid-template-columns: var(--nav-width) 1fr;
134+ grid-template-areas: ""navheader header"" ""navheader content"" ""nav content"";
135+ }
136+
137+ header {
138+ grid-area: header;
139+ font-family: KardexMOT-Light, sans-serif;
140+ background-color: var(--kx-bg);
141+ color: var(--kx-text-light);
142+ display: grid;
143+ grid-template-rows: var(--header-height);
144+ grid-template-columns: 1fr 1fr 1fr;
145+ }
116146" ;
117147 var parser = new CssParser ( ) ;
118148 var formatter = new MinifyStyleFormatter ( ) ;
Original file line number Diff line number Diff line change @@ -52,7 +52,10 @@ public ICssValue Merge(ICssValue[] values)
5252 }
5353 else if ( cols != null || rows != null || areas != null )
5454 {
55- return new CssGridTemplateValue ( rows , cols , areas ) ;
55+ if ( cols is not CssReferenceValue && rows is not CssReferenceValue && areas is not CssReferenceValue )
56+ {
57+ return new CssGridTemplateValue ( rows , cols , areas ) ;
58+ }
5659 }
5760
5861 return null ;
Original file line number Diff line number Diff line change @@ -67,20 +67,23 @@ public String CssText
6767 }
6868 else if ( _areas != null )
6969 {
70- var areas = ( ( CssTupleValue ) _areas ) . Items ;
71- var rowItems = ( ( CssTupleValue ) _rows ) . Items ;
70+ var areas = ( _areas as CssTupleValue ) ? . Items ;
71+ var rowItems = ( _rows as CssTupleValue ) ? . Items ;
7272 var newRows = new List < ICssValue > ( ) ;
7373
74- for ( var i = 0 ; i < rowItems . Length ; i ++ )
74+ if ( rowItems != null && areas != null )
7575 {
76- var area = areas . Length > i ? areas [ i ] : null ;
77- var item = rowItems [ i ] as CssTupleValue ;
78-
79- if ( item != null && area != null )
76+ for ( var i = 0 ; i < rowItems . Length ; i ++ )
8077 {
81- var newItems = new List < ICssValue > ( item . Items ) ;
82- newItems . Insert ( 1 , area ) ;
83- newRows . Add ( new CssTupleValue ( newItems . ToArray ( ) ) ) ;
78+ var area = areas . Length > i ? areas [ i ] : null ;
79+ var item = rowItems [ i ] as CssTupleValue ;
80+
81+ if ( item != null && area != null )
82+ {
83+ var newItems = new List < ICssValue > ( item . Items ) ;
84+ newItems . Insert ( 1 , area ) ;
85+ newRows . Add ( new CssTupleValue ( newItems . ToArray ( ) ) ) ;
86+ }
8487 }
8588 }
8689
You can’t perform that action at this time.
0 commit comments