1var oDoc = document; 2 3ACC.navigation = { 4 5 _autoload: [ 6 "offcanvasNavigation", 7 "myAccountNavigation", 8 "orderToolsNavigation" 9 ], 10 11 offcanvasNavigation: function(){ 12 13 enquire.register("screen and (max-width:"+ ACC.common.encodeHtml(screenSmMax) +")", { 14 15 match : function() { 16 17 $(document).on("click","#productsMenuDrillDown",function(e){ 18 e.preventDefault(); 19 $(".mobileAccountMenu").hide(); 20 $(".mobileUtilityMenu").hide(); 21 $(".js-userAccount-Links").hide(); 22 $(".nav__link--drill__down").css('display','none'); 23 $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").addClass("active"); 24 $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active"); 25 $(this).parent(".js-enquire-has-sub").addClass("active"); 26 }); 27 28 $(document).on("click", "#accountMenuDrillDown", function(e) { 29 e.preventDefault(); 30 $(".mobileUtilityMenu").hide(); 31 $(".js-userAccount-Links").hide(); 32 $(".nav__link--drill__down").css('display','none'); 33 $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").addClass("active"); 34 $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active"); 35 $(this).parent(".js-enquire-has-sub").addClass("active"); 36 }); 37 38 $(document).on("click",".js-enquire-offcanvas-navigation .js-enquire-sub-close",function(e){ 39 e.preventDefault(); 40 $(".mobileAccountMenu").show(); 41 $(".mobileUtilityMenu").show(); 42 $(".js-userAccount-Links").show(); 43 $(".nav__link--drill__down").css('display','block'); 44 $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").removeClass("active"); 45 $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active"); 46 }); 47 48 49 50 }, 51 52 unmatch : function() { 53 54 $(".mobileAccountMenu").show(); 55 $(".mobileUtilityMenu").show(); 56 $(".js-userAccount-Links").show(); 57 $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").removeClass("active"); 58 $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active"); 59 60 $(document).off("click",".js-enquire-offcanvas-navigation .js-enquire-has-sub > a"); 61 $(document).off("click",".js-enquire-offcanvas-navigation .js-enquire-sub-close"); 62 63 64 } 65 66 67 }); 68 69 }, 70 71 myAccountNavigation: function(){ 72 //copy the site logo 73 $('.js-mobile-logo').html( $('.js-site-logo a').clone()); 74 75 //Add the order form img in the navigation 76 $('.nav-form').append($("<span>").addClass("glyphicon glyphicon-list-alt")); 77 78 79 var aAcctData = []; 80 var sSignBtn = ""; 81 82 //my account items 83 var oMyAccountData = $(".accNavComponent"); 84 85 //the my Account hook for the desktop 86 var oMMainNavDesktop = $(".js-secondaryNavAccount > ul"); 87 88 //offcanvas menu for tablet/mobile 89 var oMainNav = $(".navigation--bottom > ul.nav__links.nav__links--products"); 90 91 if(oMyAccountData){ 92 var aLinks = oMyAccountData.find("a"); 93 for(var i = 0; i < aLinks.length; i++){ 94 aAcctData.push({link: aLinks[i].href, text: aLinks[i].title}); 95 } 96 } 97 98 var navClose = $("<div>").addClass("close-nav") 99 .append($("<button>").attr("type", "button") 100 .addClass("js-toggle-sm-navigation btn") 101 .append($("<span>").addClass("glyphicon glyphicon-remove"))); 102 103 //create Sign In/Sign Out Button 104 if($(".liOffcanvas a") && $(".liOffcanvas a").length > 0){ 105 sSignBtn = $("<li>").addClass("auto liUserSign") 106 .append($("<a>").addClass("userSign") 107 .attr("href", $(".liOffcanvas a")[0].href) 108 .text($(".liOffcanvas a")[0].innerHTML)); 109 } 110 111 //create Welcome User + expand/collapse and close button 112 //This is for mobile navigation. Adding html and classes. 113 var oUserInfo = $(".nav__right ul li.logged_in"); 114 //Check to see if user is logged in 115 if(oUserInfo && oUserInfo.length === 1) 116 { 117 var sUserBtn = $("<li>").addClass("auto") 118 .append($("<div>") 119 .addClass("userGroup") 120 .append($("<span>") 121 .addClass("glyphicon glyphicon-user myAcctUserIcon")) 122 .append($("<div>") 123 .addClass("userName") 124 .html(oUserInfo[0].innerHTML))); 125 126 if(aAcctData.length > 0){ 127 $(sUserBtn).find(".userGroup").append($("<a>").addClass("collapsed js-nav-collapse") 128 .attr("id", "signedInUserOptionsToggle") 129 .attr("data-toggle", "bsecollapse") 130 .attr("data-target", ".offcanvasGroup1") 131 .append($("<span>").addClass("glyphicon glyphicon-chevron-up myAcctExp"))); 132 } 133 sUserBtn.append(navClose); 134 135 $('.js-sticky-user-group').html(sUserBtn); 136 137 $('.js-userAccount-Links').append(sSignBtn); 138 $('.js-userAccount-Links').append($("<li>").addClass("auto").append($("<div>").addClass("myAccountLinksContainer js-myAccountLinksContainer"))); 139 140 141 //FOR DESKTOP 142 var myAccountHook = $("<div>").addClass("myAccountLinksHeader js-myAccount-toggle") 143 .attr("data-toggle", "bsecollapse") 144 .attr("data-parent", ".nav__right")
145 .text(oMyAccountData.data("title")); 146 147 myAccountHook.insertBefore(oMyAccountData); 148 149 //*For toggling collapse myAccount on Desktop instead of with Bootstrap.js 150 $('.myAccountLinksHeader').click(function () { 151 $(this).toggleClass('show'); 152 $(".js-secondaryNavAccount").slideToggle(400); 153 if ( $(this).hasClass('show') ) { 154 $('.myCompanyLinksHeader').removeClass('show'); // hide the other one 155 $('.js-secondaryNavCompany').slideUp(400); 156 } 157 return false; 158 }); 159 160 //FOR MOBILE 161 //create a My Account Top link for desktop - in case more components come then more parameters need to be passed from the backend 162 var myAccountHook = $("<div>").addClass("sub-nav") 163 .append($("<a>").attr("id", "signedInUserAccountToggle") 164 .addClass("myAccountLinksHeader collapsed js-myAccount-toggle") 165 .attr("data-toggle", "bsecollapse") 166 .attr("data-target", ".offcanvasGroup2") 167 .text(oMyAccountData.data("title")) 168 .append($("<span>").addClass("glyphicon glyphicon-chevron-down myAcctExp"))); 169 170 $('.js-myAccountLinksContainer').append(myAccountHook); 171 172 //add UL element for nested collapsing list 173 $('.js-myAccountLinksContainer').append($("<ul>") 174 .attr("data-trigger" ,"#signedInUserAccountToggle") 175 .addClass("offcanvasGroup2 offcanvasNoBorder bsecollapse js-nav-collapse-body subNavList js-myAccount-root sub-nav")); 176 177 //*For toggling collapse on Mobile instead of with Bootstrap.js 178 $('#signedInUserAccountToggle').click(function () { 179 $(this).toggleClass('show'); 180 $(".offcanvasGroup2").slideToggle(400); 181 if ( $(this).hasClass('show') ) { 182 $(this).find('span').removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up'); 183 $('#signedInCompanyToggle').removeClass('show'); // hide the other one 184 $('#signedInCompanyToggle').find('span').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down'); 185 $('.offcanvasGroup3').slideUp(400); 186 } 187 else { 188 $(this).find('span').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down'); 189 } 190 }); 191 192 //offcanvas items 193 //TODO Follow up here to see the output of the account data in the offcanvas menu 194 for(var i = aAcctData.length - 1; i >= 0; i--){ 195 var oLink = oDoc.createElement("a"); 196 oLink.title = aAcctData[i].text; 197 oLink.href = aAcctData[i].link; 198 oLink.innerHTML = ACC.common.encodeHtml(aAcctData[i].text); 199 200 var oListItem = oDoc.createElement("li"); 201 oListItem.appendChild(oLink); 202 oListItem = $(oListItem); 203 oListItem.addClass("auto "); 204 $('.js-myAccount-root').append(oListItem); 205 } 206 207 } else { 208 if(sSignBtn) 209 { 210 var navButtons = sSignBtn.append(navClose); 211 $('.js-sticky-user-group').append(navButtons); 212 } 213 } 214 215 // //desktop 216 // for(var i = 0; i < aAcctData.length; i++){ 217 // var oLink = oDoc.createElement("a"); 218 // oLink.title = aAcctData[i].text; 219 // oLink.href = aAcctData[i].link; 220 // oLink.innerHTML = ACC.common.encodeHtml(aAcctData[i].text); 221 // 222 // var oListItem = oDoc.createElement("li"); 223 // oListItem.appendChild(oLink); 224 // oListItem = $(oListItem); 225 // oListItem.addClass("auto col-md-4"); 226 // oMMainNavDesktop.get(0).appendChild(oListItem.get(0)); 227 // } 228 // 229 // //hide and show content areas for desktop 230 // $('.js-secondaryNavAccount').on('shown.bs.bsecollapse', function () { 231 // 232 // if($('.js-secondaryNavCompany').hasClass('in')){ 233 // $('.js-myCompany-toggle').click(); 234 // } 235 // 236 // }); 237 // 238 // $('.js-secondaryNavCompany').on('shown.bs.bsecollapse', function () { 239 // 240 // if($('.js-secondaryNavAccount').hasClass('in')){ 241 // $('.js-myAccount-toggle').click(); 242 // } 243 // 244 // }); 245 246 //change icons for up and down 247 $('.js-nav-collapse-body').on('hidden.bs.bsecollapse', function(e){ 248 249 var target = $(e.target); 250 var targetSpanSelector = target.attr('data-trigger') + ' > span'; 251 if(target.hasClass('in')) { 252 $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up'); 253 } 254 else { 255 $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down'); 256 } 257 }); 258 259 $('.js-nav-collapse-body').on('show.bs.bsecollapse', function(e){ 260 var target = $(e.target); 261 var targetSpanSelector = target.attr('data-trigger') + ' > span'; 262 if(target.hasClass('in')) { 263 $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down'); 264 } 265 else { 266 $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up'); 267 } 268 }); 269 270 }, 271 272 orderToolsNavigation: function(){ 273 $('.js-nav-order-tools').on('click', function(e){ 274 $(this).toggleClass('js-nav-order-tools--active'); 275 }); 276 } 277};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.