]>
git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/static/AdminLTE-2.3.7/plugins/ionslider/ion.rangeSlider.min.js
1 // Ion.RangeSlider | version 2.1.2 | https://github.com/IonDen/ion.rangeSlider
2 ;( function ( f
, r
, h
, t
, v
){ var u
= 0 , p = function (){ var a
= t
. userAgent
, b
= /msie\s\d+/i ; return 0 < a
. search ( b
)&&( a
= b
. exec ( a
). toString (), a
= a
. split ( " " )[ 1 ], 9 > a
)?( f ( "html" ). addClass ( "lt-ie9" ),! 0 ):! 1 }(); Function
. prototype . bind
||( Function
. prototype . bind = function ( a
){ var b
= this , d
=[]. slice
; if ( "function" != typeof b
) throw new TypeError
; var c
= d
. call ( arguments
, 1 ), e = function (){ if ( this instanceof e
){ var g = function (){}; g
. prototype = b
. prototype ; var g
= new g
, l
= b
. apply ( g
, c
. concat ( d
. call ( arguments
))); return Object ( l
)=== l
? l
: g
} return b
. apply ( a
,
3 c
. concat ( d
. call ( arguments
)))}; return e
}); Array
. prototype . indexOf
||( Array
. prototype . indexOf = function ( a
, b
){ var d
; if ( null == this ) throw new TypeError ( '"this" is null or not defined' ); var c
= Object ( this ), e
= c
. length
>>> 0 ; if ( 0 === e
) return - 1 ; d
=+ b
|| 0 ; Infinity
=== Math
. abs ( d
)&&( d
= 0 ); if ( d
>= e
) return - 1 ; for ( d
= Math
. max ( 0 <= d
? d
: e
- Math
. abs ( d
), 0 ); d
< e
;){ if ( d
in c
&& c
[ d
]=== a
) return d
; d
++} return - 1 }); var q = function ( a
, b
, d
){ this . VERSION
= "2.1.2" ; this . input
= a
; this . plugin_count
= d
; this . old_to
= this . old_from
= this . update_tm
= this . calc_count
=
4 this . current_plugin
= 0 ; this . raf_id
= this . old_min_interval
= null ; this . is_update
= this . is_key
= this . no_diapason
= this . force_redraw
= this . dragging
=! 1 ; this . is_start
=! 0 ; this . is_click
= this . is_resize
= this . is_active
= this . is_finish
=! 1 ; this .$ cache
={ win
: f ( h
), body
: f ( r
. body
), input
: f ( a
), cont
: null , rs
: null , min
: null , max
: null , from : null , to
: null , single
: null , bar
: null , line
: null , s_single
: null , s_from
: null , s_to
: null , shad_single
: null , shad_from
: null , shad_to
: null , edge
: null , grid
: null , grid_labels
:[]}; this . coords
={ x_gap
: 0 , x_pointer
: 0 ,
5 w_rs
: 0 , w_rs_old
: 0 , w_handle
: 0 , p_gap
: 0 , p_gap_left
: 0 , p_gap_right
: 0 , p_step
: 0 , p_pointer
: 0 , p_handle
: 0 , p_single_fake
: 0 , p_single_real
: 0 , p_from_fake
: 0 , p_from_real
: 0 , p_to_fake
: 0 , p_to_real
: 0 , p_bar_x
: 0 , p_bar_w
: 0 , grid_gap
: 0 , big_num
: 0 , big
:[], big_w
:[], big_p
:[], big_x
:[]}; this . labels
={ w_min
: 0 , w_max
: 0 , w_from
: 0 , w_to
: 0 , w_single
: 0 , p_min
: 0 , p_max
: 0 , p_from_fake
: 0 , p_from_left
: 0 , p_to_fake
: 0 , p_to_left
: 0 , p_single_fake
: 0 , p_single_left
: 0 }; var c
= this .$ cache
. input
; a
= c
. prop ( "value" ); var e
; d
={ type
: "single" , min
: 10 , max
: 100 , from : null ,
6 to
: null , step
: 1 , min_interval
: 0 , max_interval
: 0 , drag_interval
:! 1 , values
:[], p_values
:[], from_fixed
:! 1 , from_min
: null , from_max
: null , from_shadow
:! 1 , to_fixed
:! 1 , to_min
: null , to_max
: null , to_shadow
:! 1 , prettify_enabled
:! 0 , prettify_separator
: " " , prettify
: null , force_edges
:! 1 , keyboard
:! 1 , keyboard_step
: 5 , grid
:! 1 , grid_margin
:! 0 , grid_num
: 4 , grid_snap
:! 1 , hide_min_max
:! 1 , hide_from_to
:! 1 , prefix
: "" , postfix
: "" , max_postfix
: "" , decorate_both
:! 0 , values_separator
: " \u2014 " , input_values_separator
: ";" , disable
:! 1 , onStart
: null ,
7 onChange
: null , onFinish
: null , onUpdate
: null }; c
={ type
: c
. data ( "type" ), min
: c
. data ( "min" ), max
: c
. data ( "max" ), from : c
. data ( "from" ), to
: c
. data ( "to" ), step
: c
. data ( "step" ), min_interval
: c
. data ( "minInterval" ), max_interval
: c
. data ( "maxInterval" ), drag_interval
: c
. data ( "dragInterval" ), values
: c
. data ( "values" ), from_fixed
: c
. data ( "fromFixed" ), from_min
: c
. data ( "fromMin" ), from_max
: c
. data ( "fromMax" ), from_shadow
: c
. data ( "fromShadow" ), to_fixed
: c
. data ( "toFixed" ), to_min
: c
. data ( "toMin" ), to_max
: c
. data ( "toMax" ), to_shadow
: c
. data ( "toShadow" ),
8 prettify_enabled
: c
. data ( "prettifyEnabled" ), prettify_separator
: c
. data ( "prettifySeparator" ), force_edges
: c
. data ( "forceEdges" ), keyboard
: c
. data ( "keyboard" ), keyboard_step
: c
. data ( "keyboardStep" ), grid
: c
. data ( "grid" ), grid_margin
: c
. data ( "gridMargin" ), grid_num
: c
. data ( "gridNum" ), grid_snap
: c
. data ( "gridSnap" ), hide_min_max
: c
. data ( "hideMinMax" ), hide_from_to
: c
. data ( "hideFromTo" ), prefix
: c
. data ( "prefix" ), postfix
: c
. data ( "postfix" ), max_postfix
: c
. data ( "maxPostfix" ), decorate_both
: c
. data ( "decorateBoth" ), values_separator
: c
. data ( "valuesSeparator" ),
9 input_values_separator
: c
. data ( "inputValuesSeparator" ), disable
: c
. data ( "disable" )}; c
. values
= c
. values
&& c
. values
. split ( "," ); for ( e
in c
) c
. hasOwnProperty ( e
)&&( c
[ e
]|| 0 === c
[ e
]|| delete c
[ e
]); a
&&( a
= a
. split ( c
. input_values_separator
|| b
. input_values_separator
|| ";" ), a
[ 0 ]&& a
[ 0 ]==+ a
[ 0 ]&&( a
[ 0 ]=+ a
[ 0 ]), a
[ 1 ]&& a
[ 1 ]==+ a
[ 1 ]&&( a
[ 1 ]=+ a
[ 1 ]), b
&& b
. values
&& b
. values
. length
?( d
. from = a
[ 0 ]&& b
. values
. indexOf ( a
[ 0 ]), d
. to
= a
[ 1 ]&& b
. values
. indexOf ( a
[ 1 ])):( d
. from = a
[ 0 ]&&+ a
[ 0 ], d
. to
= a
[ 1 ]&&+ a
[ 1 ])); f
. extend ( d
, b
); f
. extend ( d
, c
); this . options
= d
; this . validate ();
10 this . result
={ input
: this .$ cache
. input
, slider
: null , min
: this . options
. min
, max
: this . options
. max
, from : this . options
. from , from_percent
: 0 , from_value
: null , to
: this . options
. to
, to_percent
: 0 , to_value
: null }; this . init ()}; q
. prototype ={ init : function ( a
){ this . no_diapason
=! 1 ; this . coords
. p_step
= this . convertToPercent ( this . options
. step
,! 0 ); this . target
= "base" ; this . toggleInput (); this . append (); this . setMinMax (); a
?( this . force_redraw
=! 0 , this . calc (! 0 ), this . callOnUpdate ()):( this . force_redraw
=! 0 , this . calc (! 0 ), this . callOnStart ());
11 this . updateScene ()}, append : function (){ this .$ cache
. input
. before ( '<span class="irs js-irs-' + this . plugin_count
+ '"></span>' ); this .$ cache
. input
. prop ( "readonly" ,! 0 ); this .$ cache
. cont
= this .$ cache
. input
. prev (); this . result
. slider
= this .$ cache
. cont
; this .$ cache
. cont
. html ( '<span class="irs"><span class="irs-line" tabindex="-1"><span class="irs-line-left"></span><span class="irs-line-mid"></span><span class="irs-line-right"></span></span><span class="irs-min">0</span><span class="irs-max">1</span><span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span></span><span class="irs-grid"></span><span class="irs-bar"></span>' );
12 this .$ cache
. rs
= this .$ cache
. cont
. find ( ".irs" ); this .$ cache
. min
= this .$ cache
. cont
. find ( ".irs-min" ); this .$ cache
. max
= this .$ cache
. cont
. find ( ".irs-max" ); this .$ cache
. from = this .$ cache
. cont
. find ( ".irs-from" ); this .$ cache
. to
= this .$ cache
. cont
. find ( ".irs-to" ); this .$ cache
. single
= this .$ cache
. cont
. find ( ".irs-single" ); this .$ cache
. bar
= this .$ cache
. cont
. find ( ".irs-bar" ); this .$ cache
. line
= this .$ cache
. cont
. find ( ".irs-line" ); this .$ cache
. grid
= this .$ cache
. cont
. find ( ".irs-grid" ); "single" === this . options
. type
?( this .$ cache
. cont
. append ( '<span class="irs-bar-edge"></span><span class="irs-shadow shadow-single"></span><span class="irs-slider single"></span>' ),
13 this .$ cache
. edge
= this .$ cache
. cont
. find ( ".irs-bar-edge" ), this .$ cache
. s_single
= this .$ cache
. cont
. find ( ".single" ), this .$ cache
. from [ 0 ]. style
. visibility
= "hidden" , this .$ cache
. to
[ 0 ]. style
. visibility
= "hidden" , this .$ cache
. shad_single
= this .$ cache
. cont
. find ( ".shadow-single" )):( this .$ cache
. cont
. append ( '<span class="irs-shadow shadow-from"></span><span class="irs-shadow shadow-to"></span><span class="irs-slider from"></span><span class="irs-slider to"></span>' ), this .$ cache
. s_from
= this .$ cache
. cont
. find ( ".from" ),
14 this .$ cache
. s_to
= this .$ cache
. cont
. find ( ".to" ), this .$ cache
. shad_from
= this .$ cache
. cont
. find ( ".shadow-from" ), this .$ cache
. shad_to
= this .$ cache
. cont
. find ( ".shadow-to" ), this . setTopHandler ()); this . options
. hide_from_to
&&( this .$ cache
. from [ 0 ]. style
. display
= "none" , this .$ cache
. to
[ 0 ]. style
. display
= "none" , this .$ cache
. single
[ 0 ]. style
. display
= "none" ); this . appendGrid (); this . options
. disable
?( this . appendDisableMask (), this .$ cache
. input
[ 0 ]. disabled
=! 0 ):( this .$ cache
. cont
. removeClass ( "irs-disabled" ), this .$ cache
. input
[ 0 ]. disabled
=
15 ! 1 , this . bindEvents ()); this . options
. drag_interval
&&( this .$ cache
. bar
[ 0 ]. style
. cursor
= "ew-resize" )}, setTopHandler : function (){ var a
= this . options
. max
, b
= this . options
. to
; this . options
. from > this . options
. min
&& b
=== a
? this .$ cache
. s_from
. addClass ( "type_last" ): b
< a
&& this .$ cache
. s_to
. addClass ( "type_last" )}, changeLevel : function ( a
){ switch ( a
){ case "single" : this . coords
. p_gap
= this . toFixed ( this . coords
. p_pointer
- this . coords
. p_single_fake
); break ; case "from" : this . coords
. p_gap
= this . toFixed ( this . coords
. p_pointer
- this . coords
. p_from_fake
);
16 this .$ cache
. s_from
. addClass ( "state_hover" ); this .$ cache
. s_from
. addClass ( "type_last" ); this .$ cache
. s_to
. removeClass ( "type_last" ); break ; case "to" : this . coords
. p_gap
= this . toFixed ( this . coords
. p_pointer
- this . coords
. p_to_fake
); this .$ cache
. s_to
. addClass ( "state_hover" ); this .$ cache
. s_to
. addClass ( "type_last" ); this .$ cache
. s_from
. removeClass ( "type_last" ); break ; case "both" : this . coords
. p_gap_left
= this . toFixed ( this . coords
. p_pointer
- this . coords
. p_from_fake
), this . coords
. p_gap_right
= this . toFixed ( this . coords
. p_to_fake
-
17 this . coords
. p_pointer
), this .$ cache
. s_to
. removeClass ( "type_last" ), this .$ cache
. s_from
. removeClass ( "type_last" )}}, appendDisableMask : function (){ this .$ cache
. cont
. append ( '<span class="irs-disable-mask"></span>' ); this .$ cache
. cont
. addClass ( "irs-disabled" )}, remove : function (){ this .$ cache
. cont
. remove (); this .$ cache
. cont
= null ; this .$ cache
. line
. off ( "keydown.irs_" + this . plugin_count
); this .$ cache
. body
. off ( "touchmove.irs_" + this . plugin_count
); this .$ cache
. body
. off ( "mousemove.irs_" + this . plugin_count
); this .$ cache
. win
. off ( "touchend.irs_" +
18 this . plugin_count
); this .$ cache
. win
. off ( "mouseup.irs_" + this . plugin_count
); p
&&( this .$ cache
. body
. off ( "mouseup.irs_" + this . plugin_count
), this .$ cache
. body
. off ( "mouseleave.irs_" + this . plugin_count
)); this .$ cache
. grid_labels
=[]; this . coords
. big
=[]; this . coords
. big_w
=[]; this . coords
. big_p
=[]; this . coords
. big_x
=[]; cancelAnimationFrame ( this . raf_id
)}, bindEvents : function (){ if (! this . no_diapason
){ this .$ cache
. body
. on ( "touchmove.irs_" + this . plugin_count
, this . pointerMove
. bind ( this )); this .$ cache
. body
. on ( "mousemove.irs_" + this . plugin_count
,
19 this . pointerMove
. bind ( this )); this .$ cache
. win
. on ( "touchend.irs_" + this . plugin_count
, this . pointerUp
. bind ( this )); this .$ cache
. win
. on ( "mouseup.irs_" + this . plugin_count
, this . pointerUp
. bind ( this )); this .$ cache
. line
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )); this .$ cache
. line
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )); this . options
. drag_interval
&& "double" === this . options
. type
?( this .$ cache
. bar
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerDown
. bind ( this ,
20 "both" )), this .$ cache
. bar
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "both" ))):( this .$ cache
. bar
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )), this .$ cache
. bar
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" ))); "single" === this . options
. type
?( this .$ cache
. single
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "single" )), this .$ cache
. s_single
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "single" )),
21 this .$ cache
. shad_single
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )), this .$ cache
. single
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "single" )), this .$ cache
. s_single
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "single" )), this .$ cache
. edge
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )), this .$ cache
. shad_single
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" ))):( this .$ cache
. single
. on ( "touchstart.irs_" +
22 this . plugin_count
, this . pointerDown
. bind ( this , null )), this .$ cache
. single
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , null )), this .$ cache
. from . on ( "touchstart.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "from" )), this .$ cache
. s_from
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "from" )), this .$ cache
. to
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "to" )), this .$ cache
. s_to
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "to" )),
23 this .$ cache
. shad_from
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )), this .$ cache
. shad_to
. on ( "touchstart.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )), this .$ cache
. from . on ( "mousedown.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "from" )), this .$ cache
. s_from
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "from" )), this .$ cache
. to
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerDown
. bind ( this , "to" )), this .$ cache
. s_to
. on ( "mousedown.irs_" +
24 this . plugin_count
, this . pointerDown
. bind ( this , "to" )), this .$ cache
. shad_from
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" )), this .$ cache
. shad_to
. on ( "mousedown.irs_" + this . plugin_count
, this . pointerClick
. bind ( this , "click" ))); if ( this . options
. keyboard
) this .$ cache
. line
. on ( "keydown.irs_" + this . plugin_count
, this . key
. bind ( this , "keyboard" )); p
&&( this .$ cache
. body
. on ( "mouseup.irs_" + this . plugin_count
, this . pointerUp
. bind ( this )), this .$ cache
. body
. on ( "mouseleave.irs_" + this . plugin_count
, this . pointerUp
. bind ( this )))}},
25 pointerMove : function ( a
){ this . dragging
&&( this . coords
. x_pointer
=( a
. pageX
|| a
. originalEvent
. touches
&& a
. originalEvent
. touches
[ 0 ]. pageX
)- this . coords
. x_gap
, this . calc ())}, pointerUp : function ( a
){ if ( this . current_plugin
=== this . plugin_count
&& this . is_active
){ this . is_active
=! 1 ; this .$ cache
. cont
. find ( ".state_hover" ). removeClass ( "state_hover" ); this . force_redraw
=! 0 ; p
&& f ( "*" ). prop ( "unselectable" ,! 1 ); this . updateScene (); this . restoreOriginalMinInterval (); if ( f
. contains ( this .$ cache
. cont
[ 0 ], a
. target
)|| this . dragging
) this . is_finish
=
26 ! 0 , this . callOnFinish (); this . dragging
=! 1 }}, pointerDown : function ( a
, b
){ b
. preventDefault (); var d
= b
. pageX
|| b
. originalEvent
. touches
&& b
. originalEvent
. touches
[ 0 ]. pageX
; 2 !== b
. button
&&( "both" === a
&& this . setTempMinInterval (), a
||( a
= this . target
), this . current_plugin
= this . plugin_count
, this . target
= a
, this . dragging
= this . is_active
=! 0 , this . coords
. x_gap
= this .$ cache
. rs
. offset (). left
, this . coords
. x_pointer
= d
- this . coords
. x_gap
, this . calcPointerPercent (), this . changeLevel ( a
), p
&& f ( "*" ). prop ( "unselectable" ,! 0 ), this .$ cache
. line
. trigger ( "focus" ),
27 this . updateScene ())}, pointerClick : function ( a
, b
){ b
. preventDefault (); var d
= b
. pageX
|| b
. originalEvent
. touches
&& b
. originalEvent
. touches
[ 0 ]. pageX
; 2 !== b
. button
&&( this . current_plugin
= this . plugin_count
, this . target
= a
, this . is_click
=! 0 , this . coords
. x_gap
= this .$ cache
. rs
. offset (). left
, this . coords
. x_pointer
=+( d
- this . coords
. x_gap
). toFixed (), this . force_redraw
=! 0 , this . calc (), this .$ cache
. line
. trigger ( "focus" ))}, key : function ( a
, b
){ if (!( this . current_plugin
!== this . plugin_count
|| b
. altKey
|| b
. ctrlKey
|| b
. shiftKey
|| b
. metaKey
)){ switch ( b
. which
){ case 83 : case 65 : case 40 : case 37 : b
. preventDefault ();
28 this . moveByKey (! 1 ); break ; case 87 : case 68 : case 38 : case 39 : b
. preventDefault (), this . moveByKey (! 0 )} return ! 0 }}, moveByKey : function ( a
){ var b
= this . coords
. p_pointer
, b
= a
? b
+ this . options
. keyboard_step
: b
- this . options
. keyboard_step
; this . coords
. x_pointer
= this . toFixed ( this . coords
. w_rs
/ 100 * b
); this . is_key
=! 0 ; this . calc ()}, setMinMax : function (){ this . options
&&( this . options
. hide_min_max
?( this .$ cache
. min
[ 0 ]. style
. display
= "none" , this .$ cache
. max
[ 0 ]. style
. display
= "none" ):( this . options
. values
. length
?( this .$ cache
. min
. html ( this . decorate ( this . options
. p_values
[ this . options
. min
])),
29 this .$ cache
. max
. html ( this . decorate ( this . options
. p_values
[ this . options
. max
]))):( this .$ cache
. min
. html ( this . decorate ( this . _prettify ( this . options
. min
), this . options
. min
)), this .$ cache
. max
. html ( this . decorate ( this . _prettify ( this . options
. max
), this . options
. max
))), this . labels
. w_min
= this .$ cache
. min
. outerWidth (! 1 ), this . labels
. w_max
= this .$ cache
. max
. outerWidth (! 1 )))}, setTempMinInterval : function (){ var a
= this . result
. to
- this . result
. from ; null === this . old_min_interval
&&( this . old_min_interval
= this . options
. min_interval
);
30 this . options
. min_interval
= a
}, restoreOriginalMinInterval : function (){ null !== this . old_min_interval
&&( this . options
. min_interval
= this . old_min_interval
, this . old_min_interval
= null )}, calc : function ( a
){ if ( this . options
){ this . calc_count
++; if ( 10 === this . calc_count
|| a
) this . calc_count
= 0 , this . coords
. w_rs
= this .$ cache
. rs
. outerWidth (! 1 ), this . calcHandlePercent (); if ( this . coords
. w_rs
){ this . calcPointerPercent (); a
= this . getHandleX (); "click" === this . target
&&( this . coords
. p_gap
= this . coords
. p_handle
/ 2 , a
= this . getHandleX (), this . target
=
31 this . options
. drag_interval
? "both_one" : this . chooseHandle ( a
)); switch ( this . target
){ case "base" : var b
=( this . options
. max
- this . options
. min
) /100;a=(this.result.from-this.options.min)/ b
; b
=( this . result
. to
- this . options
. min
)/ b
; this . coords
. p_single_real
= this . toFixed ( a
); this . coords
. p_from_real
= this . toFixed ( a
); this . coords
. p_to_real
= this . toFixed ( b
); this . coords
. p_single_real
= this . checkDiapason ( this . coords
. p_single_real
, this . options
. from_min
, this . options
. from_max
); this . coords
. p_from_real
= this . checkDiapason ( this . coords
. p_from_real
,
32 this . options
. from_min
, this . options
. from_max
); this . coords
. p_to_real
= this . checkDiapason ( this . coords
. p_to_real
, this . options
. to_min
, this . options
. to_max
); this . coords
. p_single_fake
= this . convertToFakePercent ( this . coords
. p_single_real
); this . coords
. p_from_fake
= this . convertToFakePercent ( this . coords
. p_from_real
); this . coords
. p_to_fake
= this . convertToFakePercent ( this . coords
. p_to_real
); this . target
= null ; break ; case "single" : if ( this . options
. from_fixed
) break ; this . coords
. p_single_real
= this . convertToRealPercent ( a
); this . coords
. p_single_real
=
33 this . calcWithStep ( this . coords
. p_single_real
); this . coords
. p_single_real
= this . checkDiapason ( this . coords
. p_single_real
, this . options
. from_min
, this . options
. from_max
); this . coords
. p_single_fake
= this . convertToFakePercent ( this . coords
. p_single_real
); break ; case "from" : if ( this . options
. from_fixed
) break ; this . coords
. p_from_real
= this . convertToRealPercent ( a
); this . coords
. p_from_real
= this . calcWithStep ( this . coords
. p_from_real
); this . coords
. p_from_real
> this . coords
. p_to_real
&&( this . coords
. p_from_real
= this . coords
. p_to_real
);
34 this . coords
. p_from_real
= this . checkDiapason ( this . coords
. p_from_real
, this . options
. from_min
, this . options
. from_max
); this . coords
. p_from_real
= this . checkMinInterval ( this . coords
. p_from_real
, this . coords
. p_to_real
, "from" ); this . coords
. p_from_real
= this . checkMaxInterval ( this . coords
. p_from_real
, this . coords
. p_to_real
, "from" ); this . coords
. p_from_fake
= this . convertToFakePercent ( this . coords
. p_from_real
); break ; case "to" : if ( this . options
. to_fixed
) break ; this . coords
. p_to_real
= this . convertToRealPercent ( a
); this . coords
. p_to_real
=
35 this . calcWithStep ( this . coords
. p_to_real
); this . coords
. p_to_real
< this . coords
. p_from_real
&&( this . coords
. p_to_real
= this . coords
. p_from_real
); this . coords
. p_to_real
= this . checkDiapason ( this . coords
. p_to_real
, this . options
. to_min
, this . options
. to_max
); this . coords
. p_to_real
= this . checkMinInterval ( this . coords
. p_to_real
, this . coords
. p_from_real
, "to" ); this . coords
. p_to_real
= this . checkMaxInterval ( this . coords
. p_to_real
, this . coords
. p_from_real
, "to" ); this . coords
. p_to_fake
= this . convertToFakePercent ( this . coords
. p_to_real
);
36 break ; case "both" : if ( this . options
. from_fixed
|| this . options
. to_fixed
) break ; a
= this . toFixed ( a
+ .1 * this . coords
. p_handle
); this . coords
. p_from_real
= this . convertToRealPercent ( a
)- this . coords
. p_gap_left
; this . coords
. p_from_real
= this . calcWithStep ( this . coords
. p_from_real
); this . coords
. p_from_real
= this . checkDiapason ( this . coords
. p_from_real
, this . options
. from_min
, this . options
. from_max
); this . coords
. p_from_real
= this . checkMinInterval ( this . coords
. p_from_real
, this . coords
. p_to_real
, "from" ); this . coords
. p_from_fake
= this . convertToFakePercent ( this . coords
. p_from_real
);
37 this . coords
. p_to_real
= this . convertToRealPercent ( a
)+ this . coords
. p_gap_right
; this . coords
. p_to_real
= this . calcWithStep ( this . coords
. p_to_real
); this . coords
. p_to_real
= this . checkDiapason ( this . coords
. p_to_real
, this . options
. to_min
, this . options
. to_max
); this . coords
. p_to_real
= this . checkMinInterval ( this . coords
. p_to_real
, this . coords
. p_from_real
, "to" ); this . coords
. p_to_fake
= this . convertToFakePercent ( this . coords
. p_to_real
); break ; case "both_one" : if ( this . options
. from_fixed
|| this . options
. to_fixed
) break ; var d
= this . convertToRealPercent ( a
);
38 a
= this . result
. to_percent
- this . result
. from_percent
; var c
= a
/ 2 , b
= d
- c
, d
= d
+ c
; 0 > b
&&( b
= 0 , d
= b
+ a
); 100 < d
&&( d
= 100 , b
= d
- a
); this . coords
. p_from_real
= this . calcWithStep ( b
); this . coords
. p_from_real
= this . checkDiapason ( this . coords
. p_from_real
, this . options
. from_min
, this . options
. from_max
); this . coords
. p_from_fake
= this . convertToFakePercent ( this . coords
. p_from_real
); this . coords
. p_to_real
= this . calcWithStep ( d
); this . coords
. p_to_real
= this . checkDiapason ( this . coords
. p_to_real
, this . options
. to_min
, this . options
. to_max
); this . coords
. p_to_fake
=
39 this . convertToFakePercent ( this . coords
. p_to_real
)} "single" === this . options
. type
?( this . coords
. p_bar_x
= this . coords
. p_handle
/2,this.coords.p_bar_w=this.coords.p_single_fake,this.result.from_percent=this.coords.p_single_real,this.result.from=this.convertToValue(this.coords.p_single_real),this.options.values.length&&(this.result.from_value=this.options.values[this.result.from])):(this.coords.p_bar_x=this.toFixed(this.coords.p_from_fake+this.coords.p_handle/ 2 ), this . coords
. p_bar_w
= this . toFixed ( this . coords
. p_to_fake
-
40 this . coords
. p_from_fake
), this . result
. from_percent
= this . coords
. p_from_real
, this . result
. from = this . convertToValue ( this . coords
. p_from_real
), this . result
. to_percent
= this . coords
. p_to_real
, this . result
. to
= this . convertToValue ( this . coords
. p_to_real
), this . options
. values
. length
&&( this . result
. from_value
= this . options
. values
[ this . result
. from ], this . result
. to_value
= this . options
. values
[ this . result
. to
])); this . calcMinMax (); this . calcLabels ()}}}, calcPointerPercent : function (){ this . coords
. w_rs
?( 0 > this . coords
. x_pointer
|| isNaN ( this . coords
. x_pointer
)?
41 this . coords
. x_pointer
= 0 : this . coords
. x_pointer
> this . coords
. w_rs
&&( this . coords
. x_pointer
= this . coords
. w_rs
), this . coords
. p_pointer
= this . toFixed ( this . coords
. x_pointer
/this.coords.w_rs*100)):this.coords.p_pointer=0},convertToRealPercent:function(a){return a/ ( 100 - this . coords
. p_handle
)* 100 }, convertToFakePercent : function ( a
){ return a
/ 100 *( 100 - this . coords
. p_handle
)}, getHandleX : function (){ var a
= 100 - this . coords
. p_handle
, b
= this . toFixed ( this . coords
. p_pointer
- this . coords
. p_gap
); 0 > b
? b
= 0 : b
> a
&&( b
= a
); return b
}, calcHandlePercent : function (){ this . coords
. w_handle
=
42 "single" === this . options
. type
? this .$ cache
. s_single
. outerWidth (! 1 ): this .$ cache
. s_from
. outerWidth (! 1 ); this . coords
. p_handle
= this . toFixed ( this . coords
. w_handle
/this.coords.w_rs*100)},chooseHandle:function(a){return"single"===this.options.type?"single":a>=this.coords.p_from_real+(this.coords.p_to_real-this.coords.p_from_real)/ 2 ? this . options
. to_fixed
? "from" : "to" : this . options
. from_fixed
? "to" : "from" }, calcMinMax : function (){ this . coords
. w_rs
&&( this . labels
. p_min
= this . labels
. w_min
/ this . coords
. w_rs
* 100 , this . labels
. p_max
=
43 this . labels
. w_max
/this.coords.w_rs*100)},calcLabels:function(){this.coords.w_rs&&!this.options.hide_from_to&&("single"===this.options.type?(this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/ this . coords
. w_rs
* 100 , this . labels
. p_single_left
= this . coords
. p_single_fake
+ this . coords
. p_handle
/2-this.labels.p_single_fake/ 2 ):( this . labels
. w_from
= this .$ cache
. from . outerWidth (! 1 ), this . labels
. p_from_fake
= this . labels
. w_from
/ this . coords
. w_rs
* 100 , this . labels
. p_from_left
=
44 this . coords
. p_from_fake
+ this . coords
. p_handle
/2-this.labels.p_from_fake/ 2 , this . labels
. p_from_left
= this . toFixed ( this . labels
. p_from_left
), this . labels
. p_from_left
= this . checkEdges ( this . labels
. p_from_left
, this . labels
. p_from_fake
), this . labels
. w_to
= this .$ cache
. to
. outerWidth (! 1 ), this . labels
. p_to_fake
= this . labels
. w_to
/this.coords.w_rs*100,this.labels.p_to_left=this.coords.p_to_fake+this.coords.p_handle/ 2 - this . labels
. p_to_fake
/ 2 , this . labels
. p_to_left
= this . toFixed ( this . labels
. p_to_left
), this . labels
. p_to_left
=
45 this . checkEdges ( this . labels
. p_to_left
, this . labels
. p_to_fake
), this . labels
. w_single
= this .$ cache
. single
. outerWidth (! 1 ), this . labels
. p_single_fake
= this . labels
. w_single
/this.coords.w_rs*100,this.labels.p_single_left=(this.labels.p_from_left+this.labels.p_to_left+this.labels.p_to_fake)/ 2 - this . labels
. p_single_fake
/ 2 , this . labels
. p_single_left
= this . toFixed ( this . labels
. p_single_left
)), this . labels
. p_single_left
= this . checkEdges ( this . labels
. p_single_left
, this . labels
. p_single_fake
))}, updateScene : function (){ this . raf_id
&&
46 ( cancelAnimationFrame ( this . raf_id
), this . raf_id
= null ); clearTimeout ( this . update_tm
); this . update_tm
= null ; this . options
&&( this . drawHandles (), this . is_active
? this . raf_id
= requestAnimationFrame ( this . updateScene
. bind ( this )): this . update_tm
= setTimeout ( this . updateScene
. bind ( this ), 300 ))}, drawHandles : function (){ this . coords
. w_rs
= this .$ cache
. rs
. outerWidth (! 1 ); if ( this . coords
. w_rs
){ this . coords
. w_rs
!== this . coords
. w_rs_old
&&( this . target
= "base" , this . is_resize
=! 0 ); if ( this . coords
. w_rs
!== this . coords
. w_rs_old
|| this . force_redraw
) this . setMinMax (),
47 this . calc (! 0 ), this . drawLabels (), this . options
. grid
&&( this . calcGridMargin (), this . calcGridLabels ()), this . force_redraw
=! 0 , this . coords
. w_rs_old
= this . coords
. w_rs
, this . drawShadow (); if ( this . coords
. w_rs
&&( this . dragging
|| this . force_redraw
|| this . is_key
)){ if ( this . old_from
!== this . result
. from || this . old_to
!== this . result
. to
|| this . force_redraw
|| this . is_key
){ this . drawLabels (); this .$ cache
. bar
[ 0 ]. style
. left
= this . coords
. p_bar_x
+ "%" ; this .$ cache
. bar
[ 0 ]. style
. width
= this . coords
. p_bar_w
+ "%" ; if ( "single" === this . options
. type
) this .$ cache
. s_single
[ 0 ]. style
. left
=
48 this . coords
. p_single_fake
+ "%" , this .$ cache
. single
[ 0 ]. style
. left
= this . labels
. p_single_left
+ "%" , this . options
. values
. length
? this .$ cache
. input
. prop ( "value" , this . result
. from_value
): this .$ cache
. input
. prop ( "value" , this . result
. from ), this .$ cache
. input
. data ( "from" , this . result
. from ); else { this .$ cache
. s_from
[ 0 ]. style
. left
= this . coords
. p_from_fake
+ "%" ; this .$ cache
. s_to
[ 0 ]. style
. left
= this . coords
. p_to_fake
+ "%" ; if ( this . old_from
!== this . result
. from || this . force_redraw
) this .$ cache
. from [ 0 ]. style
. left
= this . labels
. p_from_left
+
49 "%" ; if ( this . old_to
!== this . result
. to
|| this . force_redraw
) this .$ cache
. to
[ 0 ]. style
. left
= this . labels
. p_to_left
+ "%" ; this .$ cache
. single
[ 0 ]. style
. left
= this . labels
. p_single_left
+ "%" ; this . options
. values
. length
? this .$ cache
. input
. prop ( "value" , this . result
. from_value
+ this . options
. input_values_separator
+ this . result
. to_value
): this .$ cache
. input
. prop ( "value" , this . result
. from + this . options
. input_values_separator
+ this . result
. to
); this .$ cache
. input
. data ( "from" , this . result
. from ); this .$ cache
. input
. data ( "to" , this . result
. to
)} this . old_from
===
50 this . result
. from && this . old_to
=== this . result
. to
|| this . is_start
|| this .$ cache
. input
. trigger ( "change" ); this . old_from
= this . result
. from ; this . old_to
= this . result
. to
; this . is_resize
|| this . is_update
|| this . is_start
|| this . is_finish
|| this . callOnChange (); if ( this . is_key
|| this . is_click
) this . is_click
= this . is_key
=! 1 , this . callOnFinish (); this . is_finish
= this . is_resize
= this . is_update
=! 1 } this . force_redraw
= this . is_click
= this . is_key
= this . is_start
=! 1 }}}, drawLabels : function (){ if ( this . options
){ var a
= this . options
. values
. length
,
51 b
= this . options
. p_values
, d
; if (! this . options
. hide_from_to
) if ( "single" === this . options
. type
) a
= a
? this . decorate ( b
[ this . result
. from ]): this . decorate ( this . _prettify ( this . result
. from ), this . result
. from ), this .$ cache
. single
. html ( a
), this . calcLabels (), this .$ cache
. min
[ 0 ]. style
. visibility
= this . labels
. p_single_left
< this . labels
. p_min
+ 1 ? "hidden" : "visible" , this .$ cache
. max
[ 0 ]. style
. visibility
= this . labels
. p_single_left
+ this . labels
. p_single_fake
> 100 - this . labels
. p_max
- 1 ? "hidden" : "visible" ; else { a
?( this . options
. decorate_both
?
52 ( a
= this . decorate ( b
[ this . result
. from ]), a
+= this . options
. values_separator
, a
+= this . decorate ( b
[ this . result
. to
])): a
= this . decorate ( b
[ this . result
. from ]+ this . options
. values_separator
+ b
[ this . result
. to
]), d
= this . decorate ( b
[ this . result
. from ]), b
= this . decorate ( b
[ this . result
. to
])):( this . options
. decorate_both
?( a
= this . decorate ( this . _prettify ( this . result
. from ), this . result
. from ), a
+= this . options
. values_separator
, a
+= this . decorate ( this . _prettify ( this . result
. to
), this . result
. to
)): a
= this . decorate ( this . _prettify ( this . result
. from )+
53 this . options
. values_separator
+ this . _prettify ( this . result
. to
), this . result
. to
), d
= this . decorate ( this . _prettify ( this . result
. from ), this . result
. from ), b
= this . decorate ( this . _prettify ( this . result
. to
), this . result
. to
)); this .$ cache
. single
. html ( a
); this .$ cache
. from . html ( d
); this .$ cache
. to
. html ( b
); this . calcLabels (); b
= Math
. min ( this . labels
. p_single_left
, this . labels
. p_from_left
); a
= this . labels
. p_single_left
+ this . labels
. p_single_fake
; d
= this . labels
. p_to_left
+ this . labels
. p_to_fake
; var c
= Math
. max ( a
, d
); this . labels
. p_from_left
+
54 this . labels
. p_from_fake
>= this . labels
. p_to_left
?( this .$ cache
. from [ 0 ]. style
. visibility
= "hidden" , this .$ cache
. to
[ 0 ]. style
. visibility
= "hidden" , this .$ cache
. single
[ 0 ]. style
. visibility
= "visible" , this . result
. from === this . result
. to
?( "from" === this . target
? this .$ cache
. from [ 0 ]. style
. visibility
= "visible" : "to" === this . target
&&( this .$ cache
. to
[ 0 ]. style
. visibility
= "visible" ), this .$ cache
. single
[ 0 ]. style
. visibility
= "hidden" , c
= d
):( this .$ cache
. from [ 0 ]. style
. visibility
= "hidden" , this .$ cache
. to
[ 0 ]. style
. visibility
= "hidden" ,
55 this .$ cache
. single
[ 0 ]. style
. visibility
= "visible" , c
= Math
. max ( a
, d
))):( this .$ cache
. from [ 0 ]. style
. visibility
= "visible" , this .$ cache
. to
[ 0 ]. style
. visibility
= "visible" , this .$ cache
. single
[ 0 ]. style
. visibility
= "hidden" ); this .$ cache
. min
[ 0 ]. style
. visibility
= b
< this . labels
. p_min
+ 1 ? "hidden" : "visible" ; this .$ cache
. max
[ 0 ]. style
. visibility
= c
> 100 - this . labels
. p_max
- 1 ? "hidden" : "visible" }}}, drawShadow : function (){ var a
= this . options
, b
= this .$ cache
, d
= "number" === typeof a
. from_min
&&! isNaN ( a
. from_min
), c
= "number" === typeof a
. from_max
&&
56 ! isNaN ( a
. from_max
), e
= "number" === typeof a
. to_min
&&! isNaN ( a
. to_min
), g
= "number" === typeof a
. to_max
&&! isNaN ( a
. to_max
); "single" === a
. type
? a
. from_shadow
&&( d
|| c
)?( d
= this . convertToPercent ( d
? a
. from_min
: a
. min
), c
= this . convertToPercent ( c
? a
. from_max
: a
. max
)- d
, d
= this . toFixed ( d
- this . coords
. p_handle
/100*d),c=this.toFixed(c-this.coords.p_handle/ 100 * c
), d
+= this . coords
. p_handle
/ 2 , b
. shad_single
[ 0 ]. style
. display
= "block" , b
. shad_single
[ 0 ]. style
. left
= d
+ "%" , b
. shad_single
[ 0 ]. style
. width
= c
+ "%" ): b
. shad_single
[ 0 ]. style
. display
= "none" :
57 ( a
. from_shadow
&&( d
|| c
)?( d
= this . convertToPercent ( d
? a
. from_min
: a
. min
), c
= this . convertToPercent ( c
? a
. from_max
: a
. max
)- d
, d
= this . toFixed ( d
- this . coords
. p_handle
/100*d),c=this.toFixed(c-this.coords.p_handle/ 100 * c
), d
+= this . coords
. p_handle
/2,b.shad_from[0].style.display="block",b.shad_from[0].style.left=d+"%",b.shad_from[0].style.width=c+"%"):b.shad_from[0].style.display="none",a.to_shadow&&(e||g)?(e=this.convertToPercent(e?a.to_min:a.min),a=this.convertToPercent(g?a.to_max:a.max)-e,e=this.toFixed(e-this.coords.p_handle/
58 100 * e
), a
= this . toFixed ( a
- this . coords
. p_handle
/100*a),e+=this.coords.p_handle/ 2 , b
. shad_to
[ 0 ]. style
. display
= "block" , b
. shad_to
[ 0 ]. style
. left
= e
+ "%" , b
. shad_to
[ 0 ]. style
. width
= a
+ "%" ): b
. shad_to
[ 0 ]. style
. display
= "none" )}, callOnStart : function (){ if ( this . options
. onStart
&& "function" === typeof this . options
. onStart
) this . options
. onStart ( this . result
)}, callOnChange : function (){ if ( this . options
. onChange
&& "function" === typeof this . options
. onChange
) this . options
. onChange ( this . result
)}, callOnFinish : function (){ if ( this . options
. onFinish
&&
59 "function" === typeof this . options
. onFinish
) this . options
. onFinish ( this . result
)}, callOnUpdate : function (){ if ( this . options
. onUpdate
&& "function" === typeof this . options
. onUpdate
) this . options
. onUpdate ( this . result
)}, toggleInput : function (){ this .$ cache
. input
. toggleClass ( "irs-hidden-input" )}, convertToPercent : function ( a
, b
){ var d
= this . options
. max
- this . options
. min
; return d
? this . toFixed (( b
? a
: a
- this . options
. min
) /(d/ 100 )):( this . no_diapason
=! 0 , 0 )}, convertToValue : function ( a
){ var b
= this . options
. min
, d
= this . options
. max
,
60 c
= b
. toString (). split ( "." )[ 1 ], e
= d
. toString (). split ( "." )[ 1 ], g
, l
, k
= 0 , f
= 0 ; if ( 0 === a
) return this . options
. min
; if ( 100 === a
) return this . options
. max
; c
&&( k
= g
= c
. length
); e
&&( k
= l
= e
. length
); g
&& l
&&( k
= g
>= l
? g
: l
); 0 > b
&&( f
= Math
. abs ( b
), b
=+( b
+ f
). toFixed ( k
), d
=+( d
+ f
). toFixed ( k
)); a
=( d
- b
) /100*a+b;(b=this.options.step.toString().split(".")[1])?a=+a.toFixed(b.length):(a/ = this . options
. step
, a
*= this . options
. step
, a
=+ a
. toFixed ( 0 )); f
&&( a
-= f
); f
= b
?+ a
. toFixed ( b
. length
): this . toFixed ( a
); f
< this . options
. min
? f
= this . options
. min
: f
> this . options
. max
&&
61 ( f
= this . options
. max
); return f
}, calcWithStep : function ( a
){ var b
= Math
. round ( a
/ this . coords
. p_step
)* this . coords
. p_step
; 100 < b
&&( b
= 100 ); 100 === a
&&( b
= 100 ); return this . toFixed ( b
)}, checkMinInterval : function ( a
, b
, d
){ var c
= this . options
; if (! c
. min_interval
) return a
; a
= this . convertToValue ( a
); b
= this . convertToValue ( b
); "from" === d
? b
- a
< c
. min_interval
&&( a
= b
- c
. min_interval
): a
- b
< c
. min_interval
&&( a
= b
+ c
. min_interval
); return this . convertToPercent ( a
)}, checkMaxInterval : function ( a
, b
, d
){ var c
= this . options
; if (! c
. max_interval
) return a
;
62 a
= this . convertToValue ( a
); b
= this . convertToValue ( b
); "from" === d
? b
- a
> c
. max_interval
&&( a
= b
- c
. max_interval
): a
- b
> c
. max_interval
&&( a
= b
+ c
. max_interval
); return this . convertToPercent ( a
)}, checkDiapason : function ( a
, b
, d
){ a
= this . convertToValue ( a
); var c
= this . options
; "number" !== typeof b
&&( b
= c
. min
); "number" !== typeof d
&&( d
= c
. max
); a
< b
&&( a
= b
); a
> d
&&( a
= d
); return this . convertToPercent ( a
)}, toFixed : function ( a
){ a
= a
. toFixed ( 9 ); return + a
}, _prettify : function ( a
){ return this . options
. prettify_enabled
? this . options
. prettify
&& "function" ===
63 typeof this . options
. prettify
? this . options
. prettify ( a
): this . prettify ( a
): a
}, prettify : function ( a
){ return a
. toString (). replace ( /(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g , "$1" + this . options
. prettify_separator
)}, checkEdges : function ( a
, b
){ if (! this . options
. force_edges
) return this . toFixed ( a
); 0 > a
? a
= 0 : a
> 100 - b
&&( a
= 100 - b
); return this . toFixed ( a
)}, validate : function (){ var a
= this . options
, b
= this . result
, d
= a
. values
, c
= d
. length
, e
, g
; "string" === typeof a
. min
&&( a
. min
=+ a
. min
); "string" === typeof a
. max
&&( a
. max
=+ a
. max
); "string" === typeof a
. from &&
64 ( a
. from =+ a
. from ); "string" === typeof a
. to
&&( a
. to
=+ a
. to
); "string" === typeof a
. step
&&( a
. step
=+ a
. step
); "string" === typeof a
. from_min
&&( a
. from_min
=+ a
. from_min
); "string" === typeof a
. from_max
&&( a
. from_max
=+ a
. from_max
); "string" === typeof a
. to_min
&&( a
. to_min
=+ a
. to_min
); "string" === typeof a
. to_max
&&( a
. to_max
=+ a
. to_max
); "string" === typeof a
. keyboard_step
&&( a
. keyboard_step
=+ a
. keyboard_step
); "string" === typeof a
. grid_num
&&( a
. grid_num
=+ a
. grid_num
); a
. max
< a
. min
&&( a
. max
= a
. min
); if ( c
) for ( a
. p_values
=[], a
. min
= 0 , a
. max
= c
- 1 , a
. step
=
65 1 , a
. grid_num
= a
. max
, a
. grid_snap
=! 0 , g
= 0 ; g
< c
; g
++) e
=+ d
[ g
], isNaN ( e
)? e
= d
[ g
]:( d
[ g
]= e
, e
= this . _prettify ( e
)), a
. p_values
. push ( e
); if ( "number" !== typeof a
. from || isNaN ( a
. from )) a
. from = a
. min
; if ( "number" !== typeof a
. to
|| isNaN ( a
. from )) a
. to
= a
. max
; if ( "single" === a
. type
) a
. from < a
. min
&&( a
. from = a
. min
), a
. from > a
. max
&&( a
. from = a
. max
); else { if ( a
. from < a
. min
|| a
. from > a
. max
) a
. from = a
. min
; if ( a
. to
> a
. max
|| a
. to
< a
. min
) a
. to
= a
. max
; a
. from > a
. to
&&( a
. from = a
. to
)} if ( "number" !== typeof a
. step
|| isNaN ( a
. step
)||! a
. step
|| 0 > a
. step
) a
. step
= 1 ; if ( "number" !==
66 typeof a
. keyboard_step
|| isNaN ( a
. keyboard_step
)||! a
. keyboard_step
|| 0 > a
. keyboard_step
) a
. keyboard_step
= 5 ; "number" === typeof a
. from_min
&& a
. from < a
. from_min
&&( a
. from = a
. from_min
); "number" === typeof a
. from_max
&& a
. from > a
. from_max
&&( a
. from = a
. from_max
); "number" === typeof a
. to_min
&& a
. to
< a
. to_min
&&( a
. to
= a
. to_min
); "number" === typeof a
. to_max
&& a
. from > a
. to_max
&&( a
. to
= a
. to_max
); if ( b
){ b
. min
!== a
. min
&&( b
. min
= a
. min
); b
. max
!== a
. max
&&( b
. max
= a
. max
); if ( b
. from < b
. min
|| b
. from > b
. max
) b
. from = a
. from ; if ( b
. to
< b
. min
|| b
. to
> b
. max
) b
. to
= a
. to
} if ( "number" !==
67 typeof a
. min_interval
|| isNaN ( a
. min_interval
)||! a
. min_interval
|| 0 > a
. min_interval
) a
. min_interval
= 0 ; if ( "number" !== typeof a
. max_interval
|| isNaN ( a
. max_interval
)||! a
. max_interval
|| 0 > a
. max_interval
) a
. max_interval
= 0 ; a
. min_interval
&& a
. min_interval
> a
. max
- a
. min
&&( a
. min_interval
= a
. max
- a
. min
); a
. max_interval
&& a
. max_interval
> a
. max
- a
. min
&&( a
. max_interval
= a
. max
- a
. min
)}, decorate : function ( a
, b
){ var d
= "" , c
= this . options
; c
. prefix
&&( d
+= c
. prefix
); d
+= a
; c
. max_postfix
&&( c
. values
. length
&& a
=== c
. p_values
[ c
. max
]?( d
+= c
. max_postfix
,
68 c
. postfix
&&( d
+= " " )): b
=== c
. max
&&( d
+= c
. max_postfix
, c
. postfix
&&( d
+= " " ))); c
. postfix
&&( d
+= c
. postfix
); return d
}, updateFrom : function (){ this . result
. from = this . options
. from ; this . result
. from_percent
= this . convertToPercent ( this . result
. from ); this . options
. values
&&( this . result
. from_value
= this . options
. values
[ this . result
. from ])}, updateTo : function (){ this . result
. to
= this . options
. to
; this . result
. to_percent
= this . convertToPercent ( this . result
. to
); this . options
. values
&&( this . result
. to_value
= this . options
. values
[ this . result
. to
])},
69 updateResult : function (){ this . result
. min
= this . options
. min
; this . result
. max
= this . options
. max
; this . updateFrom (); this . updateTo ()}, appendGrid : function (){ if ( this . options
. grid
){ var a
= this . options
, b
, d
; b
= a
. max
- a
. min
; var c
= a
. grid_num
, e
= 0 , g
= 0 , f
= 4 , k
, h
, m
= 0 , n
= "" ; this . calcGridMargin (); a
. grid_snap
?( c
= b
/a.step,e=this.toFixed(a.step/ ( b
/100))):e=this.toFixed(100/c ); 4 < c
&&( f
= 3 ); 7 < c
&&( f
= 2 ); 14 < c
&&( f
= 1 ); 28 < c
&&( f
= 0 ); for ( b
= 0 ; b
< c
+ 1 ; b
++){ k
= f
; g
= this . toFixed ( e
* b
); 100 < g
&&( g
= 100 , k
-= 2 , 0 > k
&&( k
= 0 )); this . coords
. big
[ b
]= g
; h
=( g
- e
*( b
- 1 ))/
70 ( k
+ 1 ); for ( d
= 1 ; d
<= k
&& 0 !== g
; d
++) m
= this . toFixed ( g
- h
* d
), n
+= '<span class="irs-grid-pol small" style="left: ' + m
+ '%"></span>' ; n
+= '<span class="irs-grid-pol" style="left: ' + g
+ '%"></span>' ; m
= this . convertToValue ( g
); m
= a
. values
. length
? a
. p_values
[ m
]: this . _prettify ( m
); n
+= '<span class="irs-grid-text js-grid-text-' + b
+ '" style="left: ' + g
+ '%">' + m
+ "</span>" } this . coords
. big_num
= Math
. ceil ( c
+ 1 ); this .$ cache
. cont
. addClass ( "irs-with-grid" ); this .$ cache
. grid
. html ( n
); this . cacheGridLabels ()}}, cacheGridLabels : function (){ var a
,
71 b
, d
= this . coords
. big_num
; for ( b
= 0 ; b
< d
; b
++) a
= this .$ cache
. grid
. find ( ".js-grid-text-" + b
), this .$ cache
. grid_labels
. push ( a
); this . calcGridLabels ()}, calcGridLabels : function (){ var a
, b
; b
=[]; var d
=[], c
= this . coords
. big_num
; for ( a
= 0 ; a
< c
; a
++) this . coords
. big_w
[ a
]= this .$ cache
. grid_labels
[ a
]. outerWidth (! 1 ), this . coords
. big_p
[ a
]= this . toFixed ( this . coords
. big_w
[ a
] /this.coords.w_rs*100),this.coords.big_x[a]=this.toFixed(this.coords.big_p[a]/ 2 ), b
[ a
]= this . toFixed ( this . coords
. big
[ a
]- this . coords
. big_x
[ a
]), d
[ a
]= this . toFixed ( b
[ a
]+
72 this . coords
. big_p
[ a
]); this . options
. force_edges
&&( b
[ 0 ]<- this . coords
. grid_gap
&&( b
[ 0 ]=- this . coords
. grid_gap
, d
[ 0 ]= this . toFixed ( b
[ 0 ]+ this . coords
. big_p
[ 0 ]), this . coords
. big_x
[ 0 ]= this . coords
. grid_gap
), d
[ c
- 1 ]> 100 + this . coords
. grid_gap
&&( d
[ c
- 1 ]= 100 + this . coords
. grid_gap
, b
[ c
- 1 ]= this . toFixed ( d
[ c
- 1 ]- this . coords
. big_p
[ c
- 1 ]), this . coords
. big_x
[ c
- 1 ]= this . toFixed ( this . coords
. big_p
[ c
- 1 ]- this . coords
. grid_gap
))); this . calcGridCollision ( 2 , b
, d
); this . calcGridCollision ( 4 , b
, d
); for ( a
= 0 ; a
< c
; a
++) b
= this .$ cache
. grid_labels
[ a
][ 0 ],
73 b
. style
. marginLeft
=- this . coords
. big_x
[ a
]+ "%" }, calcGridCollision : function ( a
, b
, d
){ var c
, e
, g
, f
= this . coords
. big_num
; for ( c
= 0 ; c
< f
; c
+= a
){ e
= c
+ a
/2;if(e>=f)break;g=this.$cache.grid_labels[e][0];g.style.visibility=d[c]<=b[e]?"visible":"hidden"}},calcGridMargin:function(){this.options.grid_margin&&(this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&(this.coords.w_handle="single"===this.options.type?this.$cache.s_single.outerWidth(!1):this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/
74 this . coords
. w_rs
* 100 ), this . coords
. grid_gap
= this . toFixed ( this . coords
. p_handle
/ 2 - .1 ), this .$ cache
. grid
[ 0 ]. style
. width
= this . toFixed ( 100 - this . coords
. p_handle
)+ "%" , this .$ cache
. grid
[ 0 ]. style
. left
= this . coords
. grid_gap
+ "%" ))}, update : function ( a
){ this . input
&&( this . is_update
=! 0 , this . options
. from = this . result
. from , this . options
. to
= this . result
. to
, this . options
= f
. extend ( this . options
, a
), this . validate (), this . updateResult ( a
), this . toggleInput (), this . remove (), this . init (! 0 ))}, reset : function (){ this . input
&&( this . updateResult (),
75 this . update ())}, destroy : function (){ this . input
&&( this . toggleInput (), this .$ cache
. input
. prop ( "readonly" ,! 1 ), f
. data ( this . input
, "ionRangeSlider" , null ), this . remove (), this . options
= this . input
= null )}}; f
. fn
. ionRangeSlider = function ( a
){ return this . each ( function (){ f
. data ( this , "ionRangeSlider" )|| f
. data ( this , "ionRangeSlider" , new q ( this , a
, u
++))})};( function (){ for ( var a
= 0 , b
=[ "ms" , "moz" , "webkit" , "o" ], d
= 0 ; d
< b
. length
&&! h
. requestAnimationFrame
;++ d
) h
. requestAnimationFrame
= h
[ b
[ d
]+ "RequestAnimationFrame" ], h
. cancelAnimationFrame
=
76 h
[ b
[ d
]+ "CancelAnimationFrame" ]|| h
[ b
[ d
]+ "CancelRequestAnimationFrame" ]; h
. requestAnimationFrame
||( h
. requestAnimationFrame = function ( b
, d
){ var g
=( new Date
). getTime (), f
= Math
. max ( 0 , 16 -( g
- a
)), k
= h
. setTimeout ( function (){ b ( g
+ f
)}, f
); a
= g
+ f
; return k
}); h
. cancelAnimationFrame
||( h
. cancelAnimationFrame = function ( a
){ clearTimeout ( a
)})})()})( jQuery
, document
, window
, navigator
);