@but212/atom-effect-jquery 0.16.0 → 0.16.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/README.md CHANGED
@@ -15,7 +15,7 @@ npm install @but212/atom-effect-jquery jquery
15
15
 
16
16
  ```html
17
17
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
18
- <script src="https://cdn.jsdelivr.net/npm/@but212/atom-effect-jquery@latest"></script>
18
+ <script src="https://cdn.jsdelivr.net/npm/@but212/atom-effect-jquery@0.16.1"></script>
19
19
  ```
20
20
 
21
21
  ## Basic Usage
@@ -1,2 +1,2 @@
1
- (function(D,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("jquery")):typeof define=="function"&&define.amd?define(["exports","jquery"],l):(D=typeof globalThis<"u"?globalThis:D||self,l(D.AtomEffectJQuery={},D.jQuery))})(this,(function(D,l){"use strict";const st={ONE_SECOND_MS:1e3},ce={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},w={DISPOSED:1,HAS_FN_SUBS:2,HAS_OBJ_SUBS:4},x={...w,EXECUTING:8},f={...w,DIRTY:8,IDLE:16,PENDING:32,RESOLVED:64,REJECTED:128,RECOMPUTING:256,HAS_ERROR:512},L={...w,SYNC:8,NOTIFICATION_SCHEDULED:16},z={MAX_EXECUTIONS_PER_SECOND:1e3,MAX_EXECUTIONS_PER_EFFECT:100,MAX_EXECUTIONS_PER_FLUSH:1e4,MAX_FLUSH_ITERATIONS:1e3,MIN_FLUSH_ITERATIONS:10,BATCH_QUEUE_SHRINK_THRESHOLD:1e3},xe={MAX_DEPENDENCIES:1e3,WARN_INFINITE_LOOP:!0},K=1073741823,Z=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production",it=Object.freeze([]);class q extends Error{constructor(e,t=null,s=!0){super(e),this.name="AtomError",this.cause=t,this.recoverable=s,this.timestamp=new Date}}class M extends q{constructor(e,t=null){super(e,t,!0),this.name="ComputedError"}}class $ extends q{constructor(e,t=null){super(e,t,!1),this.name="EffectError"}}class ue extends q{constructor(e,t=null){super(e,t,!1),this.name="SchedulerError"}}const I={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",COMPUTED_CIRCULAR_DEPENDENCY:"Circular dependency detected during computation",COMPUTED_DISPOSED:"Cannot access a disposed computed",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",EFFECT_DISPOSED:"Cannot run a disposed effect",LARGE_DEPENDENCY_GRAPH:n=>`Large dependency graph detected: ${n} dependencies`,CALLBACK_ERROR_IN_ERROR_HANDLER:"Error occurred during onError callback execution"},be=Symbol("debugName"),rt=Symbol("id"),Se=Symbol("type"),ye=Symbol("noDefaultValue");function ot(n){return"dependencies"in n&&Array.isArray(n.dependencies)}function ke(n,e,t){if(!t.has(n.id)){if(t.add(n.id),n===e)throw new M("Indirect circular dependency detected");if(ot(n)){const s=n.dependencies;for(let i=0;i<s.length;i++){const r=s[i];r&&ke(r,e,t)}}}}const F={enabled:typeof process<"u"&&process.env?.NODE_ENV==="development",maxDependencies:xe.MAX_DEPENDENCIES,warnInfiniteLoop:xe.WARN_INFINITE_LOOP,warn(n,e){this.enabled&&n&&console.warn(`[Atom Effect] ${e}`)},checkCircular(n,e){if(n===e)throw new M("Direct circular dependency detected");this.enabled&&ke(n,e,new Set)},attachDebugInfo(n,e,t){if(!this.enabled)return;const s=n;s[be]=`${e}_${t}`,s[rt]=t,s[Se]=e},getDebugName(n){if(n!=null&&be in n)return n[be]},getDebugType(n){if(n!=null&&Se in n)return n[Se]}};let ct=1;const ut=()=>ct++;class Le{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=-1,this._modifiedAtEpoch=-1,this.id=ut()&K,this._tempUnsub=void 0}}class Fe extends Le{subscribe(e){if(typeof e=="function")return this._addSubscriber(this._fnSubs,e,w.HAS_FN_SUBS);if(e!==null&&typeof e=="object"&&"execute"in e)return this._addSubscriber(this._objSubs,e,w.HAS_OBJ_SUBS);throw new q(I.ATOM_SUBSCRIBER_MUST_BE_FUNCTION)}_addSubscriber(e,t,s){return e.indexOf(t)!==-1?(Z&&console.warn("Attempted to subscribe the same listener twice. Ignoring duplicate subscription."),()=>{}):(e.push(t),this.flags|=s,()=>{const i=e.indexOf(t);if(i===-1)return;const r=e.pop();i<e.length&&(e[i]=r),e.length===0&&(this.flags&=~s)})}subscriberCount(){return this._fnSubs.length+this._objSubs.length}_notifySubscribers(e,t){const s=this.flags;if(s&(w.HAS_FN_SUBS|w.HAS_OBJ_SUBS)){if(s&w.HAS_FN_SUBS){const i=this._fnSubs;for(let r=0;r<i.length;r++)try{i[r](e,t)}catch(o){this._handleNotifyError(o)}}if(s&w.HAS_OBJ_SUBS){const i=this._objSubs;for(let r=0;r<i.length;r++)try{i[r].execute()}catch(o){this._handleNotifyError(o)}}}}_handleNotifyError(e){console.error(new q(I.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,e))}}class lt{constructor(){this.frozen=0,this.tooLarge=0,this.poolFull=0}}class ht{constructor(){this.acquired=0,this.released=0,this.rejected=new lt}}class Ie{constructor(){this.pool=[],this.maxPoolSize=50,this.maxReusableCapacity=256,this.stats=Z?new ht:null}acquire(){const e=this.stats;return e&&e.acquired++,this.pool.pop()??[]}release(e,t){const s=this.stats;if(t&&e===t)return;if(Object.isFrozen(e)){s&&s.rejected.frozen++;return}if(e.length>this.maxReusableCapacity){s&&s.rejected.tooLarge++;return}const i=this.pool;if(i.length>=this.maxPoolSize){s&&s.rejected.poolFull++;return}e.length=0,i.push(e),s&&s.released++}getStats(){const e=this.stats;if(!e)return null;const{acquired:t,released:s,rejected:i}=e,{frozen:r,tooLarge:o,poolFull:c}=i;return{acquired:t,released:s,rejected:{frozen:r,tooLarge:o,poolFull:c},leaked:t-s-(r+o+c),poolSize:this.pool.length}}reset(){this.pool.length=0;const e=this.stats;e&&(e.acquired=0,e.released=0,e.rejected.frozen=0,e.rejected.tooLarge=0,e.rejected.poolFull=0)}}const v=Object.freeze([]),X=Object.freeze([]),R=Object.freeze([]),G=new Ie,ee=new Ie,B=new Ie;function Q(n,e,t,s){if(e!=null){if(typeof e.addDependency=="function"){e.addDependency(n);return}if(typeof e=="function"){const i=e;t.indexOf(i)===-1&&(t.push(i),n.flags|=w.HAS_FN_SUBS);return}if(typeof e.execute=="function"){const i=e;s.indexOf(i)===-1&&(s.push(i),n.flags|=w.HAS_OBJ_SUBS)}}}function at(n,e,t,s){const i=e.length;if(i>0)for(let c=0;c<i;c++){const u=e[c];u&&(u._tempUnsub=t[c])}const r=n.length,o=ee.acquire();o.length=r;for(let c=0;c<r;c++){const u=n[c];if(!u)continue;const h=u._tempUnsub;h?(o[c]=h,u._tempUnsub=void 0):(F.checkCircular(u,s),o[c]=u.subscribe(s))}if(i>0)for(let c=0;c<i;c++){const u=e[c];if(u){const h=u._tempUnsub;h&&(h(),u._tempUnsub=void 0)}}return t!==X&&ee.release(t),o}let le=0;function Pe(){return le=le+1&K||1,le}function ft(){return le}let Ce=0,De=0,he=!1;function Me(){return he?(Z&&console.warn("Warning: startFlush() called during flush - ignored to prevent infinite loop detection bypass"),!1):(he=!0,Ce=Ce+1&K||1,De=0,!0)}function Be(){he=!1}function dt(){return he?++De:0}class _t{constructor(){this._queueBuffer=[[],[]],this._bufferIndex=0,this._size=0,this._epoch=0,this._isProcessing=!1,this._isBatching=!1,this._batchDepth=0,this._batchQueue=[],this._batchQueueSize=0,this._isFlushingSync=!1,this._maxFlushIterations=z.MAX_FLUSH_ITERATIONS}get phase(){return this._isProcessing||this._isFlushingSync?2:this._isBatching?1:0}get queueSize(){return this._size}get isBatching(){return this._isBatching}schedule(e){if(Z&&typeof e!="function")throw new ue("Scheduler callback must be a function");const t=this._epoch;if(e._nextEpoch===t)return;if(e._nextEpoch=t,this._isBatching||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=e;return}const s=this._bufferIndex,i=this._size;this._queueBuffer[s][i]=e,this._size=i+1,this._isProcessing||this.flush()}flush(){this._isProcessing||this._size===0||(this._isProcessing=!0,queueMicrotask(()=>{try{if(this._size===0)return;const e=Me();this._drainQueue(),e&&Be()}finally{this._isProcessing=!1,this._size>0&&!this._isBatching&&this.flush()}}))}flushSync(){this._isFlushingSync=!0;const e=Me();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=!1,e&&Be()}}_mergeBatchQueue(){const e=this._batchQueueSize;if(e===0)return;const t=++this._epoch,s=this._batchQueue,i=this._queueBuffer[this._bufferIndex];let r=this._size;for(let o=0;o<e;o++){const c=s[o];c._nextEpoch!==t&&(c._nextEpoch=t,i[r++]=c)}this._size=r,this._batchQueueSize=0,s.length>z.BATCH_QUEUE_SHRINK_THRESHOLD&&(s.length=0)}_drainQueue(){let e=0;const t=this._maxFlushIterations;for(;this._size>0;){if(++e>t){this._handleFlushOverflow();return}this._processQueue(),this._mergeBatchQueue()}}_processQueue(){const e=this._bufferIndex,t=this._queueBuffer[e],s=this._size;this._bufferIndex=e^1,this._size=0,this._epoch++,this._processJobs(t,s)}_handleFlushOverflow(){console.error(new ue(`Maximum flush iterations (${this._maxFlushIterations}) exceeded. Possible infinite loop.`)),this._size=0,this._queueBuffer[this._bufferIndex].length=0,this._batchQueueSize=0}_processJobs(e,t){for(let s=0;s<t;s++)try{const i=e[s];i&&i()}catch(i){console.error(new ue("Error occurred during scheduler execution",i))}e.length=0}startBatch(){this._batchDepth++,this._isBatching=!0}endBatch(){const e=this._batchDepth;if(e===0){Z&&console.warn("endBatch() called without matching startBatch(). Ignoring.");return}const t=e-1;this._batchDepth=t,t===0&&(this.flushSync(),this._isBatching=!1)}setMaxFlushIterations(e){if(e<z.MIN_FLUSH_ITERATIONS)throw new ue(`Max flush iterations must be at least ${z.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=e}}const ie=new _t;class pt{constructor(){this.current=null}run(e,t){const s=this.current;this.current=e;try{return t()}finally{this.current=s}}getCurrent(){return this.current}}const A=new pt;function Te(n){if(typeof n!="function")throw new q("Untracked callback must be a function");const e=A.current;A.current=null;try{return n()}finally{A.current=e}}class Et extends Fe{constructor(e,t){super(),this._value=e,this._pendingOldValue=void 0,this._notifyTask=void 0,this._fnSubs=[],this._objSubs=[],t&&(this.flags|=L.SYNC),F.attachDebugInfo(this,"atom",this.id)}get value(){const e=A.current;return e&&Q(this,e,this._fnSubs,this._objSubs),this._value}set value(e){const t=this._value;t===e||Object.is(t,e)||(this._value=e,this.version=this.version+1&K,this.flags&(L.HAS_FN_SUBS|L.HAS_OBJ_SUBS)&&this._scheduleNotification(t))}_scheduleNotification(e){let t=this.flags;if(t&L.NOTIFICATION_SCHEDULED||(this._pendingOldValue=e,t|=L.NOTIFICATION_SCHEDULED,this.flags=t),t&L.SYNC&&!ie.isBatching){this._flushNotifications();return}this._notifyTask||(this._notifyTask=()=>this._flushNotifications());const s=this._notifyTask;ie.schedule(s)}_flushNotifications(){const e=this.flags;if(!(e&L.NOTIFICATION_SCHEDULED)||e&L.DISPOSED)return;const t=this._pendingOldValue;this._pendingOldValue=void 0,this.flags=e&-17,this._notifySubscribers(this._value,t)}peek(){return this._value}dispose(){const e=this.flags;e&L.DISPOSED||(this._fnSubs.length=0,this._objSubs.length=0,this.flags=e|L.DISPOSED,this._value=void 0,this._pendingOldValue=void 0,this._notifyTask=void 0)}}function je(n,e={}){return new Et(n,e.sync??!1)}function re(n,e,t){if(n instanceof TypeError)return new e(`Type error (${t}): ${n.message}`,n);if(n instanceof ReferenceError)return new e(`Reference error (${t}): ${n.message}`,n);if(n instanceof q)return n;const s=n instanceof Error?n.message:String(n),i=n instanceof Error?n:null;return new e(`Unexpected error (${t}): ${s}`,i)}function Ne(n){return n!==null&&typeof n=="object"&&"value"in n&&typeof n.subscribe=="function"}function Ve(n){return F.enabled&&n!=null&&typeof n=="object"&&F.getDebugType(n)==="computed"?!0:Ne(n)&&typeof n.invalidate=="function"}function He(n){return n!=null&&typeof n.then=="function"}const ze=f.RESOLVED|f.PENDING|f.REJECTED,ae=Array(ze+1).fill(ce.IDLE);ae[f.RESOLVED]=ce.RESOLVED,ae[f.PENDING]=ce.PENDING,ae[f.REJECTED]=ce.REJECTED;const qe=3,Xe=Number.MAX_SAFE_INTEGER-1;class Ge extends Fe{constructor(e,t={}){if(typeof e!="function")throw new M(I.COMPUTED_MUST_BE_FUNCTION);if(super(),this._value=void 0,this.flags=f.DIRTY|f.IDLE,this._error=null,this._promiseId=0,this._equal=t.equal??Object.is,this._fn=e,this._defaultValue="defaultValue"in t?t.defaultValue:ye,this._onError=t.onError??null,this._fnSubs=[],this._objSubs=[],this._dependencies=v,this._dependencyVersions=R,this._unsubscribes=X,this._cachedErrors=null,this._errorCacheEpoch=-1,this._asyncStartAggregateVersion=0,this._asyncRetryCount=0,this._trackEpoch=-1,this._trackDeps=v,this._trackVersions=R,this._trackCount=0,F.attachDebugInfo(this,"computed",this.id),F.enabled){const s=this;s.subscriberCount=this.subscriberCount.bind(this),s.isDirty=()=>(this.flags&f.DIRTY)!==0,s.dependencies=this._dependencies}if(t.lazy===!1)try{this._recompute()}catch{}}get value(){const e=A.current;e&&Q(this,e,this._fnSubs,this._objSubs);let t=this.flags;if((t&(f.RESOLVED|f.DIRTY|f.IDLE))===f.RESOLVED)return this._value;if(t&f.DISPOSED)throw new M(I.COMPUTED_DISPOSED);if(t&f.RECOMPUTING){const r=this._defaultValue;if(r!==ye)return r;throw new M(I.COMPUTED_CIRCULAR_DEPENDENCY)}if(t&(f.DIRTY|f.IDLE)&&(this._recompute(),t=this.flags),t&f.RESOLVED)return this._value;const s=this._defaultValue,i=s!==ye;if(t&f.PENDING){if(i)return s;throw new M(I.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if(t&f.REJECTED){const r=this._error;if(r?.recoverable&&i)return s;throw r}return this._value}peek(){return this._value}get state(){const e=A.current;return e&&Q(this,e,this._fnSubs,this._objSubs),ae[this.flags&ze]}get hasError(){const e=A.current;if(e&&Q(this,e,this._fnSubs,this._objSubs),this.flags&(f.REJECTED|f.HAS_ERROR))return!0;const t=this._dependencies;for(let s=0,i=t.length;s<i;s++)if(t[s].flags&f.HAS_ERROR)return!0;return!1}get isValid(){return!this.hasError}get errors(){const e=A.current;if(e&&Q(this,e,this._fnSubs,this._objSubs),!this.hasError)return it;const t=ft();if(this._errorCacheEpoch===t&&this._cachedErrors!==null)return this._cachedErrors;const s=new Set,i=this._error;i&&s.add(i);const r=this._dependencies;for(let c=0,u=r.length;c<u;c++){const h=r[c];if(h.flags&f.HAS_ERROR){const p=h.errors;if(p)for(let a=0,_=p.length;a<_;a++){const d=p[a];d&&s.add(d)}}}const o=Object.freeze(Array.from(s));return this._errorCacheEpoch=t,this._cachedErrors=o,o}get lastError(){const e=A.current;return e&&Q(this,e,this._fnSubs,this._objSubs),this._error}get isPending(){const e=A.current;return e&&Q(this,e,this._fnSubs,this._objSubs),(this.flags&f.PENDING)!==0}get isResolved(){const e=A.current;return e&&Q(this,e,this._fnSubs,this._objSubs),(this.flags&f.RESOLVED)!==0}invalidate(){this._markDirty();const e=this._dependencyVersions;e!==R&&(B.release(e),this._dependencyVersions=R),this._errorCacheEpoch=-1,this._cachedErrors=null}dispose(){if(this.flags&f.DISPOSED)return;const e=this._unsubscribes;if(e!==X){for(let i=0,r=e.length;i<r;i++){const o=e[i];o&&o()}ee.release(e),this._unsubscribes=X}const t=this._dependencies;t!==v&&(G.release(t),this._dependencies=v);const s=this._dependencyVersions;s!==R&&(B.release(s),this._dependencyVersions=R),this._fnSubs.length=0,this._objSubs.length=0,this.flags=f.DISPOSED|f.DIRTY|f.IDLE,this._error=null,this._value=void 0,this._promiseId=(this._promiseId+1)%Xe,this._cachedErrors=null,this._errorCacheEpoch=-1}addDependency(e){if(e._lastSeenEpoch===this._trackEpoch)return;e._lastSeenEpoch=this._trackEpoch;const t=this._trackCount,s=this._trackDeps,i=this._trackVersions;t<s.length?(s[t]=e,i[t]=e.version):(s.push(e),i.push(e.version)),this._trackCount=t+1}_commitDeps(e){const t=this._trackDeps,s=this._trackVersions,i=this._trackCount;t.length=i,s.length=i,this._unsubscribes=at(t,e,this._unsubscribes,this),this._dependencies=t,this._dependencyVersions=s}_recompute(){if(this.flags&f.RECOMPUTING)return;this.flags|=f.RECOMPUTING;const e=this._dependencies,t=this._dependencyVersions;this._trackEpoch=Pe(),this._trackDeps=G.acquire(),this._trackVersions=B.acquire(),this._trackCount=0;let s=!1;try{const i=A.run(this,this._fn);this._commitDeps(e),s=!0,He(i)?this._handleAsyncComputation(i):this._finalizeResolution(i)}catch(i){let r=i;if(!s)try{this._commitDeps(e),s=!0}catch(o){r=o}this._handleComputationError(r)}finally{s?(e!==v&&G.release(e),t!==R&&B.release(t)):(G.release(this._trackDeps),B.release(this._trackVersions)),this._trackEpoch=-1,this._trackDeps=v,this._trackVersions=R,this._trackCount=0,this.flags&=-257}}_handleAsyncComputation(e){this.flags=(this.flags|f.PENDING)&-217,this._notifySubscribers(void 0,void 0),this._asyncStartAggregateVersion=this._captureVersionSnapshot(),this._asyncRetryCount=0,this._promiseId=(this._promiseId+1)%Xe;const t=this._promiseId;e.then(s=>{if(t===this._promiseId){if(this._captureVersionSnapshot()!==this._asyncStartAggregateVersion){if(this._asyncRetryCount<qe){this._asyncRetryCount++,this._markDirty();return}this._handleAsyncRejection(new M(`Async drift threshold exceeded after ${qe} retries.`));return}this._finalizeResolution(s),this._notifySubscribers(s,void 0)}}).catch(s=>{t===this._promiseId&&this._handleAsyncRejection(s)})}_captureVersionSnapshot(){let e=0;const t=this._dependencies;for(let s=0,i=t.length;s<i;s++){const r=t[s];if(r){const o=r.version;e=((e<<5)-e|0)+o&K}}return e}_handleAsyncRejection(e){const t=re(e,M,I.COMPUTED_ASYNC_COMPUTATION_FAILED);this.flags&f.REJECTED||(this.version=this.version+1&K),this._error=t,this.flags=this.flags&-121|(f.REJECTED|f.HAS_ERROR);const s=this._onError;if(s)try{s(t)}catch(i){console.error(I.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}this._notifySubscribers(void 0,void 0)}_finalizeResolution(e){(!(this.flags&f.RESOLVED)||!this._equal(this._value,e))&&(this.version=this.version+1&K),this._value=e,this._error=null,this.flags=(this.flags|f.RESOLVED)&-697,this._cachedErrors=null,this._errorCacheEpoch=-1}_handleComputationError(e){const t=re(e,M,I.COMPUTED_COMPUTATION_FAILED);this._error=t,this.flags=this.flags&-121|(f.REJECTED|f.HAS_ERROR);const s=this._onError;if(s)try{s(t)}catch(i){console.error(I.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}throw t}execute(){this._markDirty()}_markDirty(){const e=this.flags;e&(f.RECOMPUTING|f.DIRTY)||(this.flags=e|f.DIRTY,this._notifySubscribers(void 0,void 0))}}Object.freeze(Ge.prototype);function Qe(n,e={}){return new Ge(n,e)}class gt extends Le{constructor(e,t={}){super(),this._cleanup=null,this._dependencies=v,this._dependencyVersions=R,this._unsubscribes=X,this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,this._executeTask=void 0,this._onError=t.onError??null,this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._fn=e,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??z.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??z.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=t.trackModifications??!1,this._executionCount=0,this._historyPtr=0;const s=Number.isFinite(this._maxExecutions),i=s?Math.min(this._maxExecutions+1,z.MAX_EXECUTIONS_PER_SECOND+1):0;this._historyCapacity=i,this._history=Z&&s&&i>0?new Array(i).fill(0):null,this._execId=0,F.attachDebugInfo(this,"effect",this.id)}run(){if(this.flags&x.DISPOSED)throw new $(I.EFFECT_DISPOSED);this.execute(!0)}dispose(){const e=this.flags;if(e&x.DISPOSED)return;if(this.flags=e|x.DISPOSED,this._cleanup){try{this._cleanup()}catch(r){this._handleExecutionError(r,I.EFFECT_CLEANUP_FAILED)}this._cleanup=null}const t=this._unsubscribes;if(t!==X){for(let r=0,o=t.length;r<o;r++){const c=t[r];c&&c()}ee.release(t),this._unsubscribes=X}const s=this._dependencies;s!==v&&(G.release(s),this._dependencies=v);const i=this._dependencyVersions;i!==R&&(B.release(i),this._dependencyVersions=R),this._executeTask=void 0}addDependency(e){if(!(this.flags&x.EXECUTING))return;const t=this._currentEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;const s=this._nextDeps,i=this._nextVersions,r=this._nextUnsubs;s.push(e),i.push(e.version);const o=e._tempUnsub;if(o){r.push(o),e._tempUnsub=void 0;return}try{const c=this._sync,u=this._trackModifications,h=e.subscribe(()=>{if(u&&this.flags&x.EXECUTING&&(e._modifiedAtEpoch=this._currentEpoch),c){this.execute();return}this._executeTask||(this._executeTask=()=>this.execute());const p=this._executeTask;ie.schedule(p)});r.push(h)}catch(c){console.error(re(c,$,I.EFFECT_EXECUTION_FAILED)),r.push(()=>{})}}execute(e=!1){if(this.flags&(x.DISPOSED|x.EXECUTING))return;if(!e){const a=this._dependencies,_=a.length;if(_>0){const d=this._dependencyVersions;let S=!1;for(let N=0;N<_;N++){const C=a[N];if(C.version!==d[N]){S=!0;break}if("value"in C)try{if(Te(()=>C.value),C.version!==d[N]){S=!0;break}}catch{S=!0;break}}if(!S)return}}const t=Ce;this._lastFlushEpoch!==t&&(this._lastFlushEpoch=t,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError("per-effect"),dt()>z.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError("global"),this._executionCount++;const s=this._history;if(s){const a=Date.now(),_=this._historyPtr;s[_]=a;const d=(_+1)%this._historyCapacity;this._historyPtr=d;const S=s[d]||0;if(S>0&&a-S<st.ONE_SECOND_MS){const N=new $("Effect executed too frequently within 1 second. Suspected infinite loop.");if(this.dispose(),this._handleExecutionError(N),Z)throw N;return}}if(this.flags|=x.EXECUTING,this._cleanup){try{this._cleanup()}catch(a){this._handleExecutionError(a,I.EFFECT_CLEANUP_FAILED)}this._cleanup=null}const i=this._dependencies,r=this._dependencyVersions,o=this._unsubscribes;if(i!==v)for(let a=0,_=i.length;a<_;a++){const d=i[a];d&&(d._tempUnsub=o[a])}const c=G.acquire(),u=B.acquire(),h=ee.acquire();this._nextDeps=c,this._nextVersions=u,this._nextUnsubs=h,this._currentEpoch=Pe();let p=!1;try{const a=A.run(this,this._fn);this._dependencies=c,this._dependencyVersions=u,this._unsubscribes=h,p=!0,this._checkLoopWarnings();const _=++this._execId;He(a)?a.then(d=>{if(_!==this._execId||this.flags&x.DISPOSED){if(typeof d=="function")try{d()}catch(S){this._handleExecutionError(S,I.EFFECT_CLEANUP_FAILED)}return}typeof d=="function"&&(this._cleanup=d)}).catch(d=>{_===this._execId&&this._handleExecutionError(d)}):this._cleanup=typeof a=="function"?a:null}catch(a){p=!0,this._handleExecutionError(a),this._cleanup=null}finally{if(this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,p){if(i!==v){for(let a=0,_=i.length;a<_;a++){const d=i[a],S=d?d._tempUnsub:void 0;S&&(S(),d&&(d._tempUnsub=void 0))}G.release(i)}r!==R&&B.release(r),o!==X&&ee.release(o)}else{G.release(c),B.release(u);for(let a=0,_=h.length;a<_;a++){const d=h[a];d&&d()}if(ee.release(h),i!==v)for(let a=0,_=i.length;a<_;a++){const d=i[a];d&&(d._tempUnsub=void 0)}}this.flags&=-9}}get isDisposed(){return(this.flags&x.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&x.EXECUTING)!==0}_throwInfiniteLoopError(e){const t=new $(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${De}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=I.EFFECT_EXECUTION_FAILED){const s=re(e,$,t);console.error(s);const i=this._onError;if(i)try{i(s)}catch(r){console.error(re(r,$,I.CALLBACK_ERROR_IN_ERROR_HANDLER))}}_checkLoopWarnings(){if(this._trackModifications&&F.enabled){const e=this._dependencies,t=this._currentEpoch;for(let s=0,i=e.length;s<i;s++){const r=e[s];r&&r._modifiedAtEpoch===t&&F.warn(!0,`Effect is reading a dependency (${F.getDebugName(r)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function J(n,e={}){if(typeof n!="function")throw new $(I.EFFECT_MUST_BE_FUNCTION);const t=new gt(n,e);return t.execute(),t}function fe(n){if(typeof n!="function")throw new q("Batch callback must be a function");ie.startBatch();try{return n()}finally{ie.endBatch()}}function mt(n){return n!==null&&typeof n=="object"&&"value"in n&&"subscribe"in n}function de(n){if(!n)return"unknown";const e="jquery"in n?n[0]:n;if(!e)return"unknown";const t=e.id;if(t&&typeof t=="string")return`#${t}`;const s=e.tagName.toLowerCase(),i=e.classList;if(i&&i.length>0){let r=s;for(let o=0,c=i.length;o<c;o++){const u=i[o];u&&(r+=`.${u}`)}return r}return s}function bt(n){const e=n.length;if(e===0)return new Int32Array(0);const t=new Int32Array(e),s=new Int32Array(e);let i=0;for(let o=0;o<e;o++){const c=n[o];if(c===void 0||c===-1)continue;const u=i>0?s[i-1]:void 0;if(i===0||u!==void 0&&(n[u]??-1)<c){t[o]=u??-1,s[i++]=o;continue}let h=0,p=i-1;for(;h<p;){const _=h+p>>>1,d=s[_];d!==void 0&&(n[d]??-1)<c?h=_+1:p=_}const a=s[h];a!==void 0&&c<(n[a]??Number.MAX_SAFE_INTEGER)&&(h>0&&(t[o]=s[h-1]??-1),s[h]=o)}const r=new Int32Array(i);if(i>0){let o=s[i-1];for(let c=i-1;c>=0&&o!==void 0&&o!==-1;c--)r[c]=o,o=t[o]}return r}function St(){if(typeof window<"u"){const n=window.__ATOM_DEBUG__;if(typeof n=="boolean")return n}try{if(typeof process<"u"&&process.env?.NODE_ENV==="development")return!0}catch{}return!1}let te=St();const g={get enabled(){return te},set enabled(n){te=n},log(n,...e){te&&console.log(`[atom-effect-jquery] ${n}:`,...e)},atomChanged(n,e,t){te&&console.log(`[atom-effect-jquery] Atom "${n??"anonymous"}" changed:`,e,"→",t)},domUpdated(n,e,t){te&&(console.log(`[atom-effect-jquery] DOM updated: ${de(n)}.${e} =`,t),yt(n))},cleanup(n){te&&console.log(`[atom-effect-jquery] Cleanup: ${n}`)},warn(...n){te&&console.warn("[atom-effect-jquery]",...n)}},Oe=new WeakMap;function yt(n){const e="jquery"in n?n[0]:n;if(!e||!e.isConnected)return;let t=Oe.get(e);if(t||(t={},Oe.set(e,t)),t.timer&&clearTimeout(t.timer),t.cleanupTimer&&clearTimeout(t.cleanupTimer),!t.orgStyle){const i=e.style;t.orgStyle={outline:i.outline,outlineOffset:i.outlineOffset,transition:i.transition}}const s=e.style;s.outline="2px solid rgba(255, 68, 68, 0.8)",s.outlineOffset="1px",s.transition="none",t.timer=setTimeout(()=>{e.isConnected&&(s.transition="outline 0.5s ease-out",requestAnimationFrame(()=>{if(!e.isConnected)return;const i=t?.orgStyle;i&&(s.outline=i.outline,s.outlineOffset=i.outlineOffset),t.cleanupTimer=setTimeout(()=>{e.isConnected&&t?.orgStyle&&(s.transition=t.orgStyle.transition),Oe.delete(e)},500)}))},100)}const It=new WeakMap;function Je(n,e={}){const t=je(n,e);return e.name&&It.set(t,{name:e.name}),t}Object.defineProperty(Je,"debug",{get(){return g.enabled},set(n){g.enabled=n}});function Ct(){return new Promise(n=>setTimeout(n,0))}l.extend({atom:Je,computed:Qe,effect:J,batch:fe,untracked:Te,isAtom:Ne,isComputed:Ve,isReactive:n=>Ne(n)||Ve(n),nextTick:Ct});const _e="_aes-bound";class Dt{records=new WeakMap;boundElements=new WeakSet;preservedNodes=new WeakSet;ignoredNodes=new WeakSet;keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}markIgnored(e){this.ignoredNodes.add(e)}isIgnored(e){return this.ignoredNodes.has(e)}_getOrCreateRecord(e){let t=this.records.get(e);return t||(t={},this.records.set(e,t),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(_e))),t}trackEffect(e,t){const s=this._getOrCreateRecord(e);s.effects||(s.effects=[]),s.effects.push(t)}trackCleanup(e,t){const s=this._getOrCreateRecord(e);s.cleanups||(s.cleanups=[]),s.cleanups.push(t)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.delete(e))return;const t=this.records.get(e);if(!t)return;this.records.delete(e),this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.classList.remove(_e),g.enabled&&g.cleanup(de(e));const s=t.effects;if(s)for(let r=0,o=s.length;r<o;r++)try{s[r]?.dispose()}catch(c){g.warn("Effect dispose error:",c)}const i=t.cleanups;if(i)for(let r=0,o=i.length;r<o;r++)try{i[r]?.()}catch(c){g.warn("Cleanup error:",c)}}cleanupDescendants(e){const t=e.querySelectorAll(`.${_e}`);for(let s=0,i=t.length;s<i;s++){const r=t[s];r&&this.boundElements.has(r)?this.cleanup(r):r&&r.classList.remove(_e)}}cleanupTree(e){this.cleanupDescendants(e),this.cleanup(e)}}const b=new Dt;let oe=null;function Ye(n=document.body){oe||(oe=new MutationObserver(e=>{for(let t=0,s=e.length;t<s;t++){const i=e[t]?.removedNodes;if(!i)continue;const r=i.length;if(r!==0)for(let o=0;o<r;o++){const c=i[o];c.nodeType===1&&(c.isConnected||b.isKept(c)||b.isIgnored(c)||b.cleanupTree(c))}}}),oe.observe(n,{childList:!0,subtree:!0}))}function Tt(){oe?.disconnect(),oe=null}function T(n,e,t,s){mt(e)?b.trackEffect(n,J(()=>{const i=e.value;t(i),g.domUpdated(l(n),s,i)})):(t(e),g.domUpdated(l(n),s,e))}var y=(n=>(n[n.None=0]="None",n[n.Focused=1]="Focused",n[n.Composing=2]="Composing",n[n.SyncingToAtom=4]="SyncingToAtom",n[n.SyncingToDom=8]="SyncingToDom",n[n.Busy=14]="Busy",n))(y||{});function Ae(){return{timeoutId:null,flags:0}}function We(n,e,t={}){const{debounce:s,event:i="input",parse:r=C=>C,format:o=C=>String(C??""),equal:c=Object.is}=t,u=Ae(),h=n[0],p=()=>{if(!(u.flags&y.Busy)){u.flags|=y.SyncingToAtom;try{const C=h.value,U=r(C);c(e.value,U)||(e.value=U)}finally{u.flags&=~y.SyncingToAtom}}},a=()=>{u.timeoutId&&(clearTimeout(u.timeoutId),u.timeoutId=null,p()),u.flags&=~y.Focused;const C=o(e.value);h.value!==C&&(h.value=C)},_=()=>{u.flags&y.Busy||(s?(u.timeoutId&&clearTimeout(u.timeoutId),u.timeoutId=setTimeout(p,s)):p())},d={compositionstart:()=>{u.flags|=y.Composing},compositionend:()=>{u.flags&=~y.Composing,p()},focus:()=>{u.flags|=y.Focused},blur:a,[i]:_,change:_};return n.on(d),{effect:()=>{const C=e.value,U=o(C),k=h.value;if(k!==U&&!(u.flags&y.Focused&&c(r(k),C))){u.flags|=y.SyncingToDom;try{if(u.flags&y.Focused){const{selectionStart:ge,selectionEnd:Re}=h;h.value=U;const Y=U.length;h.setSelectionRange(Math.min(ge??Y,Y),Math.min(Re??Y,Y))}else h.value=U;g.domUpdated(n,"val",U)}finally{u.flags&=~y.SyncingToDom}}},cleanup:()=>{n.off(d),u.timeoutId&&clearTimeout(u.timeoutId)}}}l.fn.atomText=function(n,e){return this.each(function(){const t=l(this);T(this,n,e?i=>t.text(e(i)):i=>t.text(String(i??"")),"text")})},l.fn.atomHtml=function(n){return this.each(function(){const e=l(this);T(this,n,t=>e.html(String(t??"")),"html")})},l.fn.atomClass=function(n,e){return this.each(function(){const t=l(this);T(this,e,s=>t.toggleClass(n,!!s),`class.${n}`)})},l.fn.atomCss=function(n,e,t){return this.each(function(){const s=l(this);T(this,e,t?r=>s.css(n,`${r}${t}`):r=>s.css(n,r),`css.${n}`)})},l.fn.atomAttr=function(n,e){return this.each(function(){const t=l(this);T(this,e,s=>{if(s==null||s===!1){t.removeAttr(n);return}t.attr(n,s===!0?n:String(s))},`attr.${n}`)})},l.fn.atomProp=function(n,e){return this.each(function(){const t=l(this);T(this,e,s=>t.prop(n,s),`prop.${n}`)})},l.fn.atomShow=function(n){return this.each(function(){const e=l(this);T(this,n,t=>e.toggle(!!t),"show")})},l.fn.atomHide=function(n){return this.each(function(){const e=l(this);T(this,n,t=>e.toggle(!t),"hide")})},l.fn.atomVal=function(n,e={}){return this.each(function(){const{effect:t,cleanup:s}=We(l(this),n,e);b.trackEffect(this,J(t)),b.trackCleanup(this,s)})},l.fn.atomChecked=function(n){return this.each(function(){const e=l(this),t=this,s=Ae(),i=()=>{if(s.flags&y.Busy)return;const o=t.checked;n.value!==o&&(n.value=o)};e.on("change",i),b.trackCleanup(this,()=>e.off("change",i));const r=J(()=>{s.flags|=y.SyncingToDom;const o=!!n.value;t.checked!==o&&(t.checked=o,g.domUpdated(e,"checked",o)),s.flags&=~y.SyncingToDom});b.trackEffect(this,r)})},l.fn.atomOn=function(n,e){return this.each(function(){const t=l(this);t.on(n,e),b.trackCleanup(this,()=>t.off(n,e))})},l.fn.atomUnbind=function(){return this.each(function(){b.cleanupTree(this)})};const Ke=Object.create(null);function Nt(n){let e=Ke[n];return e||(e=n.includes("-")?n.replace(/-./g,t=>t[1].toUpperCase()):n,Ke[n]=e,e)}function Ot(n,e){const t=n.el;T(t,e,s=>{const i=typeof s=="string"?s:String(s??"");t.textContent!==i&&(t.textContent=i)},"text")}function At(n,e){const t=n.el;T(t,e,s=>{const i=String(s??"");t.innerHTML!==i&&(t.innerHTML=i)},"html")}function vt(n,e){for(const t in e)T(n.el,e[t],s=>{n.el.classList.toggle(t,!!s)},`class.${t}`)}function Rt(n,e){const t=n.el,s=t.style;for(const i in e){const r=e[i];if(r===void 0)continue;const o=Nt(i);Array.isArray(r)?T(t,r[0],c=>{s[o]=`${c}${r[1]}`},`css.${i}`):T(t,r,c=>{s[o]=c},`css.${i}`)}}function Ut(n,e){const t=n.el;for(const s in e)T(t,e[s],i=>{if(i==null||i===!1){t.removeAttribute(s);return}const r=i===!0?s:String(i);t.getAttribute(s)!==r&&t.setAttribute(s,r)},`attr.${s}`)}function wt(n,e){const t=n.el;for(const s in e)T(n.el,e[s],i=>{t[s]!==i&&(t[s]=i)},`prop.${s}`)}function xt(n,e){const t=n.el;T(t,e,s=>{t.style.display=s?"":"none",g.enabled&&g.domUpdated(t,"show",s)},"show")}function kt(n,e){const t=n.el;T(t,e,s=>{t.style.display=s?"none":"",g.enabled&&g.domUpdated(t,"hide",s)},"hide")}function Lt(n,e){const t=Array.isArray(e),{effect:s,cleanup:i}=We(n.$el,t?e[0]:e,t?e[1]:{});b.trackEffect(n.el,J(s)),n.trackCleanup(i)}function Ft(n,e){const t=n.el,s=Ae(),i=()=>{if(s.flags&y.Busy)return;const o=t.checked;e.value!==o&&(e.value=o)};t.addEventListener("change",i),n.trackCleanup(()=>t.removeEventListener("change",i));const r=J(()=>{s.flags|=y.SyncingToDom;const o=!!e.value;t.checked!==o&&(t.checked=o,g.enabled&&g.domUpdated(t,"checked",o)),s.flags&=~y.SyncingToDom});b.trackEffect(t,r)}function Pt(n,e){for(const t in e){const s=e[t];if(typeof s!="function")continue;const i=r=>{fe(()=>s.call(n.el,l.Event(r.type,{originalEvent:r})))};n.el.addEventListener(t,i),n.trackCleanup(()=>n.el.removeEventListener(t,i))}}l.fn.atomBind=function(n){return this.each(function(){const e=this;let t=null;const s={get $el(){return t||(t=l(e)),t},el:e,trackCleanup:i=>b.trackCleanup(e,i)};n.text!==void 0&&Ot(s,n.text),n.html!==void 0&&At(s,n.html),n.class&&vt(s,n.class),n.css&&Rt(s,n.css),n.attr&&Ut(s,n.attr),n.prop&&wt(s,n.prop),n.show!==void 0&&xt(s,n.show),n.hide!==void 0&&kt(s,n.hide),n.val!==void 0&&Lt(s,n.val),n.checked!==void 0&&Ft(s,n.checked),n.on&&Pt(s,n.on)})},l.fn.atomList=function(n,e){const{key:t,render:s,bind:i,update:r,onAdd:o,onRemove:c,empty:u}=e,h=typeof t=="function"?t:(p,a)=>p[t];return this.each(function(){const p=l(this),a=de(this),_=new Map,d=new Set;let S=[],N=null;const C=J(()=>{const U=n.value,k=U.length;if(k===0?u&&!N&&(N=l(u).appendTo(p)):N&&(N.remove(),N=null),k===0&&_.size===0){S=[];return}g.log("list",`${a} updating with ${k} items`);const ge=new Map,Re=S.length;for(let E=0;E<Re;E++)ge.set(S[E],E);const Y=new Array(k),Ue=new Set,et=new Int32Array(k);for(let E=0;E<k;E++){const V=U[E],m=h(V,E);g.enabled&&Ue.has(m)&&console.warn(`[atomList] Duplicate key "${m}" at index ${E}.`),Y[E]=m,Ue.add(m),et[E]=ge.get(m)??-1}if(_.size>0)for(const[E,V]of _){if(Ue.has(E)||d.has(E))continue;const m=()=>{V.$el.remove(),V.$el[0]&&b.cleanup(V.$el[0]),d.delete(E),g.log("list",`${a} removed item:`,E)};if(_.delete(E),d.add(E),c){const O=c(V.$el);O instanceof Promise?O.then(m):m()}else m()}if(k===0){S=[];return}const tt=bt(et);let we=tt.length-1,j=null;for(let E=k-1;E>=0;E--){const V=Y[E],m=U[E],O=_.get(V);if(O){const ne=O.item;O.item=m;const P=O.$el[0];if(!P)continue;if(r)r(O.$el,m,E),g.domUpdated(O.$el,"list.update",m);else if(ne!==m){let W=!0;if(typeof ne=="object"&&ne!==null&&typeof m=="object"&&m!==null){W=!1;let H=0;const me=ne,nt=m;for(const se in me){if(me[se]!==nt[se]){W=!0;break}H++}if(!W){let se=0;for(const Bt in nt)if(se++,se>H){W=!0;break}H!==se&&(W=!0)}}if(W){const H=l(s(m,E)),me=j===P;O.$el.replaceWith(H),O.$el=H,i&&i(H,m,E),g.domUpdated(H,"list.render",m),me&&(j=H[0]||null)}}if(we>=0&&tt[we]===E)we--;else{const W=O.$el[0];j?.isConnected?j!==W&&O.$el.insertBefore(j):O.$el.appendTo(p)}j=O.$el[0]||null}else{const ne=s(m,E),P=l(ne);_.set(V,{$el:P,item:m}),j?.isConnected?P.insertBefore(j):P.appendTo(p),i&&i(P,m,E),o&&o(P),g.domUpdated(P,"list.add",m),j=P[0]||null}}S=Y});b.trackEffect(this,C),b.trackCleanup(this,()=>{_.clear(),d.clear(),S=[],N?.remove()})})};const pe=new WeakMap;l.fn.atomMount=function(n,e={}){return this.each(function(){const t=g.enabled,s=t?de(this):"",i=pe.get(this);i&&(t&&g.log("mount",`${s} unmounting existing component`),i()),t&&g.log("mount",`${s} mounting component`);let r;try{r=n(l(this),e)}catch(c){console.error("[atom-effect-jquery] Mount error:",c);return}const o=()=>{if(pe.delete(this)){if(t&&g.log("mount",`${s} full cleanup`),typeof r=="function")try{r()}catch(c){console.error("[atom-effect-jquery] Cleanup error:",c)}b.cleanupTree(this)}};pe.set(this,o),b.trackCleanup(this,o)})},l.fn.atomUnmount=function(){return this.each(function(){const n=pe.get(this);n&&n()})};const Ee=new WeakMap;let Ze=!1;const $e=n=>{let e=Ee.get(n);return e||(e=function(...t){return fe(()=>n.apply(this,t))},Ee.set(n,e)),e};function ve(){if(Ze)return;Ze=!0;const n=l.fn.on,e=l.fn.off,t=l.fn.remove,s=l.fn.empty,i=l.fn.detach;l.fn.remove=function(r){const o=r?this.filter(r):this;for(let c=0,u=o.length;c<u;c++){const h=o[c];h&&(b.cleanupTree(h),b.markIgnored(h))}return t.call(this,r)},l.fn.empty=function(){for(let r=0,o=this.length;r<o;r++){const c=this[r];c&&b.cleanupDescendants(c)}return s.call(this)},l.fn.detach=function(r){const o=r?this.filter(r):this;for(let c=0,u=o.length;c<u;c++){const h=o[c];h&&b.keep(h)}return i.call(this,r)},l.fn.on=function(...r){const o=r[0];if(o&&typeof o=="object"){const c=o,u={};for(const h in c){const p=c[h];p&&(u[h]=$e(p))}r[0]=u}else for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){r[c]=$e(r[c]);break}return n.apply(this,r)},l.fn.off=function(...r){const o=r[0];if(o&&typeof o=="object"){const c=o,u={};for(const h in c){const p=c[h];p&&(u[h]=Ee.get(p)||p)}r[0]=u}else for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){r[c]=Ee.get(r[c])||r[c];break}return e.apply(this,r)}}const Mt=ve;ve(),l(()=>{Ye(document.body)}),D.default=l,D.atom=je,D.batch=fe,D.computed=Qe,D.disableAutoCleanup=Tt,D.effect=J,D.enableAutoCleanup=Ye,D.enablejQueryBatching=Mt,D.enablejQueryOverrides=ve,D.registry=b,D.untracked=Te,Object.defineProperties(D,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(S,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("jquery")):typeof define=="function"&&define.amd?define(["exports","jquery"],a):(S=typeof globalThis<"u"?globalThis:S||self,a(S.AtomEffectJQuery={},S.jQuery))})(this,(function(S,a){"use strict";const et={ONE_SECOND_MS:1e3},se={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},L={DISPOSED:1,HAS_FN_SUBS:2,HAS_OBJ_SUBS:4},v={...L,EXECUTING:8},h={...L,DIRTY:8,IDLE:16,PENDING:32,RESOLVED:64,REJECTED:128,RECOMPUTING:256,HAS_ERROR:512},k={...L,SYNC:8,NOTIFICATION_SCHEDULED:16},B={MAX_EXECUTIONS_PER_SECOND:1e3,MAX_EXECUTIONS_PER_EFFECT:100,MAX_EXECUTIONS_PER_FLUSH:1e4,MAX_FLUSH_ITERATIONS:1e3,MIN_FLUSH_ITERATIONS:10,BATCH_QUEUE_SHRINK_THRESHOLD:1e3},Re={MAX_DEPENDENCIES:1e3,WARN_INFINITE_LOOP:!0},Q=1073741823,j=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production",tt=Object.freeze([]);class H extends Error{constructor(e,t=null,s=!0){super(e),this.name="AtomError",this.cause=t,this.recoverable=s,this.timestamp=new Date}}class x extends H{constructor(e,t=null){super(e,t,!0),this.name="ComputedError"}}class J extends H{constructor(e,t=null){super(e,t,!1),this.name="EffectError"}}class ie extends H{constructor(e,t=null){super(e,t,!1),this.name="SchedulerError"}}const pe=Symbol("debugName"),nt=Symbol("id"),ge=Symbol("type"),me=Symbol("noDefaultValue");function st(n){return"dependencies"in n&&Array.isArray(n.dependencies)}function ke(n,e,t){if(!t.has(n.id)){if(t.add(n.id),n===e)throw new x("Indirect circular dependency detected");if(st(n)){const s=n.dependencies;for(let i=0;i<s.length;i++){const o=s[i];o&&ke(o,e,t)}}}}const w={enabled:typeof process<"u"&&process.env?.NODE_ENV==="development",maxDependencies:Re.MAX_DEPENDENCIES,warnInfiniteLoop:Re.WARN_INFINITE_LOOP,warn(n,e){this.enabled&&n&&console.warn(`[Atom Effect] ${e}`)},checkCircular(n,e){if(n===e)throw new x("Direct circular dependency detected");this.enabled&&ke(n,e,new Set)},attachDebugInfo(n,e,t){if(!this.enabled)return;const s=n;s[pe]=`${e}_${t}`,s[nt]=t,s[ge]=e},getDebugName(n){if(n!=null&&pe in n)return n[pe]},getDebugType(n){if(n!=null&&ge in n)return n[ge]}};let it=1;const ot=()=>it++;function V(n,e,t){if(e==null)return;const s=e;if(typeof s.addDependency=="function"){s.addDependency(n);return}if(typeof e=="function"){const o=e,c=t.length;for(let r=0;r<c;r++)if(t[r].fn===o)return;t.push(new oe(o)),n.flags|=L.HAS_FN_SUBS;return}const i=e;if(typeof i.execute=="function"){const o=t.length;for(let c=0;c<o;c++)if(t[c].sub===i)return;t.push(new oe(void 0,i)),n.flags|=L.HAS_OBJ_SUBS}}function rt(n,e,t){const s=e.length,i=n.length;if(s>0)for(let o=0;o<s;o++){const c=e[o];c&&(c.node._tempUnsub=c.unsub)}for(let o=0;o<i;o++){const c=n[o];if(!c)continue;const r=c.node,u=r._tempUnsub;u!==void 0?(c.unsub=u,r._tempUnsub=void 0):(w.checkCircular(r,t),c.unsub=r.subscribe(t))}if(s>0)for(let o=0;o<s;o++){const c=e[o];if(c){const r=c.node,u=r._tempUnsub;u!==void 0&&(u(),r._tempUnsub=void 0),c.unsub=void 0}}}class ye{constructor(e,t,s=void 0){this.node=e,this.version=t,this.unsub=s}}class oe{constructor(e,t){this.fn=e,this.sub=t}}const b={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",COMPUTED_CIRCULAR_DEPENDENCY:"Circular dependency detected during computation",COMPUTED_DISPOSED:"Cannot access a disposed computed",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",EFFECT_DISPOSED:"Cannot run a disposed effect",LARGE_DEPENDENCY_GRAPH:n=>`Large dependency graph detected: ${n} dependencies`,CALLBACK_ERROR_IN_ERROR_HANDLER:"Error occurred during onError callback execution"};class we{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=-1,this._modifiedAtEpoch=-1,this.id=ot()&Q,this._tempUnsub=void 0}}class Ue extends we{subscribe(e){const t=this._subscribers,s=typeof e=="function";if(!s&&(e===null||typeof e!="object"||typeof e.execute!="function"))throw new H(b.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);const i=t.length;if(s){for(let c=0;c<i;c++)if(t[c].fn===e)return j&&console.warn("Attempted to subscribe the same listener twice. Ignoring duplicate subscription."),()=>{}}else for(let c=0;c<i;c++)if(t[c].sub===e)return j&&console.warn("Attempted to subscribe the same listener twice. Ignoring duplicate subscription."),()=>{};const o=s?new oe(e):new oe(void 0,e);return t.push(o),this.flags|=s?L.HAS_FN_SUBS:L.HAS_OBJ_SUBS,()=>{const c=t.indexOf(o);if(c===-1)return;const r=t.pop();c<t.length&&(t[c]=r);const u=t.length;if(u===0)this.flags&=-7;else{let l=!1,f=!1;for(let E=0;E<u&&(t[E].fn?l=!0:f=!0,!(l&&f));E++);let m=this.flags;l||(m&=-3),f||(m&=-5),this.flags=m}}}subscriberCount(){return this._subscribers.length}_notifySubscribers(e,t){if(!(this.flags&(L.HAS_FN_SUBS|L.HAS_OBJ_SUBS)))return;const s=this._subscribers,i=s.length;for(let o=0;o<i;o++){const c=s[o];try{c.fn?c.fn(e,t):c.sub&&c.sub.execute()}catch(r){this._handleNotifyError(r)}}}_handleNotifyError(e){console.error(new H(b.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,e))}}let re=0;function Le(){return re=re+1&Q||1,re}function ct(){return re}let be=0,Se=0,ce=!1;function xe(){return ce?(j&&console.warn("Warning: startFlush() called during flush - ignored to prevent infinite loop detection bypass"),!1):(ce=!0,be=be+1&Q||1,Se=0,!0)}function Fe(){ce=!1}function ut(){return ce?++Se:0}class lt{constructor(){this._queueBuffer=[[],[]],this._bufferIndex=0,this._size=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}get queueSize(){return this._size}get isBatching(){return this._isBatching}schedule(e){if(j&&typeof e!="function")throw new ie("Scheduler callback must be a function");const t=this._epoch;if(e._nextEpoch===t)return;if(e._nextEpoch=t,this._isBatching||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=e;return}const s=this._bufferIndex,i=this._size;this._queueBuffer[s][i]=e,this._size=i+1,this._isProcessing||this.flush()}flush(){this._isProcessing||this._size===0||(this._isProcessing=!0,queueMicrotask(()=>{try{if(this._size===0)return;const e=xe();this._drainQueue(),e&&Fe()}finally{this._isProcessing=!1,this._size>0&&!this._isBatching&&this.flush()}}))}flushSync(){this._isFlushingSync=!0;const e=xe();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=!1,e&&Fe()}}_mergeBatchQueue(){const e=this._batchQueueSize;if(e===0)return;const t=++this._epoch,s=this._batchQueue,i=this._queueBuffer[this._bufferIndex];let o=this._size;for(let c=0;c<e;c++){const r=s[c];r._nextEpoch!==t&&(r._nextEpoch=t,i[o++]=r)}this._size=o,this._batchQueueSize=0,s.length>B.BATCH_QUEUE_SHRINK_THRESHOLD&&(s.length=0)}_drainQueue(){let e=0;const t=this._maxFlushIterations;for(;this._size>0;){if(++e>t){this._handleFlushOverflow();return}this._processQueue(),this._mergeBatchQueue()}}_processQueue(){const e=this._bufferIndex,t=this._queueBuffer[e],s=this._size;this._bufferIndex=e^1,this._size=0,this._epoch++,this._processJobs(t,s)}_handleFlushOverflow(){console.error(new ie(`Maximum flush iterations (${this._maxFlushIterations}) exceeded. Possible infinite loop.`)),this._size=0,this._queueBuffer[this._bufferIndex].length=0,this._batchQueueSize=0}_processJobs(e,t){for(let s=0;s<t;s++)try{const i=e[s];i&&i()}catch(i){console.error(new ie("Error occurred during scheduler execution",i))}e.length=0}startBatch(){this._batchDepth++,this._isBatching=!0}endBatch(){const e=this._batchDepth;if(e===0){j&&console.warn("endBatch() called without matching startBatch(). Ignoring.");return}const t=e-1;this._batchDepth=t,t===0&&(this.flushSync(),this._isBatching=!1)}setMaxFlushIterations(e){if(e<B.MIN_FLUSH_ITERATIONS)throw new ie(`Max flush iterations must be at least ${B.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=e}}const ee=new lt;class at{constructor(){this.current=null}run(e,t){const s=this.current;this.current=e;try{return t()}finally{this.current=s}}getCurrent(){return this.current}}const D=new at;function Ie(n){if(typeof n!="function")throw new H("Untracked callback must be a function");const e=D.current;D.current=null;try{return n()}finally{D.current=e}}class ht extends Ue{constructor(e,t){super(),this._value=e,this._pendingOldValue=void 0,this._notifyTask=void 0,this._subscribers=[],t&&(this.flags|=k.SYNC),w.attachDebugInfo(this,"atom",this.id)}get value(){const e=D.current;return e&&V(this,e,this._subscribers),this._value}set value(e){const t=this._value;if(t===e||Object.is(t,e))return;this._value=e,this.version=this.version+1&Q;let s=this.flags;if(s&(k.HAS_FN_SUBS|k.HAS_OBJ_SUBS)){if(s&k.NOTIFICATION_SCHEDULED)return;if(this._pendingOldValue=t,s|=k.NOTIFICATION_SCHEDULED,this.flags=s,s&k.SYNC&&!ee.isBatching){this._flushNotifications();return}this._notifyTask||(this._notifyTask=()=>this._flushNotifications()),ee.schedule(this._notifyTask)}}_flushNotifications(){const e=this.flags;if(!(e&k.NOTIFICATION_SCHEDULED)||e&k.DISPOSED)return;const t=this._pendingOldValue;this._pendingOldValue=void 0,this.flags=e&-17,this._notifySubscribers(this._value,t)}peek(){return this._value}dispose(){const e=this.flags;e&k.DISPOSED||(this._subscribers.length=0,this.flags=e|k.DISPOSED,this._value=void 0,this._pendingOldValue=void 0,this._notifyTask=void 0)}}function Pe(n,e={}){return new ht(n,e.sync??!1)}class ft{constructor(){this.frozen=0,this.tooLarge=0,this.poolFull=0}}class dt{constructor(){this.acquired=0,this.released=0,this.rejected=new ft}}class _t{constructor(){this.pool=[],this.maxPoolSize=50,this.maxReusableCapacity=256,this.stats=j?new dt:null}acquire(){const e=this.stats;return e&&e.acquired++,this.pool.pop()??[]}release(e,t){const s=this.stats;if(t&&e===t)return;if(Object.isFrozen(e)){s&&s.rejected.frozen++;return}if(e.length>this.maxReusableCapacity){s&&s.rejected.tooLarge++;return}const i=this.pool;if(i.length>=this.maxPoolSize){s&&s.rejected.poolFull++;return}e.length=0,i.push(e),s&&s.released++}getStats(){const e=this.stats;if(!e)return null;const{acquired:t,released:s,rejected:i}=e,{frozen:o,tooLarge:c,poolFull:r}=i;return{acquired:t,released:s,rejected:{frozen:o,tooLarge:c,poolFull:r},leaked:t-s-(o+c+r),poolSize:this.pool.length}}reset(){this.pool.length=0;const e=this.stats;e&&(e.acquired=0,e.released=0,e.rejected.frozen=0,e.rejected.tooLarge=0,e.rejected.poolFull=0)}}const O=Object.freeze([]),z=new _t;function te(n,e,t){if(n instanceof TypeError)return new e(`Type error (${t}): ${n.message}`,n);if(n instanceof ReferenceError)return new e(`Reference error (${t}): ${n.message}`,n);if(n instanceof H)return n;const s=n instanceof Error?n.message:String(n),i=n instanceof Error?n:null;return new e(`Unexpected error (${t}): ${s}`,i)}function Ce(n){return n!==null&&typeof n=="object"&&"value"in n&&typeof n.subscribe=="function"}function Me(n){return w.enabled&&n!=null&&typeof n=="object"&&w.getDebugType(n)==="computed"?!0:Ce(n)&&typeof n.invalidate=="function"}function Be(n){return n!=null&&typeof n.then=="function"}const je=h.RESOLVED|h.PENDING|h.REJECTED,ue=Array(je+1).fill(se.IDLE);ue[h.RESOLVED]=se.RESOLVED,ue[h.PENDING]=se.PENDING,ue[h.REJECTED]=se.REJECTED;const He=3,Ve=Number.MAX_SAFE_INTEGER-1;class ze extends Ue{constructor(e,t={}){if(typeof e!="function")throw new x(b.COMPUTED_MUST_BE_FUNCTION);if(super(),this._value=void 0,this.flags=h.DIRTY|h.IDLE,this._error=null,this._promiseId=0,this._equal=t.equal??Object.is,this._fn=e,this._defaultValue="defaultValue"in t?t.defaultValue:me,this._onError=t.onError??null,this._subscribers=[],this._links=O,this._cachedErrors=null,this._errorCacheEpoch=-1,this._asyncStartAggregateVersion=0,this._asyncRetryCount=0,this._trackEpoch=-1,this._trackLinks=O,this._trackCount=0,w.attachDebugInfo(this,"computed",this.id),w.enabled){const s=this;s.subscriberCount=this.subscriberCount.bind(this),s.isDirty=()=>(this.flags&h.DIRTY)!==0,s.links=this._links}if(t.lazy===!1)try{this._recompute()}catch{}}get value(){const e=D.current;e&&V(this,e,this._subscribers);let t=this.flags;if((t&(h.RESOLVED|h.DIRTY|h.IDLE))===h.RESOLVED)return this._value;if(t&h.DISPOSED)throw new x(b.COMPUTED_DISPOSED);if(t&h.RECOMPUTING){const o=this._defaultValue;if(o!==me)return o;throw new x(b.COMPUTED_CIRCULAR_DEPENDENCY)}if(t&(h.DIRTY|h.IDLE)&&(this._recompute(),t=this.flags),t&h.RESOLVED)return this._value;const s=this._defaultValue,i=s!==me;if(t&h.PENDING){if(i)return s;throw new x(b.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if(t&h.REJECTED){const o=this._error;if(o?.recoverable&&i)return s;throw o}return this._value}peek(){return this._value}get state(){const e=D.current;return e&&V(this,e,this._subscribers),ue[this.flags&je]}get hasError(){const e=D.current;if(e&&V(this,e,this._subscribers),this.flags&(h.REJECTED|h.HAS_ERROR))return!0;const t=this._links;for(let s=0,i=t.length;s<i;s++)if(t[s].node.flags&h.HAS_ERROR)return!0;return!1}get isValid(){return!this.hasError}get errors(){const e=D.current;if(e&&V(this,e,this._subscribers),!this.hasError)return tt;const t=ct();if(this._errorCacheEpoch===t&&this._cachedErrors!==null)return this._cachedErrors;const s=new Set,i=this._error;i&&s.add(i);const o=this._links;for(let r=0,u=o.length;r<u;r++){const l=o[r].node;if(l.flags&h.HAS_ERROR){const f=l.errors;if(f)for(let m=0,E=f.length;m<E;m++){const T=f[m];T&&s.add(T)}}}const c=Object.freeze(Array.from(s));return this._errorCacheEpoch=t,this._cachedErrors=c,c}get lastError(){const e=D.current;return e&&V(this,e,this._subscribers),this._error}get isPending(){const e=D.current;return e&&V(this,e,this._subscribers),(this.flags&h.PENDING)!==0}get isResolved(){const e=D.current;return e&&V(this,e,this._subscribers),(this.flags&h.RESOLVED)!==0}invalidate(){this._markDirty(),this._errorCacheEpoch=-1,this._cachedErrors=null}dispose(){if(this.flags&h.DISPOSED)return;const e=this._links;if(e!==O){for(let t=0,s=e.length;t<s;t++){const i=e[t];i?.unsub&&i.unsub()}z.release(e),this._links=O}this._subscribers.length=0,this.flags=h.DISPOSED|h.DIRTY|h.IDLE,this._error=null,this._value=void 0,this._promiseId=(this._promiseId+1)%Ve,this._cachedErrors=null,this._errorCacheEpoch=-1}addDependency(e){const t=this._trackEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;const s=this._trackCount,i=this._trackLinks;if(s<i.length){const o=i[s];o.node=e,o.version=e.version}else i.push(new ye(e,e.version));this._trackCount=s+1}_commitDeps(e){const t=this._trackLinks,s=this._trackCount;t.length=s,rt(t,e,this),this._links=t}_recompute(){if(this.flags&h.RECOMPUTING)return;this.flags|=h.RECOMPUTING;const e=this._links;this._trackEpoch=Le(),this._trackLinks=z.acquire(),this._trackCount=0;let t=!1;try{const s=D.run(this,this._fn);this._commitDeps(e),t=!0,Be(s)?this._handleAsyncComputation(s):this._finalizeResolution(s)}catch(s){let i=s;if(!t)try{this._commitDeps(e),t=!0}catch(o){i=o}this._handleComputationError(i)}finally{t?e!==O&&z.release(e):z.release(this._trackLinks),this._trackEpoch=-1,this._trackLinks=O,this._trackCount=0,this.flags&=-257}}_handleAsyncComputation(e){this.flags=(this.flags|h.PENDING)&-217,this._notifySubscribers(void 0,void 0),this._asyncStartAggregateVersion=this._captureVersionSnapshot(),this._asyncRetryCount=0,this._promiseId=(this._promiseId+1)%Ve;const t=this._promiseId;e.then(s=>{if(t===this._promiseId){if(this._captureVersionSnapshot()!==this._asyncStartAggregateVersion){if(this._asyncRetryCount<He){this._asyncRetryCount++,this._markDirty();return}this._handleAsyncRejection(new x(`Async drift threshold exceeded after ${He} retries.`));return}this._finalizeResolution(s),this._notifySubscribers(s,void 0)}}).catch(s=>{t===this._promiseId&&this._handleAsyncRejection(s)})}_captureVersionSnapshot(){let e=0;const t=this._links;for(let s=0,i=t.length;s<i;s++){const o=t[s].node.version;e=((e<<5)-e|0)+o&Q}return e}_handleAsyncRejection(e){const t=te(e,x,b.COMPUTED_ASYNC_COMPUTATION_FAILED);this.flags&h.REJECTED||(this.version=this.version+1&Q),this._error=t,this.flags=this.flags&-121|(h.REJECTED|h.HAS_ERROR);const s=this._onError;if(s)try{s(t)}catch(i){console.error(b.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}this._notifySubscribers(void 0,void 0)}_finalizeResolution(e){(!(this.flags&h.RESOLVED)||!this._equal(this._value,e))&&(this.version=this.version+1&Q),this._value=e,this._error=null,this.flags=(this.flags|h.RESOLVED)&-697,this._cachedErrors=null,this._errorCacheEpoch=-1}_handleComputationError(e){const t=te(e,x,b.COMPUTED_COMPUTATION_FAILED);this._error=t,this.flags=this.flags&-121|(h.REJECTED|h.HAS_ERROR);const s=this._onError;if(s)try{s(t)}catch(i){console.error(b.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}throw t}execute(){this._markDirty()}_markDirty(){const e=this.flags;e&(h.RECOMPUTING|h.DIRTY)||(this.flags=e|h.DIRTY,this._notifySubscribers(void 0,void 0))}}Object.freeze(ze.prototype);function qe(n,e={}){return new ze(n,e)}class Et extends we{constructor(e,t={}){super(),this._cleanup=null,this._links=O,this._nextLinks=null,this._executeTask=void 0,this._onError=t.onError??null,this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._fn=e,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??B.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??B.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=t.trackModifications??!1,this._executionCount=0,this._historyPtr=0;const s=Number.isFinite(this._maxExecutions),i=s?Math.min(this._maxExecutions+1,B.MAX_EXECUTIONS_PER_SECOND+1):0;this._historyCapacity=i,this._history=j&&s&&i>0?new Array(i).fill(0):null,this._execId=0,w.attachDebugInfo(this,"effect",this.id)}run(){if(this.flags&v.DISPOSED)throw new J(b.EFFECT_DISPOSED);this.execute(!0)}dispose(){const e=this.flags;if(e&v.DISPOSED)return;if(this.flags=e|v.DISPOSED,this._cleanup){try{this._cleanup()}catch(s){this._handleExecutionError(s,b.EFFECT_CLEANUP_FAILED)}this._cleanup=null}const t=this._links;if(t!==O){for(let s=0,i=t.length;s<i;s++){const o=t[s];o?.unsub&&o.unsub()}z.release(t),this._links=O}this._executeTask=void 0}addDependency(e){if(!(this.flags&v.EXECUTING))return;const t=this._currentEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;const s=this._nextLinks,i=e._tempUnsub;if(i){s.push(new ye(e,e.version,i)),e._tempUnsub=void 0;return}try{const o=this._sync,c=this._trackModifications,r=e.subscribe(()=>{if(c&&this.flags&v.EXECUTING&&(e._modifiedAtEpoch=this._currentEpoch),o){this.execute();return}this._executeTask||(this._executeTask=()=>this.execute());const u=this._executeTask;ee.schedule(u)});s.push(new ye(e,e.version,r))}catch(o){console.error(te(o,J,b.EFFECT_EXECUTION_FAILED))}}execute(e=!1){if(this.flags&(v.DISPOSED|v.EXECUTING))return;if(!e){const r=this._links,u=r.length;if(u>0){let l=!1;for(let f=0;f<u;f++){const m=r[f],E=m.node;if(E.version!==m.version){l=!0;break}if("value"in E)try{if(Ie(()=>E.value),E.version!==m.version){l=!0;break}}catch{l=!0;break}}if(!l)return}}const t=be;this._lastFlushEpoch!==t&&(this._lastFlushEpoch=t,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError("per-effect"),ut()>B.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError("global"),this._executionCount++;const s=this._history;if(s){const r=Date.now(),u=this._historyPtr;s[u]=r;const l=(u+1)%this._historyCapacity;this._historyPtr=l;const f=s[l]||0;if(f>0&&r-f<et.ONE_SECOND_MS){const m=new J("Effect executed too frequently within 1 second. Suspected infinite loop.");if(this.dispose(),this._handleExecutionError(m),j)throw m;return}}if(this.flags|=v.EXECUTING,this._cleanup){try{this._cleanup()}catch(r){this._handleExecutionError(r,b.EFFECT_CLEANUP_FAILED)}this._cleanup=null}const i=this._links;if(i!==O)for(let r=0,u=i.length;r<u;r++){const l=i[r];l&&(l.node._tempUnsub=l.unsub)}const o=z.acquire();this._nextLinks=o,this._currentEpoch=Le();let c=!1;try{const r=D.run(this,this._fn);this._links=o,c=!0,this._checkLoopWarnings();const u=++this._execId;Be(r)?r.then(l=>{if(u!==this._execId||this.flags&v.DISPOSED){if(typeof l=="function")try{l()}catch(f){this._handleExecutionError(f,b.EFFECT_CLEANUP_FAILED)}return}typeof l=="function"&&(this._cleanup=l)}).catch(l=>{u===this._execId&&this._handleExecutionError(l)}):this._cleanup=typeof r=="function"?r:null}catch(r){c=!0,this._handleExecutionError(r),this._cleanup=null}finally{if(this._nextLinks=null,c){if(i!==O){for(let r=0,u=i.length;r<u;r++){const l=i[r],f=l?l.node._tempUnsub:void 0;f&&(f(),l&&(l.node._tempUnsub=void 0))}z.release(i)}}else{for(let r=0,u=o.length;r<u;r++){const l=o[r];l?.unsub&&l.unsub()}if(z.release(o),i!==O)for(let r=0,u=i.length;r<u;r++){const l=i[r];l&&(l.node._tempUnsub=void 0)}}this.flags&=-9}}get isDisposed(){return(this.flags&v.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&v.EXECUTING)!==0}_throwInfiniteLoopError(e){const t=new J(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${Se}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=b.EFFECT_EXECUTION_FAILED){const s=te(e,J,t);console.error(s);const i=this._onError;if(i)try{i(s)}catch(o){console.error(te(o,J,b.CALLBACK_ERROR_IN_ERROR_HANDLER))}}_checkLoopWarnings(){if(this._trackModifications&&w.enabled){const e=this._links,t=this._currentEpoch;for(let s=0,i=e.length;s<i;s++){const o=e[s].node;o&&o._modifiedAtEpoch===t&&w.warn(!0,`Effect is reading a dependency (${w.getDebugName(o)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function q(n,e={}){if(typeof n!="function")throw new J(b.EFFECT_MUST_BE_FUNCTION);const t=new Et(n,e);return t.execute(),t}function le(n){if(typeof n!="function")throw new H("Batch callback must be a function");ee.startBatch();try{return n()}finally{ee.endBatch()}}function pt(n){return n!==null&&typeof n=="object"&&"value"in n&&"subscribe"in n}function ae(n){if(!n)return"unknown";const e="jquery"in n?n[0]:n;if(!e)return"unknown";const t=e.id;if(t&&typeof t=="string")return`#${t}`;const s=e.tagName.toLowerCase(),i=e.classList;if(i&&i.length>0){let o=s;for(let c=0,r=i.length;c<r;c++){const u=i[c];u&&(o+=`.${u}`)}return o}return s}function gt(n){const e=n.length;if(e===0)return new Int32Array(0);const t=new Int32Array(e),s=new Int32Array(e);let i=0;for(let c=0;c<e;c++){const r=n[c];if(r===void 0||r===-1)continue;const u=i>0?s[i-1]:void 0;if(i===0||u!==void 0&&(n[u]??-1)<r){t[c]=u??-1,s[i++]=c;continue}let l=0,f=i-1;for(;l<f;){const E=l+f>>>1,T=s[E];T!==void 0&&(n[T]??-1)<r?l=E+1:f=E}const m=s[l];m!==void 0&&r<(n[m]??Number.MAX_SAFE_INTEGER)&&(l>0&&(t[c]=s[l-1]??-1),s[l]=c)}const o=new Int32Array(i);if(i>0){let c=s[i-1];for(let r=i-1;r>=0&&c!==void 0&&c!==-1;r--)o[r]=c,c=t[c]}return o}function mt(){if(typeof window<"u"){const n=window.__ATOM_DEBUG__;if(typeof n=="boolean")return n}try{if(typeof process<"u"&&process.env?.NODE_ENV==="development")return!0}catch{}return!1}let Y=mt();const _={get enabled(){return Y},set enabled(n){Y=n},log(n,...e){Y&&console.log(`[atom-effect-jquery] ${n}:`,...e)},atomChanged(n,e,t){Y&&console.log(`[atom-effect-jquery] Atom "${n??"anonymous"}" changed:`,e,"→",t)},domUpdated(n,e,t){Y&&(console.log(`[atom-effect-jquery] DOM updated: ${ae(n)}.${e} =`,t),yt(n))},cleanup(n){Y&&console.log(`[atom-effect-jquery] Cleanup: ${n}`)},warn(...n){Y&&console.warn("[atom-effect-jquery]",...n)}},De=new WeakMap;function yt(n){const e="jquery"in n?n[0]:n;if(!e||!e.isConnected)return;let t=De.get(e);if(t||(t={},De.set(e,t)),t.timer&&clearTimeout(t.timer),t.cleanupTimer&&clearTimeout(t.cleanupTimer),!t.orgStyle){const i=e.style;t.orgStyle={outline:i.outline,outlineOffset:i.outlineOffset,transition:i.transition}}const s=e.style;s.outline="2px solid rgba(255, 68, 68, 0.8)",s.outlineOffset="1px",s.transition="none",t.timer=setTimeout(()=>{e.isConnected&&(s.transition="outline 0.5s ease-out",requestAnimationFrame(()=>{if(!e.isConnected)return;const i=t?.orgStyle;i&&(s.outline=i.outline,s.outlineOffset=i.outlineOffset),t.cleanupTimer=setTimeout(()=>{e.isConnected&&t?.orgStyle&&(s.transition=t.orgStyle.transition),De.delete(e)},500)}))},100)}const bt=new WeakMap;function Xe(n,e={}){const t=Pe(n,e);return e.name&&bt.set(t,{name:e.name}),t}Object.defineProperty(Xe,"debug",{get(){return _.enabled},set(n){_.enabled=n}});function St(){return new Promise(n=>setTimeout(n,0))}a.extend({atom:Xe,computed:qe,effect:q,batch:le,untracked:Ie,isAtom:Ce,isComputed:Me,isReactive:n=>Ce(n)||Me(n),nextTick:St});const he="_aes-bound";class It{records=new WeakMap;boundElements=new WeakSet;preservedNodes=new WeakSet;ignoredNodes=new WeakSet;keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}markIgnored(e){this.ignoredNodes.add(e)}isIgnored(e){return this.ignoredNodes.has(e)}_getOrCreateRecord(e){let t=this.records.get(e);return t||(t={},this.records.set(e,t),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(he))),t}trackEffect(e,t){const s=this._getOrCreateRecord(e);s.effects||(s.effects=[]),s.effects.push(t)}trackCleanup(e,t){const s=this._getOrCreateRecord(e);s.cleanups||(s.cleanups=[]),s.cleanups.push(t)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.delete(e))return;const t=this.records.get(e);if(!t)return;this.records.delete(e),this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.classList.remove(he),_.enabled&&_.cleanup(ae(e));const s=t.effects;if(s)for(let o=0,c=s.length;o<c;o++)try{s[o]?.dispose()}catch(r){_.warn("Effect dispose error:",r)}const i=t.cleanups;if(i)for(let o=0,c=i.length;o<c;o++)try{i[o]?.()}catch(r){_.warn("Cleanup error:",r)}}cleanupDescendants(e){const t=e.querySelectorAll(`.${he}`);for(let s=0,i=t.length;s<i;s++){const o=t[s];o&&this.boundElements.has(o)?this.cleanup(o):o&&o.classList.remove(he)}}cleanupTree(e){this.cleanupDescendants(e),this.cleanup(e)}}const g=new It;let ne=null;function Ge(n=document.body){ne||(ne=new MutationObserver(e=>{for(let t=0,s=e.length;t<s;t++){const i=e[t]?.removedNodes;if(!i)continue;const o=i.length;if(o!==0)for(let c=0;c<o;c++){const r=i[c];r.nodeType===1&&(r.isConnected||g.isKept(r)||g.isIgnored(r)||g.cleanupTree(r))}}}),ne.observe(n,{childList:!0,subtree:!0}))}function Ct(){ne?.disconnect(),ne=null}function I(n,e,t,s){pt(e)?g.trackEffect(n,q(()=>{const i=e.value;t(i),_.domUpdated(a(n),s,i)})):(t(e),_.domUpdated(a(n),s,e))}var y=(n=>(n[n.None=0]="None",n[n.Focused=1]="Focused",n[n.Composing=2]="Composing",n[n.SyncingToAtom=4]="SyncingToAtom",n[n.SyncingToDom=8]="SyncingToDom",n[n.Busy=14]="Busy",n))(y||{});function Te(){return{timeoutId:null,flags:0}}function Qe(n,e,t={}){const{debounce:s,event:i="input",parse:o=N=>N,format:c=N=>String(N??""),equal:r=Object.is}=t,u=Te(),l=n[0],f=()=>{if(!(u.flags&y.Busy)){u.flags|=y.SyncingToAtom;try{const N=l.value,A=o(N);r(e.value,A)||(e.value=A)}finally{u.flags&=~y.SyncingToAtom}}},m=()=>{u.timeoutId&&(clearTimeout(u.timeoutId),u.timeoutId=null,f()),u.flags&=~y.Focused;const N=c(e.value);l.value!==N&&(l.value=N)},E=()=>{u.flags&y.Busy||(s?(u.timeoutId&&clearTimeout(u.timeoutId),u.timeoutId=setTimeout(f,s)):f())},T={compositionstart:()=>{u.flags|=y.Composing},compositionend:()=>{u.flags&=~y.Composing,f()},focus:()=>{u.flags|=y.Focused},blur:m,[i]:E,change:E};return n.on(T),{effect:()=>{const N=e.value,A=c(N),R=l.value;if(R!==A&&!(u.flags&y.Focused&&r(o(R),N))){u.flags|=y.SyncingToDom;try{if(u.flags&y.Focused){const{selectionStart:_e,selectionEnd:Oe}=l;l.value=A;const X=A.length;l.setSelectionRange(Math.min(_e??X,X),Math.min(Oe??X,X))}else l.value=A;_.domUpdated(n,"val",A)}finally{u.flags&=~y.SyncingToDom}}},cleanup:()=>{n.off(T),u.timeoutId&&clearTimeout(u.timeoutId)}}}a.fn.atomText=function(n,e){return this.each(function(){const t=a(this);I(this,n,e?i=>t.text(e(i)):i=>t.text(String(i??"")),"text")})},a.fn.atomHtml=function(n){return this.each(function(){const e=a(this);I(this,n,t=>e.html(String(t??"")),"html")})},a.fn.atomClass=function(n,e){return this.each(function(){const t=a(this);I(this,e,s=>t.toggleClass(n,!!s),`class.${n}`)})},a.fn.atomCss=function(n,e,t){return this.each(function(){const s=a(this);I(this,e,t?o=>s.css(n,`${o}${t}`):o=>s.css(n,o),`css.${n}`)})},a.fn.atomAttr=function(n,e){return this.each(function(){const t=a(this);I(this,e,s=>{if(s==null||s===!1){t.removeAttr(n);return}t.attr(n,s===!0?n:String(s))},`attr.${n}`)})},a.fn.atomProp=function(n,e){return this.each(function(){const t=a(this);I(this,e,s=>t.prop(n,s),`prop.${n}`)})},a.fn.atomShow=function(n){return this.each(function(){const e=a(this);I(this,n,t=>e.toggle(!!t),"show")})},a.fn.atomHide=function(n){return this.each(function(){const e=a(this);I(this,n,t=>e.toggle(!t),"hide")})},a.fn.atomVal=function(n,e={}){return this.each(function(){const{effect:t,cleanup:s}=Qe(a(this),n,e);g.trackEffect(this,q(t)),g.trackCleanup(this,s)})},a.fn.atomChecked=function(n){return this.each(function(){const e=a(this),t=this,s=Te(),i=()=>{if(s.flags&y.Busy)return;const c=t.checked;n.value!==c&&(n.value=c)};e.on("change",i),g.trackCleanup(this,()=>e.off("change",i));const o=q(()=>{s.flags|=y.SyncingToDom;const c=!!n.value;t.checked!==c&&(t.checked=c,_.domUpdated(e,"checked",c)),s.flags&=~y.SyncingToDom});g.trackEffect(this,o)})},a.fn.atomOn=function(n,e){return this.each(function(){const t=a(this);t.on(n,e),g.trackCleanup(this,()=>t.off(n,e))})},a.fn.atomUnbind=function(){return this.each(function(){g.cleanupTree(this)})};const Je=Object.create(null);function Dt(n){let e=Je[n];return e||(e=n.includes("-")?n.replace(/-./g,t=>t[1].toUpperCase()):n,Je[n]=e,e)}function Tt(n,e){const t=n.el;I(t,e,s=>{const i=typeof s=="string"?s:String(s??"");t.textContent!==i&&(t.textContent=i)},"text")}function Nt(n,e){const t=n.el;I(t,e,s=>{const i=String(s??"");t.innerHTML!==i&&(t.innerHTML=i)},"html")}function Ot(n,e){for(const t in e)I(n.el,e[t],s=>{n.el.classList.toggle(t,!!s)},`class.${t}`)}function At(n,e){const t=n.el,s=t.style;for(const i in e){const o=e[i];if(o===void 0)continue;const c=Dt(i);Array.isArray(o)?I(t,o[0],r=>{s[c]=`${r}${o[1]}`},`css.${i}`):I(t,o,r=>{s[c]=r},`css.${i}`)}}function vt(n,e){const t=n.el;for(const s in e)I(t,e[s],i=>{if(i==null||i===!1){t.removeAttribute(s);return}const o=i===!0?s:String(i);t.getAttribute(s)!==o&&t.setAttribute(s,o)},`attr.${s}`)}function Rt(n,e){const t=n.el;for(const s in e)I(n.el,e[s],i=>{t[s]!==i&&(t[s]=i)},`prop.${s}`)}function kt(n,e){const t=n.el;I(t,e,s=>{t.style.display=s?"":"none",_.enabled&&_.domUpdated(t,"show",s)},"show")}function wt(n,e){const t=n.el;I(t,e,s=>{t.style.display=s?"none":"",_.enabled&&_.domUpdated(t,"hide",s)},"hide")}function Ut(n,e){const t=Array.isArray(e),{effect:s,cleanup:i}=Qe(n.$el,t?e[0]:e,t?e[1]:{});g.trackEffect(n.el,q(s)),n.trackCleanup(i)}function Lt(n,e){const t=n.el,s=Te(),i=()=>{if(s.flags&y.Busy)return;const c=t.checked;e.value!==c&&(e.value=c)};t.addEventListener("change",i),n.trackCleanup(()=>t.removeEventListener("change",i));const o=q(()=>{s.flags|=y.SyncingToDom;const c=!!e.value;t.checked!==c&&(t.checked=c,_.enabled&&_.domUpdated(t,"checked",c)),s.flags&=~y.SyncingToDom});g.trackEffect(t,o)}function xt(n,e){for(const t in e){const s=e[t];if(typeof s!="function")continue;const i=o=>{le(()=>s.call(n.el,a.Event(o.type,{originalEvent:o})))};n.el.addEventListener(t,i),n.trackCleanup(()=>n.el.removeEventListener(t,i))}}a.fn.atomBind=function(n){return this.each(function(){const e=this;let t=null;const s={get $el(){return t||(t=a(e)),t},el:e,trackCleanup:i=>g.trackCleanup(e,i)};n.text!==void 0&&Tt(s,n.text),n.html!==void 0&&Nt(s,n.html),n.class&&Ot(s,n.class),n.css&&At(s,n.css),n.attr&&vt(s,n.attr),n.prop&&Rt(s,n.prop),n.show!==void 0&&kt(s,n.show),n.hide!==void 0&&wt(s,n.hide),n.val!==void 0&&Ut(s,n.val),n.checked!==void 0&&Lt(s,n.checked),n.on&&xt(s,n.on)})},a.fn.atomList=function(n,e){const{key:t,render:s,bind:i,update:o,onAdd:c,onRemove:r,empty:u}=e,l=typeof t=="function"?t:(f,m)=>f[t];return this.each(function(){const f=a(this),m=ae(this),E=new Map,T=new Set;let W=[],K=null;const N=q(()=>{const A=n.value,R=A.length;if(R===0?u&&!K&&(K=a(u).appendTo(f)):K&&(K.remove(),K=null),R===0&&E.size===0){W=[];return}_.log("list",`${m} updating with ${R} items`);const _e=new Map,Oe=W.length;for(let d=0;d<Oe;d++)_e.set(W[d],d);const X=new Array(R),Ae=new Set,Ke=new Int32Array(R);for(let d=0;d<R;d++){const P=A[d],p=l(P,d);_.enabled&&Ae.has(p)&&console.warn(`[atomList] Duplicate key "${p}" at index ${d}.`),X[d]=p,Ae.add(p),Ke[d]=_e.get(p)??-1}if(E.size>0)for(const[d,P]of E){if(Ae.has(d)||T.has(d))continue;const p=()=>{P.$el.remove(),P.$el[0]&&g.cleanup(P.$el[0]),T.delete(d),_.log("list",`${m} removed item:`,d)};if(E.delete(d),T.add(d),r){const C=r(P.$el);C instanceof Promise?C.then(p):p()}else p()}if(R===0){W=[];return}const Ze=gt(Ke);let ve=Ze.length-1,F=null;for(let d=R-1;d>=0;d--){const P=X[d],p=A[d],C=E.get(P);if(C){const Z=C.item;C.item=p;const U=C.$el[0];if(!U)continue;if(o)o(C.$el,p,d),_.domUpdated(C.$el,"list.update",p);else if(Z!==p){let G=!0;if(typeof Z=="object"&&Z!==null&&typeof p=="object"&&p!==null){G=!1;let M=0;const Ee=Z,$e=p;for(const $ in Ee){if(Ee[$]!==$e[$]){G=!0;break}M++}if(!G){let $=0;for(const Pt in $e)if($++,$>M){G=!0;break}M!==$&&(G=!0)}}if(G){const M=a(s(p,d)),Ee=F===U;C.$el.replaceWith(M),C.$el=M,i&&i(M,p,d),_.domUpdated(M,"list.render",p),Ee&&(F=M[0]||null)}}if(ve>=0&&Ze[ve]===d)ve--;else{const G=C.$el[0];F?.isConnected?F!==G&&C.$el.insertBefore(F):C.$el.appendTo(f)}F=C.$el[0]||null}else{const Z=s(p,d),U=a(Z);E.set(P,{$el:U,item:p}),F?.isConnected?U.insertBefore(F):U.appendTo(f),i&&i(U,p,d),c&&c(U),_.domUpdated(U,"list.add",p),F=U[0]||null}}W=X});g.trackEffect(this,N),g.trackCleanup(this,()=>{E.clear(),T.clear(),W=[],K?.remove()})})};const fe=new WeakMap;a.fn.atomMount=function(n,e={}){return this.each(function(){const t=_.enabled,s=t?ae(this):"",i=fe.get(this);i&&(t&&_.log("mount",`${s} unmounting existing component`),i()),t&&_.log("mount",`${s} mounting component`);let o;try{o=n(a(this),e)}catch(r){console.error("[atom-effect-jquery] Mount error:",r);return}const c=()=>{if(fe.delete(this)){if(t&&_.log("mount",`${s} full cleanup`),typeof o=="function")try{o()}catch(r){console.error("[atom-effect-jquery] Cleanup error:",r)}g.cleanupTree(this)}};fe.set(this,c),g.trackCleanup(this,c)})},a.fn.atomUnmount=function(){return this.each(function(){const n=fe.get(this);n&&n()})};const de=new WeakMap;let Ye=!1;const We=n=>{let e=de.get(n);return e||(e=function(...t){return le(()=>n.apply(this,t))},de.set(n,e)),e};function Ne(){if(Ye)return;Ye=!0;const n=a.fn.on,e=a.fn.off,t=a.fn.remove,s=a.fn.empty,i=a.fn.detach;a.fn.remove=function(o){const c=o?this.filter(o):this;for(let r=0,u=c.length;r<u;r++){const l=c[r];l&&(g.cleanupTree(l),g.markIgnored(l))}return t.call(this,o)},a.fn.empty=function(){for(let o=0,c=this.length;o<c;o++){const r=this[o];r&&g.cleanupDescendants(r)}return s.call(this)},a.fn.detach=function(o){const c=o?this.filter(o):this;for(let r=0,u=c.length;r<u;r++){const l=c[r];l&&g.keep(l)}return i.call(this,o)},a.fn.on=function(...o){const c=o[0];if(c&&typeof c=="object"){const r=c,u={};for(const l in r){const f=r[l];f&&(u[l]=We(f))}o[0]=u}else for(let r=o.length-1;r>=0;r--)if(typeof o[r]=="function"){o[r]=We(o[r]);break}return n.apply(this,o)},a.fn.off=function(...o){const c=o[0];if(c&&typeof c=="object"){const r=c,u={};for(const l in r){const f=r[l];f&&(u[l]=de.get(f)||f)}o[0]=u}else for(let r=o.length-1;r>=0;r--)if(typeof o[r]=="function"){o[r]=de.get(o[r])||o[r];break}return e.apply(this,o)}}const Ft=Ne;Ne(),a(()=>{Ge(document.body)}),S.default=a,S.atom=Pe,S.batch=le,S.computed=qe,S.disableAutoCleanup=Ct,S.effect=q,S.enableAutoCleanup=Ge,S.enablejQueryBatching=Ft,S.enablejQueryOverrides=Ne,S.registry=g,S.untracked=Ie,Object.defineProperties(S,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
2
2
  //# sourceMappingURL=atom-effect-jquery.min.js.map