PageSourceSearch

https://stockmansteaks.com.au/cdn/shop/t/151/assets/modal-postcode-checker.js?v=54812520418506410401790828340

js stockmansteaks.com.au collected 2026-10-05 07:47:53 UTC 8,029 bytes, 6 lines download raw bytes

1typeof window.modalPostcodeChecker>"u"&&(window.modalPostcodeChecker=async()=>{const MODULE_NAME="Postcode Checker",MODAL_SELECTOR="#modal-postcode-checker",POSTCODE_CHECKER_ENDPOINT="https://app.stockmansteaks.com.au/storefront/api/v1/check-postcode",SUBURB_POSTCODE_SUGGESTION_ENDPOINT="https://aussie-area-checker.sllsolutions.com.au/suggestions",STORAGE_KEY="stockman_postcode_checker";let debounceTimer=null;const printLog=(message,extra)=>{console.log("%c"+MODULE_NAME,"font-weight: bold; color: #000; background: #c7facd; border-radius: 3px; padding: 0 5px;",message,extra||"")},validateRequiredScripts=async(timeout=5e3)=>{const start=Date.now();for(;;){if(typeof window.jQuery=="function")return;if(Date.now()-start>=timeout){printLog("Timeout waiting for jQuery");return}await new Promise(r=>setTimeout(r,50))}},toggleModal=($el,value)=>{const $body=$("body"),$modal=$el.hasClass("modal-mini")?$el:$el.closest(".modal-mini");value?($modal.fadeIn("fast"),$body.addClass("modal-mini-active")):($modal.fadeOut("fast"),$body.removeClass("modal-mini-active"))},toggleFormLoading=($form,value)=>{const $submit=$form.find("[type=submit]"),$spinner=$form.find(".loading-overlay__spinner");!$submit.length||!$spinner.length||(value?($submit.addClass("loading").attr("disabled","disabled"),$spinner.removeClass("hidden")):($submit.removeClass("loading").removeAttr("disabled"),$spinner.addClass("hidden")))},showMessage=(message,isSuccess)=>{const $message=$("#postcode-checker-message");if($message.length){if(!message){$message.hide().text(""),$message.removeClass("postcode-checker--success postcode-checker--error");return}$message.text(message).show().removeClass("postcode-checker--success postcode-checker--error").addClass(isSuccess?"postcode-checker--success":"postcode-checker--error")}},updateCurrentSelectionUI=selection=>{const $el=$("#postcode-checker-current");if($el.length){if(!selection){$el.hide().text("");return}$el.html(`
2          <div class="notification-box notification-box--success">
3            We deliver to <strong>${selection.suburb} ${selection.postcode}</strong>
4          </div>
5        `).show()}},saveSelection=(suburb,postcode)=>{try{const payload={suburb,postcode,timestamp:Date.now()};localStorage.setItem(STORAGE_KEY,JSON.stringify(payload)),updateCurrentSelectionUI(payload)}catch(e){console.error(e)}},loadSelection=()=>{try{const raw=localStorage.getItem(STORAGE_KEY);if(!raw)return null;const data=JSON.parse(raw);return!data||!data.suburb||!data.postcode?null:data}catch(e){return console.error(e),null}},clearSelection=()=>{try{localStorage.removeItem(STORAGE_KEY),updateCurrentSelectionUI(null)}catch(e){console.error(e)}},initFromLocalStorage=()=>{const saved=loadSelection();if(!saved){updateCurrentSelectionUI(null);return}$("#postcode-checker-suburb").val(saved.suburb),$("#postcode-checker-postcode").val(saved.postcode),updateCurrentSelectionUI(saved)},submitPostcodeForm=$form=>{const suburb=$("#postcode-checker-suburb").val().trim(),postcode=$("#postcode-checker-postcode").val().trim();if(console.log({suburb,postcode}),!suburb||!postcode){showMessage("Please enter a suburb and a valid postcode.",!1);return}toggleFormLoading($form,!0),showMessage("",!1);const url=POSTCODE_CHECKER_ENDPOINT+"?zip="+encodeURIComponent(postcode)+"&city="+encodeURIComponent(suburb);clearSelection(),console.log(url),fetch(url,{method:"GET",headers:{Accept:"application/json"}}).then(res=>res.json()).then(data=>{const ok=!!data.status,deliverable=!!data.canBeDelivered,msg=data.message||(ok?"Delivery status received.":"Unable to check delivery at this time.");ok||showMessage(msg,ok&&deliverable),ok&&deliverable?saveSelection(suburb,postcode):ok&&!deliverable?showMessage("We don't deliver to that suburb & postcode at this time."):showMessage(data.message||"Unable to check delivery at this time.",!1)}).catch(()=>{showMessage("Something went wrong while checking your postcode. Please try again.",!1)}).finally(()=>{toggleFormLoading($form,!1)})},initCustomAutocomplete=()=>{const suburbInput=document.getElementById("postcode-checker-suburb"),postcodeInput=document.getElementById("postcode-checker-postcode");if(!suburbInput||!postcodeInput){printLog("One or more input elements missing");return}let currentFocus=-1,activeInput=null;const dropdown=document.createElement("ul");dropdown.id="postcode-checker-dropdown",dropdown.className="postcode-autocomplete-dropdown hidden";const hideDropdown=()=>{dropdown.innerHTML="",dropdown.classList.add("hidden"),currentFocus=-1},selectItem=item=>{suburbInput.value=item.suburb,postcodeInput.value=item.postcode,hideDropdown()},addActive=items=>{if(!items||items.length===0)return;removeActive(items),currentFocus>=items.length&&(currentFocus=0),currentFocus<0&&(currentFocus=items.length-1);const activeItem=items[currentFocus];activeItem.classList.add("autocomplete-active"),activeItem.scrollIntoView({block:"nearest"})},removeActive=items=>{for(let i=0;i<items.length;i++)items[i].classList.remove("autocomplete-active")},triggerQuery=(keyword,targetInput)=>{if(activeInput=targetInput,keyword.length<2){hideDropdown();return}dropdown.parentNode!==targetInput.parentNode&&targetInput.parentNode.appendChild(dropdown);const url=`${SUBURB_POSTCODE_SUGGESTION_ENDPOINT}?q=${encodeURIComponent(keyword)}`;fetch(url,{method:"GET",headers:{Accept:"application/json","X-API-Key":"ak_9c7e1c130bb4cc24bd97d50b6414b888fc1f1396b3ee5453"}}).then(res=>res.json()).then(data=>{const list=Array.isArray(data)?data:data.data||data.list||data.suggestions||data.results||[];if(dropdown.innerHTML="",currentFocus=-1,list.length===0){hideDropdown();return}list.forEach(item=>{const li=document.createElement("li");li.textContent=`${item.suburb}, ${item.state} ${item.postcode}`,li.setAttribute("data-item",JSON.stringify(item)),li.addEventListener("click",()=>selectItem(item)),dropdown.appendChild(li)}),dropdown.classList.remove("hidden")}).catch(err=>console.error("Error fetching suggestions:",err))};postcodeInput.addEventListener("input",e=>{e.target.value=e.target.value.replace(/[^0-9]/g,"")}),[suburbInput,postcodeInput].forEach(inputEl=>{inputEl.addEventListener("input",e=>{clearTimeout(debounceTimer);const keyword=e.target.value.trim();debounceTimer=setTimeout(()=>{triggerQuery(keyword,inputEl)},250)}),["focus","click"].forEach(eventType=>{inputEl.addEventListener(eventType,e=>{clearTimeout(debounceTimer);const keyword=e.target.value.trim();dropdown.classList.contains("hidden")&&keyword.length>=2&&triggerQuery(keyword,inputEl)})}),inputEl.addEventListener("keydown",e=>{let items=dropdown.getElementsByTagName("li");if(!(dropdown.classList.contains("hidden")||items.length===0))if(e.keyCode===40)e.preventDefault(),currentFocus++,addActive(items);else if(e.keyCode===38)e.preventDefault(),currentFocus--,addActive(items);else if(e.keyCode===13){if(e.preventDefault(),currentFocus>-1&&items[currentFocus]){const itemDataStr=items[currentFocus].getAttribute("data-item");itemDataStr&&selectItem(JSON.parse(itemDataStr))}}else e.keyCode===27&&hideDropdown()})}),document.addEventListener("click",e=>{!e.target.closest("#postcode-checker-suburb")&&!e.target.closest("#postcode-checker-postcode")&&!e.target.closest("#postcode-checker-dropdown")&&hideDropdown()})},setupEvents=()=>{$(document).on("submit","[data-postcode-checker-form]",function(e){e.preventDefault(),submitPostcodeForm($(this))}),$(".modal-mini").on("click","[data-close-modal]",function(e){e.preventDefault(),toggleModal($(this),!1)}),$(document).on("click","[data-toggle='postcode-checker']",function(e){e.preventDefault(),toggleModal($(MODAL_SELECTOR),!0)})};await validateRequiredScripts(),setupEvents(),initFromLocalStorage(),initCustomAutocomplete(),printLog("modal-postcode-checker.js loaded")},(function(){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",function(){window.modalPostc
5odeChecker()}):window.modalPostcodeChecker()})());
6//# sourceMappingURL=/cdn/shop/t/151/assets/modal-postcode-checker.js.map?v=54812520418506410401790828340

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.