diff --git a/1-js/2-first-steps/17-function-basics/style.png b/1-js/2-first-steps/17-function-basics/style.png deleted file mode 100644 index f61d2f804..000000000 Binary files a/1-js/2-first-steps/17-function-basics/style.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/1.png b/1-js/5-functions-closures/2-closures/1.png deleted file mode 100755 index 737bb3c5b..000000000 Binary files a/1-js/5-functions-closures/2-closures/1.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/1@2x.png b/1-js/5-functions-closures/2-closures/1@2x.png deleted file mode 100755 index 43c32b228..000000000 Binary files a/1-js/5-functions-closures/2-closures/1@2x.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/2.png b/1-js/5-functions-closures/2-closures/2.png deleted file mode 100755 index d86914553..000000000 Binary files a/1-js/5-functions-closures/2-closures/2.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/2@2x.png b/1-js/5-functions-closures/2-closures/2@2x.png deleted file mode 100755 index b47c9e448..000000000 Binary files a/1-js/5-functions-closures/2-closures/2@2x.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/3.png b/1-js/5-functions-closures/2-closures/3.png deleted file mode 100755 index ec0326e8f..000000000 Binary files a/1-js/5-functions-closures/2-closures/3.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/3@2x.png b/1-js/5-functions-closures/2-closures/3@2x.png deleted file mode 100755 index 14b1f1db8..000000000 Binary files a/1-js/5-functions-closures/2-closures/3@2x.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/4.png b/1-js/5-functions-closures/2-closures/4.png deleted file mode 100755 index 71591c2f0..000000000 Binary files a/1-js/5-functions-closures/2-closures/4.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/4@2x.png b/1-js/5-functions-closures/2-closures/4@2x.png deleted file mode 100755 index 5c89966c3..000000000 Binary files a/1-js/5-functions-closures/2-closures/4@2x.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/5.png b/1-js/5-functions-closures/2-closures/5.png deleted file mode 100755 index a1bad61ce..000000000 Binary files a/1-js/5-functions-closures/2-closures/5.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/5@2x.png b/1-js/5-functions-closures/2-closures/5@2x.png deleted file mode 100755 index 08bf3d2fe..000000000 Binary files a/1-js/5-functions-closures/2-closures/5@2x.png and /dev/null differ diff --git a/1-js/5-functions-closures/2-closures/6.png b/1-js/5-functions-closures/2-closures/6.png deleted file mode 100755 index 028308ffc..000000000 Binary files a/1-js/5-functions-closures/2-closures/6.png and /dev/null differ diff --git a/2-ui/1-document/15-metrics/clientWidthNoPadding.png b/2-ui/1-document/15-metrics/clientWidthNoPadding.png deleted file mode 100755 index a5d9f26b6..000000000 Binary files a/2-ui/1-document/15-metrics/clientWidthNoPadding.png and /dev/null differ diff --git a/2-ui/5-widgets/6-widget-tasks/6-slider-events/slider.png b/2-ui/5-widgets/5-custom-events/4-slider-events/slider.png old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/6-slider-events/slider.png rename to 2-ui/5-widgets/5-custom-events/4-slider-events/slider.png diff --git a/2-ui/5-widgets/6-widget-tasks/6-slider-events/solution.md b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.md similarity index 72% rename from 2-ui/5-widgets/6-widget-tasks/6-slider-events/solution.md rename to 2-ui/5-widgets/5-custom-events/4-slider-events/solution.md index a51add2ae..94c33f0e4 100644 --- a/2-ui/5-widgets/6-widget-tasks/6-slider-events/solution.md +++ b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.md @@ -1,4 +1,6 @@ +Для решения этой задачи достаточно создать две функции: `valueToPosition` будет получать по значению положение бегунка, а `positionToValue` -- наоборот, транслировать текущую координату бегунка в значение. + Как сопоставить позицию слайдера и значение? Для этого посмотрим крайние значения слайдера. Допустим, размер бегунка `10px`. @@ -17,10 +19,16 @@ pixelsPerValue = (sliderElem.clientWidth-thumbElem.clientWidth) / max; Используя `pixelsPerValue` мы сможем переводить позицию бегунка в значение и обратно. -Крайнее левое значение `thumbElem.style.left` равно нулю, крайнее правой -- как раз ширине доступной области `sliderElem.clientWidth - thumbElem.clientWidth`. Поэтому можно получив значение, поделив его на `pixelsPerValue`: +Крайнее левое значение `thumbElem.style.left` равно нулю, крайнее правой -- как раз ширине доступной области `sliderElem.clientWidth - thumbElem.clientWidth`. Поэтому можно получить значение слайдера, поделив его на `pixelsPerValue`: ```js -value = Math.round( newLeft / pixelsPerValue); +function positionToValue(left) { + return Math.round( left / pixelsPerValue); +} + +function valueToPosition(value) { + return pixelsPerValue * value; +} ``` diff --git a/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/index.html b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/index.html new file mode 100644 index 000000000..c605ee284 --- /dev/null +++ b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/index.html @@ -0,0 +1,44 @@ + + + +
+ + + + + + + + + + + Slide: + Change: + + + + + + + + + diff --git a/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/slider.css b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/slider.css new file mode 100644 index 000000000..ab985b399 --- /dev/null +++ b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/slider.css @@ -0,0 +1,19 @@ +.slider { + margin: 5px; + width: 310px; + height: 15px; + border-radius: 5px; + background: #E0E0E0; + background: -moz-linear-gradient(left top, #E0E0E0, #EEEEEE) repeat scroll 0 0 transparent; + background: -webkit-gradient(linear, left top, right bottom, from(#E0E0E0), to(#EEEEEE)); + background: linear-gradient(left top, #E0E0E0, #EEEEEE); +} +.thumb { + position: relative; + top: -5px; + width: 10px; + height: 25px; + border-radius: 3px; + background: blue; + cursor: pointer; +} \ No newline at end of file diff --git a/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/slider.js b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/slider.js new file mode 100644 index 000000000..21fd7ebe0 --- /dev/null +++ b/2-ui/5-widgets/5-custom-events/4-slider-events/solution.view/slider.js @@ -0,0 +1,88 @@ +function Slider(options) { + var elem = options.elem; + + var thumbElem = elem.querySelector('.thumb'); + + var max = options.max || 100; + var sliderCoords, thumbCoords, shiftX, shiftY; + + // [<*>----------------] + // |...............| + // first last + var pixelsPerValue = (elem.clientWidth - thumbElem.clientWidth) / max; + + elem.ondragstart = function() { + return false; + }; + + elem.onmousedown = function(event) { + if (event.target.closest('.thumb')) { + startDrag(event.clientX, event.clientY); + return false; // disable selection start (cursor change) + } + } + + function startDrag(startClientX, startClientY) { + thumbCoords = thumbElem.getBoundingClientRect(); + shiftX = startClientX - thumbCoords.left; + shiftY = startClientY - thumbCoords.top; + + sliderCoords = elem.getBoundingClientRect(); + + document.addEventListener('mousemove', onDocumentMouseMove); + document.addEventListener('mouseup', onDocumentMouseUp); + } + + function moveTo(clientX) { + // вычесть координату родителя, т.к. position: relative + var newLeft = clientX - shiftX - sliderCoords.left; + + // курсор ушёл вне слайдера + if(newLeft < 0) { + newLeft = 0; + } + var rightEdge = elem.offsetWidth - thumbElem.offsetWidth; + if(newLeft > rightEdge) { + newLeft = rightEdge; + } + + thumbElem.style.left = newLeft + 'px'; + + elem.dispatchEvent(new CustomEvent('slide', { + bubbles: true, + detail: positionToValue(newLeft) + })); + } + + function valueToPosition(value) { + return pixelsPerValue * value; + } + + function positionToValue(left) { + return Math.round( left / pixelsPerValue); + } + + function onDocumentMouseMove(e) { + moveTo(e.clientX); + } + + function onDocumentMouseUp() { + endDrag(); + } + + function endDrag() { + document.removeEventListener('mousemove', onDocumentMouseMove); + document.removeEventListener('mouseup', onDocumentMouseUp); + + elem.dispatchEvent(new CustomEvent('change', { + bubbles: true, + detail: positionToValue(parseInt(thumbElem.style.left)) + })); + } + + function setValue(value) { + thumbElem.style.left = valueToPosition(value) + 'px'; + } + + this.setValue = setValue; +} diff --git a/2-ui/5-widgets/5-custom-events/4-slider-events/task.md b/2-ui/5-widgets/5-custom-events/4-slider-events/task.md new file mode 100644 index 000000000..bfb371cc6 --- /dev/null +++ b/2-ui/5-widgets/5-custom-events/4-slider-events/task.md @@ -0,0 +1,46 @@ +# Слайдер с событиями + +[importance 5] + +На основе слайдера из задачи [](/task/slider-widget) создайте графический компонент, который умеет возвращать/получать значение. + +Синтаксис: + +```js +var slider = new Slider({ + elem: document.getElementById('slider'), + max: 100 // слайдер на самой правой позиции соответствует 100 +}); +``` + +Метод `setValue` устанавливает значение: + +```js +slider.setValue(50); +``` + +У слайдера должно быть два события: `slide` при каждом передвижении и `change` при отпускании мыши (установке значения). + +Пример использования: + +```js +var sliderElem = document.getElementById('slider'); + +sliderElem.addEventListener('slide', function(event) { + document.getElementById('slide').innerHTML = event.detail; +}); + +sliderElem.addEventListener('change', function(event) { + document.getElementById('change').innerHTML = event.detail; +}); +``` + +В действии: +[iframe src="solution" height="80"] + +`createdCallback` | Элемент создан |
`attributeChangedCallback(name, prevValue, newValue)` | Атрибут добавлен, изменён или удалён |
Доброе утро, страна!
``` -Теперь, если у вас последний Chrome, вы увидите две строчки: "Доброе утро, страна!" в заголовке, а затем "Привет из подполья". +Теперь вы увидите две строчки: "Доброе утро, страна!" в заголовке, а затем "Привет из подполья". Shadow DOM примера выше в инструментах разработки: @@ -80,21 +78,21 @@ Shadow DOM примера выше в инструментах разработ Важные детали:`, а его содержимое, то есть в данном случае текст "Привет из подполья".
`, а его содержимое, то есть в данном случае текст "Доброе утро, страна!".
Доброе утро, страна!
``` @@ -153,23 +159,25 @@ Shadow DOM примера выше в инструментах разработ ## Шаблоны -Элемент `` предназначен для хранения "образца" разметки, предназначенного для вставки куда-либо. +Элемент `` предназначен для хранения "образца" разметки, невидимого и предназначенного для вставки куда-либо. + +Конечно, есть много способов записать произвольный невидимый текст в HTML. В чём же особенность ``? -Его отличие от обычных тегов в том, что его содержимое обрабатывается особым образом. Оно не показывается и считается находящимся вообще "вне документа". +Его отличие от обычных тегов в том, что его содержимое обрабатывается особым образом. Оно не только показывается, но и считается находящимся вообще "вне документа". -Однако, вместе с тем, оно всё же парсится браузером и записывается в виде `DocumentFragment` в свойство `content`. Предполагается, что мы, при необходимости, возьмём фрагмент `content` и вставим, куда надо. +Однако, вместе с тем, оно всё же обрабатывается браузером (а значит должно быть корректным HTML) и записывается как `DocumentFragment` в свойство тега `content`. Предполагается, что мы, при необходимости, возьмём `content` и вставим, куда надо. -Пример использования: +Пример вставки шаблона `tmpl` в Shadow DOM элемента `elem`: ```html - +Доброе утро, страна!
Привет из подполья!
- + ``` -Детали: +У нас получилось, что: +Жили мы тихо-мирно, и тут...
Доброе утро, страна!
diff --git a/3-more/1-webcomponents/index.md b/3-more/1-webcomponents/index.md index beb632799..596b06e05 100644 --- a/3-more/1-webcomponents/index.md +++ b/3-more/1-webcomponents/index.md @@ -1,2 +1,5 @@ # Веб-компоненты: взгляд в будущее +Веб-компоненты -- "платформа будущего": совокупность стандартов, которые позволяют описывать "свои теги" -- новые типы DOM-элементов, со своими свойствами и методами, инкапсулировать их DOM и стили. + +Современные браузеры поддерживают их частично. \ No newline at end of file diff --git a/archive/menu.html b/archive/menu.html new file mode 100644 index 000000000..0fb44f40f --- /dev/null +++ b/archive/menu.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + diff --git a/2-ui/5-widgets/6-widget-tasks/5-menu-animated/solution.md b/archive/widget-tasks/1-date-selector/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/5-menu-animated/solution.md rename to archive/widget-tasks/1-date-selector/solution.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/1-date-selector/solution.view/dateselector.js b/archive/widget-tasks/1-date-selector/solution.view/dateselector.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/1-date-selector/solution.view/dateselector.js rename to archive/widget-tasks/1-date-selector/solution.view/dateselector.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/1-date-selector/solution.view/index.html b/archive/widget-tasks/1-date-selector/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/1-date-selector/solution.view/index.html rename to archive/widget-tasks/1-date-selector/solution.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/1-date-selector/source.view/dateselector.js b/archive/widget-tasks/1-date-selector/source.view/dateselector.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/1-date-selector/source.view/dateselector.js rename to archive/widget-tasks/1-date-selector/source.view/dateselector.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/1-date-selector/source.view/index.html b/archive/widget-tasks/1-date-selector/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/1-date-selector/source.view/index.html rename to archive/widget-tasks/1-date-selector/source.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/1-date-selector/task.md b/archive/widget-tasks/1-date-selector/task.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/1-date-selector/task.md rename to archive/widget-tasks/1-date-selector/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/solution.md b/archive/widget-tasks/1-tooltip-over-element/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/solution.md rename to archive/widget-tasks/1-tooltip-over-element/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/solution.view/index.html b/archive/widget-tasks/1-tooltip-over-element/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/solution.view/index.html rename to archive/widget-tasks/1-tooltip-over-element/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/source.view/index.html b/archive/widget-tasks/1-tooltip-over-element/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/source.view/index.html rename to archive/widget-tasks/1-tooltip-over-element/source.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/task.md b/archive/widget-tasks/1-tooltip-over-element/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/task.md rename to archive/widget-tasks/1-tooltip-over-element/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/tooltip-fixed-center.png b/archive/widget-tasks/1-tooltip-over-element/tooltip-fixed-center.png old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/tooltip-fixed-center.png rename to archive/widget-tasks/1-tooltip-over-element/tooltip-fixed-center.png diff --git a/2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/tooltip-fixed-center2.png b/archive/widget-tasks/1-tooltip-over-element/tooltip-fixed-center2.png old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/1-tooltip-over-element/tooltip-fixed-center2.png rename to archive/widget-tasks/1-tooltip-over-element/tooltip-fixed-center2.png diff --git a/2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/index.html b/archive/widget-tasks/2-draggable-windows/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/index.html rename to archive/widget-tasks/2-draggable-windows/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.md b/archive/widget-tasks/2-draggable-windows/solution.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.md rename to archive/widget-tasks/2-draggable-windows/solution.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.view/draggableWindow.js b/archive/widget-tasks/2-draggable-windows/solution.view/draggableWindow.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.view/draggableWindow.js rename to archive/widget-tasks/2-draggable-windows/solution.view/draggableWindow.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.view/index.html b/archive/widget-tasks/2-draggable-windows/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.view/index.html rename to archive/widget-tasks/2-draggable-windows/solution.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.view/window.css b/archive/widget-tasks/2-draggable-windows/solution.view/window.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/solution.view/window.css rename to archive/widget-tasks/2-draggable-windows/solution.view/window.css diff --git a/2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/source.view/index.html b/archive/widget-tasks/2-draggable-windows/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/source.view/index.html rename to archive/widget-tasks/2-draggable-windows/source.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/task.md b/archive/widget-tasks/2-draggable-windows/task.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/2-draggable-windows/task.md rename to archive/widget-tasks/2-draggable-windows/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/solution.md b/archive/widget-tasks/2-moving-tooltip/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/solution.md rename to archive/widget-tasks/2-moving-tooltip/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/solution.view/index.html b/archive/widget-tasks/2-moving-tooltip/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/solution.view/index.html rename to archive/widget-tasks/2-moving-tooltip/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/source.view/index.html b/archive/widget-tasks/2-moving-tooltip/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/source.view/index.html rename to archive/widget-tasks/2-moving-tooltip/source.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/task.md b/archive/widget-tasks/2-moving-tooltip/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/2-moving-tooltip/task.md rename to archive/widget-tasks/2-moving-tooltip/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/3-resize-img/solution.md b/archive/widget-tasks/3-resize-img/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/3-resize-img/solution.md rename to archive/widget-tasks/3-resize-img/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/3-resize-img/solution.view/index.html b/archive/widget-tasks/3-resize-img/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/3-resize-img/solution.view/index.html rename to archive/widget-tasks/3-resize-img/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/3-resize-img/source.view/index.html b/archive/widget-tasks/3-resize-img/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/3-resize-img/source.view/index.html rename to archive/widget-tasks/3-resize-img/source.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/3-resize-img/task.md b/archive/widget-tasks/3-resize-img/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/3-resize-img/task.md rename to archive/widget-tasks/3-resize-img/task.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.md b/archive/widget-tasks/3-window-manager/solution.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.md rename to archive/widget-tasks/3-window-manager/solution.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/draggableWindow.js b/archive/widget-tasks/3-window-manager/solution.view/draggableWindow.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/draggableWindow.js rename to archive/widget-tasks/3-window-manager/solution.view/draggableWindow.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/index.html b/archive/widget-tasks/3-window-manager/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/index.html rename to archive/widget-tasks/3-window-manager/solution.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/window.css b/archive/widget-tasks/3-window-manager/solution.view/window.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/window.css rename to archive/widget-tasks/3-window-manager/solution.view/window.css diff --git a/2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/windowManager.js b/archive/widget-tasks/3-window-manager/solution.view/windowManager.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/3-window-manager/solution.view/windowManager.js rename to archive/widget-tasks/3-window-manager/solution.view/windowManager.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/3-window-manager/task.md b/archive/widget-tasks/3-window-manager/task.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/3-window-manager/task.md rename to archive/widget-tasks/3-window-manager/task.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.md b/archive/widget-tasks/4-double-calendar-with-arrows/solution.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.md rename to archive/widget-tasks/4-double-calendar-with-arrows/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/solution.view/calendar.css b/archive/widget-tasks/4-double-calendar-with-arrows/solution.view/calendar.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/solution.view/calendar.css rename to archive/widget-tasks/4-double-calendar-with-arrows/solution.view/calendar.css diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/calendar.js b/archive/widget-tasks/4-double-calendar-with-arrows/solution.view/calendar.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/calendar.js rename to archive/widget-tasks/4-double-calendar-with-arrows/solution.view/calendar.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/datepicker.css b/archive/widget-tasks/4-double-calendar-with-arrows/solution.view/datepicker.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/datepicker.css rename to archive/widget-tasks/4-double-calendar-with-arrows/solution.view/datepicker.css diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/datepicker.js b/archive/widget-tasks/4-double-calendar-with-arrows/solution.view/datepicker.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/datepicker.js rename to archive/widget-tasks/4-double-calendar-with-arrows/solution.view/datepicker.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/index.html b/archive/widget-tasks/4-double-calendar-with-arrows/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/index.html rename to archive/widget-tasks/4-double-calendar-with-arrows/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/calendar.css b/archive/widget-tasks/4-double-calendar-with-arrows/source.view/calendar.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/calendar.css rename to archive/widget-tasks/4-double-calendar-with-arrows/source.view/calendar.css diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/calendar.js b/archive/widget-tasks/4-double-calendar-with-arrows/source.view/calendar.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/calendar.js rename to archive/widget-tasks/4-double-calendar-with-arrows/source.view/calendar.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/datepicker.css b/archive/widget-tasks/4-double-calendar-with-arrows/source.view/datepicker.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/datepicker.css rename to archive/widget-tasks/4-double-calendar-with-arrows/source.view/datepicker.css diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/datepicker.js b/archive/widget-tasks/4-double-calendar-with-arrows/source.view/datepicker.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/datepicker.js rename to archive/widget-tasks/4-double-calendar-with-arrows/source.view/datepicker.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/index.html b/archive/widget-tasks/4-double-calendar-with-arrows/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/index.html rename to archive/widget-tasks/4-double-calendar-with-arrows/source.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/task.md b/archive/widget-tasks/4-double-calendar-with-arrows/task.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/task.md rename to archive/widget-tasks/4-double-calendar-with-arrows/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/solution.md b/archive/widget-tasks/4-img-select-mouse/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/solution.md rename to archive/widget-tasks/4-img-select-mouse/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/solution.view/index.html b/archive/widget-tasks/4-img-select-mouse/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/solution.view/index.html rename to archive/widget-tasks/4-img-select-mouse/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/source.view/index.html b/archive/widget-tasks/4-img-select-mouse/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/source.view/index.html rename to archive/widget-tasks/4-img-select-mouse/source.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/task.md b/archive/widget-tasks/4-img-select-mouse/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/4-img-select-mouse/task.md rename to archive/widget-tasks/4-img-select-mouse/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/solution.md b/archive/widget-tasks/5-menu-animated/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/solution.md rename to archive/widget-tasks/5-menu-animated/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/5-menu-animated/solution.view/index.html b/archive/widget-tasks/5-menu-animated/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/5-menu-animated/solution.view/index.html rename to archive/widget-tasks/5-menu-animated/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/5-menu-animated/source.view/index.html b/archive/widget-tasks/5-menu-animated/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/5-menu-animated/source.view/index.html rename to archive/widget-tasks/5-menu-animated/source.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/5-menu-animated/task.md b/archive/widget-tasks/5-menu-animated/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/5-menu-animated/task.md rename to archive/widget-tasks/5-menu-animated/task.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.md b/archive/widget-tasks/5-tree-checkboxes/solution.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.md rename to archive/widget-tasks/5-tree-checkboxes/solution.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/fetch.js b/archive/widget-tasks/5-tree-checkboxes/solution.view/fetch.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/fetch.js rename to archive/widget-tasks/5-tree-checkboxes/solution.view/fetch.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/index.html b/archive/widget-tasks/5-tree-checkboxes/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/index.html rename to archive/widget-tasks/5-tree-checkboxes/solution.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/regions.js b/archive/widget-tasks/5-tree-checkboxes/solution.view/regions.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/regions.js rename to archive/widget-tasks/5-tree-checkboxes/solution.view/regions.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/tree.css b/archive/widget-tasks/5-tree-checkboxes/solution.view/tree.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/tree.css rename to archive/widget-tasks/5-tree-checkboxes/solution.view/tree.css diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/tree.js b/archive/widget-tasks/5-tree-checkboxes/solution.view/tree.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/solution.view/tree.js rename to archive/widget-tasks/5-tree-checkboxes/solution.view/tree.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/source.view/index.html b/archive/widget-tasks/5-tree-checkboxes/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/source.view/index.html rename to archive/widget-tasks/5-tree-checkboxes/source.view/index.html diff --git a/2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/task.md b/archive/widget-tasks/5-tree-checkboxes/task.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/5-tree-checkboxes/task.md rename to archive/widget-tasks/5-tree-checkboxes/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.md b/archive/widget-tasks/7-calendar/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.md rename to archive/widget-tasks/7-calendar/solution.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/calendar.css b/archive/widget-tasks/7-calendar/solution.view/calendar.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/solution.view/calendar.css rename to archive/widget-tasks/7-calendar/solution.view/calendar.css diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/solution.view/calendar.js b/archive/widget-tasks/7-calendar/solution.view/calendar.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/solution.view/calendar.js rename to archive/widget-tasks/7-calendar/solution.view/calendar.js diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/solution.view/index.html b/archive/widget-tasks/7-calendar/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/solution.view/index.html rename to archive/widget-tasks/7-calendar/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/calendar-table.js b/archive/widget-tasks/7-calendar/source.view/calendar-table.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/calendar-table.js rename to archive/widget-tasks/7-calendar/source.view/calendar-table.js diff --git a/2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/calendar.css b/archive/widget-tasks/7-calendar/source.view/calendar.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/4-double-calendar-with-arrows/source.view/calendar.css rename to archive/widget-tasks/7-calendar/source.view/calendar.css diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/calendar.js b/archive/widget-tasks/7-calendar/source.view/calendar.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/calendar.js rename to archive/widget-tasks/7-calendar/source.view/calendar.js diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/index.html b/archive/widget-tasks/7-calendar/source.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/source.view/index.html rename to archive/widget-tasks/7-calendar/source.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/7-calendar/task.md b/archive/widget-tasks/7-calendar/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/7-calendar/task.md rename to archive/widget-tasks/7-calendar/task.md diff --git a/2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.md b/archive/widget-tasks/8-autocomplete/solution.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.md rename to archive/widget-tasks/8-autocomplete/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/autocomplete-list.js b/archive/widget-tasks/8-autocomplete/solution.view/autocomplete-list.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/autocomplete-list.js rename to archive/widget-tasks/8-autocomplete/solution.view/autocomplete-list.js diff --git a/2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/autocomplete.css b/archive/widget-tasks/8-autocomplete/solution.view/autocomplete.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/autocomplete.css rename to archive/widget-tasks/8-autocomplete/solution.view/autocomplete.css diff --git a/2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/autocomplete.js b/archive/widget-tasks/8-autocomplete/solution.view/autocomplete.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/autocomplete.js rename to archive/widget-tasks/8-autocomplete/solution.view/autocomplete.js diff --git a/2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/filtering-list-provider.js b/archive/widget-tasks/8-autocomplete/solution.view/filtering-list-provider.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/filtering-list-provider.js rename to archive/widget-tasks/8-autocomplete/solution.view/filtering-list-provider.js diff --git a/2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/index.html b/archive/widget-tasks/8-autocomplete/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/8-autocomplete/solution.view/index.html rename to archive/widget-tasks/8-autocomplete/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/8-autocomplete/task.md b/archive/widget-tasks/8-autocomplete/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/8-autocomplete/task.md rename to archive/widget-tasks/8-autocomplete/task.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/1-date-selector/solution.md b/archive/widget-tasks/9-hover-menu-onclick/solution.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/1-date-selector/solution.md rename to archive/widget-tasks/9-hover-menu-onclick/solution.md diff --git a/2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/hoverintent.js b/archive/widget-tasks/9-hover-menu-onclick/solution.view/hoverintent.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/hoverintent.js rename to archive/widget-tasks/9-hover-menu-onclick/solution.view/hoverintent.js diff --git a/2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/index.html b/archive/widget-tasks/9-hover-menu-onclick/solution.view/index.html old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/index.html rename to archive/widget-tasks/9-hover-menu-onclick/solution.view/index.html diff --git a/2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/menu.css b/archive/widget-tasks/9-hover-menu-onclick/solution.view/menu.css old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/menu.css rename to archive/widget-tasks/9-hover-menu-onclick/solution.view/menu.css diff --git a/2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/menu.js b/archive/widget-tasks/9-hover-menu-onclick/solution.view/menu.js old mode 100755 new mode 100644 similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/solution.view/menu.js rename to archive/widget-tasks/9-hover-menu-onclick/solution.view/menu.js diff --git a/2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/task.md b/archive/widget-tasks/9-hover-menu-onclick/task.md similarity index 100% rename from 2-ui/5-widgets/6-widget-tasks/9-hover-menu-onclick/task.md rename to archive/widget-tasks/9-hover-menu-onclick/task.md diff --git a/2-ui/5-widgets/8-widget-tasks-2/article.md b/archive/widget-tasks/article.md similarity index 100% rename from 2-ui/5-widgets/8-widget-tasks-2/article.md rename to archive/widget-tasks/article.md diff --git a/script/clean-unused-png.php b/script/clean-unused-png.php new file mode 100644 index 000000000..a67133332 --- /dev/null +++ b/script/clean-unused-png.php @@ -0,0 +1,22 @@ +