test
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
5.0 KiB

!function(u){"use strict";var e,r={selector:"select",mobileFix:!0,mask:"%",maskJoin:", ",ctrlKey:!1,search:!1,defaultText:"Select item...",classes:{outer:"style-select",title:"style-select-title",options:"style-select-options",label:"style-select-label",searchOuter:"style-select-search-outer",search:"style-select-search",optgroup:"style-select-optgroup",list:"style-select-list",item:"style-select-option",open:"st_open",selected:"st_selected",disabled:"st_disabled",mobile:"is_mobile",multiple:"is_multiple"},attributes:{index:"data-index",value:"data-value",selectReady:"data-tastyselect"}},o=(e={Android:function(){return!!navigator.userAgent.match(/Android/i)&&"android"},BlackBerry:function(){return!!navigator.userAgent.match(/BlackBerry/i)&&"blackberry"},iOS:function(){return!!navigator.userAgent.match(/iPhone|iPad|iPod/i)&&"ios"},Opera:function(){return!!navigator.userAgent.match(/Opera Mini/i)&&"operamini"},Windows:function(){return!!navigator.userAgent.match(/IEMobile/i)&&"ie"},any:function(){return e.Android()||e.BlackBerry()||e.iOS()||e.Opera()||e.Windows()}}).any();function i(e,t){var n=document.createElement(e);return t&&y(n,t),n}function y(e,t){e.classList.add(t)}function d(e,t){e.classList.remove(t)}function l(e,t){Array.prototype.slice.call(e).forEach(t)}u.tastySelect=function(t){var n;l(document.querySelectorAll(t&&t.selector||r.selector),function(e){!function(e,t){if(null!==e.getAttribute("data-tastyselect"))return;var f,m,v;f=function(){for(var e=1;e<arguments.length;e++)for(var t in arguments[e])arguments[e].hasOwnProperty(t)&&(arguments[0][t]=arguments[e][t]);return arguments[0]}({},r,t),e.getAttribute("placeholder")&&(f.defaultText=e.getAttribute("placeholder"));m=f.classes,v=f.attributes;var n=function(e){var t=i("div",m.outer),n=i("div",m.title),c=i("div",m.options),a=i("li",m.label),u=i("ul",m.optgroup),d=i("ul",m.list),p=i("li",m.item),r=i("div",m.searchOuter),l=i("input",m.search),h=e.options;o&&y(t,m.mobile);e.multiple&&y(t,m.multiple);e.disabled&&y(t,m.disabled);f.search&&(r.appendChild(l),c.appendChild(r));return t.appendChild(n),t.appendChild(c),function(){for(var e,t=null,n=null,r=d.cloneNode(!0),l=0,o=h.length;l<o;l++){var i=p.cloneNode(!0),s=h[l];n=s.parentNode.getAttribute("label"),t!=n&&(r&&c.appendChild(r),null==n?r=d.cloneNode(!0):(r=u.cloneNode(!0),(e=a.cloneNode(!0)).innerHTML=n,r.appendChild(e))),t=n,i.setAttribute(v.value,s.value),i.setAttribute(v.index,s.index),i.innerHTML=s.text,r.appendChild(i)}c.appendChild(r)}(),t}(e);f.mobileFix&&function(e){var t=i("optgroup");t.disabled=!0,t.hidden=!0,e.insertBefore(t,e.firstChild)}(e);function s(e){for(var t,n,r=e.querySelector(f.selector),l=e.querySelector("."+m.options).querySelectorAll("."+m.item),o=e.querySelector("."+m.title),i=r.options,s=[],c=f.defaultText,a=0,u=l.length;a<u;a++)n=i[a],t=l[a],n.selected?(y(t,m.selected),s.push(n.text)):d(t,m.selected);s.length&&(c=f.mask.replace("$",s.length).replace("%",s.join(f.maskJoin))),o.innerHTML=c}function c(e,t){var n=e.getAttribute(v.index),r=e.closest("."+m.outer).querySelector(f.selector),l=r.options,o=l[n];if(!t)for(var i=0,s=l.length;i<s;i++)l[i].selected=!1;if(o.selected=!o.selected,"createEvent"in document){var c=document.createEvent("HTMLEvents");c.initEvent("change",!1,!0),r.dispatchEvent(c)}else r.fireEvent("onchange");o.dataset.url&&(u.location.href=o.dataset.url)}function a(e){e.classList.toggle(m.open)}(function(e,t){var n=e.cloneNode(!0),r=e.parentNode;t.appendChild(n),r.insertBefore(t,e),r.removeChild(e)})(e,n),function(t){var n,r=t.querySelector(f.selector),e=t.querySelector("."+m.title),l=t.querySelector("."+m.options),o=t.querySelector("."+m.list).querySelectorAll("."+m.item),i=t.querySelector("."+m.search);r.setAttribute(v.selectReady,""),e.addEventListener("click",function(e){r.disabled||a(t)},!1),i&&i.addEventListener("input",function(e){n=function(e,t){var n=[];t=t.trim().toLowerCase();for(var r=0,l=e.length;r<l;r++)-1!==e[r].innerText.trim().toLowerCase().indexOf(t)?n.push(1):n.push(0);return n}(r.options,e.target.value),function(e,t){for(var n=0,r=e.length;n<r;n++)e[n].style.display=t[n]?"":"none"}(o,n)}),r.addEventListener("change",function(e){s(t)},!1),l.addEventListener("click",function(e){var t,n=e.target.closest("."+m.item),r=e.target.closest("."+m.outer);n&&(t=r.querySelector(f.selector),f.ctrlKey&&t.multiple&&e.ctrlKey||t.multiple?c(n,!0):(c(n),a(n.closest("."+m.outer))))},!1)}(n),s(n)}(e,t)}),n=t&&t.classes&&t.classes.open||r.classes.open,document.body.addEventListener("click",function(e){var t=e.target.closest("."+n);l(document.querySelectorAll("."+n),function(e){t!==e&&d(e,n)})},!1)}}(window),function(e){var t=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector;e.matches=e.matchesSelector=t||function(e){var t=document.querySelectorAll(e),n=this;return Array.prototype.some.call(t,function(e){return e===n})}}(Element.prototype),function(e){e.closest=e.closest||function(e){return this?this.matches(e)?this:this.parentElement?this.parentElement.closest(e):null:null}}(Element.prototype);