mirror of https://github.com/rocboss/paopao-ce
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
3.6 KiB
1 line
3.6 KiB
function e(e){return e.composedPath()[0]}var t={mousemoveoutside:new WeakMap,clickoutside:new WeakMap};function n(t,n,r){if(t===`mousemoveoutside`){let t=t=>{n.contains(e(t))||r(t)};return{mousemove:t,touchstart:t}}else if(t===`clickoutside`){let t=!1,i=r=>{t=!n.contains(e(r))},a=i=>{t&&(n.contains(e(i))||r(i))};return{mousedown:i,mouseup:a,touchstart:i,touchend:a}}return console.error(`[evtd/create-trap-handler]: name \`${t}\` is invalid. This could be a bug of evtd.`),{}}function r(e,r,i){let a=t[e],o=a.get(r);o===void 0&&a.set(r,o=new WeakMap);let s=o.get(i);return s===void 0&&o.set(i,s=n(e,r,i)),s}function i(e,t,n,i){if(e===`mousemoveoutside`||e===`clickoutside`){let a=r(e,t,n);return Object.keys(a).forEach(e=>{s(e,document,a[e],i)}),!0}return!1}function a(e,t,n,i){if(e===`mousemoveoutside`||e===`clickoutside`){let a=r(e,t,n);return Object.keys(a).forEach(e=>{c(e,document,a[e],i)}),!0}return!1}function o(){if(typeof window>`u`)return{on:()=>{},off:()=>{}};let t=new WeakMap,n=new WeakMap;function r(){t.set(this,!0)}function o(){t.set(this,!0),n.set(this,!0)}function s(e,t,n){let r=e[t];return e[t]=function(){return n.apply(e,arguments),r.apply(e,arguments)},e}function c(e,t){e[t]=Event.prototype[t]}let l=new WeakMap,u=Object.getOwnPropertyDescriptor(Event.prototype,`currentTarget`);function d(){return l.get(this)??null}function f(e,t){u!==void 0&&Object.defineProperty(e,`currentTarget`,{configurable:!0,enumerable:!0,get:t??u.get})}let p={bubble:{},capture:{}},m={};function h(){let i=function(i){let{type:a,eventPhase:u,bubbles:m}=i,h=e(i);if(u===2)return;let g=u===1?`capture`:`bubble`,_=h,v=[];for(;_===null&&(_=window),v.push(_),_!==window;)_=_.parentNode||null;let y=p.capture[a],b=p.bubble[a];if(s(i,`stopPropagation`,r),s(i,`stopImmediatePropagation`,o),f(i,d),g===`capture`){if(y===void 0)return;for(let e=v.length-1;e>=0&&!t.has(i);--e){let t=v[e],r=y.get(t);if(r!==void 0){l.set(i,t);for(let e of r){if(n.has(i))break;e(i)}}if(e===0&&!m&&b!==void 0){let e=b.get(t);if(e!==void 0)for(let t of e){if(n.has(i))break;t(i)}}}}else if(g===`bubble`){if(b===void 0)return;for(let e=0;e<v.length&&!t.has(i);++e){let t=v[e],r=b.get(t);if(r!==void 0){l.set(i,t);for(let e of r){if(n.has(i))break;e(i)}}}}c(i,`stopPropagation`),c(i,`stopImmediatePropagation`),f(i)};return i.displayName=`evtdUnifiedHandler`,i}function g(){let e=function(e){let{type:t,eventPhase:n}=e;if(n!==2)return;let r=m[t];r!==void 0&&r.forEach(t=>t(e))};return e.displayName=`evtdUnifiedWindowEventHandler`,e}let _=h(),v=g();function y(e,t){let n=p[e];return n[t]===void 0&&(n[t]=new Map,window.addEventListener(t,_,e===`capture`)),n[t]}function b(e){return m[e]===void 0&&(m[e]=new Set,window.addEventListener(e,v)),m[e]}function x(e,t){let n=e.get(t);return n===void 0&&e.set(t,n=new Set),n}function S(e,t,n,r){let i=p[t][n];if(i!==void 0){let t=i.get(e);if(t!==void 0&&t.has(r))return!0}return!1}function C(e,t){let n=m[e];return!!(n!==void 0&&n.has(t))}function w(e,t,n,r){let a;if(a=typeof r==`object`&&r.once===!0?i=>{T(e,t,a,r),n(i)}:n,i(e,t,a,r))return;let o=x(y(r===!0||typeof r==`object`&&r.capture===!0?`capture`:`bubble`,e),t);if(o.has(a)||o.add(a),t===window){let t=b(e);t.has(a)||t.add(a)}}function T(e,t,n,r){if(a(e,t,n,r))return;let i=r===!0||typeof r==`object`&&r.capture===!0,o=i?`capture`:`bubble`,s=y(o,e),c=x(s,t);if(t===window&&!S(t,i?`bubble`:`capture`,e,n)&&C(e,n)){let t=m[e];t.delete(n),t.size===0&&(window.removeEventListener(e,v),m[e]=void 0)}c.has(n)&&c.delete(n),c.size===0&&s.delete(t),s.size===0&&(window.removeEventListener(e,_,o===`capture`),p[o][e]=void 0)}return{on:w,off:T}}var{on:s,off:c}=o();export{s as n,c as t}; |