 // null means skipsUndoManager
        },
        actionUp: (e, obj) => {
          if (!obj._dragging) return;
          obj._dragging = false;
          var scale = obj.part.findObject('SCALE');
          var pt = e.diagram.lastInput.documentPoint;
          var loc = scale.getLocalPoint(pt);
          var val = Math.round(scale.graduatedValueForPoint(loc));
          e.diagram.model.commit((m) => {
            m.set(obj.part.data, 'value', obj._original);
          }, null); // null means skipsUndoManag