|
|
|
|
@@ -1,7 +1,6 @@
|
|
|
|
|
package dev.inmo.jsuikit.elements
|
|
|
|
|
|
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
|
import androidx.compose.runtime.snapshots.SnapshotStateList
|
|
|
|
|
import dev.inmo.jsuikit.buildAndAddAttribute
|
|
|
|
|
import dev.inmo.jsuikit.modifiers.*
|
|
|
|
|
import dev.inmo.jsuikit.utils.Milliseconds
|
|
|
|
|
@@ -94,7 +93,7 @@ fun SubNav(
|
|
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
|
fun <T> Nav(
|
|
|
|
|
title: String,
|
|
|
|
|
title: String?,
|
|
|
|
|
data: Iterable<T>,
|
|
|
|
|
vararg ulModifiers: UIKitModifier,
|
|
|
|
|
titleModifiers: Array<UIKitModifier> = emptyArray(),
|
|
|
|
|
@@ -104,6 +103,7 @@ fun <T> Nav(
|
|
|
|
|
duration: Milliseconds? = null,
|
|
|
|
|
besidesTitleAndList: ContentBuilder<HTMLUListElement>? = null,
|
|
|
|
|
titleCustomizer: AttrBuilderContext<HTMLLIElement> = {},
|
|
|
|
|
afterTitleContentBuilder: ContentBuilder<HTMLLIElement> = {},
|
|
|
|
|
ulCustomizer: AttrBuilderContext<HTMLUListElement> = {},
|
|
|
|
|
elementAllocator: @Composable ElementScope<HTMLUListElement>.(T) -> Unit
|
|
|
|
|
) {
|
|
|
|
|
@@ -119,11 +119,14 @@ fun <T> Nav(
|
|
|
|
|
ulCustomizer()
|
|
|
|
|
}
|
|
|
|
|
) {
|
|
|
|
|
NavHeader(
|
|
|
|
|
title,
|
|
|
|
|
*titleModifiers,
|
|
|
|
|
attributesCustomizer = titleCustomizer
|
|
|
|
|
)
|
|
|
|
|
title ?.let {
|
|
|
|
|
NavHeader(
|
|
|
|
|
title,
|
|
|
|
|
*titleModifiers,
|
|
|
|
|
attributesCustomizer = titleCustomizer,
|
|
|
|
|
afterTitleContentBuilder = afterTitleContentBuilder
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
besidesTitleAndList ?.let { it() }
|
|
|
|
|
data.forEach {
|
|
|
|
|
elementAllocator(it)
|
|
|
|
|
@@ -133,7 +136,7 @@ fun <T> Nav(
|
|
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
|
fun <T> DefaultNav(
|
|
|
|
|
title: String,
|
|
|
|
|
title: String?,
|
|
|
|
|
data: Iterable<T>,
|
|
|
|
|
vararg ulModifiers: UIKitModifier,
|
|
|
|
|
titleModifiers: Array<UIKitModifier> = emptyArray(),
|
|
|
|
|
@@ -143,6 +146,7 @@ fun <T> DefaultNav(
|
|
|
|
|
duration: Milliseconds? = null,
|
|
|
|
|
besidesTitleAndList: ContentBuilder<HTMLUListElement>? = null,
|
|
|
|
|
titleCustomizer: AttrBuilderContext<HTMLLIElement> = {},
|
|
|
|
|
afterTitleContentBuilder: ContentBuilder<HTMLLIElement> = {},
|
|
|
|
|
ulCustomizer: AttrBuilderContext<HTMLUListElement> = {},
|
|
|
|
|
elementAllocator: @Composable ElementScope<HTMLUListElement>.(T) -> Unit
|
|
|
|
|
) = Nav(
|
|
|
|
|
@@ -156,13 +160,14 @@ fun <T> DefaultNav(
|
|
|
|
|
duration,
|
|
|
|
|
besidesTitleAndList,
|
|
|
|
|
titleCustomizer,
|
|
|
|
|
afterTitleContentBuilder,
|
|
|
|
|
ulCustomizer,
|
|
|
|
|
elementAllocator
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
|
fun <T> PrimaryNav(
|
|
|
|
|
title: String,
|
|
|
|
|
title: String?,
|
|
|
|
|
data: Iterable<T>,
|
|
|
|
|
vararg ulModifiers: UIKitModifier,
|
|
|
|
|
titleModifiers: Array<UIKitModifier> = emptyArray(),
|
|
|
|
|
@@ -172,6 +177,7 @@ fun <T> PrimaryNav(
|
|
|
|
|
duration: Milliseconds? = null,
|
|
|
|
|
besidesTitleAndList: ContentBuilder<HTMLUListElement>? = null,
|
|
|
|
|
titleCustomizer: AttrBuilderContext<HTMLLIElement> = {},
|
|
|
|
|
afterTitleContentBuilder: ContentBuilder<HTMLLIElement> = {},
|
|
|
|
|
ulCustomizer: AttrBuilderContext<HTMLUListElement> = {},
|
|
|
|
|
elementAllocator: @Composable ElementScope<HTMLUListElement>.(T) -> Unit
|
|
|
|
|
) = Nav(
|
|
|
|
|
@@ -185,13 +191,14 @@ fun <T> PrimaryNav(
|
|
|
|
|
duration,
|
|
|
|
|
besidesTitleAndList,
|
|
|
|
|
titleCustomizer,
|
|
|
|
|
afterTitleContentBuilder,
|
|
|
|
|
ulCustomizer,
|
|
|
|
|
elementAllocator
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
|
fun <T> SubNav(
|
|
|
|
|
title: String,
|
|
|
|
|
title: String?,
|
|
|
|
|
data: Iterable<T>,
|
|
|
|
|
vararg ulModifiers: UIKitModifier,
|
|
|
|
|
titleModifiers: Array<UIKitModifier> = emptyArray(),
|
|
|
|
|
@@ -201,6 +208,7 @@ fun <T> SubNav(
|
|
|
|
|
duration: Milliseconds? = null,
|
|
|
|
|
besidesTitleAndList: ContentBuilder<HTMLUListElement>? = null,
|
|
|
|
|
titleCustomizer: AttrBuilderContext<HTMLLIElement> = {},
|
|
|
|
|
afterTitleContentBuilder: ContentBuilder<HTMLLIElement> = {},
|
|
|
|
|
ulCustomizer: AttrBuilderContext<HTMLUListElement> = {},
|
|
|
|
|
elementAllocator: @Composable ElementScope<HTMLUListElement>.(T) -> Unit
|
|
|
|
|
) = Nav(
|
|
|
|
|
@@ -214,6 +222,7 @@ fun <T> SubNav(
|
|
|
|
|
duration,
|
|
|
|
|
besidesTitleAndList,
|
|
|
|
|
titleCustomizer,
|
|
|
|
|
afterTitleContentBuilder,
|
|
|
|
|
ulCustomizer,
|
|
|
|
|
elementAllocator
|
|
|
|
|
)
|
|
|
|
|
@@ -223,6 +232,7 @@ fun NavHeader(
|
|
|
|
|
text: String,
|
|
|
|
|
vararg modifiers: UIKitModifier,
|
|
|
|
|
attributesCustomizer: AttrBuilderContext<HTMLLIElement> = {},
|
|
|
|
|
afterTitleContentBuilder: ContentBuilder<HTMLLIElement> = {}
|
|
|
|
|
) {
|
|
|
|
|
Li(
|
|
|
|
|
{
|
|
|
|
|
@@ -231,6 +241,7 @@ fun NavHeader(
|
|
|
|
|
}
|
|
|
|
|
) {
|
|
|
|
|
Text(text)
|
|
|
|
|
afterTitleContentBuilder()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|