{"version":3,"sources":["menu-strip.js"],"names":["$","$nav","$theMenu","$btn","$visiblelinks","$hiddenlinks","$ctalinks","updateStripNav","availableSpace","hasClass","width","outerWidth","breaks","push","children","last","prependTo","length","first","appendTo","pop","addClass","attr","$findCTA","find","thelink","text","href","title","role","html","_original","CLASS_NAME","bootstrap","dd","prototype","closest","clickEvent","classList","add","document","querySelectorAll","forEach","e","remove","Dropdown","_element","parentNode","addEventListener","preventDefault","this","contains","stopPropagation","composedPath","some","el","window","resize","removeClass","toggleClass","bind","jQuery"],"mappings":"AAAA,CAAA,SAAWA,GACMA,EAAE,YAAY,EAA7B,IADDC,EAAWD,EAAE,gBAAA,EACRE,EAAAA,EAAQ,sBAAkB,EAC1BD,EAASD,EAAA,wBAAiB,EAC1BG,EAASH,EAAA,wBAAuB,EAChCI,EAAAA,EAAa,iBAAK,EAClBC,EAAAA,GACAC,EAAS,GAgBX,SAAAC,IAEF,IAAAC,EAAuBD,EAAGE,SAAA,WAAA,EAAAR,EAAAS,MAAA,EAAAT,EAAAS,MAAA,EAAAP,EAAAQ,WAAA,EAIpBP,EAAcM,MAAM,EAAIF,GAC5BI,EAAAC,KAAAT,EAAAM,MAAA,CAAA,EAGEN,EAAAU,SAAA,EAAAC,KAAA,EAAAC,UAAAX,CAAA,EAGAF,EAAAM,SAAA,WAAA,GACAN,EAAIA,YAAc,WAAY,IAQTS,EAAOA,EAAOK,OAAS,GAAxCT,IAIFI,EAAYE,SAAA,EAAAI,MAAA,EAAAC,SAAAf,CAAA,EACdQ,EAAAQ,IAAA,GAIEjB,EAAKkB,OAAS,IACdhB,EAAAA,SAAagB,WAAS,EACxBhB,EAAAgB,SAAA,WAAA,IAIFlB,EAAKmB,KAAK,QAASV,EAAOK,MAAM,EAI9BV,EAAgBG,MAAA,EAAAF,GAClBD,EAAA,CAQF,CA7DIH,EAAcU,SAAS,EAAEC,KAAK,EAAEN,SAAS,KAAK,IAAhCK,EAAAA,MAAS,CACvBS,MAAQA,EAFZnB,EAAAU,SAAA,EAAAC,KAAA,EAAAS,KAAA,GAAA,GAEepB,KAAa,MAACU,EACrBW,MAAO,+BACTC,MAAMH,EAASD,KAAK,OAAO,EAC3BK,KAAAJ,EAAOD,KAAA,MAAA,EACPM,KAAOL,SACPI,KAAMJ,EAASD,KAAK,CACpBO,CAAAA,EAAAA,SAAMvB,CAAQ,EACdwB,EAAMP,OAASO,EAAAA,OAAK,GAwD1B,IAQgDC,EAF1CC,EAAE,0BALRC,UAOUC,SAASC,UAAUC,QAAmBL,EAO9CE,UAQQI,SAAUF,UAAME,OAdpB,WANF,GAOIH,KAAGI,SAAUC,QAAIP,YAAW,EAAA,CAC9BQ,SAAAC,iBAAA,eAAAT,CAAA,EAAAU,QAAA,SAAAC,GACFA,EAAAL,UAAAM,OAAAZ,CAAA,CACA,CAAA,EAIJQ,IAFEP,IAAAA,EAAUY,KAAQC,SAACX,QAAgB,WAAC,EAAAY,WAAAX,QAAA,WAAA,EAE7BK,GAAAA,IAAiBD,SAAAN,EAAAA,EAAAa,WAAwBL,QAAQ,WAAc,EACnEM,EAAAA,UAAgBT,IAACP,CAAA,CANlB,CACA,OAQIiB,EAAAA,KAAgBC,IAAA,CAPtB,GAGFV,SAMmHC,iBAAA,sBAAA,EAAAC,QAAA,SAAAR,GALjHA,EAAGc,iBAMiB,mBAAE,SAAAL,GACpBO,KAAAZ,UAAAa,SAAAnB,CAAA,IACEoB,KAAAA,UAAeR,OAAIZ,CAAA,EACrBW,EAAAM,eAAA,GAJIN,EAAEN,YAAcM,EAAEN,WAAWgB,aAAa,EAAEC,KAAK,SAAAC,GAAE,OAAIA,EAAGjB,WAAaiB,EAAGjB,UAAUa,SAASnB,CAAU,CAAC,CAAA,GAQ9GW,EAAAM,eAAA,EAEFN,EAAAS,gBAAA,CACEI,CAAAA,CANF,CAAC,EAMDxD,EAAEwD,MAAM,EAAEC,OAAO,WAQjBlD,EAAA,CACAH,CAAAA,EANAD,EAOEE,GAAAA,QAAagB,WACblB,EAAKuD,YAAoB,WAAC,EAE1BvD,EAAAwD,YAAA,QAAA,CACFpD,CAAAA,EALAH,EAAcwD,KAAK,oBAAqB,WACtCvD,EAAagB,SAAS,WAAW,EACjClB,EAAKuD,YAAY,QAAQ,CAE3B,CAAC,EACDnD,EAAe,CAKhB,EAAEsD,MAAM","file":"menu-strip.min.js","sourcesContent":["(function ($) {\r\n  var $theMenu = $('#menuStrip');\r\n  var $nav = $('#menuStrip nav');\r\n  var $btn = $('#menuStrip .btn-more');\r\n  var $visiblelinks = $('#menuStrip #parent-nav');\r\n  var $hiddenlinks = $('#menuStrip #hidden-nav');\r\n  var $ctalinks = $('#menuStrip #cta');\r\n  var breaks = [];\r\n  var $findCTA = '';\r\n\r\n  // If a CTA exists, remove it, get it's info and put it into $ctalinks\r\n  if ($visiblelinks.children().last().hasClass('CTA')) {\r\n      $findCTA = $visiblelinks.children().last().find('a');\r\n      var thelink = $('<a>', {\r\n        text: $findCTA.attr('name'),\r\n        class: 'btn btn-primary btn-cta ms-5',\r\n        title: $findCTA.attr('title'),\r\n        href: $findCTA.attr('href'),\r\n        role: 'button',\r\n        html: $findCTA.html()\r\n      }).appendTo($ctalinks);\r\n      $findCTA.parent().remove();\r\n    }\r\n\r\n  function updateStripNav() {\r\n    var availableSpace = $btn.hasClass('invisible') ? $nav.width() : $nav.width() - $btn.outerWidth();\r\n    // The visible list is overflowing the nav\r\n\r\n    if ($visiblelinks.width() > availableSpace) {      \r\n    // Record the width of the list\r\n      breaks.push($visiblelinks.width());\r\n\r\n      // Move item to the invisible list\r\n      $visiblelinks.children().last().prependTo($hiddenlinks);\r\n\r\n      // Show the dropdown btn\r\n      if ($btn.hasClass('invisible')) {\r\n        $btn.removeClass('invisible');\r\n      }\r\n\r\n      // The visible list is not overflowing\r\n    } else {\r\n\r\n      // There is space for another item in the nav\r\n      if (availableSpace > breaks[breaks.length - 1]) {\r\n\r\n        // Move the item to the visible list\r\n        $hiddenlinks.children().first().appendTo($visiblelinks);\r\n        breaks.pop();\r\n      }\r\n\r\n      // Hide the dropdown btn if invisible list is empty\r\n      if (breaks.length < 1) {\r\n        $btn.addClass('invisible');\r\n        $hiddenlinks.addClass('invisible');\r\n      }\r\n    }\r\n\r\n    // Keep counter updated\r\n    $btn.attr(\"count\", breaks.length);\r\n\r\n    // Recur if the visible list is still overflowing the nav\r\n    if ($visiblelinks.width() > availableSpace) {\r\n      updateStripNav();\r\n    }\r\n\r\n  }\r\n\r\n\r\n\r\n \r\n\r\n  /* ********************************** */\r\n  /* SHOW EXTENDED DEPTH BOOTSTRAP MENUS - Specific to menu strip */\r\n  /* ********************************** */\r\n  const CLASS_NAME = 'has-child-dropdown-show';\r\n  bootstrap.Dropdown.prototype.toggle = function (_original) {\r\n    return function () {\r\n      if (this._element.closest('#menuStrip')) {\r\n        document.querySelectorAll('#menuStrip .' + CLASS_NAME).forEach(function (e) {\r\n          e.classList.remove(CLASS_NAME);\r\n        });\r\n\r\n        let dd = this._element.closest('.dropdown').parentNode.closest('.dropdown');\r\n        for (; dd && dd !== document; dd = dd.parentNode.closest('.dropdown')) {\r\n          dd.classList.add(CLASS_NAME);\r\n        }\r\n      }\r\n      return _original.call(this);\r\n    };\r\n  }(bootstrap.Dropdown.prototype.toggle);\r\n\r\n  document.querySelectorAll('#menuStrip .dropdown').forEach(function (dd) {\r\n    dd.addEventListener('hide.bs.dropdown', function (e) {\r\n      if (this.classList.contains(CLASS_NAME)) {\r\n        this.classList.remove(CLASS_NAME);\r\n        e.preventDefault();\r\n      }\r\n      if (e.clickEvent && e.clickEvent.composedPath().some(el => el.classList && el.classList.contains(CLASS_NAME))) {\r\n        e.preventDefault();\r\n      }\r\n      e.stopPropagation(); // do not need pop in multi level mode\r\n    });\r\n  });\r\n\r\n\r\n    /* ********************************** */\r\n  /* LISTENERS */\r\n  /* ********************************** */\r\n  $(window).resize(function () {\r\n    updateStripNav();\r\n  });\r\n  $btn.on('click', function () {\r\n    $hiddenlinks.toggleClass('invisible');\r\n    $btn.toggleClass('active');\r\n  });\r\n\r\n  // Hide hidden menu when the main dropdowns are opened.\r\n  $visiblelinks.bind('shown.bs.dropdown', function () {\r\n    $hiddenlinks.addClass('invisible');\r\n    $btn.removeClass('active');\r\n\r\n  });\r\n  updateStripNav();\r\n\r\n\r\n\r\n\r\n})(jQuery);"]}