And then use it with `dynamic` types (or create Ko...
# kvision
r
And then use it with
dynamic
types (or create Kotlin bindings if you like):
Copy code
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)
}