/// <summary> /// Returns an array of all the combined class names that should be applied based /// on the given list of classes. Checks the result of /// {@link getIe6ClassCombinations} for any combinations that have all /// members contained in classes. If a combination matches, the members are /// joined with an underscore (in order), and added to the return array. /// /// If opt_includedClass is provided, return only the combined classes that have /// all members contained in classes AND include opt_includedClass as well. /// opt_includedClass is added to classes as well. /// </summary> /// <param name="classes">Array-like thing of classes to /// return matching combined classes for.</param> /// <param name="opt_includedClass">If provided, get only the combined /// classes that include this one.</param> /// <returns>Array of combined class names that should be /// applied.</returns> private JsArray <string> getAppliedCombinedClassNames_(JsArray <string> classes, string opt_includedClass = null) { var toAdd = new JsArray <string>(); if (opt_includedClass != null) { classes.Push(opt_includedClass); } foreach (var combo in this.getIe6ClassCombinations()) { if (combo.All((a) => classes.Contains(a)) && (opt_includedClass == null || combo.Contains(opt_includedClass))) { toAdd.Push(combo.Join("_")); } } return(toAdd); }