shownIf

fun <T : View> T.shownIf(condition: Boolean, animated: Boolean = false): T
fun <T> View.shownIf(    property: CSProperty<T>,     animated: Boolean = false,     condition: (T) -> Boolean): CSRegistration
fun View.shownIf(property: CSProperty<Boolean>, animated: Boolean = false): CSRegistration
fun <T> View.shownIf(    property1: CSProperty<T>,     property2: CSProperty<*>,     animated: Boolean = false,     condition: (T) -> Boolean): CSRegistration
fun <T, V> View.shownIf(    property1: CSProperty<T>,     property2: CSProperty<V>,     animated: Boolean = false,     condition: (T, V) -> Boolean): CSRegistration
fun <T, V, X> View.shownIf(    property1: CSProperty<T>,     property2: CSProperty<V>,     property3: CSProperty<X>,     animated: Boolean = false,     condition: (T, V, X) -> Boolean): CSRegistration