<commit_before>
function RotaryDial(title,parent,name, min,max, size, onChanging, onChanged)
{
		this.title = title;
		this.name = name;
		this.minimum = min;
		this.maximum = max;
		this.size = size;
		this.parentDiv = document.getElementById(parent);
		this.doChanging = onChanging;
		this.doChanged = onChanged;
		this.initialized = false;
		this.initCanvas();
};


	
RotaryDial.prototype.initCanvas = function () {
		// console.log("Initializing canvas...");
		this.canvasShape = document.createElement("CANVAS");
		this.canvasShape.setAttribute("class","dialShape");
		this.canvasBack = document.createElement("CANVAS");
		this.canvasBack.setAttribute("class","dialBack");
		this.canvasMoving = document.createElement("CANVAS");
		this.canvasMoving.setAttribute("class","dialMoving");
		this.canvasMoving.addEventListener('mousedown',this.canvasMouseDown.bind(this) , false);
		this.canvasMoving.addEventListener('touchstart',this.canvasTouch.bind(this) , false);
		this.canvasMoving.addEventListener('mousemove',this.canvasMouseDrag.bind(this), false);
		this.canvasMoving.addEventListener('touchmove',this.canvasTouchDrag.bind(this), false);
		this.canvasMoving.addEventListener('mouseup',this.canvasClick.bind(this) , false);

		this.canvasFrame = document.createElement("CANVAS");
		this.canvasFrame.setAttribute("class","dialFrame");
	
		this.parentDiv.appendChild(this.canvasShape);
		this.parentDiv.appendChild(this.canvasBack);
		this.parentDiv.appendChild(this.canvasMoving);
		this.parentDiv.appendChild(this.canvasFrame);
			
/* 		if (!this.canvasShape || !this.canvasBack || !this.canvasMoving) {
			setTimeout(this.initCanvas.bind(this), 100);
		} 
		else {<commit_msg>Added touchend<commit_after>
function RotaryDial(title,parent,name, min,max, size, onChanging, onChanged)
{
		this.title = title;
		this.name = name;
		this.minimum = min;
		this.maximum = max;
		this.size = size;
		this.parentDiv = document.getElementById(parent);
		this.doChanging = onChanging;
		this.doChanged = onChanged;
		this.initialized = false;
		this.initCanvas();
};


	
RotaryDial.prototype.initCanvas = function () {
		// console.log("Initializing canvas...");
		this.canvasShape = document.createElement("CANVAS");
		this.canvasShape.setAttribute("class","dialShape");
		this.canvasBack = document.createElement("CANVAS");
		this.canvasBack.setAttribute("class","dialBack");
		this.canvasMoving = document.createElement("CANVAS");
		this.canvasMoving.setAttribute("class","dialMoving");
		this.canvasMoving.addEventListener('mousedown',this.canvasMouseDown.bind(this) , false);
		this.canvasMoving.addEventListener('touchstart',this.canvasTouch.bind(this) , false);
		this.canvasMoving.addEventListener('mousemove',this.canvasMouseDrag.bind(this), false);
		this.canvasMoving.addEventListener('touchmove',this.canvasTouchDrag.bind(this), false);
		this.canvasMoving.addEventListener('mouseup',this.canvasClick.bind(this) , false);
		this.canvasMoving.addEventListener('touchend',this.canvasClick.bind(this) , false);

		this.canvasFrame = document.createElement("CANVAS");
		this.canvasFrame.setAttribute("class","dialFrame");
	
		this.parentDiv.appendChild(this.canvasShape);
		this.parentDiv.appendChild(this.canvasBack);
		this.parentDiv.appendChild(this.canvasMoving);
		this.parentDiv.appendChild(this.canvasFrame);
			
/* 		if (!this.canvasShape || !this.canvasBack || !this.canvasMoving) {
			setTimeout(this.initCanvas.bind(this), 100);
		} 
		else {
{'fraction_non_alphanumeric': 0.14937879225657325, 'fraction_numerical': 0.0017336030049118752, 'mean_word_length': 6.05091649694501, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1253785', 'n_tokens_mistral': 1152, 'n_tokens_neox': 1037, 'n_words': 129}