/**
* shadowRootを貫通してactiveElementを取得
* @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/activeElement
* @param {HTMLElement} root
* @returns {HTMLElement|null}
*/
const getDocumentOrShadowRootActiveElement = root => {
const activeElement = root.activeElement;
if (!!activeElement) {
if (!!activeElement.shadowRoot) {
return getDocumentOrShadowRootActiveElement(activeElement.shadowRoot);
}
return activeElement;
}
return null;
};