11using Microsoft . AspNetCore . Components ;
2+ using System . Text ;
23
34namespace NAMESPACE ;
45
@@ -83,6 +84,91 @@ public static RenderFragment Render(this IconData data, string? width, string? h
8384
8485 builder . CloseElement ( ) ;
8586 } ;
87+
88+ public static string RenderAsString ( this IconData data , string ? width , string ? height , string ? fill , string ? cssClass , string ? viewBox )
89+ {
90+ var sb = new StringBuilder ( ) ;
91+
92+ sb . Append ( "<svg" ) ;
93+
94+ if ( data . Xmlns != null ) {
95+ sb . Append ( " xmlns=\" " ) ;
96+ sb . Append ( data . Xmlns ) ;
97+ sb . Append ( '"' ) ;
98+ }
99+
100+ if ( data . Width != null || width != null )
101+ {
102+ sb . Append ( " width=\" " ) ;
103+ sb . Append ( width ?? data . Width ) ;
104+ sb . Append ( '"' ) ;
105+ }
106+
107+ if ( data . Height != null || height != null )
108+ {
109+ sb . Append ( " height=\" " ) ;
110+ sb . Append ( height ?? data . Height ) ;
111+ sb . Append ( '"' ) ;
112+ }
113+
114+ if ( data . Fill != null || fill != null )
115+ {
116+ sb . Append ( " fill=\" " ) ;
117+ sb . Append ( fill ?? data . Fill ) ;
118+ sb . Append ( '"' ) ;
119+ }
120+
121+ if ( data . ViewBox != null || viewBox != null )
122+ {
123+ sb . Append ( " viewBox=\" " ) ;
124+ sb . Append ( viewBox ?? data . ViewBox ) ;
125+ sb . Append ( '"' ) ;
126+ }
127+
128+ if ( data . Stroke != null )
129+ {
130+ sb . Append ( " stroke=\" " ) ;
131+ sb . Append ( data . Stroke ) ;
132+ sb . Append ( '"' ) ;
133+ }
134+
135+ if ( data . StrokeWidth != null )
136+ {
137+ sb . Append ( " stroke-width=\" " ) ;
138+ sb . Append ( data . StrokeWidth ) ;
139+ sb . Append ( '"' ) ;
140+ }
141+
142+ if ( data . StrokeLineCap != null )
143+ {
144+ sb . Append ( " stroke-linecap=\" " ) ;
145+ sb . Append ( data . StrokeLineCap ) ;
146+ sb . Append ( '"' ) ;
147+ }
148+
149+ if ( data . StrokeLineJoin != null )
150+ {
151+ sb . Append ( " stroke-linejoin=\" " ) ;
152+ sb . Append ( data . StrokeLineJoin ) ;
153+ sb . Append ( '"' ) ;
154+ }
155+
156+ sb . Append ( " class=\" " ) ;
157+ if ( string . IsNullOrWhiteSpace ( cssClass ) )
158+ {
159+ sb . Append ( data . Class ) ;
160+ }
161+ else
162+ {
163+ sb . Append ( data . Class + ' ' + cssClass ) ;
164+ }
165+ sb . Append ( "\" >" ) ;
166+
167+ sb . Append ( data . SvgContent ) ;
168+ sb . Append ( "</svg>" ) ;
169+
170+ return sb . ToString ( ) ;
171+ }
86172}
87173
88174#nullable disable
0 commit comments