remove not used autocomplete plugin
@ -19,7 +19,6 @@
|
|||||||
<script src="/assets/vendor/jquery/jquery.min.js"></script>
|
<script src="/assets/vendor/jquery/jquery.min.js"></script>
|
||||||
<script src="/assets/vendor/qtip2/jquery.qtip.min.js"></script>
|
<script src="/assets/vendor/qtip2/jquery.qtip.min.js"></script>
|
||||||
<script src="/assets/vendor/clipboard/dist/clipboard.min.js"></script>
|
<script src="/assets/vendor/clipboard/dist/clipboard.min.js"></script>
|
||||||
<script src="/assets/vendor/javascript-auto-complete/auto-complete.min.js"></script>
|
|
||||||
<script>
|
<script>
|
||||||
window.annotations = {{ site.data.rules | jsonify }};
|
window.annotations = {{ site.data.rules | jsonify }};
|
||||||
</script>
|
</script>
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Chivo:900">
|
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Chivo:900">
|
||||||
<link rel="stylesheet" href="/assets/css/application.css?v={{ site.github.build_revision }}">
|
<link rel="stylesheet" href="/assets/css/application.css?v={{ site.github.build_revision }}">
|
||||||
<link rel="stylesheet" href="/assets/vendor/javascript-auto-complete/auto-complete.css">
|
|
||||||
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
|
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="/assets/vendor/html5shiv/dist/html5shiv.js"></script>
|
<script src="/assets/vendor/html5shiv/dist/html5shiv.js"></script>
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "javascript-auto-complete",
|
|
||||||
"description": "An extremely lightweight vanilla JavaScript completion suggester.",
|
|
||||||
"version": "1.0.4",
|
|
||||||
"homepage": "https://github.com/Pixabay/JavaScript-autoComplete",
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Simon Steinberger",
|
|
||||||
"url": "https://pixabay.com/users/Simon/",
|
|
||||||
"email": "simon@pixabay.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"keywords": [
|
|
||||||
"autocomplete",
|
|
||||||
"autosuggest",
|
|
||||||
"autosuggester",
|
|
||||||
"suggest",
|
|
||||||
"suggester",
|
|
||||||
"completer",
|
|
||||||
"select",
|
|
||||||
"dropdown",
|
|
||||||
"ajax"
|
|
||||||
],
|
|
||||||
"licenses": [
|
|
||||||
{
|
|
||||||
"type": "MIT",
|
|
||||||
"url": "http://www.opensource.org/licenses/mit-license.php"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ignore": [
|
|
||||||
"bower.json",
|
|
||||||
"demo.html",
|
|
||||||
"readme.md"
|
|
||||||
],
|
|
||||||
"_release": "1.0.4",
|
|
||||||
"_resolution": {
|
|
||||||
"type": "version",
|
|
||||||
"tag": "1.0.4",
|
|
||||||
"commit": "eda3201210a86f7fcfb7f496f4b2ca419ff423e8"
|
|
||||||
},
|
|
||||||
"_source": "https://github.com/Pixabay/JavaScript-autoComplete.git",
|
|
||||||
"_target": "^1.0.4",
|
|
||||||
"_originalSource": "javascript-auto-complete",
|
|
||||||
"_direct": true
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
.autocomplete-suggestions {
|
|
||||||
text-align: left; cursor: default; border: 1px solid #ccc; border-top: 0; background: #fff; box-shadow: -1px 1px 3px rgba(0,0,0,.1);
|
|
||||||
|
|
||||||
/* core styles should not be changed */
|
|
||||||
position: absolute; display: none; z-index: 9999; max-height: 254px; overflow: hidden; overflow-y: auto; box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.autocomplete-suggestion { position: relative; padding: 0 .6em; line-height: 23px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 1.02em; color: #333; }
|
|
||||||
.autocomplete-suggestion b { font-weight: normal; color: #1f8dd6; }
|
|
||||||
.autocomplete-suggestion.selected { background: #f0f0f0; }
|
|
@ -1,222 +0,0 @@
|
|||||||
/*
|
|
||||||
JavaScript autoComplete v1.0.4
|
|
||||||
Copyright (c) 2014 Simon Steinberger / Pixabay
|
|
||||||
GitHub: https://github.com/Pixabay/JavaScript-autoComplete
|
|
||||||
License: http://www.opensource.org/licenses/mit-license.php
|
|
||||||
*/
|
|
||||||
|
|
||||||
var autoComplete = (function(){
|
|
||||||
// "use strict";
|
|
||||||
function autoComplete(options){
|
|
||||||
if (!document.querySelector) return;
|
|
||||||
|
|
||||||
// helpers
|
|
||||||
function hasClass(el, className){ return el.classList ? el.classList.contains(className) : new RegExp('\\b'+ className+'\\b').test(el.className); }
|
|
||||||
|
|
||||||
function addEvent(el, type, handler){
|
|
||||||
if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler);
|
|
||||||
}
|
|
||||||
function removeEvent(el, type, handler){
|
|
||||||
// if (el.removeEventListener) not working in IE11
|
|
||||||
if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler);
|
|
||||||
}
|
|
||||||
function live(elClass, event, cb, context){
|
|
||||||
addEvent(context || document, event, function(e){
|
|
||||||
var found, el = e.target || e.srcElement;
|
|
||||||
while (el && !(found = hasClass(el, elClass))) el = el.parentElement;
|
|
||||||
if (found) cb.call(el, e);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var o = {
|
|
||||||
selector: 0,
|
|
||||||
source: 0,
|
|
||||||
minChars: 3,
|
|
||||||
delay: 150,
|
|
||||||
offsetLeft: 0,
|
|
||||||
offsetTop: 1,
|
|
||||||
cache: 1,
|
|
||||||
menuClass: '',
|
|
||||||
renderItem: function (item, search){
|
|
||||||
// escape special characters
|
|
||||||
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
||||||
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
|
|
||||||
return '<div class="autocomplete-suggestion" data-val="' + item + '">' + item.replace(re, "<b>$1</b>") + '</div>';
|
|
||||||
},
|
|
||||||
onSelect: function(e, term, item){}
|
|
||||||
};
|
|
||||||
for (var k in options) { if (options.hasOwnProperty(k)) o[k] = options[k]; }
|
|
||||||
|
|
||||||
// init
|
|
||||||
var elems = typeof o.selector == 'object' ? [o.selector] : document.querySelectorAll(o.selector);
|
|
||||||
for (var i=0; i<elems.length; i++) {
|
|
||||||
var that = elems[i];
|
|
||||||
|
|
||||||
// create suggestions container "sc"
|
|
||||||
that.sc = document.createElement('div');
|
|
||||||
that.sc.className = 'autocomplete-suggestions '+o.menuClass;
|
|
||||||
|
|
||||||
that.autocompleteAttr = that.getAttribute('autocomplete');
|
|
||||||
that.setAttribute('autocomplete', 'off');
|
|
||||||
that.cache = {};
|
|
||||||
that.last_val = '';
|
|
||||||
|
|
||||||
that.updateSC = function(resize, next){
|
|
||||||
var rect = that.getBoundingClientRect();
|
|
||||||
that.sc.style.left = Math.round(rect.left + (window.pageXOffset || document.documentElement.scrollLeft) + o.offsetLeft) + 'px';
|
|
||||||
that.sc.style.top = Math.round(rect.bottom + (window.pageYOffset || document.documentElement.scrollTop) + o.offsetTop) + 'px';
|
|
||||||
that.sc.style.width = Math.round(rect.right - rect.left) + 'px'; // outerWidth
|
|
||||||
if (!resize) {
|
|
||||||
that.sc.style.display = 'block';
|
|
||||||
if (!that.sc.maxHeight) { that.sc.maxHeight = parseInt((window.getComputedStyle ? getComputedStyle(that.sc, null) : that.sc.currentStyle).maxHeight); }
|
|
||||||
if (!that.sc.suggestionHeight) that.sc.suggestionHeight = that.sc.querySelector('.autocomplete-suggestion').offsetHeight;
|
|
||||||
if (that.sc.suggestionHeight)
|
|
||||||
if (!next) that.sc.scrollTop = 0;
|
|
||||||
else {
|
|
||||||
var scrTop = that.sc.scrollTop, selTop = next.getBoundingClientRect().top - that.sc.getBoundingClientRect().top;
|
|
||||||
if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0)
|
|
||||||
that.sc.scrollTop = selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight;
|
|
||||||
else if (selTop < 0)
|
|
||||||
that.sc.scrollTop = selTop + scrTop;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
addEvent(window, 'resize', that.updateSC);
|
|
||||||
document.body.appendChild(that.sc);
|
|
||||||
|
|
||||||
live('autocomplete-suggestion', 'mouseleave', function(e){
|
|
||||||
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
|
||||||
if (sel) setTimeout(function(){ sel.className = sel.className.replace('selected', ''); }, 20);
|
|
||||||
}, that.sc);
|
|
||||||
|
|
||||||
live('autocomplete-suggestion', 'mouseover', function(e){
|
|
||||||
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
|
||||||
if (sel) sel.className = sel.className.replace('selected', '');
|
|
||||||
this.className += ' selected';
|
|
||||||
}, that.sc);
|
|
||||||
|
|
||||||
live('autocomplete-suggestion', 'mousedown', function(e){
|
|
||||||
if (hasClass(this, 'autocomplete-suggestion')) { // else outside click
|
|
||||||
var v = this.getAttribute('data-val');
|
|
||||||
that.value = v;
|
|
||||||
o.onSelect(e, v, this);
|
|
||||||
that.sc.style.display = 'none';
|
|
||||||
}
|
|
||||||
}, that.sc);
|
|
||||||
|
|
||||||
that.blurHandler = function(){
|
|
||||||
try { var over_sb = document.querySelector('.autocomplete-suggestions:hover'); } catch(e){ var over_sb = 0; }
|
|
||||||
if (!over_sb) {
|
|
||||||
that.last_val = that.value;
|
|
||||||
that.sc.style.display = 'none';
|
|
||||||
setTimeout(function(){ that.sc.style.display = 'none'; }, 350); // hide suggestions on fast input
|
|
||||||
} else if (that !== document.activeElement) setTimeout(function(){ that.focus(); }, 20);
|
|
||||||
};
|
|
||||||
addEvent(that, 'blur', that.blurHandler);
|
|
||||||
|
|
||||||
var suggest = function(data){
|
|
||||||
var val = that.value;
|
|
||||||
that.cache[val] = data;
|
|
||||||
if (data.length && val.length >= o.minChars) {
|
|
||||||
var s = '';
|
|
||||||
for (var i=0;i<data.length;i++) s += o.renderItem(data[i], val);
|
|
||||||
that.sc.innerHTML = s;
|
|
||||||
that.updateSC(0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
that.sc.style.display = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
that.keydownHandler = function(e){
|
|
||||||
var key = window.event ? e.keyCode : e.which;
|
|
||||||
// down (40), up (38)
|
|
||||||
if ((key == 40 || key == 38) && that.sc.innerHTML) {
|
|
||||||
var next, sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
|
||||||
if (!sel) {
|
|
||||||
next = (key == 40) ? that.sc.querySelector('.autocomplete-suggestion') : that.sc.childNodes[that.sc.childNodes.length - 1]; // first : last
|
|
||||||
next.className += ' selected';
|
|
||||||
that.value = next.getAttribute('data-val');
|
|
||||||
} else {
|
|
||||||
next = (key == 40) ? sel.nextSibling : sel.previousSibling;
|
|
||||||
if (next) {
|
|
||||||
sel.className = sel.className.replace('selected', '');
|
|
||||||
next.className += ' selected';
|
|
||||||
that.value = next.getAttribute('data-val');
|
|
||||||
}
|
|
||||||
else { sel.className = sel.className.replace('selected', ''); that.value = that.last_val; next = 0; }
|
|
||||||
}
|
|
||||||
that.updateSC(0, next);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// esc
|
|
||||||
else if (key == 27) { that.value = that.last_val; that.sc.style.display = 'none'; }
|
|
||||||
// enter
|
|
||||||
else if (key == 13 || key == 9) {
|
|
||||||
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
|
||||||
if (sel && that.sc.style.display != 'none') { o.onSelect(e, sel.getAttribute('data-val'), sel); setTimeout(function(){ that.sc.style.display = 'none'; }, 20); }
|
|
||||||
}
|
|
||||||
};
|
|
||||||
addEvent(that, 'keydown', that.keydownHandler);
|
|
||||||
|
|
||||||
that.keyupHandler = function(e){
|
|
||||||
var key = window.event ? e.keyCode : e.which;
|
|
||||||
if (!key || (key < 35 || key > 40) && key != 13 && key != 27) {
|
|
||||||
var val = that.value;
|
|
||||||
if (val.length >= o.minChars) {
|
|
||||||
if (val != that.last_val) {
|
|
||||||
that.last_val = val;
|
|
||||||
clearTimeout(that.timer);
|
|
||||||
if (o.cache) {
|
|
||||||
if (val in that.cache) { suggest(that.cache[val]); return; }
|
|
||||||
// no requests if previous suggestions were empty
|
|
||||||
for (var i=1; i<val.length-o.minChars; i++) {
|
|
||||||
var part = val.slice(0, val.length-i);
|
|
||||||
if (part in that.cache && !that.cache[part].length) { suggest([]); return; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
that.timer = setTimeout(function(){ o.source(val, suggest) }, o.delay);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
that.last_val = val;
|
|
||||||
that.sc.style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
addEvent(that, 'keyup', that.keyupHandler);
|
|
||||||
|
|
||||||
that.focusHandler = function(e){
|
|
||||||
that.last_val = '\n';
|
|
||||||
that.keyupHandler(e)
|
|
||||||
};
|
|
||||||
if (!o.minChars) addEvent(that, 'focus', that.focusHandler);
|
|
||||||
}
|
|
||||||
|
|
||||||
// public destroy method
|
|
||||||
this.destroy = function(){
|
|
||||||
for (var i=0; i<elems.length; i++) {
|
|
||||||
var that = elems[i];
|
|
||||||
removeEvent(window, 'resize', that.updateSC);
|
|
||||||
removeEvent(that, 'blur', that.blurHandler);
|
|
||||||
removeEvent(that, 'focus', that.focusHandler);
|
|
||||||
removeEvent(that, 'keydown', that.keydownHandler);
|
|
||||||
removeEvent(that, 'keyup', that.keyupHandler);
|
|
||||||
if (that.autocompleteAttr)
|
|
||||||
that.setAttribute('autocomplete', that.autocompleteAttr);
|
|
||||||
else
|
|
||||||
that.removeAttribute('autocomplete');
|
|
||||||
document.body.removeChild(that.sc);
|
|
||||||
that = null;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return autoComplete;
|
|
||||||
})();
|
|
||||||
|
|
||||||
(function(){
|
|
||||||
if (typeof define === 'function' && define.amd)
|
|
||||||
define('autoComplete', function () { return autoComplete; });
|
|
||||||
else if (typeof module !== 'undefined' && module.exports)
|
|
||||||
module.exports = autoComplete;
|
|
||||||
else
|
|
||||||
window.autoComplete = autoComplete;
|
|
||||||
})();
|
|
@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "javascript-auto-complete",
|
|
||||||
"description": "An extremely lightweight vanilla JavaScript completion suggester.",
|
|
||||||
"version": "1.0.4",
|
|
||||||
"homepage": "https://github.com/Pixabay/JavaScript-autoComplete",
|
|
||||||
"authors": [{
|
|
||||||
"name": "Simon Steinberger",
|
|
||||||
"url": "https://pixabay.com/users/Simon/",
|
|
||||||
"email": "simon@pixabay.com"
|
|
||||||
}],
|
|
||||||
"keywords": [
|
|
||||||
"autocomplete",
|
|
||||||
"autosuggest",
|
|
||||||
"autosuggester",
|
|
||||||
"suggest",
|
|
||||||
"suggester",
|
|
||||||
"completer",
|
|
||||||
"select",
|
|
||||||
"dropdown",
|
|
||||||
"ajax"
|
|
||||||
],
|
|
||||||
"licenses": [{
|
|
||||||
"type": "MIT",
|
|
||||||
"url": "http://www.opensource.org/licenses/mit-license.php"
|
|
||||||
}],
|
|
||||||
"ignore": [
|
|
||||||
"bower.json",
|
|
||||||
"demo.html",
|
|
||||||
"readme.md"
|
|
||||||
]
|
|
||||||
}
|
|
BIN
assets/vendor/javascript-auto-complete/img/at.png
vendored
Before Width: | Height: | Size: 766 B |
BIN
assets/vendor/javascript-auto-complete/img/au.png
vendored
Before Width: | Height: | Size: 791 B |
BIN
assets/vendor/javascript-auto-complete/img/bg.png
vendored
Before Width: | Height: | Size: 779 B |
BIN
assets/vendor/javascript-auto-complete/img/br.png
vendored
Before Width: | Height: | Size: 799 B |
BIN
assets/vendor/javascript-auto-complete/img/ca.png
vendored
Before Width: | Height: | Size: 776 B |
BIN
assets/vendor/javascript-auto-complete/img/ch.png
vendored
Before Width: | Height: | Size: 628 B |
BIN
assets/vendor/javascript-auto-complete/img/cn.png
vendored
Before Width: | Height: | Size: 595 B |
BIN
assets/vendor/javascript-auto-complete/img/cz.png
vendored
Before Width: | Height: | Size: 760 B |
BIN
assets/vendor/javascript-auto-complete/img/de.png
vendored
Before Width: | Height: | Size: 779 B |
BIN
assets/vendor/javascript-auto-complete/img/dk.png
vendored
Before Width: | Height: | Size: 739 B |
BIN
assets/vendor/javascript-auto-complete/img/es.png
vendored
Before Width: | Height: | Size: 802 B |
BIN
assets/vendor/javascript-auto-complete/img/fi.png
vendored
Before Width: | Height: | Size: 751 B |
BIN
assets/vendor/javascript-auto-complete/img/fr.png
vendored
Before Width: | Height: | Size: 757 B |
BIN
assets/vendor/javascript-auto-complete/img/hu.png
vendored
Before Width: | Height: | Size: 766 B |
BIN
assets/vendor/javascript-auto-complete/img/in.png
vendored
Before Width: | Height: | Size: 785 B |
BIN
assets/vendor/javascript-auto-complete/img/it.png
vendored
Before Width: | Height: | Size: 733 B |
BIN
assets/vendor/javascript-auto-complete/img/ja.png
vendored
Before Width: | Height: | Size: 653 B |
BIN
assets/vendor/javascript-auto-complete/img/nl.png
vendored
Before Width: | Height: | Size: 766 B |
BIN
assets/vendor/javascript-auto-complete/img/no.png
vendored
Before Width: | Height: | Size: 773 B |
BIN
assets/vendor/javascript-auto-complete/img/pt.png
vendored
Before Width: | Height: | Size: 743 B |
BIN
assets/vendor/javascript-auto-complete/img/ro.png
vendored
Before Width: | Height: | Size: 791 B |
BIN
assets/vendor/javascript-auto-complete/img/ru.png
vendored
Before Width: | Height: | Size: 779 B |
BIN
assets/vendor/javascript-auto-complete/img/tr.png
vendored
Before Width: | Height: | Size: 691 B |
BIN
assets/vendor/javascript-auto-complete/img/us.png
vendored
Before Width: | Height: | Size: 799 B |