/** Shopify CDN: Minification failed Line 14:0 Transforming class syntax to the configured target environment ("es5") is not supported yet Line 15:15 Transforming object literal extensions to the configured target environment ("es5") is not supported yet Line 22:14 Transforming object literal extensions to the configured target environment ("es5") is not supported yet Line 28:9 Transforming object literal extensions to the configured target environment ("es5") is not supported yet Line 40:42 Transforming class syntax to the configured target environment ("es5") is not supported yet Line 41:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet Line 64:19 Transforming object literal extensions to the configured target environment ("es5") is not supported yet Line 73:21 Transforming object literal extensions to the configured target environment ("es5") is not supported yet Line 82:15 Transforming object literal extensions to the configured target environment ("es5") is not supported yet **/ class DetailsDisclosure extends HTMLElement { constructor() { super(); this.mainDetailsToggle = this.querySelector('details'); this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this)); } onFocusOut() { setTimeout(() => { if (!this.contains(document.activeElement)) this.close(); }) } close() { this.mainDetailsToggle.removeAttribute('open'); this.mainDetailsToggle.querySelector('summary').setAttribute('aria-expanded', false); } } customElements.define('details-disclosure', DetailsDisclosure); if (!customElements.get('share-button')) { customElements.define('share-button', class ShareButton extends DetailsDisclosure { constructor() { super(); this.elements = { shareButton: this.querySelector('button'), shareSummary: this.querySelector('summary'), closeButton: this.querySelector('.share-button__close'), successMessage: this.querySelector('[id^="ShareMessage"]'), urlInput: this.querySelector('input') } this.urlToShare = this.elements.urlInput ? this.elements.urlInput.value : document.location.href; if (navigator.share) { this.mainDetailsToggle.setAttribute('hidden', ''); this.elements.shareButton.classList.remove('hidden'); this.elements.shareButton.addEventListener('click', () => { navigator.share({ url: this.urlToShare, title: document.title }) }); } else { this.mainDetailsToggle.addEventListener('toggle', this.toggleDetails.bind(this)); this.mainDetailsToggle.querySelector('.share-button__copy').addEventListener('click', this.copyToClipboard.bind(this)); this.mainDetailsToggle.querySelector('.share-button__close').addEventListener('click', this.close.bind(this)); } } toggleDetails() { if (!this.mainDetailsToggle.open) { this.elements.successMessage.classList.add('hidden'); this.elements.successMessage.textContent = ''; this.elements.closeButton.classList.add('hidden'); this.elements.shareSummary.focus(); } } copyToClipboard() { navigator.clipboard.writeText(this.elements.urlInput.value).then(() => { this.elements.successMessage.classList.remove('hidden'); this.elements.successMessage.textContent = "Link copied to clipboard"; this.elements.closeButton.classList.remove('hidden'); this.elements.closeButton.focus(); }); } updateUrl(url) { this.urlToShare = url; this.elements.urlInput.value = url; } }); }