import{Scope as e}from"./scope.prod.js";import*as t from"../utils/arr.prod.js";import*as s from"../utils/domUtils.prod.js";import n from"../utils/extend.prod.js";import r from"../utils/is.prod.js";import o from"../utils/pointerExtend.prod.js";import*as i from"../utils/pointerUtils.prod.js";class a{constructor(e){this.currentTarget=void 0,this.originalEvent=void 0,this.type=void 0,this.originalEvent=e,o(this,e)}preventOriginalDefault(){this.originalEvent.preventDefault()}stopPropagation(){this.originalEvent.stopPropagation()}stopImmediatePropagation(){this.originalEvent.stopImmediatePropagation()}}function p(e){if(!r.object(e))return{capture:!!e,passive:!1};const t=n({},e);return t.capture=!!e.capture,t.passive=!!e.passive,t}export default{id:"events",install(e){const n=[],o={},l=[],c={add:u,remove:v,addDelegate(e,s,n,r,i){const a=p(i);if(!o[n]){o[n]=[];for(const e of l)u(e,n,d),u(e,n,f,!0)}const c=o[n];let v=t.find(c,(t=>t.selector===e&&t.context===s));v||(v={selector:e,context:s,listeners:[]},c.push(v)),v.listeners.push([r,a])},removeDelegate(e,t,s,n,r){const i=p(r),a=o[s];let l,c=!1;if(a)for(l=a.length-1;l>=0;l--){const r=a[l];if(r.selector===e&&r.context===t){const{listeners:e}=r;for(let r=e.length-1;r>=0;r--){const[o,{capture:p,passive:u}]=e[r];if(o===n&&p===i.capture&&u===i.passive){e.splice(r,1),e.length||(a.splice(l,1),v(t,s,d),v(t,s,f,!0)),c=!0;break}}if(c)break}}},delegateListener:d,delegateUseCapture:f,delegatedEvents:o,documents:l,targets:n,supportsOptions:!1,supportsPassive:!1};function u(e,s,r,o){const i=p(o);let a=t.find(n,(t=>t.eventTarget===e));a||(a={eventTarget:e,events:{}},n.push(a)),a.events[s]||(a.events[s]=[]),e.addEventListener&&!t.contains(a.events[s],r)&&(e.addEventListener(s,r,c.supportsOptions?i:i.capture),a.events[s].push(r))}function v(e,s,r,o){const i=p(o),a=t.findIndex(n,(t=>t.eventTarget===e)),l=n[a];if(!l||!l.events)return;if("all"===s){for(s in l.events)l.events.hasOwnProperty(s)&&v(e,s,"all");return}let u=!1;const d=l.events[s];if(d){if("all"===r){for(let t=d.length-1;t>=0;t--)v(e,s,d[t],i);return}for(let t=0;t