@mezzanine-ui/core
Advanced tools
Comparing version 0.7.0 to 0.7.1
{ | ||
"name": "@mezzanine-ui/core", | ||
"version": "0.7.0", | ||
"version": "0.7.1", | ||
"description": "Core for mezzanine-ui", | ||
@@ -5,0 +5,0 @@ "author": "Mezzanine", |
@@ -1,1 +0,1 @@ | ||
export { findClosetValueIndex, getPercentage, getSliderRect, getValueFromClientX, isRangeSlider, roundToStep, sliderClasses, sliderHandlerPrefix, sliderPrefix, sortSliderValue, toSliderCssVars } from './slider.js'; | ||
export { findClosetValueIndex, fixRangeSliderValue, fixSingleSliderValue, getPercentage, getPrecision, getSliderRect, getValueFromClientX, isRangeSlider, roundToStep, sliderClasses, sliderHandlerPrefix, sliderPrefix, sortSliderValue, toSliderCssVars } from './slider.js'; |
@@ -56,3 +56,6 @@ import { CssVarInterpolations } from '@mezzanine-ui/system/css'; | ||
export declare function getPercentage(value: number, min: number, max: number): number; | ||
export declare function getPrecision(step: number): number; | ||
export declare function fixSingleSliderValue(value: SingleSliderValue, min: number, max: number): SingleSliderValue; | ||
export declare function fixRangeSliderValue(value: RangeSliderValue, min: number, max: number): RangeSliderValue; | ||
export declare function roundToStep(value: number, step: number, min: number, max: number): number; | ||
export declare function findClosetValueIndex(value: SliderValue, newValue: number): number; |
@@ -70,4 +70,38 @@ /** Classes */ | ||
function getPercentage(value, min, max) { | ||
if (min > max) | ||
return 0; | ||
return Math.max(0, Math.min(100, (value / Math.abs(max - min)) * 100)); | ||
} | ||
function getPrecision(step) { | ||
const stepString = step.toString(); | ||
let precision = 0; | ||
if (stepString.indexOf('.') >= 0) { | ||
precision = stepString.length - stepString.indexOf('.') - 1; | ||
} | ||
return precision; | ||
} | ||
function fixSingleSliderValue(value, min, max) { | ||
if (value < min) { | ||
return min; | ||
} | ||
if (value > max) { | ||
return max; | ||
} | ||
return value; | ||
} | ||
function fixRangeSliderValue(value, min, max) { | ||
if (value[0] > max && value[1] > max) { | ||
return [max, max]; | ||
} | ||
if (value[0] < min && value[1] < min) { | ||
return [min, min]; | ||
} | ||
if (value[0] < min) { | ||
return [min, value[1]]; | ||
} | ||
if (value[1] > max) { | ||
return [value[0], max]; | ||
} | ||
return value; | ||
} | ||
function roundToStep(value, step, min, max) { | ||
@@ -81,5 +115,5 @@ let left = min; | ||
if (value - left < right - value) { | ||
return left; | ||
return parseFloat(left.toFixed(getPrecision(step))); | ||
} | ||
return right; | ||
return parseFloat(right.toFixed(getPrecision(step))); | ||
} | ||
@@ -93,2 +127,2 @@ function findClosetValueIndex(value, newValue) { | ||
export { findClosetValueIndex, getPercentage, getSliderRect, getValueFromClientX, isRangeSlider, roundToStep, sliderClasses, sliderHandlerPrefix, sliderPrefix, sortSliderValue, toSliderCssVars }; | ||
export { findClosetValueIndex, fixRangeSliderValue, fixSingleSliderValue, getPercentage, getPrecision, getSliderRect, getValueFromClientX, isRangeSlider, roundToStep, sliderClasses, sliderHandlerPrefix, sliderPrefix, sortSliderValue, toSliderCssVars }; |
Sorry, the diff of this file is not supported yet
181081
2110