mirror of
https://github.com/InsanusMokrassar/JSUIKitKBindings.git
synced 2025-12-04 13:26:27 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 598e481f75 | |||
| 2a76519843 | |||
| 8e9ff07b71 | |||
| 13556a293c | |||
| a4d4ec3db8 | |||
| 6f095de81d |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,6 +11,7 @@ out/
|
||||
|
||||
secret.gradle
|
||||
local.properties
|
||||
local.*
|
||||
|
||||
kotlin-js-store/
|
||||
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## 0.0.23
|
||||
|
||||
* New parameter of tables `headerCustomizer`
|
||||
|
||||
## 0.0.22
|
||||
|
||||
* Add opportunity to customize table header cells
|
||||
|
||||
## 0.0.21
|
||||
|
||||
* Upfill `UIKitWidth`
|
||||
|
||||
@@ -9,4 +9,4 @@ android.enableJetifier=true
|
||||
# Project data
|
||||
|
||||
group=dev.inmo
|
||||
version=0.0.21
|
||||
version=0.0.23
|
||||
|
||||
1
local.make_version.sh
Executable file
1
local.make_version.sh
Executable file
@@ -0,0 +1 @@
|
||||
git add -A && git stash && git checkout master && git pull && git checkout -b "$1" && nano gradle.properties CHANGELOG.md && git add -A && git commit -m "start $1" && git stash pop && git add -A && nano CHANGELOG.md && git add -A && git commit -m "$2" && git push --set-upstream origin "$1" && ./gradlew clean && ./gradlew publishToMavenLocal
|
||||
@@ -10,16 +10,17 @@ import org.w3c.dom.*
|
||||
|
||||
@Composable
|
||||
fun <T> DefaultTable(
|
||||
heading: List<String>,
|
||||
headerBuilders: List<ContentBuilder<HTMLTableCellElement>>,
|
||||
dataList: SnapshotStateList<T>,
|
||||
vararg tableModifiers: UIKitModifier,
|
||||
attributesCustomizer: AttrBuilderContext<HTMLTableElement> = {},
|
||||
headerCellCustomizer: AttrsBuilder<HTMLTableCellElement>.(i: Int, title: String) -> Unit = { _, _ -> },
|
||||
headerCustomizer: AttrBuilderContext<HTMLTableSectionElement> = {},
|
||||
headerCellCustomizer: AttrsBuilder<HTMLTableCellElement>.(i: Int) -> Unit = {},
|
||||
rowAttributes: AttrsBuilder<HTMLTableRowElement>.(t: T) -> Unit = {},
|
||||
cellCustomizer: AttrsBuilder<HTMLTableCellElement>.(i: Int, t: T) -> Unit = { _, _ -> },
|
||||
cellFiller: @Composable ElementScope<HTMLTableCellElement>.(i: Int, t: T) -> Unit
|
||||
) {
|
||||
val headingIndexes = heading.indices
|
||||
val headingIndexes = headerBuilders.indices
|
||||
Table(
|
||||
{
|
||||
classes("uk-table")
|
||||
@@ -27,19 +28,20 @@ fun <T> DefaultTable(
|
||||
attributesCustomizer()
|
||||
}
|
||||
) {
|
||||
Thead {
|
||||
Thead(headerCustomizer) {
|
||||
Tr {
|
||||
heading.forEachIndexed { i, t ->
|
||||
headerBuilders.forEachIndexed { i, t ->
|
||||
Th(
|
||||
{
|
||||
headerCellCustomizer(i, t)
|
||||
headerCellCustomizer(i)
|
||||
}
|
||||
) {
|
||||
Text(t)
|
||||
t()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Tbody {
|
||||
dataList.forEach {
|
||||
Tr(
|
||||
@@ -61,3 +63,39 @@ fun <T> DefaultTable(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun <T> DefaultTable(
|
||||
heading: List<String>,
|
||||
dataList: SnapshotStateList<T>,
|
||||
vararg tableModifiers: UIKitModifier,
|
||||
attributesCustomizer: AttrBuilderContext<HTMLTableElement> = {},
|
||||
headerCustomizer: AttrBuilderContext<HTMLTableSectionElement> = {},
|
||||
headerCellCustomizer: AttrsBuilder<HTMLTableCellElement>.(i: Int, title: String) -> Unit = { _, _ -> },
|
||||
rowAttributes: AttrsBuilder<HTMLTableRowElement>.(t: T) -> Unit = {},
|
||||
cellCustomizer: AttrsBuilder<HTMLTableCellElement>.(i: Int, t: T) -> Unit = { _, _ -> },
|
||||
cellFiller: @Composable ElementScope<HTMLTableCellElement>.(i: Int, t: T) -> Unit
|
||||
) {
|
||||
val headersByIndex = heading.mapIndexed { index, s -> index to s }.toMap()
|
||||
val headerCellCustomizer: AttrsBuilder<HTMLTableCellElement>.(i: Int) -> Unit = { i ->
|
||||
val header = headersByIndex[i]
|
||||
if (header != null) {
|
||||
headerCellCustomizer(i, header)
|
||||
}
|
||||
}
|
||||
inline fun headerFactory(header: String): ContentBuilder<HTMLTableCellElement> = {
|
||||
Text(header)
|
||||
}
|
||||
val headerBuilders = heading.map(::headerFactory)
|
||||
return DefaultTable(
|
||||
headerBuilders,
|
||||
dataList,
|
||||
tableModifiers = tableModifiers,
|
||||
attributesCustomizer,
|
||||
headerCustomizer,
|
||||
headerCellCustomizer,
|
||||
rowAttributes,
|
||||
cellCustomizer,
|
||||
cellFiller
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user