UNPKG

@lumino/signaling

Version:
2 lines 3.1 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@lumino/algorithm"),require("@lumino/coreutils")):"function"==typeof define&&define.amd?define(["exports","@lumino/algorithm","@lumino/coreutils"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).lumino_signaling={},e.lumino_algorithm,e.lumino_coreutils)}(this,(function(e,n,t){"use strict";class i{constructor(e){this.sender=e}connect(e,n){return c.connect(this,e,n)}disconnect(e,n){return c.disconnect(this,e,n)}emit(e){c.emit(this,e)}}!function(e){e.disconnectBetween=function(e,n){c.disconnectBetween(e,n)},e.disconnectSender=function(e){c.disconnectSender(e)},e.disconnectReceiver=function(e){c.disconnectReceiver(e)},e.disconnectAll=function(e){c.disconnectAll(e)},e.clearData=function(e){c.disconnectAll(e)},e.getExceptionHandler=function(){return c.exceptionHandler},e.setExceptionHandler=function(e){let n=c.exceptionHandler;return c.exceptionHandler=e,n}}(i||(i={}));class o extends i{constructor(){super(...arguments),this._pending=new t.PromiseDelegate}async*[Symbol.asyncIterator](){let e=this._pending;for(;;)try{const{args:n,next:t}=await e.promise;e=t,yield n}catch(e){return}}emit(e){const n=this._pending,i=this._pending=new t.PromiseDelegate;n.resolve({args:e,next:i}),super.emit(e)}stop(){this._pending.promise.catch((()=>{})),this._pending.reject("stop"),this._pending=new t.PromiseDelegate}}var c;!function(e){function t(e){let n=o.get(e);if(n&&0!==n.length){for(const e of n){if(!e.signal)continue;let n=e.thisArg||e.slot;e.signal=null,a(c.get(n))}a(n)}}function i(e){let n=c.get(e);if(n&&0!==n.length){for(const e of n){if(!e.signal)continue;let n=e.signal.sender;e.signal=null,a(o.get(n))}a(n)}}e.exceptionHandler=e=>{console.error(e)},e.connect=function(e,n,t){t=t||void 0;let i=o.get(e.sender);if(i||(i=[],o.set(e.sender,i)),l(i,e,n,t))return!1;let s=t||n,r=c.get(s);r||(r=[],c.set(s,r));let u={signal:e,slot:n,thisArg:t};return i.push(u),r.push(u),!0},e.disconnect=function(e,n,t){t=t||void 0;let i=o.get(e.sender);if(!i||0===i.length)return!1;let s=l(i,e,n,t);if(!s)return!1;let r=t||n,u=c.get(r);return s.signal=null,a(i),a(u),!0},e.disconnectBetween=function(e,n){let t=o.get(e);if(!t||0===t.length)return;let i=c.get(n);if(i&&0!==i.length){for(const n of i)n.signal&&n.signal.sender===e&&(n.signal=null);a(t),a(i)}},e.disconnectSender=t,e.disconnectReceiver=i,e.disconnectAll=function(e){t(e),i(e)},e.emit=function(e,n){let t=o.get(e.sender);if(t&&0!==t.length)for(let i=0,o=t.length;i<o;++i){let o=t[i];o.signal===e&&u(o,n)}};const o=new WeakMap,c=new WeakMap,s=new Set,r="function"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate;function l(e,t,i,o){return n.find(e,(e=>e.signal===t&&e.slot===i&&e.thisArg===o))}function u(n,t){let{signal:i,slot:o,thisArg:c}=n;try{o.call(c,i.sender,t)}catch(n){e.exceptionHandler(n)}}function a(e){0===s.size&&r(d),s.add(e)}function d(){s.forEach(f),s.clear()}function f(e){n.ArrayExt.removeAllWhere(e,g)}function g(e){return null===e.signal}}(c||(c={})),e.Signal=i,e.Stream=o})); //# sourceMappingURL=index.min.js.map