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