aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/pl/treksoft/kvision/form
diff options
context:
space:
mode:
authorRobert Jaros <rjaros@finn.pl>2018-02-22 12:43:43 +0100
committerRobert Jaros <rjaros@finn.pl>2018-02-22 12:43:43 +0100
commite40c13c62de806169368adc7c2c4212f7df6413b (patch)
tree250e39d407cd2c6ef19c9a8ea0176a3215a4a818 /src/main/kotlin/pl/treksoft/kvision/form
parent1aefed336f9ef305f59d3668abc8a39c550e921d (diff)
downloadkvision-e40c13c62de806169368adc7c2c4212f7df6413b.tar.gz
kvision-e40c13c62de806169368adc7c2c4212f7df6413b.tar.bz2
kvision-e40c13c62de806169368adc7c2c4212f7df6413b.zip
Property values delegated to a map (idea by tieskedh)
Closes #2
Diffstat (limited to 'src/main/kotlin/pl/treksoft/kvision/form')
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/CheckBox.kt18
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/CheckInput.kt43
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/Radio.kt18
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/check/RadioGroup.kt18
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt94
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt24
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt36
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt85
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/AbstractTextInput.kt55
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/TextAreaInput.kt18
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/text/TextInput.kt12
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt90
12 files changed, 88 insertions, 423 deletions
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/check/CheckBox.kt b/src/main/kotlin/pl/treksoft/kvision/form/check/CheckBox.kt
index 7a8b5905..e76a1c7a 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/check/CheckBox.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/check/CheckBox.kt
@@ -107,27 +107,15 @@ open class CheckBox(
/**
* The style (one of Bootstrap standard colors) of the input.
*/
- var style: CHECKBOXSTYLE? = null
- set(value) {
- field = value
- refresh()
- }
+ var style: CHECKBOXSTYLE? by refreshOnUpdate()
/**
* Determines if the checkbox is rendered as a circle.
*/
- var circled: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var circled by refreshOnUpdate(false)
/**
* Determines if the checkbox is rendered inline.
*/
- var inline: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var inline by refreshOnUpdate(false)
/**
* The size of the input.
*/
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/check/CheckInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/check/CheckInput.kt
index 46e5395c..7c67c957 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/check/CheckInput.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/check/CheckInput.kt
@@ -66,63 +66,34 @@ open class CheckInput(
/**
* The selection state of the input.
*/
- var value: Boolean = value
- set(value) {
- field = value
- refreshState()
- }
+ var value by refreshOnUpdate(value, { refreshState() })
/**
* The value attribute of the generated HTML input element.
*
* This value is placed directly in generated HTML code, while the [value] property is dynamically
* bound to the input selection state.
*/
- var startValue: Boolean = value
- set(value) {
- field = value
- this.value = value
- refresh()
- }
+ var startValue by refreshOnUpdate(value, { this.value = it; refresh() })
/**
* The type of the generated HTML input element.
*/
- var type: CHECKINPUTTYPE = type
- set(value) {
- field = value
- refresh()
- }
+ var type by refreshOnUpdate(type)
/**
* The name attribute of the generated HTML input element.
*/
- var name: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var name: String? by refreshOnUpdate()
/**
* Determines if the field is disabled.
*/
- var disabled: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var disabled by refreshOnUpdate(false)
/**
* The additional String value used for the radio button group.
*/
- var extraValue: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var extraValue: String? by refreshOnUpdate()
/**
* The size of the input.
*/
- var size: INPUTSIZE? = null
- set(value) {
- field = value
- refresh()
- }
+ var size: INPUTSIZE? by refreshOnUpdate()
override fun render(): VNode {
return render("input")
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/check/Radio.kt b/src/main/kotlin/pl/treksoft/kvision/form/check/Radio.kt
index ef5d6eb9..0cf85fc5 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/check/Radio.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/check/Radio.kt
@@ -117,27 +117,15 @@ open class Radio(
/**
* The style (one of Bootstrap standard colors) of the input.
*/
- var style: RADIOSTYLE? = null
- set(value) {
- field = value
- refresh()
- }
+ var style: RADIOSTYLE? by refreshOnUpdate()
/**
* Determines if the radio button is rendered as a square.
*/
- var squared: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var squared by refreshOnUpdate(false)
/**
* Determines if the radio button is rendered inline.
*/
- var inline: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var inline by refreshOnUpdate(false)
/**
* The size of the input.
*/
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/check/RadioGroup.kt b/src/main/kotlin/pl/treksoft/kvision/form/check/RadioGroup.kt
index aa29de34..e5b04a47 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/check/RadioGroup.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/check/RadioGroup.kt
@@ -54,29 +54,17 @@ open class RadioGroup(
/**
* A list of options (label to value pairs) for the group.
*/
- var options = options
- set(value) {
- field = value
- setChildrenFromOptions()
- }
+ var options by refreshOnUpdate(options, { setChildrenFromOptions() })
/**
* A value of the selected option.
*/
- override var value = value
- set(value) {
- field = value
- setValueToChildren(value)
- }
+ override var value by refreshOnUpdate(value, { setValueToChildren(it) })
/**
* Determines if the options are rendered inline.
*/
- var inline: Boolean = inline
- set(value) {
- field = value
- refresh()
- }
+ var inline by refreshOnUpdate(inline)
override var disabled
get() = getDisabledFromChildren()
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt
index f90401ce..b0b7f4b3 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt
@@ -65,124 +65,68 @@ open class SelectInput(
/**
* A list of options (label to value pairs) for the select control.
*/
- internal var options = options
- set(value) {
- field = value
- setChildrenFromOptions()
- }
+ internal var options by refreshOnUpdate(options, { setChildrenFromOptions() })
/**
* A value of the selected option.
*/
- var value: String? = value
- set(value) {
- field = value
- refreshState()
- }
+ var value by refreshOnUpdate(value, { refreshState() })
/**
* The name attribute of the generated HTML select element.
*/
- var name: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var name: String? by refreshOnUpdate()
/**
* Determines if multiple value selection is allowed.
*/
- var multiple: Boolean = multiple
- set(value) {
- field = value
- refresh()
- }
+ var multiple by refreshOnUpdate(multiple)
/**
* Additional options for remote (AJAX) data source.
*/
- var ajaxOptions: AjaxOptions? = ajaxOptions
- set(value) {
- field = value
- if (value != null) liveSearch = true
- refresh()
+ var ajaxOptions by refreshOnUpdate(ajaxOptions, {
+ if (it != null) {
+ liveSearch = true
}
+ refresh()
+ })
/**
* Maximal number of selected options.
*/
- var maxOptions: Int? = null
- set(value) {
- field = value
- refresh()
- }
+ var maxOptions: Int? by refreshOnUpdate()
/**
* Determines if live search is available.
*/
- var liveSearch: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var liveSearch by refreshOnUpdate(false)
/**
* The placeholder for the select control.
*/
- var placeholder: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var placeholder: String? by refreshOnUpdate()
/**
* The style of the select control.
*/
- var style: BUTTONSTYLE? = null
- set(value) {
- field = value
- refresh()
- }
+ var style: BUTTONSTYLE? by refreshOnUpdate()
/**
* The width of the select control.
*/
- var selectWidth: CssSize? = null
- set(value) {
- field = value
- refresh()
- }
+ var selectWidth: CssSize? by refreshOnUpdate()
/**
* The width type of the select control.
*/
- var selectWidthType: SELECTWIDTHTYPE? = null
- set(value) {
- field = value
- refresh()
- }
+ var selectWidthType: SELECTWIDTHTYPE? by refreshOnUpdate()
/**
* Determines if an empty option is automatically generated.
*/
- var emptyOption: Boolean = false
- set(value) {
- field = value
- setChildrenFromOptions()
- }
+ var emptyOption by refreshOnUpdate(false, { setChildrenFromOptions() })
/**
* Determines if the field is disabled.
*/
- var disabled: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var disabled by refreshOnUpdate(false)
/**
* Determines if the select is automatically focused.
*/
- var autofocus: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var autofocus: Boolean? by refreshOnUpdate()
/**
* The size of the input.
*/
- var size: INPUTSIZE? = null
- set(value) {
- field = value
- refresh()
- }
+ var size: INPUTSIZE? by refreshOnUpdate()
init {
setChildrenFromOptions()
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt
index 6819961f..95d8f178 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOptGroup.kt
@@ -45,35 +45,19 @@ open class SelectOptGroup(
/**
* A label for the group.
*/
- var label: String = label
- set(value) {
- field = value
- refresh()
- }
+ var label by refreshOnUpdate(label)
/**
* A list of options (label to value pairs) for the group.
*/
- var options = options
- set(value) {
- field = value
- setChildrenFromOptions()
- }
+ var options by refreshOnUpdate(options, { setChildrenFromOptions() })
/**
* Maximal number of selected options in the group.
*/
- var maxOptions: Int? = maxOptions
- set(value) {
- field = value
- refresh()
- }
+ var maxOptions by refreshOnUpdate(maxOptions)
/**
* Determines if the group is disabled.
*/
- var disabled: Boolean = disabled
- set(value) {
- field = value
- refresh()
- }
+ var disabled by refreshOnUpdate(disabled)
init {
setChildrenFromOptions()
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt
index e7a49120..141eff28 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/select/SelectOption.kt
@@ -46,51 +46,27 @@ open class SelectOption(
/**
* The value of the option.
*/
- var value: String? = value
- set(value) {
- field = value
- refresh()
- }
+ var value by refreshOnUpdate(value)
/**
* The label of the option.
*/
- var label: String? = label
- set(value) {
- field = value
- refresh()
- }
+ var label by refreshOnUpdate(label)
/**
* The subtext after the label of the option.
*/
- var subtext: String? = subtext
- set(value) {
- field = value
- refresh()
- }
+ var subtext by refreshOnUpdate(subtext)
/**
* The icon before the label of the option.
*/
- var icon: String? = icon
- set(value) {
- field = value
- refresh()
- }
+ var icon by refreshOnUpdate(icon)
/**
* Determines if the option should be rendered as divider.
*/
- var divider: Boolean = divider
- set(value) {
- field = value
- refresh()
- }
+ var divider by refreshOnUpdate(divider)
/**
* Determines if the option should be disabled.
*/
- var disabled: Boolean = disabled
- set(value) {
- field = value
- refresh()
- }
+ var disabled by refreshOnUpdate(disabled)
override fun render(): VNode {
return if (!divider) {
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt
index a3f72b75..a5565d2a 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/spinner/SpinnerInput.kt
@@ -97,119 +97,62 @@ open class SpinnerInput(
/**
* Spinner value.
*/
- var value: Number? = value
- set(value) {
- field = value
- refreshState()
- }
+ var value by refreshOnUpdate(value, { refreshState() })
/**
* The value attribute of the generated HTML input element.
*
* This value is placed directly in generated HTML code, while the [value] property is dynamically
* bound to the spinner input value.
*/
- var startValue: Number? = value
- set(value) {
- field = value
- this.value = value
- refresh()
- }
+ var startValue by refreshOnUpdate(value, { this.value = it; refresh() })
/**
* Minimal value.
*/
- var min: Int = min
- set(value) {
- field = value
- refreshSpinner()
- }
+ var min by refreshOnUpdate(min, { refreshSpinner() })
/**
* Maximal value.
*/
- var max: Int = max
- set(value) {
- field = value
- refreshSpinner()
- }
+ var max by refreshOnUpdate(max, { refreshSpinner() })
/**
* Step value.
*/
- var step: Double = step
- set(value) {
- field = value
- refreshSpinner()
- }
+ var step by refreshOnUpdate(step, { refreshSpinner() })
/**
* Number of decimal digits value.
*/
- var decimals: Int = decimals
- set(value) {
- field = value
- refreshSpinner()
- }
+ var decimals by refreshOnUpdate(decimals, { refreshSpinner() })
/**
* Spinner buttons type.
*/
- var buttonsType: BUTTONSTYPE = buttonsType
- set(value) {
- field = value
- refreshSpinner()
- }
+ var buttonsType by refreshOnUpdate(buttonsType, { refreshSpinner() })
/**
* Spinner force rounding type.
*/
- var forceType: FORCETYPE = forceType
- set(value) {
- field = value
- refreshSpinner()
- }
+ var forceType by refreshOnUpdate(forceType, { refreshSpinner() })
/**
* The placeholder for the spinner input.
*/
- var placeholder: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var placeholder: String? by refreshOnUpdate()
/**
* The name attribute of the generated HTML input element.
*/
- var name: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var name: String? by refreshOnUpdate()
/**
* Determines if the field is disabled.
*/
- var disabled: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var disabled by refreshOnUpdate(false)
/**
* Determines if the spinner is automatically focused.
*/
- var autofocus: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var autofocus: Boolean? by refreshOnUpdate()
/**
* Determines if the spinner is read-only.
*/
- var readonly: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var readonly: Boolean? by refreshOnUpdate()
/**
* The size of the input.
*/
- var size: INPUTSIZE? = null
- set(value) {
- field = value
- refresh()
- }
+ var size: INPUTSIZE? by refreshOnUpdate()
private var siblings: JQuery? = null
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/text/AbstractTextInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/text/AbstractTextInput.kt
index 17a6689b..8467dab8 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/text/AbstractTextInput.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/text/AbstractTextInput.kt
@@ -50,79 +50,42 @@ abstract class AbstractTextInput(
/**
* Text input value.
*/
- var value: String? = value
- set(value) {
- field = value
- refreshState()
- }
+ var value by refreshOnUpdate(value, { refreshState() })
/**
* The value attribute of the generated HTML input element.
*
* This value is placed directly in generated HTML code, while the [value] property is dynamically
* bound to the text input value.
*/
- var startValue: String? = value
- set(value) {
- field = value
- this.value = value
- refresh()
- }
+ var startValue by refreshOnUpdate(value, { this.value = it; refresh() })
/**
* The placeholder for the text input.
*/
- var placeholder: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var placeholder: String? by refreshOnUpdate()
/**
* The name attribute of the generated HTML input element.
*/
- var name: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var name: String? by refreshOnUpdate()
/**
* Maximal length of the text input value.
*/
- var maxlength: Int? = null
- set(value) {
- field = value
- refresh()
- }
+ var maxlength: Int? by refreshOnUpdate()
/**
* Determines if the field is disabled.
*/
- var disabled: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var disabled by refreshOnUpdate(false)
/**
* Determines if the text input is automatically focused.
*/
- var autofocus: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var autofocus: Boolean? by refreshOnUpdate()
/**
* Determines if the text input is read-only.
*/
- var readonly: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var readonly: Boolean? by refreshOnUpdate()
/**
* The size of the input.
*/
- var size: INPUTSIZE? = null
- set(value) {
- field = value
- refresh()
- }
+ var size: INPUTSIZE? by refreshOnUpdate()
override fun getSnClass(): List<StringBoolPair> {
val cl = super.getSnClass().toMutableList()
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/text/TextAreaInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/text/TextAreaInput.kt
index 8ee150e1..9fc89544 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/text/TextAreaInput.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/text/TextAreaInput.kt
@@ -40,27 +40,15 @@ open class TextAreaInput(cols: Int? = null, rows: Int? = null, value: String? =
/**
* Number of columns.
*/
- var cols: Int? = cols
- set(value) {
- field = value
- refresh()
- }
+ var cols by refreshOnUpdate(cols)
/**
* Number of rows.
*/
- var rows: Int? = rows
- set(value) {
- field = value
- refresh()
- }
+ var rows by refreshOnUpdate(rows)
/**
* Determines if hard wrapping is enabled for the textarea element.
*/
- var wrapHard: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var wrapHard by refreshOnUpdate(false)
override fun render(): VNode {
return startValue?.let {
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/text/TextInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/text/TextInput.kt
index a2bfcd0b..998bfb2c 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/text/TextInput.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/text/TextInput.kt
@@ -52,19 +52,11 @@ open class TextInput(type: TEXTINPUTTYPE = TEXTINPUTTYPE.TEXT, value: String? =
/**
* Text input type.
*/
- var type: TEXTINPUTTYPE = type
- set(value) {
- field = value
- refresh()
- }
+ var type by refreshOnUpdate(type)
/**
* Determines if autocomplete is enabled for the input element.
*/
- var autocomplete: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var autocomplete: Boolean? by refreshOnUpdate()
override fun render(): VNode {
return render("input")
diff --git a/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt b/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
index c198ec77..3eeec789 100644
--- a/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
@@ -60,123 +60,63 @@ open class DateTimeInput(
/**
* Date/time input value.
*/
- var value: Date? = value
- set(value) {
- field = value
- refreshState()
- }
+ var value by refreshOnUpdate(value, { refreshState() })
/**
* Date/time format.
*/
- var format: String = format
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var format by refreshOnUpdate(format, { refreshDatePicker() })
/**
* The placeholder for the date/time input.
*/
- var placeholder: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var placeholder: String? by refreshOnUpdate()
/**
* The name attribute of the generated HTML input element.
*/
- var name: String? = null
- set(value) {
- field = value
- refresh()
- }
+ var name: String? by refreshOnUpdate()
/**
* Determines if the field is disabled.
*/
- var disabled: Boolean = false
- set(value) {
- field = value
- refresh()
- }
+ var disabled by refreshOnUpdate(false)
/**
* Determines if the text input is automatically focused.
*/
- var autofocus: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var autofocus: Boolean? by refreshOnUpdate()
/**
* Determines if the date/time input is read-only.
*/
- var readonly: Boolean? = null
- set(value) {
- field = value
- refresh()
- }
+ var readonly: Boolean? by refreshOnUpdate()
/**
* The size of the input.
*/
- var size: INPUTSIZE? = null
- set(value) {
- field = value
- refresh()
- }
+ var size: INPUTSIZE? by refreshOnUpdate()
/**
* Day of the week start. 0 (Sunday) to 6 (Saturday).
*/
- var weekStart: Int = 0
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var weekStart by refreshOnUpdate(0, { refreshDatePicker() })
/**
* Days of the week that should be disabled. Multiple values should be comma separated.
*/
- var daysOfWeekDisabled: Array<Int> = arrayOf()
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var daysOfWeekDisabled by refreshOnUpdate(arrayOf<Int>(), { refreshDatePicker() })
/**
* Determines if *Clear* button should be visible.
*/
- var clearBtn: Boolean = true
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var clearBtn by refreshOnUpdate(true, { refreshDatePicker() })
/**
* Determines if *Today* button should be visible.
*/
- var todayBtn: Boolean = false
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var todayBtn by refreshOnUpdate(false, { refreshDatePicker() })
/**
* Determines if the current day should be highlighted.
*/
- var todayHighlight: Boolean = false
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var todayHighlight by refreshOnUpdate(false, { refreshDatePicker() })
/**
* The increment used to build the hour view.
*/
- var minuteStep: Int = DEFAULT_MINUTE_STEP
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var minuteStep by refreshOnUpdate(DEFAULT_MINUTE_STEP, { refreshDatePicker() })
/**
* Determines if meridian views are visible in day and hour views.
*/
- var showMeridian: Boolean = false
- set(value) {
- field = value
- refreshDatePicker()
- }
+ var showMeridian by refreshOnUpdate(false, { refreshDatePicker() })
override fun render(): VNode {
return render("input")