@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 863 B
JavaScript
import{runTracked as n}from"./tracking.js";import{SimpleTrackingTarget as t}from"./tracking/SimpleTrackingTarget.js";let r=!1;const e=[];function o(e,o){let u=new t(s),l=null,f=!1;function s(){if(!u||f)return;if(r)return void i(s);const t=l;u.clear(),r=!0,f=!0,l=n(u,e),f=!1,r=!1,o(l,t),c()}function m(){u&&(u.destroy(),u=null,l=null)}return f=!0,l=n(u,e),f=!1,{remove:m}}function u(r,e){let o=new t(l),u=null;function l(){e(u,c)}function i(){o&&(o.destroy(),o=null),u=null}function c(){return o?(o.clear(),u=n(o,r),u):null}return c(),{remove:i}}function l(e){let o=new t(l),u=!1;function l(){o&&!u&&(r?i(l):(o.clear(),r=!0,u=!0,n(o,e),u=!1,r=!1,c()))}function f(){o&&(o.destroy(),o=null)}return u=!0,n(o,e),u=!1,{remove:f}}function i(n){e.includes(n)||e.unshift(n)}function c(){for(;e.length;)e.pop()()}export{l as autorun,o as reaction,u as reactionDeferred};