aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt2
-rw-r--r--kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt26
-rw-r--r--kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemote.kt2
-rw-r--r--kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemoteInput.kt7
-rw-r--r--kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/Select.kt2
-rw-r--r--kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt24
-rw-r--r--kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt18
-rw-r--r--kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt25
-rw-r--r--kvision-modules/kvision-bootstrap-spinner/src/main/kotlin/pl/treksoft/kvision/form/spinner/Spinner.kt2
-rw-r--r--kvision-modules/kvision-bootstrap-spinner/src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt31
-rw-r--r--kvision-modules/kvision-bootstrap-typeahead-remote/src/main/kotlin/pl/treksoft/kvision/form/text/TypeaheadRemoteInput.kt7
-rw-r--r--kvision-modules/kvision-bootstrap-typeahead/src/main/kotlin/pl/treksoft/kvision/form/text/TypeaheadInput.kt16
-rw-r--r--kvision-modules/kvision-bootstrap-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/Upload.kt2
-rw-r--r--kvision-modules/kvision-bootstrap-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/UploadInput.kt6
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/dropdown/ContextMenu.kt7
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/dropdown/DropDown.kt51
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/dropdown/Header.kt17
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/dropdown/Separator.kt15
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/navbar/Nav.kt26
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/navbar/NavForm.kt8
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/navbar/Navbar.kt19
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/panel/ResponsiveGridPanel.kt7
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/panel/TabPanel.kt6
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/progress/ProgressBar.kt15
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/toolbar/ButtonGroup.kt14
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/toolbar/Toolbar.kt7
-rw-r--r--kvision-modules/kvision-bootstrap/src/main/kotlin/pl/treksoft/kvision/window/Window.kt15
-rw-r--r--kvision-modules/kvision-chart/src/main/kotlin/pl/treksoft/kvision/chart/Chart.kt8
-rw-r--r--kvision-modules/kvision-maps/src/main/kotlin/pl/treksoft/kvision/maps/Maps.kt6
-rw-r--r--kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/form/text/RichTextInput.kt8
-rw-r--r--kvision-modules/kvision-tabulator-remote/src/main/kotlin/pl/treksoft/kvision/tabulator/TabulatorRemote.kt7
-rw-r--r--kvision-modules/kvision-tabulator/src/main/kotlin/pl/treksoft/kvision/tabulator/Tabulator.kt17
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/Widget.kt30
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/core/WidgetWrapper.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/FieldLabel.kt9
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/FormPanel.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/CheckBoxInput.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/RadioGroup.kt2
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/RadioInput.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/range/Range.kt2
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/range/RangeInput.kt17
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SimpleSelect.kt2
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SimpleSelectInput.kt15
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/AbstractText.kt2
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/TextAreaInput.kt9
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/TextInput.kt8
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Bold.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Button.kt14
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Canvas.kt8
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/CustomTag.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Div.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Footer.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/H1.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/H2.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/H3.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/H4.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/H5.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/H6.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Header.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Iframe.kt17
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Image.kt12
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Li.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Link.kt33
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/ListTag.kt9
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Main.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Nav.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Ol.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/P.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Section.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Span.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Tag.kt13
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/html/Ul.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/DockPanel.kt14
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/FieldsetPanel.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/FlexPanel.kt9
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/GridPanel.kt19
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/HPanel.kt6
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/SimplePanel.kt9
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/SplitPanel.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/StackPanel.kt8
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/panel/VPanel.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/table/Cell.kt13
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/table/HeaderCell.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/table/Row.kt7
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/table/Table.kt11
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/utils/Utils.kt8
-rw-r--r--src/test/kotlin/test/pl/treksoft/kvision/form/FieldLabelSpec.kt2
87 files changed, 697 insertions, 205 deletions
diff --git a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt
index aa3e77b2..68ec96a2 100644
--- a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt
+++ b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt
@@ -196,7 +196,7 @@ open class DateTime(
this.input.id = idc
this.name = name
}
- final override val flabel: FieldLabel = FieldLabel(idc, label, rich)
+ final override val flabel: FieldLabel = FieldLabel(idc, label, rich, setOf("control-label"))
final override val invalidFeedback: InvalidFeedback = InvalidFeedback().apply { visible = false }
init {
diff --git a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
index daeda692..967ca9db 100644
--- a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
+++ b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
@@ -36,6 +36,7 @@ import pl.treksoft.kvision.panel.SimplePanel
import pl.treksoft.kvision.types.toDateF
import pl.treksoft.kvision.types.toStringF
import pl.treksoft.kvision.utils.obj
+import pl.treksoft.kvision.utils.set
import kotlin.js.Date
internal const val DEFAULT_STEPPING = 5
@@ -78,10 +79,12 @@ open class DateTimeInput(
input.value = value?.toStringF(format)
refreshState()
}
+
/**
* Date/time format.
*/
var format by refreshOnUpdate(format) { refreshDatePicker() }
+
/**
* The placeholder for the date/time input.
*/
@@ -90,6 +93,7 @@ open class DateTimeInput(
set(value) {
input.placeholder = value
}
+
/**
* The name attribute of the generated HTML input element.
*/
@@ -98,6 +102,7 @@ open class DateTimeInput(
set(value) {
input.name = value
}
+
/**
* Determines if the field is disabled.
*/
@@ -106,6 +111,7 @@ open class DateTimeInput(
set(value) {
input.disabled = value
}
+
/**
* Determines if the text input is automatically focused.
*/
@@ -114,6 +120,7 @@ open class DateTimeInput(
set(value) {
input.autofocus = value
}
+
/**
* Determines if the date/time input is read-only.
*/
@@ -122,6 +129,7 @@ open class DateTimeInput(
set(value) {
input.readonly = value
}
+
/**
* The size of the input.
*/
@@ -130,6 +138,7 @@ open class DateTimeInput(
set(value) {
input.size = value
}
+
/**
* The validation status of the input.
*/
@@ -139,46 +148,57 @@ open class DateTimeInput(
input.validationStatus = value
refresh()
}
+
/**
* Days of the week that should be disabled. Multiple values should be comma separated.
*/
var daysOfWeekDisabled by refreshOnUpdate(arrayOf<Int>()) { refreshDatePicker() }
+
/**
* Determines if *Clear* button should be visible.
*/
var showClear by refreshOnUpdate(true) { refreshDatePicker() }
+
/**
* Determines if *Close* button should be visible.
*/
var showClose by refreshOnUpdate(true) { refreshDatePicker() }
+
/**
* Determines if *Today* button should be visible.
*/
var showTodayButton by refreshOnUpdate(true) { refreshDatePicker() }
+
/**
* The increment used to build the hour view.
*/
var stepping by refreshOnUpdate(DEFAULT_STEPPING) { refreshDatePicker() }
+
/**
* Prevents date selection before this date.
*/
var minDate: Date? by refreshOnUpdate { refreshDatePicker() }
+
/**
* Prevents date selection after this date.
*/
var maxDate: Date? by refreshOnUpdate { refreshDatePicker() }
+
/**
* Shows date and time pickers side by side.
*/
var sideBySide by refreshOnUpdate(false) { refreshDatePicker() }
+
/**
* An array of enabled dates.
*/
var enabledDates by refreshOnUpdate(arrayOf<Date>()) { refreshDatePicker() }
+
/**
* An array of disabled dates.
*/
var disabledDates by refreshOnUpdate(arrayOf<Date>()) { refreshDatePicker() }
+
/**
* Allow date picker for readonly component.
*/
@@ -392,10 +412,12 @@ open class DateTimeInput(
* It takes the same parameters as the constructor of the built component.
*/
fun Container.dateTimeInput(
- value: Date? = null, format: String = "YYYY-MM-DD HH:mm", classes: Set<String> = setOf(),
+ value: Date? = null, format: String = "YYYY-MM-DD HH:mm",
+ classes: Set<String>? = null,
+ className: String? = null,
init: (DateTimeInput.() -> Unit)? = null
): DateTimeInput {
- val dateTimeInput = DateTimeInput(value, format, classes).apply { init?.invoke(this) }
+ val dateTimeInput = DateTimeInput(value, format, classes ?: className.set).apply { init?.invoke(this) }
this.add(dateTimeInput)
return dateTimeInput
}
diff --git a/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemote.kt b/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemote.kt
index dbd0aa70..b4e4738c 100644
--- a/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemote.kt
+++ b/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemote.kt
@@ -166,7 +166,7 @@ open class SelectRemote<T : Any>(
this.id = idc
this.name = name
}
- final override val flabel: FieldLabel = FieldLabel(idc, label, rich)
+ final override val flabel: FieldLabel = FieldLabel(idc, label, rich, setOf("control-label"))
final override val invalidFeedback: InvalidFeedback = InvalidFeedback().apply { visible = false }
init {
diff --git a/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemoteInput.kt b/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemoteInput.kt
index e7fd384c..b6319a6b 100644
--- a/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemoteInput.kt
+++ b/kvision-modules/kvision-bootstrap-select-remote/src/main/kotlin/pl/treksoft/kvision/form/select/SelectRemoteInput.kt
@@ -36,6 +36,7 @@ import pl.treksoft.kvision.remote.KVServiceManager
import pl.treksoft.kvision.remote.RemoteOption
import pl.treksoft.kvision.utils.JSON
import pl.treksoft.kvision.utils.obj
+import pl.treksoft.kvision.utils.set
import kotlin.browser.window
external fun decodeURIComponent(encodedURI: String): String
@@ -197,7 +198,9 @@ fun <T : Any> Container.selectRemoteInput(
multiple: Boolean = false,
ajaxOptions: AjaxOptions? = null,
preload: Boolean = false,
- classes: Set<String> = setOf(), init: (SelectRemoteInput<T>.() -> Unit)? = null
+ classes: Set<String>? = null,
+ className: String? = null,
+ init: (SelectRemoteInput<T>.() -> Unit)? = null
): SelectRemoteInput<T> {
val selectRemoteInput =
SelectRemoteInput(
@@ -208,7 +211,7 @@ fun <T : Any> Container.selectRemoteInput(
multiple,
ajaxOptions,
preload,
- classes
+ classes ?: className.set
).apply {
init?.invoke(this)
}
diff --git a/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/Select.kt b/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/Select.kt
index b3f5e1c1..4ffece7d 100644
--- a/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/Select.kt
+++ b/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/Select.kt
@@ -183,7 +183,7 @@ open class Select(
this.id = idc
this.name = name
}
- final override val flabel: FieldLabel = FieldLabel(idc, label, rich)
+ final override val flabel: FieldLabel = FieldLabel(idc, label, rich, setOf("control-label"))
final override val invalidFeedback: InvalidFeedback = InvalidFeedback().apply { visible = false }
init {
diff --git a/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt b/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt
index 01b35ed2..ced0945d 100644
--- a/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt
+++ b/kvision-modules/kvision-bootstrap-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt
@@ -35,6 +35,7 @@ import pl.treksoft.kvision.html.ButtonStyle
import pl.treksoft.kvision.panel.SimplePanel
import pl.treksoft.kvision.utils.asString
import pl.treksoft.kvision.utils.obj
+import pl.treksoft.kvision.utils.set
/**
* Select width types. See [Bootstrap Select width](http://silviomoreto.github.io/bootstrap-select/examples/#width).
@@ -77,18 +78,22 @@ open class SelectInput(
* A list of options (value to label pairs) for the select control.
*/
var options by refreshOnUpdate(options) { setChildrenFromOptions() }
+
/**
* A value of the selected option.
*/
var value by refreshOnUpdate(value) { refreshState() }