1(function(){"use strict";class ButtonMirror{constructor(button){if(this.button=button,this.selector=button.getAttribute("data-mirror-selector"),this.target=null,this.observer=null,this.targetObserver=null,!this.selector){console.warn("ButtonMirror: No selector provided");return}this.init()}init(){if(this.findTarget(),!this.target){this.watchForTarget();return}this.setupMirroring(),this.setupClickForwarding()}findTarget(){try{this.target=document.querySelector(this.selector)}catch(e){console.error("ButtonMirror: Invalid selector",this.selector,e)}}watchForTarget(){const observer=new MutationObserver(()=>{this.findTarget(),this.target&&(observer.disconnect(),this.setupMirroring(),this.setupClickForwarding())});observer.observe(document.body,{childList:!0,subtree:!0});const checkInterval=setInterval(()=>{this.findTarget(),this.target&&(clearInterval(checkInterval),observer.disconnect(),this.setupMirroring(),this.setupClickForwarding())},100);setTimeout(()=>{clearInterval(checkInterval),observer.disconnect(),this.target||console.warn("ButtonMirror: Target not found after 10 seconds",this.selector)},1e4)}setupMirroring(){if(!this.target)return;this.syncFromTarget(),this.targetObserver=new MutationObserver(()=>{this.syncFromTarget()}),this.targetObserver.observe(this.target,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["aria-disabled"]}),new MutationObserver(()=>{this.syncFromTarget()}).observe(this.target,{attributes:!0,attributeFilter:["aria-disabled","disabled"]})}syncFromTarget(){if(!this.target)return;const targetText=this.target.textContent||this.target.innerText||"";this.button.textContent=targetText,this.target.getAttribute("aria-disabled")==="true"||this.target.disabled?this.button.disabled=!0:this.button.disabled=!1}setupClickForwarding(){this.target&&this.button.addEventListener("click",e=>{this.target&&!this.target.disabled&&this.target.getAttribute("aria-disabled")!=="true"&&this.target.click()})}destroy(){this.targetObserver&&this.targetObserver.disconnect(),this.observer&&this.observer.disconnect()}}function initMirrorButtons(){document.querySelectorAll("button[data-mirror-selector]").forEach(button=>{button._buttonMirror||(button._buttonMirror=new ButtonMirror(button))})}function watchNewMirrorButtons(){new MutationObserver(mutations=>{mutations.forEach(mutation=>{mutation.addedNodes.forEach(node=>{node.nodeType===Node.ELEMENT_NODE&&(node.matches&&node.matches("button[data-mirror-selector]")&&(node._buttonMirror||(node._buttonMirror=new ButtonMirror(node))),(node.querySelectorAll?node.querySelectorAll("button[data-mirror-selector]"):[]).forEach(button=>{button._buttonMirror||(button._buttonMirror=new ButtonMirror(button))}))})})}).observe(document.body,{childList:!0,subtree:!0})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{initMirrorButtons(),watchNewMirrorButtons()}):(initMirrorButtons(),watchNewMirrorButtons())})(); 2//# sourceMappingURL=/cdn/shop/t/432/assets/component-button-mirror.js.map?v=45786589227445395601765799066
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.