()
| 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 |
| 986 | _currVal = round(_currVal + delta, _precision); |
| 987 | updateRangeInputViewValue(_currVal); |
| 988 | dispatchRangeInputChangedEvent(); |
| 989 | }, |
| 990 | op: btnName + _opSuffix |
| 991 | })); |
| 992 | } |
| 993 | createRangeInputDeltaBtn('decrease', -_step); |
| 994 | createRangeInputDeltaBtn('increase', _step); |
| 995 | |
| 996 | _rangeInputEl = document.createElement('input'); |
| 997 | _rangeInputEl.className = 'test-inputs-slider-input'; |
| 998 | _rangeInputEl.setAttribute('type', 'range'); |
| 999 | _rangeInputEl.addEventListener('input', inputRecorder.wrapUserInputListener({ |
| 1000 | listener: function () { |
| 1001 | if (_disabled) { return; } |
| 1002 | _currVal = +this.value; |
| 1003 | updateRangeInputViewValue(_currVal); |
| 1004 | dispatchRangeInputChangedEvent(); |
| 1005 | }, |
| 1006 | op: 'slide' + _opSuffix, |
| 1007 | createRecordArgs: function () { |
| 1008 | return [+this.value]; |
| 1009 | }, |
| 1010 | prepareReplay: function (recordArgs) { |
| 1011 | _rangeInputEl.value = recordArgs[0]; |
| 1012 | return { |
| 1013 | this: _rangeInputEl, |
no test coverage detected
searching dependent graphs…