Loading CHANGELOG.txt +2 −0 Original line number Diff line number Diff line Ultimenu 8.x-2.0-dev, 2021-12-19 -------------------------------- - Issue #3224639 by ecvandenberg: Expanded mobile menu does not scroll due to overflow hidden. - Fixed for D10 deprecation: jQuery.once. - Fixed for D10 deprecation: Twig spaceless and drupal_get_path(). - Added Drupal ^10. Loading css/components/ultimenu.offcanvas.css +2 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ .is-ultimenu-canvas.is-ultimenu-expanded, .is-ultimenu-canvas.is-ultimenu-canvas--hiding { overflow: hidden; height: 100%; transform: translate3d(0px, 0px, 0px); } /** The #header element, safe whether enabled for desktop, or mobile only. */ Loading css/ultimenu.extras.css +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ Adjust it to the relevant block class, e.g.: .block--ultimenu, etc. */ } .block .ultimenu { margin: 0; padding: 0; } Loading js/ultimenu.base.js +7 −8 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ me.removeClass($body, _isBodyHiding); }, 400); } else { // Scroll to top in case the current viewport is far below the fold. if (me.$backdrop) { _win.scroll({ Loading @@ -235,7 +235,6 @@ behavior: 'smooth' }); } } }, closeFlyout: function () { Loading js/ultimenu.base.min.js +1 −1 Original line number Diff line number Diff line (function(b,k,j,c){var s=void 0;var B=void 0;var r="ultimenu";var m="is-"+r;var o=m+"-canvas";var d=o+"--active";var u=o+"--hiding";var h=m+"-expanded";var p=m+"-item-expanded";var z=m+"-active";var v=m+"-button-active";var q="data-ultiajax-hit";var l="hidden";var f="flyout";var n="is-"+f;var a=n+"-expanded";var C=r+"__link";var y="."+r+"__ajax";var x="data-ultiajax-trigger";var A=r+"__"+f;var e=o+"-off";var t=o+"-on";var g=o+"-backdrop";var i="[data-"+r+"-button]";var w=c.body;b.ultimenu={documentWidth:0,$backdrop:null,$hamburger:null,$offCanvas:null,once:function(G){var D;var E=false;return function F(){if(E){return D}E=true;D=G.apply(this,arguments);G=null;return D}},isBlazy:"dBlazy" in window,forEach:function(E,F,D){if(this.isBlazy){return window.dBlazy.forEach(E,F,D)}return E.forEach(F)},closest:function(E,D){if(this.isBlazy){return window.dBlazy.closest(E,D)}return E.closest(D)},addRemoveClass:function(E,F,H){var G=this;var D=F.split(" ");if(E){if(E.length){G.forEach(E,function(I){I.classList[H?"add":"remove"].apply(I.classList,D)})}else{if(E.classList){E.classList[H?"add":"remove"].apply(E.classList,D)}}}},addClass:function(D,E){this.addRemoveClass(D,E,true)},removeClass:function(D,E){this.addRemoveClass(D,E,false)},toggleClass:function(E,D){if(E){E.classList.toggle(D)}},slideToggle:function(E,D){if(E){this[E.clientHeight===0?"addClass":"removeClass"](E,D)}},doResizeMain:function(){var F=this;var D=j.innerWidth||c.body.clientWidth;var E=function(){F.removeClass(w,h+" "+d);F.closeFlyout()};if(F.isHidden(c.querySelector(i))){E()}else{F.addClass(w,d)}if(D!==F.documentWidth){return}if(F.isHidden(c.querySelector(i))){E()}else{if(D!==F.documentWidth){F.addClass(w,h);if(!F.isHidden(c.querySelector(i))){F.addClass(w,d)}}}F.documentWidth=D},executeAjax:function(E){var F=this;var H=F.closest(E,"li");var D=H.querySelector(y);var G=function(){E.removeAttribute(x)};if(D){if(!D.hasAttribute(q)){D.click();D.setAttribute(q,1);F.addClass(D,l)}j.clearTimeout(B);B=j.setTimeout(function(){D=H.querySelector(y);if(D){F.removeClass(D,l);D.click()}else{G()}},1500)}else{G()}},triggerAjax:function(F){var E=this;F.stopPropagation();var D=F.target.classList.contains("caret")?E.closest(F.target,"."+C):F.target;if(D.hasAttribute(x)){E.executeAjax(D)}},triggerClickHamburger:function(E){var D=this;E.preventDefault();if(D.$hamburger){D.$hamburger.click()}},doClickHamburger:function(G){var E=this;G.preventDefault();G.stopPropagation();var F=G.target;var D=w.classList.contains(h);E[D?"removeClass":"addClass"](w,h);E[D?"removeClass":"addClass"](F,v);E.closeFlyout();if(!D){j.clearTimeout(s);E.addClass(w,u);s=j.setTimeout(function(){E.removeClass(w,u)},400)}else{if(E.$backdrop){j.scroll({top:E.$backdrop.offsetTop,behavior:"smooth"})}}},closeFlyout:function(){var F=this;var G=c.querySelectorAll("."+z);var E=c.querySelectorAll("."+p);var D=c.querySelectorAll("."+a);F.removeClass(G,z);F.removeClass(E,p);F.removeClass(D,a)},isHidden:function(E){var D=E?j.getComputedStyle(E):false;return E&&(D.display==="none"||D.visibility==="invisible")},doClickCaret:function(I){var G=this;I.preventDefault();I.stopPropagation();var F=I.target;var D=G.closest(F,"."+C);var J=G.closest(D,"li");var E=D.nextElementSibling;if(G.isHidden(G.$hamburger)){G.closeFlyout()}if(E&&E.classList.contains(A)){var H=E.clientHeight===0;G[H?"addClass":"removeClass"](J,p);G[H?"addClass":"removeClass"](D,z);G.slideToggle(E,a)}},onResize:function(E,D){j.onresize=function(){j.clearTimeout(D);D=j.setTimeout(E,200)};return E},prepare:function(){var H=this;var G=k.ultimenu||{};w=c.body;H.$offCanvas=c.querySelector("."+e);H.$hamburger=c.querySelector(i);H.$backdrop=c.querySelector("."+g);if(G&&(G.canvasOff&&G.canvasOn)){if(H.$offCanvas===null){H.$offCanvas=c.querySelector(G.canvasOff);H.addClass(H.$offCanvas,e)}var E=c.querySelector("."+t);if(E===null){var D=c.querySelectorAll(G.canvasOn);H.addClass(D,t)}}if(H.$backdrop===null&&H.$offCanvas){var I=H.$offCanvas.parentNode;var F=c.createElement("div");F.className=g;I.insertBefore(F,I.firstElementChild||null);H.$backdrop=c.querySelector("."+g)}}}})(Drupal,drupalSettings,this,this.document); (function(b,k,j,c){var s=void 0;var B=void 0;var r="ultimenu";var m="is-"+r;var o=m+"-canvas";var d=o+"--active";var u=o+"--hiding";var h=m+"-expanded";var p=m+"-item-expanded";var z=m+"-active";var v=m+"-button-active";var q="data-ultiajax-hit";var l="hidden";var f="flyout";var n="is-"+f;var a=n+"-expanded";var C=r+"__link";var y="."+r+"__ajax";var x="data-ultiajax-trigger";var A=r+"__"+f;var e=o+"-off";var t=o+"-on";var g=o+"-backdrop";var i="[data-"+r+"-button]";var w=c.body;b.ultimenu={documentWidth:0,$backdrop:null,$hamburger:null,$offCanvas:null,once:function(G){var D;var E=false;return function F(){if(E){return D}E=true;D=G.apply(this,arguments);G=null;return D}},isBlazy:"dBlazy" in window,forEach:function(E,F,D){if(this.isBlazy){return window.dBlazy.forEach(E,F,D)}return E.forEach(F)},closest:function(E,D){if(this.isBlazy){return window.dBlazy.closest(E,D)}return E.closest(D)},addRemoveClass:function(E,F,H){var G=this;var D=F.split(" ");if(E){if(E.length){G.forEach(E,function(I){I.classList[H?"add":"remove"].apply(I.classList,D)})}else{if(E.classList){E.classList[H?"add":"remove"].apply(E.classList,D)}}}},addClass:function(D,E){this.addRemoveClass(D,E,true)},removeClass:function(D,E){this.addRemoveClass(D,E,false)},toggleClass:function(E,D){if(E){E.classList.toggle(D)}},slideToggle:function(E,D){if(E){this[E.clientHeight===0?"addClass":"removeClass"](E,D)}},doResizeMain:function(){var F=this;var D=j.innerWidth||c.body.clientWidth;var E=function(){F.removeClass(w,h+" "+d);F.closeFlyout()};if(F.isHidden(c.querySelector(i))){E()}else{F.addClass(w,d)}if(D!==F.documentWidth){return}if(F.isHidden(c.querySelector(i))){E()}else{if(D!==F.documentWidth){F.addClass(w,h);if(!F.isHidden(c.querySelector(i))){F.addClass(w,d)}}}F.documentWidth=D},executeAjax:function(E){var F=this;var H=F.closest(E,"li");var D=H.querySelector(y);var G=function(){E.removeAttribute(x)};if(D){if(!D.hasAttribute(q)){D.click();D.setAttribute(q,1);F.addClass(D,l)}j.clearTimeout(B);B=j.setTimeout(function(){D=H.querySelector(y);if(D){F.removeClass(D,l);D.click()}else{G()}},1500)}else{G()}},triggerAjax:function(F){var E=this;F.stopPropagation();var D=F.target.classList.contains("caret")?E.closest(F.target,"."+C):F.target;if(D.hasAttribute(x)){E.executeAjax(D)}},triggerClickHamburger:function(E){var D=this;E.preventDefault();if(D.$hamburger){D.$hamburger.click()}},doClickHamburger:function(G){var E=this;G.preventDefault();G.stopPropagation();var F=G.target;var D=w.classList.contains(h);E[D?"removeClass":"addClass"](w,h);E[D?"removeClass":"addClass"](F,v);E.closeFlyout();if(!D){j.clearTimeout(s);E.addClass(w,u);s=j.setTimeout(function(){E.removeClass(w,u)},400)}if(E.$backdrop){j.scroll({top:E.$backdrop.offsetTop,behavior:"smooth"})}},closeFlyout:function(){var F=this;var G=c.querySelectorAll("."+z);var E=c.querySelectorAll("."+p);var D=c.querySelectorAll("."+a);F.removeClass(G,z);F.removeClass(E,p);F.removeClass(D,a)},isHidden:function(E){var D=E?j.getComputedStyle(E):false;return E&&(D.display==="none"||D.visibility==="invisible")},doClickCaret:function(I){var G=this;I.preventDefault();I.stopPropagation();var F=I.target;var D=G.closest(F,"."+C);var J=G.closest(D,"li");var E=D.nextElementSibling;if(G.isHidden(G.$hamburger)){G.closeFlyout()}if(E&&E.classList.contains(A)){var H=E.clientHeight===0;G[H?"addClass":"removeClass"](J,p);G[H?"addClass":"removeClass"](D,z);G.slideToggle(E,a)}},onResize:function(E,D){j.onresize=function(){j.clearTimeout(D);D=j.setTimeout(E,200)};return E},prepare:function(){var H=this;var G=k.ultimenu||{};w=c.body;H.$offCanvas=c.querySelector("."+e);H.$hamburger=c.querySelector(i);H.$backdrop=c.querySelector("."+g);if(G&&(G.canvasOff&&G.canvasOn)){if(H.$offCanvas===null){H.$offCanvas=c.querySelector(G.canvasOff);H.addClass(H.$offCanvas,e)}var E=c.querySelector("."+t);if(E===null){var D=c.querySelectorAll(G.canvasOn);H.addClass(D,t)}}if(H.$backdrop===null&&H.$offCanvas){var I=H.$offCanvas.parentNode;var F=c.createElement("div");F.className=g;I.insertBefore(F,I.firstElementChild||null);H.$backdrop=c.querySelector("."+g)}}}})(Drupal,drupalSettings,this,this.document); Loading
CHANGELOG.txt +2 −0 Original line number Diff line number Diff line Ultimenu 8.x-2.0-dev, 2021-12-19 -------------------------------- - Issue #3224639 by ecvandenberg: Expanded mobile menu does not scroll due to overflow hidden. - Fixed for D10 deprecation: jQuery.once. - Fixed for D10 deprecation: Twig spaceless and drupal_get_path(). - Added Drupal ^10. Loading
css/components/ultimenu.offcanvas.css +2 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ .is-ultimenu-canvas.is-ultimenu-expanded, .is-ultimenu-canvas.is-ultimenu-canvas--hiding { overflow: hidden; height: 100%; transform: translate3d(0px, 0px, 0px); } /** The #header element, safe whether enabled for desktop, or mobile only. */ Loading
css/ultimenu.extras.css +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ Adjust it to the relevant block class, e.g.: .block--ultimenu, etc. */ } .block .ultimenu { margin: 0; padding: 0; } Loading
js/ultimenu.base.js +7 −8 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ me.removeClass($body, _isBodyHiding); }, 400); } else { // Scroll to top in case the current viewport is far below the fold. if (me.$backdrop) { _win.scroll({ Loading @@ -235,7 +235,6 @@ behavior: 'smooth' }); } } }, closeFlyout: function () { Loading
js/ultimenu.base.min.js +1 −1 Original line number Diff line number Diff line (function(b,k,j,c){var s=void 0;var B=void 0;var r="ultimenu";var m="is-"+r;var o=m+"-canvas";var d=o+"--active";var u=o+"--hiding";var h=m+"-expanded";var p=m+"-item-expanded";var z=m+"-active";var v=m+"-button-active";var q="data-ultiajax-hit";var l="hidden";var f="flyout";var n="is-"+f;var a=n+"-expanded";var C=r+"__link";var y="."+r+"__ajax";var x="data-ultiajax-trigger";var A=r+"__"+f;var e=o+"-off";var t=o+"-on";var g=o+"-backdrop";var i="[data-"+r+"-button]";var w=c.body;b.ultimenu={documentWidth:0,$backdrop:null,$hamburger:null,$offCanvas:null,once:function(G){var D;var E=false;return function F(){if(E){return D}E=true;D=G.apply(this,arguments);G=null;return D}},isBlazy:"dBlazy" in window,forEach:function(E,F,D){if(this.isBlazy){return window.dBlazy.forEach(E,F,D)}return E.forEach(F)},closest:function(E,D){if(this.isBlazy){return window.dBlazy.closest(E,D)}return E.closest(D)},addRemoveClass:function(E,F,H){var G=this;var D=F.split(" ");if(E){if(E.length){G.forEach(E,function(I){I.classList[H?"add":"remove"].apply(I.classList,D)})}else{if(E.classList){E.classList[H?"add":"remove"].apply(E.classList,D)}}}},addClass:function(D,E){this.addRemoveClass(D,E,true)},removeClass:function(D,E){this.addRemoveClass(D,E,false)},toggleClass:function(E,D){if(E){E.classList.toggle(D)}},slideToggle:function(E,D){if(E){this[E.clientHeight===0?"addClass":"removeClass"](E,D)}},doResizeMain:function(){var F=this;var D=j.innerWidth||c.body.clientWidth;var E=function(){F.removeClass(w,h+" "+d);F.closeFlyout()};if(F.isHidden(c.querySelector(i))){E()}else{F.addClass(w,d)}if(D!==F.documentWidth){return}if(F.isHidden(c.querySelector(i))){E()}else{if(D!==F.documentWidth){F.addClass(w,h);if(!F.isHidden(c.querySelector(i))){F.addClass(w,d)}}}F.documentWidth=D},executeAjax:function(E){var F=this;var H=F.closest(E,"li");var D=H.querySelector(y);var G=function(){E.removeAttribute(x)};if(D){if(!D.hasAttribute(q)){D.click();D.setAttribute(q,1);F.addClass(D,l)}j.clearTimeout(B);B=j.setTimeout(function(){D=H.querySelector(y);if(D){F.removeClass(D,l);D.click()}else{G()}},1500)}else{G()}},triggerAjax:function(F){var E=this;F.stopPropagation();var D=F.target.classList.contains("caret")?E.closest(F.target,"."+C):F.target;if(D.hasAttribute(x)){E.executeAjax(D)}},triggerClickHamburger:function(E){var D=this;E.preventDefault();if(D.$hamburger){D.$hamburger.click()}},doClickHamburger:function(G){var E=this;G.preventDefault();G.stopPropagation();var F=G.target;var D=w.classList.contains(h);E[D?"removeClass":"addClass"](w,h);E[D?"removeClass":"addClass"](F,v);E.closeFlyout();if(!D){j.clearTimeout(s);E.addClass(w,u);s=j.setTimeout(function(){E.removeClass(w,u)},400)}else{if(E.$backdrop){j.scroll({top:E.$backdrop.offsetTop,behavior:"smooth"})}}},closeFlyout:function(){var F=this;var G=c.querySelectorAll("."+z);var E=c.querySelectorAll("."+p);var D=c.querySelectorAll("."+a);F.removeClass(G,z);F.removeClass(E,p);F.removeClass(D,a)},isHidden:function(E){var D=E?j.getComputedStyle(E):false;return E&&(D.display==="none"||D.visibility==="invisible")},doClickCaret:function(I){var G=this;I.preventDefault();I.stopPropagation();var F=I.target;var D=G.closest(F,"."+C);var J=G.closest(D,"li");var E=D.nextElementSibling;if(G.isHidden(G.$hamburger)){G.closeFlyout()}if(E&&E.classList.contains(A)){var H=E.clientHeight===0;G[H?"addClass":"removeClass"](J,p);G[H?"addClass":"removeClass"](D,z);G.slideToggle(E,a)}},onResize:function(E,D){j.onresize=function(){j.clearTimeout(D);D=j.setTimeout(E,200)};return E},prepare:function(){var H=this;var G=k.ultimenu||{};w=c.body;H.$offCanvas=c.querySelector("."+e);H.$hamburger=c.querySelector(i);H.$backdrop=c.querySelector("."+g);if(G&&(G.canvasOff&&G.canvasOn)){if(H.$offCanvas===null){H.$offCanvas=c.querySelector(G.canvasOff);H.addClass(H.$offCanvas,e)}var E=c.querySelector("."+t);if(E===null){var D=c.querySelectorAll(G.canvasOn);H.addClass(D,t)}}if(H.$backdrop===null&&H.$offCanvas){var I=H.$offCanvas.parentNode;var F=c.createElement("div");F.className=g;I.insertBefore(F,I.firstElementChild||null);H.$backdrop=c.querySelector("."+g)}}}})(Drupal,drupalSettings,this,this.document); (function(b,k,j,c){var s=void 0;var B=void 0;var r="ultimenu";var m="is-"+r;var o=m+"-canvas";var d=o+"--active";var u=o+"--hiding";var h=m+"-expanded";var p=m+"-item-expanded";var z=m+"-active";var v=m+"-button-active";var q="data-ultiajax-hit";var l="hidden";var f="flyout";var n="is-"+f;var a=n+"-expanded";var C=r+"__link";var y="."+r+"__ajax";var x="data-ultiajax-trigger";var A=r+"__"+f;var e=o+"-off";var t=o+"-on";var g=o+"-backdrop";var i="[data-"+r+"-button]";var w=c.body;b.ultimenu={documentWidth:0,$backdrop:null,$hamburger:null,$offCanvas:null,once:function(G){var D;var E=false;return function F(){if(E){return D}E=true;D=G.apply(this,arguments);G=null;return D}},isBlazy:"dBlazy" in window,forEach:function(E,F,D){if(this.isBlazy){return window.dBlazy.forEach(E,F,D)}return E.forEach(F)},closest:function(E,D){if(this.isBlazy){return window.dBlazy.closest(E,D)}return E.closest(D)},addRemoveClass:function(E,F,H){var G=this;var D=F.split(" ");if(E){if(E.length){G.forEach(E,function(I){I.classList[H?"add":"remove"].apply(I.classList,D)})}else{if(E.classList){E.classList[H?"add":"remove"].apply(E.classList,D)}}}},addClass:function(D,E){this.addRemoveClass(D,E,true)},removeClass:function(D,E){this.addRemoveClass(D,E,false)},toggleClass:function(E,D){if(E){E.classList.toggle(D)}},slideToggle:function(E,D){if(E){this[E.clientHeight===0?"addClass":"removeClass"](E,D)}},doResizeMain:function(){var F=this;var D=j.innerWidth||c.body.clientWidth;var E=function(){F.removeClass(w,h+" "+d);F.closeFlyout()};if(F.isHidden(c.querySelector(i))){E()}else{F.addClass(w,d)}if(D!==F.documentWidth){return}if(F.isHidden(c.querySelector(i))){E()}else{if(D!==F.documentWidth){F.addClass(w,h);if(!F.isHidden(c.querySelector(i))){F.addClass(w,d)}}}F.documentWidth=D},executeAjax:function(E){var F=this;var H=F.closest(E,"li");var D=H.querySelector(y);var G=function(){E.removeAttribute(x)};if(D){if(!D.hasAttribute(q)){D.click();D.setAttribute(q,1);F.addClass(D,l)}j.clearTimeout(B);B=j.setTimeout(function(){D=H.querySelector(y);if(D){F.removeClass(D,l);D.click()}else{G()}},1500)}else{G()}},triggerAjax:function(F){var E=this;F.stopPropagation();var D=F.target.classList.contains("caret")?E.closest(F.target,"."+C):F.target;if(D.hasAttribute(x)){E.executeAjax(D)}},triggerClickHamburger:function(E){var D=this;E.preventDefault();if(D.$hamburger){D.$hamburger.click()}},doClickHamburger:function(G){var E=this;G.preventDefault();G.stopPropagation();var F=G.target;var D=w.classList.contains(h);E[D?"removeClass":"addClass"](w,h);E[D?"removeClass":"addClass"](F,v);E.closeFlyout();if(!D){j.clearTimeout(s);E.addClass(w,u);s=j.setTimeout(function(){E.removeClass(w,u)},400)}if(E.$backdrop){j.scroll({top:E.$backdrop.offsetTop,behavior:"smooth"})}},closeFlyout:function(){var F=this;var G=c.querySelectorAll("."+z);var E=c.querySelectorAll("."+p);var D=c.querySelectorAll("."+a);F.removeClass(G,z);F.removeClass(E,p);F.removeClass(D,a)},isHidden:function(E){var D=E?j.getComputedStyle(E):false;return E&&(D.display==="none"||D.visibility==="invisible")},doClickCaret:function(I){var G=this;I.preventDefault();I.stopPropagation();var F=I.target;var D=G.closest(F,"."+C);var J=G.closest(D,"li");var E=D.nextElementSibling;if(G.isHidden(G.$hamburger)){G.closeFlyout()}if(E&&E.classList.contains(A)){var H=E.clientHeight===0;G[H?"addClass":"removeClass"](J,p);G[H?"addClass":"removeClass"](D,z);G.slideToggle(E,a)}},onResize:function(E,D){j.onresize=function(){j.clearTimeout(D);D=j.setTimeout(E,200)};return E},prepare:function(){var H=this;var G=k.ultimenu||{};w=c.body;H.$offCanvas=c.querySelector("."+e);H.$hamburger=c.querySelector(i);H.$backdrop=c.querySelector("."+g);if(G&&(G.canvasOff&&G.canvasOn)){if(H.$offCanvas===null){H.$offCanvas=c.querySelector(G.canvasOff);H.addClass(H.$offCanvas,e)}var E=c.querySelector("."+t);if(E===null){var D=c.querySelectorAll(G.canvasOn);H.addClass(D,t)}}if(H.$backdrop===null&&H.$offCanvas){var I=H.$offCanvas.parentNode;var F=c.createElement("div");F.className=g;I.insertBefore(F,I.firstElementChild||null);H.$backdrop=c.querySelector("."+g)}}}})(Drupal,drupalSettings,this,this.document);