ker/mod/tfw.view.slider.js
function onDragEnd(evt) {
    this._dragging = false;

    const
        rect = this._rect,
        x = valueToX.call(this, this._value),
        min = -x,
        max = rect.width - x,
        tx = clamp(evt.x - evt.x0, min, max);
    Dom.css(this.$elements.button, { transform: `translateX(0px)` });
    this.value = xToValue.call(this, x + tx);
}
function onDragEnd(evt) {
    this._dragging = false;

    const
        rect = this._rect,
        x = valueToX.call(this, this._value),
        min = -x,
        max = rect.width - x,
        tx = clamp(evt.x - evt.x0, min, max);
    Dom.css(this.$elements.button, { transform: `translateX(0px)` });
    this.value = xToValue.call(this, x + tx);
}
function onDragEnd ( evt ) { this . _dragging = false ; const rect = this . _rect , x = valueToX . call ( this , this . _value ) , min = - x , max = rect . width - x , tx = clamp ( evt . x - evt . x0 , min , max ) ; Dom . css ( this . $elements . button , { transform : ` ` } ) ; this . value = xToValue . call ( this , x + tx ) ; }
Enf of grag for the button. We can remove the temporaty translation.

@this ViewXJS
@param   {object} evt - `{ x, ... }`
@returns {undefined}
Enf of grag for the button . We can remove the temporaty translation .