Skip to content

Commit dc6731a

Browse files
authored
Deprecate isinteger, fix and simplify spinbox and rangeslider (#138)
* move input to widgets * simplify * fix js error * bump widgets dependency
1 parent 947025f commit dc6731a

File tree

3 files changed

+9
-19
lines changed

3 files changed

+9
-19
lines changed

REQUIRE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ CSSUtil
77
Colors
88
JSON
99
Knockout 0.2.1
10-
Widgets 0.6.0
10+
Widgets 0.6.1

src/input.jl

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,17 @@ Create a widget to select numbers with placeholder `label`. An optional `range`
185185
specifies maximum and minimum value accepted as well as the step.
186186
"""
187187
function spinbox(::WidgetTheme, label=""; value=nothing, placeholder=label, isinteger=nothing, kwargs...)
188-
isinteger = something(isinteger, isa(_val(value), Integer))
189-
T = isinteger ? Int : Float64
190-
(value isa AbstractObservable) || (value = Observable{Union{T, Nothing}}(value))
188+
isinteger === nothing || @warn "`isinteger` is deprecated"
189+
if !isa(value, AbstractObservable)
190+
T = something(isinteger, isa(value, Integer)) ? Int : Float64
191+
value = Observable{Union{T, Nothing}}(value)
192+
end
191193
ui = input(value; isnumeric=true, placeholder=placeholder, typ="number", kwargs...)
192194
Widget{:spinbox}(ui, output = value)
193195
end
194196

195-
spinbox(T::WidgetTheme, vals::AbstractRange, args...; value=first(vals), isinteger=(eltype(vals) <: Integer), kwargs...) =
196-
spinbox(T, args...; value=value, isinteger=isinteger, min=minimum(vals), max=maximum(vals), step=step(vals), kwargs...)
197+
spinbox(T::WidgetTheme, vals::AbstractRange, args...; value=first(vals), kwargs...) =
198+
spinbox(T, args...; value=value, min=minimum(vals), max=maximum(vals), step=step(vals), kwargs...)
197199

198200
"""
199201
`autocomplete(options, label=""; value="")`
@@ -260,17 +262,6 @@ function input(::WidgetTheme; typ="text", kwargs...)
260262
input(o; typ=typ, kwargs...)
261263
end
262264

263-
function input(T::WidgetTheme, ::Type{S}, args...; isinteger=nothing, kwargs...) where {S<:Number}
264-
(isinteger === nothing) && (isinteger = S<:Integer ? true : S<:AbstractFloat ? false : nothing)
265-
spinbox(T, args...; isinteger=isinteger, kwargs...)
266-
end
267-
268-
input(T::WidgetTheme, ::Type{<:Bool}, args...; kwargs...) = toggle(T, args...; kwargs...)
269-
input(T::WidgetTheme, ::Type{<:AbstractString}, args...; kwargs...) = textbox(T, args...; kwargs...)
270-
input(T::WidgetTheme, ::Type{<:Dates.Date}, args...; kwargs...) = datepicker(T, args...; kwargs...)
271-
input(T::WidgetTheme, ::Type{<:Dates.Time}, args...; kwargs...) = timepicker(T, args...; kwargs...)
272-
input(T::WidgetTheme, ::Type{<:Color}, args...; kwargs...) = colorpicker(T, args...; kwargs...)
273-
274265
"""
275266
`button(content... = "Press me!"; value=0)`
276267

src/slider.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ function rangeslider(theme::WidgetTheme, vals::AbstractRange{<:Integer}, formatt
142142
slap_design!(scp)
143143
onjs(index, @js function (val)
144144
if !$fromJS[]
145-
new_val = Array.isArray(val) ? val : [val]
146-
document.getElementById($id).noUiSlider.set(new_val)
145+
document.getElementById($id).noUiSlider.set(Array.isArray(val) ? val : [val])
147146
end
148147
$fromJS[] = false
149148
end)

0 commit comments

Comments
 (0)