1 line
5.8 KiB
JavaScript
1 line
5.8 KiB
JavaScript
!function(e){"use strict";var t=window.aiovg_select||window.aiovg_public;function i(e=null){document.querySelectorAll(".aiovg-dropdown-terms").forEach(t=>{t!==e&&(t.querySelector(".aiovg-dropdown").style.display="none")})}e(function(){e(".aiovg-dropdown-terms").each(function(){!function t(i){var o=e(i),n=o.find(".aiovg-dropdown-input"),a=o.find(".aiovg-dropdown"),d=o.find(".aiovg-dropdown-list"),r=o.find(".aiovg-dropdown-search"),l=o.find(".aiovg-dropdown-item"),s=o.find(".aiovg-dropdown-no-items"),c=r.find('input[type="text"]'),v=r.find("button"),u=l.length,p=parseInt(r.data("stay_open")),g=parseInt(r.data("show_search_threshold")),f=-1;if(0==u)return!1;u>=g&&r.prop("hidden",!1);var h=function(){var t=[];d.find(".aiovg-item-selected").each(function(){var i=e(this).find(".aiovg-item-name").text();t.push(i)}),n.val(t.join(", "))},m=function(e){var t=l.filter(":not([hidden])");if(0!==t.length){if(e<0){r.prop("hidden")||c.focus(),l.removeClass("aiovg-item-active"),f=-1;return}e>=t.length&&(e=0),f=e,l.removeClass("aiovg-item-active");var i=t.eq(f);i.addClass("aiovg-item-active");var o=a.get(0),n=i.get(0);if(o&&n){var d=n.offsetTop,s=d+n.offsetHeight;d<o.scrollTop?o.scrollTop=d:s>o.scrollTop+o.clientHeight&&(o.scrollTop=s-o.clientHeight)}}};n.on("click",function(){a.toggle()}),c.on("input",function(t){o.addClass("aiovg-is-searching"),v.prop("hidden",!1),s.prop("hidden",!0);var i=this.value.trim().toLowerCase();if(i){var n=!1;d.find(".aiovg-dropdown-item").each(function(){-1===e(this).find(".aiovg-item-name").text().toLowerCase().indexOf(i.toString())?this.hidden=!0:(this.hidden=!1,n=!0)}),n||s.prop("hidden",!1)}else o.removeClass("aiovg-is-searching"),v.prop("hidden",!0),d.find(".aiovg-dropdown-item").prop("hidden",!1)}),v.on("click",function(e){e.preventDefault(),o.removeClass("aiovg-is-searching"),c.val(""),v.prop("hidden",!0),s.prop("hidden",!0),d.find(".aiovg-dropdown-item").prop("hidden",!1)}),d.find(".aiovg-dropdown-item").on("click",function(t){"input"!==t.target.tagName.toLowerCase()&&e(this).find('input[type="checkbox"]').trigger("click")}),d.find('input[type="checkbox"]').on("change",function(){e(this).is(":checked")?e(this).closest(".aiovg-dropdown-item").addClass("aiovg-item-selected"):e(this).closest(".aiovg-dropdown-item").removeClass("aiovg-item-selected"),h(),p||a.hide()}),h(),n.on("keydown",function(e){if(!r.prop("hidden")&&/^[a-zA-Z0-9]$/.test(e.key)){a.show(),c.focus();return}}),n.on("keydown",function(e){if(9===e.keyCode){a.hide(),f=-1;return}if(a.is(":hidden")){if(40!==e.keyCode&&13!==e.keyCode&&32!==e.keyCode)return;e.preventDefault(),a.show()}var t=e.keyCode;if(40===t)e.preventDefault(),m(f+1);else if(38===t)e.preventDefault(),m(f-1);else if(13===t){e.preventDefault();var i=l.filter(":not([hidden])");f>-1&&i.length>0&&i.eq(f).trigger("click")}}),c.on("keydown",function(e){if(9===e.keyCode){a.hide(),f=-1;return}27===e.keyCode&&(a.hide(),n.focus(),f=-1),40===e.keyCode&&(e.preventDefault(),l.filter(":not([hidden])").length>0&&(f=0,m(0),n.focus()))})}(this)}),document.addEventListener("click",e=>{let t=e.target.closest(".aiovg-dropdown-terms");i(t)}),document.addEventListener("keydown",e=>{27==e.keyCode&&i()}),e(".aiovg-autocomplete").each(function(){var i=e(this).data("uid"),o="ta[]";void 0!==e(this).data("name")&&(o=e(this).data("name"));var n=[];e("option","#aiovg-autocomplete-select-"+i).each(function(){n.push({value:e(this).val(),label:e(this).text()})}),0==n.length&&n.push({value:0,label:t.i18n.no_tags_found});var a,d,r,l,s,c,v,u,p,g,f=function(t,n){if(0!=(t=parseInt(t))){var a=e("#aiovg-autocomplete-tags-"+i);if(0==a.find(".aiovg-tag-item-"+t).length){var d='<span class="aiovg-tag-item aiovg-tag-item-'+t+'">';d+='<a href="javascript:void(0);">',d+='<svg xmlns="http://www.w3.org/2000/svg" fill="none" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="aiovg-flex-shrink-0"><path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" /></svg>',d+=n,d+="</a>",d+='<input type="hidden" name="'+o+'" value="'+t+'" />',d+="</span>",a.append(d)}}};a=i,d=n,r=f,l=document.querySelector("#aiovg-autocomplete-input-"+a),s=document.querySelector("#aiovg-autocomplete-tags-"+a),c=-1,v=function(){var e=[];c=-1,u();var i=document.createElement("div");i.setAttribute("id","aiovg-autocomplete-items-"+a),i.setAttribute("class","aiovg-autocomplete-items"),l.parentNode.appendChild(i),d.forEach((o,n)=>{var a=o.value,c=o.label,v=!1;if(l.value?-1!==c.toLowerCase().indexOf(l.value.toLowerCase())&&(v=!0):v=!0,v||n!=d.length-1||0!=e.length||(a=0,c=t.i18n.no_tags_found,v=!0),v){var p=document.createElement("div");p.innerHTML=c,0==a&&(p.className="aiovg-text-muted"),null!==s.querySelector(".aiovg-tag-item-"+a)&&p.setAttribute("class","aiovg-autocomplete-selected"),p.addEventListener("click",function(){l.value="",r(a,c),u()}),i.appendChild(p),e.push(p)}})},u=function(e=null){var t=0;e&&e.id&&(t=e.id.replace("aiovg-autocomplete-input-","")),document.querySelectorAll(".aiovg-autocomplete-items").forEach(e=>{e.getAttribute("id")!="aiovg-autocomplete-items-"+t&&e.remove()})},p=function(e){g(e),c>=e.length&&(c=0),c<0&&(c=e.length-1),e[c].classList.add("aiovg-autocomplete-active")},g=function(e){e.forEach(e=>{e.classList.remove("aiovg-autocomplete-active")})},l.addEventListener("focus",function(e){""==e.target.value&&v()}),l.addEventListener("input",function(){v()}),l.addEventListener("keydown",function(e){var t=document.querySelector("#aiovg-autocomplete-items-"+a);if(t&&(t=t.querySelectorAll("div")),!t)return!1;40==e.keyCode?(c++,p(t)):38==e.keyCode?(c--,p(t)):13==e.keyCode&&(e.preventDefault(),c>-1&&t[c].click())}),t.hasOwnProperty("autocomplete")||(t.autocomplete=!0,document.addEventListener("click",function(e){u(e.target)}))}),e(document).on("click",".aiovg-tag-item a",function(t){t.preventDefault(),e(this).parent().remove()})})}(jQuery); |