@but212/atom-effect-jquery 0.13.1 → 0.15.0
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 +34 -0
- package/dist/atom-effect-jquery.min.js +1 -1
- package/dist/atom-effect-jquery.min.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +969 -1035
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
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"),$e={ONE_SECOND_MS:1e3},ce={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},ee={DISPOSED:1,EXECUTING:2},l={DIRTY:1,IDLE:2,PENDING:4,RESOLVED:8,REJECTED:16,RECOMPUTING:32,HAS_ERROR:64},G={SYNC:1,NOTIFICATION_SCHEDULED:2},z={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},F=1073741823,Xe=20,de=1<<Xe-1,C=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production",He=Object.freeze([]);class U extends Error{constructor(e,s=null,n=!0){super(e),this.name="AtomError",this.cause=s,this.recoverable=n,this.timestamp=new Date}}class q extends U{constructor(e,s=null){super(e,s,!0),this.name="ComputedError"}}class B extends U{constructor(e,s=null){super(e,s,!1),this.name="EffectError"}}class te extends U{constructor(e,s=null){super(e,s,!1),this.name="SchedulerError"}}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",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"},le=Symbol("debugName"),Ge=Symbol("id"),fe=Symbol("type"),Ce=Symbol("noDefaultValue");function Ye(t){return"dependencies"in t&&Array.isArray(t.dependencies)}let xe=0;function Re(t,e,s){if(t._visitedEpoch!==s){if(t._visitedEpoch=s,t===e)throw new q("Indirect circular dependency detected");if(Ye(t)){const n=t.dependencies;for(let i=0;i<n.length;i++){const r=n[i];r&&Re(r,e,s)}}}}const N={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 q("Direct circular dependency detected");this.enabled&&(xe++,Re(t,e,xe))},attachDebugInfo(t,e,s){if(!this.enabled)return;const n=t;n[le]=`${e}_${s}`,n[Ge]=s,n[fe]=e},getDebugName(t){if(t!=null&&le in t)return t[le]},getDebugType(t){if(t!=null&&fe in t)return t[fe]}};let Je=1;const Ke=()=>Je++;class Oe{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=-1,this.id=Ke()&F}rotatePhase(){return this.version=this.version+1&F,this.version}getShift(e){return this.version-e&F}}class Ue extends Oe{subscribe(e){if(typeof e=="object"&&e!==null&&"execute"in e)return this._addSubscriber(this._getObjSubs(),e);if(typeof e!="function")throw new U(b.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);return this._addSubscriber(this._getFnSubs(),e)}subscriberCount(){return(this._fnSubs?.length??0)+(this._objSubs?.length??0)}_addSubscriber(e,s){if(e.indexOf(s)!==-1)return()=>{};e.push(s);let n=!1;return()=>{if(n)return;n=!0;const i=e.indexOf(s);if(i!==-1){const r=e.length-1;i!==r&&(e[i]=e[r]),e.pop()}}}_notifySubscribers(e,s){const n=this._fnSubs;if(n)for(let r=n.length-1;r>=0;r--)try{const o=n[r];o&&o(e,s)}catch(o){console.error(new U(b.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,o))}const i=this._objSubs;if(i)for(let r=i.length-1;r>=0;r--)try{const o=i[r];o&&o.execute()}catch(o){console.error(new U(b.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,o))}}}class pe{constructor(){this.pool=[],this.maxPoolSize=50,this.maxReusableCapacity=256,this.stats=C?{acquired:0,released:0,rejected:{frozen:0,tooLarge:0,poolFull:0}}:null}acquire(){return C&&this.stats&&this.stats.acquired++,this.pool.pop()??[]}release(e,s){if(!(s&&e===s)){if(Object.isFrozen(e)){C&&this.stats&&this.stats.rejected.frozen++;return}if(e.length>this.maxReusableCapacity){C&&this.stats&&this.stats.rejected.tooLarge++;return}if(this.pool.length>=this.maxPoolSize){C&&this.stats&&this.stats.rejected.poolFull++;return}e.length=0,this.pool.push(e),C&&this.stats&&this.stats.released++}}getStats(){if(!C||!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,C&&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([]),S=Object.freeze([]),w=new pe,Q=new pe,v=new pe;function _e(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in t&&typeof t.subscribe=="function"}function Te(t){if(N.enabled&&(t==null||typeof t=="object")){const e=N.getDebugType(t);if(e)return e==="computed"}return _e(t)&&"invalidate"in t&&typeof t.invalidate=="function"}function we(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 Fe(t,e,s,n){if(e){if(Ze(e)){e.addDependency(t);return}if(et(e)){const i=e;s.indexOf(i)===-1&&s.push(i);return}tt(e)&&n.indexOf(e)===-1&&n.push(e)}}function st(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):(N.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}let ne=0;function ke(){return ne=ne+1&F||1,ne}function nt(){return ne}let re=0,ge=0,oe=!1;function ve(){return oe?(C&&console.warn("Warning: startFlush() called during flush - ignored to prevent infinite loop detection bypass"),!1):(oe=!0,re=re+1&F,ge=0,!0)}function Ne(){oe=!1}function it(){return oe?++ge:0}class rt{constructor(){this.queueA=[],this.queueB=[],this.queue=this.queueA,this.queueSize=0,this.urgentQueueA=[],this.urgentQueueB=[],this.urgentQueue=this.urgentQueueA,this.urgentQueueSize=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}schedule(e,s){if(typeof e!="function")throw new te("Scheduler callback must be a function");if(e._nextEpoch!==this._epoch)if(e._nextEpoch=this._epoch,this.isBatching||this.isFlushingSync)this.batchQueue[this.batchQueueSize++]=e;else{const n=this._calculateUrgency(e,s);this.urgentQueue[this.urgentQueueSize]=e,this.queue[this.queueSize]=e,this.urgentQueueSize+=n,this.queueSize+=n^1,this.isProcessing||this.flush()}}_calculateUrgency(e,s){if(!s||e._cachedVersion===void 0)return 0;const n=s.getShift(e._cachedVersion);return de-1-n>>>31&1}flush(){this.isProcessing||this.queueSize===0&&this.urgentQueueSize===0||(this.isProcessing=!0,queueMicrotask(()=>{try{if(this.queueSize===0&&this.urgentQueueSize===0)return;const e=ve();this._drainQueue(),e&&Ne()}finally{this.isProcessing=!1,(this.queueSize>0||this.urgentQueueSize>0)&&!this.isBatching&&this.flush()}}))}flushSync(){this.isFlushingSync=!0;const e=ve();try{this._mergeBatchQueue(),this._drainQueue()}finally{this.isFlushingSync=!1,e&&Ne()}}_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.urgentQueueSize>0||this.queueSize>0;){if(++e>this.maxFlushIterations){this._handleFlushOverflow();return}this.urgentQueueSize>0&&this._processUrgentQueue(),this.queueSize>0&&this._processCurrentQueue(),this._mergeBatchQueue()}}_processUrgentQueue(){const e=this.urgentQueue,s=this.urgentQueueSize;this.urgentQueue=this.urgentQueue===this.urgentQueueA?this.urgentQueueB:this.urgentQueueA,this.urgentQueueSize=0,this._epoch++,this._processJobs(e,s)}_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 te(`Maximum flush iterations (${this.maxFlushIterations}) exceeded. Possible infinite loop.`)),this.queueSize=0,this.queue.length=0,this.urgentQueueSize=0,this.urgentQueue.length=0,this.batchQueueSize=0}_processJobs(e,s){for(let n=0;n<s;n++){const i=e[n];if(i)try{i()}catch(r){console.error(new te("Error occurred during scheduler execution",r))}}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<z.MIN_FLUSH_ITERATIONS)throw new te(`Max flush iterations must be at least ${z.MIN_FLUSH_ITERATIONS}`);this.maxFlushIterations=e}}const W=new rt;class ot{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 $=new ot;function Ee(t){if(typeof t!="function")throw new U("Untracked callback must be a function");const e=$.current;$.current=null;try{return t()}finally{$.current=e}}class ct extends Ue{constructor(e,s){super(),this._fnSubs=null,this._objSubs=null,this._value=e,s&&(this.flags|=G.SYNC),N.attachDebugInfo(this,"atom",this.id)}_getFnSubs(){return this._fnSubs??=[],this._fnSubs}_getObjSubs(){return this._objSubs??=[],this._objSubs}get value(){const e=$.current;return e&&Fe(this,e,this._getFnSubs(),this._getObjSubs()),this._value}set value(e){if(Object.is(this._value,e))return;const s=this._value;this._value=e,this.rotatePhase(),((this._fnSubs?.length??0)>0||(this._objSubs?.length??0)>0)&&this._scheduleNotification(s)}_scheduleNotification(e){if(this.flags&G.NOTIFICATION_SCHEDULED||(this._pendingOldValue=e,this.flags|=G.NOTIFICATION_SCHEDULED),this.flags&G.SYNC&&!W.isBatching){this._flushNotifications();return}this._notifyTask||(this._notifyTask=()=>this._flushNotifications()),W.schedule(this._notifyTask)}_flushNotifications(){if(!(this.flags&G.NOTIFICATION_SCHEDULED))return;const e=this._pendingOldValue,s=this._value;this._pendingOldValue=void 0,this.flags&=-3,this._notifySubscribers(s,e)}peek(){return this._value}dispose(){this._fnSubs=null,this._objSubs=null,this._value=void 0,this._notifyTask=void 0}}function Le(t,e={}){return new ct(t,e.sync??!1)}function J(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 U)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 Pe=l.RESOLVED|l.PENDING|l.REJECTED,ue=Array(Pe+1).fill(ce.IDLE);ue[l.RESOLVED]=ce.RESOLVED;ue[l.PENDING]=ce.PENDING;ue[l.REJECTED]=ce.REJECTED;class Me extends Ue{constructor(e,s={}){if(typeof e!="function")throw new q(b.COMPUTED_MUST_BE_FUNCTION);if(super(),this._fnSubs=null,this._objSubs=null,this._cachedErrors=null,this._errorCacheEpoch=-1,this._asyncStartAggregateVersion=0,this._asyncRetryCount=0,this.MAX_ASYNC_RETRIES=3,this._value=void 0,this.flags=l.DIRTY|l.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._dependencies=y,this._dependencyVersions=S,this._unsubscribes=T,this._notifyJob=()=>{const n=this._fnSubs;if(n)for(let r=n.length-1;r>=0;r--)try{const o=n[r];o&&o(void 0,void 0)}catch(o){console.error(o)}const i=this._objSubs;if(i)for(let r=i.length-1;r>=0;r--)try{const o=i[r];o&&o.execute()}catch(o){console.error(o)}},this._trackable=Object.assign(()=>this._markDirty(),{addDependency:n=>{}}),N.attachDebugInfo(this,"computed",this.id),N.enabled){const n=this;n.subscriberCount=this.subscriberCount.bind(this),n.isDirty=()=>this._isDirty(),n.dependencies=this._dependencies,n.stateFlags=this._getFlagsAsString()}if(s.lazy===!1)try{this._recompute()}catch{}}_getFnSubs(){return this._fnSubs??=[],this._fnSubs}_getObjSubs(){return this._objSubs??=[],this._objSubs}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 He;const e=nt();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!==S&&(v.release(this._dependencyVersions),this._dependencyVersions=S),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&&(w.release(this._dependencies),this._dependencies=y),this._dependencyVersions!==S&&(v.release(this._dependencyVersions),this._dependencyVersions=S),this._fnSubs=null,this._objSubs=null,this.flags=l.DIRTY|l.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&l.DIRTY)!==0}_setDirty(){this.flags|=l.DIRTY}_clearDirty(){this.flags&=-2}_isIdle(){return(this.flags&l.IDLE)!==0}_setIdle(){this.flags|=l.IDLE,this.flags&=-29}_isPending(){return(this.flags&l.PENDING)!==0}_setPending(){this.flags|=l.PENDING,this.flags&=-27}_isResolved(){return(this.flags&l.RESOLVED)!==0}_setResolved(){this.flags|=l.RESOLVED,this.flags&=-87}_isRejected(){return(this.flags&l.REJECTED)!==0}_setRejected(){this.flags|=l.REJECTED|l.HAS_ERROR,this.flags&=-15}_isRecomputing(){return(this.flags&l.RECOMPUTING)!==0}_setRecomputing(e){const s=l.RECOMPUTING;this.flags=this.flags&~s|-Number(e)&s}_getAsyncState(){return ue[this.flags&Pe]}_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=$.run(this._trackable,this._fn);this._commitDependencies(e),s=!0,we(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=w.acquire(),i=v.acquire(),r=ke(),o={depCount:0},c=d=>{d._lastSeenEpoch!==r&&(d._lastSeenEpoch=r,o.depCount<n.length?(n[o.depCount]=d,i[o.depCount]=d.version):(n.push(d),i.push(d.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=st(s,r,this._unsubscribes,this),this._dependencies=s,this._dependencyVersions=n}_cleanupContext(e,s){this._trackable.addDependency=e.originalAdd,s?(e.prevDeps!==y&&w.release(e.prevDeps),e.prevVersions!==S&&v.release(e.prevVersions)):(w.release(e.nextDeps),v.release(e.nextVersions))}_getAggregateShift(){let e=0;const s=this._dependencies,n=this._dependencyVersions;for(let i=0;i<s.length;i++){const r=s[i],o=n[i];r&&o!==void 0&&(e=e+r.getShift(o)&F)}return e}isUrgent(){return this._getAggregateShift()>=de}_handleSyncResult(e){this._finalizeResolution(e)}_handleAsyncComputation(e){this._setPending(),this._clearDirty(),this._notifyJob(),this._asyncStartAggregateVersion=this._captureVersionSnapshot(),this._asyncRetryCount=0,this._promiseId=this._promiseId>=this.MAX_PROMISE_ID?1:this._promiseId+1;const s=this._promiseId;e.then(n=>{if(s!==this._promiseId)return;const i=this._captureVersionSnapshot()-this._asyncStartAggregateVersion&F;if(de-1-i>>>31&1){if(this._asyncRetryCount<this.MAX_ASYNC_RETRIES){this._asyncRetryCount++,this._markDirty();return}const r=new q(`Async drift exceeded threshold after ${this.MAX_ASYNC_RETRIES} retries. Dependencies changed too rapidly for stable computation.`);this._handleAsyncRejection(r);return}this._handleAsyncResolution(n)}).catch(n=>{s===this._promiseId&&this._handleAsyncRejection(n)})}_captureVersionSnapshot(){let e=0;const s=this._dependencies;for(let n=0;n<s.length;n++){const i=s[n];i&&(e=e+i.version&F)}return e}_handleAsyncResolution(e){this._finalizeResolution(e),this._notifyJob()}_finalizeResolution(e){(!this._isResolved()||!this._equal(this._value,e))&&this.rotatePhase(),this._value=e,this._clearDirty(),this._setResolved(),this._error=null,this._setRecomputing(!1),this._cachedErrors=null,this._errorCacheEpoch=-1}_handleAsyncRejection(e){const s=J(e,q,b.COMPUTED_ASYNC_COMPUTATION_FAILED);if(!this._isRejected()&&this.rotatePhase(),this._error=s,this._setRejected(),this._clearDirty(),this._setRecomputing(!1),this._onError)try{this._onError(s)}catch(n){console.error(b.CALLBACK_ERROR_IN_ERROR_HANDLER,n)}this._notifyJob()}_handleComputationError(e){const s=J(e,q,b.COMPUTED_COMPUTATION_FAILED);if(this._error=s,this._setRejected(),this._clearDirty(),this._setRecomputing(!1),this._onError)try{this._onError(s)}catch(n){console.error(b.CALLBACK_ERROR_IN_ERROR_HANDLER,n)}throw s}_handlePending(){if(this._hasDefaultValue)return this._defaultValue;throw new q(b.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(){Fe(this,$.getCurrent(),this._getFnSubs(),this._getObjSubs())}}Object.freeze(Me.prototype);function Ve(t,e={}){return new Me(t,e)}class ut extends Oe{constructor(e,s={}){super(),this.run=()=>{if(this.isDisposed)throw new B(b.EFFECT_MUST_BE_FUNCTION);this._dependencyVersions!==S&&(v.release(this._dependencyVersions),this._dependencyVersions=S),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&&(w.release(this._dependencies),this._dependencies=y),this._dependencyVersions!==S&&(v.release(this._dependencyVersions),this._dependencyVersions=S)}},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._prepareEffectExecutionContext();let r=!1;try{const o=$.run(this,this._fn);this._commitEffect(i),r=!0,this._checkLoopWarnings(),we(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._cleanup=null,this._dependencies=y,this._dependencyVersions=S,this._unsubscribes=T,this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,this._onError=s.onError??null,this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._fn=e,this._sync=s.sync??!1,this._maxExecutions=s.maxExecutionsPerSecond??z.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=s.maxExecutionsPerFlush??z.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=s.trackModifications??!1,this._historyPtr=0;const n=Number.isFinite(this._maxExecutions);this._historyCapacity=n?Math.min(this._maxExecutions+1,z.MAX_EXECUTIONS_PER_SECOND+1):0,this._history=C&&n&&this._historyCapacity>0?new Array(this._historyCapacity).fill(0):null,this._executionCount=0,N.attachDebugInfo(this,"effect",this.id)}_prepareEffectExecutionContext(){const e=this._dependencies,s=this._dependencyVersions,n=this._unsubscribes,i=w.acquire(),r=v.acquire(),o=Q.acquire(),c=ke();if(e!==y&&n!==T)for(let h=0;h<e.length;h++){const d=e[h];d&&(d._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)}w.release(e.prevDeps)}e.prevUnsubs!==T&&Q.release(e.prevUnsubs),e.prevVersions!==S&&v.release(e.prevVersions)}else{w.release(e.nextDeps),v.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():W.schedule(this.execute)});this._nextUnsubs&&this._nextUnsubs.push(s)}catch(s){console.error(J(s,B,b.EFFECT_EXECUTION_FAILED)),this._nextUnsubs&&this._nextUnsubs.push(()=>{})}}get isDisposed(){return(this.flags&ee.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&ee.EXECUTING)!==0}_setDisposed(){this.flags|=ee.DISPOSED}_setExecuting(e){const s=ee.EXECUTING;this.flags=this.flags&~s|-Number(e)&s}_safeCleanup(){if(this._cleanup){try{this._cleanup()}catch(e){console.error(J(e,B,b.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"),it()>z.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<$e.ONE_SECOND_MS){const o=new B(`Effect executed ${n} times within 1 second. Infinite loop suspected`);if(this.dispose(),console.error(o),this._onError&&this._onError(o),C)throw o}}}_throwInfiniteLoopError(e){const s=new B(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${ge}`);throw this.dispose(),console.error(s),s}_shouldExecute(){if(this._dependencies===y||this._dependencyVersions===S)return!0;for(let e=0;e<this._dependencies.length;e++){const s=this._dependencies[e];if(s){if("value"in s)try{Ee(()=>s.value)}catch{return!0}if(s.version!==this._dependencyVersions[e])return!0}}return!1}_handleExecutionError(e){const s=J(e,B,b.EFFECT_EXECUTION_FAILED);console.error(s),this._onError&&this._onError(s)}_checkLoopWarnings(){if(this._trackModifications&&N.enabled){const e=this._dependencies;for(let s=0;s<e.length;s++){const n=e[s];n&&n._modifiedAtEpoch===this._currentEpoch&&N.warn(!0,`Effect is reading a dependency (${N.getDebugName(n)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function k(t,e={}){if(typeof t!="function")throw new B(b.EFFECT_MUST_BE_FUNCTION);const s=new ut(t,e);return s.execute(),s}function je(t){if(typeof t!="function")throw new U("Batch callback must be a function");W.startBatch();try{return t()}finally{W.endBatch()}}function ht(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in t}function he(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 at(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,d=i-1;for(;h<d;){const m=h+d>>>1;t[n[m]]<c?h=m+1:d=m}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}function lt(){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 j=lt();const g={get enabled(){return j},set enabled(t){j=t},log(t,...e){j&&console.log(`[atom-effect-jquery] ${t}:`,...e)},atomChanged(t,e,s){j&&console.log(`[atom-effect-jquery] Atom "${t||"anonymous"}" changed:`,e,"→",s)},domUpdated(t,e,s){if(!j)return;const n=he(t);console.log(`[atom-effect-jquery] DOM updated: ${n}.${e} =`,s),ft(t)},cleanup(t){j&&console.log(`[atom-effect-jquery] Cleanup: ${t}`)},warn(...t){j&&console.warn("[atom-effect-jquery]",...t)}};function ft(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 dt=new WeakMap;function Be(t,e={}){const s=Le(t,e);return e.name&&dt.set(s,{name:e.name}),s}Object.defineProperty(Be,"debug",{get(){return g.enabled},set(t){g.enabled=t}});function _t(){return new Promise(t=>setTimeout(t,0))}u.extend({atom:Be,computed:Ve,effect:k,batch:je,untracked:Ee,isAtom:_e,isComputed:Te,isReactive:t=>_e(t)||Te(t),nextTick:_t});const se="_aes-bound";class pt{effects=new WeakMap;cleanups=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)}trackEffect(e,s){let n=this.effects.get(e);n||(n=[],this.effects.set(e,n),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(se))),n.push(s)}trackCleanup(e,s){let n=this.cleanups.get(e);n||(n=[],this.cleanups.set(e,n),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(se))),n.push(s)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.delete(e))return;e.classList.remove(se),g.cleanup(he(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){g.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){g.warn("Cleanup error:",c)}}}}cleanupDescendants(e){const s=e.querySelectorAll(`.${se}`);for(let n=0,i=s.length;n<i;n++){const r=s[n];r&&this.boundElements.has(r)&&this.cleanup(r)}}cleanupTree(e){this.cleanupDescendants(e),this.cleanup(e)}}const f=new pt;let K=null;function qe(t=document.body){K||(K=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)||f.isIgnored(h)||h.isConnected||h.nodeType===1&&f.cleanupTree(h))}}}),K.observe(t,{childList:!0,subtree:!0}))}function gt(){K?.disconnect(),K=null}function _(t,e,s,n){const i=u(t),r=t;if(ht(e)){const o=k(()=>{const c=e.value;s(c),g.domUpdated(i,n,c)});f.trackEffect(r,o)}else s(e)}function ze(){return{timeoutId:null,phase:"idle",hasFocus:!1}}function Qe(t,e,s={}){const{debounce:n,event:i="input",parse:r=D=>D,format:o=D=>String(D??"")}=s,c=ze(),h=()=>{c.phase="composing"},d=()=>{c.phase="idle",x()};t.on("compositionstart",h),t.on("compositionend",d);const m=()=>{c.hasFocus=!0},X=()=>{c.hasFocus=!1;const D=o(e.value);t.val()!==D&&t.val(D)};t.on("focus",m),t.on("blur",X);const x=()=>{c.phase==="idle"&&(c.phase="syncing-to-atom",e.value=r(t.val()),c.phase="idle")},A=()=>{c.phase==="idle"&&(n?(c.timeoutId&&clearTimeout(c.timeoutId),c.timeoutId=window.setTimeout(x,n)):x())};return t.on(i,A),t.on("change",A),{effect:()=>{const D=o(e.value),H=t.val();if(H!==D){if(c.hasFocus&&r(H)===e.value)return;c.phase="syncing-to-dom",t.val(D),g.domUpdated(t,"val",D),c.phase="idle"}},cleanup:()=>{t.off(i,A),t.off("change",A),t.off("compositionstart",h),t.off("compositionend",d),t.off("focus",m),t.off("blur",X),c.timeoutId&&clearTimeout(c.timeoutId)}}}u.fn.atomText=function(t,e){return this.each(function(){_(this,t,s=>{const n=e?e(s):String(s??"");u(this).text(n)},"text")})};u.fn.atomHtml=function(t){return this.each(function(){_(this,t,e=>u(this).html(String(e??"")),"html")})};u.fn.atomClass=function(t,e){return this.each(function(){_(this,e,s=>u(this).toggleClass(t,!!s),`class.${t}`)})};u.fn.atomCss=function(t,e,s){return this.each(function(){_(this,e,n=>{const i=s?`${n}${s}`:n;u(this).css(t,i)},`css.${t}`)})};u.fn.atomAttr=function(t,e){return this.each(function(){_(this,e,s=>{const n=u(this);s==null||s===!1?n.removeAttr(t):s===!0?n.attr(t,t):n.attr(t,String(s))},`attr.${t}`)})};u.fn.atomProp=function(t,e){return this.each(function(){_(this,e,s=>u(this).prop(t,s),`prop.${t}`)})};u.fn.atomShow=function(t){return this.each(function(){_(this,t,e=>u(this).toggle(!!e),"show")})};u.fn.atomHide=function(t){return this.each(function(){_(this,t,e=>u(this).toggle(!e),"hide")})};u.fn.atomVal=function(t,e={}){return this.each(function(){const s=u(this),{effect:n,cleanup:i}=Qe(s,t,e),r=k(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=k(()=>{s=!0;const r=!!t.value;e.prop("checked",r),g.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 Et(t,e){_(t.el,e,s=>{t.el.textContent=String(s??"")},"text")}function bt(t,e){_(t.el,e,s=>{t.el.innerHTML=String(s??"")},"html")}function mt(t,e){for(const s in e)_(t.el,e[s],n=>{t.el.classList.toggle(s,!!n)},`class.${s}`)}function yt(t,e){const s=t.el.style;for(const n in e){const i=e[n];if(i===void 0)continue;const r=n.includes("-")?n.replace(/-./g,o=>o.charAt(1).toUpperCase()):n;if(Array.isArray(i)){const[o,c]=i;_(t.el,o,h=>{s[r]=`${h}${c}`},`css.${n}`)}else _(t.el,i,o=>{s[r]=o},`css.${n}`)}}function St(t,e){const s=t.el;for(const n in e){const i=e[n];_(s,i,r=>{if(r==null||r===!1){s.removeAttribute(n);return}s.setAttribute(n,r===!0?n:String(r))},`attr.${n}`)}}function Dt(t,e){const s=t.el;for(const n in e)_(s,e[n],i=>{s[n]=i},`prop.${n}`)}function It(t,e){_(t.el,e,s=>{t.$el.toggle(!!s)},"show")}function Ct(t,e){_(t.el,e,s=>{t.$el.toggle(!s)},"hide")}function xt(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),o=k(i);f.trackEffect(t.el,o),t.trackCleanup(r)}function Tt(t,e){const s=ze(),n=()=>{s.phase==="idle"&&(e.value=t.$el.prop("checked"))};t.$el.on("change",n),t.trackCleanup(()=>t.$el.off("change",n));const i=k(()=>{s.phase="syncing-to-dom";const r=!!e.value;t.$el.prop("checked",r),g.domUpdated(t.$el,"checked",r),s.phase="idle"});f.trackEffect(t.el,i)}function vt(t,e){const s=t.el;for(const n in e){const i=e[n];if(typeof i!="function")continue;const r=o=>i.call(s,u.Event(o));s.addEventListener(n,r),t.trackCleanup(()=>s.removeEventListener(n,r))}}u.fn.atomBind=function(t){return this.each(function(){const s={$el:u(this),el:this,effects:[],trackCleanup:n=>f.trackCleanup(this,n)};t.text!==void 0&&Et(s,t.text),t.html!==void 0&&bt(s,t.html),t.class&&mt(s,t.class),t.css&&yt(s,t.css),t.attr&&St(s,t.attr),t.prop&&Dt(s,t.prop),t.show!==void 0&&It(s,t.show),t.hide!==void 0&&Ct(s,t.hide),t.val!==void 0&&xt(s,t.val),t.checked!==void 0&&Tt(s,t.checked),t.on&&vt(s,t.on)})};u.fn.atomList=function(t,e){const{key:s,render:n,bind:i,update:r,onAdd:o,onRemove:c,empty:h}=e,d=typeof s=="function"?s:m=>m[s];return this.each(function(){const m=u(this),X=he(this),x=new Map,A=new Set;let L=[],P=null;const D=k(()=>{const H=t.value,R=H.length;if(R===0?h&&!P&&(P=u(h).appendTo(m)):P&&(P.remove(),P=null),R===0&&x.size===0){L=[];return}g.log("list",`${X} updating with ${R} items`);const Z=new Array(R),me=new Set;for(let a=0;a<R;a++){const p=H[a],I=d(p,a);Z[a]=I,me.add(I)}for(const[a,p]of x){if(me.has(a)||A.has(a))continue;const I=()=>{p.$el.remove();const E=p.$el[0];E&&f.cleanup(E),A.delete(a),g.log("list",`${X} removed item:`,a)};if(x.delete(a),A.add(a),c){const E=c(p.$el);E instanceof Promise?E.then(I):I()}else I()}if(R===0){L=[];return}const ye=new Map;for(let a=0;a<L.length;a++){const p=L[a];p!==void 0&&ye.set(p,a)}const Se=new Int32Array(R);for(let a=0;a<R;a++){const p=Z[a];Se[a]=p!==void 0?ye.get(p)??-1:-1}const De=at(Se);let ae=De.length-1,O=null;for(let a=R-1;a>=0;a--){const p=Z[a],I=H[a],E=x.get(p);if(E){E.item=I;const M=E.$el[0];if(!M)continue;r&&r(E.$el,I,a),ae>=0&&De[ae]===a?(ae--,M.nextSibling!==O&&(O?E.$el.insertBefore(O):E.$el.appendTo(m))):O?E.$el.insertBefore(O):E.$el.appendTo(m),O=M}else{const M=n(I,a),V=(M instanceof Element,u(M));x.set(p,{$el:V,item:I}),O?V.insertBefore(O):V.appendTo(m),i&&i(V,I,a),o&&o(V),g.log("list",`${X} added item:`,p),O=V[0]||null}}L=Z});f.trackEffect(this,D),f.trackCleanup(this,()=>{x.clear(),A.clear(),L=[],P?.remove()})})};const ie=new WeakMap;u.fn.atomMount=function(t,e={}){return this.each(function(){const s=u(this),n=he(this),i=ie.get(this);i&&(g.log("mount",`${n} unmounting existing component`),i()),g.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,g.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 Y=new WeakMap;let Ae=!1;function be(){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),f.markIgnored(this)}),s.call(this,r)},u.fn.empty=function(){return this.each(function(){f.cleanupDescendants(this)}),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;Y.has(c)?h=Y.get(c):(h=function(...d){return c.apply(this,d)},Y.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];Y.has(c)&&(r[o]=Y.get(c))}return e.apply(this,r)}}const Nt=be;be();u(()=>{qe(document.body)});exports.default=u;exports.atom=Le;exports.batch=je;exports.computed=Ve;exports.disableAutoCleanup=gt;exports.effect=k;exports.enableAutoCleanup=qe;exports.enablejQueryBatching=Nt;exports.enablejQueryOverrides=be;exports.registry=f;exports.untracked=Ee;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("jquery"),qe={ONE_SECOND_MS:1e3},ce={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},A={DISPOSED:1,HAS_FN_SUBS:2,HAS_OBJ_SUBS:4},R={...A,EXECUTING:8},l={...A,DIRTY:8,IDLE:16,PENDING:32,RESOLVED:64,REJECTED:128,RECOMPUTING:256,HAS_ERROR:512},v={...A,SYNC:8,NOTIFICATION_SCHEDULED:16},V={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},Te={MAX_DEPENDENCIES:1e3,WARN_INFINITE_LOOP:!0},H=1073741823,D=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production",Ge=Object.freeze([]);class L extends Error{constructor(e,s=null,n=!0){super(e),this.name="AtomError",this.cause=s,this.recoverable=n,this.timestamp=new Date}}class M extends L{constructor(e,s=null){super(e,s,!0),this.name="ComputedError"}}class Q extends L{constructor(e,s=null){super(e,s,!1),this.name="EffectError"}}class se extends L{constructor(e,s=null){super(e,s,!1),this.name="SchedulerError"}}const p={COMPUTED_MUST_BE_FUNCTION:"Computed function must be a function",COMPUTED_SUBSCRIBER_MUST_BE_FUNCTION:"Subscriber listener must be a function or Subscriber object",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_DEPENDENCY_SUBSCRIPTION_FAILED:"Failed to subscribe to dependency",ATOM_SUBSCRIBER_MUST_BE_FUNCTION:"Subscription listener must be a function or Subscriber object",ATOM_SUBSCRIBER_EXECUTION_FAILED:"Error occurred while executing atom subscribers",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:t=>`Large dependency graph detected: ${t} dependencies`,UNSUBSCRIBE_NON_EXISTENT:"Attempted to unsubscribe a non-existent listener",CALLBACK_ERROR_IN_ERROR_HANDLER:"Error occurred during onError callback execution"},de=Symbol("debugName"),Ye=Symbol("id"),_e=Symbol("type"),xe=Symbol("noDefaultValue");function Qe(t){return"dependencies"in t&&Array.isArray(t.dependencies)}let Oe=0;function Fe(t,e,s){if(t._visitedEpoch!==s){if(t._visitedEpoch=s,t===e)throw new M("Indirect circular dependency detected");if(Qe(t)){const n=t.dependencies;for(let i=0;i<n.length;i++){const o=n[i];o&&Fe(o,e,s)}}}}const U={enabled:typeof process<"u"&&process.env?.NODE_ENV==="development",maxDependencies:Te.MAX_DEPENDENCIES,warnInfiniteLoop:Te.WARN_INFINITE_LOOP,warn(t,e){this.enabled&&t&&console.warn(`[Atom Effect] ${e}`)},checkCircular(t,e){if(t===e)throw new M("Direct circular dependency detected");this.enabled&&(Oe++,Fe(t,e,Oe))},attachDebugInfo(t,e,s){if(!this.enabled)return;const n=t;n[de]=`${e}_${s}`,n[Ye]=s,n[_e]=e},getDebugName(t){if(t!=null&&de in t)return t[de]},getDebugType(t){if(t!=null&&_e in t)return t[_e]}};let Je=1;const Ke=()=>Je++;class Le{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=-1,this._modifiedAtEpoch=-1,this._visitedEpoch=-1,this.id=Ke()&H,this._tempUnsub=void 0}getShift(e){return this.version-e&H}}class Pe extends Le{subscribe(e){if(typeof e=="function")return this._addSubscriber(this._fnSubs,e,A.HAS_FN_SUBS);if(e!==null&&typeof e=="object"&&"execute"in e)return this._addSubscriber(this._objSubs,e,A.HAS_OBJ_SUBS);throw new L(p.ATOM_SUBSCRIBER_MUST_BE_FUNCTION)}subscriberCount(){return this._fnSubs.length+this._objSubs.length}_addSubscriber(e,s,n){if(e.indexOf(s)!==-1)return D&&console.warn("Attempted to subscribe the same listener twice. Ignoring duplicate subscription."),()=>{};e.push(s),this.flags|=n;let i=!1;return()=>{if(i)return;i=!0;const o=e.indexOf(s);if(o!==-1){const r=e.pop();o<e.length&&(e[o]=r),this.flags&=~(e.length===0?n:0)}}}_notifySubscribers(e,s){const n=this.flags,i=A.HAS_FN_SUBS|A.HAS_OBJ_SUBS;if(n&i){if(n&A.HAS_FN_SUBS){const o=this._fnSubs;for(let r=0,c=o.length;r<c;r++){const u=o[r];if(u)try{u(e,s)}catch(a){console.error(new L(p.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,a))}}}if(n&A.HAS_OBJ_SUBS){const o=this._objSubs;for(let r=0,c=o.length;r<c;r++){const u=o[r];if(u)try{u.execute()}catch(a){console.error(new L(p.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED,a))}}}}}}class We{constructor(){this.acquired=0,this.released=0,this.rejected=new Ze}}class Ze{constructor(){this.frozen=0,this.tooLarge=0,this.poolFull=0}}class ge{constructor(){this.pool=[],this.maxPoolSize=50,this.maxReusableCapacity=256,this.stats=D?new We:null}acquire(){const e=this.stats;return D&&e&&e.acquired++,this.pool.pop()??[]}release(e,s){if(s&&e===s||Object.isFrozen(e)){const c=this.stats;D&&c&&e!==s&&c.rejected.frozen++;return}const n=e.length,i=this.pool,o=i.length;if(n>this.maxReusableCapacity||o>=this.maxPoolSize){const c=this.stats;D&&c&&(n>this.maxReusableCapacity?c.rejected.tooLarge++:c.rejected.poolFull++);return}e.length=0,i.push(e);const r=this.stats;D&&r&&r.released++}getStats(){const e=this.stats;if(!D||!e)return null;const{acquired:s,released:n,rejected:i}=e,o=i.frozen+i.tooLarge+i.poolFull;return{acquired:s,released:n,rejected:{frozen:i.frozen,tooLarge:i.tooLarge,poolFull:i.poolFull},leaked:s-n-o,poolSize:this.pool.length}}reset(){this.pool.length=0;const e=this.stats;D&&e&&(e.acquired=0,e.released=0,e.rejected.frozen=0,e.rejected.tooLarge=0,e.rejected.poolFull=0)}}const C=Object.freeze([]),j=Object.freeze([]),x=Object.freeze([]),$=new ge,J=new ge,F=new ge;function B(t,e,s,n){if(e!=null){if((typeof e=="object"||typeof e=="function")&&typeof e.addDependency=="function"){e.addDependency(t);return}if(typeof e=="function"){const i=e;s.indexOf(i)===-1&&(s.push(i),t.flags|=A.HAS_FN_SUBS);return}typeof e=="object"&&typeof e.execute=="function"&&n.indexOf(e)===-1&&(n.push(e),t.flags|=A.HAS_OBJ_SUBS)}}function Re(t,e,s,n){const i=t.length,o=e.length,r=e!==C&&o>0;if(r)for(let u=0;u<o;u++){const a=e[u];a&&(a._tempUnsub=s[u])}const c=J.acquire();c.length=i;for(let u=0;u<i;u++){const a=t[u];if(!a)continue;const d=a._tempUnsub;d?(c[u]=d,a._tempUnsub=void 0):(U.checkCircular(a,n),c[u]=a.subscribe(n))}if(r)for(let u=0;u<o;u++){const a=e[u];if(a){const d=a._tempUnsub;d&&(d(),a._tempUnsub=void 0)}}return s!==j&&J.release(s),c}let ie=0;function ke(){return ie=ie+1&H||1,ie}function et(){return ie}let pe=0,be=0,re=!1;function Ae(){return re?(D&&console.warn("Warning: startFlush() called during flush - ignored to prevent infinite loop detection bypass"),!1):(re=!0,pe=pe+1&H||1,be=0,!0)}function ve(){re=!1}function tt(){return re?++be:0}class st{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=V.MAX_FLUSH_ITERATIONS}get phase(){return this.isProcessing||this.isFlushingSync?2:this.isBatching?1:0}get queueSize(){return this._size}schedule(e){if(D&&typeof e!="function")throw new se("Scheduler callback must be a function");const s=this._epoch;if(e._nextEpoch!==s){if(e._nextEpoch=s,this.isBatching||this.isFlushingSync){this.batchQueue[this.batchQueueSize++]=e;return}this._queueBuffer[this._bufferIndex][this._size++]=e,this.isProcessing||this.flush()}}flush(){this.isProcessing||this._size===0||(this.isProcessing=!0,queueMicrotask(()=>{try{if(this._size===0)return;const e=Ae();this._drainQueue(),e&&ve()}finally{this.isProcessing=!1,this._size>0&&!this.isBatching&&this.flush()}}))}flushSync(){this.isFlushingSync=!0;const e=Ae();try{this._mergeBatchQueue(),this._drainQueue()}finally{this.isFlushingSync=!1,e&&ve()}}_mergeBatchQueue(){const e=this.batchQueueSize;if(e===0)return;const s=++this._epoch,n=this.batchQueue,i=this._queueBuffer[this._bufferIndex];let o=this._size;for(let r=0;r<e;r++){const c=n[r];c._nextEpoch!==s&&(c._nextEpoch=s,i[o++]=c)}this._size=o,this.batchQueueSize=0,n.length>V.BATCH_QUEUE_SHRINK_THRESHOLD&&(n.length=0)}_drainQueue(){let e=0;const s=this.maxFlushIterations;for(;this._size>0;){if(++e>s){this._handleFlushOverflow();return}this._processQueue(),this._mergeBatchQueue()}}_processQueue(){const e=this._bufferIndex,s=this._queueBuffer[e],n=this._size,i=e^1;this._bufferIndex=i,this._size=0,this._epoch++,this._processJobs(s,n)}_handleFlushOverflow(){console.error(new se(`Maximum flush iterations (${this.maxFlushIterations}) exceeded. Possible infinite loop.`)),this._size=0,this._queueBuffer[this._bufferIndex].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(){if(this.batchDepth===0){D&&console.warn("endBatch() called without matching startBatch(). Ignoring.");return}this.batchDepth--,this.batchDepth===0&&(this.flushSync(),this.isBatching=!1)}setMaxFlushIterations(e){if(e<V.MIN_FLUSH_ITERATIONS)throw new se(`Max flush iterations must be at least ${V.MIN_FLUSH_ITERATIONS}`);this.maxFlushIterations=e}}const ee=new st;class nt{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 I=new nt;function me(t){if(typeof t!="function")throw new L("Untracked callback must be a function");const e=I.current;I.current=null;try{return t()}finally{I.current=e}}class it extends Pe{constructor(e,s){super(),this._value=e,this._pendingOldValue=void 0,this._notifyTask=void 0,this._fnSubs=[],this._objSubs=[],s&&(this.flags|=v.SYNC),U.attachDebugInfo(this,"atom",this.id)}get value(){const e=I.current;return e&&B(this,e,this._fnSubs,this._objSubs),this._value}set value(e){const s=this._value;if(Object.is(s,e))return;this._value=e,this.version=this.version+1&H;const n=this.flags,i=v.HAS_FN_SUBS|v.HAS_OBJ_SUBS;n&i&&this._scheduleNotification(s)}_scheduleNotification(e){let s=this.flags;if(s&v.NOTIFICATION_SCHEDULED||(this._pendingOldValue=e,this.flags=s|=v.NOTIFICATION_SCHEDULED),s&v.SYNC&&!ee.isBatching){this._flushNotifications();return}let n=this._notifyTask;n||(n=this._notifyTask=()=>this._flushNotifications()),ee.schedule(n)}_flushNotifications(){const e=this.flags;if(!(e&v.NOTIFICATION_SCHEDULED)||e&v.DISPOSED)return;const s=this._pendingOldValue,n=this._value;this._pendingOldValue=void 0,this.flags&=-17,this._notifySubscribers(n,s)}peek(){return this._value}dispose(){this.flags&v.DISPOSED||(this._fnSubs=[],this._objSubs=[],this.flags|=v.DISPOSED,this._value=void 0,this._pendingOldValue=void 0,this._notifyTask=void 0)}}function Be(t,e={}){return new it(t,e.sync??!1)}function W(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 L)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)}function Ee(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in t&&typeof t.subscribe=="function"}function Ue(t){if(U.enabled&&t!=null&&typeof t=="object"){const e=U.getDebugType(t);if(e)return e==="computed"}return Ee(t)&&"invalidate"in t&&typeof t.invalidate=="function"}function Me(t){return t!=null&&typeof t.then=="function"}const Ve=l.RESOLVED|l.PENDING|l.REJECTED,ue=Array(Ve+1).fill(ce.IDLE);ue[l.RESOLVED]=ce.RESOLVED;ue[l.PENDING]=ce.PENDING;ue[l.REJECTED]=ce.REJECTED;class ot{constructor(e){this._owner=e,this._epoch=-1,this._nextDeps=C,this._nextVersions=x,this._depCount=0}execute(){this._owner._markDirty()}addDependency(e){if(e._lastSeenEpoch===this._epoch)return;e._lastSeenEpoch=this._epoch;const s=this._depCount,n=this._nextDeps,i=this._nextVersions;s<n.length?(n[s]=e,i[s]=e.version):(n.push(e),i.push(e.version)),this._depCount=s+1}reset(){this._epoch=-1,this._nextDeps=C,this._nextVersions=x,this._depCount=0}}class je extends Pe{constructor(e,s={}){if(typeof e!="function")throw new M(p.COMPUTED_MUST_BE_FUNCTION);if(super(),this.MAX_ASYNC_RETRIES=3,this._value=void 0,this.flags=l.DIRTY|l.IDLE,this._error=null,this._promiseId=0,this._equal=s.equal??Object.is,this._fn=e,this._defaultValue="defaultValue"in s?s.defaultValue:xe,this._hasDefaultValue=this._defaultValue!==xe,this._onError=s.onError??null,this.MAX_PROMISE_ID=Number.MAX_SAFE_INTEGER-1,this._fnSubs=[],this._objSubs=[],this._dependencies=C,this._dependencyVersions=x,this._unsubscribes=j,this._cachedErrors=null,this._errorCacheEpoch=-1,this._asyncStartAggregateVersion=0,this._asyncRetryCount=0,this._trackable=new ot(this),U.attachDebugInfo(this,"computed",this.id),U.enabled){const n=this;n.subscriberCount=this.subscriberCount.bind(this),n.isDirty=()=>(this.flags&l.DIRTY)!==0,n.dependencies=this._dependencies,n.stateFlags=""}if(s.lazy===!1)try{this._recompute()}catch{}}get value(){const e=I.current;e&&B(this,e,this._fnSubs,this._objSubs);const s=this.flags;if(s&l.RECOMPUTING){if(this._hasDefaultValue)return this._defaultValue;throw new M(p.COMPUTED_CIRCULAR_DEPENDENCY)}s&(l.DIRTY|l.IDLE)&&this._recompute();const n=this.flags;return n&l.PENDING?this._handlePending():n&l.REJECTED?this._handleRejected():this._value}peek(){return this._value}get state(){const e=I.current;return e&&B(this,e,this._fnSubs,this._objSubs),ue[this.flags&Ve]}get hasError(){const e=I.current;if(e&&B(this,e,this._fnSubs,this._objSubs),this.flags&(l.REJECTED|l.HAS_ERROR))return!0;const s=this._dependencies;for(let n=0,i=s.length;n<i;n++){const o=s[n];if(o&&o.flags&l.HAS_ERROR)return!0}return!1}get isValid(){return!this.hasError}get errors(){const e=I.current;if(e&&B(this,e,this._fnSubs,this._objSubs),!this.hasError)return Ge;const s=et();if(this._errorCacheEpoch===s&&this._cachedErrors!==null)return this._cachedErrors;const n=new Set;this._error&&n.add(this._error);const i=this._dependencies;for(let r=0,c=i.length;r<c;r++){const u=i[r];if(u&&"errors"in u){const a=u.errors;for(let d=0,P=a.length;d<P;d++){const N=a[d];N&&n.add(N)}}}const o=Object.freeze([...n]);return this._cachedErrors=o,this._errorCacheEpoch=s,o}get lastError(){const e=I.current;return e&&B(this,e,this._fnSubs,this._objSubs),this._error}get isPending(){const e=I.current;return e&&B(this,e,this._fnSubs,this._objSubs),(this.flags&l.PENDING)!==0}get isResolved(){const e=I.current;return e&&B(this,e,this._fnSubs,this._objSubs),(this.flags&l.RESOLVED)!==0}invalidate(){this._markDirty();const e=this._dependencyVersions;e!==x&&(F.release(e),this._dependencyVersions=x),this._errorCacheEpoch=-1,this._cachedErrors=null}dispose(){const e=this._unsubscribes;if(e!==j){for(let i=0,o=e.length;i<o;i++){const r=e[i];r&&r()}J.release(e),this._unsubscribes=j}const s=this._dependencies;s!==C&&($.release(s),this._dependencies=C);const n=this._dependencyVersions;n!==x&&(F.release(n),this._dependencyVersions=x),this._fnSubs=[],this._objSubs=[],this.flags=l.DISPOSED|l.DIRTY|l.IDLE,this._error=null,this._value=void 0,this._promiseId=(this._promiseId+1)%this.MAX_PROMISE_ID,this._cachedErrors=null,this._errorCacheEpoch=-1}_clearDirty(){this.flags&=-9}_setPending(){this.flags=(this.flags|l.PENDING)&-209}_isResolved(){return(this.flags&l.RESOLVED)!==0}_setResolved(){this.flags=(this.flags|l.RESOLVED)&-689}_isRejected(){return(this.flags&l.REJECTED)!==0}_setRejected(){this.flags=this.flags&-113|(l.REJECTED|l.HAS_ERROR)}_setRecomputing(e){const s=l.RECOMPUTING;this.flags=this.flags&~s|(e?-1:0)&s}_recompute(){if(this.flags&l.RECOMPUTING)return;this._setRecomputing(!0);const e=this._trackable,s=this._dependencies,n=this._dependencyVersions;e._epoch=ke(),e._nextDeps=$.acquire(),e._nextVersions=F.acquire(),e._depCount=0;let i=!1;try{const o=I.run(e,this._fn),r=e._nextDeps,c=e._nextVersions,u=e._depCount;r.length=u,c.length=u,this._unsubscribes=Re(r,s,this._unsubscribes,this),this._dependencies=r,this._dependencyVersions=c,i=!0,Me(o)?this._handleAsyncComputation(o):this._finalizeResolution(o)}catch(o){let r=o;if(!i)try{const c=e._nextDeps,u=e._nextVersions,a=e._depCount;c.length=a,u.length=a,this._unsubscribes=Re(c,s,this._unsubscribes,this),this._dependencies=c,this._dependencyVersions=u,i=!0}catch(c){r=c}this._handleComputationError(r)}finally{i?(s!==C&&$.release(s),n!==x&&F.release(n)):($.release(e._nextDeps),F.release(e._nextVersions)),e.reset(),this._setRecomputing(!1)}}_handleAsyncComputation(e){this._setPending(),this._clearDirty(),this._notifySubscribers(void 0,void 0),this._asyncStartAggregateVersion=this._captureVersionSnapshot(),this._asyncRetryCount=0,this._promiseId=(this._promiseId+1)%this.MAX_PROMISE_ID;const s=this._promiseId;e.then(n=>{if(s===this._promiseId){if(this._captureVersionSnapshot()!==this._asyncStartAggregateVersion){if(this._asyncRetryCount<this.MAX_ASYNC_RETRIES){this._asyncRetryCount++,this._markDirty();return}const i=new M(`Async drift exceeded threshold after ${this.MAX_ASYNC_RETRIES} retries.`);this._handleAsyncRejection(i);return}this._finalizeResolution(n),this._notifySubscribers(n,void 0)}}).catch(n=>{s===this._promiseId&&this._handleAsyncRejection(n)})}_captureVersionSnapshot(){let e=0;const s=this._dependencies;for(let n=0,i=s.length;n<i;n++){const o=s[n];if(o){const r=o.version;e=((e<<5)-e|0)+r&H}}return e}_handleAsyncRejection(e){const s=W(e,M,p.COMPUTED_ASYNC_COMPUTATION_FAILED);this.flags&l.REJECTED||(this.version=this.version+1&H),this._error=s,this._setRejected(),this._clearDirty();const n=this._onError;if(n)try{n(s)}catch(i){console.error(p.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}this._notifySubscribers(void 0,void 0)}_finalizeResolution(e){(!(this.flags&l.RESOLVED)||!this._equal(this._value,e))&&(this.version=this.version+1&H),this._value=e,this._clearDirty(),this._setResolved(),this._error=null,this._setRecomputing(!1),this._cachedErrors=null,this._errorCacheEpoch=-1}_handleComputationError(e){const s=W(e,M,p.COMPUTED_COMPUTATION_FAILED);this._error=s,this._setRejected(),this._clearDirty(),this._setRecomputing(!1);const n=this._onError;if(n)try{n(s)}catch(i){console.error(p.CALLBACK_ERROR_IN_ERROR_HANDLER,i)}throw s}_handlePending(){if(this._hasDefaultValue)return this._defaultValue;throw new M(p.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}_handleRejected(){const e=this._error;if(e?.recoverable&&this._hasDefaultValue)return this._defaultValue;throw e}execute(){this._markDirty()}_markDirty(){const e=this.flags;e&(l.RECOMPUTING|l.DIRTY)||(this.flags=e|l.DIRTY,this._notifySubscribers(void 0,void 0))}}Object.freeze(je.prototype);function $e(t,e={}){return new je(t,e)}class rt extends Le{constructor(e,s={}){super(),this._cleanup=null,this._dependencies=C,this._dependencyVersions=x,this._unsubscribes=j,this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null,this._executeTask=void 0,this._onError=s.onError??null,this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._fn=e,this._sync=s.sync??!1,this._maxExecutions=s.maxExecutionsPerSecond??V.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=s.maxExecutionsPerFlush??V.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=s.trackModifications??!1,this._executionCount=0,this._historyPtr=0;const n=Number.isFinite(this._maxExecutions),i=n?Math.min(this._maxExecutions+1,V.MAX_EXECUTIONS_PER_SECOND+1):0;this._historyCapacity=i,this._history=D&&n&&i>0?new Array(i).fill(0):null,this._execId=0,U.attachDebugInfo(this,"effect",this.id)}run(){if(this.flags&R.DISPOSED)throw new Q(p.EFFECT_DISPOSED);this.execute(!0)}dispose(){const e=this.flags;if(e&R.DISPOSED)return;this.flags=e|R.DISPOSED,this._safeCleanup();const s=this._unsubscribes;if(s!==j){for(let o=0,r=s.length;o<r;o++){const c=s[o];c&&c()}J.release(s),this._unsubscribes=j}const n=this._dependencies;n!==C&&($.release(n),this._dependencies=C);const i=this._dependencyVersions;i!==x&&(F.release(i),this._dependencyVersions=x),this._executeTask=void 0}addDependency(e){if(!(this.flags&R.EXECUTING))return;const s=this._currentEpoch;if(e._lastSeenEpoch===s)return;e._lastSeenEpoch=s;const n=this._nextDeps,i=this._nextVersions,o=this._nextUnsubs;if(!n||!i||!o)return;n.push(e),i.push(e.version);const r=e._tempUnsub;r?(o.push(r),e._tempUnsub=void 0):this._subscribeTo(e)}execute(e=!1){if(this.flags&(R.DISPOSED|R.EXECUTING)||!e&&!this._shouldExecute())return;this._checkInfiniteLoop(),this._setExecuting(!0),this._safeCleanup();const s=this._prepareEffectExecutionContext();let n=!1;try{const i=I.run(this,this._fn),o=s.nextDeps.length;s.nextDeps.length=o,s.nextVersions.length=o,this._dependencies=s.nextDeps,this._dependencyVersions=s.nextVersions,this._unsubscribes=s.nextUnsubs,n=!0,this._checkLoopWarnings();const r=++this._execId;Me(i)?i.then(c=>{const u=r!==this._execId,a=this.flags&R.DISPOSED;if(u||a){if(typeof c=="function")try{c()}catch(d){this._handleExecutionError(d,p.EFFECT_CLEANUP_FAILED)}return}typeof c=="function"&&(this._cleanup=c)}).catch(c=>{r===this._execId&&this._handleExecutionError(c)}):this._cleanup=typeof i=="function"?i:null}catch(i){n=!0,this._handleExecutionError(i),this._cleanup=null}finally{this._cleanupEffect(s,n),this._setExecuting(!1)}}_prepareEffectExecutionContext(){const e=this._dependencies,s=this._dependencyVersions,n=this._unsubscribes,i=$.acquire(),o=F.acquire(),r=J.acquire(),c=ke();if(e!==C)for(let u=0,a=e.length;u<a;u++){const d=e[u];d&&(d._tempUnsub=n[u])}return this._nextDeps=i,this._nextVersions=o,this._nextUnsubs=r,this._currentEpoch=c,{prevDeps:e,prevVersions:s,prevUnsubs:n,nextDeps:i,nextVersions:o,nextUnsubs:r}}_cleanupEffect(e,s){this._nextDeps=null,this._nextVersions=null,this._nextUnsubs=null;const n=e.prevDeps;if(s){if(n!==C){for(let i=0,o=n.length;i<o;i++){const r=n[i],c=r?r._tempUnsub:void 0;c&&(c(),r&&(r._tempUnsub=void 0))}$.release(n)}e.prevUnsubs!==j&&J.release(e.prevUnsubs),e.prevVersions!==x&&F.release(e.prevVersions)}else{$.release(e.nextDeps),F.release(e.nextVersions);const i=e.nextUnsubs;for(let o=0,r=i.length;o<r;o++)i[o]?.();if(J.release(i),n!==C)for(let o=0,r=n.length;o<r;o++){const c=n[o];c&&(c._tempUnsub=void 0)}}}_subscribeTo(e){try{const s=e.subscribe(()=>{if(this._trackModifications&&this.flags&R.EXECUTING&&(e._modifiedAtEpoch=this._currentEpoch),this._sync){this.execute();return}let i=this._executeTask;i||(i=this._executeTask=()=>this.execute()),ee.schedule(i)}),n=this._nextUnsubs;n&&n.push(s)}catch(s){console.error(W(s,Q,p.EFFECT_EXECUTION_FAILED));const n=this._nextUnsubs;n&&n.push(()=>{})}}get isDisposed(){return(this.flags&R.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&R.EXECUTING)!==0}_setExecuting(e){const s=R.EXECUTING;this.flags=this.flags&~s|(e?-1:0)&s}_safeCleanup(){const e=this._cleanup;if(e){try{e()}catch(s){this._handleExecutionError(s,p.EFFECT_CLEANUP_FAILED)}this._cleanup=null}}_checkInfiniteLoop(){const e=pe;this._lastFlushEpoch!==e&&(this._lastFlushEpoch=e,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError("per-effect"),tt()>V.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError("global"),this._executionCount++;const s=this._history;if(s){const n=Date.now(),i=this._historyPtr,o=this._historyCapacity;s[i]=n;const r=(i+1)%o;this._historyPtr=r;const c=s[r]??0;if(c>0&&n-c<qe.ONE_SECOND_MS){const u=new Q(`Effect executed ${o} times within 1 second. Infinite loop suspected`);if(this.dispose(),console.error(u),this._onError&&this._onError(u),D)throw u;return}}}_throwInfiniteLoopError(e){const s=new Q(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${be}`);throw this.dispose(),console.error(s),s}_shouldExecute(){const e=this._dependencies;if(e.length===0)return!0;const s=this._dependencyVersions;for(let n=0,i=e.length;n<i;n++){const o=e[n];if(o){if(o.version!==s[n])return!0;if("value"in o)try{me(()=>o.value)}catch{return!0}}}return!1}_handleExecutionError(e,s=p.EFFECT_EXECUTION_FAILED){const n=W(e,Q,s);console.error(n);const i=this._onError;if(i)try{i(n)}catch(o){console.error(W(o,Q,p.CALLBACK_ERROR_IN_ERROR_HANDLER))}}_checkLoopWarnings(){if(this._trackModifications&&U.enabled){const e=this._dependencies,s=this._currentEpoch;for(let n=0,i=e.length;n<i;n++){const o=e[n];o&&o._modifiedAtEpoch===s&&U.warn(!0,`Effect is reading a dependency (${U.getDebugName(o)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function z(t,e={}){if(typeof t!="function")throw new Q(p.EFFECT_MUST_BE_FUNCTION);const s=new rt(t,e);return s.execute(),s}function he(t){if(typeof t!="function")throw new L("Batch callback must be a function");ee.startBatch();try{return t()}finally{ee.endBatch()}}function ct(t){return t!==null&&typeof t=="object"&&"value"in t&&"subscribe"in 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(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 r=0;r<e;r++){const c=t[r];if(c===-1)continue;if(i===0||t[n[i-1]]<c){s[r]=i>0?n[i-1]:-1,n[i++]=r;continue}let u=0,a=i-1;for(;u<a;){const d=u+a>>>1;t[n[d]]<c?u=d+1:a=d}c<t[n[u]]&&(u>0&&(s[r]=n[u-1]),n[u]=r)}const o=new Int32Array(i);for(let r=i-1,c=n[i-1];r>=0;r--)o[r]=c,c=s[c];return o}function ht(){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 Y=ht();const E={get enabled(){return Y},set enabled(t){Y=t},log(t,...e){Y&&console.log(`[atom-effect-jquery] ${t}:`,...e)},atomChanged(t,e,s){Y&&console.log(`[atom-effect-jquery] Atom "${t||"anonymous"}" changed:`,e,"→",s)},domUpdated(t,e,s){if(!Y)return;const n=ae(t);console.log(`[atom-effect-jquery] DOM updated: ${n}.${e} =`,s),at(t)},cleanup(t){Y&&console.log(`[atom-effect-jquery] Cleanup: ${t}`)},warn(...t){Y&&console.warn("[atom-effect-jquery]",...t)}};function at(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 o=setTimeout(()=>{const r=t.data(i);t.css("transition","outline 0.5s ease-out"),requestAnimationFrame(()=>{t.css({outline:r?.outline||"","outline-offset":r?.outlineOffset||""});const c=setTimeout(()=>{t.css("transition",r?.transition||""),t.removeData(s),t.removeData(n),t.removeData(i)},500);t.data(n,c)})},100);t.data(s,o)}const lt=new WeakMap;function He(t,e={}){const s=Be(t,e);return e.name&<.set(s,{name:e.name}),s}Object.defineProperty(He,"debug",{get(){return E.enabled},set(t){E.enabled=t}});function ft(){return new Promise(t=>setTimeout(t,0))}h.extend({atom:He,computed:$e,effect:z,batch:he,untracked:me,isAtom:Ee,isComputed:Ue,isReactive:t=>Ee(t)||Ue(t),nextTick:ft});const ne="_aes-bound";class dt{effects=new WeakMap;cleanups=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)}trackEffect(e,s){let n=this.effects.get(e);n||(n=[],this.effects.set(e,n),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(ne))),n.push(s)}trackCleanup(e,s){let n=this.cleanups.get(e);n||(n=[],this.cleanups.set(e,n),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(ne))),n.push(s)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.delete(e))return;this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.classList.remove(ne),E.cleanup(ae(e));const s=this.effects.get(e);if(s){this.effects.delete(e);for(let i=0,o=s.length;i<o;i++){const r=s[i];if(r)try{r.dispose()}catch(c){E.warn("Effect dispose error:",c)}}}const n=this.cleanups.get(e);if(n){this.cleanups.delete(e);for(let i=0,o=n.length;i<o;i++){const r=n[i];if(r)try{r()}catch(c){E.warn("Cleanup error:",c)}}}}cleanupDescendants(e){const s=e.querySelectorAll(`.${ne}`);for(let n=0,i=s.length;n<i;n++){const o=s[n];o&&this.boundElements.has(o)&&this.cleanup(o)}}cleanupTree(e){this.cleanupDescendants(e),this.cleanup(e)}}const _=new dt;let Z=null;function ze(t=document.body){Z||(Z=new MutationObserver(e=>{for(let s=0,n=e.length;s<n;s++){const i=e[s];if(!i)continue;const o=i.removedNodes;for(let r=0,c=o.length;r<c;r++){const u=o[r];u&&(_.isKept(u)||_.isIgnored(u)||u.isConnected||u.nodeType===1&&_.cleanupTree(u))}}}),Z.observe(t,{childList:!0,subtree:!0}))}function _t(){Z?.disconnect(),Z=null}function g(t,e,s,n){const i=h(t);if(ct(e)){const o=z(()=>{const r=e.value;s(r),E.domUpdated(i,n,r)});_.trackEffect(t,o)}else s(e),E.domUpdated(i,n,e)}function Se(){return{timeoutId:null,phase:"idle",hasFocus:!1}}function Xe(t,e,s={}){const{debounce:n,event:i="input",parse:o=m=>m,format:r=m=>String(m??""),equal:c=Object.is}=s,u=Se(),a=()=>{u.phase="composing"},d=()=>{u.phase="idle",k()};t.on("compositionstart",a),t.on("compositionend",d);const P=()=>{u.hasFocus=!0},N=()=>{u.hasFocus=!1;const m=r(e.value);t.val()!==m&&t.val(m)};t.on("focus",P),t.on("blur",N);const k=()=>{u.phase==="idle"&&(u.phase="syncing-to-atom",e.value=o(t.val()),u.phase="idle")},O=()=>{u.phase==="idle"&&(n?(u.timeoutId&&clearTimeout(u.timeoutId),u.timeoutId=window.setTimeout(k,n)):k())};return t.on(i,O),t.on("change",O),{effect:()=>{const m=r(e.value),T=t.val();if(T!==m){if(u.hasFocus&&c(o(T),e.value))return;u.phase="syncing-to-dom",t.val(m),E.domUpdated(t,"val",m),u.phase="idle"}},cleanup:()=>{t.off(i,O),t.off("change",O),t.off("compositionstart",a),t.off("compositionend",d),t.off("focus",P),t.off("blur",N),u.timeoutId&&clearTimeout(u.timeoutId)}}}h.fn.atomText=function(t,e){return this.each(function(){g(this,t,s=>{const n=e?e(s):String(s??"");h(this).text(n)},"text")})};h.fn.atomHtml=function(t){return this.each(function(){g(this,t,e=>h(this).html(String(e??"")),"html")})};h.fn.atomClass=function(t,e){return this.each(function(){g(this,e,s=>h(this).toggleClass(t,!!s),`class.${t}`)})};h.fn.atomCss=function(t,e,s){return this.each(function(){g(this,e,n=>{const i=s?`${n}${s}`:n;h(this).css(t,i)},`css.${t}`)})};h.fn.atomAttr=function(t,e){return this.each(function(){g(this,e,s=>{const n=h(this);s==null||s===!1?n.removeAttr(t):s===!0?n.attr(t,t):n.attr(t,String(s))},`attr.${t}`)})};h.fn.atomProp=function(t,e){return this.each(function(){g(this,e,s=>h(this).prop(t,s),`prop.${t}`)})};h.fn.atomShow=function(t){return this.each(function(){g(this,t,e=>h(this).toggle(!!e),"show")})};h.fn.atomHide=function(t){return this.each(function(){g(this,t,e=>h(this).toggle(!e),"hide")})};h.fn.atomVal=function(t,e={}){return this.each(function(){const s=h(this),{effect:n,cleanup:i}=Xe(s,t,e),o=z(n);_.trackEffect(this,o),_.trackCleanup(this,i)})};h.fn.atomChecked=function(t){return this.each(function(){const e=h(this),s=Se(),n=()=>{s.phase==="idle"&&(t.value=!!e.prop("checked"))};e.on("change",n),_.trackCleanup(this,()=>e.off("change",n));const i=z(()=>{s.phase="syncing-to-dom";const o=!!t.value;e.prop("checked",o),E.domUpdated(e,"checked",o),s.phase="idle"});_.trackEffect(this,i)})};h.fn.atomOn=function(t,e){return this.each(function(){const s=h(this);s.on(t,e),_.trackCleanup(this,()=>s.off(t,e))})};h.fn.atomUnbind=function(){return this.each(function(){_.cleanupTree(this)})};function pt(t,e){g(t.el,e,s=>{t.el.textContent=String(s??"")},"text")}function Et(t,e){g(t.el,e,s=>{t.el.innerHTML=String(s??"")},"html")}function gt(t,e){for(const s in e)g(t.el,e[s],n=>{t.el.classList.toggle(s,!!n)},`class.${s}`)}function bt(t,e){const s=t.el.style;for(const n in e){const i=e[n];if(i===void 0)continue;const o=n.includes("-")?n.replace(/-./g,r=>r.charAt(1).toUpperCase()):n;if(Array.isArray(i)){const[r,c]=i;g(t.el,r,u=>{s[o]=`${u}${c}`},`css.${n}`)}else g(t.el,i,r=>{s[o]=r},`css.${n}`)}}function mt(t,e){const s=t.el;for(const n in e){const i=e[n];g(s,i,o=>{if(o==null||o===!1){s.removeAttribute(n);return}s.setAttribute(n,o===!0?n:String(o))},`attr.${n}`)}}function St(t,e){const s=t.el;for(const n in e)g(s,e[n],i=>{s[n]=i},`prop.${n}`)}function yt(t,e){g(t.el,e,s=>{t.$el.toggle(!!s)},"show")}function It(t,e){g(t.el,e,s=>{t.$el.toggle(!s)},"hide")}function Dt(t,e){const s=Array.isArray(e)?e[0]:e,n=Array.isArray(e)?e[1]:{},{effect:i,cleanup:o}=Xe(t.$el,s,n),r=z(i);_.trackEffect(t.el,r),t.trackCleanup(o)}function Ct(t,e){const s=Se(),n=()=>{s.phase==="idle"&&(e.value=t.$el.prop("checked"))};t.$el.on("change",n),t.trackCleanup(()=>t.$el.off("change",n));const i=z(()=>{s.phase="syncing-to-dom";const o=!!e.value;t.$el.prop("checked",o),E.domUpdated(t.$el,"checked",o),s.phase="idle"});_.trackEffect(t.el,i)}function Nt(t,e){const s=t.el;for(const n in e){const i=e[n];if(typeof i!="function")continue;const o=i,r=c=>{const u=h.Event(c.type,{originalEvent:c});he(()=>o.call(s,u))};s.addEventListener(n,r),t.trackCleanup(()=>s.removeEventListener(n,r))}}h.fn.atomBind=function(t){return this.each(function(){const s={$el:h(this),el:this,trackCleanup:n=>_.trackCleanup(this,n)};t.text!==void 0&&pt(s,t.text),t.html!==void 0&&Et(s,t.html),t.class&>(s,t.class),t.css&&bt(s,t.css),t.attr&&mt(s,t.attr),t.prop&&St(s,t.prop),t.show!==void 0&&yt(s,t.show),t.hide!==void 0&&It(s,t.hide),t.val!==void 0&&Dt(s,t.val),t.checked!==void 0&&Ct(s,t.checked),t.on&&Nt(s,t.on)})};h.fn.atomList=function(t,e){const{key:s,render:n,bind:i,update:o,onAdd:r,onRemove:c,empty:u}=e,a=typeof s=="function"?s:d=>d[s];return this.each(function(){const d=h(this),P=ae(this),N=new Map,k=new Set;let O=[],X=null;const Ie=z(()=>{const m=t.value,T=m.length;if(T===0?u&&!X&&(X=h(u).appendTo(d)):X&&(X.remove(),X=null),T===0&&N.size===0){O=[];return}E.log("list",`${P} updating with ${T} items`);const te=new Array(T),le=new Set;for(let f=0;f<T;f++){const b=m[f],S=a(b,f);E.enabled&&le.has(S)&&console.warn(`[atomList] Duplicate key "${S}" at index ${f}. Items with duplicate keys may cause unexpected behavior.`),te[f]=S,le.add(S)}for(const[f,b]of N){if(le.has(f)||k.has(f))continue;const S=()=>{b.$el.remove();const y=b.$el[0];y&&_.cleanup(y),k.delete(f),E.log("list",`${P} removed item:`,f)};if(N.delete(f),k.add(f),c){const y=c(b.$el);y instanceof Promise?y.then(S):S()}else S()}if(T===0){O=[];return}const De=new Map;for(let f=0;f<O.length;f++){const b=O[f];b!==void 0&&De.set(b,f)}const Ce=new Int32Array(T);for(let f=0;f<T;f++){const b=te[f];Ce[f]=b!==void 0?De.get(b)??-1:-1}const Ne=ut(Ce);let fe=Ne.length-1,w=null;for(let f=T-1;f>=0;f--){const b=te[f],S=m[f],y=N.get(b);if(y){y.item=S;const q=y.$el[0];if(!q)continue;o&&o(y.$el,S,f),fe>=0&&Ne[fe]===f?(fe--,q.nextSibling!==w&&(w?y.$el.insertBefore(w):y.$el.appendTo(d))):w?y.$el.insertBefore(w):y.$el.appendTo(d),w=q}else{const q=n(S,f),G=(q instanceof Element,h(q));N.set(b,{$el:G,item:S}),w?G.insertBefore(w):G.appendTo(d),i&&i(G,S,f),r&&r(G),E.log("list",`${P} added item:`,b),w=G[0]||null}}O=te});_.trackEffect(this,Ie),_.trackCleanup(this,()=>{N.clear(),k.clear(),O=[],X?.remove()})})};const oe=new WeakMap;h.fn.atomMount=function(t,e={}){return this.each(function(){const s=h(this),n=ae(this),i=oe.get(this);i&&(E.log("mount",`${n} unmounting existing component`),i()),E.log("mount",`${n} mounting component`);let o;try{o=t(s,e)}catch(u){console.error("[atom-effect-jquery] Mount error:",u);return}let r=!1;const c=()=>{if(!r){if(r=!0,E.log("mount",`${n} full cleanup`),typeof o=="function")try{o()}catch(u){console.error("[atom-effect-jquery] Cleanup error:",u)}_.cleanupTree(this),oe.delete(this)}};oe.set(this,c),_.trackCleanup(this,c)})};h.fn.atomUnmount=function(){return this.each(function(){oe.get(this)?.()})};const K=new WeakMap;let we=!1;function ye(){if(we)return;we=!0;const t=h.fn.on,e=h.fn.off,s=h.fn.remove,n=h.fn.empty,i=h.fn.detach;h.fn.remove=function(o){return(o?this.filter(o):this).each(function(){_.cleanupTree(this),_.markIgnored(this)}),s.call(this,o)},h.fn.empty=function(){return this.each(function(){_.cleanupDescendants(this)}),n.call(this)},h.fn.detach=function(o){return(o?this.filter(o):this).each(function(){_.keep(this)}),i.call(this,o)},h.fn.on=function(...o){let r=-1;for(let c=o.length-1;c>=0;c--)if(typeof o[c]=="function"){r=c;break}if(r!==-1){const c=o[r];let u;K.has(c)?u=K.get(c):(u=function(a,...d){return he(()=>c.call(this,a,...d))},K.set(c,u)),o[r]=u}return t.apply(this,o)},h.fn.off=function(...o){let r=-1;for(let c=o.length-1;c>=0;c--)if(typeof o[c]=="function"){r=c;break}if(r!==-1){const c=o[r];K.has(c)&&(o[r]=K.get(c))}return e.apply(this,o)}}const Tt=ye;ye();h(()=>{ze(document.body)});exports.default=h;exports.atom=Be;exports.batch=he;exports.computed=$e;exports.disableAutoCleanup=_t;exports.effect=z;exports.enableAutoCleanup=ze;exports.enablejQueryBatching=Tt;exports.enablejQueryOverrides=ye;exports.registry=_;exports.untracked=me;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|