Giter Site home page Giter Site logo

aay-chart's People

Contributors

amnah44 avatar andrewaboalhana avatar aya-seif avatar ibareq avatar yassenramadan1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

aay-chart's Issues

app crash when resize window

Exception

image

Cause

using this function throw this exception.
image

public fun Float.coerceIn(minimumValue: Float, maximumValue: Float): Float {
    if (minimumValue > maximumValue) throw IllegalArgumentException("Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.")
    if (this < minimumValue) return minimumValue
    if (this > maximumValue) return maximumValue
    return this
}

Please think in another way to handle it.
I suggest always with canvas use ratio.

WrapContent

When you put showYAxis in false: the chart still holding the padding.

Correct functionality

  • It must use the entire canvas, if the y or x-axis are disabled

How to add the lib?

Hello!
I'm trying to add the lib and use it to do some pie charts.
I added dependencies and synced project (maybe some of them in wrong place).
But I think it's not working, cause I can't import PieChart or any other composable from the lib.
Can you mention where exactly I need to add?

image

Here is my build.gradle shared module:

plugins {
kotlin("multiplatform")
id("com.android.library")
id("org.jetbrains.compose")
id("com.squareup.sqldelight")
}

kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "17"
}
}
}

targets.withType(org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget::class.java).all {
    binaries.withType(org.jetbrains.kotlin.gradle.plugin.mpp.Framework::class.java).all {
        export("dev.icerock.moko:mvvm-core:0.16.1")

        export("io.github.thechance101:chart:Beta-0.0.5")
    }
}

listOf(
    iosX64(),
    iosArm64(),
    iosSimulatorArm64()
).forEach { iosTarget ->
    iosTarget.binaries.framework {
        baseName = "shared"
        isStatic = true
    }
}

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation(compose.runtime)
            implementation(compose.foundation)
            implementation(compose.material3)
            @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
            implementation(compose.components.resources)

            implementation("androidx.datastore:datastore-preferences-core:1.1.0-dev01")

            implementation("com.squareup.sqldelight:runtime:1.5.5")
            implementation("com.squareup.sqldelight:coroutines-extensions:1.5.5")
            implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")

            implementation("org.jetbrains.kotlinx:atomicfu:0.17.3")

            implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")

        }
    }
    val androidMain by getting {
        dependencies {
            api("androidx.activity:activity-compose:1.8.0")
            api("androidx.appcompat:appcompat:1.6.1")
            api("androidx.core:core-ktx:1.12.0")

            implementation("com.squareup.sqldelight:android-driver:1.5.5")

            implementation("io.github.thechance101:chart:Beta-0.0.5")
        }
    }
    val iosX64Main by getting
    val iosArm64Main by getting
    val iosSimulatorArm64Main by getting
    val iosMain by creating {
        dependencies {
            implementation("com.squareup.sqldelight:native-driver:1.5.5")
        }
        dependsOn(commonMain)
        iosX64Main.dependsOn(this)
        iosArm64Main.dependsOn(this)
        iosSimulatorArm64Main.dependsOn(this)
    }
}

}

android {
compileSdk = (findProperty("android.compileSdk") as String).toInt()
namespace = "com.project"

sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
sourceSets["main"].res.srcDirs("src/androidMain/res")
sourceSets["main"].resources.srcDirs("src/commonMain/resources")

defaultConfig {
    minSdk = (findProperty("android.minSdk") as String).toInt()
}
compileOptions {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}
kotlin {
    jvmToolchain(17)
}

}

sqldelight {
database("AppDatabase") {
packageName = "com.data.database"
sourceFolders = listOf("sqldelight")
}
}

dependencies {
implementation("androidx.compose.material3:material3:1.1.2")
implementation("androidx.core:core:1.10.1")
commonMainApi("dev.icerock.moko:mvvm-core:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-compose:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-flow:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-flow-compose:0.16.1")
}

and build.gradle project:

buildscript {
dependencies {
classpath("com.android.tools.build:gradle:8.1.2")
classpath("com.squareup.sqldelight:gradle-plugin:1.5.5")
classpath("org.jetbrains.kotlinx:atomicfu-gradle-plugin:0.17.3")
}
}
plugins {
kotlin("multiplatform").apply(false)
id("com.android.application").apply(false)
id("com.android.library").apply(false)
id("org.jetbrains.compose").apply(false)
}

allprojects {
apply(plugin = "kotlinx-atomicfu")
}

java.lang.NoSuchMethodError

FATAL EXCEPTION: main
Process: com.example.swiftpay, PID: 4648
java.lang.NoSuchMethodError: No static method drawText-O6gbksU$default(Landroidx/compose/
	at com.aay.compose.baseComponents.XAxisDrawingKt.xAxisDrawing-6ZxE2Lo(XAxisDrawing.kt
	at com.aay.compose.baseComponents.BaseChartContainerKt.baseChartContainer-obdOQcU(Bas
	at com.aay.compose.lineChart.ChartContentKt$ChartContent$2.invoke(ChartContent.kt:81)
	at com.aay.compose.lineChart.ChartContentKt$ChartContent$2.invoke(ChartContent.kt:65)
	at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:116)
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
	at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66
	at androidx.compose.foundation.BackgroundNode.draw(Background.kt:156)
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
	at androidx.compose.ui.node.LayoutNodeDrawScope.performDraw(LayoutNodeDrawScope.kt:76
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:55
	at androidx.compose.foundation.BorderModifierNode$drawRoundRectBorder$1.invoke(Border
	at androidx.compose.foundation.BorderModifierNode$drawRoundRectBorder$1.invoke(Border
	at androidx.compose.ui.draw.CacheDrawModifierNodeImpl.draw(DrawModifier.kt:221)
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
	at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66
	at androidx.compose.foundation.DrawOverscrollModifier.draw(AndroidOverscroll.kt:80)
	at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:349)
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
	at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66
	at androidx.compose.foundation.BackgroundNode.draw(Background.kt:156)
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
	at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
	at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.an
	at android.view.View.draw(View.java:24409)
	at android.view.View.updateDisplayListIfDirty(View.java:23267)
	at android.view.View.draw(View.java:24136)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
	at android.view.View.updateDisplayListIfDirty(View.java:23253)
	at android.view.View.draw(View.java:24136)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
	at android.view.View.updateDisplayListIfDirty(View.java:23253)
	at android.view.View.draw(View.java:24136)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
	at android.view.View.updateDisplayListIfDirty(View.java:23253)
	at android.view.View.draw(View.java:24136)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
	at com.android.internal.policy.DecorView.dispatchDraw(DecorView.java:1541)
	at android.view.View.draw(View.java:24409)
	at com.android.internal.policy.DecorView.draw(DecorView.java:1514)
	at android.view.View.updateDisplayListIfDirty(View.java:23267)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:777)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:783)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:881)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:5647)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5330)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4486)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3116)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10885)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1301)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1309)
	at android.view.Choreographer.doCallbacks(Choreographer.java:923)
	at android.view.Choreographer.doFrame(Choreographer.java:852)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1283)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8757) at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

Bar chart doesn't have label option for each item

LineParameter has something like "label" parameter to denotes the item information when user clicks on it. Whereas, BarParameter doesn't have anything in it. Also, having on click callback could be useful for developer to show the dialog as soon as user clicks on it.

data class BarParameters(
    val dataName: String,
    val data: List<Double>,
    val barColor: Color,
)

Please consider to add it!

Crashes when sum of data is 0

java.lang.IllegalStateException: Offset is unspecified at androidx.compose.ui.geometry.Offset.getX-impl(Offset.kt:67) at com.aay.compose.donutChart.component.PiePedigreeChartKt.drawPedigreeChart-88mDfTA(PiePedigreeChart.kt:62) at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:168) at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:159) at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:116)
This particularly happens when the sum of the data is 0.

I'm using version Beta-0.0.5.

May be a check here would resolve the issue?

if (pieChartData.sumOf { it.data } <= 0) return

Chart width is getting lower

when i add more data the line chart is getting smaller in the width. In this below image there are 11 data points
image
and in this below image there are 4 data points.
image

If there are any workaround to fix this please provide it

Request for Improved Popup Alignment in Chart Interaction

When clicking on a chart, a popup displaying the value of the selected point appears. However, there is an issue with the alignment of the popup content.

image

Is it possoble to support custom composable elements within the popup content or, at the very least, the ability to use custom strings for improved multilanguage support. This enhancement would greatly enhance the usability of the chart interaction feature.

Thank you for considering this improvement request!

Wasm support

Hi, is there plan to add support for Wasm target?

Offset is unspecified

Kotlin: 1.9.20
Compose: compose-bom:2023.10.01
Android Studio Giraffe | 2022.3.1 Patch 4
Build #AI-223.8836.35.2231.11090377, built on November 14, 2023

FATAL EXCEPTION: main
Process: com.ahmer.accounts, PID: 22055
java.lang.IllegalStateException: Offset is unspecified
	at androidx.compose.ui.geometry.Offset.getX-impl(Offset.kt:67)
	at com.aay.compose.donutChart.component.PiePedigreeChartKt.drawPedigreeChart-88mDfTA(PiePedigreeChart.kt:62)
	at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:168)
	at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:159)
	at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:116)
	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
	at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:86)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:365)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
app_time_stats: avg=16.19ms min=3.91ms max=37.41ms count=30
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:246)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:246)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
	at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1138)
	at android.view.View.draw(View.java:23892)
	at android.view.View.updateDisplayListIfDirty(View.java:22756)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:4939)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4643)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3822)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2465)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9305)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1339)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1348)
	at android.view.Choreographer.doCallbacks(Choreographer.java:952)
	at android.view.Choreographer.doFrame(Choreographer.java:882)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1322)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:205)
	at android.os.Looper.loop(Looper.java:294)
	at android.app.ActivityThread.main(ActivityThread.java:8177)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

xAxisData not showing.

Details:
I use this library in an XML-based project. It works fine but xAxisData data not showing.

Example:
image

Code:
@composable
fun BarChartSample(xAxisData: List, testBarParameters: List) {
xAxisData.toString().logDebug("RABBI")
BarChart(
legendPosition = LegendPosition.DISAPPEAR,
chartParameters = testBarParameters,
barCornerRadius = 2.dp,
gridColor = Color.LightGray,
xAxisData = xAxisData,
isShowGrid = true,
showXAxis = true,
showYAxis = true,
animateChart = true,
showGridWithSpacer = true,

    yAxisStyle = TextStyle(
        fontSize = 12.sp,
        color = Color.Gray,
    ),
    xAxisStyle = TextStyle(
        fontSize = 12.sp,
        color = Color.Gray,
        fontWeight = FontWeight.W400
    ),
    barWidth = 20.dp
)

}

Is there a way to make these charts interactive?

I copied the line chart code from the README that has the 3 lines.

Currently running on desktop. When I hover or click on the chart nothing happens.

  1. Is there a way to show a spike line and tool tip?
  2. If I have 2 line charts is there a way to, hover on chart one and programatically show a spike line and tool tip on chart one and chart two?
  3. Can you have two or more line charts above each other with a common x axis like the image, then a spike line could run through them all?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.