import{b as t}from"./p-1580513b.js";import{d as i}from"./p-4fb8ce4b.js";const s="atomic/accessibility/findAriaLive";function e(i,e=false){function n(){const i=t(s,{});document.dispatchEvent(i);const{element:e}=i.detail;return e}function r(t){var s;(s=n())===null||s===void 0?void 0:s.updateMessage(i,t,e)}function o(){var t;(t=n())===null||t===void 0?void 0:t.registerRegion(i,e)}return(t,i)=>{const{componentWillRender:s}=t;Object.defineProperty(t,i,{set:t=>r(t)});t.componentWillRender=function(){s&&s.call(this);o()}}}class n{constructor(t){this.component=t;this.doFocusAfterSearch=false;this.doFocusOnNextTarget=false;this.bindings=t.bindings;this.handleComponentRenderLoop()}setTarget(t){if(!t){return}this.element=t;if(this.doFocusOnNextTarget){this.doFocusOnNextTarget=false;this.focus()}}async focus(){var t,s;await i();(t=this.element)===null||t===void 0?void 0:t.focus();(s=this.onFocusCallback)===null||s===void 0?void 0:s.call(this)}focusAfterSearch(){this.lastSearchId=this.bindings.store.getUniqueIDFromEngine(this.bindings.engine);this.doFocusAfterSearch=true;return new Promise((t=>this.onFocusCallback=t))}focusOnNextTarget(){this.doFocusOnNextTarget=true;return new Promise((t=>this.onFocusCallback=t))}disableForCurrentSearch(){if(this.bindings.store.getUniqueIDFromEngine(this.bindings.engine)!==this.lastSearchId){this.doFocusAfterSearch=false}}handleComponentRenderLoop(){const t=this.component.componentDidRender;this.component.componentDidRender=()=>{t&&t.call(this.component);if(!this.bindings){return}if(this.doFocusAfterSearch&&this.bindings.store.getUniqueIDFromEngine(this.bindings.engine)!==this.lastSearchId){this.doFocusAfterSearch=false;if(this.element){const t=this.element;i().then((()=>{var i;t.focus();(i=this.onFocusCallback)===null||i===void 0?void 0:i.call(this)}))}}}}}function r(t){if(t.getAttribute("tabindex")==="-1"){return false}if(t.hasAttribute("tabindex")){return true}if(t.getAttribute("contentEditable")==="true"){return true}switch(t.tagName){case"A":case"AREA":return t.hasAttribute("href");case"INPUT":case"SELECT":case"TEXTAREA":case"BUTTON":return!t.hasAttribute("disabled");case"IFRAME":return true;default:return false}}function*o(t){if(r(t)){yield t}let i=Array.from(t.children);if(t instanceof HTMLSlotElement){i=t.assignedElements()}else if(t.shadowRoot){i.push(...Array.from(t.shadowRoot.children))}for(const t of i){yield*o(t)}}function a(t){var i;return(i=o(t).next().value)!==null&&i!==void 0?i:null}export{e as A,n as F,a as g}; //# sourceMappingURL=p-b9cbdd5c.js.map