@but212/atom-effect-jquery 0.9.2 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("jquery"),qe={ONE_SECOND_MS:1e3},oe={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},Z={DISPOSED:1,EXECUTING:2},d={DIRTY:1,IDLE:2,PENDING:4,RESOLVED:8,REJECTED:16,RECOMPUTING:32,HAS_ERROR:64},L={MAX_EXECUTIONS_PER_SECOND:1e3,MAX_EXECUTIONS_PER_EFFECT:100,MAX_EXECUTIONS_PER_FLUSH:1e4,MAX_FLUSH_ITERATIONS:1e3,MIN_FLUSH_ITERATIONS:10},me={MAX_DEPENDENCIES:1e3,WARN_INFINITE_LOOP:!0},q=1073741823,R=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production",ze=Object.freeze([]);class k extends Error{constructor(e,s=null,n=!0){super(e),this.name="AtomError",this.cause=s,this.recoverable=n,this.timestamp=new Date}}class X extends k{constructor(e,s=null){super(e,s,!0),this.name="ComputedError"}}class j extends k{constructor(e,s=null){super(e,s,!1),this.name="EffectError"}}class ee extends k{constructor(e,s=null){super(e,s,!1),this.name="SchedulerError"}}const y={COMPUTED_MUST_BE_FUNCTION:"Computed function must be a function",COMPUTED_ASYNC_PENDING_NO_DEFAULT:"Async computation is pending. No default value provided",COMPUTED_COMPUTATION_FAILED:"Computed computation failed",COMPUTED_ASYNC_COMPUTATION_FAILED:"Async computed computation failed",ATOM_SUBSCRIBER_MUST_BE_FUNCTION:"Subscription listener must be a function or Subscriber object",ATOM_INDIVIDUAL_SUBSCRIBER_FAILED:"Error during individual atom subscriber execution",EFFECT_MUST_BE_FUNCTION:"Effect function must be a function",EFFECT_EXECUTION_FAILED:"Effect execution failed",EFFECT_CLEANUP_FAILED:"Effect cleanup function execution failed",CALLBACK_ERROR_IN_ERROR_HANDLER:"Error occurred during onError callback execution"},he=Symbol("debugName"),Xe=Symbol("id"),ae=Symbol("type"),ye=Symbol("noDefaultValue");function Qe(t){return"dependencies"in t&&Array.isArray(t.dependencies)}let Se=0;function Ne(t,e,s){if(t._visitedEpoch!==s){if(t._visitedEpoch=s,t===e)throw new X("Indirect circular dependency detected");if(Qe(t)){const n=t.dependencies;for(let i=0;i<n.length;i++){const r=n[i];r&&Ne(r,e,s)}}}}const w={enabled:typeof process<"u"&&process.env?.NODE_ENV==="development",maxDependencies:me.MAX_DEPENDENCIES,warnInfiniteLoop:me.WARN_INFINITE_LOOP,warn(t,e){this.enabled&&t&&console.warn(`[Atom Effect] ${e}`)},checkCircular(t,e){if(t===e)throw new X("Direct circular dependency detected");this.enabled&&(Se++,Ne(t,e,Se))},attachDebugInfo(t,e,s){if(!this.enabled)return;const n=t;n[he]=`${e}_${s}`,n[Xe]=s,n[ae]=e},getDebugName(t){if(t!=null&&he in t)return t[he]},getDebugType(t){if(t!=null&&ae in t)return t[ae]}};let Ge=1;const He=()=>Ge++;class Te{constructor(){this.id=He()&q,this.flags=0}}class Re extends Te{constructor(){super(),this.version=0,this._lastSeenEpoch=-1}subscribe(e){if(typeof e=="object"&&e!==null&&"execute"in e)return this._objectSubscribers.add(e);if(typeof e!="function")throw new k(y.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);return this._functionSubscribers.add(e)}subscriberCount(){return this._functionSubscribers.size+this._objectSubscribers.size}_notifySubscribers(e,s){this._functionSubscribers.forEachSafe(n=>n(e,s),n=>console.error(new k(y.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,n))),this._objectSubscribers.forEachSafe(n=>n.execute(),n=>console.error(new k(y.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,n)))}}let te=0;function xe(){return te=te+1&q||1,te}function Je(){return te}let ne=0,fe=0,ie=!1;function De(){return ie?(R&&console.warn("Warning: startFlush() called during flush - ignored to prevent infinite loop detection bypass"),!1):(ie=!0,ne=ne+1&q,fe=0,!0)}function Ie(){ie=!1}function Ye(){return ie?++fe:0}class Ke{constructor(){this.queueA=[],this.queueB=[],this.queue=this.queueA,this.queueSize=0,this._epoch=0,this.isProcessing=!1,this.isBatching=!1,this.batchDepth=0,this.batchQueue=[],this.batchQueueSize=0,this.isFlushingSync=!1,this.maxFlushIterations=L.MAX_FLUSH_ITERATIONS}get phase(){return this.isProcessing||this.isFlushingSync?2:this.isBatching?1:0}schedule(e){if(typeof e!="function")throw new ee("Scheduler callback must be a function");e._nextEpoch!==this._epoch&&(e._nextEpoch=this._epoch,this.isBatching||this.isFlushingSync?this.batchQueue[this.batchQueueSize++]=e:(this.queue[this.queueSize++]=e,this.isProcessing||this.flush()))}flush(){this.isProcessing||this.queueSize===0||(this.isProcessing=!0,queueMicrotask(()=>{try{if(this.queueSize===0)return;const e=De();this._drainQueue(),e&&Ie()}finally{this.isProcessing=!1,this.queueSize>0&&!this.isBatching&&this.flush()}}))}flushSync(){this.isFlushingSync=!0;const e=De();try{this._mergeBatchQueue(),this._drainQueue()}finally{this.isFlushingSync=!1,e&&Ie()}}_mergeBatchQueue(){if(this._epoch++,this.batchQueueSize>0){for(let e=0;e<this.batchQueueSize;e++){const s=this.batchQueue[e];s&&s._nextEpoch!==this._epoch&&(s._nextEpoch=this._epoch,this.queue[this.queueSize++]=s)}this.batchQueueSize=0}}_drainQueue(){let e=0;for(;this.queueSize>0;){if(++e>this.maxFlushIterations){this._handleFlushOverflow();break}this._processCurrentQueue(),this._mergeBatchQueue()}}_processCurrentQueue(){const e=this.queue,s=this.queueSize;this.queue=this.queue===this.queueA?this.queueB:this.queueA,this.queueSize=0,this._epoch++,this._processJobs(e,s)}_handleFlushOverflow(){console.error(new ee(`Maximum flush iterations (${this.maxFlushIterations}) exceeded. Possible infinite loop.`)),this.queueSize=0,this.queue.length=0,this.batchQueueSize=0}_processJobs(e,s){for(let n=0;n<s;n++)try{e[n]?.()}catch(i){console.error(new ee("Error occurred during scheduler execution",i))}e.length=0}startBatch(){this.batchDepth++,this.isBatching=!0}endBatch(){this.batchDepth=Math.max(0,this.batchDepth-1),this.batchDepth===0&&(this.flushSync(),this.isBatching=!1)}setMaxFlushIterations(e){if(e<L.MIN_FLUSH_ITERATIONS)throw new ee(`Max flush iterations must be at least ${L.MIN_FLUSH_ITERATIONS}`);this.maxFlushIterations=e}}const Y=new Ke;function $(t){if(typeof t!="function")throw new k("Batch callback must be a function");Y.startBatch();try{return t()}finally{Y.endBatch()}}const z={current:null,run(t,e){const s=this.current;this.current=t;try{return e()}finally{this.current=s}},getCurrent(){return this.current}};function de(t){if(typeof t!="function")throw new k("Untracked callback must be a function");const e=z.current;z.current=null;try{return t()}finally{z.current=e}}class re{constructor(){this.subscribers=null}add(e){if(this.subscribers||(this.subscribers=[]),this.subscribers.indexOf(e)!==-1)return()=>{};this.subscribers.push(e);let s=!1;return()=>{s||(s=!0,this.remove(e))}}remove(e){if(!this.subscribers)return!1;const s=this.subscribers.indexOf(e);if(s===-1)return!1;const n=this.subscribers.length-1;return s!==n&&(this.subscribers[s]=this.subscribers[n]),this.subscribers.pop(),!0}has(e){return this.subscribers?this.subscribers.indexOf(e)!==-1:!1}forEach(e){if(this.subscribers)for(let s=0;s<this.subscribers.length;s++)e(this.subscribers[s],s)}forEachSafe(e,s){if(this.subscribers)for(let n=0;n<this.subscribers.length;n++)try{e(this.subscribers[n],n)}catch(i){s?s(i):console.error("[SubscriberManager] Error in subscriber callback:",i)}}get size(){return this.subscribers?.length??0}get hasSubscribers(){return this.subscribers!==null&&this.subscribers.length>0}clear(){this.subscribers=null}toArray(){return this.subscribers?[...this.subscribers]:[]}}class _e{constructor(){this.pool=[],this.maxPoolSize=50,this.maxReusableCapacity=256,this.stats=R?{acquired:0,released:0,rejected:{frozen:0,tooLarge:0,poolFull:0}}:null}acquire(){return R&&this.stats&&this.stats.acquired++,this.pool.pop()??[]}release(e,s){if(!(s&&e===s)){if(Object.isFrozen(e)){R&&this.stats&&this.stats.rejected.frozen++;return}if(e.length>this.maxReusableCapacity){R&&this.stats&&this.stats.rejected.tooLarge++;return}if(this.pool.length>=this.maxPoolSize){R&&this.stats&&this.stats.rejected.poolFull++;return}e.length=0,this.pool.push(e),R&&this.stats&&this.stats.released++}}getStats(){if(!R||!this.stats)return null;const{acquired:e,released:s,rejected:n}=this.stats,i=n.frozen+n.tooLarge+n.poolFull;return{acquired:e,released:s,rejected:n,leaked:e-s-i,poolSize:this.pool.length}}reset(){this.pool.length=0,R&&this.stats&&(this.stats.acquired=0,this.stats.released=0,this.stats.rejected={frozen:0,tooLarge:0,poolFull:0})}}const D=Object.freeze([]),O=Object.freeze([]),I=Object.freeze([]),M=new _e,B=new _e,A=new _e;function le(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in t&&typeof t.subscribe=="function"}function Ce(t){if(w.enabled&&(t==null||typeof t=="object")){const e=w.getDebugType(t);if(e)return e==="computed"}return le(t)&&"invalidate"in t&&typeof t.invalidate=="function"}function Ue(t){return t!=null&&typeof t.then=="function"}function We(t){return typeof t=="object"&&t!==null}function Ze(t){return(typeof t=="object"||typeof t=="function")&&t!==null&&typeof t.addDependency=="function"}function et(t){return typeof t=="function"&&typeof t.addDependency!="function"}function tt(t){return We(t)&&typeof t.execute=="function"}function Oe(t,e,s,n){if(e){if(Ze(e)){e.addDependency(t);return}if(et(e)){s.add(e);return}tt(e)&&n.add(e)}}function st(t,e,s,n){if(e!==D&&s!==O)for(let r=0;r<e.length;r++){const o=e[r];o&&(o._tempUnsub=s[r])}const i=B.acquire();i.length=t.length;for(let r=0;r<t.length;r++){const o=t[r];o&&(o._tempUnsub?(i[r]=o._tempUnsub,o._tempUnsub=void 0):(w.checkCircular(o,n),i[r]=o.subscribe(n)))}if(e!==D)for(let r=0;r<e.length;r++){const o=e[r];o?._tempUnsub&&(o._tempUnsub(),o._tempUnsub=void 0)}return s!==O&&B.release(s),i}class nt extends Re{constructor(e,s){super(),this._isNotificationScheduled=!1,this._value=e,this._functionSubscribersStore=new re,this._objectSubscribersStore=new re,this._sync=s,this._notifyTask=this._flushNotifications.bind(this),w.attachDebugInfo(this,"atom",this.id)}get _functionSubscribers(){return this._functionSubscribersStore}get _objectSubscribers(){return this._objectSubscribersStore}get value(){const e=z.getCurrent();return e&&this._track(e),this._value}set value(e){if(Object.is(this._value,e))return;const s=this._value;this.version=this.version+1&q,this._value=e,!(!this._functionSubscribersStore.hasSubscribers&&!this._objectSubscribersStore.hasSubscribers)&&this._scheduleNotification(s)}_track(e){Oe(this,e,this._functionSubscribersStore,this._objectSubscribersStore)}_scheduleNotification(e){this._isNotificationScheduled||(this._pendingOldValue=e,this._isNotificationScheduled=!0),this._sync&&!Y.isBatching?this._flushNotifications():Y.schedule(this._notifyTask)}_flushNotifications(){if(!this._isNotificationScheduled)return;const e=this._pendingOldValue,s=this._value;this._pendingOldValue=void 0,this._isNotificationScheduled=!1,this._notifySubscribers(s,e)}peek(){return this._value}dispose(){this._functionSubscribersStore.clear(),this._objectSubscribersStore.clear(),this._value=void 0}}function Ae(t,e={}){return new nt(t,e.sync??!1)}function H(t,e,s){if(t instanceof TypeError)return new e(`Type error (${s}): ${t.message}`,t);if(t instanceof ReferenceError)return new e(`Reference error (${s}): ${t.message}`,t);if(t instanceof k)return t;const n=t instanceof Error?t.message:String(t),i=t instanceof Error?t:null;return new e(`Unexpected error (${s}): ${n}`,i)}const we=d.RESOLVED|d.PENDING|d.REJECTED,ce=Array(we+1).fill(oe.IDLE);ce[d.RESOLVED]=oe.RESOLVED;ce[d.PENDING]=oe.PENDING;ce[d.REJECTED]=oe.REJECTED;class ke extends Re{constructor(e,s={}){if(typeof e!="function")throw new X(y.COMPUTED_MUST_BE_FUNCTION);if(super(),this._cachedErrors=null,this._errorCacheEpoch=-1,this._value=void 0,this.flags=d.DIRTY|d.IDLE,this._error=null,this._promiseId=0,this._equal=s.equal??Object.is,this._fn=e,this._defaultValue="defaultValue"in s?s.defaultValue:ye,this._hasDefaultValue=this._defaultValue!==ye,this._onError=s.onError??null,this.MAX_PROMISE_ID=Number.MAX_SAFE_INTEGER-1,this._functionSubscribersStore=new re,this._objectSubscribersStore=new re,this._dependencies=D,this._dependencyVersions=I,this._unsubscribes=O,this._notifyJob=()=>{this._functionSubscribersStore.forEachSafe(n=>n(),n=>console.error(n)),this._objectSubscribersStore.forEachSafe(n=>n.execute(),n=>console.error(n))},this._trackable=Object.assign(()=>this._markDirty(),{addDependency:n=>{}}),w.attachDebugInfo(this,"computed",this.id),w.enabled){const n=this;n.subscriberCount=()=>this._functionSubscribersStore.size+this._objectSubscribersStore.size,n.isDirty=()=>this._isDirty(),n.dependencies=this._dependencies,n.stateFlags=this._getFlagsAsString()}if(s.lazy===!1)try{this._recompute()}catch{}}get _functionSubscribers(){return this._functionSubscribersStore}get _objectSubscribers(){return this._objectSubscribersStore}get value(){return this._registerTracking(),this._computeValue()}peek(){return this._value}get state(){return this._registerTracking(),this._getAsyncState()}get hasError(){if(this._registerTracking(),this._isRejected())return!0;for(let e=0;e<this._dependencies.length;e++){const s=this._dependencies[e];if(s&&"hasError"in s&&s.hasError)return!0}return!1}get isValid(){return!this.hasError}get errors(){if(this._registerTracking(),!this.hasError)return ze;const e=Je();if(this._errorCacheEpoch===e&&this._cachedErrors!==null)return this._cachedErrors;const s=new Set;this._error&&s.add(this._error);for(let n=0;n<this._dependencies.length;n++){const i=this._dependencies[n];if(i&&"errors"in i){const r=i.errors;for(let o=0;o<r.length;o++){const c=r[o];c&&s.add(c)}}}return this._cachedErrors=Object.freeze([...s]),this._errorCacheEpoch=e,this._cachedErrors}get lastError(){return this._registerTracking(),this._error}get isPending(){return this._registerTracking(),this._isPending()}get isResolved(){return this._registerTracking(),this._isResolved()}invalidate(){this._markDirty(),this._dependencyVersions!==I&&(A.release(this._dependencyVersions),this._dependencyVersions=I),this._errorCacheEpoch=-1,this._cachedErrors=null}dispose(){if(this._unsubscribes!==O){for(let e=0;e<this._unsubscribes.length;e++){const s=this._unsubscribes[e];s&&s()}B.release(this._unsubscribes),this._unsubscribes=O}this._dependencies!==D&&(M.release(this._dependencies),this._dependencies=D),this._dependencyVersions!==I&&(A.release(this._dependencyVersions),this._dependencyVersions=I),this._functionSubscribersStore.clear(),this._objectSubscribersStore.clear(),this.flags=d.DIRTY|d.IDLE,this._error=null,this._value=void 0,this._promiseId=(this._promiseId+1)%this.MAX_PROMISE_ID,this._cachedErrors=null,this._errorCacheEpoch=-1}_isDirty(){return(this.flags&d.DIRTY)!==0}_setDirty(){this.flags|=d.DIRTY}_clearDirty(){this.flags&=-2}_isIdle(){return(this.flags&d.IDLE)!==0}_setIdle(){this.flags|=d.IDLE,this.flags&=-29}_isPending(){return(this.flags&d.PENDING)!==0}_setPending(){this.flags|=d.PENDING,this.flags&=-27}_isResolved(){return(this.flags&d.RESOLVED)!==0}_setResolved(){this.flags|=d.RESOLVED,this.flags&=-87}_isRejected(){return(this.flags&d.REJECTED)!==0}_setRejected(){this.flags|=d.REJECTED|d.HAS_ERROR,this.flags&=-15}_isRecomputing(){return(this.flags&d.RECOMPUTING)!==0}_setRecomputing(e){const s=d.RECOMPUTING;this.flags=this.flags&~s|-Number(e)&s}_getAsyncState(){return ce[this.flags&we]}_getFlagsAsString(){const e=[];return this._isDirty()&&e.push("DIRTY"),this._isIdle()&&e.push("IDLE"),this._isPending()&&e.push("PENDING"),this._isResolved()&&e.push("RESOLVED"),this._isRejected()&&e.push("REJECTED"),this._isRecomputing()&&e.push("RECOMPUTING"),e.join(" | ")}_computeValue(){return this._isRecomputing()?this._value:((this._isDirty()||this._isIdle())&&this._recompute(),this._isPending()?this._handlePending():this._isRejected()?this._handleRejected():this._value)}_recompute(){if(this._isRecomputing())return;this._setRecomputing(!0);const e=this._prepareComputationContext();let s=!1;try{const n=z.run(this._trackable,this._fn);this._commitDependencies(e),s=!0,Ue(n)?this._handleAsyncComputation(n):this._handleSyncResult(n)}catch(n){if(!s)try{this._commitDependencies(e),s=!0}catch(i){this._handleComputationError(i)}this._handleComputationError(n)}finally{this._cleanupContext(e,s),this._setRecomputing(!1)}}_prepareComputationContext(){const e=this._dependencies,s=this._dependencyVersions,n=M.acquire(),i=A.acquire(),r=xe(),o={depCount:0},c=_=>{_._lastSeenEpoch!==r&&(_._lastSeenEpoch=r,o.depCount<n.length?(n[o.depCount]=_,i[o.depCount]=_.version):(n.push(_),i.push(_.version)),o.depCount++)},f=this._trackable.addDependency;return this._trackable.addDependency=c,{prevDeps:e,prevVersions:s,nextDeps:n,nextVersions:i,originalAdd:f,state:o}}_commitDependencies(e){const{nextDeps:s,nextVersions:n,state:i,prevDeps:r}=e;s.length=i.depCount,n.length=i.depCount,this._unsubscribes=st(s,r,this._unsubscribes,this),this._dependencies=s,this._dependencyVersions=n}_cleanupContext(e,s){this._trackable.addDependency=e.originalAdd,s?(e.prevDeps!==D&&M.release(e.prevDeps),e.prevVersions!==I&&A.release(e.prevVersions)):(M.release(e.nextDeps),A.release(e.nextVersions))}_handleSyncResult(e){const s=!this._isResolved()||!this._equal(this._value,e);this.version=this.version+Number(s)&q,this._value=e,this._clearDirty(),this._setResolved(),this._error=null,this._setRecomputing(!1),this._cachedErrors=null,this._errorCacheEpoch=-1}_handleAsyncComputation(e){this._setPending(),this._clearDirty(),this._notifyJob(),this._promiseId=this._promiseId>=this.MAX_PROMISE_ID?1:this._promiseId+1;const s=this._promiseId;e.then(n=>{s===this._promiseId&&this._handleAsyncResolution(n)}).catch(n=>{s===this._promiseId&&this._handleAsyncRejection(n)})}_handleAsyncResolution(e){const s=!this._isResolved()||!this._equal(this._value,e);this.version=this.version+Number(s)&q,this._value=e,this._clearDirty(),this._setResolved(),this._error=null,this._setRecomputing(!1),this._cachedErrors=null,this._errorCacheEpoch=-1,this._notifyJob()}_handleAsyncRejection(e){const s=H(e,X,y.COMPUTED_ASYNC_COMPUTATION_FAILED),n=!this._isRejected();if(this.version=this.version+Number(n)&q,this._error=s,this._setRejected(),this._clearDirty(),this._setRecomputing(!1),this._onError)try{this._onError(s)}catch(i){console.error(y.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}this._notifyJob()}_handleComputationError(e){const s=H(e,X,y.COMPUTED_COMPUTATION_FAILED);if(this._error=s,this._setRejected(),this._clearDirty(),this._setRecomputing(!1),this._onError)try{this._onError(s)}catch(n){console.error(y.CALLBACK_ERROR_IN_ERROR_HANDLER,n)}throw s}_handlePending(){if(this._hasDefaultValue)return this._defaultValue;throw new X(y.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}_handleRejected(){if(this._error?.recoverable&&this._hasDefaultValue)return this._defaultValue;throw this._error}execute(){this._markDirty()}_markDirty(){this._isRecomputing()||this._isDirty()||(this._setDirty(),this._notifyJob())}_registerTracking(){Oe(this,z.getCurrent(),this._functionSubscribersStore,this._objectSubscribersStore)}}Object.freeze(ke.prototype);function Fe(t,e={}){return new ke(t,e)}class it extends Te{constructor(e,s={}){super(),this.run=()=>{if(this.isDisposed)throw new j(y.EFFECT_MUST_BE_FUNCTION);this._dependencyVersions!==I&&(A.release(this._dependencyVersions),this._dependencyVersions=I),this.execute()},this.dispose=()=>{if(!this.isDisposed){if(this._setDisposed(),this._safeCleanup(),this._unsubscribes!==O){for(let i=0;i<this._unsubscribes.length;i++){const r=this._unsubscribes[i];r&&r()}B.release(this._unsubscribes),this._unsubscribes=O}this._dependencies!==D&&(M.release(this._dependencies),this._dependencies=D),this._dependencyVersions!==I&&(A.release(this._dependencyVersions),this._dependencyVersions=I)}},this.addDependency=i=>{if(this.isExecuting&&this._nextDeps&&this._nextUnsubs&&this._nextVersions){const r=this._currentEpoch;if(i._lastSeenEpoch===r)return;i._lastSeenEpoch=r,this._nextDeps.push(i),this._nextVersions.push(i.version),i._tempUnsub?(this._nextUnsubs.push(i._tempUnsub),i._tempUnsub=void 0):this._subscribeTo(i)}},this.execute=()=>{if(this.isDisposed||this.isExecuting||!this._shouldExecute())return;this._checkInfiniteLoop(),this._setExecuting(!0),this._safeCleanup();const i=this._prepareEffectContext();let r=!1;try{const o=z.run(this,this._fn);this._commitEffect(i),r=!0,this._checkLoopWarnings(),Ue(o)?o.then(c=>{!this.isDisposed&&typeof c=="function"&&(this._cleanup=c)}).catch(c=>{this._handleExecutionError(c)}):this._cleanup=typeof o=="function"?o:null}catch(o){r=!0,this._handleExecutionError(o),this._cleanup=null}finally{this._cleanupEffect(i,r),this._setExecuting(!1)}},this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._fn=e,this._sync=s.sync??!1,this._maxExecutions=s.maxExecutionsPerSecond??L.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=s.maxExecutionsPerFlush??L.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=s.trackModifications??!1,this._cleanup=null,this._dependencies=D,this._dependencyVersions=I,this._unsubscribes=O,this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,this._onError=s.onError??null,this._historyPtr=0;const n=Number.isFinite(this._maxExecutions);this._historyCapacity=n?Math.min(this._maxExecutions+1,L.MAX_EXECUTIONS_PER_SECOND+1):0,this._history=R&&n&&this._historyCapacity>0?new Array(this._historyCapacity).fill(0):null,this._executionCount=0,w.attachDebugInfo(this,"effect",this.id)}_prepareEffectContext(){const e=this._dependencies,s=this._dependencyVersions,n=this._unsubscribes,i=M.acquire(),r=A.acquire(),o=B.acquire(),c=xe();if(e!==D&&n!==O)for(let f=0;f<e.length;f++){const _=e[f];_&&(_._tempUnsub=n[f])}return this._nextDeps=i,this._nextVersions=r,this._nextUnsubs=o,this._currentEpoch=c,{prevDeps:e,prevVersions:s,prevUnsubs:n,nextDeps:i,nextVersions:r,nextUnsubs:o}}_commitEffect(e){const s=e.nextDeps.length;e.nextDeps.length=s,e.nextVersions.length=s,this._dependencies=e.nextDeps,this._dependencyVersions=e.nextVersions,this._unsubscribes=e.nextUnsubs}_cleanupEffect(e,s){if(this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,s){if(e.prevDeps!==D){for(let n=0;n<e.prevDeps.length;n++){const i=e.prevDeps[n];i?._tempUnsub&&(i._tempUnsub(),i._tempUnsub=void 0)}M.release(e.prevDeps)}e.prevUnsubs!==O&&B.release(e.prevUnsubs),e.prevVersions!==I&&A.release(e.prevVersions)}else{M.release(e.nextDeps),A.release(e.nextVersions);for(let n=0;n<e.nextUnsubs.length;n++)e.nextUnsubs[n]?.();if(B.release(e.nextUnsubs),e.prevDeps!==D)for(let n=0;n<e.prevDeps.length;n++){const i=e.prevDeps[n];i&&(i._tempUnsub=void 0)}}}_subscribeTo(e){try{const s=e.subscribe(()=>{this._trackModifications&&this.isExecuting&&(e._modifiedAtEpoch=this._currentEpoch),this._sync?this.execute():Y.schedule(this.execute)});this._nextUnsubs&&this._nextUnsubs.push(s)}catch(s){console.error(H(s,j,y.EFFECT_EXECUTION_FAILED)),this._nextUnsubs&&this._nextUnsubs.push(()=>{})}}get isDisposed(){return(this.flags&Z.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&Z.EXECUTING)!==0}_setDisposed(){this.flags|=Z.DISPOSED}_setExecuting(e){const s=Z.EXECUTING;this.flags=this.flags&~s|-Number(e)&s}_safeCleanup(){if(this._cleanup){try{this._cleanup()}catch(e){console.error(H(e,j,y.EFFECT_CLEANUP_FAILED))}this._cleanup=null}}_checkInfiniteLoop(){if(this._lastFlushEpoch!==ne&&(this._lastFlushEpoch=ne,this._executionsInEpoch=0),this._executionsInEpoch++,this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError("per-effect"),Ye()>L.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError("global"),this._executionCount++,this._history&&this._maxExecutions>0){const e=Date.now(),s=this._historyPtr,n=this._historyCapacity;this._history[s]=e;const i=(s+1)%n,r=this._history[i]??0;if(this._historyPtr=i,r>0&&e-r<qe.ONE_SECOND_MS){const o=new j(`Effect executed ${n} times within 1 second. Infinite loop suspected`);if(this.dispose(),console.error(o),this._onError&&this._onError(o),R)throw o}}}_throwInfiniteLoopError(e){const s=new j(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${fe}`);throw this.dispose(),console.error(s),s}_shouldExecute(){if(this._dependencies===D||this._dependencyVersions===I)return!0;for(let e=0;e<this._dependencies.length;e++){const s=this._dependencies[e];if(s){if("value"in s)try{de(()=>s.value)}catch{return!0}if(s.version!==this._dependencyVersions[e])return!0}}return!1}_handleExecutionError(e){const s=H(e,j,y.EFFECT_EXECUTION_FAILED);console.error(s),this._onError&&this._onError(s)}_checkLoopWarnings(){if(this._trackModifications&&w.enabled){const e=this._dependencies;for(let s=0;s<e.length;s++){const n=e[s];n&&n._modifiedAtEpoch===this._currentEpoch&&w.warn(!0,`Effect is reading a dependency (${w.getDebugName(n)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function S(t,e={}){if(typeof t!="function")throw new j(y.EFFECT_MUST_BE_FUNCTION);const s=new it(t,e);return s.execute(),s}function b(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in t}function E(t){return b(t)?t.value:t}function ue(t){const e=t.jquery?t[0]:t;if(!e)return"unknown";if(e.id)return`#${e.id}`;if(e.className){const s=String(e.className).split(/\s+/).filter(Boolean).join(".");return s?`${e.tagName.toLowerCase()}.${s}`:e.tagName.toLowerCase()}return e.tagName.toLowerCase()}function rt(){if(typeof window<"u"){const t=window.__ATOM_DEBUG__;if(typeof t=="boolean")return t}try{if(typeof process<"u"&&process.env&&process.env.NODE_ENV==="development")return!0}catch{}return!1}let V=rt();const h={get enabled(){return V},set enabled(t){V=t},log(t,...e){V&&console.log(`[atom-effect-jquery] ${t}:`,...e)},atomChanged(t,e,s){V&&console.log(`[atom-effect-jquery] Atom "${t||"anonymous"}" changed:`,e,"→",s)},domUpdated(t,e,s){if(!V)return;const n=ue(t);console.log(`[atom-effect-jquery] DOM updated: ${n}.${e} =`,s),ot(t)},cleanup(t){V&&console.log(`[atom-effect-jquery] Cleanup: ${t}`)},warn(...t){V&&console.warn("[atom-effect-jquery]",...t)}};function ot(t){const e=t[0];if(!e||!document.contains(e))return;const s="atom_debug_timer",n="atom_debug_cleanup_timer",i="atom_debug_org_style";clearTimeout(t.data(s)),clearTimeout(t.data(n)),t.data(i)||t.data(i,{outline:t.css("outline"),outlineOffset:t.css("outline-offset"),transition:t.css("transition")}),t.css({outline:"2px solid rgba(255, 68, 68, 0.8)","outline-offset":"1px",transition:"none"});const r=setTimeout(()=>{const o=t.data(i);t.css("transition","outline 0.5s ease-out"),requestAnimationFrame(()=>{t.css({outline:o?.outline||"","outline-offset":o?.outlineOffset||""});const c=setTimeout(()=>{t.css("transition",o?.transition||""),t.removeData(s),t.removeData(n),t.removeData(i)},500);t.data(n,c)})},100);t.data(s,r)}const ct=new WeakMap;function Me(t,e={}){const s=Ae(t,e);return e.name&&ct.set(s,{name:e.name}),s}Object.defineProperty(Me,"debug",{get(){return h.enabled},set(t){h.enabled=t}});function ut(){return new Promise(t=>setTimeout(t,0))}u.extend({atom:Me,computed:Fe,effect:S,batch:$,untracked:de,isAtom:le,isComputed:Ce,isReactive:t=>le(t)||Ce(t),nextTick:ut});function $e(){return{timeoutId:null,phase:"idle",hasFocus:!1}}function Pe(t,e,s={}){const{debounce:n,event:i="input",parse:r=p=>p,format:o=p=>String(p??"")}=s,c=$e(),f=()=>{c.phase="composing"},_=()=>{c.phase="idle",F()};t.on("compositionstart",f),t.on("compositionend",_);const C=()=>{c.hasFocus=!0},m=()=>{c.hasFocus=!1;const p=o(e.value);t.val()!==p&&t.val(p)};t.on("focus",C),t.on("blur",m);const F=()=>{c.phase==="idle"&&(c.phase="syncing-to-atom",$(()=>{e.value=r(t.val())}),c.phase="idle")},v=()=>{c.phase==="idle"&&(n?(c.timeoutId&&clearTimeout(c.timeoutId),c.timeoutId=window.setTimeout(F,n)):F())};return t.on(i,v),t.on("change",v),{effect:()=>{const p=o(e.value),P=t.val();if(P!==p){if(c.hasFocus&&r(P)===e.value)return;c.phase="syncing-to-dom",t.val(p),h.domUpdated(t,"val",p),c.phase="idle"}},cleanup:()=>{t.off(i,v),t.off("change",v),t.off("compositionstart",f),t.off("compositionend",_),t.off("focus",C),t.off("blur",m),c.timeoutId&&clearTimeout(c.timeoutId)}}}class ht{effects=new WeakMap;cleanups=new WeakMap;boundElements=new WeakSet;preservedNodes=new WeakSet;keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}trackEffect(e,s){const n=this.effects.get(e)||[];n.push(s),this.effects.set(e,n),this.boundElements.add(e)}trackCleanup(e,s){const n=this.cleanups.get(e)||[];n.push(s),this.cleanups.set(e,n),this.boundElements.add(e)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.has(e))return;h.cleanup(ue(e));const s=this.effects.get(e);s&&(this.effects.delete(e),s.forEach(i=>{try{i.dispose()}catch(r){h.warn("Effect dispose error:",r)}}));const n=this.cleanups.get(e);n&&(this.cleanups.delete(e),n.forEach(i=>{try{i()}catch(r){h.warn("Cleanup error:",r)}})),this.boundElements.delete(e)}cleanupTree(e){e.querySelectorAll("*").forEach(n=>{this.boundElements.has(n)&&this.cleanup(n)}),this.cleanup(e)}}const a=new ht;let J=null;function Ve(t=document.body){J||(J=new MutationObserver(e=>{for(const s of e)s.removedNodes.forEach(n=>{a.isKept(n)||n.isConnected||n.nodeType===1&&a.cleanupTree(n)})}),J.observe(t,{childList:!0,subtree:!0}))}function at(){J?.disconnect(),J=null}u.fn.atomText=function(t,e){return this.each(function(){const s=u(this);if(b(t)){const n=S(()=>{const i=E(t),r=e?e(i):String(i??"");s.text(r),h.domUpdated(s,"text",r)});a.trackEffect(this,n)}else{const n=e?e(t):String(t??"");s.text(n)}})};u.fn.atomHtml=function(t){return this.each(function(){const e=u(this);if(b(t)){const s=S(()=>{const n=String(E(t)??"");e.html(n),h.domUpdated(e,"html",n)});a.trackEffect(this,s)}else e.html(String(t??""))})};u.fn.atomClass=function(t,e){return this.each(function(){const s=u(this);if(b(e)){const n=S(()=>{const i=!!E(e);s.toggleClass(t,i),h.domUpdated(s,`class.${t}`,i)});a.trackEffect(this,n)}else s.toggleClass(t,!!e)})};u.fn.atomCss=function(t,e,s){return this.each(function(){const n=u(this);if(b(e)){const i=S(()=>{const r=E(e),o=s?`${r}${s}`:r;n.css(t,o),h.domUpdated(n,`css.${t}`,o)});a.trackEffect(this,i)}else n.css(t,s?`${e}${s}`:e)})};u.fn.atomAttr=function(t,e){return this.each(function(){const s=u(this),n=i=>{i==null||i===!1?s.removeAttr(t):i===!0?s.attr(t,t):s.attr(t,String(i)),h.domUpdated(s,`attr.${t}`,i)};if(b(e)){const i=S(()=>n(E(e)));a.trackEffect(this,i)}else n(e)})};u.fn.atomProp=function(t,e){return this.each(function(){const s=u(this);if(b(e)){const n=S(()=>{const i=E(e);s.prop(t,i),h.domUpdated(s,`prop.${t}`,i)});a.trackEffect(this,n)}else s.prop(t,e)})};u.fn.atomShow=function(t){return this.each(function(){const e=u(this);if(b(t)){const s=S(()=>{const n=!!E(t);e.toggle(n),h.domUpdated(e,"show",n)});a.trackEffect(this,s)}else e.toggle(!!t)})};u.fn.atomHide=function(t){return this.each(function(){const e=u(this);if(b(t)){const s=S(()=>{const n=!E(t);e.toggle(n),h.domUpdated(e,"hide",!n)});a.trackEffect(this,s)}else e.toggle(!t)})};u.fn.atomVal=function(t,e={}){return this.each(function(){const{effect:s,cleanup:n}=Pe(u(this),t,e),i=S(s);a.trackEffect(this,i),a.trackCleanup(this,n)})};u.fn.atomChecked=function(t){return this.each(function(){const e=u(this);let s=!1;const n=()=>{s||$(()=>{t.value=e.prop("checked")})};e.on("change",n),a.trackCleanup(this,()=>e.off("change",n));const i=S(()=>{s=!0,e.prop("checked",t.value),h.domUpdated(e,"checked",t.value),s=!1});a.trackEffect(this,i)})};u.fn.atomOn=function(t,e){return this.each(function(){const s=u(this),n=function(i){$(()=>e.call(this,i))};s.on(t,n),a.trackCleanup(this,()=>s.off(t,n))})};u.fn.atomUnbind=function(){return this.each(function(){a.cleanupTree(this)})};function lt(t,e){b(e)?t.effects.push(()=>{const s=String(E(e)??"");t.$el.text(s),h.domUpdated(t.$el,"text",s)}):t.$el.text(String(e??""))}function ft(t,e){b(e)?t.effects.push(()=>{const s=String(E(e)??"");t.$el.html(s),h.domUpdated(t.$el,"html",s)}):t.$el.html(String(e??""))}function dt(t,e){for(const[s,n]of Object.entries(e))b(n)?t.effects.push(()=>{const i=!!E(n);t.$el.toggleClass(s,i),h.domUpdated(t.$el,`class.${s}`,i)}):t.$el.toggleClass(s,!!n)}function _t(t,e){for(const[s,n]of Object.entries(e))if(Array.isArray(n)){const[i,r]=n;b(i)?t.effects.push(()=>{const o=`${E(i)}${r}`;t.$el.css(s,o),h.domUpdated(t.$el,`css.${s}`,o)}):t.$el.css(s,`${i}${r}`)}else b(n)?t.effects.push(()=>{const i=E(n);t.$el.css(s,i),h.domUpdated(t.$el,`css.${s}`,i)}):t.$el.css(s,n)}function pt(t,e){for(const[s,n]of Object.entries(e)){const i=r=>{r==null||r===!1?t.$el.removeAttr(s):r===!0?t.$el.attr(s,s):t.$el.attr(s,String(r)),h.domUpdated(t.$el,`attr.${s}`,r)};b(n)?t.effects.push(()=>i(E(n))):i(n)}}function bt(t,e){for(const[s,n]of Object.entries(e))b(n)?t.effects.push(()=>{const i=E(n);t.$el.prop(s,i),h.domUpdated(t.$el,`prop.${s}`,i)}):t.$el.prop(s,n)}function Et(t,e){b(e)?t.effects.push(()=>{const s=!!E(e);t.$el.toggle(s),h.domUpdated(t.$el,"show",s)}):t.$el.toggle(!!e)}function gt(t,e){b(e)?t.effects.push(()=>{const s=!E(e);t.$el.toggle(s),h.domUpdated(t.$el,"hide",!s)}):t.$el.toggle(!e)}function mt(t,e){const s=Array.isArray(e)?e[0]:e,n=Array.isArray(e)?e[1]:{},{effect:i,cleanup:r}=Pe(t.$el,s,n);t.effects.push(i),t.trackCleanup(r)}function yt(t,e){const s=$e(),n=()=>{s.phase==="idle"&&$(()=>{e.value=t.$el.prop("checked")})};t.$el.on("change",n),t.trackCleanup(()=>t.$el.off("change",n)),t.effects.push(()=>{s.phase="syncing-to-dom",t.$el.prop("checked",e.value),h.domUpdated(t.$el,"checked",e.value),s.phase="idle"})}function St(t,e){for(const[s,n]of Object.entries(e)){const i=function(r){$(()=>n.call(this,r))};t.$el.on(s,i),t.trackCleanup(()=>t.$el.off(s,i))}}u.fn.atomBind=function(t){return this.each(function(){const e=u(this),s=[],n={$el:e,el:this,effects:s,trackCleanup:i=>a.trackCleanup(this,i)};t.text!==void 0&&lt(n,t.text),t.html!==void 0&&ft(n,t.html),t.class&&dt(n,t.class),t.css&&_t(n,t.css),t.attr&&pt(n,t.attr),t.prop&&bt(n,t.prop),t.show!==void 0&&Et(n,t.show),t.hide!==void 0&&gt(n,t.hide),t.val!==void 0&&mt(n,t.val),t.checked!==void 0&&yt(n,t.checked),t.on&&St(n,t.on),s.forEach(i=>{const r=S(i);a.trackEffect(this,r)})})};function Dt(t){if(t.length===0)return[];const e=t.slice(),s=[0];let n,i,r,o;const c=t.length;for(n=0;n<c;n++){const C=t[n];if(C!==-1){const m=s[s.length-1];if(t[m]<C){e[n]=m,s.push(n);continue}for(i=0,r=s.length-1;i<r;)o=(i+r)/2|0,t[s[o]]<C?i=o+1:r=o;C<t[s[i]]&&(i>0&&(e[n]=s[i-1]),s[i]=n)}}let f=s.length,_=s[f-1];for(;f-- >0;)s[f]=_,_=e[_];return s}u.fn.atomList=function(t,e){return this.each(function(){const s=u(this),n=ue(this),{key:i,render:r,bind:o,onAdd:c,onRemove:f,empty:_}=e,C=typeof i=="function"?i:p=>p[i],m=new Map;let F=[],v=null;const K=new Set,be=S(()=>{const p=t.value,P=[],Ee=new Set;for(let l=0;l<p.length;l++){const g=p[l],T=C(g,l);P.push(T),Ee.add(T)}if(h.log("list",`${n} updating with ${p.length} items`),p.length===0&&_){v||(v=u(_),s.append(v));for(const[,l]of m){l.$el.remove();const g=l.$el[0];g&&a.cleanup(g)}m.clear(),F=[];return}else v&&(v.remove(),v=null);for(const[l,g]of m)if(!Ee.has(l)){if(K.has(l))continue;const T=()=>{g.$el.remove();const W=g.$el[0];W&&a.cleanup(W),K.delete(l),h.log("list",`${n} removed item:`,l)};m.delete(l),K.add(l),f?Promise.resolve(f(g.$el)).then(T):T()}const ge=new Map;F.forEach((l,g)=>ge.set(l,g));const je=P.map(l=>ge.get(l)??-1),Le=Dt(je),Be=new Set(Le);let x=null;for(let l=p.length-1;l>=0;l--){const g=P[l],T=p[l],W=Be.has(l);if(m.has(g)){const N=m.get(g);if(!N)continue;N.item=T;const U=N.$el[0];if(!U)continue;if(e.update&&e.update(N.$el,T,l),!W)x?N.$el.insertBefore(x):N.$el.appendTo(s);else{const Q=U.nextSibling;x&&Q!==x?N.$el.insertBefore(x):!x&&Q&&N.$el.appendTo(s)}x=U}else{const N=r(T,l),U=(N instanceof Element,u(N));m.set(g,{$el:U,item:T}),x?U.insertBefore(x):U.appendTo(s),o&&o(U,T,l),c&&c(U),h.log("list",`${n} added item:`,g);const Q=U[0];Q&&(x=Q)}}F=P});a.trackEffect(this,be),a.trackCleanup(this,()=>{m.clear(),F=[],v?.remove()})})};const se=new WeakMap;u.fn.atomMount=function(t,e={}){return this.each(function(){const s=u(this),n=ue(this),i=se.get(this);i&&(h.log("mount",`${n} unmounting existing component`),i()),h.log("mount",`${n} mounting component`);let r;try{r=t(s,e)}catch(f){console.error("[atom-effect-jquery] Mount error:",f);return}let o=!1;const c=()=>{if(!o){if(o=!0,h.log("mount",`${n} full cleanup`),typeof r=="function")try{r()}catch{}a.cleanupTree(this),se.delete(this)}};se.set(this,c),a.trackCleanup(this,c)})};u.fn.atomUnmount=function(){return this.each(function(){se.get(this)?.()})};const G=new WeakMap;let ve=!1;function pe(){if(ve)return;ve=!0;const t=u.fn.on,e=u.fn.off,s=u.fn.remove,n=u.fn.empty,i=u.fn.detach;u.fn.remove=function(r){return(r?this.filter(r):this).each(function(){a.cleanupTree(this)}),s.call(this,r)},u.fn.empty=function(){return this.each(function(){this.querySelectorAll("*").forEach(o=>a.cleanup(o))}),n.call(this)},u.fn.detach=function(r){return(r?this.filter(r):this).each(function(){a.keep(this)}),i.call(this,r)},u.fn.on=function(...r){let o=-1;for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){o=c;break}if(o!==-1){const c=r[o];let f;G.has(c)?f=G.get(c):(f=function(..._){let C;return $(()=>{C=c.apply(this,_)}),C},G.set(c,f)),r[o]=f}return t.apply(this,r)},u.fn.off=function(...r){let o=-1;for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){o=c;break}if(o!==-1){const c=r[o];G.has(c)&&(r[o]=G.get(c))}return e.apply(this,r)}}const It=pe;pe();u(()=>{Ve(document.body)});exports.default=u;exports.atom=Ae;exports.batch=$;exports.computed=Fe;exports.disableAutoCleanup=at;exports.effect=S;exports.enableAutoCleanup=Ve;exports.enablejQueryBatching=It;exports.enablejQueryOverrides=pe;exports.registry=a;exports.untracked=de;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("jquery"),Xe={ONE_SECOND_MS:1e3},ue={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},te={DISPOSED:1,EXECUTING:2},d={DIRTY:1,IDLE:2,PENDING:4,RESOLVED:8,REJECTED:16,RECOMPUTING:32,HAS_ERROR:64},Y={SYNC:1,NOTIFICATION_SCHEDULED:2},B={MAX_EXECUTIONS_PER_SECOND:1e3,MAX_EXECUTIONS_PER_EFFECT:100,MAX_EXECUTIONS_PER_FLUSH:1e4,MAX_FLUSH_ITERATIONS:1e3,MIN_FLUSH_ITERATIONS:10},Ie={MAX_DEPENDENCIES:1e3,WARN_INFINITE_LOOP:!0},z=1073741823,v=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production",Qe=Object.freeze([]);class w extends Error{constructor(e,s=null,n=!0){super(e),this.name="AtomError",this.cause=s,this.recoverable=n,this.timestamp=new Date}}class H extends w{constructor(e,s=null){super(e,s,!0),this.name="ComputedError"}}class V extends w{constructor(e,s=null){super(e,s,!1),this.name="EffectError"}}class se extends w{constructor(e,s=null){super(e,s,!1),this.name="SchedulerError"}}const g={COMPUTED_MUST_BE_FUNCTION:"Computed function must be a function",COMPUTED_ASYNC_PENDING_NO_DEFAULT:"Async computation is pending. No default value provided",COMPUTED_COMPUTATION_FAILED:"Computed computation failed",COMPUTED_ASYNC_COMPUTATION_FAILED:"Async computed computation failed",ATOM_SUBSCRIBER_MUST_BE_FUNCTION:"Subscription listener must be a function or Subscriber object",ATOM_INDIVIDUAL_SUBSCRIBER_FAILED:"Error during individual atom subscriber execution",EFFECT_MUST_BE_FUNCTION:"Effect function must be a function",EFFECT_EXECUTION_FAILED:"Effect execution failed",EFFECT_CLEANUP_FAILED:"Effect cleanup function execution failed",CALLBACK_ERROR_IN_ERROR_HANDLER:"Error occurred during onError callback execution"},fe=Symbol("debugName"),Ge=Symbol("id"),de=Symbol("type"),Ce=Symbol("noDefaultValue");function He(t){return"dependencies"in t&&Array.isArray(t.dependencies)}let ve=0;function Oe(t,e,s){if(t._visitedEpoch!==s){if(t._visitedEpoch=s,t===e)throw new H("Indirect circular dependency detected");if(He(t)){const n=t.dependencies;for(let i=0;i<n.length;i++){const r=n[i];r&&Oe(r,e,s)}}}}const A={enabled:typeof process<"u"&&process.env?.NODE_ENV==="development",maxDependencies:Ie.MAX_DEPENDENCIES,warnInfiniteLoop:Ie.WARN_INFINITE_LOOP,warn(t,e){this.enabled&&t&&console.warn(`[Atom Effect] ${e}`)},checkCircular(t,e){if(t===e)throw new H("Direct circular dependency detected");this.enabled&&(ve++,Oe(t,e,ve))},attachDebugInfo(t,e,s){if(!this.enabled)return;const n=t;n[fe]=`${e}_${s}`,n[Ge]=s,n[de]=e},getDebugName(t){if(t!=null&&fe in t)return t[fe]},getDebugType(t){if(t!=null&&de in t)return t[de]}};let Ye=1;const Je=()=>Ye++;class Re{constructor(){this.id=Je()&z,this.flags=0}}class Ue extends Re{constructor(){super(),this.version=0,this._lastSeenEpoch=-1}subscribe(e){if(typeof e=="object"&&e!==null&&"execute"in e)return this._objectSubscribers.add(e);if(typeof e!="function")throw new w(g.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);return this._functionSubscribers.add(e)}subscriberCount(){return this._functionSubscribers.size+this._objectSubscribers.size}_notifySubscribers(e,s){this._functionSubscribers.forEachSafe(n=>n(e,s),n=>console.error(new w(g.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,n))),this._objectSubscribers.forEachSafe(n=>n.execute(),n=>console.error(new w(g.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,n)))}}let ne=0;function we(){return ne=ne+1&z||1,ne}function Ke(){return ne}let re=0,pe=0,oe=!1;function Ne(){return oe?(v&&console.warn("Warning: startFlush() called during flush - ignored to prevent infinite loop detection bypass"),!1):(oe=!0,re=re+1&z,pe=0,!0)}function Te(){oe=!1}function We(){return oe?++pe:0}class Ze{constructor(){this.queueA=[],this.queueB=[],this.queue=this.queueA,this.queueSize=0,this._epoch=0,this.isProcessing=!1,this.isBatching=!1,this.batchDepth=0,this.batchQueue=[],this.batchQueueSize=0,this.isFlushingSync=!1,this.maxFlushIterations=B.MAX_FLUSH_ITERATIONS}get phase(){return this.isProcessing||this.isFlushingSync?2:this.isBatching?1:0}schedule(e){if(typeof e!="function")throw new se("Scheduler callback must be a function");e._nextEpoch!==this._epoch&&(e._nextEpoch=this._epoch,this.isBatching||this.isFlushingSync?this.batchQueue[this.batchQueueSize++]=e:(this.queue[this.queueSize++]=e,this.isProcessing||this.flush()))}flush(){this.isProcessing||this.queueSize===0||(this.isProcessing=!0,queueMicrotask(()=>{try{if(this.queueSize===0)return;const e=Ne();this._drainQueue(),e&&Te()}finally{this.isProcessing=!1,this.queueSize>0&&!this.isBatching&&this.flush()}}))}flushSync(){this.isFlushingSync=!0;const e=Ne();try{this._mergeBatchQueue(),this._drainQueue()}finally{this.isFlushingSync=!1,e&&Te()}}_mergeBatchQueue(){if(this._epoch++,this.batchQueueSize>0){for(let e=0;e<this.batchQueueSize;e++){const s=this.batchQueue[e];s&&s._nextEpoch!==this._epoch&&(s._nextEpoch=this._epoch,this.queue[this.queueSize++]=s)}this.batchQueueSize=0}}_drainQueue(){let e=0;for(;this.queueSize>0;){if(++e>this.maxFlushIterations){this._handleFlushOverflow();break}this._processCurrentQueue(),this._mergeBatchQueue()}}_processCurrentQueue(){const e=this.queue,s=this.queueSize;this.queue=this.queue===this.queueA?this.queueB:this.queueA,this.queueSize=0,this._epoch++,this._processJobs(e,s)}_handleFlushOverflow(){console.error(new se(`Maximum flush iterations (${this.maxFlushIterations}) exceeded. Possible infinite loop.`)),this.queueSize=0,this.queue.length=0,this.batchQueueSize=0}_processJobs(e,s){for(let n=0;n<s;n++)try{e[n]?.()}catch(i){console.error(new se("Error occurred during scheduler execution",i))}e.length=0}startBatch(){this.batchDepth++,this.isBatching=!0}endBatch(){this.batchDepth=Math.max(0,this.batchDepth-1),this.batchDepth===0&&(this.flushSync(),this.isBatching=!1)}setMaxFlushIterations(e){if(e<B.MIN_FLUSH_ITERATIONS)throw new se(`Max flush iterations must be at least ${B.MIN_FLUSH_ITERATIONS}`);this.maxFlushIterations=e}}const Z=new Ze;function ke(t){if(typeof t!="function")throw new w("Batch callback must be a function");Z.startBatch();try{return t()}finally{Z.endBatch()}}class et{constructor(){this.current=null}run(e,s){const n=this.current;this.current=e;try{return s()}finally{this.current=n}}getCurrent(){return this.current}}const X=new et;function be(t){if(typeof t!="function")throw new w("Untracked callback must be a function");const e=X.current;X.current=null;try{return t()}finally{X.current=e}}class ce{constructor(){this.subscribers=null}add(e){if(this.subscribers||(this.subscribers=[]),this.subscribers.indexOf(e)!==-1)return()=>{};this.subscribers.push(e);let s=!1;return()=>{s||(s=!0,this.remove(e))}}remove(e){if(!this.subscribers)return!1;const s=this.subscribers.indexOf(e);if(s===-1)return!1;const n=this.subscribers.length-1;return s!==n&&(this.subscribers[s]=this.subscribers[n]),this.subscribers.pop(),!0}has(e){return this.subscribers?this.subscribers.indexOf(e)!==-1:!1}forEach(e){if(this.subscribers)for(let s=0;s<this.subscribers.length;s++)e(this.subscribers[s],s)}forEachSafe(e,s){if(this.subscribers)for(let n=0;n<this.subscribers.length;n++)try{e(this.subscribers[n],n)}catch(i){s?s(i):console.error("[SubscriberManager] Error in subscriber callback:",i)}}get size(){return this.subscribers?.length??0}get hasSubscribers(){return this.subscribers!==null&&this.subscribers.length>0}clear(){this.subscribers=null}toArray(){return this.subscribers?[...this.subscribers]:[]}}class Ee{constructor(){this.pool=[],this.maxPoolSize=50,this.maxReusableCapacity=256,this.stats=v?{acquired:0,released:0,rejected:{frozen:0,tooLarge:0,poolFull:0}}:null}acquire(){return v&&this.stats&&this.stats.acquired++,this.pool.pop()??[]}release(e,s){if(!(s&&e===s)){if(Object.isFrozen(e)){v&&this.stats&&this.stats.rejected.frozen++;return}if(e.length>this.maxReusableCapacity){v&&this.stats&&this.stats.rejected.tooLarge++;return}if(this.pool.length>=this.maxPoolSize){v&&this.stats&&this.stats.rejected.poolFull++;return}e.length=0,this.pool.push(e),v&&this.stats&&this.stats.released++}}getStats(){if(!v||!this.stats)return null;const{acquired:e,released:s,rejected:n}=this.stats,i=n.frozen+n.tooLarge+n.poolFull;return{acquired:e,released:s,rejected:n,leaked:e-s-i,poolSize:this.pool.length}}reset(){this.pool.length=0,v&&this.stats&&(this.stats.acquired=0,this.stats.released=0,this.stats.rejected={frozen:0,tooLarge:0,poolFull:0})}}const y=Object.freeze([]),T=Object.freeze([]),D=Object.freeze([]),F=new Ee,q=new Ee,x=new Ee;function _e(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in t&&typeof t.subscribe=="function"}function xe(t){if(A.enabled&&(t==null||typeof t=="object")){const e=A.getDebugType(t);if(e)return e==="computed"}return _e(t)&&"invalidate"in t&&typeof t.invalidate=="function"}function Fe(t){return t!=null&&typeof t.then=="function"}function tt(t){return typeof t=="object"&&t!==null}function st(t){return(typeof t=="object"||typeof t=="function")&&t!==null&&typeof t.addDependency=="function"}function nt(t){return typeof t=="function"&&typeof t.addDependency!="function"}function it(t){return tt(t)&&typeof t.execute=="function"}function Me(t,e,s,n){if(e){if(st(e)){e.addDependency(t);return}if(nt(e)){s.add(e);return}it(e)&&n.add(e)}}function rt(t,e,s,n){if(e!==y&&s!==T)for(let r=0;r<e.length;r++){const o=e[r];o&&(o._tempUnsub=s[r])}const i=q.acquire();i.length=t.length;for(let r=0;r<t.length;r++){const o=t[r];o&&(o._tempUnsub?(i[r]=o._tempUnsub,o._tempUnsub=void 0):(A.checkCircular(o,n),i[r]=o.subscribe(n)))}if(e!==y)for(let r=0;r<e.length;r++){const o=e[r];o?._tempUnsub&&(o._tempUnsub(),o._tempUnsub=void 0)}return s!==T&&q.release(s),i}class ot extends Ue{constructor(e,s){super(),this._functionSubscribersStore=null,this._objectSubscribersStore=null,this._value=e,s&&(this.flags|=Y.SYNC),A.attachDebugInfo(this,"atom",this.id)}get _functionSubscribers(){return this._functionSubscribersStore||(this._functionSubscribersStore=new ce),this._functionSubscribersStore}get _objectSubscribers(){return this._objectSubscribersStore||(this._objectSubscribersStore=new ce),this._objectSubscribersStore}get value(){const e=X.current;return e&&Me(this,e,this._functionSubscribers,this._objectSubscribers),this._value}set value(e){if(Object.is(this._value,e))return;const s=this._value;this._value=e,this.version=this.version+1&z;const n=this._functionSubscribersStore?.hasSubscribers,i=this._objectSubscribersStore?.hasSubscribers;(n||i)&&this._scheduleNotification(s)}_scheduleNotification(e){if(this.flags&Y.NOTIFICATION_SCHEDULED||(this._pendingOldValue=e,this.flags|=Y.NOTIFICATION_SCHEDULED),this.flags&Y.SYNC&&!Z.isBatching){this._flushNotifications();return}this._notifyTask||(this._notifyTask=()=>this._flushNotifications()),Z.schedule(this._notifyTask)}_flushNotifications(){if(!(this.flags&Y.NOTIFICATION_SCHEDULED))return;const e=this._pendingOldValue,s=this._value;this._pendingOldValue=void 0,this.flags&=-3,this._notifySubscribers(s,e)}_notifySubscribers(e,s){this._functionSubscribersStore&&this._functionSubscribersStore.forEachSafe(n=>n(e,s)),this._objectSubscribersStore&&this._objectSubscribersStore.forEachSafe(n=>n.execute())}peek(){return this._value}dispose(){this._functionSubscribersStore?.clear(),this._objectSubscribersStore?.clear(),this._value=void 0,this._notifyTask=void 0}}function je(t,e={}){return new ot(t,e.sync??!1)}function K(t,e,s){if(t instanceof TypeError)return new e(`Type error (${s}): ${t.message}`,t);if(t instanceof ReferenceError)return new e(`Reference error (${s}): ${t.message}`,t);if(t instanceof w)return t;const n=t instanceof Error?t.message:String(t),i=t instanceof Error?t:null;return new e(`Unexpected error (${s}): ${n}`,i)}const $e=d.RESOLVED|d.PENDING|d.REJECTED,he=Array($e+1).fill(ue.IDLE);he[d.RESOLVED]=ue.RESOLVED;he[d.PENDING]=ue.PENDING;he[d.REJECTED]=ue.REJECTED;class Le extends Ue{constructor(e,s={}){if(typeof e!="function")throw new H(g.COMPUTED_MUST_BE_FUNCTION);if(super(),this._cachedErrors=null,this._errorCacheEpoch=-1,this._value=void 0,this.flags=d.DIRTY|d.IDLE,this._error=null,this._promiseId=0,this._equal=s.equal??Object.is,this._fn=e,this._defaultValue="defaultValue"in s?s.defaultValue:Ce,this._hasDefaultValue=this._defaultValue!==Ce,this._onError=s.onError??null,this.MAX_PROMISE_ID=Number.MAX_SAFE_INTEGER-1,this._functionSubscribersStore=new ce,this._objectSubscribersStore=new ce,this._dependencies=y,this._dependencyVersions=D,this._unsubscribes=T,this._notifyJob=()=>{this._functionSubscribersStore.forEachSafe(n=>n(),n=>console.error(n)),this._objectSubscribersStore.forEachSafe(n=>n.execute(),n=>console.error(n))},this._trackable=Object.assign(()=>this._markDirty(),{addDependency:n=>{}}),A.attachDebugInfo(this,"computed",this.id),A.enabled){const n=this;n.subscriberCount=()=>this._functionSubscribersStore.size+this._objectSubscribersStore.size,n.isDirty=()=>this._isDirty(),n.dependencies=this._dependencies,n.stateFlags=this._getFlagsAsString()}if(s.lazy===!1)try{this._recompute()}catch{}}get _functionSubscribers(){return this._functionSubscribersStore}get _objectSubscribers(){return this._objectSubscribersStore}get value(){return this._registerTracking(),this._computeValue()}peek(){return this._value}get state(){return this._registerTracking(),this._getAsyncState()}get hasError(){if(this._registerTracking(),this._isRejected())return!0;for(let e=0;e<this._dependencies.length;e++){const s=this._dependencies[e];if(s&&"hasError"in s&&s.hasError)return!0}return!1}get isValid(){return!this.hasError}get errors(){if(this._registerTracking(),!this.hasError)return Qe;const e=Ke();if(this._errorCacheEpoch===e&&this._cachedErrors!==null)return this._cachedErrors;const s=new Set;this._error&&s.add(this._error);for(let n=0;n<this._dependencies.length;n++){const i=this._dependencies[n];if(i&&"errors"in i){const r=i.errors;for(let o=0;o<r.length;o++){const c=r[o];c&&s.add(c)}}}return this._cachedErrors=Object.freeze([...s]),this._errorCacheEpoch=e,this._cachedErrors}get lastError(){return this._registerTracking(),this._error}get isPending(){return this._registerTracking(),this._isPending()}get isResolved(){return this._registerTracking(),this._isResolved()}invalidate(){this._markDirty(),this._dependencyVersions!==D&&(x.release(this._dependencyVersions),this._dependencyVersions=D),this._errorCacheEpoch=-1,this._cachedErrors=null}dispose(){if(this._unsubscribes!==T){for(let e=0;e<this._unsubscribes.length;e++){const s=this._unsubscribes[e];s&&s()}q.release(this._unsubscribes),this._unsubscribes=T}this._dependencies!==y&&(F.release(this._dependencies),this._dependencies=y),this._dependencyVersions!==D&&(x.release(this._dependencyVersions),this._dependencyVersions=D),this._functionSubscribersStore.clear(),this._objectSubscribersStore.clear(),this.flags=d.DIRTY|d.IDLE,this._error=null,this._value=void 0,this._promiseId=(this._promiseId+1)%this.MAX_PROMISE_ID,this._cachedErrors=null,this._errorCacheEpoch=-1}_isDirty(){return(this.flags&d.DIRTY)!==0}_setDirty(){this.flags|=d.DIRTY}_clearDirty(){this.flags&=-2}_isIdle(){return(this.flags&d.IDLE)!==0}_setIdle(){this.flags|=d.IDLE,this.flags&=-29}_isPending(){return(this.flags&d.PENDING)!==0}_setPending(){this.flags|=d.PENDING,this.flags&=-27}_isResolved(){return(this.flags&d.RESOLVED)!==0}_setResolved(){this.flags|=d.RESOLVED,this.flags&=-87}_isRejected(){return(this.flags&d.REJECTED)!==0}_setRejected(){this.flags|=d.REJECTED|d.HAS_ERROR,this.flags&=-15}_isRecomputing(){return(this.flags&d.RECOMPUTING)!==0}_setRecomputing(e){const s=d.RECOMPUTING;this.flags=this.flags&~s|-Number(e)&s}_getAsyncState(){return he[this.flags&$e]}_getFlagsAsString(){const e=[];return this._isDirty()&&e.push("DIRTY"),this._isIdle()&&e.push("IDLE"),this._isPending()&&e.push("PENDING"),this._isResolved()&&e.push("RESOLVED"),this._isRejected()&&e.push("REJECTED"),this._isRecomputing()&&e.push("RECOMPUTING"),e.join(" | ")}_computeValue(){return this._isRecomputing()?this._value:((this._isDirty()||this._isIdle())&&this._recompute(),this._isPending()?this._handlePending():this._isRejected()?this._handleRejected():this._value)}_recompute(){if(this._isRecomputing())return;this._setRecomputing(!0);const e=this._prepareComputationContext();let s=!1;try{const n=X.run(this._trackable,this._fn);this._commitDependencies(e),s=!0,Fe(n)?this._handleAsyncComputation(n):this._handleSyncResult(n)}catch(n){if(!s)try{this._commitDependencies(e),s=!0}catch(i){this._handleComputationError(i)}this._handleComputationError(n)}finally{this._cleanupContext(e,s),this._setRecomputing(!1)}}_prepareComputationContext(){const e=this._dependencies,s=this._dependencyVersions,n=F.acquire(),i=x.acquire(),r=we(),o={depCount:0},c=_=>{_._lastSeenEpoch!==r&&(_._lastSeenEpoch=r,o.depCount<n.length?(n[o.depCount]=_,i[o.depCount]=_.version):(n.push(_),i.push(_.version)),o.depCount++)},h=this._trackable.addDependency;return this._trackable.addDependency=c,{prevDeps:e,prevVersions:s,nextDeps:n,nextVersions:i,originalAdd:h,state:o}}_commitDependencies(e){const{nextDeps:s,nextVersions:n,state:i,prevDeps:r}=e;s.length=i.depCount,n.length=i.depCount,this._unsubscribes=rt(s,r,this._unsubscribes,this),this._dependencies=s,this._dependencyVersions=n}_cleanupContext(e,s){this._trackable.addDependency=e.originalAdd,s?(e.prevDeps!==y&&F.release(e.prevDeps),e.prevVersions!==D&&x.release(e.prevVersions)):(F.release(e.nextDeps),x.release(e.nextVersions))}_handleSyncResult(e){const s=!this._isResolved()||!this._equal(this._value,e);this.version=this.version+Number(s)&z,this._value=e,this._clearDirty(),this._setResolved(),this._error=null,this._setRecomputing(!1),this._cachedErrors=null,this._errorCacheEpoch=-1}_handleAsyncComputation(e){this._setPending(),this._clearDirty(),this._notifyJob(),this._promiseId=this._promiseId>=this.MAX_PROMISE_ID?1:this._promiseId+1;const s=this._promiseId;e.then(n=>{s===this._promiseId&&this._handleAsyncResolution(n)}).catch(n=>{s===this._promiseId&&this._handleAsyncRejection(n)})}_handleAsyncResolution(e){const s=!this._isResolved()||!this._equal(this._value,e);this.version=this.version+Number(s)&z,this._value=e,this._clearDirty(),this._setResolved(),this._error=null,this._setRecomputing(!1),this._cachedErrors=null,this._errorCacheEpoch=-1,this._notifyJob()}_handleAsyncRejection(e){const s=K(e,H,g.COMPUTED_ASYNC_COMPUTATION_FAILED),n=!this._isRejected();if(this.version=this.version+Number(n)&z,this._error=s,this._setRejected(),this._clearDirty(),this._setRecomputing(!1),this._onError)try{this._onError(s)}catch(i){console.error(g.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}this._notifyJob()}_handleComputationError(e){const s=K(e,H,g.COMPUTED_COMPUTATION_FAILED);if(this._error=s,this._setRejected(),this._clearDirty(),this._setRecomputing(!1),this._onError)try{this._onError(s)}catch(n){console.error(g.CALLBACK_ERROR_IN_ERROR_HANDLER,n)}throw s}_handlePending(){if(this._hasDefaultValue)return this._defaultValue;throw new H(g.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}_handleRejected(){if(this._error?.recoverable&&this._hasDefaultValue)return this._defaultValue;throw this._error}execute(){this._markDirty()}_markDirty(){this._isRecomputing()||this._isDirty()||(this._setDirty(),this._notifyJob())}_registerTracking(){Me(this,X.getCurrent(),this._functionSubscribersStore,this._objectSubscribersStore)}}Object.freeze(Le.prototype);function Pe(t,e={}){return new Le(t,e)}class ct extends Re{constructor(e,s={}){super(),this.run=()=>{if(this.isDisposed)throw new V(g.EFFECT_MUST_BE_FUNCTION);this._dependencyVersions!==D&&(x.release(this._dependencyVersions),this._dependencyVersions=D),this.execute()},this.dispose=()=>{if(!this.isDisposed){if(this._setDisposed(),this._safeCleanup(),this._unsubscribes!==T){for(let i=0;i<this._unsubscribes.length;i++){const r=this._unsubscribes[i];r&&r()}q.release(this._unsubscribes),this._unsubscribes=T}this._dependencies!==y&&(F.release(this._dependencies),this._dependencies=y),this._dependencyVersions!==D&&(x.release(this._dependencyVersions),this._dependencyVersions=D)}},this.addDependency=i=>{if(this.isExecuting&&this._nextDeps&&this._nextUnsubs&&this._nextVersions){const r=this._currentEpoch;if(i._lastSeenEpoch===r)return;i._lastSeenEpoch=r,this._nextDeps.push(i),this._nextVersions.push(i.version),i._tempUnsub?(this._nextUnsubs.push(i._tempUnsub),i._tempUnsub=void 0):this._subscribeTo(i)}},this.execute=()=>{if(this.isDisposed||this.isExecuting||!this._shouldExecute())return;this._checkInfiniteLoop(),this._setExecuting(!0),this._safeCleanup();const i=this._prepareEffectContext();let r=!1;try{const o=X.run(this,this._fn);this._commitEffect(i),r=!0,this._checkLoopWarnings(),Fe(o)?o.then(c=>{!this.isDisposed&&typeof c=="function"&&(this._cleanup=c)}).catch(c=>{this._handleExecutionError(c)}):this._cleanup=typeof o=="function"?o:null}catch(o){r=!0,this._handleExecutionError(o),this._cleanup=null}finally{this._cleanupEffect(i,r),this._setExecuting(!1)}},this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._fn=e,this._sync=s.sync??!1,this._maxExecutions=s.maxExecutionsPerSecond??B.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=s.maxExecutionsPerFlush??B.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=s.trackModifications??!1,this._cleanup=null,this._dependencies=y,this._dependencyVersions=D,this._unsubscribes=T,this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,this._onError=s.onError??null,this._historyPtr=0;const n=Number.isFinite(this._maxExecutions);this._historyCapacity=n?Math.min(this._maxExecutions+1,B.MAX_EXECUTIONS_PER_SECOND+1):0,this._history=v&&n&&this._historyCapacity>0?new Array(this._historyCapacity).fill(0):null,this._executionCount=0,A.attachDebugInfo(this,"effect",this.id)}_prepareEffectContext(){const e=this._dependencies,s=this._dependencyVersions,n=this._unsubscribes,i=F.acquire(),r=x.acquire(),o=q.acquire(),c=we();if(e!==y&&n!==T)for(let h=0;h<e.length;h++){const _=e[h];_&&(_._tempUnsub=n[h])}return this._nextDeps=i,this._nextVersions=r,this._nextUnsubs=o,this._currentEpoch=c,{prevDeps:e,prevVersions:s,prevUnsubs:n,nextDeps:i,nextVersions:r,nextUnsubs:o}}_commitEffect(e){const s=e.nextDeps.length;e.nextDeps.length=s,e.nextVersions.length=s,this._dependencies=e.nextDeps,this._dependencyVersions=e.nextVersions,this._unsubscribes=e.nextUnsubs}_cleanupEffect(e,s){if(this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,s){if(e.prevDeps!==y){for(let n=0;n<e.prevDeps.length;n++){const i=e.prevDeps[n];i?._tempUnsub&&(i._tempUnsub(),i._tempUnsub=void 0)}F.release(e.prevDeps)}e.prevUnsubs!==T&&q.release(e.prevUnsubs),e.prevVersions!==D&&x.release(e.prevVersions)}else{F.release(e.nextDeps),x.release(e.nextVersions);for(let n=0;n<e.nextUnsubs.length;n++)e.nextUnsubs[n]?.();if(q.release(e.nextUnsubs),e.prevDeps!==y)for(let n=0;n<e.prevDeps.length;n++){const i=e.prevDeps[n];i&&(i._tempUnsub=void 0)}}}_subscribeTo(e){try{const s=e.subscribe(()=>{this._trackModifications&&this.isExecuting&&(e._modifiedAtEpoch=this._currentEpoch),this._sync?this.execute():Z.schedule(this.execute)});this._nextUnsubs&&this._nextUnsubs.push(s)}catch(s){console.error(K(s,V,g.EFFECT_EXECUTION_FAILED)),this._nextUnsubs&&this._nextUnsubs.push(()=>{})}}get isDisposed(){return(this.flags&te.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&te.EXECUTING)!==0}_setDisposed(){this.flags|=te.DISPOSED}_setExecuting(e){const s=te.EXECUTING;this.flags=this.flags&~s|-Number(e)&s}_safeCleanup(){if(this._cleanup){try{this._cleanup()}catch(e){console.error(K(e,V,g.EFFECT_CLEANUP_FAILED))}this._cleanup=null}}_checkInfiniteLoop(){if(this._lastFlushEpoch!==re&&(this._lastFlushEpoch=re,this._executionsInEpoch=0),this._executionsInEpoch++,this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError("per-effect"),We()>B.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError("global"),this._executionCount++,this._history&&this._maxExecutions>0){const e=Date.now(),s=this._historyPtr,n=this._historyCapacity;this._history[s]=e;const i=(s+1)%n,r=this._history[i]??0;if(this._historyPtr=i,r>0&&e-r<Xe.ONE_SECOND_MS){const o=new V(`Effect executed ${n} times within 1 second. Infinite loop suspected`);if(this.dispose(),console.error(o),this._onError&&this._onError(o),v)throw o}}}_throwInfiniteLoopError(e){const s=new V(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${pe}`);throw this.dispose(),console.error(s),s}_shouldExecute(){if(this._dependencies===y||this._dependencyVersions===D)return!0;for(let e=0;e<this._dependencies.length;e++){const s=this._dependencies[e];if(s){if("value"in s)try{be(()=>s.value)}catch{return!0}if(s.version!==this._dependencyVersions[e])return!0}}return!1}_handleExecutionError(e){const s=K(e,V,g.EFFECT_EXECUTION_FAILED);console.error(s),this._onError&&this._onError(s)}_checkLoopWarnings(){if(this._trackModifications&&A.enabled){const e=this._dependencies;for(let s=0;s<e.length;s++){const n=e[s];n&&n._modifiedAtEpoch===this._currentEpoch&&A.warn(!0,`Effect is reading a dependency (${A.getDebugName(n)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function m(t,e={}){if(typeof t!="function")throw new V(g.EFFECT_MUST_BE_FUNCTION);const s=new ct(t,e);return s.execute(),s}function p(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in t}function k(t){return p(t)?t.value:t}function ae(t){if(!t)return"unknown";const e="jquery"in t?t[0]:t;if(!e)return"unknown";if(e.id)return`#${e.id}`;if(e.className){const s=String(e.className).split(/\s+/).filter(Boolean).join(".");return s?`${e.tagName.toLowerCase()}.${s}`:e.tagName.toLowerCase()}return e.tagName.toLowerCase()}function ut(){if(typeof window<"u"){const t=window.__ATOM_DEBUG__;if(typeof t=="boolean")return t}try{if(typeof process<"u"&&process.env&&process.env.NODE_ENV==="development")return!0}catch{}return!1}let P=ut();const l={get enabled(){return P},set enabled(t){P=t},log(t,...e){P&&console.log(`[atom-effect-jquery] ${t}:`,...e)},atomChanged(t,e,s){P&&console.log(`[atom-effect-jquery] Atom "${t||"anonymous"}" changed:`,e,"→",s)},domUpdated(t,e,s){if(!P)return;const n=ae(t);console.log(`[atom-effect-jquery] DOM updated: ${n}.${e} =`,s),ht(t)},cleanup(t){P&&console.log(`[atom-effect-jquery] Cleanup: ${t}`)},warn(...t){P&&console.warn("[atom-effect-jquery]",...t)}};function ht(t){const e=t[0];if(!e||!document.contains(e))return;const s="atom_debug_timer",n="atom_debug_cleanup_timer",i="atom_debug_org_style";clearTimeout(t.data(s)),clearTimeout(t.data(n)),t.data(i)||t.data(i,{outline:t.css("outline"),outlineOffset:t.css("outline-offset"),transition:t.css("transition")}),t.css({outline:"2px solid rgba(255, 68, 68, 0.8)","outline-offset":"1px",transition:"none"});const r=setTimeout(()=>{const o=t.data(i);t.css("transition","outline 0.5s ease-out"),requestAnimationFrame(()=>{t.css({outline:o?.outline||"","outline-offset":o?.outlineOffset||""});const c=setTimeout(()=>{t.css("transition",o?.transition||""),t.removeData(s),t.removeData(n),t.removeData(i)},500);t.data(n,c)})},100);t.data(s,r)}const at=new WeakMap;function Ve(t,e={}){const s=je(t,e);return e.name&&at.set(s,{name:e.name}),s}Object.defineProperty(Ve,"debug",{get(){return l.enabled},set(t){l.enabled=t}});function lt(){return new Promise(t=>setTimeout(t,0))}u.extend({atom:Ve,computed:Pe,effect:m,batch:ke,untracked:be,isAtom:_e,isComputed:xe,isReactive:t=>_e(t)||xe(t),nextTick:lt});function Be(){return{timeoutId:null,phase:"idle",hasFocus:!1}}function qe(t,e,s={}){const{debounce:n,event:i="input",parse:r=I=>I,format:o=I=>String(I??"")}=s,c=Be(),h=()=>{c.phase="composing"},_=()=>{c.phase="idle",N()};t.on("compositionstart",h),t.on("compositionend",_);const S=()=>{c.hasFocus=!0},Q=()=>{c.hasFocus=!1;const I=o(e.value);t.val()!==I&&t.val(I)};t.on("focus",S),t.on("blur",Q);const N=()=>{c.phase==="idle"&&(c.phase="syncing-to-atom",e.value=r(t.val()),c.phase="idle")},O=()=>{c.phase==="idle"&&(n?(c.timeoutId&&clearTimeout(c.timeoutId),c.timeoutId=window.setTimeout(N,n)):N())};return t.on(i,O),t.on("change",O),{effect:()=>{const I=o(e.value),G=t.val();if(G!==I){if(c.hasFocus&&r(G)===e.value)return;c.phase="syncing-to-dom",t.val(I),l.domUpdated(t,"val",I),c.phase="idle"}},cleanup:()=>{t.off(i,O),t.off("change",O),t.off("compositionstart",h),t.off("compositionend",_),t.off("focus",S),t.off("blur",Q),c.timeoutId&&clearTimeout(c.timeoutId)}}}class ft{effects=new WeakMap;cleanups=new WeakMap;boundElements=new WeakSet;preservedNodes=new WeakSet;keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}trackEffect(e,s){let n=this.effects.get(e);n||(n=[],this.effects.set(e,n),this.boundElements.add(e)),n.push(s)}trackCleanup(e,s){let n=this.cleanups.get(e);n||(n=[],this.cleanups.set(e,n),this.boundElements.add(e)),n.push(s)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.delete(e))return;l.cleanup(ae(e));const s=this.effects.get(e);if(s){this.effects.delete(e);for(let i=0,r=s.length;i<r;i++){const o=s[i];if(o)try{o.dispose()}catch(c){l.warn("Effect dispose error:",c)}}}const n=this.cleanups.get(e);if(n){this.cleanups.delete(e);for(let i=0,r=n.length;i<r;i++){const o=n[i];if(o)try{o()}catch(c){l.warn("Cleanup error:",c)}}}}cleanupTree(e){const s=e.querySelectorAll("*");for(let n=0,i=s.length;n<i;n++){const r=s[n];r&&this.boundElements.has(r)&&this.cleanup(r)}this.cleanup(e)}}const f=new ft;let W=null;function ze(t=document.body){W||(W=new MutationObserver(e=>{for(let s=0,n=e.length;s<n;s++){const i=e[s];if(!i)continue;const r=i.removedNodes;for(let o=0,c=r.length;o<c;o++){const h=r[o];h&&(f.isKept(h)||h.isConnected||h.nodeType===1&&f.cleanupTree(h))}}}),W.observe(t,{childList:!0,subtree:!0}))}function dt(){W?.disconnect(),W=null}u.fn.atomText=function(t,e){if(p(t))return this.each(function(){const n=u(this),i=m(()=>{const r=t.value,o=e?e(r):String(r??"");n.text(o),l.domUpdated(n,"text",o)});f.trackEffect(this,i)});const s=e?e(t):String(t??"");return this.text(s)};u.fn.atomHtml=function(t){return p(t)?this.each(function(){const e=u(this),s=m(()=>{const n=String(t.value??"");e.html(n),l.domUpdated(e,"html",n)});f.trackEffect(this,s)}):this.html(String(t??""))};u.fn.atomClass=function(t,e){return p(e)?this.each(function(){const s=u(this),n=m(()=>{const i=!!e.value;s.toggleClass(t,i),l.domUpdated(s,`class.${t}`,i)});f.trackEffect(this,n)}):this.toggleClass(t,!!e)};u.fn.atomCss=function(t,e,s){if(p(e))return this.each(function(){const i=u(this),r=m(()=>{const o=e.value,c=s?`${o}${s}`:o;i.css(t,c),l.domUpdated(i,`css.${t}`,c)});f.trackEffect(this,r)});const n=s?`${e}${s}`:e;return this.css(t,n)};u.fn.atomAttr=function(t,e){return p(e)?this.each(function(){const s=u(this),n=m(()=>{const i=e.value;i==null||i===!1?s.removeAttr(t):i===!0?s.attr(t,t):s.attr(t,String(i)),l.domUpdated(s,`attr.${t}`,i)});f.trackEffect(this,n)}):e==null||e===!1?this.removeAttr(t):e===!0?this.attr(t,t):this.attr(t,String(e))};u.fn.atomProp=function(t,e){return p(e)?this.each(function(){const s=u(this),n=m(()=>{const i=e.value;s.prop(t,i),l.domUpdated(s,`prop.${t}`,i)});f.trackEffect(this,n)}):this.prop(t,e)};u.fn.atomShow=function(t){return p(t)?this.each(function(){const e=u(this),s=m(()=>{const n=!!t.value;e.toggle(n),l.domUpdated(e,"show",n)});f.trackEffect(this,s)}):this.toggle(!!t)};u.fn.atomHide=function(t){return p(t)?this.each(function(){const e=u(this),s=m(()=>{const n=!t.value;e.toggle(n),l.domUpdated(e,"hide",!n)});f.trackEffect(this,s)}):this.toggle(!t)};u.fn.atomVal=function(t,e={}){return this.each(function(){const s=u(this),{effect:n,cleanup:i}=qe(s,t,e),r=m(n);f.trackEffect(this,r),f.trackCleanup(this,i)})};u.fn.atomChecked=function(t){return this.each(function(){const e=u(this);let s=!1;const n=()=>{s||(t.value=!!e.prop("checked"))};e.on("change",n),f.trackCleanup(this,()=>e.off("change",n));const i=m(()=>{s=!0;const r=!!t.value;e.prop("checked",r),l.domUpdated(e,"checked",r),s=!1});f.trackEffect(this,i)})};u.fn.atomOn=function(t,e){return this.each(function(){const s=u(this);s.on(t,e),f.trackCleanup(this,()=>s.off(t,e))})};u.fn.atomUnbind=function(){return this.each(function(){f.cleanupTree(this)})};function _t(t,e){p(e)?t.effects.push(()=>{const s=String(k(e)??"");t.$el.text(s),l.domUpdated(t.$el,"text",s)}):t.$el.text(String(e??""))}function pt(t,e){p(e)?t.effects.push(()=>{const s=String(k(e)??"");t.$el.html(s),l.domUpdated(t.$el,"html",s)}):t.$el.html(String(e??""))}function bt(t,e){for(const[s,n]of Object.entries(e))p(n)?t.effects.push(()=>{const i=!!k(n);t.$el.toggleClass(s,i),l.domUpdated(t.$el,`class.${s}`,i)}):t.$el.toggleClass(s,!!n)}function Et(t,e){for(const[s,n]of Object.entries(e))if(Array.isArray(n)){const[i,r]=n;p(i)?t.effects.push(()=>{const o=`${k(i)}${r}`;t.$el.css(s,o),l.domUpdated(t.$el,`css.${s}`,o)}):t.$el.css(s,`${i}${r}`)}else p(n)?t.effects.push(()=>{const i=k(n);t.$el.css(s,i),l.domUpdated(t.$el,`css.${s}`,i)}):t.$el.css(s,n)}function gt(t,e){for(const[s,n]of Object.entries(e)){const i=r=>{r==null||r===!1?t.$el.removeAttr(s):r===!0?t.$el.attr(s,s):t.$el.attr(s,String(r)),l.domUpdated(t.$el,`attr.${s}`,r)};p(n)?t.effects.push(()=>i(k(n))):i(n)}}function mt(t,e){for(const[s,n]of Object.entries(e))p(n)?t.effects.push(()=>{const i=k(n);t.$el.prop(s,i),l.domUpdated(t.$el,`prop.${s}`,i)}):t.$el.prop(s,n)}function St(t,e){p(e)?t.effects.push(()=>{const s=!!k(e);t.$el.toggle(s),l.domUpdated(t.$el,"show",s)}):t.$el.toggle(!!e)}function yt(t,e){p(e)?t.effects.push(()=>{const s=!k(e);t.$el.toggle(s),l.domUpdated(t.$el,"hide",!s)}):t.$el.toggle(!e)}function Dt(t,e){const s=Array.isArray(e)?e[0]:e,n=Array.isArray(e)?e[1]:{},{effect:i,cleanup:r}=qe(t.$el,s,n);t.effects.push(i),t.trackCleanup(r)}function It(t,e){const s=Be(),n=()=>{s.phase==="idle"&&(e.value=t.$el.prop("checked"))};t.$el.on("change",n),t.trackCleanup(()=>t.$el.off("change",n)),t.effects.push(()=>{s.phase="syncing-to-dom",t.$el.prop("checked",e.value),l.domUpdated(t.$el,"checked",e.value),s.phase="idle"})}function Ct(t,e){for(const[s,n]of Object.entries(e)){const i=function(r){n.call(this,r)};t.$el.on(s,i),t.trackCleanup(()=>t.$el.off(s,i))}}u.fn.atomBind=function(t){return this.each(function(){const e=u(this),s=[],n={$el:e,el:this,effects:s,trackCleanup:i=>f.trackCleanup(this,i)};t.text!==void 0&&_t(n,t.text),t.html!==void 0&&pt(n,t.html),t.class&&bt(n,t.class),t.css&&Et(n,t.css),t.attr&&gt(n,t.attr),t.prop&&mt(n,t.prop),t.show!==void 0&&St(n,t.show),t.hide!==void 0&&yt(n,t.hide),t.val!==void 0&&Dt(n,t.val),t.checked!==void 0&&It(n,t.checked),t.on&&Ct(n,t.on),s.forEach(i=>{const r=m(i);f.trackEffect(this,r)})})};function vt(t){const e=t.length;if(e===0)return new Int32Array(0);const s=new Int32Array(e),n=new Int32Array(e);let i=0;for(let o=0;o<e;o++){const c=t[o];if(c===-1)continue;if(i===0||t[n[i-1]]<c){s[o]=i>0?n[i-1]:-1,n[i++]=o;continue}let h=0,_=i-1;for(;h<_;){const S=h+_>>>1;t[n[S]]<c?h=S+1:_=S}c<t[n[h]]&&(h>0&&(s[o]=n[h-1]),n[h]=o)}const r=new Int32Array(i);for(let o=i-1,c=n[i-1];o>=0;o--)r[o]=c,c=s[c];return r}u.fn.atomList=function(t,e){const{key:s,render:n,bind:i,update:r,onAdd:o,onRemove:c,empty:h}=e,_=typeof s=="function"?s:S=>S[s];return this.each(function(){const S=u(this),Q=ae(this),N=new Map,O=new Set;let M=[],j=null;const I=m(()=>{const G=t.value,R=G.length;if(R===0?h&&!j&&(j=u(h).appendTo(S)):j&&(j.remove(),j=null),R===0&&N.size===0){M=[];return}l.log("list",`${Q} updating with ${R} items`);const ee=new Array(R),me=new Set;for(let a=0;a<R;a++){const b=G[a],C=_(b,a);ee[a]=C,me.add(C)}for(const[a,b]of N){if(me.has(a)||O.has(a))continue;const C=()=>{b.$el.remove();const E=b.$el[0];E&&f.cleanup(E),O.delete(a),l.log("list",`${Q} removed item:`,a)};if(N.delete(a),O.add(a),c){const E=c(b.$el);E instanceof Promise?E.then(C):C()}else C()}if(R===0){M=[];return}const Se=new Map;for(let a=0;a<M.length;a++){const b=M[a];b!==void 0&&Se.set(b,a)}const ye=new Int32Array(R);for(let a=0;a<R;a++){const b=ee[a];ye[a]=b!==void 0?Se.get(b)??-1:-1}const De=vt(ye);let le=De.length-1,U=null;for(let a=R-1;a>=0;a--){const b=ee[a],C=G[a],E=N.get(b);if(E){E.item=C;const $=E.$el[0];if(!$)continue;r&&r(E.$el,C,a),le>=0&&De[le]===a?(le--,$.nextSibling!==U&&(U?E.$el.insertBefore(U):E.$el.appendTo(S))):U?E.$el.insertBefore(U):E.$el.appendTo(S),U=$}else{const $=n(C,a),L=($ instanceof Element,u($));N.set(b,{$el:L,item:C}),U?L.insertBefore(U):L.appendTo(S),i&&i(L,C,a),o&&o(L),l.log("list",`${Q} added item:`,b),U=L[0]||null}}M=ee});f.trackEffect(this,I),f.trackCleanup(this,()=>{N.clear(),O.clear(),M=[],j?.remove()})})};const ie=new WeakMap;u.fn.atomMount=function(t,e={}){return this.each(function(){const s=u(this),n=ae(this),i=ie.get(this);i&&(l.log("mount",`${n} unmounting existing component`),i()),l.log("mount",`${n} mounting component`);let r;try{r=t(s,e)}catch(h){console.error("[atom-effect-jquery] Mount error:",h);return}let o=!1;const c=()=>{if(!o){if(o=!0,l.log("mount",`${n} full cleanup`),typeof r=="function")try{r()}catch{}f.cleanupTree(this),ie.delete(this)}};ie.set(this,c),f.trackCleanup(this,c)})};u.fn.atomUnmount=function(){return this.each(function(){ie.get(this)?.()})};const J=new WeakMap;let Ae=!1;function ge(){if(Ae)return;Ae=!0;const t=u.fn.on,e=u.fn.off,s=u.fn.remove,n=u.fn.empty,i=u.fn.detach;u.fn.remove=function(r){return(r?this.filter(r):this).each(function(){f.cleanupTree(this)}),s.call(this,r)},u.fn.empty=function(){return this.each(function(){this.querySelectorAll("*").forEach(o=>f.cleanup(o))}),n.call(this)},u.fn.detach=function(r){return(r?this.filter(r):this).each(function(){f.keep(this)}),i.call(this,r)},u.fn.on=function(...r){let o=-1;for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){o=c;break}if(o!==-1){const c=r[o];let h;J.has(c)?h=J.get(c):(h=function(..._){return c.apply(this,_)},J.set(c,h)),r[o]=h}return t.apply(this,r)},u.fn.off=function(...r){let o=-1;for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){o=c;break}if(o!==-1){const c=r[o];J.has(c)&&(r[o]=J.get(c))}return e.apply(this,r)}}const Nt=ge;ge();u(()=>{ze(document.body)});exports.default=u;exports.atom=je;exports.batch=ke;exports.computed=Pe;exports.disableAutoCleanup=dt;exports.effect=m;exports.enableAutoCleanup=ze;exports.enablejQueryBatching=Nt;exports.enablejQueryOverrides=ge;exports.registry=f;exports.untracked=be;
2
2
  //# sourceMappingURL=index.cjs.map