in platf-skia/src/commonMain/kotlin/org/jetbrains/letsPlot/skia/shape/Node.kt [89:103]
fun <T> visualProp(
initialValue: T,
managed: Boolean = false
): PropertyDelegateProvider<Node, ReadWriteProperty<Node, T>> {
return PropertyDelegateProvider<Node, ReadWriteProperty<Node, T>> { thisRef, property ->
val visualProperty = VisualProperty(initialValue, thisRef::handlePropertyChange)
visualPropInstances[property] = visualProperty
if (managed) {
propFinalizers[property] = { visualProperty.getValue(thisRef, property) as Managed? }
}
return@PropertyDelegateProvider visualProperty
}
}