slider = {
return function(props) {
const {min = 0, max = 100, initialValue = 50, step = 1, prefix = '', suffix = ''} = props;
const container = document.createElement('div');
const prefixNode = document.createElement('span');
const suffixNode = document.createElement('span');
const inputNode = document.createElement('input');
suffixNode.appendChild(document.createTextNode(suffix));
prefixNode.appendChild(document.createTextNode(prefix));
inputNode.setAttribute('type', 'range');
inputNode.setAttribute('min', min);
inputNode.setAttribute('max', max);
inputNode.setAttribute('step', step);
inputNode.setAttribute('value', initialValue);
container.appendChild(prefixNode);
container.appendChild(inputNode);
container.appendChild(suffixNode);
container.value = Number(initialValue);
inputNode.addEventListener('input', evt => {
container.value = Number(evt.target.value);
container.dispatchEvent(new CustomEvent("input"));
});
return container;
}
}