11using System ;
22using System . Collections . Generic ;
3+ using System . Linq ;
34
45namespace ExCSS
56{
@@ -24,145 +25,44 @@ public sealed class PseudoClassSelectorFactory
2425 #region Selectors
2526
2627 private static readonly Dictionary < string , ISelector > Selectors =
27- new ( StringComparer . OrdinalIgnoreCase )
28- {
28+ new HashSet < string > ( StringComparer . OrdinalIgnoreCase )
2929 {
3030 PseudoClassNames . Root ,
31- SimpleSelector . PseudoClass ( PseudoClassNames . Root )
32- } ,
33- {
3431 PseudoClassNames . Scope ,
35- SimpleSelector . PseudoClass ( PseudoClassNames . Scope )
36- } ,
37- {
3832 PseudoClassNames . OnlyType ,
39- SimpleSelector . PseudoClass ( PseudoClassNames . OnlyType )
40- } ,
41- {
4233 PseudoClassNames . FirstOfType ,
43- SimpleSelector . PseudoClass ( PseudoClassNames . FirstOfType )
44- } ,
45- {
4634 PseudoClassNames . LastOfType ,
47- SimpleSelector . PseudoClass ( PseudoClassNames . LastOfType )
48- } ,
49- {
5035 PseudoClassNames . OnlyChild ,
51- SimpleSelector . PseudoClass ( PseudoClassNames . OnlyChild )
52- } ,
53- {
5436 PseudoClassNames . FirstChild ,
55- SimpleSelector . PseudoClass ( PseudoClassNames . FirstChild )
56- } ,
57- {
5837 PseudoClassNames . LastChild ,
59- SimpleSelector . PseudoClass ( PseudoClassNames . LastChild )
60- } ,
61- {
6238 PseudoClassNames . Empty ,
63- SimpleSelector . PseudoClass ( PseudoClassNames . Empty )
64- } ,
65- {
6639 PseudoClassNames . AnyLink ,
67- SimpleSelector . PseudoClass ( PseudoClassNames . AnyLink )
68- } ,
69- {
7040 PseudoClassNames . Link ,
71- SimpleSelector . PseudoClass ( PseudoClassNames . Link )
72- } ,
73- {
7441 PseudoClassNames . Visited ,
75- SimpleSelector . PseudoClass ( PseudoClassNames . Visited )
76- } ,
77- {
7842 PseudoClassNames . Active ,
79- SimpleSelector . PseudoClass ( PseudoClassNames . Active )
80- } ,
81- {
8243 PseudoClassNames . Hover ,
83- SimpleSelector . PseudoClass ( PseudoClassNames . Hover )
84- } ,
85- {
8644 PseudoClassNames . Focus ,
87- SimpleSelector . PseudoClass ( PseudoClassNames . Focus )
88- } ,
89- {
9045 PseudoClassNames . FocusVisible ,
91- SimpleSelector . PseudoClass ( PseudoClassNames . FocusVisible )
92- } ,
93- {
9446 PseudoClassNames . FocusWithin ,
95- SimpleSelector . PseudoClass ( PseudoClassNames . FocusWithin )
96- } ,
97- {
9847 PseudoClassNames . Target ,
99- SimpleSelector . PseudoClass ( PseudoClassNames . Target )
100- } ,
101- {
10248 PseudoClassNames . Enabled ,
103- SimpleSelector . PseudoClass ( PseudoClassNames . Enabled )
104- } ,
105- {
10649 PseudoClassNames . Disabled ,
107- SimpleSelector . PseudoClass ( PseudoClassNames . Disabled )
108- } ,
109- {
11050 PseudoClassNames . Default ,
111- SimpleSelector . PseudoClass ( PseudoClassNames . Default )
112- } ,
113- {
11451 PseudoClassNames . Checked ,
115- SimpleSelector . PseudoClass ( PseudoClassNames . Checked )
116- } ,
117- {
11852 PseudoClassNames . Indeterminate ,
119- SimpleSelector . PseudoClass ( PseudoClassNames . Indeterminate )
120- } ,
121- {
12253 PseudoClassNames . PlaceholderShown ,
123- SimpleSelector . PseudoClass ( PseudoClassNames . PlaceholderShown )
124- } ,
125- {
12654 PseudoClassNames . Unchecked ,
127- SimpleSelector . PseudoClass ( PseudoClassNames . Unchecked )
128- } ,
129- {
13055 PseudoClassNames . Valid ,
131- SimpleSelector . PseudoClass ( PseudoClassNames . Valid )
132- } ,
133- {
13456 PseudoClassNames . Invalid ,
135- SimpleSelector . PseudoClass ( PseudoClassNames . Invalid )
136- } ,
137- {
13857 PseudoClassNames . Required ,
139- SimpleSelector . PseudoClass ( PseudoClassNames . Required )
140- } ,
141- {
14258 PseudoClassNames . ReadOnly ,
143- SimpleSelector . PseudoClass ( PseudoClassNames . ReadOnly )
144- } ,
145- {
14659 PseudoClassNames . ReadWrite ,
147- SimpleSelector . PseudoClass ( PseudoClassNames . ReadWrite )
148- } ,
149- {
15060 PseudoClassNames . InRange ,
151- SimpleSelector . PseudoClass ( PseudoClassNames . InRange )
152- } ,
153- {
15461 PseudoClassNames . OutOfRange ,
155- SimpleSelector . PseudoClass ( PseudoClassNames . OutOfRange )
156- } ,
157- {
15862 PseudoClassNames . Optional ,
159- SimpleSelector . PseudoClass ( PseudoClassNames . Optional )
160- } ,
161- {
16263 PseudoClassNames . Shadow ,
163- SimpleSelector . PseudoClass ( PseudoClassNames . Shadow )
16464 }
165- } ;
65+ . ToDictionary ( x => x , PseudoClassSelector . Create ) ;
16666
16767 #endregion
16868
0 commit comments