(inputDefine, internallyForceDef, inputRecorder)
| 926 | } |
| 927 | |
| 928 | function createRangeInput(inputDefine, internallyForceDef, inputRecorder) { |
| 929 | var _currVal = +retrieveValue(inputDefine.value, 0); |
| 930 | var _disabled = false; |
| 931 | var _step = +retrieveValue(inputDefine.step, 1); |
| 932 | var _minVal = +retrieveValue(inputDefine.min, 0); |
| 933 | var _maxVal = +retrieveValue(inputDefine.max, 100); |
| 934 | var _precision = Math.max( |
| 935 | getPrecision(_minVal), |
| 936 | getPrecision(_maxVal), |
| 937 | getPrecision(_currVal), |
| 938 | getPrecision(_step) |
| 939 | ); |
| 940 | var _noDeltaButtons = !!inputDefine.noDeltaButtons; // Only for backward compat. |
| 941 | var _rangeInputWrapperEl; |
| 942 | var _rangeInputListener; |
| 943 | var _rangeInputEl; |
| 944 | var _rangeInputValueEl; |
| 945 | var _opSuffix = internallyForceDef && internallyForceDef.id || ''; |
| 946 | |
| 947 | dealInitRangeInput(); |
| 948 | |
| 949 | return { |
| 950 | elList: [_rangeInputWrapperEl], |
| 951 | disable: resetRangeInputDisabled, |
| 952 | getState: getRangeInputState, |
| 953 | setState: setRangeInputState, |
| 954 | }; |
| 955 | |
| 956 | function dealInitRangeInput() { |
| 957 | _rangeInputWrapperEl = document.createElement('span'); |
| 958 | resetRangeInputWrapperCSS(_rangeInputWrapperEl, false); |
| 959 | |
| 960 | _rangeInputListener = internallyForceDef |
| 961 | ? getBtnEventListener(internallyForceDef, NAMES_ON_INPUT_CHANGE) |
| 962 | : getBtnEventListener(inputDefine, NAMES_ON_INPUT_CHANGE); |
| 963 | if (!_rangeInputListener) { |
| 964 | throw new Error( |
| 965 | errMsgPrefix + ' No listener (either ' |
| 966 | + NAMES_ON_INPUT_CHANGE.join(', ') + ') specified for slider.' |
| 967 | ); |
| 968 | } |
| 969 | |
| 970 | var sliderTextEl = document.createElement('span'); |
| 971 | sliderTextEl.className = 'test-inputs-slider-text'; |
| 972 | sliderTextEl.innerHTML = internallyForceDef |
| 973 | ? getInputsTextHTML(internallyForceDef, '') |
| 974 | : getInputsTextHTML(inputDefine, ''); |
| 975 | _rangeInputWrapperEl.appendChild(sliderTextEl); |
| 976 | |
| 977 | function createRangeInputDeltaBtn(btnName, delta) { |
| 978 | if (_noDeltaButtons) { return; } |
| 979 | var sliderLRBtnEl = document.createElement('div'); |
| 980 | sliderLRBtnEl.className = 'test-inputs-slider-btn-incdec test-inputs-slider-btn-' + btnName; |
| 981 | _rangeInputWrapperEl.appendChild(sliderLRBtnEl); |
| 982 | sliderLRBtnEl.addEventListener('click', inputRecorder.wrapUserInputListener({ |
| 983 | listener: function () { |
| 984 | if (_disabled) { return; } |
| 985 | // 0.1 + 0.2 = 0.30000000000000004 |
no test coverage detected
searching dependent graphs…