mirror of
https://github.com/InsanusMokrassar/JSUIKitKBindings.git
synced 2024-06-01 23:45:12 +00:00
Compare commits
37 Commits
Author | SHA1 | Date | |
---|---|---|---|
a48de4e095 | |||
1582b7a93b | |||
687e9941d9 | |||
4d92b9630c | |||
212acfd68d | |||
d437730be6 | |||
57d81a2856 | |||
2e665a8411 | |||
96d5936e83 | |||
de6253c50e | |||
1f66ca8346 | |||
7dc0e08a78 | |||
0eb80f141a | |||
120df9d84e | |||
6783bd6666 | |||
9c4bc444dd | |||
0635b4a233 | |||
29fe133777 | |||
d2ba2fe96a | |||
c0ce6f5b71 | |||
665432cdce | |||
5e379ee3e2 | |||
5a86d6705b | |||
25134879c1 | |||
30a85795dd | |||
730da9f759 | |||
8178fa9d39 | |||
1eb14becde | |||
6502e0923e | |||
443043cff5 | |||
1765214c97 | |||
dcc6495030 | |||
1c16fb4ed7 | |||
a60fb67ad3 | |||
f8402b24d1 | |||
f70f4674ed | |||
7c81cea8af |
49
CHANGELOG.md
49
CHANGELOG.md
|
@ -1,5 +1,54 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.7.6
|
||||||
|
|
||||||
|
* `Kotlin`: `1.9.23`
|
||||||
|
* `Compose`: `1.6.1`
|
||||||
|
|
||||||
|
## 0.7.5
|
||||||
|
|
||||||
|
* `Kotlin`: `1.9.22`
|
||||||
|
* `Compose`: `1.6.0`
|
||||||
|
|
||||||
|
## 0.7.4
|
||||||
|
|
||||||
|
* `Kotlin`: `1.9.21`
|
||||||
|
* `Compose`: `1.5.11`
|
||||||
|
|
||||||
|
## 0.7.3
|
||||||
|
|
||||||
|
* `Kotlin`: `1.9.20`
|
||||||
|
* `Compose`: `1.5.10`
|
||||||
|
|
||||||
|
## 0.7.2
|
||||||
|
|
||||||
|
* `Kotlin`: `1.9.10`
|
||||||
|
* `Compose`: `1.5.1`
|
||||||
|
|
||||||
|
## 0.7.1
|
||||||
|
|
||||||
|
* Type of `animation` parameter in `Alert` has been changed according to docs: now it is `Boolean`
|
||||||
|
* Add tooltip `JS` part support
|
||||||
|
|
||||||
|
## 0.7.0
|
||||||
|
|
||||||
|
* `Kotlin`: `1.8.20`
|
||||||
|
* `Compose`: `1.4.0`
|
||||||
|
|
||||||
|
## 0.6.2
|
||||||
|
|
||||||
|
* `Compose`: `1.3.1`
|
||||||
|
|
||||||
|
## 0.6.1
|
||||||
|
|
||||||
|
* `DefaultInput` has been renamed to `StandardInput`
|
||||||
|
* `Compose`: `1.3.1-rc02`
|
||||||
|
|
||||||
|
## 0.6.0
|
||||||
|
|
||||||
|
* `Kotlin`: `1.8.10`
|
||||||
|
* `Compose`: `1.3.1-rc01`
|
||||||
|
|
||||||
## 0.5.2
|
## 0.5.2
|
||||||
|
|
||||||
* More fixes in Dialogs
|
* More fixes in Dialogs
|
||||||
|
|
|
@ -18,14 +18,14 @@ if (new File(projectDir, "secret.gradle").exists()) {
|
||||||
githubRelease {
|
githubRelease {
|
||||||
token "${project.property('GITHUB_RELEASE_TOKEN')}"
|
token "${project.property('GITHUB_RELEASE_TOKEN')}"
|
||||||
|
|
||||||
owner "InsanusMokrassar"
|
owner = "InsanusMokrassar"
|
||||||
repo "JSUIKitKBindings"
|
repo = "JSUIKitKBindings"
|
||||||
|
|
||||||
tagName "v${project.version}"
|
tagName = "v${project.version}"
|
||||||
releaseName "${project.version}"
|
releaseName = "${project.version}"
|
||||||
targetCommitish "${project.version}"
|
targetCommitish = "${project.version}"
|
||||||
|
|
||||||
body getCurrentVersionChangelog()
|
body = getCurrentVersionChangelog()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,8 @@ org.gradle.parallel=true
|
||||||
kotlin.js.generate.externals=true
|
kotlin.js.generate.externals=true
|
||||||
kotlin.incremental=true
|
kotlin.incremental=true
|
||||||
kotlin.incremental.js=true
|
kotlin.incremental.js=true
|
||||||
android.useAndroidX=true
|
|
||||||
android.enableJetifier=true
|
|
||||||
|
|
||||||
# Project data
|
# Project data
|
||||||
|
|
||||||
group=dev.inmo
|
group=dev.inmo
|
||||||
version=0.5.2
|
version=0.7.6
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
[versions]
|
[versions]
|
||||||
|
|
||||||
kt = "1.7.20"
|
kt = "1.9.23"
|
||||||
jb-compose = "1.2.2"
|
jb-compose = "1.6.1"
|
||||||
jb-dokka = "1.7.20"
|
jb-dokka = "1.9.20"
|
||||||
gh-release = "2.4.1"
|
gh-release = "2.5.1"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
|
||||||
|
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,5 +1,5 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
|
|
||||||
task javadocsJar(type: Jar) {
|
task javadocsJar(type: Jar) {
|
||||||
classifier = 'javadoc'
|
archiveClassifier = 'javadoc'
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
|
@ -38,20 +38,16 @@ publishing {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
repositories {
|
repositories {
|
||||||
if (project.hasProperty('GITEA_TOKEN') || System.getenv('GITEA_TOKEN') != null) {
|
if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) {
|
||||||
maven {
|
maven {
|
||||||
name = "GITEA"
|
name = "InmoNexus"
|
||||||
url = uri("https://git.inmo.dev/api/packages/InsanusMokrassar/maven")
|
url = uri("https://nexus.inmo.dev/repository/maven-releases/")
|
||||||
|
|
||||||
credentials(HttpHeaderCredentials) {
|
credentials {
|
||||||
name = "Authorization"
|
username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER')
|
||||||
value = project.hasProperty('GITEA_TOKEN') ? project.property('GITEA_TOKEN') : System.getenv('GITEA_TOKEN')
|
password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD')
|
||||||
}
|
}
|
||||||
|
|
||||||
authentication {
|
|
||||||
header(HttpHeaderAuthentication)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
|
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
|
||||||
|
@ -84,4 +80,10 @@ if (project.hasProperty("signing.gnupg.keyName")) {
|
||||||
dependsOn(it)
|
dependsOn(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Workaround to make android sign operations depend on signing tasks
|
||||||
|
project.getTasks().withType(AbstractPublishToMaven.class).configureEach {
|
||||||
|
def signingTasks = project.getTasks().withType(Sign.class)
|
||||||
|
mustRunAfter(signingTasks)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://opensource.org/licenses/Apache-2.0"}],"mavenConfig":{"name":"${project.name}","description":"${project.name}","url":"https://github.com/InsanusMokrassar/JSUIKitKBindings","vcsUrl":"https://github.com/InsanusMokrassar/JSUIKitKBindings.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GITEA","url":"https://git.inmo.dev/api/packages/InsanusMokrassar/maven","credsType":{"type":"dev.inmo.kmppscriptbuilder.core.models.MavenPublishingRepository.CredentialsType.HttpHeaderCredentials","headerName":"Authorization","headerValueProperty":"GITEA_TOKEN"}},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}}
|
{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://opensource.org/licenses/Apache-2.0"}],"mavenConfig":{"name":"${project.name}","description":"${project.name}","url":"https://github.com/InsanusMokrassar/JSUIKitKBindings","vcsUrl":"https://github.com/InsanusMokrassar/JSUIKitKBindings.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}}
|
|
@ -1,3 +1 @@
|
||||||
rootProject.name = 'kjsuikit'
|
rootProject.name = 'kjsuikit'
|
||||||
|
|
||||||
enableFeaturePreview("VERSION_CATALOGS")
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.w3c.dom.HTMLDivElement
|
||||||
@Composable
|
@Composable
|
||||||
fun Alert(
|
fun Alert(
|
||||||
attrs: Attrs<HTMLDivElement> = Attrs.empty(),
|
attrs: Attrs<HTMLDivElement> = Attrs.empty(),
|
||||||
animation: UIKitAnimation? = UIKitAnimation.Fade,
|
animation: Boolean = true,
|
||||||
duration: Milliseconds? = null,
|
duration: Milliseconds? = null,
|
||||||
selClose: String? = null,
|
selClose: String? = null,
|
||||||
content: ContentBuilder<HTMLDivElement>
|
content: ContentBuilder<HTMLDivElement>
|
||||||
|
@ -22,7 +22,7 @@ fun Alert(
|
||||||
include(UIKitAlert)
|
include(UIKitAlert)
|
||||||
|
|
||||||
buildAndAddAttribute("uk-alert") {
|
buildAndAddAttribute("uk-alert") {
|
||||||
"animation" to animation ?.classes ?.firstOrNull()
|
"animation" to animation
|
||||||
"duration" to duration
|
"duration" to duration
|
||||||
"sel-close" to selClose
|
"sel-close" to selClose
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,40 @@ import org.jetbrains.compose.web.dom.AttrBuilderContext
|
||||||
import org.jetbrains.compose.web.dom.Input
|
import org.jetbrains.compose.web.dom.Input
|
||||||
import org.w3c.dom.HTMLInputElement
|
import org.w3c.dom.HTMLInputElement
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun <T> StandardInput(
|
||||||
|
type: InputType<T>,
|
||||||
|
value: T? = null,
|
||||||
|
vararg modifiers: UIKitModifier,
|
||||||
|
disabled: Boolean = false,
|
||||||
|
placeholder: String? = null,
|
||||||
|
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
||||||
|
onChange: HTMLInputElement.(T) -> Unit
|
||||||
|
) {
|
||||||
|
Input(type) {
|
||||||
|
classes("uk-input")
|
||||||
|
include(*modifiers)
|
||||||
|
|
||||||
|
placeholder ?.let(::placeholder)
|
||||||
|
|
||||||
|
value ?.let {
|
||||||
|
when (it) {
|
||||||
|
is String -> value(it)
|
||||||
|
is Number -> value(it)
|
||||||
|
else -> {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onInput { event -> event.target.onChange(event.value) }
|
||||||
|
|
||||||
|
if (disabled) {
|
||||||
|
disabled()
|
||||||
|
}
|
||||||
|
attributesCustomizer()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated("Renamed", ReplaceWith("StandardInput(type, value, *modifiers, disabled, placeholder, attributesCustomizer, onChange)"))
|
||||||
@Composable
|
@Composable
|
||||||
fun <T> DefaultInput(
|
fun <T> DefaultInput(
|
||||||
type: InputType<T>,
|
type: InputType<T>,
|
||||||
|
@ -17,28 +51,8 @@ fun <T> DefaultInput(
|
||||||
vararg modifiers: UIKitModifier,
|
vararg modifiers: UIKitModifier,
|
||||||
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
||||||
onChange: (T) -> Unit
|
onChange: (T) -> Unit
|
||||||
) {
|
) = StandardInput(type, value, modifiers = modifiers, disabled, placeholder, attributesCustomizer) {
|
||||||
Input(type) {
|
onChange(it)
|
||||||
classes("uk-input")
|
|
||||||
include(*modifiers)
|
|
||||||
|
|
||||||
placeholder ?.let(::placeholder)
|
|
||||||
|
|
||||||
value.let {
|
|
||||||
when (it) {
|
|
||||||
is String -> value(it)
|
|
||||||
is Number -> value(it)
|
|
||||||
else -> {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onInput { onChange(it.value) }
|
|
||||||
|
|
||||||
if (disabled) {
|
|
||||||
disabled()
|
|
||||||
}
|
|
||||||
attributesCustomizer()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -49,12 +63,12 @@ fun <T> StandardInput(
|
||||||
placeholder: String? = null,
|
placeholder: String? = null,
|
||||||
vararg modifiers: UIKitModifier,
|
vararg modifiers: UIKitModifier,
|
||||||
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
||||||
) = DefaultInput(
|
) = StandardInput(
|
||||||
type,
|
type,
|
||||||
state.value,
|
state.value,
|
||||||
|
modifiers = modifiers,
|
||||||
disabledState ?.value == true,
|
disabledState ?.value == true,
|
||||||
placeholder,
|
placeholder,
|
||||||
modifiers = modifiers,
|
|
||||||
attributesCustomizer = attributesCustomizer
|
attributesCustomizer = attributesCustomizer
|
||||||
) {
|
) {
|
||||||
state.value = it
|
state.value = it
|
||||||
|
|
|
@ -17,4 +17,7 @@ external interface UIKit {
|
||||||
|
|
||||||
fun dropdown(element: Element, options: DropdownOptions = definedExternally): Dropdown
|
fun dropdown(element: Element, options: DropdownOptions = definedExternally): Dropdown
|
||||||
fun dropdown(selector: String, options: DropdownOptions = definedExternally): Dropdown?
|
fun dropdown(selector: String, options: DropdownOptions = definedExternally): Dropdown?
|
||||||
|
|
||||||
|
fun tooltip(element: Element): UIKitTooltip
|
||||||
|
fun tooltip(selector: String): UIKitTooltip?
|
||||||
}
|
}
|
||||||
|
|
6
src/jsMain/kotlin/dev/inmo/jsuikit/types/UIKitTooltip.kt
Normal file
6
src/jsMain/kotlin/dev/inmo/jsuikit/types/UIKitTooltip.kt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
package dev.inmo.jsuikit.types
|
||||||
|
|
||||||
|
external interface UIKitTooltip {
|
||||||
|
fun show()
|
||||||
|
fun hide()
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user