PageSourceSearch

https://www.aimn.co.nz/cdn/shop/t/132/assets/nosto-bundle.js?v=56127402140492673041790672546

js aimn.co.nz collected 2026-10-04 13:28:34 UTC 5,080 bytes, 77 lines download raw bytes

1document.addEventListener("DOMContentLoaded",function(){if(window._nostoBundleAtcListenerInstalled){console.log("nosto: ATC listener already installed, skipping.");return}window._nostoBundleAtcListenerInstalled=!0;const CCART_SELECTOR=".js-drawer-open-cart";function checkNostoList(){var nostoList=document.querySelector(".template-product .nosto-list");if(!nostoList){setTimeout(checkNostoList,100);return}nostoList.style.visibility="hidden",nostoList.addEventListener("ready.flickity",function(){nostoList.style.visibility="visible"}),console.log("nosto: list found")}function bundleAddToCart(quantity,variantId,sourceBtn){if(!variantId)return;sourceBtn&&(sourceBtn.disabled=!0,sourceBtn.classList.add("is-busy"));let data={items:[{id:variantId,quantity}]};return fetch(window.Shopify.routes.root+"cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(data)}).then(response=>{if(document.dispatchEvent(new Event("cart:build")),!document.querySelector("#cnv-cart-popup-style")){const style=document.createElement("style");style.id="cnv-cart-popup-style",style.textContent=`
2    .cnv-cart-popup {
3      position: fixed;
4      align-items: center;
5      justify-content: center;
6      flex-direction: row-reverse;
7      gap: 2px;
8      top: 20px;
9      right: 20px;
10      background: #fff;
11      border: 1px solid #ddd;
12      box-shadow: 0 4px 16px rgba(0,0,0,0.15);
13      border-radius: 4px;
14      padding: 12px;
15      max-width: 300px;
16      z-index: 9999;
17      display: none;
18      opacity: 0;
19      transition: opacity 0.3s ease, transform 0.3s ease;
20      transform: translateY(-10px);
21      font-family: inherit;
22    }
23    .cnv-cart-popup.show {
24      display: flex;
25      opacity: 1;
26      transform: translateY(0);
27    }
28    .cnv-cart-popup img {
29      width: 60px;
30      height: auto;
31      float: left;
32      margin-right: 10px;
33      border-radius: 2px;
34    }
35    .cnv-cart-popup .details {
36      overflow: hidden;
37      font-size: 12px;
38    }
39    .cnv-cart-popup .title {
40      font-weight: 400;
41      margin-bottom: 4px;
42    }
43    .cnv-cart-popup .checkout-btn {
44      display: block;
45      text-align: center;
46      margin-top: 10px;
47      background: #000;
48      color: #fff;
49      padding: 10px;
50      font-weight: 600;
51      text-decoration: none;
52    }
53    .cnv-cart-popup .close-btn {
54      position: relative;
55      background: none;
56      border: none;
57      font-size: 18px;
58      line-height: 1;
59      cursor: pointer;
60      color: #999;
61      padding: 4px;
62      width: 24px;
63      height: 24px;
64      display: flex;
65      align-items: center;
66      justify-content: center;
67    }
68    .cnv-cart-popup .close-btn:hover {
69      color: #333;
70    }
71  `,document.head.appendChild(style)}const popup=document.createElement("div");popup.className="cnv-cart-popup",document.body.appendChild(popup);function closePopup(){popup.classList.remove("show"),setTimeout(()=>popup.style.display="none",300)}return fetch("/cart.js",{headers:{Accept:"application/json"}}).then(r=>r.json()).then(cart=>{if(!cart||!cart.items?.length)return;const item=cart.items[0];var nostoCartPopupTmpl=window.nostoBundleLocales&&window.nostoBundleLocales.cartPopup||"",titleLine=nostoCartPopupTmpl?nostoCartPopupTmpl.split("[[NBT]]").join(item.product_title):item.product_title+" added to cart.",closeLabel=window.theme&&window.theme.strings&&window.theme.strings.cnvCartPopupClose||"Close";popup.innerHTML=`
72      <button class="close-btn" aria-label="${closeLabel}">\xD7</button>
73      <div class="details">
74        <div class="title">${titleLine}</div>
75      </div>
76    `,popup.querySelector(".close-btn").addEventListener("click",closePopup),popup.style.display="block",requestAnimationFrame(()=>popup.classList.add("show")),setTimeout(closePopup,5e3)}).catch(console.error),setTimeout(()=>{const ccart=document.querySelector(CCART_SELECTOR)},50),response.json()}).catch(error=>{console.error("nosto bundle add error:",error)}).finally(()=>{sourceBtn&&(sourceBtn.disabled=!1,sourceBtn.classList.remove("is-busy"),delete sourceBtn.dataset.nostoProcessing)})}document.addEventListener("click",function(e){const button=e.target.closest(".
76nosto-bundle-list-item .btn--full.add-to-cart");if(!button)return;if(button.dataset.nostoProcessing==="1"){console.log("nosto: ignored duplicate/rapid click for same button");return}button.dataset.nostoProcessing="1",setTimeout(()=>{button&&delete button.dataset.nostoProcessing},2e3),console.log("BUNDLE ATC CLICKED",new Date().toISOString(),button),console.trace();const parent=button.closest(".nosto-bundle-list-item"),optionSelect=parent&&parent.querySelector(".bundle-options");let variantId=optionSelect?optionSelect.value:null;if(!variantId){const sizeInput=parent.querySelector(".nosto-bundle-sizes-container input:checked, .nosto-bundle-sizes-container input");variantId=sizeInput?sizeInput.value:null}variantId?bundleAddToCart(1,variantId,button):delete button.dataset.nostoProcessing}),checkNostoList()});
77//# sourceMappingURL=/cdn/shop/t/132/assets/nosto-bundle.js.map?v=56127402140492673041790672546

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.