Esempio n. 1
0
 internal CssSelectorCombination(CssCombinator combinator, ICssSelectorChain leftOperand, ICssSelectorSequence rightOperand)
     : base(CalculateSpecificity(leftOperand, rightOperand))
 {
     ArgChecker.AssertIsTrue <ArgumentException>(leftOperand.Subject.PseudoElement == null,
                                                 "Pseudo-elements are only allowed in the right operand of a combinator");
     _combinator   = combinator;
     _leftOperand  = leftOperand;
     _rightOperand = rightOperand;
 }
 /// <summary>
 /// Creates a selector consisting of two selector sequences and a <see cref="CssCombinator"/>.
 /// </summary>
 /// <param name="leftSelector">The left operand of the combination operator.</param>
 /// <param name="combinator">The combination operator.</param>
 /// <param name="rightSelector">The right operand of the combination operator.</param>
 /// <returns>The newly created combined selector.</returns>
 public static ICssSelectorChain Combine(this ICssSelectorChain leftSelector, CssCombinator combinator, ICssSelectorSequence rightSelector)
 {
     return(new CssSelectorCombination(combinator, leftSelector, rightSelector));
 }
Esempio n. 3
0
 private static CssSpecificity CalculateSpecificity(ICssSelectorChain leftOperand, ICssSelectorSequence rightOperand)
 {
     ArgChecker.AssertArgNotNull(leftOperand, nameof(leftOperand));
     ArgChecker.AssertArgNotNull(rightOperand, nameof(rightOperand));
     return(leftOperand.Specificity + rightOperand.Specificity);
 }