PageSourceSearch

https://store.familytreemagazine.com/cdn/shop/t/6/assets/component…?v=86464604851413727601771856982

js familytreemagazine.com collected 2026-09-24 09:25:08 UTC 2,677 bytes, 2 lines download raw bytes

1(()=>{class CartUpdateModal extends HTMLElement{constructor(){super(),this.input=this.querySelector("textarea"),this.label=this.querySelector("[data-cart-update-label]"),this.openButton=this.querySelector("[data-cart-update-open]"),this.openButtonText=this.querySelector("[data-cart-update-open-text]"),this.closeButtons=this.querySelectorAll("[data-cart-update-close]"),this.modal=this.querySelector("[data-cart-update-modal]"),this.overlay=this.querySelector("[data-cart-update-overlay]"),this.handleInputChange=this.handleInputChange.bind(this),this.handleOpen=this.handleOpen.bind(this),this.handleTransitionEnd=this.handleTransitionEnd.bind(this),this.trapFocus=this.trapFocus.bind(this),this.handleEscape=this.handleEscape.bind(this),this.handleClose=this.handleClose.bind(this)}connectedCallback(){window.wetheme.webcomponentRegistry.register({key:"component-cart-update-modal"}),this.input&&(this.inputValue=this.input.value,this.input.addEventListener("change",this.handleInputChange),this.openButton.addEventListener("click",this.handleOpen),this.modal.addEventListener("transitionend",this.handleTransitionEnd),this.addEventListener("keyup",this.handleEscape,!0),this.closeButtons.forEach(button=>button.addEventListener("click",this.handleClose)))}handleInputChange(e){this.inputValue=e.target.value}handleOpen(){this.setAttribute("open",!0),this.modal.setAttribute("aria-hidden",!1);const labelText=this.inputValue?this.editLabelText:this.addLabelText;this.label.textContent=labelText}handleTransitionEnd(e){e.target===this.modal&&this.trapFocus()}handleClose(){this.removeAttribute("open"),this.modal.setAttribute("aria-hidden",!0);const labelText=this.inputValue?this.editLabelText:this.addLabelText;this.openButtonText.textContent=labelText}trapFocus(){const focusableElements=this.modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),firstFocusableElement=focusableElements[0],lastFocusableElement=focusableElements[focusableElements.length-1];this.addEventListener("keydown",e=>{e.key==="Tab"&&(e.shiftKey?document.activeElement===firstFocusableElement&&(lastFocusableElement.focus(),e.preventDefault()):document.activeElement===lastFocusableElement&&(firstFocusableElement.focus(),e.preventDefault()))})}handleEscape(e){e.key==="Escape"&&(this.inputValue=this.input.value,e.stopPropagation(),this.handleClose())}get addLabelText(){return this.getAttribute("data-add-label")}get editLabelText(){return this.getAttribute("data-edit-label")}}customElements.define("cart-update-modal",CartUpdateModal)})();
2//# sourceMappingURL=/cdn/shop/t/6/assets/component-cart-update-modal.js.map?v=86464604851413727601771856982

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.