From ba9688af65fa713ca79943138193e24af2616d0e Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 23 Dec 2016 12:24:52 -0500 Subject: [PATCH] Improvements to dropdown submit buttons so that the menu doesn't disappear immediately when accidentally outside of it. --- .../Inputfield/InputfieldSubmit/dropdown.js | 2 +- .../InputfieldSubmit/dropdown.min.js | 2 +- wire/templates-admin/scripts/main.js | 69 ++++++++++++++++--- wire/templates-admin/scripts/main.min.js | 2 +- 4 files changed, 61 insertions(+), 14 deletions(-) diff --git a/wire/modules/Inputfield/InputfieldSubmit/dropdown.js b/wire/modules/Inputfield/InputfieldSubmit/dropdown.js index 60746085..5ec79c29 100644 --- a/wire/modules/Inputfield/InputfieldSubmit/dropdown.js +++ b/wire/modules/Inputfield/InputfieldSubmit/dropdown.js @@ -76,7 +76,7 @@ var InputfieldSubmitDropdown = { */ initDropdown: function($dropdown, $mainButton) { - var $toggleButton = $("") + var $toggleButton = $("") .attr('id', 'pw-dropdown-toggle-' + $mainButton.attr('id')); $mainButton.after($toggleButton); diff --git a/wire/modules/Inputfield/InputfieldSubmit/dropdown.min.js b/wire/modules/Inputfield/InputfieldSubmit/dropdown.min.js index 57e1cecc..a1cd2419 100644 --- a/wire/modules/Inputfield/InputfieldSubmit/dropdown.min.js +++ b/wire/modules/Inputfield/InputfieldSubmit/dropdown.min.js @@ -1 +1 @@ -var InputfieldSubmitDropdown={click:function(){var e=$(this);var b=e.attr("href");var f=e.closest(".pw-button-dropdown");var d;if(!f.length){return true}d=f.data("pw-button");if(e.hasClass("pw-button-dropdown-default")){}else{var c=e.attr("data-pw-dropdown-value");var a=f.attr("data-pw-dropdown-input");if(!c){return true}if(a){var g=$(a);if(!g.length){return true}g.val(c)}else{if(b.length>1){return true}}if(d){d.attr("value",c)}}if(!d){return true}$(":input:focus").blur();d.click();return false},dropdownCnt:0,initDropdown:function(e,d){var c=$("").attr("id","pw-dropdown-toggle-"+d.attr("id"));d.after(c);c.button();var h=null;if(e.hasClass("pw-button-dropdown-template")){h=e;e=h.clone();h.hide()}InputfieldSubmitDropdown.dropdownCnt++;var g="pw-button-dropdown-"+InputfieldSubmitDropdown.dropdownCnt;e.addClass("pw-dropdown-menu pw-dropdown-menu-rounded pw-button-dropdown-init "+g);e.data("pw-button",d);var a=d.find(".ui-button-text");var b=$.trim(a.text());var f=a.html();e.find("a").each(function(){var j=$(this);if(h){var i=j.html();if(i.indexOf("%s")>-1){j.html(i.replace("%s",b))}}j.click(InputfieldSubmitDropdown.click)});d.addClass("pw-button-dropdown-main");c.after(e).addClass("pw-dropdown-toggle-click pw-dropdown-toggle pw-button-dropdown-toggle").attr("data-pw-dropdown","."+g);if(d.hasClass("ui-priority-secondary")){c.addClass("ui-priority-secondary")}if(d.hasClass("pw-head-button")){c.addClass("pw-head-button")}c.click(function(){return false}).on("pw-button-dropdown-off",function(){$(this).siblings(".pw-button-dropdown-main").removeClass("pw-button-dropdown-main").addClass("pw-button-dropdown-disabled");$(this).hide()}).on("pw-button-dropdown-on",function(){$(this).siblings(".pw-button-dropdown-disabled").addClass("pw-button-dropdown-main").removeClass("pw-button-dropdown-disabled");$(this).show()})},init:function(b,c){if($("body").hasClass("modal")){$("ul.pw-button-dropdown").hide();return false}var a=(typeof b=="string")?$(b):b;a.each(function(){var d=$(this);if(typeof c!="undefined"){c.addClass("pw-button-dropdown-template");InputfieldSubmitDropdown.initDropdown(c,d)}else{var e=$("#"+$(this).prop("id")+"_dropdown");if(e.length){InputfieldSubmitDropdown.initDropdown(e,d)}}});return true}}; \ No newline at end of file +var InputfieldSubmitDropdown={click:function(){var e=$(this);var b=e.attr("href");var f=e.closest(".pw-button-dropdown");var d;if(!f.length){return true}d=f.data("pw-button");if(e.hasClass("pw-button-dropdown-default")){}else{var c=e.attr("data-pw-dropdown-value");var a=f.attr("data-pw-dropdown-input");if(!c){return true}if(a){var g=$(a);if(!g.length){return true}g.val(c)}else{if(b.length>1){return true}}if(d){d.attr("value",c)}}if(!d){return true}$(":input:focus").blur();d.click();return false},dropdownCnt:0,initDropdown:function(e,d){var c=$("").attr("id","pw-dropdown-toggle-"+d.attr("id"));d.after(c);c.button();var h=null;if(e.hasClass("pw-button-dropdown-template")){h=e;e=h.clone();h.hide()}InputfieldSubmitDropdown.dropdownCnt++;var g="pw-button-dropdown-"+InputfieldSubmitDropdown.dropdownCnt;e.addClass("pw-dropdown-menu pw-dropdown-menu-rounded pw-button-dropdown-init "+g);e.data("pw-button",d);var a=d.find(".ui-button-text");var b=$.trim(a.text());var f=a.html();e.find("a").each(function(){var j=$(this);if(h){var i=j.html();if(i.indexOf("%s")>-1){j.html(i.replace("%s",b))}}j.click(InputfieldSubmitDropdown.click)});d.addClass("pw-button-dropdown-main");c.after(e).addClass("pw-dropdown-toggle-click pw-dropdown-toggle pw-button-dropdown-toggle").attr("data-pw-dropdown","."+g);if(d.hasClass("ui-priority-secondary")){c.addClass("ui-priority-secondary")}if(d.hasClass("pw-head-button")){c.addClass("pw-head-button")}c.click(function(){return false}).on("pw-button-dropdown-off",function(){$(this).siblings(".pw-button-dropdown-main").removeClass("pw-button-dropdown-main").addClass("pw-button-dropdown-disabled");$(this).hide()}).on("pw-button-dropdown-on",function(){$(this).siblings(".pw-button-dropdown-disabled").addClass("pw-button-dropdown-main").removeClass("pw-button-dropdown-disabled");$(this).show()})},init:function(b,c){if($("body").hasClass("modal")){$("ul.pw-button-dropdown").hide();return false}var a=(typeof b=="string")?$(b):b;a.each(function(){var d=$(this);if(typeof c!="undefined"){c.addClass("pw-button-dropdown-template");InputfieldSubmitDropdown.initDropdown(c,d)}else{var e=$("#"+$(this).prop("id")+"_dropdown");if(e.length){InputfieldSubmitDropdown.initDropdown(e,d)}}});return true}}; \ No newline at end of file diff --git a/wire/templates-admin/scripts/main.js b/wire/templates-admin/scripts/main.js index 52a7a0cd..4e7e3bf1 100644 --- a/wire/templates-admin/scripts/main.js +++ b/wire/templates-admin/scripts/main.js @@ -28,9 +28,21 @@ var ProcessWireAdmin = { at: "center top" } }).hover(function() { - $(this).addClass('ui-state-hover'); + var $a = $(this); + if($a.is('a')) { + $a.addClass('ui-state-hover'); + } else { + $a.data('pw-tooltip-cursor', $a.css('cursor')); + $a.css('cursor', 'pointer'); + } + $a.addClass('pw-tooltip-hover'); + $a.css('cursor', 'pointer'); }, function() { - $(this).removeClass('ui-state-hover'); + var $a = $(this); + $a.removeClass('pw-tooltip-hover ui-state-hover'); + if(!$a.is('a')) { + $a.css('cursor', $a.data('pw-tooltip-cursor')); + } }); }, @@ -125,12 +137,28 @@ var ProcessWireAdmin = { }); // when the mouse leaves the dropdown menu, hide it - $ul.mouseleave(function() { - //if($a.is(":hover")) return; - //if($a.filter(":hover").length) return; - $ul.hide(); - $a.removeClass('hover'); - }); + if($a.hasClass('pw-dropdown-toggle-click')) { + var timer = null; + function mouseleaver() { + if(timer) clearTimeout(timer); + timer = setTimeout(function() { + if($ul.filter(":hover").length || $a.filter(":hover").length) { + return; + } + $ul.fadeOut('fast'); + $a.removeClass('hover pw-dropdown-toggle-open'); + }, 1000); + } + $ul.mouseleave(mouseleaver); + $a.mouseleave(mouseleaver); + } else { + $ul.mouseleave(function() { + //if($a.is(":hover")) return; + //if($a.filter(":hover").length) return; + $ul.hide(); + $a.removeClass('hover'); + }); + } } function mouseenterDropdownToggle(e) { @@ -142,9 +170,28 @@ var ProcessWireAdmin = { var timeout = $a.data('pw-dropdown-timeout'); if($a.hasClass('pw-dropdown-toggle-click')) { - if(e.type != 'mousedown') return; + if(e.type != 'mousedown') return false; $a.removeClass('ui-state-focus'); - } + if($a.hasClass('pw-dropdown-toggle-open')) { + $a.removeClass('pw-dropdown-toggle-open hover'); + $ul.hide(); + return; + } else { + $('.pw-dropdown-toggle-open').each(function() { + var $a = $(this); + var $ul = $a.data('pw-dropdown-ul'); + $ul.mouseleave(); + }); + $a.addClass('pw-dropdown-toggle-open'); + /* + $('body').one('click', function() { + $a.removeClass('pw-dropdown-toggle-open hover'); + $ul.hide(); + }); + */ + } + } + if($a.hasClass('pw-dropdown-disabled')) return; timeout = setTimeout(function() { @@ -322,7 +369,7 @@ var ProcessWireAdmin = { $(document) .on('mousedown', '.pw-dropdown-toggle-click', mouseenterDropdownToggle) .on('mouseenter', '.pw-dropdown-toggle:not(.pw-dropdown-toggle-click)', mouseenterDropdownToggle) - .on('mouseleave', '.pw-dropdown-toggle', mouseleaveDropdownToggle) + .on('mouseleave', '.pw-dropdown-toggle:not(.pw-dropdown-toggle-click)', mouseleaveDropdownToggle) .on('mouseenter', '.pw-dropdown-menu a.pw-has-ajax-items:not(.pw-ajax-items-loaded)', mouseenterDropdownAjaxItem) // navJSON .on('mouseleave', '.pw-dropdown-menu a.pw-has-ajax-items', function() { // navJSON hoveredDropdownAjaxItem = null; diff --git a/wire/templates-admin/scripts/main.min.js b/wire/templates-admin/scripts/main.min.js index e3d040af..d3ceeb56 100644 --- a/wire/templates-admin/scripts/main.min.js +++ b/wire/templates-admin/scripts/main.min.js @@ -1 +1 @@ -var ProcessWireAdmin={init:function(){this.setupButtonStates();this.setupTooltips();this.setupDropdowns()},setupTooltips:function(){$("a.tooltip, .pw-tooltip").tooltip({position:{my:"center bottom",at:"center top"}}).hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")})},setupButtonStates:function(){$(document).on("mouseover",".ui-button",function(){var a=$(this);a.removeClass("ui-state-default").addClass("ui-state-hover");if(a.hasClass("ui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseover")}}).on("mouseout",".ui-button",function(){var a=$(this);a.removeClass("ui-state-hover").addClass("ui-state-default");if(a.hasClass("xui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseout")}}).on("click",".ui-button",function(){$(this).removeClass("ui-state-default").addClass("ui-state-active")}).on("click","a > button",function(){var a=$(this).parent();var b=a.attr("target");if(typeof b!="undefined"&&b=="_blank"){}else{window.location=a.attr("href")}})},setupDropdowns:function(){var c=false;var h;function g(){var l=$(this);var k;if(l.attr("data-pw-dropdown")){k=l.siblings(l.attr("data-pw-dropdown"));if(!k.length){k=$(l.attr("data-pw-dropdown"))}}else{k=l.siblings(".pw-dropdown-menu")}k.hide();l.data("pw-dropdown-ul",k);if(l.is("button")){if(l.find(".ui-button-text").length==0){l.button()}if(l.attr("type")=="submit"){l.click(function(){l.addClass("pw-dropdown-disabled");setTimeout(function(){l.removeClass("pw-dropdown-disabled")},2000)})}}else{}k.find("a").click(function(){k.hide();return true});k.find(".pw-has-items").each(function(){var m=$("");$(this).prepend(m)});k.mouseleave(function(){k.hide();l.removeClass("hover")})}function e(p){var o=$(this);var l=o.data("pw-dropdown-ul");var k=o.hasClass("pw-dropdown-toggle-delay")?700:0;var m=l.data("pw-dropdown-last-offset");var n=o.data("pw-dropdown-timeout");if(o.hasClass("pw-dropdown-toggle-click")){if(p.type!="mousedown"){return}o.removeClass("ui-state-focus")}if(o.hasClass("pw-dropdown-disabled")){return}n=setTimeout(function(){if(o.hasClass("pw-dropdown-disabled")){return}var t=o.offset();if(m!=null){if(t.top!=m.top||t.left!=m.left){l.menu("destroy").removeClass("pw-dropdown-ready")}}if(!l.hasClass("pw-dropdown-ready")){l.css("position","absolute");l.prependTo($("body")).addClass("pw-dropdown-ready").menu();var r={my:"right top",at:"right bottom",of:o};var s=l.attr("data-my");var q=l.attr("data-at");if(s){r.my=s}if(q){r.at=q}l.position(r).css("z-index",200)}o.addClass("hover");l.show();l.data("pw-dropdown-last-offset",t)},k);o.data("pw-dropdown-timeout",n)}function d(){var m=$(this);var k=m.data("pw-dropdown-ul");var l=m.data("pw-dropdown-timeout");if(l){clearTimeout(l)}setTimeout(function(){if(k.filter(":hover").length){return}k.find("ul").hide();k.hide();m.removeClass("hover")},50);if($("body").hasClass("touch-device")){$(this).attr("data-touchCnt",0)}}function i(m){var k=m.attr("data-from");if(!k){return}var l=$("#"+m.attr("data-from"));if(l.length>0){setTimeout(function(){var p=l.offset().left;var n=m.closest("li").parent("ul");var o=n.offset().left;if(o!=p){n.css("left",p)}},500)}}function f(){var k=$(this);h=k;setTimeout(function(){if(!h){return}if(h!=k){return}k.addClass("pw-ajax-items-loaded");var n=k.attr("data-json");var m=k.siblings("ul");var o=false;var l=k.children(".pw-has-items-icon");l.removeClass("fa-angle-right").addClass("fa-spinner fa-spin");$.getJSON(n,function(p){l.removeClass("fa-spinner fa-spin").addClass("fa-angle-right");if(!c&&p.list.length>10){c=true;o=true;$(document).on("hover","ul.pw-dropdown-menu a",function(){i($(this))})}if(p.add){var q=$("
  • "+p.add.label+"
  • ");m.append(q)}$.each(p.list,function(u){var s="";if(this.icon){s=""}var r=this.url.indexOf("/")===0?this.url:p.url+this.url;var t=$("
  • "+s+this.label+"
  • ");if(typeof this.className!="undefined"&&this.className&&this.className.length){t.addClass(this.className)}m.append(t)});m.addClass("navJSON");m.addClass("length"+parseInt(p.list.length));i(k)})},250)}var b=null;function a(n){var l=$(this);var m=l.attr("data-touchCnt");if(b&&l.attr("id")!=b.attr("id")){b.attr("data-touchCnt",0)}b=l;if(!m){m=0}m++;l.attr("data-touchCnt",m);if(m==2||(l.hasClass("pw-has-ajax-items")&&!l.closest("ul").hasClass("topnav"))){var k=l.attr("href");l.attr("data-touchCnt",0);if(typeof k!="undefined"&&k.length>1){return true}else{l.mouseleave()}}else{var p=l.attr("data-from");if(typeof p=="undefined"){var p=""}if(p.indexOf("topnav")>-1){var o=p.replace("topnav-","")+"-";$("a.pw-dropdown-toggle.hover:not('."+o+"')").attr("data-touchCnt",0).mouseleave()}l.mouseenter()}return false}function j(){if($("body").hasClass("touch-device")){$(document).on("touchstart","a.pw-dropdown-toggle, a.pw-has-items",a)}$(".pw-dropdown-menu").on("click","a:not(.pw-modal)",function(k){k.stopPropagation()});$(".pw-dropdown-toggle").each(g);$(document).on("mousedown",".pw-dropdown-toggle-click",e).on("mouseenter",".pw-dropdown-toggle:not(.pw-dropdown-toggle-click)",e).on("mouseleave",".pw-dropdown-toggle",d).on("mouseenter",".pw-dropdown-menu a.pw-has-ajax-items:not(.pw-ajax-items-loaded)",f).on("mouseleave",".pw-dropdown-menu a.pw-has-ajax-items",function(){h=null})}j()}};if(typeof ProcessWire!="undefined"){ProcessWire.confirm=function(b,a){if(typeof vex!="undefined"){vex.dialog.confirm({message:b,callback:function(c){if(c){a()}}})}else{if(confirm(b)){a()}}};ProcessWire.alert=function(b,a){if(typeof a=="undefined"){var a=false}if(typeof vex!="undefined"){if(a){vex.dialog.alert({unsafeMessage:b})}else{vex.dialog.alert(b)}}else{alert(b)}};ProcessWire.prompt=function(b,c,a){if(typeof vex=="undefined"){alert("prompt function requires vex");return}vex.dialog.prompt({message:b,placeholder:c,callback:a})}}; \ No newline at end of file +var ProcessWireAdmin={init:function(){this.setupButtonStates();this.setupTooltips();this.setupDropdowns()},setupTooltips:function(){$("a.tooltip, .pw-tooltip").tooltip({position:{my:"center bottom",at:"center top"}}).hover(function(){var a=$(this);if(a.is("a")){a.addClass("ui-state-hover")}else{a.data("pw-tooltip-cursor",a.css("cursor"));a.css("cursor","pointer")}a.addClass("pw-tooltip-hover");a.css("cursor","pointer")},function(){var a=$(this);a.removeClass("pw-tooltip-hover ui-state-hover");if(!a.is("a")){a.css("cursor",a.data("pw-tooltip-cursor"))}})},setupButtonStates:function(){$(document).on("mouseover",".ui-button",function(){var a=$(this);a.removeClass("ui-state-default").addClass("ui-state-hover");if(a.hasClass("ui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseover")}}).on("mouseout",".ui-button",function(){var a=$(this);a.removeClass("ui-state-hover").addClass("ui-state-default");if(a.hasClass("xui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseout")}}).on("click",".ui-button",function(){$(this).removeClass("ui-state-default").addClass("ui-state-active")}).on("click","a > button",function(){var a=$(this).parent();var b=a.attr("target");if(typeof b!="undefined"&&b=="_blank"){}else{window.location=a.attr("href")}})},setupDropdowns:function(){var c=false;var h;function g(){var l=$(this);var k;if(l.attr("data-pw-dropdown")){k=l.siblings(l.attr("data-pw-dropdown"));if(!k.length){k=$(l.attr("data-pw-dropdown"))}}else{k=l.siblings(".pw-dropdown-menu")}k.hide();l.data("pw-dropdown-ul",k);if(l.is("button")){if(l.find(".ui-button-text").length==0){l.button()}if(l.attr("type")=="submit"){l.click(function(){l.addClass("pw-dropdown-disabled");setTimeout(function(){l.removeClass("pw-dropdown-disabled")},2000)})}}else{}k.find("a").click(function(){k.hide();return true});k.find(".pw-has-items").each(function(){var o=$("");$(this).prepend(o)});if(l.hasClass("pw-dropdown-toggle-click")){var n=null;function m(){if(n){clearTimeout(n)}n=setTimeout(function(){if(k.filter(":hover").length||l.filter(":hover").length){return}k.fadeOut("fast");l.removeClass("hover pw-dropdown-toggle-open")},1000)}k.mouseleave(m);l.mouseleave(m)}else{k.mouseleave(function(){k.hide();l.removeClass("hover")})}}function e(p){var o=$(this);var l=o.data("pw-dropdown-ul");var k=o.hasClass("pw-dropdown-toggle-delay")?700:0;var m=l.data("pw-dropdown-last-offset");var n=o.data("pw-dropdown-timeout");if(o.hasClass("pw-dropdown-toggle-click")){if(p.type!="mousedown"){return false}o.removeClass("ui-state-focus");if(o.hasClass("pw-dropdown-toggle-open")){o.removeClass("pw-dropdown-toggle-open hover");l.hide();return}else{$(".pw-dropdown-toggle-open").each(function(){var r=$(this);var q=r.data("pw-dropdown-ul");q.mouseleave()});o.addClass("pw-dropdown-toggle-open")}}if(o.hasClass("pw-dropdown-disabled")){return}n=setTimeout(function(){if(o.hasClass("pw-dropdown-disabled")){return}var t=o.offset();if(m!=null){if(t.top!=m.top||t.left!=m.left){l.menu("destroy").removeClass("pw-dropdown-ready")}}if(!l.hasClass("pw-dropdown-ready")){l.css("position","absolute");l.prependTo($("body")).addClass("pw-dropdown-ready").menu();var r={my:"right top",at:"right bottom",of:o};var s=l.attr("data-my");var q=l.attr("data-at");if(s){r.my=s}if(q){r.at=q}l.position(r).css("z-index",200)}o.addClass("hover");l.show();l.data("pw-dropdown-last-offset",t)},k);o.data("pw-dropdown-timeout",n)}function d(){var m=$(this);var k=m.data("pw-dropdown-ul");var l=m.data("pw-dropdown-timeout");if(l){clearTimeout(l)}setTimeout(function(){if(k.filter(":hover").length){return}k.find("ul").hide();k.hide();m.removeClass("hover")},50);if($("body").hasClass("touch-device")){$(this).attr("data-touchCnt",0)}}function i(m){var k=m.attr("data-from");if(!k){return}var l=$("#"+m.attr("data-from"));if(l.length>0){setTimeout(function(){var p=l.offset().left;var n=m.closest("li").parent("ul");var o=n.offset().left;if(o!=p){n.css("left",p)}},500)}}function f(){var k=$(this);h=k;setTimeout(function(){if(!h){return}if(h!=k){return}k.addClass("pw-ajax-items-loaded");var n=k.attr("data-json");var m=k.siblings("ul");var o=false;var l=k.children(".pw-has-items-icon");l.removeClass("fa-angle-right").addClass("fa-spinner fa-spin");$.getJSON(n,function(p){l.removeClass("fa-spinner fa-spin").addClass("fa-angle-right");if(!c&&p.list.length>10){c=true;o=true;$(document).on("hover","ul.pw-dropdown-menu a",function(){i($(this))})}if(p.add){var q=$("
  • "+p.add.label+"
  • ");m.append(q)}$.each(p.list,function(u){var s="";if(this.icon){s=""}var r=this.url.indexOf("/")===0?this.url:p.url+this.url;var t=$("
  • "+s+this.label+"
  • ");if(typeof this.className!="undefined"&&this.className&&this.className.length){t.addClass(this.className)}m.append(t)});m.addClass("navJSON");m.addClass("length"+parseInt(p.list.length));i(k)})},250)}var b=null;function a(n){var l=$(this);var m=l.attr("data-touchCnt");if(b&&l.attr("id")!=b.attr("id")){b.attr("data-touchCnt",0)}b=l;if(!m){m=0}m++;l.attr("data-touchCnt",m);if(m==2||(l.hasClass("pw-has-ajax-items")&&!l.closest("ul").hasClass("topnav"))){var k=l.attr("href");l.attr("data-touchCnt",0);if(typeof k!="undefined"&&k.length>1){return true}else{l.mouseleave()}}else{var p=l.attr("data-from");if(typeof p=="undefined"){var p=""}if(p.indexOf("topnav")>-1){var o=p.replace("topnav-","")+"-";$("a.pw-dropdown-toggle.hover:not('."+o+"')").attr("data-touchCnt",0).mouseleave()}l.mouseenter()}return false}function j(){if($("body").hasClass("touch-device")){$(document).on("touchstart","a.pw-dropdown-toggle, a.pw-has-items",a)}$(".pw-dropdown-menu").on("click","a:not(.pw-modal)",function(k){k.stopPropagation()});$(".pw-dropdown-toggle").each(g);$(document).on("mousedown",".pw-dropdown-toggle-click",e).on("mouseenter",".pw-dropdown-toggle:not(.pw-dropdown-toggle-click)",e).on("mouseleave",".pw-dropdown-toggle:not(.pw-dropdown-toggle-click)",d).on("mouseenter",".pw-dropdown-menu a.pw-has-ajax-items:not(.pw-ajax-items-loaded)",f).on("mouseleave",".pw-dropdown-menu a.pw-has-ajax-items",function(){h=null})}j()}};if(typeof ProcessWire!="undefined"){ProcessWire.confirm=function(b,a){if(typeof vex!="undefined"){vex.dialog.confirm({message:b,callback:function(c){if(c){a()}}})}else{if(confirm(b)){a()}}};ProcessWire.alert=function(b,a){if(typeof a=="undefined"){var a=false}if(typeof vex!="undefined"){if(a){vex.dialog.alert({unsafeMessage:b})}else{vex.dialog.alert(b)}}else{alert(b)}};ProcessWire.prompt=function(b,c,a){if(typeof vex=="undefined"){alert("prompt function requires vex");return}vex.dialog.prompt({message:b,placeholder:c,callback:a})}}; \ No newline at end of file