UNPKG

@limetech/lime-elements

Version:
2 lines 1.43 kB
import{f as i}from"./p-288f0842.js";const t=new WeakMap;class s{constructor(t){this.element=t;this.isActive=false;this.hasJustReleasedEnter=true;this.handleKeyDown=t=>{var s;if(t.key==="Enter"&&!this.isActive){this.isActive=true;if((s=this.element)===null||s===void 0?void 0:s.shadowRoot){i(this.element)}}};this.handleKeyUp=t=>{var s;if(t.key==="Enter"&&this.isActive){this.isActive=false;this.hasJustReleasedEnter=true;if((s=this.element)===null||s===void 0?void 0:s.shadowRoot){i(this.element)}}};this.handleClick=i=>{if(!this.isActive){return}if(this.hasJustReleasedEnter){this.hasJustReleasedEnter=false;return}i.stopImmediatePropagation()};this.callbacks={keydownHandler:this.handleKeyDown.bind(this),keyupHandler:this.handleKeyUp.bind(this),clickHandler:this.handleClick.bind(this)}}enable(){this.element.addEventListener("keydown",this.callbacks.keydownHandler);this.element.addEventListener("keyup",this.callbacks.keyupHandler);this.element.addEventListener("click",this.callbacks.clickHandler,true)}disable(){this.element.removeEventListener("keydown",this.callbacks.keydownHandler);this.element.removeEventListener("keyup",this.callbacks.keyupHandler);this.element.removeEventListener("click",this.callbacks.clickHandler,true)}}function h(i){if(!t.has(i)){const h=new s(i);h.enable();t.set(i,h)}}function e(i){const s=t.get(i);if(s){s.disable();t.delete(i)}}export{h as m,e as r}; //# sourceMappingURL=p-e127eaaa.js.map