@angular/cdk
Version:
Angular Material Component Development Kit
36 lines (34 loc) • 1.24 kB
JavaScript
let shadowDomIsSupported;
function _supportsShadowDom() {
if (shadowDomIsSupported == null) {
const head = typeof document !== 'undefined' ? document.head : null;
shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));
}
return shadowDomIsSupported;
}
function _getShadowRoot(element) {
if (_supportsShadowDom()) {
const rootNode = element.getRootNode ? element.getRootNode() : null;
if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {
return rootNode;
}
}
return null;
}
function _getFocusedElementPierceShadowDom() {
let activeElement = typeof document !== 'undefined' && document ? document.activeElement : null;
while (activeElement && activeElement.shadowRoot) {
const newActiveElement = activeElement.shadowRoot.activeElement;
if (newActiveElement === activeElement) {
break;
} else {
activeElement = newActiveElement;
}
}
return activeElement;
}
function _getEventTarget(event) {
return event.composedPath ? event.composedPath()[0] : event.target;
}
export { _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _supportsShadowDom };
//# sourceMappingURL=_shadow-dom-chunk.mjs.map