@@ -15,5 +15,140 @@ public async Task ParseEmptySheet_Issue42()
1515 var sheet = await parser . ParseStyleSheetAsync ( sheetCode ) ;
1616 Assert . IsNotNull ( sheet ) ;
1717 }
18+
19+ [ Test ]
20+ public async Task ParseStyleSheetAndBack_Issue82 ( )
21+ {
22+ var css = @"
23+ .root {
24+ position: absolute;
25+ top: 0;
26+ left: 0;
27+ width: calc(100% - 10px);
28+ height: calc(100% - 10px);
29+ padding: 5px;
30+ }
31+
32+ .container {
33+ width: 100%;
34+ height: 100%;
35+ display: grid;
36+ grid-template-columns: 1fr 1fr;
37+ grid-template-rows: 240px calc(100% - 360px) 100px;
38+ grid-template-areas: 'header info' 'quantity info' 'footerOk footerCancel';
39+ row-gap: 10px;
40+ font-size: 26px;
41+ }
42+
43+ .destination {
44+ grid-area: header;
45+ width: calc(100% - 20px);
46+ height: calc(100% - 20px);
47+ margin: 10px;
48+ display: grid;
49+ grid-template-columns: auto auto auto;
50+ grid-template-rows: 150px 50px;
51+ grid-template-areas:
52+ ""sourcerp image destrp""
53+ ""sourcele image destle"";
54+ }
55+
56+ .quantitygrid {
57+ width: 100%;
58+ height: 100%;
59+ display: grid;
60+ grid-template-columns: auto auto auto;
61+ grid-template-rows: 150px 100px;
62+ grid-template-areas: 'minus number plus';
63+ }
64+
65+ .headergrid {
66+ width: 100%;
67+ height: 100%;
68+ display: grid;
69+ grid-template-columns: 1fr 1fr 1fr;
70+ grid-template-rows: 1fr 1fr;
71+ grid-template-areas: 'sourceplace space destinationplace' 'sourcelc space destinationlc';
72+ }
73+
74+ #info td + td {
75+ font-size: 24px;
76+ }
77+
78+ input {
79+ animation-duration: 2s;
80+ font-family: inherit;
81+ background-color: white;
82+ }
83+
84+ td {
85+ padding: 5px;
86+ }
87+
88+ paper-button {
89+ padding: 0;
90+ background-color: var(--kx-dark);
91+ box-sizing: border-box;
92+ display: flex;
93+ align-items: center;
94+ justify-content: center;
95+ color: white;
96+ /*font-weight: bolder;*/
97+ }
98+
99+ @keyframes errorAnimation {
100+ 0% {
101+ background-color: white;
102+ }
103+
104+ 1% {
105+ background-color: red;
106+ }
107+
108+ 100% {
109+ background-color: white;
110+ }
111+ }
112+
113+ input:invalid {
114+ color: red;
115+ }
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+ }
146+ " ;
147+ var parser = new CssParser ( ) ;
148+ var formatter = new MinifyStyleFormatter ( ) ;
149+ var ss = await parser . ParseStyleSheetAsync ( css ) ;
150+ var newCss = ss . ToCss ( formatter ) ;
151+ Assert . IsNotNull ( newCss ) ;
152+ }
18153 }
19154}
0 commit comments