import{C as t}from"./p-2d0d575f.js";import{O as s}from"./p-331a62d5.js";import{b as e}from"./p-6e70d3cc.js";class i{constructor(t,s){this.title=t,this.host=s}getDescription(){return`, this is a dom nodes subject of ${this.title}.(class name:${this.host.className}, id:${this.host.id})`}}const r=new class{constructor(){this.cache=new Map}getSubject(t,s){return this.isExist(t,s)?this.cache.get(t).get(s):this.setSubject(t,s)}isExist(t,s){return!!t&&this.cache.has(t)&&void 0!==this.cache.get(t)&&this.cache.get(t).has(s)}getSubjectFromParentNodeByEventId(t,s){let i;for(const r of this.cache)if(e(t,r[0])&&r[1].has(s)){i=r[1].get(s);break}return i}setSubject(t,s){const e=`${t.tagName}:${s.getName()}`,r=new i(e,t);return this.cache.get(t)||this.cache.set(t,new Map),this.cache.get(t).set(s,r),r}},o=()=>!0;class n{static addUniqueObserverToNode(e,i,c,a){if(e){const h=new s("function"==typeof a?a.bind(null):o,c);n.removeUniqueObserverFromNode(e,i),t.register(r.getSubject(e,i),h)}}static removeUniqueObserverFromNode(s,e){r.isExist(s,e)&&t.clearObserversBySubject(r.getSubject(s,e))}}export{n as D,r as d}