PageSourceSearch

https://www.tower28beauty.com/cdn/shop/t/1246/assets/functional-bis.js?v=91853493454972270951787776494

js tower28beauty.com collected 2026-09-25 13:58:35 UTC 2,665 bytes, 2 lines download raw bytes

1"use strict";const KLAVIYO_ENDPOINT="https://a.klaviyo.com/client/back-in-stock-subscriptions/?company_id=N4nDkF";function field(dialog,name){return dialog.querySelector(`[data-functional-bis-${name}]`)}function openDialog(trigger){const dialog=document.getElementById(trigger.getAttribute("aria-controls"));if(!dialog?.showModal)return;const variantInput=trigger.closest(".buy-buttons")?.querySelector('[name="id"]'),status=field(dialog,"status");dialog.dataset.variantId=variantInput?.value||trigger.dataset.variantId,field(dialog,"title").textContent=trigger.dataset.productTitle,field(dialog,"variant").textContent=trigger.dataset.variantTitle||"",status.textContent="",status.removeAttribute("data-state"),document.body.append(dialog),dialog.showModal(),field(dialog,"email").focus()}async function subscribe(dialog){const email=field(dialog,"email"),submit=field(dialog,"submit"),status=field(dialog,"status");if(!email.value.trim()||!email.checkValidity()){email.reportValidity();return}submit.disabled=!0,status.textContent="Submitting...",status.removeAttribute("data-state");try{const response=await fetch(KLAVIYO_ENDPOINT,{method:"POST",headers:{"Content-Type":"application/json",revision:"2026-07-15"},body:JSON.stringify({data:{type:"back-in-stock-subscription",attributes:{profile:{data:{type:"profile",attributes:{email:email.value.trim()}}},channels:["EMAIL"]},relationships:{variant:{data:{type:"catalog-variant",id:`$shopify:::$default:::${dialog.dataset.variantId}`}}}}})});if(!response.ok){const result=await response.json().catch(()=>null);throw new Error(result?.errors?.[0]?.detail||"Unable to register this alert.")}status.dataset.state="success",status.textContent="You\u2019re in! We\u2019ll let you know 
1when it\u2019s available."}catch(error){status.dataset.state="error",status.textContent=error.message||"Unable to register this alert."}finally{submit.disabled=!1}}document.addEventListener("click",event=>{const trigger=event.target.closest("[data-functional-bis-trigger]");if(trigger)return openDialog(trigger);const close=event.target.closest("[data-functional-bis-close]");if(close)return close.closest("dialog")?.close();if(event.target.matches("dialog[data-functional-bis-dialog]"))return event.target.close();const submit=event.target.closest("[data-functional-bis-submit]");submit&&subscribe(submit.closest("dialog"))}),document.addEventListener("keydown",event=>{if(event.key!=="Enter")return;const email=event.target.closest("[data-functional-bis-email]");email&&(event.preventDefault(),subscribe(email.closest("dialog")))});
2//# sourceMappingURL=/cdn/shop/t/1246/assets/functional-bis.js.map?v=91853493454972270951787776494

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.