Robert Jaros
02/27/2020, 10:16 AMdynamic
types (or create Kotlin bindings if you like):
import com.github.snabbdom.VNode
import pl.treksoft.kvision.Application
import pl.treksoft.kvision.core.Widget
import pl.treksoft.kvision.panel.root
import pl.treksoft.kvision.require
import pl.treksoft.kvision.startApplication
import pl.treksoft.kvision.utils.createInstance
class Chart(val gchart: dynamic) : Widget() {
override fun afterInsert(node: VNode) {
gchart.load {
val data = gchart.api.visualization.arrayToDataTable(
arrayOf(
arrayOf("Chart thing", "Chart amount"),
arrayOf("Lorem ipsum", 60),
arrayOf("Dolor sit", 22),
arrayOf("Sit amet", 18)
)
)
val pie_1_chartConstructor: Any = gchart.api.visualization.PieChart
val pie_1_chart = pie_1_chartConstructor.createInstance<Any>(getElement())
pie_1_chart.asDynamic().draw(data)
}
}
}
class App : Application() {
val googleCharts: dynamic
init {
googleCharts = require("google-charts").GoogleCharts
}
override fun start() {
root("kvapp") {
add(Chart(googleCharts))
}
}
}
fun main() {
startApplication(::App)
}