beautify_js

This commit is contained in:
Ilya Kantor 2015-03-09 18:48:58 +03:00
parent 0febe4f5fd
commit 5c2f32e184
208 changed files with 3891 additions and 1474 deletions

View file

@ -1,12 +1,11 @@
function bench(test, times) {
var sum = 0;
for(var i=0; i<times; i++) {
if(test.setup) test.setup();
var t = new Date();
test.work();
sum += (new Date() - t);
if(test.tearDown) test.tearDown();
}
return sum;
var sum = 0;
for (var i = 0; i < times; i++) {
if (test.setup) test.setup();
var t = new Date();
test.work();
sum += (new Date() - t);
if (test.tearDown) test.tearDown();
}
return sum;
}

View file

@ -2,22 +2,22 @@ var DocumentFragmentTest = new function() {
var benchList = document.getElementById('bench-list');
var items = [];
for(var i=0; i<100; i++) {
for (var i = 0; i < 100; i++) {
var li = document.createElement('li');
li.innerHTML = i;
items.push(li);
items.push(li);
}
this.insertPlain = new function() {
this.setup = function() {
while(benchList.firstChild) {
while (benchList.firstChild) {
benchList.removeChild(benchList.firstChild);
}
}
this.work = function() {
for(var i=0; i<items.length; i++) {
for (var i = 0; i < items.length; i++) {
benchList.appendChild(items[i]);
}
}
@ -28,18 +28,18 @@ var DocumentFragmentTest = new function() {
this.setup = function() {
// очистить всё
while(benchList.firstChild) {
while (benchList.firstChild) {
benchList.removeChild(benchList.firstChild);
}
}
this.work = function() {
var docFrag = document.createDocumentFragment();
for(var i=0; i<items.length; i++) {
for (var i = 0; i < items.length; i++) {
docFrag.appendChild(items[i]);
}
benchList.appendChild(docFrag);
}
};
}
}

View file

@ -2,22 +2,22 @@ var DocumentFragmentTest = new function() {
var benchList = document.getElementById('bench-list');
var items = [];
for(var i=0; i<100; i++) {
for (var i = 0; i < 100; i++) {
var li = document.createElement('li');
li.innerHTML = i;
items.push(li);
items.push(li);
}
this.insertPlain = new function() {
this.setup = function() {
while(benchList.firstChild) {
while (benchList.firstChild) {
benchList.removeChild(benchList.firstChild);
}
}
this.work = function() {
for(var i=0; i<items.length; i++) {
for (var i = 0; i < items.length; i++) {
benchList.appendChild(items[i]);
}
}
@ -28,18 +28,18 @@ var DocumentFragmentTest = new function() {
this.setup = function() {
// очистить всё
while(benchList.firstChild) {
while (benchList.firstChild) {
benchList.removeChild(benchList.firstChild);
}
}
this.work = function() {
var docFrag = document.createDocumentFragment();
for(var i=0; i<items.length; i++) {
for (var i = 0; i < items.length; i++) {
docFrag.appendChild(items[i]);
}
benchList.appendChild(docFrag);
}
};
}
}

View file

@ -1,4 +1,3 @@
/* 1. Вставляет TBODY в документ сразу. а затем элементы */
var appendFirst = new function() {
var benchTable;
@ -6,7 +5,7 @@ var appendFirst = new function() {
this.setup = function() {
// очистить всё
benchTable = document.getElementById('bench-table')
while(benchTable.firstChild) {
while (benchTable.firstChild) {
benchTable.removeChild(benchTable.firstChild);
}
}
@ -16,12 +15,12 @@ var appendFirst = new function() {
var tbody = document.createElement('TBODY');
benchTable.appendChild(tbody);
for(var i=0; i<20; i++) {
for (var i = 0; i < 20; i++) {
var tr = document.createElement('TR');
tbody.appendChild(tr);
for(var j=0; j<20; j++) {
for (var j = 0; j < 20; j++) {
var td = document.createElement('td');
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));
td.appendChild(document.createTextNode('' + i.toString(20) + j.toString(20)));
tr.appendChild(td);
}
}
@ -36,7 +35,7 @@ var appendLast = new function() {
this.setup = function() {
// очистить всё
benchTable = document.getElementById('bench-table');
while(benchTable.firstChild) {
while (benchTable.firstChild) {
benchTable.removeChild(benchTable.firstChild);
}
}
@ -44,17 +43,17 @@ var appendLast = new function() {
this.work = function() {
var tbody = document.createElement('TBODY');
for(var i=0; i<20; i++) {
for (var i = 0; i < 20; i++) {
var tr = document.createElement('TR');
tbody.appendChild(tr);
for(var j=0; j<20; j++) {
for (var j = 0; j < 20; j++) {
var td = document.createElement('td');
tr.appendChild(td);
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));
td.appendChild(document.createTextNode('' + i.toString(20) + j.toString(20)));
}
}
benchTable.appendChild(tbody);
}
}
}

View file

@ -3,20 +3,20 @@
if (typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement) {
HTMLElement.prototype.insertAdjacentElement = function(where, parsedNode) {
switch(where) {
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode, this)
break;
case 'afterBegin':
this.insertBefore(parsedNode, this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if(this.nextSibling) this.parentNode.insertBefore(parsedNode, this.nextSibling);
else this.parentNode.appendChild(parsedNode);
break;
switch (where) {
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode, this)
break;
case 'afterBegin':
this.insertBefore(parsedNode, this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if (this.nextSibling) this.parentNode.insertBefore(parsedNode, this.nextSibling);
else this.parentNode.appendChild(parsedNode);
break;
}
}

View file

@ -13,6 +13,6 @@ function getIEComputedStyle(elem, prop) {
// restore values for left
elem.style.left = leftCopy;
elem.runtimeStyle.left = runtimeLeftCopy;
return value;
}

View file

@ -1,8 +1,6 @@
var elems = document.querySelectorAll('form,div,p');
for(var i=0; i<elems.length; i++) {
for (var i = 0; i < elems.length; i++) {
elems[i].addEventListener("click", highlightThis, true);
elems[i].addEventListener("click", highlightThis, false);
}

View file

@ -1,4 +1,3 @@
var form = document.querySelector('form');
form.onclick = function(event) {
@ -7,4 +6,4 @@ form.onclick = function(event) {
alert("target = " + event.target.tagName + ", this=" + this.tagName);
event.target.style.backgroundColor = '';
};
};

View file

@ -1,7 +1,6 @@
var elems = document.querySelectorAll('form,div,p');
for(var i=0; i<elems.length; i++) {
for (var i = 0; i < elems.length; i++) {
elems[i].addEventListener("click", highlightThis, true);
}

View file

@ -5,4 +5,4 @@ menu.onclick = function(event) {
alert(href);
return false; // prevent url change
};
};

View file

@ -1,3 +1,3 @@
function go () {
function go() {
alert("ok");
}
}

View file

@ -1,3 +1,3 @@
function go() {
alert("ok");
}
}

View file

@ -1,4 +1,3 @@
function HoverIntent(options) {
options = Object.create(options); // not to modify the object
@ -34,7 +33,7 @@ function HoverIntent(options) {
pX = event.pageX;
pY = event.pageY;
pTime = Date.now();
elem.addEventListener('mousemove', onMouseMove);
});
@ -73,5 +72,4 @@ function HoverIntent(options) {
}
}
}
}

View file

@ -1,5 +1,3 @@
function HoverIntent(options) {
/* ваш код */
}
}

View file

@ -1,4 +1,3 @@
// элемент TD, внутри которого сейчас курсор
var currentElem = null;
@ -11,7 +10,7 @@ table.onmouseover = function(event) {
}
// посмотрим, куда пришёл курсор
var target = event.target;
var target = event.target;
// уж не на TD ли?
while (target != this) {
@ -33,7 +32,7 @@ table.onmouseout = function(event) {
// произошёл уход с элемента - проверим, куда, может быть на потомка?
var relatedTarget = event.relatedTarget;
if (relatedTarget) { // может быть relatedTarget = null
while(relatedTarget) {
while (relatedTarget) {
// идём по цепочке родителей и проверяем,
// если переход внутрь currentElem - игнорируем это событие
if (relatedTarget == currentElem) return;

View file

@ -1,12 +1,11 @@
table.onmouseover = function(event) {
var target = event.target;
var target = event.target;
target.style.background = 'pink';
text.value += "mouseover " + target.tagName + "\n";
};
table.onmouseout = function(event) {
var target = event.target;
var target = event.target;
target.style.background = '';
text.value += "mouseout " + target.tagName + "\n";
};

View file

@ -1,7 +1,6 @@
table.onmouseenter = table.onmouseleave = log;
function log(event) {
text.value += event.type+' [target: '+event.target.tagName+']\n';
text.value += event.type + ' [target: ' + event.target.tagName + ']\n';
text.scrollTop = text.scrollHeight;
}

View file

@ -1,5 +1,4 @@
function log(event) {
text.value += event.type+' [target: '+event.target.className+']\n';
text.value += event.type + ' [target: ' + event.target.className + ']\n';
text.scrollTop = text.scrollHeight;
}

View file

@ -1,5 +1,4 @@
function mouselog(event) {
text.value += event.type+' [target: '+event.target.className+']\n'
text.value += event.type + ' [target: ' + event.target.className + ']\n'
text.scrollTop = text.scrollHeight
}

View file

@ -1,5 +1,5 @@
green.onmouseover = green.onmouseout = green.onmousemove = handler;
function handler(event) {
var type = event.type;
while (type < 11) type += ' ';
@ -9,38 +9,39 @@
}
function clearText() {
text.value = "";
lastMessage = "";
}
function clearText() {
text.value = "";
lastMessage = "";
}
var lastMessageTime = 0;
var lastMessage = "";
var repeatCounter = 1;
function log(message) {
if (lastMessageTime == 0) lastMessageTime = new Date();
var lastMessageTime = 0;
var lastMessage = "";
var repeatCounter = 1;
var time = new Date();
function log(message) {
if (lastMessageTime == 0) lastMessageTime = new Date();
if (time - lastMessageTime > 500) {
message = '------------------------------\n' + message;
}
var time = new Date();
if (message === lastMessage) {
repeatCounter++;
if (repeatCounter == 2) {
text.value = text.value.trim() + ' x 2\n';
} else {
text.value = text.value.slice(0, text.value.lastIndexOf('x') + 1) + repeatCounter + "\n";
}
if (time - lastMessageTime > 500) {
message = '------------------------------\n' + message;
}
} else {
repeatCounter = 1;
text.value += message + "\n";
}
if (message === lastMessage) {
repeatCounter++;
if (repeatCounter == 2) {
text.value = text.value.trim() + ' x 2\n';
} else {
text.value = text.value.slice(0, text.value.lastIndexOf('x') + 1) + repeatCounter + "\n";
}
text.scrollTop = text.scrollHeight;
} else {
repeatCounter = 1;
text.value += message + "\n";
}
lastMessageTime = time;
lastMessage = message;
}
text.scrollTop = text.scrollHeight;
lastMessageTime = time;
lastMessage = message;
}

View file

@ -8,14 +8,14 @@ function handler(event) {
}
log.value += event.type + ': ' +
'target=' + str(event.target) +
', relatedTarget=' + str(event.relatedTarget) + "\n";
'target=' + str(event.target) +
', relatedTarget=' + str(event.relatedTarget) + "\n";
log.scrollTop = 1e9;
if (event.type == 'mouseover') {
event.target.style.background = 'pink'
}
if (event.type == 'mouseout') {
event.target.style.background = ''
}
}
}

View file

@ -1,5 +1,3 @@
document.onmousedown = function(e) {
var dragElement = e.target;
@ -7,7 +5,7 @@ document.onmousedown = function(e) {
if (!dragElement.classList.contains('draggable')) return;
var coords, shiftX, shiftY;
startDrag(e.clientX, e.clientY);
document.onmousemove = function(e) {
@ -25,10 +23,10 @@ document.onmousedown = function(e) {
shiftX = clientX - dragElement.getBoundingClientRect().left;
shiftY = clientY - dragElement.getBoundingClientRect().top;
dragElement.style.position = 'fixed';
document.body.appendChild(dragElement);
document.body.appendChild(dragElement);
moveAt(clientX, clientY);
};
@ -44,8 +42,8 @@ document.onmousedown = function(e) {
function moveAt(clientX, clientY) {
// новые координаты
var newX = clientX - shiftX;
var newY = clientY - shiftY;
var newX = clientX - shiftX;
var newY = clientY - shiftY;
// ------- обработаем вынос за нижнюю границу окна ------
// новая нижняя граница элемента
@ -60,11 +58,11 @@ document.onmousedown = function(e) {
// обычно скроллим на 10px
// но если расстояние от newBottom до docBottom меньше, то меньше
var scrollY = Math.min(docBottom - newBottom, 10);
// ошибки округления при полностью прокрученной странице
// могут привести к отрицательному scrollY, что будет означать прокрутку вверх
// поправим эту ошибку
if (scrollY < 0) scrollY = 0;
if (scrollY < 0) scrollY = 0;
window.scrollBy(0, scrollY);
@ -83,7 +81,7 @@ document.onmousedown = function(e) {
window.scrollBy(0, -scrollY);
// при резком движении мыши элемент мог "вылететь" сильно вверх, поправим его
newY = Math.max(newY, 0);
newY = Math.max(newY, 0);
}

View file

@ -8,12 +8,12 @@ var DragManager = new function() {
* downX/downY - координаты, на которых был mousedown
* shiftX/shiftY - относительный сдвиг курсора от угла элемента
* }
*/
*/
var dragObject = {};
var self = this;
function onMouseDown(e){
function onMouseDown(e) {
if (e.which != 1) return;
@ -32,12 +32,12 @@ var DragManager = new function() {
function onMouseMove(e) {
if (!dragObject.elem) return; // элемент не зажат
if ( !dragObject.avatar ) { // если перенос не начат...
if (!dragObject.avatar) { // если перенос не начат...
var moveX = e.pageX - dragObject.downX;
var moveY = e.pageY - dragObject.downY;
// если мышь передвинулась в нажатом состоянии недостаточно далеко
if ( Math.abs(moveX) < 3 && Math.abs(moveY) < 3 ) {
if (Math.abs(moveX) < 3 && Math.abs(moveY) < 3) {
return;
}
@ -75,17 +75,17 @@ var DragManager = new function() {
}
function finishDrag(e) {
var dropElem = findDroppable(e);
var dropElem = findDroppable(e);
if (!dropElem) {
self.onDragCancel(dragObject);
} else {
self.onDragEnd(dragObject, dropElem);
}
if (!dropElem) {
self.onDragCancel(dragObject);
} else {
self.onDragEnd(dragObject, dropElem);
}
}
function createAvatar(e) {
// запомнить старые свойства, чтобы вернуться к ним при отмене переноса
var avatar = dragObject.elem;
var old = {
@ -140,13 +140,13 @@ var DragManager = new function() {
document.onmouseup = onMouseUp;
document.onmousedown = onMouseDown;
this.onDragEnd = function(dragObject, dropElem) { };
this.onDragCancel = function(dragObject) { };
this.onDragEnd = function(dragObject, dropElem) {};
this.onDragCancel = function(dragObject) {};
};
function getCoords(elem) { // кроме IE8-
function getCoords(elem) { // кроме IE8-
var box = elem.getBoundingClientRect();
return {
@ -154,5 +154,4 @@ function getCoords(elem) { // кроме IE8-
left: box.left + pageXOffset
};
}
}

View file

@ -1,14 +1,13 @@
kinput.onkeydown = kinput.onkeyup = kinput.onkeypress = handle;
var lastTime = Date.now();
function handle(e) {
if (form.elements[e.type + 'Ignore'].checked) return;
var text = event.type +
' keyCode=' + e.keyCode +
' which=' + e.which +
var text = event.type +
' keyCode=' + e.keyCode +
' which=' + e.which +
' charCode=' + e.charCode +
' char=' + String.fromCharCode(e.keyCode || e.charCode) +
(e.shiftKey ? ' +shift' : '') +
@ -26,4 +25,4 @@ function handle(e) {
if (form.elements[e.type + 'Stop'].checked) {
e.preventDefault();
}
}
}

View file

@ -1,4 +1,3 @@
var table = document.getElementById('bagua-table');
var editingTd;
@ -7,22 +6,22 @@ table.onclick = function(event) {
var target = event.target;
while(target != table) {
while (target != table) {
if (target.className == 'edit-cancel') {
finishTdEdit(editingTd.elem, false);
return;
finishTdEdit(editingTd.elem, false);
return;
}
if (target.className == 'edit-ok') {
finishTdEdit(editingTd.elem, true);
return;
finishTdEdit(editingTd.elem, true);
return;
}
if (target.nodeName == 'TD') {
if (editingTd) return; // already editing
makeTdEditable(target);
return;
makeTdEditable(target);
return;
}
target = target.parentNode;
@ -30,15 +29,15 @@ table.onclick = function(event) {
}
function makeTdEditable(td) {
editingTd = {
elem: td,
data: td.innerHTML
editingTd = {
elem: td,
data: td.innerHTML
};
td.classList.add('edit-td'); // td, not textarea! the rest of rules will cascade
var textArea = document.createElement('textarea');
textArea.style.width = td.clientWidth + 'px';
textArea.style.width = td.clientWidth + 'px';
textArea.style.height = td.clientHeight + 'px';
textArea.className = 'edit-area';
@ -47,7 +46,7 @@ function makeTdEditable(td) {
td.appendChild(textArea);
textArea.focus();
td.insertAdjacentHTML("beforeEnd",
td.insertAdjacentHTML("beforeEnd",
'<div class="edit-controls"><button class="edit-ok">OK</button><button class="edit-cancel">CANCEL</button></div>'
);
}
@ -60,5 +59,4 @@ function finishTdEdit(td, isOk) {
}
td.classList.remove('edit-td'); // remove edit class
editingTd = null;
}
}

View file

@ -1,4 +1,3 @@
var table = document.getElementById('bagua-table');
/* ваш код */

View file

@ -28,4 +28,4 @@ function Clock(options) {
timer = setInterval(render, 1000);
};
}
}

View file

@ -1,4 +1,3 @@
function ListSelect(options) {
var elem = options.elem;
@ -12,7 +11,7 @@ function ListSelect(options) {
var li = e.target.closest('li');
if (!li) return;
if(e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
if (e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
toggleSelect(li);
} else if (e.shiftKey) {
selectFromLast(li);
@ -45,17 +44,17 @@ function ListSelect(options) {
if (startElem == target) {
// клик на том же элементе, что и раньше
// это особый случай
return;
return;
}
var isLastClickedBefore = startElem.compareDocumentPosition(target) & 4;
if (isLastClickedBefore) {
for(var elem = startElem; elem != target; elem = elem.nextElementSibling) {
for (var elem = startElem; elem != target; elem = elem.nextElementSibling) {
elem.classList.add('selected');
}
} else {
for(var elem = startElem; elem != target; elem = elem.previousElementSibling) {
for (var elem = startElem; elem != target; elem = elem.previousElementSibling) {
elem.classList.add('selected');
}
}
@ -66,4 +65,4 @@ function ListSelect(options) {
return li.innerHTML;
});
};
}
}

View file

@ -1,4 +1,3 @@
function Voter(options) {
var elem = this._elem = options.elem;
this._voteElem = elem.querySelector('.vote');
@ -29,5 +28,4 @@ Voter.prototype._voteDecrease = function() {
Voter.prototype.setVote = function(vote) {
this._voteElem.innerHTML = +vote;
};
};

View file

@ -10,4 +10,4 @@ StepVoter.prototype._voteIncrease = function() {
StepVoter.prototype._voteDecrease = function() {
this._voteElem.innerHTML = +this._voteElem.innerHTML - this._step;
};
};

View file

@ -1,4 +1,3 @@
function Voter(options) {
var elem = this._elem = options.elem;
this._voteElem = elem.querySelector('.vote');
@ -29,5 +28,4 @@ Voter.prototype._voteDecrease = function() {
Voter.prototype.setVote = function(vote) {
this._voteElem.innerHTML = +vote;
};
};

View file

@ -15,8 +15,8 @@ function Menu(options) {
titleElem.className = "title";
titleElem.textContent = options.title;
elem.onmousedown = function() {
return false;
elem.onmousedown = function() {
return false;
};
elem.onclick = function(event) {

View file

@ -1,7 +1,9 @@
function Menu(options) {
var elem = options.elem;
elem.onmousedown = function() { return false; }
elem.onmousedown = function() {
return false;
}
elem.onclick = function(event) {
if (event.target.closest('.title')) {
@ -9,4 +11,4 @@ function Menu(options) {
}
};
}
}

View file

@ -7,7 +7,9 @@ function Menu(options) {
}
function render() {
var html = options.template({title: options.title});
var html = options.template({
title: options.title
});
elem = document.createElement('div');
elem.innerHTML = html;
@ -32,8 +34,10 @@ function Menu(options) {
function renderItems() {
if (elem.querySelector('ul')) return;
var listHtml = options.listTemplate({items: options.items});
var listHtml = options.listTemplate({
items: options.items
});
elem.insertAdjacentHTML("beforeEnd", listHtml);
}
@ -59,4 +63,4 @@ function Menu(options) {
this.toggle = toggle;
this.close = close;
this.open = open;
}
}

View file

@ -7,7 +7,9 @@ function Menu(options) {
}
function render() {
var html = options.template({title: options.title});
var html = options.template({
title: options.title
});
elem = document.createElement('div');
elem.innerHTML = html;
@ -26,8 +28,10 @@ function Menu(options) {
function renderItems() {
if (elem.querySelector('ul')) return;
var listHtml = options.listTemplate({items: options.items});
var listHtml = options.listTemplate({
items: options.items
});
elem.insertAdjacentHTML("beforeEnd", listHtml);
}
@ -49,4 +53,4 @@ function Menu(options) {
this.toggle = toggle;
this.close = close;
this.open = open;
}
}

View file

@ -7,7 +7,9 @@ function Menu(options) {
}
function render() {
var html = options.template({title: options.title});
var html = options.template({
title: options.title
});
elem = document.createElement('div');
elem.innerHTML = html;
@ -26,8 +28,10 @@ function Menu(options) {
function renderItems() {
if (elem.querySelector('ul')) return;
var listHtml = options.listTemplate({items: options.items});
var listHtml = options.listTemplate({
items: options.items
});
elem.insertAdjacentHTML("beforeEnd", listHtml);
}
@ -49,4 +53,4 @@ function Menu(options) {
this.toggle = toggle;
this.close = close;
this.open = open;
}
}

View file

@ -28,9 +28,12 @@ function Voter(options) {
function setVote(vote) {
voteElem.innerHTML = +vote;
var widgetEvent = new CustomEvent("change", { bubbles: true, detail: +vote });
var widgetEvent = new CustomEvent("change", {
bubbles: true,
detail: +vote
});
elem.dispatchEvent(widgetEvent);
};
this.setVote = setVote;
}
}

View file

@ -1,4 +1,3 @@
function ListSelect(options) {
var elem = options.elem;
@ -12,7 +11,7 @@ function ListSelect(options) {
var li = e.target.closest('li');
if (!li) return;
if(e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
if (e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
toggleSelect(li);
} else if (e.shiftKey) {
selectFromLast(li);
@ -47,17 +46,17 @@ function ListSelect(options) {
if (startElem == target) {
// клик на том же элементе, что и раньше
// это особый случай
return;
return;
}
var isLastClickedBefore = startElem.compareDocumentPosition(target) & 4;
if (isLastClickedBefore) {
for(var elem = startElem; elem != target; elem = elem.nextElementSibling) {
for (var elem = startElem; elem != target; elem = elem.nextElementSibling) {
elem.classList.add('selected');
}
} else {
for(var elem = startElem; elem != target; elem = elem.previousElementSibling) {
for (var elem = startElem; elem != target; elem = elem.previousElementSibling) {
elem.classList.add('selected');
}
}
@ -65,7 +64,7 @@ function ListSelect(options) {
function dispatchEvent() {
var widgetEvent = new CustomEvent("select", {
bubbles: true,
bubbles: true,
detail: getSelected()
});
elem.dispatchEvent(widgetEvent);
@ -78,4 +77,4 @@ function ListSelect(options) {
};
this.getSelected = getSelected;
}
}

View file

@ -25,11 +25,11 @@ function CustomSelect(options) {
elem.querySelector('.title').innerHTML = title;
var widgetEvent = new CustomEvent('select', {
bubbles: true,
bubbles: true,
detail: {
title: title,
value: value
}
}
});
elem.dispatchEvent(widgetEvent);
@ -53,4 +53,4 @@ function CustomSelect(options) {
isOpen = false;
}
}
}

View file

@ -38,11 +38,11 @@ function Slider(options) {
var newLeft = clientX - shiftX - sliderCoords.left;
// курсор ушёл вне слайдера
if(newLeft < 0) {
if (newLeft < 0) {
newLeft = 0;
}
var rightEdge = elem.offsetWidth - thumbElem.offsetWidth;
if(newLeft > rightEdge) {
if (newLeft > rightEdge) {
newLeft = rightEdge;
}
@ -59,7 +59,7 @@ function Slider(options) {
}
function positionToValue(left) {
return Math.round( left / pixelsPerValue);
return Math.round(left / pixelsPerValue);
}
function onDocumentMouseMove(e) {
@ -85,4 +85,4 @@ function Slider(options) {
}
this.setValue = setValue;
}
}

View file

@ -7,7 +7,9 @@ function Menu(options) {
}
function render() {
var html = options.template({title: options.title});
var html = options.template({
title: options.title
});
elem = document.createElement('div');
elem.innerHTML = html;
@ -32,8 +34,10 @@ function Menu(options) {
function renderItems() {
if (elem.querySelector('ul')) return;
var listHtml = options.listTemplate({items: options.items});
var listHtml = options.listTemplate({
items: options.items
});
elem.insertAdjacentHTML("beforeEnd", listHtml);
}
@ -59,4 +63,4 @@ function Menu(options) {
this.toggle = toggle;
this.close = close;
this.open = open;
}
}

View file

@ -7,7 +7,9 @@ function Menu(options) {
}
function render() {
var html = options.template({title: options.title});
var html = options.template({
title: options.title
});
elem = document.createElement('div');
elem.innerHTML = html;
@ -32,13 +34,15 @@ function Menu(options) {
function renderItems() {
if (elem.querySelector('ul')) return;
var listHtml = options.listTemplate({items: options.items});
var listHtml = options.listTemplate({
items: options.items
});
elem.insertAdjacentHTML("beforeEnd", listHtml);
}
function select(link) {
var widgetEvent = new CustomEvent("select", {
var widgetEvent = new CustomEvent("select", {
bubbles: true,
detail: link.getAttribute('href').slice(1)
});
@ -63,4 +67,4 @@ function Menu(options) {
this.toggle = toggle;
this.close = close;
this.open = open;
}
}