mirror of
https://github.com/InsanusMokrassar/JSUIKitKBindings.git
synced 2024-06-30 20:47:33 +00:00
28 lines
731 B
Kotlin
28 lines
731 B
Kotlin
|
package dev.inmo.jsuikit.defaults
|
||
|
|
||
|
import dev.inmo.jsuikit.defaults.modifers.AttributeValue
|
||
|
import org.jetbrains.compose.web.attributes.AttrsBuilder
|
||
|
|
||
|
class UIKitAttributeValueBuilder {
|
||
|
private val attrs = mutableListOf<Pair<String, String>>()
|
||
|
|
||
|
infix fun String.to(other: String?) {
|
||
|
other ?.let {
|
||
|
attrs.add(Pair(this, other))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
infix fun String.to(other: AttributeValue?) {
|
||
|
this to other ?.name
|
||
|
}
|
||
|
|
||
|
fun build(): String = attrs.joinToString(";") { (k, v) -> "$k: $v" }
|
||
|
}
|
||
|
|
||
|
fun AttrsBuilder<*>.buildAndAddAttribute(
|
||
|
attributeName: String,
|
||
|
block: UIKitAttributeValueBuilder.() -> Unit
|
||
|
) {
|
||
|
attr(attributeName, UIKitAttributeValueBuilder().apply(block).build())
|
||
|
}
|