3
Copyright 2012 Yahoo! Inc. All rights reserved.
4
Licensed under the BSD License.
5
http://yuilibrary.com/license/
7
if (typeof _yuitest_coverage == "undefined"){
8
_yuitest_coverage = {};
9
_yuitest_coverline = function(src, line){
10
var coverage = _yuitest_coverage[src];
11
if (!coverage.lines[line]){
12
coverage.calledLines++;
14
coverage.lines[line]++;
16
_yuitest_coverfunc = function(src, name, line){
17
var coverage = _yuitest_coverage[src],
18
funcId = name + ":" + line;
19
if (!coverage.functions[funcId]){
20
coverage.calledFunctions++;
22
coverage.functions[funcId]++;
25
_yuitest_coverage["build/slider-value-range/slider-value-range.js"] = {
32
path: "build/slider-value-range/slider-value-range.js",
35
_yuitest_coverage["build/slider-value-range/slider-value-range.js"].code=["YUI.add('slider-value-range', function (Y, NAME) {","","/**"," * Adds value support for Slider as a range of integers between a configured"," * minimum and maximum value. For use with <code>Y.Base.build(..)</code> to"," * add the plumbing to <code>Y.SliderBase</code>."," *"," * @module slider"," * @submodule slider-value-range"," */","","// Constants for compression or performance","var MIN = 'min',"," MAX = 'max',"," VALUE = 'value',","// MINORSTEP = 'minorStep',","// MAJORSTEP = 'majorStep',",""," round = Math.round;","","/**"," * One class of value algorithm that can be built onto SliderBase. By default,"," * values range between 0 and 100, but you can configure these on the"," * built Slider class by setting the <code>min</code> and <code>max</code>"," * configurations. Set the initial value (will cause the thumb to move to the"," * appropriate location on the rail) in configuration as well if appropriate."," *"," * @class SliderValueRange"," */","function SliderValueRange() {"," this._initSliderValueRange();","}","","Y.SliderValueRange = Y.mix( SliderValueRange, {",""," // Prototype properties and methods that will be added onto host class"," prototype: {",""," /**"," * Factor used to translate value -> position -> value."," *"," * @property _factor"," * @type {Number}"," * @protected"," */"," _factor: 1,",""," /**"," * Stub for construction logic. Override if extending this class and"," * you need to set something up during the initializer phase."," *"," * @method _initSliderValueRange"," * @protected"," */"," _initSliderValueRange: function () {},",""," /**"," * Override of stub method in SliderBase that is called at the end of"," * its bindUI stage of render(). Subscribes to internal events to"," * trigger UI and related state updates."," *"," * @method _bindValueLogic"," * @protected"," */"," _bindValueLogic: function () {"," this.after( {"," minChange : this._afterMinChange,"," maxChange : this._afterMaxChange,"," valueChange: this._afterValueChange"," } );"," },",""," /**"," * Move the thumb to appropriate position if necessary. Also resets"," * the cached offsets and recalculates the conversion factor to"," * translate position to value."," *"," * @method _syncThumbPosition"," * @protected"," */"," _syncThumbPosition: function () {"," this._calculateFactor();",""," this._setPosition( this.get( VALUE ) );"," },",""," /**"," * Calculates and caches"," * (range between max and min) / (rail length)"," * for fast runtime calculation of position -> value."," *"," * @method _calculateFactor"," * @protected"," */"," _calculateFactor: function () {"," var length = this.get( 'length' ),"," thumbSize = this.thumb.getStyle( this._key.dim ),"," min = this.get( MIN ),"," max = this.get( MAX );",""," // The default thumb width is based on Sam skin's thumb dimension."," // This attempts to allow for rendering off-DOM, then attaching"," // without the need to call syncUI(). It is still recommended"," // to call syncUI() in these cases though, just to be sure."," length = parseFloat( length ) || 150;"," thumbSize = parseFloat( thumbSize ) || 15;",""," this._factor = ( max - min ) / ( length - thumbSize );",""," },",""," /**"," * Dispatch the new position of the thumb into the value setting"," * operations."," *"," * @method _defThumbMoveFn"," * @param e { EventFacade } The host's thumbMove event"," * @protected"," */"," _defThumbMoveFn: function ( e ) {"," // To prevent set('value', x) from looping back around"," if (e.source !== 'set') {"," this.set(VALUE, this._offsetToValue(e.offset));"," }"," },",""," /**"," * <p>Converts a pixel position into a value. Calculates current"," * thumb offset from the leading edge of the rail multiplied by the"," * ratio of <code>(max - min) / (constraining dim)</code>.</p>"," *"," * <p>Override this if you want to use a different value mapping"," * algorithm.</p>"," *"," * @method _offsetToValue"," * @param offset { Number } X or Y pixel offset"," * @return { mixed } Value corresponding to the provided pixel offset"," * @protected"," */"," _offsetToValue: function ( offset ) {",""," var value = round( offset * this._factor ) + this.get( MIN );",""," return round( this._nearestValue( value ) );"," },",""," /**"," * Converts a value into a pixel offset for use in positioning"," * the thumb according to the reverse of the"," * <code>_offsetToValue( xy )</code> operation."," *"," * @method _valueToOffset"," * @param val { Number } The value to map to pixel X or Y position"," * @return { Number } The pixel offset "," * @protected"," */"," _valueToOffset: function ( value ) {"," var offset = round( ( value - this.get( MIN ) ) / this._factor );",""," return offset;"," },",""," /**"," * Returns the current value. Override this if you want to introduce"," * output formatting. Otherwise equivalent to slider.get( \"value\" );"," *"," * @method getValue"," * @return {Number}"," */"," getValue: function () {"," return this.get( VALUE );"," },",""," /**"," * Updates the current value. Override this if you want to introduce"," * input value parsing or preprocessing. Otherwise equivalent to"," * slider.set( \"value\", v );"," *"," * @method setValue"," * @param val {Number} The new value"," * @return {Slider}"," * @chainable"," */"," setValue: function ( val ) {"," return this.set( VALUE, val );"," },",""," /**"," * Update position according to new min value. If the new min results"," * in the current value being out of range, the value is set to the"," * closer of min or max."," *"," * @method _afterMinChange"," * @param e { EventFacade } The <code>min</code> attribute change event."," * @protected"," */"," _afterMinChange: function ( e ) {"," this._verifyValue();",""," this._syncThumbPosition();"," },",""," /**"," * Update position according to new max value. If the new max results"," * in the current value being out of range, the value is set to the"," * closer of min or max."," *"," * @method _afterMaxChange"," * @param e { EventFacade } The <code>max</code> attribute change event."," * @protected"," */"," _afterMaxChange: function ( e ) {"," this._verifyValue();",""," this._syncThumbPosition();"," },",""," /**"," * Verifies that the current value is within the min - max range. If"," * not, value is set to either min or max, depending on which is"," * closer."," *"," * @method _verifyValue"," * @protected"," */"," _verifyValue: function () {"," var value = this.get( VALUE ),"," nearest = this._nearestValue( value );",""," if ( value !== nearest ) {"," // @TODO Can/should valueChange, minChange, etc be queued"," // events? To make dd.set( 'min', n ); execute after minChange"," // subscribers before on/after valueChange subscribers."," this.set( VALUE, nearest );"," }"," },",""," /**"," * Propagate change to the thumb position unless the change originated"," * from the thumbMove event."," *"," * @method _afterValueChange"," * @param e { EventFacade } The <code>valueChange</code> event."," * @protected"," */"," _afterValueChange: function ( e ) {"," var val = e.newVal;"," this._setPosition( val, { source: 'set' } );"," this.thumb.set('aria-valuenow', val);"," this.thumb.set('aria-valuetext', val);"," },",""," /**"," * Positions the thumb in accordance with the translated value."," *"," * @method _setPosition"," * @param value {Number} Value to translate to a pixel position"," * @param [options] {Object} Details object to pass to `_uiMoveThumb`"," * @protected"," */"," _setPosition: function ( value, options ) {"," this._uiMoveThumb( this._valueToOffset( value ), options );"," },",""," /**"," * Validates new values assigned to <code>min</code> attribute. Numbers"," * are acceptable. Override this to enforce different rules."," *"," * @method _validateNewMin"," * @param value {Any} Value assigned to <code>min</code> attribute."," * @return {Boolean} True for numbers. False otherwise."," * @protected"," */"," _validateNewMin: function ( value ) {"," return Y.Lang.isNumber( value );"," },",""," /**"," * Validates new values assigned to <code>max</code> attribute. Numbers"," * are acceptable. Override this to enforce different rules."," *"," * @method _validateNewMax"," * @param value { mixed } Value assigned to <code>max</code> attribute."," * @return { Boolean } True for numbers. False otherwise."," * @protected"," */"," _validateNewMax: function ( value ) {"," return Y.Lang.isNumber( value );"," },",""," /**"," * Restricts new values assigned to <code>value</code> attribute to be"," * between the configured <code>min</code> and <code>max</code>."," * Rounds to nearest integer value."," *"," * @method _setNewValue"," * @param value { Number } Value assigned to <code>value</code> attribute"," * @return { Number } Normalized and constrained value"," * @protected"," */"," _setNewValue: function ( value ) {"," return round( this._nearestValue( value ) );"," },",""," /**"," * Returns the nearest valid value to the value input. If the provided"," * value is outside the min - max range, accounting for min > max"," * scenarios, the nearest of either min or max is returned. Otherwise,"," * the provided value is returned."," *"," * @method _nearestValue"," * @param value { mixed } Value to test against current min - max range"," * @return { Number } Current min, max, or value if within range"," * @protected"," */"," _nearestValue: function ( value ) {"," var min = this.get( MIN ),"," max = this.get( MAX ),"," tmp;",""," // Account for reverse value range (min > max)"," tmp = ( max > min ) ? max : min;"," min = ( max > min ) ? min : max;"," max = tmp;",""," return ( value < min ) ?"," min :"," ( value > max ) ?"," max :"," value;"," }",""," },",""," /**"," * Attributes that will be added onto host class."," *"," * @property ATTRS"," * @type {Object}"," * @static"," * @protected"," */"," ATTRS: {"," /**"," * The value associated with the farthest top, left position of the"," * rail. Can be greater than the configured <code>max</code> if you"," * want values to increase from right-to-left or bottom-to-top."," *"," * @attribute min"," * @type { Number }"," * @default 0"," */"," min: {"," value : 0,"," validator: '_validateNewMin'"," },",""," /**"," * The value associated with the farthest bottom, right position of"," * the rail. Can be less than the configured <code>min</code> if"," * you want values to increase from right-to-left or bottom-to-top."," *"," * @attribute max"," * @type { Number }"," * @default 100"," */"," max: {"," value : 100,"," validator: '_validateNewMax'"," },"," "," /**"," * amount to increment/decrement the Slider value"," * when the arrow up/down/left/right keys are pressed"," *"," * @attribute minorStep"," * @type {Number}"," * @default 1"," */"," minorStep : {"," value: 1"," },",""," /**"," * amount to increment/decrement the Slider value"," * when the page up/down keys are pressed"," *"," * @attribute majorStep"," * @type {Number}"," * @default 10"," */"," majorStep : {"," value: 10"," },",""," /**"," * The value associated with the thumb's current position on the"," * rail. Defaults to the value inferred from the thumb's current"," * position. Specifying value in the constructor will move the"," * thumb to the position that corresponds to the supplied value."," *"," * @attribute value"," * @type { Number }"," * @default (inferred from current thumb position)"," */"," value: {"," value : 0,"," setter: '_setNewValue'"," }"," }","}, true );","","","}, '3.7.1', {\"requires\": [\"slider-base\"]});"];
36
_yuitest_coverage["build/slider-value-range/slider-value-range.js"].lines = {"1":0,"13":0,"30":0,"31":0,"34":0,"66":0,"82":0,"84":0,"96":0,"105":0,"106":0,"108":0,"122":0,"123":0,"142":0,"144":0,"158":0,"160":0,"171":0,"185":0,"198":0,"200":0,"213":0,"215":0,"227":0,"230":0,"234":0,"247":0,"248":0,"249":0,"250":0,"262":0,"275":0,"288":0,"302":0,"317":0,"322":0,"323":0,"324":0,"326":0};
37
_yuitest_coverage["build/slider-value-range/slider-value-range.js"].functions = {"SliderValueRange:30":0,"_bindValueLogic:65":0,"_syncThumbPosition:81":0,"_calculateFactor:95":0,"_defThumbMoveFn:120":0,"_offsetToValue:140":0,"_valueToOffset:157":0,"getValue:170":0,"setValue:184":0,"_afterMinChange:197":0,"_afterMaxChange:212":0,"_verifyValue:226":0,"_afterValueChange:246":0,"_setPosition:261":0,"_validateNewMin:274":0,"_validateNewMax:287":0,"_setNewValue:301":0,"_nearestValue:316":0,"(anonymous 1):1":0};
38
_yuitest_coverage["build/slider-value-range/slider-value-range.js"].coveredLines = 40;
39
_yuitest_coverage["build/slider-value-range/slider-value-range.js"].coveredFunctions = 19;
40
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 1);
41
YUI.add('slider-value-range', function (Y, NAME) {
44
* Adds value support for Slider as a range of integers between a configured
45
* minimum and maximum value. For use with <code>Y.Base.build(..)</code> to
46
* add the plumbing to <code>Y.SliderBase</code>.
49
* @submodule slider-value-range
52
// Constants for compression or performance
53
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "(anonymous 1)", 1);
54
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 13);
58
// MINORSTEP = 'minorStep',
59
// MAJORSTEP = 'majorStep',
64
* One class of value algorithm that can be built onto SliderBase. By default,
65
* values range between 0 and 100, but you can configure these on the
66
* built Slider class by setting the <code>min</code> and <code>max</code>
67
* configurations. Set the initial value (will cause the thumb to move to the
68
* appropriate location on the rail) in configuration as well if appropriate.
70
* @class SliderValueRange
72
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 30);
73
function SliderValueRange() {
74
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "SliderValueRange", 30);
75
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 31);
76
this._initSliderValueRange();
79
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 34);
80
Y.SliderValueRange = Y.mix( SliderValueRange, {
82
// Prototype properties and methods that will be added onto host class
86
* Factor used to translate value -> position -> value.
95
* Stub for construction logic. Override if extending this class and
96
* you need to set something up during the initializer phase.
98
* @method _initSliderValueRange
101
_initSliderValueRange: function () {},
104
* Override of stub method in SliderBase that is called at the end of
105
* its bindUI stage of render(). Subscribes to internal events to
106
* trigger UI and related state updates.
108
* @method _bindValueLogic
111
_bindValueLogic: function () {
112
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_bindValueLogic", 65);
113
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 66);
115
minChange : this._afterMinChange,
116
maxChange : this._afterMaxChange,
117
valueChange: this._afterValueChange
122
* Move the thumb to appropriate position if necessary. Also resets
123
* the cached offsets and recalculates the conversion factor to
124
* translate position to value.
126
* @method _syncThumbPosition
129
_syncThumbPosition: function () {
130
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_syncThumbPosition", 81);
131
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 82);
132
this._calculateFactor();
134
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 84);
135
this._setPosition( this.get( VALUE ) );
139
* Calculates and caches
140
* (range between max and min) / (rail length)
141
* for fast runtime calculation of position -> value.
143
* @method _calculateFactor
146
_calculateFactor: function () {
147
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_calculateFactor", 95);
148
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 96);
149
var length = this.get( 'length' ),
150
thumbSize = this.thumb.getStyle( this._key.dim ),
151
min = this.get( MIN ),
152
max = this.get( MAX );
154
// The default thumb width is based on Sam skin's thumb dimension.
155
// This attempts to allow for rendering off-DOM, then attaching
156
// without the need to call syncUI(). It is still recommended
157
// to call syncUI() in these cases though, just to be sure.
158
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 105);
159
length = parseFloat( length ) || 150;
160
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 106);
161
thumbSize = parseFloat( thumbSize ) || 15;
163
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 108);
164
this._factor = ( max - min ) / ( length - thumbSize );
169
* Dispatch the new position of the thumb into the value setting
172
* @method _defThumbMoveFn
173
* @param e { EventFacade } The host's thumbMove event
176
_defThumbMoveFn: function ( e ) {
177
// To prevent set('value', x) from looping back around
178
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_defThumbMoveFn", 120);
179
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 122);
180
if (e.source !== 'set') {
181
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 123);
182
this.set(VALUE, this._offsetToValue(e.offset));
187
* <p>Converts a pixel position into a value. Calculates current
188
* thumb offset from the leading edge of the rail multiplied by the
189
* ratio of <code>(max - min) / (constraining dim)</code>.</p>
191
* <p>Override this if you want to use a different value mapping
194
* @method _offsetToValue
195
* @param offset { Number } X or Y pixel offset
196
* @return { mixed } Value corresponding to the provided pixel offset
199
_offsetToValue: function ( offset ) {
201
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_offsetToValue", 140);
202
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 142);
203
var value = round( offset * this._factor ) + this.get( MIN );
205
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 144);
206
return round( this._nearestValue( value ) );
210
* Converts a value into a pixel offset for use in positioning
211
* the thumb according to the reverse of the
212
* <code>_offsetToValue( xy )</code> operation.
214
* @method _valueToOffset
215
* @param val { Number } The value to map to pixel X or Y position
216
* @return { Number } The pixel offset
219
_valueToOffset: function ( value ) {
220
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_valueToOffset", 157);
221
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 158);
222
var offset = round( ( value - this.get( MIN ) ) / this._factor );
224
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 160);
229
* Returns the current value. Override this if you want to introduce
230
* output formatting. Otherwise equivalent to slider.get( "value" );
235
getValue: function () {
236
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "getValue", 170);
237
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 171);
238
return this.get( VALUE );
242
* Updates the current value. Override this if you want to introduce
243
* input value parsing or preprocessing. Otherwise equivalent to
244
* slider.set( "value", v );
247
* @param val {Number} The new value
251
setValue: function ( val ) {
252
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "setValue", 184);
253
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 185);
254
return this.set( VALUE, val );
258
* Update position according to new min value. If the new min results
259
* in the current value being out of range, the value is set to the
260
* closer of min or max.
262
* @method _afterMinChange
263
* @param e { EventFacade } The <code>min</code> attribute change event.
266
_afterMinChange: function ( e ) {
267
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_afterMinChange", 197);
268
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 198);
271
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 200);
272
this._syncThumbPosition();
276
* Update position according to new max value. If the new max results
277
* in the current value being out of range, the value is set to the
278
* closer of min or max.
280
* @method _afterMaxChange
281
* @param e { EventFacade } The <code>max</code> attribute change event.
284
_afterMaxChange: function ( e ) {
285
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_afterMaxChange", 212);
286
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 213);
289
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 215);
290
this._syncThumbPosition();
294
* Verifies that the current value is within the min - max range. If
295
* not, value is set to either min or max, depending on which is
298
* @method _verifyValue
301
_verifyValue: function () {
302
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_verifyValue", 226);
303
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 227);
304
var value = this.get( VALUE ),
305
nearest = this._nearestValue( value );
307
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 230);
308
if ( value !== nearest ) {
309
// @TODO Can/should valueChange, minChange, etc be queued
310
// events? To make dd.set( 'min', n ); execute after minChange
311
// subscribers before on/after valueChange subscribers.
312
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 234);
313
this.set( VALUE, nearest );
318
* Propagate change to the thumb position unless the change originated
319
* from the thumbMove event.
321
* @method _afterValueChange
322
* @param e { EventFacade } The <code>valueChange</code> event.
325
_afterValueChange: function ( e ) {
326
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_afterValueChange", 246);
327
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 247);
329
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 248);
330
this._setPosition( val, { source: 'set' } );
331
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 249);
332
this.thumb.set('aria-valuenow', val);
333
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 250);
334
this.thumb.set('aria-valuetext', val);
338
* Positions the thumb in accordance with the translated value.
340
* @method _setPosition
341
* @param value {Number} Value to translate to a pixel position
342
* @param [options] {Object} Details object to pass to `_uiMoveThumb`
345
_setPosition: function ( value, options ) {
346
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_setPosition", 261);
347
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 262);
348
this._uiMoveThumb( this._valueToOffset( value ), options );
352
* Validates new values assigned to <code>min</code> attribute. Numbers
353
* are acceptable. Override this to enforce different rules.
355
* @method _validateNewMin
356
* @param value {Any} Value assigned to <code>min</code> attribute.
357
* @return {Boolean} True for numbers. False otherwise.
360
_validateNewMin: function ( value ) {
361
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_validateNewMin", 274);
362
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 275);
363
return Y.Lang.isNumber( value );
367
* Validates new values assigned to <code>max</code> attribute. Numbers
368
* are acceptable. Override this to enforce different rules.
370
* @method _validateNewMax
371
* @param value { mixed } Value assigned to <code>max</code> attribute.
372
* @return { Boolean } True for numbers. False otherwise.
375
_validateNewMax: function ( value ) {
376
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_validateNewMax", 287);
377
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 288);
378
return Y.Lang.isNumber( value );
382
* Restricts new values assigned to <code>value</code> attribute to be
383
* between the configured <code>min</code> and <code>max</code>.
384
* Rounds to nearest integer value.
386
* @method _setNewValue
387
* @param value { Number } Value assigned to <code>value</code> attribute
388
* @return { Number } Normalized and constrained value
391
_setNewValue: function ( value ) {
392
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_setNewValue", 301);
393
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 302);
394
return round( this._nearestValue( value ) );
398
* Returns the nearest valid value to the value input. If the provided
399
* value is outside the min - max range, accounting for min > max
400
* scenarios, the nearest of either min or max is returned. Otherwise,
401
* the provided value is returned.
403
* @method _nearestValue
404
* @param value { mixed } Value to test against current min - max range
405
* @return { Number } Current min, max, or value if within range
408
_nearestValue: function ( value ) {
409
_yuitest_coverfunc("build/slider-value-range/slider-value-range.js", "_nearestValue", 316);
410
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 317);
411
var min = this.get( MIN ),
412
max = this.get( MAX ),
415
// Account for reverse value range (min > max)
416
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 322);
417
tmp = ( max > min ) ? max : min;
418
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 323);
419
min = ( max > min ) ? min : max;
420
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 324);
423
_yuitest_coverline("build/slider-value-range/slider-value-range.js", 326);
424
return ( value < min ) ?
434
* Attributes that will be added onto host class.
443
* The value associated with the farthest top, left position of the
444
* rail. Can be greater than the configured <code>max</code> if you
445
* want values to increase from right-to-left or bottom-to-top.
453
validator: '_validateNewMin'
457
* The value associated with the farthest bottom, right position of
458
* the rail. Can be less than the configured <code>min</code> if
459
* you want values to increase from right-to-left or bottom-to-top.
467
validator: '_validateNewMax'
471
* amount to increment/decrement the Slider value
472
* when the arrow up/down/left/right keys are pressed
474
* @attribute minorStep
483
* amount to increment/decrement the Slider value
484
* when the page up/down keys are pressed
486
* @attribute majorStep
495
* The value associated with the thumb's current position on the
496
* rail. Defaults to the value inferred from the thumb's current
497
* position. Specifying value in the constructor will move the
498
* thumb to the position that corresponds to the supplied value.
502
* @default (inferred from current thumb position)
506
setter: '_setNewValue'
512
}, '3.7.1', {"requires": ["slider-base"]});