Christer Palm
05/05/2025, 8:33 AMRobert Jaros
05/05/2025, 8:47 AMdynamic
typing.Robert Jaros
05/05/2025, 8:48 AMval something = SomeObject()
something.asDynamic()["some_property"] = "some value"
Robert Jaros
05/05/2025, 8:49 AMobj {}
helper function to create plain JS objectsChrister Palm
05/05/2025, 8:52 AMRobert Jaros
05/05/2025, 8:53 AMChrister Palm
05/05/2025, 8:53 AMRobert Jaros
05/05/2025, 9:00 AMRobert Jaros
05/05/2025, 9:01 AMchart.jsChart?.data = ...
chart.jsChart?.update()
Robert Jaros
05/05/2025, 9:01 AMRobert Jaros
05/05/2025, 9:03 AMminBarLength
.Christer Palm
05/05/2025, 9:08 AMChrister Palm
05/05/2025, 9:25 AMRobert Jaros
05/05/2025, 9:30 AM?.get(0)
if the object is of nullable typeChrister Palm
05/05/2025, 9:33 AMRobert Jaros
05/05/2025, 9:34 AMRobert Jaros
05/05/2025, 9:43 AMDeepPartial
which is typealiased to Any
. That's where asDynamic()
will help - just use jsChart?.data?.datasets?.get(0).asDynamic()["minBarLength"]
Christer Palm
05/05/2025, 9:49 AMRobert Jaros
05/05/2025, 10:14 AMRobert Jaros
05/05/2025, 10:15 AMval myChart = chart(
Configuration(
ChartType.BAR,
listOf(
DataSets(
data = listOf(6, 12, 19, 13, 7),
backgroundColor = listOf(
Color.hex(0x3e95cd),
Color.hex(0x8e5ea2),
Color.hex(0x3cba9f),
Color.hex(0xe8c3b9),
Color.hex(0xc45850)
)
)
),
listOf(
tr("Africa"),
tr("Asia"),
tr("Europe"),
tr("Latin America"),
tr("North America")
),
ChartOptions(
plugins = PluginsOptions(
legend = LegendOptions(display = false),
title = TitleOptions(display = false)
),
scales = mapOf("y" to ChartScales(suggestedMin = 0, suggestedMax = 20))
)
)
)
button("Test") {
onClick {
myChart.jsChart?.data?.datasets?.get(0).asDynamic()["minBarLength"] = 100
myChart.jsChart?.update()
}
}
Christer Palm
05/05/2025, 10:19 AMChrister Palm
05/05/2025, 10:19 AMRobert Jaros
05/05/2025, 10:54 AMchart(
Configuration(
ChartType.BAR,
listOf(
DataSets(
data = listOf(6, 12, 19, 13, 7),
backgroundColor = listOf(
Color.hex(0x3e95cd),
Color.hex(0x8e5ea2),
Color.hex(0x3cba9f),
Color.hex(0xe8c3b9),
Color.hex(0xc45850)
)
)
),
listOf(
tr("Africa"),
tr("Asia"),
tr("Europe"),
tr("Latin America"),
tr("North America")
),
ChartOptions(
plugins = PluginsOptions(
legend = LegendOptions(display = false),
title = TitleOptions(display = false)
),
scales = mapOf("y" to ChartScales(suggestedMin = 0, suggestedMax = 20))
)
)
) {
addAfterInsertHook {
jsChart?.data?.datasets?.get(0).asDynamic()["minBarLength"] = 200
jsChart?.update()
}
}
Christer Palm
05/05/2025, 10:57 AMChrister Palm
05/05/2025, 10:59 AM