(function () { 'use strict'; var PIDJ_URL = "https:\/\/gopidj.com\/webtext\/pc:177d7271-7275-5995-a46c-8d4b883b9682"; var LAUNCHER_IMG_SRC = "https:\/\/gopidj.com\/ui-imgs\/webtext\/chat.svg"; var tmpl = document.createElement('template'); tmpl.innerHTML = `
`; class PidjEmbedWidget extends HTMLElement { connectedCallback() { if (this.shadowRoot) { return; } var self = this; var shadow = this.attachShadow({ mode: 'open' }); shadow.appendChild(tmpl.content.cloneNode(true)); var panel = shadow.querySelector('.panel'); var mobileLauncher = shadow.querySelector('.mobile-launcher'); var desktopLauncher = shadow.querySelector('.desktop-launcher'); var closeBtn = shadow.querySelector('.close'); var iframe = shadow.querySelector('iframe'); var mobileLauncherImg = mobileLauncher.querySelector('img'); var desktopLauncherImg = desktopLauncher.querySelector('img'); mobileLauncherImg.src = LAUNCHER_IMG_SRC; mobileLauncherImg.alt = 'Open chat'; desktopLauncherImg.src = LAUNCHER_IMG_SRC; desktopLauncherImg.alt = 'Open chat'; function onKeydown(e) { if (e.key === 'Escape') { self.close(); } } this.open = function () { if (panel.classList.contains('open')) { return; } if (!iframe.getAttribute('src') || iframe.getAttribute('src') === 'about:blank') { iframe.src = PIDJ_URL; } panel.hidden = false; requestAnimationFrame(function () { panel.classList.add('open'); document.addEventListener('keydown', onKeydown); }); }; this.close = function () { if (!panel.classList.contains('open')) { return; } panel.classList.remove('open'); document.removeEventListener('keydown', onKeydown); var settled = false; function finish() { if (settled) { return; } settled = true; panel.removeEventListener('transitionend', onTransEnd); clearTimeout(fallback); if (!panel.classList.contains('open')) { panel.hidden = true; } } function onTransEnd(e) { if (e.target === panel && e.propertyName === 'opacity') { finish(); } } var fallback = setTimeout(finish, 400); panel.addEventListener('transitionend', onTransEnd); }; mobileLauncher.addEventListener('click', function () { if (!panel.classList.contains('open')) { self.open(); } else { self.close(); } }); desktopLauncher.addEventListener('click', function () { if (!panel.classList.contains('open')) { self.open(); } else { self.close(); } }); closeBtn.addEventListener('click', function () { self.close(); }); setTimeout(function () { mobileLauncher.classList.add('visible'); desktopLauncher.classList.add('visible'); }, 250); } } var tag = 'pidj-embed-widget'; if (!customElements.get(tag)) { customElements.define(tag, PidjEmbedWidget); } if (document.body) { document.body.appendChild(document.createElement(tag)); } else { document.appendChild(document.createElement(tag)); } })();