Kumaran Masilamani
05/12/2021, 5:46 PMRobert Jaros
05/12/2021, 7:53 PMKumaran Masilamani
05/12/2021, 8:44 PMKumaran Masilamani
05/12/2021, 8:45 PMRobert Jaros
05/12/2021, 9:02 PMRobert Jaros
05/12/2021, 9:03 PMKumaran Masilamani
05/12/2021, 9:06 PMRobert Jaros
05/13/2021, 8:37 AMRobert Jaros
05/13/2021, 8:37 AMsourceSets["main"].dependencies {
implementation(npm("typeahead.js","0.11.1"))
implementation(npm("bootstrap4-tagsinput-umd","1.0.2"))
implementation("io.kvision:kvision:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap:$kvisionVersion")
implementation("io.kvision:kvision-bootstrap-css:$kvisionVersion")
implementation("io.kvision:kvision-i18n:$kvisionVersion")
}
Robert Jaros
05/13/2021, 8:41 AMclass App : Application() {
init {
require("bootstrap4-tagsinput-umd/tagsinput.css")
require("bootstrap4-tagsinput-umd/tagsinput.js")
require("typeahead.js")
}
override fun start() {
root("kvapp") {
val sources = listOf("Amsterdam", "Washington", "Sydney", "Beijing", "Cairo")
val sourceFun = { query: String?, callback: (Array<String>) -> Unit ->
callback(sources.filter { it.startsWith(query ?: "", ignoreCase = true) }.toTypedArray())
}
val options = obj {
typeaheadjs = arrayOf(obj {}, obj {
name = "names"
source = sourceFun
})
freeInput = false
}
vPanel(spacing = 3) {
width = 100.perc
padding = 10.px
val tagsInput = textInput {
addAfterInsertHook {
getElementJQueryD().tagsinput(options)
}
}
button("Print values").onClick {
println(tagsInput.getElementJQuery()?.`val`()?.toString()?.split(","))
}
}
}
}
}
Kumaran Masilamani
05/13/2021, 7:52 PMinputTag(){
id :String
name :String
freeInput :Boolean
src : List<String>
ignoreCase :Boolean
containsOrStartswith:
}
Kumaran Masilamani
05/13/2021, 7:53 PMKumaran Masilamani
05/13/2021, 7:58 PMKumaran Masilamani
05/13/2021, 7:58 PMadd(
//MyObject::listOfStringType,
TextInput {
id = "category-input-tag"
addAfterInsertHook {
getElementJQueryD().tagsinput(options)
}
}
)
Kumaran Masilamani
05/13/2021, 8:09 PMadd(
//MyObject::listOfStringType,
TextInput {
id = "category-input-tag"
value= myobjectInstance.listOfStringType?.joinToString { "," }
addAfterInsertHook {
getElementJQueryD().tagsinput(options)
}
}
)
Kumaran Masilamani
05/13/2021, 8:18 PMRobert Jaros
05/13/2021, 9:17 PMText
instead of TextInput
. Should work with this:
Text(label = "Tags:") {
input.addAfterInsertHook {
input.getElementJQueryD().tagsinput(options)
}
}
Kumaran Masilamani
05/13/2021, 9:27 PMKumaran Masilamani
05/13/2021, 9:28 PMadd(
//MyObject::myAtribute,
TextInput {
id = "category-input-tag"
value = valueAsCommaDelimitedString
addAfterInsertHook {
getElementJQueryD().tagsinput(options)
}
}
)
this worksKumaran Masilamani
05/13/2021, 9:28 PMRobert Jaros
05/13/2021, 9:30 PMRobert Jaros
05/13/2021, 9:32 PMKumaran Masilamani
05/13/2021, 9:45 PM