tkrkt
6/15/2017 - 3:28 PM

[userscript] [AZusaar] Close dialog when click outside

[userscript] [AZusaar] Close dialog when click outside

// ==UserScript==
// @name        [Azusaar] Dialog closer
// @namespace   https://gist.github.com/tkrkt
// @description close dialog when click outside on AZusaar
// @include     http://azusaar.appspot.com/*
// @version     1
// @grant       none
// ==/UserScript==

const isDialogElement = e => {
  if (e && e.classList.contains('ui-dialog')) {
    return true;
  } else if (e) {
    return isDialogElement(e.parentElement);
  } else {
    return false;
  }  
}

const closeAllDialogs = () => {
  Array.from(document.querySelectorAll('.ui-dialog'))
    .filter(e => e.style.display !== 'none')
    .forEach(e => e.querySelector('.ui-dialog-titlebar-close').click());
}

document.addEventListener('click', event => {
  !isDialogElement(event.target) && closeAllDialogs();
});