@but212/atom-effect-jquery 0.29.0 → 0.30.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 +1 -1
- package/dist/atom-effect-jquery.min.js +10 -2
- package/dist/atom-effect-jquery.min.js.map +1 -1
- package/dist/index.cjs +10 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.mjs +1349 -1185
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ npm install @but212/atom-effect-jquery jquery
|
|
|
20
20
|
<!-- jquery -->
|
|
21
21
|
<script src="https://code.jquery.com/jquery-4.0.0.min.js"></script>
|
|
22
22
|
<!-- atom-effect-jquery -->
|
|
23
|
-
<script src="https://cdn.jsdelivr.net/npm/@but212/atom-effect-jquery@0.
|
|
23
|
+
<script src="https://cdn.jsdelivr.net/npm/@but212/atom-effect-jquery@0.30.0"></script>
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
### Usage
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`jquery`)):typeof define==`function`&&define.amd?define([`exports`,`jquery`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AtomEffectJQuery={},e.jQuery))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e};t=((e,t,i)=>(i=e==null?{}:n(o(e)),c(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)))(t);var l={IDLE:`idle`,PENDING:`pending`,RESOLVED:`resolved`,REJECTED:`rejected`},u={DISPOSED:1,EXECUTING:8},d={DISPOSED:1,IS_COMPUTED:2,DIRTY:8,IDLE:16,PENDING:32,RESOLVED:64,REJECTED:128,RECOMPUTING:256,HAS_ERROR:512,FORCE_COMPUTE:1024},f={DISPOSED:1,SYNC:8,NOTIFICATION_SCHEDULED:16},p={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},m={WARN_INFINITE_LOOP:!0,EFFECT_FREQUENCY_WINDOW:1e3},ee={MAX_PROMISE_ID:2**53-1-1},h={UNINITIALIZED:-1,MIN:1},g=1073741823;typeof process<`u`&&process.env;var _=Object.freeze([]),v=class extends Error{constructor(e,t=null,n=!0){super(e),this.cause=t,this.recoverable=n,this.name=`AtomError`}},y=class extends v{constructor(e,t=null){super(e,t,!0),this.name=`ComputedError`}},b=class extends v{constructor(e,t=null){super(e,t,!1),this.name=`EffectError`}},x=class extends v{constructor(e,t=null){super(e,t,!1),this.name=`SchedulerError`}},S={COMPUTED_MUST_BE_FUNCTION:`Computed target must be a function`,COMPUTED_ASYNC_PENDING_NO_DEFAULT:`Async computation pending with no default value`,COMPUTED_COMPUTATION_FAILED:`Computation execution failed`,COMPUTED_ASYNC_COMPUTATION_FAILED:`Async computation execution failed`,COMPUTED_CIRCULAR_DEPENDENCY:`Circular dependency detected`,COMPUTED_DISPOSED:`Attempted to access disposed computed`,ATOM_SUBSCRIBER_MUST_BE_FUNCTION:`Subscriber must be a function or Subscriber object`,ATOM_INDIVIDUAL_SUBSCRIBER_FAILED:`Subscriber execution failed`,EFFECT_MUST_BE_FUNCTION:`Effect target must be a function`,EFFECT_EXECUTION_FAILED:`Effect execution failed`,EFFECT_CLEANUP_FAILED:`Effect cleanup failed`,EFFECT_DISPOSED:`Attempted to run disposed effect`,SCHEDULER_FLUSH_OVERFLOW:(e,t)=>`Maximum flush iterations (${e}) exceeded. ${t} jobs dropped. Possible infinite loop.`,CALLBACK_ERROR_IN_ERROR_HANDLER:`Exception encountered in onError handler`,EFFECT_FREQUENCY_LIMIT_EXCEEDED:`Effect executed too frequently within 1 second. Suspected infinite loop.`,SCHEDULER_CALLBACK_MUST_BE_FUNCTION:`Scheduler callback must be a function`,SCHEDULER_END_BATCH_WITHOUT_START:`endBatch() called without matching startBatch(). Ignoring.`,BATCH_CALLBACK_MUST_BE_FUNCTION:`Batch callback must be a function`};function C(e,t,n){return e instanceof v?e:e instanceof Error?new t(`${e.name||e.constructor.name||`Error`} (${n}): ${e.message}`,e):new t(`Unexpected error (${n}): ${String(e)}`)}var w=Symbol(`AtomEffect.DebugName`),te=Symbol(`AtomEffect.Type`),ne=Symbol(`AtomEffect.NoDefaultValue`),re=new class{constructor(){this.enabled=!1,this.warnInfiniteLoop=m.WARN_INFINITE_LOOP}warn(e,t){}attachDebugInfo(e,t,n){}getDebugName(e){if(e!=null)return e[w]}getDebugType(e){if(e!=null)return e[te]}},ie=1,ae=()=>ie++|0,oe=class{constructor(){this._s0=null,this._s1=null,this._s2=null,this._s3=null,this._count=0,this._overflow=null,this._freeIndices=null}get size(){return this._count}getAt(e){if(e<4)switch(e){case 0:return this._s0;case 1:return this._s1;case 2:return this._s2;case 3:return this._s3}let t=this._overflow;if(t!==null){let n=t[e-4];return n===void 0?null:n}return null}setAt(e,t){switch(e){case 0:this._s0=t;break;case 1:this._s1=t;break;case 2:this._s2=t;break;case 3:this._s3=t;break;default:this._overflow??=[],this._overflow[e-4]=t}e>=this._count&&(this._count=e+1)}truncateFrom(e){let t=this._count;if(e>=t)return;if(e<=3){if(e<=0){let e=this._s0;e!=null&&(this._onItemRemoved(e),this._s0=null)}if(e<=1){let e=this._s1;e!=null&&(this._onItemRemoved(e),this._s1=null)}if(e<=2){let e=this._s2;e!=null&&(this._onItemRemoved(e),this._s2=null)}if(e<=3){let e=this._s3;e!=null&&(this._onItemRemoved(e),this._s3=null)}}let n=this._overflow;if(n!==null&&t>4){let t=e>4?e-4:0,r=n.length;for(let e=t;e<r;e++){let t=n[e];t!=null&&(this._onItemRemoved(t),n[e]=null)}e<=4?(n.length=0,this._overflow=null):n.length=e-4}this._freeIndices!==null&&(this._freeIndices=null),this._count=e}_onItemRemoved(e){}add(e){if(this._s0===null){this._s0=e,this._count++;return}if(this._s1===null){this._s1=e,this._count++;return}if(this._s2===null){this._s2=e,this._count++;return}if(this._s3===null){this._s3=e,this._count++;return}this._addToOverflow(e)}_addToOverflow(e){let t=this._overflow;if(t===null)this._overflow=[e];else{let n=this._freeIndices;n!==null&&n.length>0?t[n.pop()]=e:t.push(e)}this._count++}remove(e){if(this._s0===e)return this._s0=null,this._count--,!0;if(this._s1===e)return this._s1=null,this._count--,!0;if(this._s2===e)return this._s2=null,this._count--,!0;if(this._s3===e)return this._s3=null,this._count--,!0;let t=this._overflow;if(t==null)return!1;for(let n=0,r=t.length;n<r;n++)if(t[n]===e){t[n]=null,this._count--;let e=this._freeIndices;return e===null&&(e=this._freeIndices=[]),e.push(n),!0}return!1}has(e){if(this._count===0)return!1;if(this._s0===e||this._s1===e||this._s2===e||this._s3===e)return!0;let t=this._overflow;if(t!=null){for(let n=0,r=t.length;n<r;n++)if(t[n]===e)return!0}return!1}forEach(e){let t=this._count;if(t===0)return;let n=0,r=this._s0;if(r!=null&&(e(r),++n===t))return;let i=this._s1;if(i!=null&&(e(i),++n===t))return;let a=this._s2;if(a!=null&&(e(a),++n===t))return;let o=this._s3;if(o!=null&&(e(o),++n===t))return;let s=this._overflow;if(s!=null)for(let r=0,i=s.length;r<i;r++){let i=s[r];if(i!=null&&(e(i),++n===t))return}}forEachIndexed(e){let t=this._count;if(t===0)return 0;let n=0,r=this._s0;if(r!=null&&(e(r),++n===t))return n;let i=this._s1;if(i!=null&&(e(i),++n===t))return n;let a=this._s2;if(a!=null&&(e(a),++n===t))return n;let o=this._s3;if(o!=null&&(e(o),++n===t))return n;let s=this._overflow;if(s!=null)for(let r=0,i=s.length;r<i;r++){let i=s[r];if(i!=null&&(e(i),++n===t))return n}return n}compact(){let e=this._overflow;if(e===null)return;let t=e.length;if(t===0)return;let n=0;for(;n<t;)if(e[n]===null){for(;t>n&&e[t-1]===null;)e.pop(),t--;t>n&&(e[n]=e.pop(),t--,n++)}else n++;this._freeIndices=null,t===0&&(this._overflow=null)}clear(){this._s0=null,this._s1=null,this._s2=null,this._s3=null,this._count=0,this._overflow!==null&&(this._overflow.length=0,this._overflow=null),this._freeIndices=null}dispose(){this.clear()}},se=class extends oe{constructor(...e){super(...e),this._map=null,this._SCAN_THRESHOLD=32,this.hasComputeds=!1}prepareTracking(){this.hasComputeds=!1}_onItemRemoved(e){let t=e.unsub;t&&t()}claimExisting(e,t){let n=this._count;if(t>=n)return!1;let r=n-t;if(this._map!==null||r>this._SCAN_THRESHOLD)return this._claimViaMap(e,t);if(t<4)switch(t){case 0:{let t=this._s0;if(t&&t.node===e&&t.unsub)return t.version=e.version,!0}case 1:if(n>1){let n=this._s1;if(n&&n.node===e&&n.unsub)return n.version=e.version,t!==1&&(this._s1=this._s0,this._s0=n),!0}case 2:if(n>2){let n=this._s2;if(n&&n.node===e&&n.unsub){if(n.version=e.version,t!==2){let e=t===0?this._s0:this._s1;t===0?this._s0=n:this._s1=n,this._s2=e}return!0}}case 3:if(n>3){let n=this._s3;if(n&&n.node===e&&n.unsub){if(n.version=e.version,t!==3){let e;t===0?(e=this._s0,this._s0=n):t===1?(e=this._s1,this._s1=n):(e=this._s2,this._s2=n),this._s3=e}return!0}}}let i=this._overflow;if(i){let n=e.version,r=t>4?t:4,a=i.length;for(let o=r-4;o<a;o++){let r=i[o];if(r&&r.node===e&&r.unsub)return r.version=n,this._swapGeneral(o+4,t,r),!0}}return!1}_claimViaMap(e,t){let n=this._map;if(n===null){n=this._map=new Map;let e=this._count;if(t<4){let e=this._s0;t<=0&&e?.unsub&&n.set(e.node,0);let r=this._s1;t<=1&&r?.unsub&&n.set(r.node,1);let i=this._s2;t<=2&&i?.unsub&&n.set(i.node,2);let a=this._s3;t<=3&&a?.unsub&&n.set(a.node,3)}let r=this._overflow;if(r&&e>4){let e=t>4?t:4,i=r.length;for(let t=e-4;t<i;t++){let e=r[t];e?.unsub&&n.set(e.node,t+4)}}}let r=n.get(e);if(r===void 0||r<t)return!1;let i=this.getAt(r);if(i==null||!i.unsub)return!1;if(i.version=e.version,r!==t){let a;a=t===0?this._s0:t===1?this._s1:t===2?this._s2:t===3?this._s3:this._overflow[t-4]??null,this.setAt(t,i),this.setAt(r,a),a?.unsub&&n.set(a.node,r),n.set(e,t)}return!0}_swapGeneral(e,t,n){if(e===t)return;let r;if(r=t===0?this._s0:t===1?this._s1:t===2?this._s2:t===3?this._s3:this._overflow[t-4]??null,this.setAt(t,n),e===0)this._s0=r;else if(e===1)this._s1=r;else if(e===2)this._s2=r;else if(e===3)this._s3=r;else{let t=this._overflow;t[e-4]=r}}insertNew(e,t){let n=this._count;if(e<n){let t;t=e===0?this._s0:e===1?this._s1:e===2?this._s2:e===3?this._s3:this._overflow[e-4]??null,t!=null&&(this._addToOverflow(t),this._map!==null&&t.unsub&&this._map.set(t.node,this._count-1))}if(e===0)this._s0=t;else if(e===1)this._s1=t;else if(e===2)this._s2=t;else if(e===3)this._s3=t;else{let n=this._overflow;n||(n=[],this._overflow=n),n[e-4]=t}e>=n&&(this._count=e+1)}truncateFrom(e){e>=this._count||(super.truncateFrom(e),this._map!==null&&(this._map.clear(),this._map=null))}disposeAll(){this._count>0&&this.truncateFrom(0),this.hasComputeds=!1}remove(e){throw Error(`remove() is strictly prohibited in DepSlotBuffer to preserve sequential cache paths.`)}compact(){}},ce=class{constructor(e,t,n=void 0){this.node=e,this.version=t,this.unsub=n}},le=class{constructor(e,t){this.fn=e,this.sub=t}notify(e,t){let n=this.fn;if(n!==void 0){n(e,t);return}let r=this.sub;r!==void 0&&r.execute()}},T=new class{constructor(){this.current=null}run(e,t){if(this.current===e)return t();let n=this.current;this.current=e;try{return t()}finally{this.current=n}}};function E(e){let t=T,n=t.current;if(n===null)return e();t.current=null;try{return e()}finally{t.current=n}}var ue=class{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=h.UNINITIALIZED,this._notifying=0,this._hotIndex=-1,this._slots=null,this._deps=null,this.id=ae()&g}get isDisposed(){return(this.flags&d.DISPOSED)!==0}get isComputed(){return(this.flags&d.IS_COMPUTED)!==0}get hasError(){return!1}subscribe(e){let t=typeof e==`function`;if(!t&&(!e||typeof e.execute!=`function`))throw C(TypeError(`Invalid subscriber`),v,S.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);let n=this._slots;n||(n=new oe,this._slots=n);let r=!1;if(n._s0!=null&&(t?n._s0.fn===e:n._s0.sub===e))r=!0;else if(n._s1!=null&&(t?n._s1.fn===e:n._s1.sub===e))r=!0;else if(n._s2!=null&&(t?n._s2.fn===e:n._s2.sub===e))r=!0;else if(n._s3!=null&&(t?n._s3.fn===e:n._s3.sub===e))r=!0;else{let i=n._overflow;if(i!=null)for(let n=0,a=i.length;n<a;n++){let a=i[n];if(a!=null&&(t?a.fn===e:a.sub===e)){r=!0;break}}}if(r)return()=>{};let i=new le(t?e:void 0,t?void 0:e);return n.add(i),()=>this._unsubscribe(i)}_unsubscribe(e){let t=this._slots;t&&(t.remove(e),this._notifying===0&&t.compact())}subscriberCount(){let e=this._slots;return e===null?0:e.size}_notifySubscribers(e,t){let n=this._slots;if(!(n===null||n.size===0)){this._notifying++;try{let r=n._s0;if(r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s1,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s2,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s3,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}let i=n._overflow;if(i!=null)for(let n=0,r=i.length;n<r;n++){let r=i[n];if(r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}}}finally{--this._notifying===0&&n.compact()}}}_logNotifyError(e){console.error(C(e,v,S.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED))}_isDirty(){let e=this._deps;if(e===null||e.size===0)return!1;let t=this._hotIndex;if(t!==-1){let n=e.getAt(t);if(n!=null&&n.node.version!==n.version)return!0}return this._deepDirtyCheck()}},de=Symbol.for(`atom-effect/atom`),fe=Symbol.for(`atom-effect/computed`),pe=Symbol.for(`atom-effect/effect`),me=Symbol.for(`atom-effect/writable`),he=0;function ge(){let e=he+1&g;return he=e===0?1:e,he}function _e(e){let t=e+1&g;return t===0?1:t}var ve=0,ye=!1,be=0;function xe(){return be}function Se(){return ye?!1:(ye=!0,be=ge(),ve=0,!0)}function Ce(){ye=!1}function we(){if(!ye)return 0;let e=++ve;if(e<=p.MAX_EXECUTIONS_PER_FLUSH)return e;throw Error(`[atom-effect] Infinite loop detected: flush execution count exceeded ${p.MAX_EXECUTIONS_PER_FLUSH}`)}var Te=new class{constructor(){this._queueBuffer=[[],[]],this._bufferIndex=0,this._size=0,this._epoch=0,this._isProcessing=!1,this._isFlushingSync=!1,this._batchDepth=0,this._batchQueue=[],this._batchQueueSize=0,this._maxFlushIterations=p.MAX_FLUSH_ITERATIONS,this.onOverflow=null,this._boundRunLoop=this._runLoop.bind(this)}get queueSize(){return this._size}get isBatching(){return this._batchDepth>0}schedule(e){let t=this._epoch;if(e._nextEpoch===t)return;if(e._nextEpoch=t,this._batchDepth>0||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=e;return}let n=this._bufferIndex,r=this._queueBuffer[n];r[this._size++]=e,this._isProcessing||this._flush()}_flush(){this._isProcessing||this._size===0||(this._isProcessing=!0,queueMicrotask(this._boundRunLoop))}_runLoop(){try{if(this._size===0)return;let e=Se();this._drainQueue(),e&&Ce()}finally{this._isProcessing=!1,this._size>0&&this._batchDepth===0&&this._flush()}}_flushSync(){this._isFlushingSync=!0;let e=Se();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=!1,e&&Ce()}}_mergeBatchQueue(){let e=this._batchQueueSize;if(e===0)return;let t=++this._epoch,n=this._batchQueue,r=this._bufferIndex,i=this._queueBuffer[r],a=this._size;for(let r=0;r<e;r++){let e=n[r];e._nextEpoch!==t&&(e._nextEpoch=t,i[a++]=e)}this._size=a,this._batchQueueSize=0,n.length=0}_drainQueue(){let e=0;for(;this._size>0;){if(++e>this._maxFlushIterations){this._handleFlushOverflow();return}this._processQueue(),this._mergeBatchQueue()}}_processQueue(){let e=this._bufferIndex,t=this._queueBuffer[e],n=this._size;this._bufferIndex=e^1,this._size=0,this._epoch=this._epoch+1|0;for(let e=0;e<n;e++){let n=t[e];try{typeof n==`function`?n():n.execute()}catch(e){console.error(new x(`Error occurred during scheduler execution`,e))}}t.length=0}_handleFlushOverflow(){let e=this._size+this._batchQueueSize,t=this._maxFlushIterations;console.error(new x(S.SCHEDULER_FLUSH_OVERFLOW(t,e))),this._size=0;let n=this._bufferIndex;this._queueBuffer[n].length=0,this._batchQueueSize=0;let r=this.onOverflow;if(r)try{r(e)}catch{}}startBatch(){this._batchDepth++}endBatch(){this._batchDepth!==0&&--this._batchDepth===0&&this._flushSync()}setMaxFlushIterations(e){if(e<p.MIN_FLUSH_ITERATIONS)throw new x(`Max flush iterations must be at least ${p.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=e}};function Ee(e){if(typeof e!=`function`)throw TypeError(S.BATCH_CALLBACK_MUST_BE_FUNCTION);let t=Te;t.startBatch();try{return e()}finally{t.endBatch()}}var De=class extends ue{constructor(e,t){super(),this[de]=!0,this[me]=!0,this._value=e,t&&(this.flags|=f.SYNC),re.attachDebugInfo(this,`atom`,this.id)}get isNotificationScheduled(){return(this.flags&f.NOTIFICATION_SCHEDULED)!==0}get isSync(){return(this.flags&f.SYNC)!==0}get value(){return T.current?.addDependency(this),this._value}set value(e){let t=this._value;if(Object.is(t,e))return;this._value=e,this.version=_e(this.version);let n=this.flags;if((n&f.NOTIFICATION_SCHEDULED)!==0)return;let r=this._slots;r==null||r.size===0||(this._pendingOldValue=t,this.flags=n|f.NOTIFICATION_SCHEDULED,(n&f.SYNC)!==0&&!Te.isBatching?this._flushNotifications():Te.schedule(this))}execute(){this._flushNotifications()}_flushNotifications(){let e=this.flags;if((e&(f.NOTIFICATION_SCHEDULED|f.DISPOSED))!==f.NOTIFICATION_SCHEDULED)return;let t=this._pendingOldValue;this._pendingOldValue=void 0,this.flags=e&~f.NOTIFICATION_SCHEDULED,this._notifySubscribers(this._value,t)}peek(){return this._value}dispose(){let e=this.flags;(e&f.DISPOSED)===0&&(this._slots?.clear(),this.flags=e|f.DISPOSED,this._value=void 0,this._pendingOldValue=void 0)}_deepDirtyCheck(){return!1}[Symbol.dispose](){this.dispose()}};function Oe(e,t={}){return new De(e,t.sync??!1)}function ke(e){return typeof e==`object`&&!!e&&de in e}function Ae(e){return typeof e==`object`&&!!e&&fe in e}function je(e){return typeof e==`object`&&!!e&&typeof e.then==`function`}var{IDLE:D,DIRTY:O,PENDING:k,RESOLVED:A,REJECTED:j,HAS_ERROR:M,RECOMPUTING:N,DISPOSED:Me,IS_COMPUTED:P,FORCE_COMPUTE:Ne}=d,Pe=class extends ue{constructor(e,t={}){if(typeof e!=`function`)throw new y(S.COMPUTED_MUST_BE_FUNCTION);if(super(),this[de]=!0,this[fe]=!0,this._error=null,this._promiseId=0,this._deps=new se,this._trackEpoch=h.UNINITIALIZED,this._trackCount=0,this._value=void 0,this.flags=P|O|D,this._equal=t.equal??Object.is,this._fn=e,this._defaultValue=`defaultValue`in t?t.defaultValue:ne,this._onError=t.onError??null,re.attachDebugInfo(this,`computed`,this.id),t.lazy===!1)try{this._recompute()}catch{}}get isDirty(){return(this.flags&O)!==0}get isRejected(){return(this.flags&j)!==0}get isRecomputing(){return(this.flags&N)!==0}get _hasErrorInternal(){return(this.flags&M)!==0}_track(){T.current?.addDependency(this)}get value(){T.current?.addDependency(this);let e=this.flags;if((e&(A|O|D))===A)return this._value;if((e&Me)!==0)throw new y(S.COMPUTED_DISPOSED);if((e&N)!==0){let e=this._defaultValue;if(e!==ne)return e;throw new y(S.COMPUTED_CIRCULAR_DEPENDENCY)}if((e&(O|D))!==0){let t=this._deps;if((e&D)===0&&(e&Ne)===0&&t.size>0&&!this._isDirty()?e=this.flags&=~O:(this._recompute(),e=this.flags),(e&A)!==0)return this._value}let t=this._defaultValue,n=t!==ne;if((e&k)!==0){if(n)return t;throw new y(S.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if((e&j)!==0){if(n)return t;throw this._error}return this._value}peek(){return this._value}get state(){T.current?.addDependency(this);let e=this.flags;return(e&A)===0?(e&k)===0?(e&j)===0?l.IDLE:l.REJECTED:l.PENDING:l.RESOLVED}get hasError(){if(T.current?.addDependency(this),(this.flags&(j|M))!==0)return!0;let e=this._deps;if(!e.hasComputeds)return!1;let t=e.size;for(let n=0;n<t;n++)if(e.getAt(n)?.node.hasError)return!0;return!1}get isValid(){return!this.hasError}get errors(){T.current?.addDependency(this);let e=this._error,t=this._deps;if(!t.hasComputeds)return e==null?_:Object.freeze([e]);let n=[];e!=null&&n.push(e);let r=t.size;for(let e=0;e<r;e++){let r=t.getAt(e);if(r==null)continue;let i=r.node;(i.flags&P)!==0&&i.hasError&&this._collectErrorsFromDep(i,n)}return n.length===0?_:Object.freeze(n)}_collectErrorsFromDep(e,t){let n=e.errors,r=n.length;for(let e=0;e<r;e++){let r=n[e];r!=null&&!t.includes(r)&&t.push(r)}}get lastError(){return T.current?.addDependency(this),this._error}get isPending(){return T.current?.addDependency(this),(this.flags&k)!==0}get isResolved(){return T.current?.addDependency(this),(this.flags&A)!==0}invalidate(){this.flags|=Ne,this._markDirty()}dispose(){(this.flags&Me)===0&&(this._deps.disposeAll(),this._slots!=null&&this._slots.clear(),this.flags=Me|O|D,this._error=null,this._value=void 0,this._hotIndex=-1)}[Symbol.dispose](){this.dispose()}addDependency(e){let t=this._trackEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;let n=this._trackCount++,r=this._deps,i=r.getAt(n);if(i!=null&&i.node===e)i.version=e.version;else if(!r.claimExisting(e,n)){let t=new ce(e,e.version,e.subscribe(this));r.insertNew(n,t)}(e.flags&P)!==0&&(r.hasComputeds=!0)}_recompute(){if(this.isRecomputing)return;this.flags=(this.flags|N)&~Ne,this._trackEpoch=ge(),this._trackCount=0,this._deps.prepareTracking(),this._hotIndex=-1;let e=!1;try{let t=T.run(this,this._fn);this._deps.truncateFrom(this._trackCount),e=!0,je(t)?this._handleAsyncComputation(t):this._finalizeResolution(t)}catch(t){if(!e)try{this._deps.truncateFrom(this._trackCount)}catch{}this._handleError(t,S.COMPUTED_COMPUTATION_FAILED,!0)}finally{this._trackEpoch=h.UNINITIALIZED,this._trackCount=0,this.flags&=~N}}_handleAsyncComputation(e){this.flags=(this.flags|k)&~(D|O|A|j),this._notifySubscribers(void 0,void 0),this._promiseId=(this._promiseId+1)%ee.MAX_PROMISE_ID;let t=this._promiseId;e.then(e=>{if(t===this._promiseId){if(this._isDirty())return this._markDirty();this._finalizeResolution(e),this._notifySubscribers(e,void 0)}},e=>t===this._promiseId&&this._handleError(e,S.COMPUTED_ASYNC_COMPUTATION_FAILED))}_handleError(e,t,n=!1){let r=C(e,y,t);if(!n&&!this.isRejected&&(this.version=_e(this.version)),this._error=r,this.flags=this.flags&~(D|O|k|A)|j|M,this._onError)try{this._onError(r)}catch(e){console.error(S.CALLBACK_ERROR_IN_ERROR_HANDLER,e)}if(n)throw r;this._notifySubscribers(void 0,void 0)}_finalizeResolution(e){let t=this.flags;((t&A)===0||!this._equal(this._value,e))&&(this.version=_e(this.version)),this._value=e,this._error=null,this.flags=(t|A)&~(D|O|k|j|M)}execute(){this._markDirty()}_markDirty(){let e=this.flags;(e&(N|O))===0&&(this.flags=e|O,this._notifySubscribers(void 0,void 0))}_deepDirtyCheck(){let e=this._deps,t=T.current;T.current=null;try{let t=e.size;for(let n=0;n<t;n++){let t=e.getAt(n);if(t==null)continue;let r=t.node;if((r.flags&P)!==0)try{r.value}catch{}if(r.version!==t.version)return this._hotIndex=n,!0}return this._hotIndex=-1,!1}finally{T.current=t}}};function F(e,t={}){return new Pe(e,t)}var Fe=class extends ue{constructor(e,t={}){super(),this[pe]=!0,this._cleanup=null,this._deps=new se,this._currentEpoch=h.UNINITIALIZED,this._lastFlushEpoch=h.UNINITIALIZED,this._fn=e,this._onError=t.onError??null,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??p.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??p.MAX_EXECUTIONS_PER_EFFECT,this._executionsInEpoch=0,this._executionCount=0,this._windowStart=0,this._windowCount=0,this._execId=0,this._trackCount=0,this._sync?this._notifyCallback=()=>this.execute():this._notifyCallback=()=>Te.schedule(this),re.attachDebugInfo(this,`effect`,this.id)}run(){if(this.isDisposed)throw new b(S.EFFECT_DISPOSED);this.execute(!0)}dispose(){this.isDisposed||(this.flags|=u.DISPOSED,this._execCleanup(),this._deps?.disposeAll())}[Symbol.dispose](){this.dispose()}addDependency(e){if((this.flags&u.EXECUTING)===0)return;let t=this._currentEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;let n=this._trackCount++,r=this._deps,i;switch(n){case 0:i=r._s0;break;case 1:i=r._s1;break;case 2:i=r._s2;break;case 3:i=r._s3;break;default:i=r.getAt(n)}i!=null&&i.node===e?i.version=e.version:r.claimExisting(e,n)||this._insertNewDependency(e,n),e.isComputed&&(r.hasComputeds=!0)}_insertNewDependency(e,t){let n;try{let t=e.subscribe(this._notifyCallback);n=new ce(e,e.version,t)}catch(t){let r=C(t,b,S.EFFECT_EXECUTION_FAILED);if(console.error(r),this._onError)try{this._onError(r)}catch{}n=new ce(e,e.version,void 0)}this._deps.insertNew(t,n)}execute(e=!1){let t=this.flags;if((t&(u.DISPOSED|u.EXECUTING))!==0)return;let n=this._deps;if(!e&&n.size>0&&!this._isDirty())return;this._checkInfiniteLoops(),this.flags=t|u.EXECUTING,this._execCleanup(),this._currentEpoch=ge(),this._trackCount=0,n.prepareTracking(),this._hotIndex=-1;let r=!1;try{let e=T.run(this,this._fn);n.truncateFrom(this._trackCount),r=!0,je(e)?this._handleAsyncResult(e):this._cleanup=typeof e==`function`?e:null}catch(e){if(!r)try{n.truncateFrom(this._trackCount)}catch{}this._handleExecutionError(e),this._cleanup=null}finally{this.flags&=~u.EXECUTING}}_handleAsyncResult(e){let t=++this._execId;e.then(e=>{if(t!==this._execId||this.isDisposed){if(typeof e==`function`)try{e()}catch(e){this._handleExecutionError(e,S.EFFECT_CLEANUP_FAILED)}return}typeof e==`function`&&(this._cleanup=e)},e=>t===this._execId&&this._handleExecutionError(e))}_deepDirtyCheck(){let e=T.current;T.current=null;let t=this._deps;try{let e=t.size;for(let n=0;n<e;n++){let e=t.getAt(n);if(e==null)continue;let r=e.node;if(r.isComputed&&this._tryPullComputed(r),r.version!==e.version)return this._hotIndex=n,!0}return!1}finally{T.current=e}}_tryPullComputed(e){try{e.value}catch{}}_execCleanup(){let e=this._cleanup;if(e!=null){this._cleanup=null;try{e()}catch(e){this._handleExecutionError(e,S.EFFECT_CLEANUP_FAILED)}}}_checkInfiniteLoops(){let e=xe();this._lastFlushEpoch!==e&&(this._lastFlushEpoch=e,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError(`per-effect`),we()>p.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError(`global`),this._executionCount++}_checkFrequencyLimit(){if(!Number.isFinite(this._maxExecutions))return;let e=Date.now();if(e-this._windowStart>=m.EFFECT_FREQUENCY_WINDOW){this._windowStart=e,this._windowCount=1;return}if(++this._windowCount>this._maxExecutions){let e=new b(S.EFFECT_FREQUENCY_LIMIT_EXCEEDED);throw this.dispose(),this._handleExecutionError(e),e}}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&u.EXECUTING)!==0}_throwInfiniteLoopError(e){let t=new b(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${ve}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=S.EFFECT_EXECUTION_FAILED){let n=C(e,b,t);if(console.error(n),this._onError)try{this._onError(n)}catch(e){console.error(C(e,b,S.CALLBACK_ERROR_IN_ERROR_HANDLER))}}};function I(e,t={}){if(typeof e!=`function`)throw new b(S.EFFECT_MUST_BE_FUNCTION);let n=new Fe(e,t);return n.execute(),n}var Ie=Symbol.for(`atom-effect/atom`),Le=Symbol.for(`atom-effect/writable`);function Re(e,t,n,r){if(n===t.length)return r;let i=t[n],a=typeof e==`object`&&e?e:{},o=a[i],s=Re(o,t,n+1,r);if(Object.is(o,s))return e;if(Array.isArray(a)){let e=a.slice(),t=Number.parseInt(i,10);return Number.isNaN(t)?e[i]=s:e[t]=s,e}return{...a,[i]:s}}function L(e,t){let n=e,r=t.length;for(let e=0;e<r;e++){if(n==null)return;n=n[t[e]]}return n}function ze(e,t){let n=t.includes(`.`)?t.split(`.`):[t],r=new Set,i=()=>{r.forEach(e=>e()),r.clear()};return{get value(){return L(e.value,n)},set value(t){let r=e.peek(),i=Re(r,n,0,t);i!==r&&(e.value=i)},peek:()=>L(e.peek(),n),subscribe(t){let i=e.subscribe((e,r)=>{let i=L(e,n),a=L(r,n);Object.is(i,a)||t(i,a)});return r.add(i),()=>{i(),r.delete(i)}},subscriberCount:()=>r.size,dispose:i,[Symbol.dispose]:i,[Ie]:!0,[Le]:!0}}var Be=(e,t)=>ze(e,t),Ve=e=>t=>ze(e,t),R=e=>ke(e),He=e=>typeof e==`object`&&!!e&&typeof e.then==`function`;function Ue(e){let t=e.localName,n=e.id;if(n)return`${t}#${n}`;let r=e.className;if(typeof r==`string`){let e=r.trim();if(e)return`${t}.${e.replace(/\s+/g,`.`)}`}return t}var z=Object.prototype.hasOwnProperty;function We(e,t){if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=e,r=t,i=0;for(let e in n)if(z.call(n,e)){if(!z.call(r,e)||n[e]!==r[e])return!1;i++}let a=0;for(let e in r)z.call(r,e)&&a++;return i===a}var B={ROUTE:`[atom-route]`,BINDING:`[atom-binding]`,LIST:`[atom-list]`,MOUNT:`[atom-mount]`},V=Object.freeze({mode:`hash`,basePath:``,autoBindLinks:!1,activeClass:`active`}),Ge={EVENT:`input`,DEBOUNCE:0},Ke={HIGHLIGHT_DURATION_MS:500},qe=new Set([`input`,`select`,`textarea`]),Je=new Set([`innerHTML`,`outerHTML`,`srcdoc`,`__proto__`,`constructor`,`prototype`]),H={ROUTE:{NOT_FOUND:e=>`Route "${e}" not found and no notFound route configured`,TEMPLATE_NOT_FOUND:e=>`Template "${e}" not found`,TARGET_NOT_FOUND:e=>`Target element "${e}" not found`,MALFORMED_URI:e=>`Malformed URI component: ${e}`},SECURITY:{UNSAFE_CONTENT:()=>`Unsafe content neutralized during sanitization.`,BLOCKED_CSS_VALUE:e=>`Blocked dangerous value in CSS style property "${e}".`,BLOCKED_EVENT_HANDLER:e=>`Blocked setting dangerous event handler attribute/property "${e}".`,BLOCKED_PROTOCOL:e=>`Blocked dangerous protocol in "${e}".`,BLOCKED_PROP:e=>`Blocked setting dangerous property "${e}". Use html binding for sanitized HTML.`},BINDING:{INVALID_INPUT_ELEMENT:e=>`Val binding used on non-input element <${e}>.`,MISSING_SOURCE:e=>`[${e}] source is required when prop/name is a string.`,MISSING_CONDITION:e=>`[${e}] condition is required when className is a string.`,UPDATER_ERROR:(e,t)=>`Updater threw in binding "${e}"${t?` (static)`:``}`,CLEANUP_ERROR:e=>`Binding cleanup error${e?`: ${e}`:``}`,PARSE_ERROR:e=>`parse() threw during DOM→Atom sync${e?`: ${e}`:``}`},LIST:{DUPLICATE_KEY:(e,t,n)=>`Duplicate key "${e}" at index ${t} in atomList <${n}>.`},MOUNT:{ERROR:e=>`Mount error${e?` in component <${e}>`:``}`,CLEANUP_ERROR:e=>`Cleanup error${e?` in component <${e}>`:``}`},CORE:{EFFECT_DISPOSE_ERROR:e=>`Effect dispose error${e?`: ${e}`:``}`}},Ye=typeof window<`u`,Xe=`${Ke.HIGHLIGHT_DURATION_MS/1e3}s`;function Ze(){let e=globalThis;if(Ye&&e.window?.__ATOM_DEBUG__===!0)return!0;try{if(e.process?.env?.VITE_ATOM_DEBUG===`true`)return!0}catch{}return!1}var U=new class{constructor(){this._enabled=!1,this._lastState=!1,this.log=()=>{},this.atomChanged=()=>{},this.domUpdated=()=>{},this.cleanup=()=>{},this._enabled=Ze(),this._lastState=this._enabled,this._applyMethods(this._enabled)}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&(this._enabled=e,this._applyMethods(e))}warn(e,t,...n){console.warn(`${e} ${t}`,...n)}error(e,t,n){console.error(`${e} ${t}`,n)}_applyMethods(e){e?(this.log=(e,...t)=>console.log(e,...t),this.atomChanged=(e,t,n,r)=>console.log(`${e} Atom "${t??`anonymous`}" changed:`,n,`→`,r),this.domUpdated=(e,t,n,r)=>{let i=t instanceof Element?t:t[0];i?.isConnected&&(console.log(`${e} DOM updated: ${Ue(i)}.${n} =`,r),this._highlightElement(i))},this.cleanup=(e,t)=>console.log(`${e} Cleanup: ${t}`)):(this.log=()=>{},this.atomChanged=()=>{},this.domUpdated=()=>{},this.cleanup=()=>{})}_highlightElement(e){if(!e.isConnected)return;tt();let t=nt.get(e),n=W.get(e);t!==void 0&&cancelAnimationFrame(t),n!==void 0&&(clearTimeout(n),W.delete(e)),nt.set(e,requestAnimationFrame(()=>{nt.delete(e),e.isConnected&&(e.classList.add(Qe),W.set(e,setTimeout(()=>{e.isConnected&&e.classList.remove(Qe),W.delete(e)},Ke.HIGHLIGHT_DURATION_MS)))}))}},Qe=`atom-debug-highlight`,$e=`data-atom-debug`,et=!1;function tt(){if(et||!Ye)return;if(document.querySelector(`style[${$e}]`)){et=!0;return}let e=Object.assign(document.createElement(`style`),{textContent:`.${Qe}{outline:2px solid rgba(255,68,68,0.8);outline-offset:1px;transition:outline ${Xe} ease-out}`});e.setAttribute($e,``),document.head.appendChild(e),et=!0}var W=new WeakMap,nt=new WeakMap;function rt(e,t){return Oe(e,t)}Object.defineProperty(rt,`debug`,{enumerable:!0,configurable:!0,get:()=>U.enabled,set:e=>{U.enabled=e}});var it=()=>Promise.resolve();t.default.extend({atom:rt,computed:F,effect:I,batch:Ee,untracked:E,isAtom:ke,isComputed:Ae,isReactive:R,nextTick:it,atomLens:ze,composeLens:Be,lensFor:Ve});var at=class{constructor(e=50,t=256){this.limit=e,this.capacity=t,this.pool=[]}acquire(){return this.pool.pop()??[]}release(e){e.length>this.capacity||this.pool.length>=this.limit||Object.isFrozen(e)||(e.length=0,this.pool.push(e))}reset(){this.pool.length=0}},ot=class{constructor(e,t,n=64){this.factory=e,this.reset=t,this.limit=n,this.pool=[]}acquire(){return this.pool.pop()??this.factory()}release(e){this.pool.length<this.limit&&(this.reset(e),this.pool.push(e))}drain(){this.pool.length>0&&(this.pool.length=0)}get size(){return this.pool.length}},st=new at,ct=new at,lt=new ot(()=>({effects:void 0,cleanups:void 0,componentCleanup:void 0}),e=>{e.effects=void 0,e.cleanups=void 0,e.componentCleanup=void 0},128),ut=!1;function dt(){ut||(ut=!0,typeof document<`u`&&document.body&&ft(document.body))}var G=`_aes-bound`,K=new class{constructor(){this.records=new WeakMap,this.preservedNodes=new WeakSet,this.ignoredNodes=new WeakSet}keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}markIgnored(e){this.ignoredNodes.add(e)}isIgnored(e){return this.ignoredNodes.has(e)}getOrCreateRecord(e){dt();let t=this.records.get(e);return t||(t=lt.acquire(),this.records.set(e,t),e.classList.add(G)),t}trackEffect(e,t){let n=this.getOrCreateRecord(e);n.effects||=st.acquire(),n.effects.push(t)}trackCleanup(e,t){let n=this.getOrCreateRecord(e);n.cleanups||=ct.acquire(),n.cleanups.push(t)}setComponentCleanup(e,t){this.getOrCreateRecord(e).componentCleanup=t}hasBind(e){return this.records.has(e)}cleanup(e){let t=e.nodeType===1,n=this.records.get(e);if(this.preservedNodes.delete(e),this.ignoredNodes.delete(e),!n){t&&e.classList.remove(G);return}this.records.delete(e),t&&e.classList.remove(G);let r=t?Ue(e):e.nodeName||`Node`;if(U.cleanup(B.BINDING,r),n.componentCleanup)try{n.componentCleanup()}catch(e){U.error(B.MOUNT,H.MOUNT.CLEANUP_ERROR(r),e)}if(n.effects){for(let e of n.effects)try{e.dispose()}catch(e){U.error(B.BINDING,H.CORE.EFFECT_DISPOSE_ERROR(r),e)}st.release(n.effects),n.effects=void 0}if(n.cleanups){for(let e of n.cleanups)try{e()}catch(e){U.error(B.BINDING,H.BINDING.CLEANUP_ERROR(r),e)}ct.release(n.cleanups),n.cleanups=void 0}lt.release(n)}cleanupDescendants(e){let t=e.getElementsByClassName?e.getElementsByClassName(G):e.querySelectorAll(`.${G}`),n=t.length;if(n===0)return;let r=Array(n);for(let e=0;e<n;e++)r[e]=t[e];for(let e=n-1;e>=0;e--){let t=r[e];this.records.has(t)?this.cleanup(t):t.classList.remove(G)}}cleanupTree(e){(e.nodeType===1||e.nodeType===11)&&this.cleanupDescendants(e),this.cleanup(e)}},q=new Map;function ft(e){if(q.has(e))return;let t=new MutationObserver(e=>{let t=K;for(let n=0,r=e.length;n<r;n++){let r=e[n].removedNodes;for(let e=0,n=r.length;e<n;e++){let n=r[e];if(n.nodeType!==1||n.isConnected)continue;let i=n;t.isKept(i)||t.isIgnored(i)||t.cleanupTree(i)}}});t.observe(e,{childList:!0,subtree:!0}),q.set(e,t)}function pt(){q.forEach(e=>e.disconnect()),q.clear()}var J=Symbol(`atom-effect-internal`),mt=new WeakMap,Y=null,ht=e=>{if(e[J])return e;let t=mt.get(e);return t||(t=function(...t){return Ee(()=>e.apply(this,t))},t[J]=!0,mt.set(e,t)),t};function gt(e){let t={};for(let n in e)e[n]&&(t[n]=ht(e[n]));return t}function _t(e){let t={};for(let n in e){let r=e[n];t[n]=r?mt.get(r)??r:void 0}return t}function vt(){if(Y!==null)return;Y={on:t.default.fn.on,off:t.default.fn.off,remove:t.default.fn.remove,empty:t.default.fn.empty,detach:t.default.fn.detach};let e=Y;t.default.fn.remove=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&(K.markIgnored(t),K.cleanupTree(t))}return e.remove.call(this,t)??this},t.default.fn.empty=function(){let t=this.length;for(let e=0;e<t;e++){let t=this[e];t?.hasChildNodes()&&K.cleanupDescendants(t)}return e.empty.call(this)??this},t.default.fn.detach=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&K.keep(t)}return e.detach.call(this,t)??this},t.default.fn.on=function(...t){let n=t[0];if(n&&typeof n==`object`)t[0]=gt(n);else{let e=t.length-1;e>=0&&typeof t[e]==`function`&&(t[e]=ht(t[e]))}return e.on.apply(this,t)??this},t.default.fn.off=function(...t){let n=t[0];if(n&&typeof n==`object`)t[0]=_t(n);else{let e=t.length-1;if(e>=0&&typeof t[e]==`function`){let n=t[e];t[e]=mt.get(n)??n}}return e.off.apply(this,t)??this}}function yt(){Y!==null&&(t.default.fn.on=Y.on,t.default.fn.off=Y.off,t.default.fn.remove=Y.remove,t.default.fn.empty=Y.empty,t.default.fn.detach=Y.detach,Y=null)}var X=function(e){return e[e.None=0]=`None`,e[e.Focused=1]=`Focused`,e[e.Composing=2]=`Composing`,e[e.SyncingToAtom=4]=`SyncingToAtom`,e[e.SyncingToDom=8]=`SyncingToDom`,e[e.Busy=14]=`Busy`,e}({}),bt=0;function xt(e){e[J]=!0}var St=class{constructor(e,t,n){this.flags=0,this.timeoutId=void 0,this.handleCompositionStart=()=>{this.flags|=X.Composing},this.handleCompositionEnd=()=>{this.flags&=~X.Composing,this.handleInput()},this.handleFocus=()=>{this.flags|=X.Focused},this.handleBlur=()=>{this.flags&=~X.Focused;let e=!!(this.flags&X.Composing);this.flags&=~X.Composing,this.flushPendingDebounce(),e&&this.timeoutId===void 0&&this.syncAtomFromDom(),this.normalizeDomValue()},this.syncDomFromAtom=()=>{let e=this.atom.value;E(()=>{let t=this.format(e),n=this.getRawDom();if(this.isMultipleSelect){if(this.equal(n,e))return}else if(n===t)return;if(this.flags&X.Focused)try{if(this.equal(this.readDom(),e))return}catch{}this.flags|=X.SyncingToDom;try{this.writeDom(e,t),U.domUpdated(B.BINDING,this.$el,`val`,t)}finally{this.flags&=~X.SyncingToDom}})},this.cleanup=()=>{this.$el.off(this.ns),clearTimeout(this.timeoutId),this.timeoutId=void 0},this.$el=e,this.el=e[0],this.atom=t;let r=this.el.tagName,i=r===`SELECT`&&this.el.multiple;this.isMultipleSelect=i,this.isTextControl=r===`INPUT`||r===`TEXTAREA`,this.ns=`.atomBind-${++bt}`;let a=n.debounce??0;this.parse=n.parse??(e=>e),i?(this.format=n.format??(e=>(Array.isArray(e)?e:e?[String(e)]:[]).join(`,`)),this.getRawDom=()=>this.$el.val()||[],this.readDom=()=>this.getRawDom(),this.writeDom=e=>{this.$el.val(e)}):(this.format=n.format??(e=>String(e??``)),this.getRawDom=()=>this.el.value,this.readDom=()=>this.parse(this.el.value),this.isTextControl?this.writeDom=(e,t)=>{if(this.flags&X.Focused)try{let e=this.el,n=e.selectionStart,r=e.selectionEnd;e.value=t;let i=t.length;n!==null&&r!==null&&e.setSelectionRange(n<i?n:i,r<i?r:i)}catch{this.el.value=t}else this.el.value=t}:this.writeDom=(e,t)=>{this.el.value=t});let o=n.equal??Object.is;i?this.equal=(e,t)=>{if(o(e,t))return!0;if(Array.isArray(e)&&Array.isArray(t)){let n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!Object.is(e[r],t[r]))return!1;return!0}return!1}:this.equal=o,a>0?this.handleInput=()=>{this.flags&X.Composing||(clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>this.syncAtomFromDom(),a))}:this.handleInput=()=>{this.flags&X.Composing||this.syncAtomFromDom()},[this.handleFocus,this.handleBlur,this.handleCompositionStart,this.handleCompositionEnd,this.handleInput].forEach(xt),this.bindEvents(n.event??Ge.EVENT)}flushPendingDebounce(){this.timeoutId!==void 0&&(clearTimeout(this.timeoutId),this.timeoutId=void 0,this.syncAtomFromDom())}normalizeDomValue(){let e=this.atom.peek(),t=this.format(e),n=this.getRawDom();this.isMultipleSelect?this.equal(n,e)||this.writeDom(e,t):n!==t&&this.writeDom(e,t)}syncAtomFromDom(){if(!(this.flags&X.Busy)){this.flags|=X.SyncingToAtom;try{let e=this.readDom();this.equal(this.atom.peek(),e)||(this.atom.value=e)}catch(e){U.warn(B.BINDING,H.BINDING.PARSE_ERROR(e instanceof Error?e.message:String(e)),e)}finally{this.flags&=~X.SyncingToAtom}}}bindEvents(e){let t=this.ns,n=e.trim().split(/\s+/).map(e=>`${e}${t}`).join(` `);this.$el.on(`focus${t}`,this.handleFocus).on(`blur${t}`,this.handleBlur).on(`compositionstart${t}`,this.handleCompositionStart).on(`compositionend${t}`,this.handleCompositionEnd).on(n,this.handleInput)}};function Ct(e,t,n){let r=new St(e,t,n);return{fx:I(r.syncDomFromAtom),cleanup:()=>{r&&=(r.cleanup(),null)}}}function wt(e,t,n,r){let i=null,a=t=>{if(!He(t)){i=null;try{n(t),U.domUpdated(B.BINDING,e,r,t)}catch(e){U.error(B.BINDING,H.BINDING.UPDATER_ERROR(r,!0),e)}return}i=t,t.then(a=>{i===t&&E(()=>{try{n(a),U.domUpdated(B.BINDING,e,`${r} (async)`,a)}catch(e){U.error(B.BINDING,H.BINDING.UPDATER_ERROR(r),e)}})}).catch(e=>{i===t&&U.error(B.BINDING,H.BINDING.UPDATER_ERROR(r),e)})},o=R(t);o||typeof t==`function`?K.trackEffect(e,I(()=>{let e=o?t.value:t();E(()=>a(e))},{name:r})):E(()=>a(t))}function Tt(e,t,n,r){let i=Object.keys(t),a=[],o=[],s=[],c={};for(let e=0,n=i.length;e<n;e++){let n=i[e],r=t[n],l=R(r);l||typeof r==`function`?(a.push(n),o.push(r),s.push(l)):c[n]=r}let l=0,u=t=>{let a=[],o={},s=i.length;for(let e=0;e<s;e++){let n=i[e],r=t[n];He(r)?a.push(r.then(e=>({key:n,val:e}))):o[n]=r}let c=a.length;if(c>0){let t=++l;Promise.all(a).then(i=>{if(t===l){for(let e=0;e<c;e++){let t=i[e];o[t.key]=t.val}E(()=>{try{n(o),U.domUpdated(B.BINDING,e,`${r} (async)`,o)}catch(e){U.error(B.BINDING,H.BINDING.UPDATER_ERROR(r),e)}})}})}else{l++;try{n(o),U.domUpdated(B.BINDING,e,r,o)}catch(e){U.error(B.BINDING,H.BINDING.UPDATER_ERROR(r,!0),e)}}};a.length>0?K.trackEffect(e,I(()=>{let e={...c};for(let t=0,n=a.length;t<n;t++){let n=o[t];e[a[t]]=s[t]?n.value:n()}E(()=>u(e))},{name:r})):E(()=>u(c))}var Et=new Set([`href`,`src`,`action`,`formaction`,`xlink:href`,`data`,`poster`,`background`,`cite`,`longdesc`,`profile`,`usemap`,`classid`,`codebase`]),Dt=/^\s*(?:javascript|vbscript)\s*:/i,Ot=/(?:expression\s*\(|behavior\s*:|-moz-binding\s*:|(?:\\[0-9a-f]{1,6}\s*|[\s\x00-\x20/'"])*(?:j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t|v\s*b\s*s\s*c\s*r\s*i\s*p\s*t|d\s*a\s*t\s*a)\s*:(?!image\/))/i,kt=/url\s*\(\s*(?:["']?\s*)?(?:javascript|vbscript)\s*:/i,At=/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,jt=/&#x([0-9a-f]+);?|&#([0-9]+);?/gi,Mt={colon:`:`,Tab:` `,NewLine:`
|
|
2
|
-
`},Nt=/&(colon|Tab|NewLine);/g,Pt=/<\?[\s\S]*?\?>/g,Ft=/(<(script|iframe|object|embed|base|meta|applet|noscript|form|style|link)\b[^>]*>([\s\S]*?)<\/\2>|<(script|iframe|object|embed|base|meta|applet|noscript|form|style|link)\b[^>]*\/?>)/gi,It=/(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t|v\s*b\s*s\s*c\s*r\s*i\s*p\s*t)\s*:/gi,Lt=/data\s*:\s*(?:text\/(?:html|javascript|vbscript|xml)|application\/(?:javascript|xhtml\+xml|xml|x-shockwave-flash)|image\/svg\+xml)/gi,Rt=/\bon\w+\s*=/gim,zt=new RegExp(Ot.source,`gim`);function Bt(e){let t=e.length;for(let n=0;n<t;n++){let t=e.charCodeAt(n);if(t===60||t===38||t<=31&&t!==9&&t!==10&&t!==13)return!0}if(e.indexOf(`:`)!==-1)return!0;let n=e.toLowerCase(),r=n.indexOf(`on`);if(r!==-1&&r<t-2){let e=n.charCodeAt(r+2);if(e>=97&&e<=122)return!0}return!1}function Z(e){if(!e)return``;let t=String(e);if(!Bt(t))return t;let n=t.replace(At,``).replace(jt,(e,t,n)=>String.fromCodePoint(t?parseInt(t,16):parseInt(n,10))).replace(Nt,(e,t)=>Mt[t]??``);if(n.indexOf(`<`)!==-1){n=n.replace(Pt,``);let e;do e=n,n=n.replace(Ft,``);while(n!==e)}return n.replace(It,`data-unsafe-protocol:`).replace(Lt,`data-unsafe-protocol:`).replace(Rt,`data-unsafe-attr=`).replace(zt,`data-unsafe-css:`)}var Vt=e=>e.length<15?!1:e.toLowerCase().includes(`url(`)&&kt.test(e),Ht=new Map;function Ut(e){let t=Ht.get(e);return t===void 0?(t=e.includes(`-`)?e.replace(/-./g,e=>e[1].toUpperCase()):e,Ht.set(e,t),t):t}var Wt=new WeakMap;function Gt(e){let t=Wt.get(e);return t||(t=F(()=>{let t=e.value;return He(t)?t.then(e=>Z(e)):Z(t)}),Wt.set(e,t)),t}function Kt(e){return{el:e,trackCleanup:t=>K.trackCleanup(e,t)}}function qt({el:e},t,n){wt(e,t,t=>{let r=n?n(t):String(t??``);e.textContent!==r&&(e.textContent=r)},`text`)}function Jt({el:e},t){let n=ke(t)?Gt(t):t;wt(e,n,r=>{let i=n===t?Z(r):r;e.innerHTML!==i&&(K.cleanupDescendants(e),e.innerHTML=i)},`html`)}function Yt({el:e},t){let n={};for(let e in t)if(z.call(t,e)){let t=e.trim();n[e]=t.indexOf(` `)===-1?[t]:t.split(/\s+/).filter(Boolean)}Tt(e,t,t=>{for(let r in t){let i=n[r];t[r]?e.classList.add(...i):e.classList.remove(...i)}},`class`)}function Xt({el:e},t){let n=e.style,r={},i={};for(let e in t)if(z.call(t,e)){let n=t[e],[a,o]=Array.isArray(n)?n:[n,``];r[e]=a,i[e]={camel:Ut(e),unit:o}}Tt(e,r,e=>{for(let t in e){let r=i[t],a=e[t],o=r.unit?`${a}${r.unit}`:String(a),s=r.camel;!Vt(o)&&n[s]!==o&&(n[s]=o)}},`css`)}function Zt({el:e},t){let n={},r={},i={};for(let a in t){if(!z.call(t,a))continue;let o=a.toLowerCase();if(o.startsWith(`on`)){console.warn(`${B.BINDING} ${H.SECURITY.BLOCKED_EVENT_HANDLER(a)}`);continue}n[a]=t[a],r[a]={isAria:o.startsWith(`aria-`),isUrl:Et.has(o)},i[a]=e.getAttribute(a)}Tt(e,n,t=>{for(let n in t){let a=r[n],o=t[n];if(o==null||o===!1&&!a.isAria){i[n]!==null&&e.removeAttribute(n),i[n]=null;continue}let s=o===!0?a.isAria?`true`:n:String(o);if(a.isUrl&&Dt.test(s)){console.warn(`${B.BINDING} ${H.SECURITY.BLOCKED_PROTOCOL(n)}`);continue}i[n]!==s&&(e.setAttribute(n,s),i[n]=s)}},`attr`)}function Qt(e,t){let n=e.el,r={},i={};for(let e in t){if(!z.call(t,e))continue;let n=e.toLowerCase();if(n.startsWith(`on`)||Je.has(e)){console.warn(`${B.BINDING} ${n.startsWith(`on`)?H.SECURITY.BLOCKED_EVENT_HANDLER(e):H.SECURITY.BLOCKED_PROP(e)}`);continue}r[e]=t[e],i[e]={isUrl:Et.has(n)}}Tt(e.el,r,e=>{for(let t in e){let r=e[t];if(i[t].isUrl&&typeof r==`string`&&Dt.test(r)){console.warn(`${B.BINDING} ${H.SECURITY.BLOCKED_PROTOCOL(t)}`);continue}n[t]!==r&&(n[t]=r)}},`prop`)}function $t({el:e},t,n){let r=e.style.display===`none`?``:e.style.display;wt(e,t,t=>{let i=n===!!t?`none`:r;e.style.display!==i&&(e.style.display=i)},n?`hide`:`show`)}function en(e,n,r={}){let i=e.el.tagName.toLowerCase();if(!qe.has(i)){console.warn(`${B.BINDING} ${H.BINDING.INVALID_INPUT_ELEMENT(i)}`);return}let{fx:a,cleanup:o}=Ct((0,t.default)(e.el),n,r);K.trackEffect(e.el,a),e.trackCleanup(o)}function tn(e,n){let r=e.el,i=(0,t.default)(r),a=()=>{n.peek()!==r.checked&&(n.value=r.checked,r.type===`radio`&&r.checked&&r.name&&(r.form?(0,t.default)(r.form):(0,t.default)(document)).find(`input[type="radio"][name="${r.name.replace(/"/g,`\\"`)}"]`).not(r).trigger(`change.atomRadioSync`))};a[J]=!0,i.on(`change change.atomRadioSync`,a),e.trackCleanup(()=>i.off(`change change.atomRadioSync`,a)),K.trackEffect(r,I(()=>{let e=!!n.value;E(()=>{r.checked!==e&&(r.checked=e,U.domUpdated(B.BINDING,r,`checked`,e))})}))}function nn(e,n){let r=(0,t.default)(e.el);r.on(n),e.trackCleanup(()=>r.off(n))}function rn({el:e,trackCleanup:n},r,i){let a=(0,t.default)(e);a.on(r,i),n(()=>a.off(r,i))}function an(e){K.cleanupTree(e)}var on=`input, select, textarea`,sn=class{constructor(e,t,n={}){this.form=e,this.atom=t,this.options=n,this.fieldMap=new Map,this.fields=[],this.elementNames=new WeakMap,this.isSyncingFromLeaf=!1,this.init()}init(){let e=I(()=>{let e=this.atom.value;this.isSyncingFromLeaf||!this.fields.length||Ee(()=>{E(()=>{for(let t=0;t<this.fields.length;t++){let n=this.fields[t],r=L(e,n.parts);Object.is(n.atom.peek(),r)||(n.atom.value=r)}})})});K.trackEffect(this.form,e),this.bindElement(this.form),this.setupObserver()}bindElement(e){let t=e.matches?.(on)?[e]:e.querySelectorAll?.(on)||[];for(let e=0,n=t.length;e<n;e++)this.bindControl(t[e])}bindControl(e){if(!(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement))return;let t=e,n=t.name;if(!n)return;let r=this.elementNames.get(t);if(r!==void 0&&r!==n&&K.cleanup(t),this.elementNames.has(t)&&r===n)return;let i=this.acquireField(n);this.elementNames.set(t,n);let a=Kt(t);a.trackCleanup(()=>this.releaseField(t,n)),t instanceof HTMLInputElement&&(t.type===`radio`||t.type===`checkbox`)?this.bindToggle(a,i.atom,t.value,t.type===`checkbox`):en(a,i.atom,this.options)}bindToggle(e,n,r,i){let a=e.el,o=()=>{let e=n.peek();if(i&&Array.isArray(e)){let t=new Set(e.map(String));a.checked?t.add(r):t.delete(r),n.value=Array.from(t)}else n.value=i?a.checked:r};o[J]=!0,(0,t.default)(a).on(`change`,o),e.trackCleanup(()=>(0,t.default)(a).off(`change`,o)),K.trackEffect(a,I(()=>{let e=n.value,t=i?Array.isArray(e)?e.some(e=>String(e)===r):!!e:String(e)===r;a.checked!==t&&(a.checked=t)}))}acquireField(e){let t=this.fieldMap.get(e);if(t)return t.refCount++,t;let n=e.replace(/\[(\w+)\]/g,`.$1`).split(`.`).filter(Boolean),r=Oe(L(this.atom.peek(),n));return t={atom:r,parts:n,name:e,refCount:1,effect:null},t.effect=I(()=>{let t=r.value;this.options.transform&&(t=this.options.transform(e,t));let i=this.atom.peek(),a=Re(i,n,0,t);if(a!==i){this.isSyncingFromLeaf=!0;try{this.atom.value=a,this.options.onChange&&E(()=>this.options.onChange(e,t))}finally{this.isSyncingFromLeaf=!1}}}),this.fieldMap.set(e,t),this.fields.push(t),t}releaseField(e,t){let n=this.fieldMap.get(t);if(n&&--n.refCount<=0){let e=this.fields.indexOf(n);e!==-1&&this.fields.splice(e,1),n.effect?.dispose(),this.fieldMap.delete(t)}K.cleanup(e)}setupObserver(){let e=new MutationObserver(e=>{for(let t=0,n=e.length;t<n;t++){let n=e[t];if(n.type===`childList`)for(let e=0;e<n.addedNodes.length;e++){let t=n.addedNodes[e];t.nodeType===1&&this.bindElement(t)}else n.attributeName===`name`&&this.bindElement(n.target)}});e.observe(this.form,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`name`]}),K.trackCleanup(this.form,()=>e.disconnect())}};function cn(e,t,n={}){new sn(e,t,n)}function Q(e,t){let n=e.length;for(let r=0;r<n;r++){let n=e[r];if(n?.nodeType===1){let e=n;t(Kt(e),e)}else n&&U.log(B.BINDING,`Skipping non-Element node (nodeType=${n.nodeType})`)}return e}t.default.fn.atomText=function(e,t){return Q(this,n=>qt(n,e,t))},t.default.fn.atomHtml=function(e){return Q(this,t=>Jt(t,e))},t.default.fn.atomClass=function(e,t){if(typeof e==`string`){if(t===void 0)return console.warn(`${B.BINDING} ${H.BINDING.MISSING_CONDITION(`atomClass`)}`),this;let n={[e]:t};return Q(this,e=>Yt(e,n))}return Q(this,t=>Yt(t,e))},t.default.fn.atomCss=function(e,t,n){if(typeof e==`string`){if(t===void 0)return console.warn(`${B.BINDING} ${H.BINDING.MISSING_SOURCE(`atomCss`)}`),this;let r={[e]:n?[t,n]:t};return Q(this,e=>Xt(e,r))}return Q(this,t=>Xt(t,e))},t.default.fn.atomAttr=function(e,t){if(typeof e==`string`){if(t===void 0)return console.warn(`${B.BINDING} ${H.BINDING.MISSING_SOURCE(`atomAttr`)}`),this;let n={[e]:t};return Q(this,e=>Zt(e,n))}return Q(this,t=>Zt(t,e))},t.default.fn.atomProp=function(e,t){if(typeof e==`string`){if(t===void 0)return console.warn(`${B.BINDING} ${H.BINDING.MISSING_SOURCE(`atomProp`)}`),this;let n={[e]:t};return Q(this,e=>Qt(e,n))}return Q(this,t=>Qt(t,e))},t.default.fn.atomShow=function(e){return Q(this,t=>$t(t,e,!1))},t.default.fn.atomHide=function(e){return Q(this,t=>$t(t,e,!0))},t.default.fn.atomVal=function(e,t={}){return Q(this,n=>en(n,e,t))},t.default.fn.atomChecked=function(e){return Q(this,t=>tn(t,e))},t.default.fn.atomForm=function(e,t={}){return Q(this,(n,r)=>{r instanceof HTMLFormElement&&cn(r,e,t)})},t.default.fn.atomOn=function(e,t){return Q(this,n=>rn(n,e,t))};var ln=[(e,t)=>qt(e,t.text),(e,t)=>Jt(e,t.html),(e,t)=>Yt(e,t.class),(e,t)=>Xt(e,t.css),(e,t)=>Zt(e,t.attr),(e,t)=>Qt(e,t.prop),(e,t)=>$t(e,t.show,!1),(e,t)=>$t(e,t.hide,!0),(e,t)=>{let n=t.val;Array.isArray(n)?en(e,n[0],n[1]):en(e,n)},(e,t)=>tn(e,t.checked),(e,t)=>{if(e.el instanceof HTMLFormElement){let n=t.form;Array.isArray(n)?cn(e.el,n[0],n[1]):cn(e.el,n)}},(e,t)=>nn(e,t.on)];t.default.fn.atomBind=function(e){let t=0;return e.text!==void 0&&(t|=1),e.html!==void 0&&(t|=2),e.class!==void 0&&(t|=4),e.css!==void 0&&(t|=8),e.attr!==void 0&&(t|=16),e.prop!==void 0&&(t|=32),e.show!==void 0&&(t|=64),e.hide!==void 0&&(t|=128),e.val!==void 0&&(t|=256),e.checked!==void 0&&(t|=512),e.form!==void 0&&(t|=1024),e.on!==void 0&&(t|=2048),t===0?this:Q(this,n=>{let r=t;for(;r>0;){let t=r&-r;ln[31-Math.clz32(t)](n,e),r^=t}})},t.default.fn.atomUnbind=function(){let e=this.length;for(let t=0;t<e;t++){let e=this[t];e?.nodeType===1&&an(e)}return this};var un=new WeakMap,dn=0,fn=new ot(()=>new Map,e=>e.clear()),pn=new ot(()=>new Set,e=>e.clear()),$=new at(100,1024);function mn(e,t,n){if(e instanceof Element){n.insertBefore(e,t);return}let r=e.length;for(let i=0;i<r;i++){let r=e[i];r&&n.insertBefore(r,t)}}function hn(e){return e instanceof Element?(0,t.default)(e):e}var gn=class{constructor(e,t,n){this.$container=e,this.containerSelector=t,this.onRemove=n,this.oldKeys=[],this.oldItems=[],this.oldNodes=[],this.removingKeys=new Set,this.$emptyEl=null,this.keyToIndex=new Map,this.statesBuffer=new Uint8Array(256),this.indicesBuffer=new Int32Array(256)}scheduleRemoval(e,t){let n=()=>{this.fx?.isDisposed||(t[0]?.isConnected&&t.remove(),this.removingKeys.delete(e),U.log(B.LIST,`${this.containerSelector} removed item:`,e))},r=this.onRemove?.(t);r instanceof Promise?r.then(n,n):n()}removeItem(e,t){for(let e=0;e<t.length;e++)t[e]instanceof Element&&t[e].removeAttribute(`data-atom-key`);this.removingKeys.add(e),this.scheduleRemoval(e,t)}dispose(){this.removingKeys.clear(),this.oldKeys.length=0,this.oldItems.length=0,this.oldNodes.length=0,this.keyToIndex.clear(),this.$emptyEl?.remove(),this.$container.off(`.atomList`),this.statesBuffer=new Uint8Array,this.indicesBuffer=new Int32Array}ensureBuffers(e){this.statesBuffer.length<e&&(this.statesBuffer=new Uint8Array(Math.max(e,this.statesBuffer.length*2))),this.indicesBuffer.length<e&&(this.indicesBuffer=new Int32Array(Math.max(e,this.indicesBuffer.length*2)))}};function _n(e,n,r,i){if(e.$emptyEl&&n>0&&(e.$emptyEl.remove(),e.$emptyEl=null),n!==0)return;let{oldKeys:a,oldNodes:o,onRemove:s}=e;if(s)for(let t=0,n=a.length;t<n;t++){let n=a[t];o[t]&&e.removeItem(n,hn(o[t]))}else{for(let t=0,n=a.length;t<n;t++)e.removingKeys.delete(a[t]);r.empty()}i&&!e.$emptyEl&&(e.$emptyEl=typeof i==`string`?(0,t.default)(Z(i)):(0,t.default)(i),e.$emptyEl.appendTo(r)),$.release(e.oldKeys),$.release(e.oldItems),$.release(e.oldNodes),e.oldKeys=[],e.oldItems=[],e.oldNodes=[]}function vn(e,t,n,r,i,a){let{oldKeys:o,oldItems:s,oldNodes:c,removingKeys:l,keyToIndex:u}=e,d=o.length,f=0,p=d-1,m=n-1,ee=a||We;for(;f<=p&&f<=m;){let e=t[f],n=r(e,f);if(o[f]!==n||!ee(s[f],e))break;u.set(n,f++)}for(;p>=f&&m>=f;){let e=t[m],n=r(e,m);if(o[p]!==n||!ee(s[p],e))break;u.set(n,m--),p--}let h=fn.acquire();for(let e=f;e<=p;e++)h.set(o[e],e);let g=pn.acquire();e.ensureBuffers(n);let _=$.acquire();_.length=n;let v=$.acquire();v.length=n;let y=$.acquire();y.length=n;let b=e.statesBuffer,x=e.indicesBuffer,S=$.acquire(),C=$.acquire(),w=$.acquire();for(let e=0;e<f;e++)_[e]=o[e],v[e]=t[e],y[e]=c[e],b[e]=3,x[e]=e;for(let e=d-1,r=n-1;r>m;r--,e--)_[r]=o[e],v[r]=t[r],y[r]=c[e],b[r]=3,x[r]=e;for(let n=f;n<=m;n++){let o=t[n],d=r(o,n);if(_[n]=d,v[n]=o,u.set(d,n),g.has(d)){U.warn(B.LIST,H.LIST.DUPLICATE_KEY(d,n,e.containerSelector)),x[n]=-1;continue}g.add(d);let f=h.get(d);if(f===void 0){S.push(d),C.push(o),w.push(n),x[n]=-1,b[n]=1;continue}let p=s[f];y[n]=c[f],!i&&p!==o&&!(a?a(p,o):We(p,o))?(S.push(d),C.push(o),w.push(n),b[n]=2):b[n]=0,x[n]=l.has(d)?-1:f}return fn.release(h),{newKeys:_,newKeySet:g,newItems:v,newNodes:y,newStates:b,newIndices:x,trKeys:S,trItems:C,trIdxs:w,startIndex:f,oldEndIndex:p,newEndIndex:m}}function yn(e,n,r){let{trKeys:i,trItems:a,trIdxs:o,newNodes:s,newStates:c}=e,l=i.length,u=Array(l),d=[],f=0;for(let e=0;e<l;e++){let t=n.render(a[e],o[e]);u[e]=t,typeof t==`string`&&(d.push(t),f++)}let p=null;if(d.length>0)if(d.length===1)p=[Z(d[0])];else{let e=`<template data-atom-sep="${(dn++).toString(36)}"></template>`;p=Z(d.join(e)).split(e)}if(r&&p&&f===l&&!n.bind&&!n.onAdd&&!n.onRemove&&!n.events)return p;let m=0;for(let e=0;e<l;e++){let n=u[e],r=typeof n==`string`?(0,t.default)(p[m++]):(0,t.default)(n),a=o[e],l=String(i[e]);for(let e=0,t=r.length;e<t;e++){let t=r[e];t instanceof Element&&t.setAttribute(`data-atom-key`,l)}if(c[a]===2&&s[a]){let e=s[a];if(e instanceof Element)K.cleanupTree(e);else for(let t=0,n=e.length;t<n;t++){let n=e[t];n instanceof Element&&K.cleanupTree(n)}hn(e).replaceWith(r)}s[a]=r.length===1?r[0]:r}return null}function bn(e,t){let{startIndex:n,oldEndIndex:r,newKeySet:i}=t;for(let t=n;t<=r;t++){let n=e.oldKeys[t];!i.has(n)&&e.oldNodes[t]&&e.removeItem(n,hn(e.oldNodes[t]))}}function xn(e,n,r,i,a){let{newKeys:o,newItems:s,newNodes:c,newStates:l,newIndices:u}=n,d=o.length;if(a!==null){r.innerHTML=a.join(``);let n=r.firstElementChild;for(let r=0;r<d&&n;r++)n.setAttribute(`data-atom-key`,String(o[r])),c[r]=n,l[r]=0,e.removingKeys.delete(o[r]),U.domUpdated(B.LIST,(0,t.default)(n),`list.add`,s[r]),n=n.nextElementSibling;return}if(e.oldKeys.length===0){let e=document.createDocumentFragment();for(let t=0;t<d;t++){let n=c[t];if(n instanceof Element)e.appendChild(n);else for(let t=0;t<n.length;t++)e.appendChild(n[t])}r.appendChild(e)}else{let e=null,t=2147483647;for(let n=d-1;n>=0;n--){let i=u[n];i!==-1&&i<t?t=i:mn(c[n],e,r);let a=c[n];e=a instanceof Element?a:a[0]??null}}for(let t=0;t<d;t++){let n=l[t];if(n!==3){let r=hn(c[t]),a=s[t];n===0?i.update?.(r,a,t):i.bind?.(r,a,t),n===1&&(i.onAdd?.(r),e.removingKeys.delete(o[t]),U.domUpdated(B.LIST,r,`list.add`,a))}}}t.default.fn.atomList=function(e,n){let r=typeof n.key==`function`?n.key:e=>e[n.key],i={bind:n.bind,update:n.update,onAdd:n.onAdd,onRemove:n.onRemove,events:n.events};for(let a=0,o=this.length;a<o;a++){let o=this[a],s=(0,t.default)(o);s.off(`.atomList`);let c=un.get(o);c&&(c.fx.dispose(),c.ctx.dispose());let l=new gn(s,Ue(o),n.onRemove),u=I(()=>{let t=e.value,a=t.length;E(()=>{if(_n(l,a,s,n.empty),a===0)return;U.log(B.LIST,`${l.containerSelector} updating with ${a} items`);let e=vn(l,t,a,r,n.update,n.isEqual),c=yn(e,n,l.oldKeys.length===0);if(bn(l,e),xn(l,e,o,i,c),n.events)for(let t=e.startIndex;t<=e.oldEndIndex;t++)e.newKeySet.has(l.oldKeys[t])||l.keyToIndex.delete(l.oldKeys[t]);$.release(l.oldKeys),$.release(l.oldItems),$.release(l.oldNodes),l.oldKeys=e.newKeys,l.oldItems=e.newItems,l.oldNodes=e.newNodes,pn.release(e.newKeySet),$.release(e.trKeys),$.release(e.trItems),$.release(e.trIdxs)})});if(l.fx=u,n.events)for(let e in n.events){if(!z.call(n.events,e))continue;let t=e.indexOf(` `),r=t===-1?e:e.slice(0,t),i=t===-1?`> *`:e.slice(t+1).trim(),a=n.events[e];s.on(`${r}.atomList`,i,function(e){let t=e.target.closest?.(`[data-atom-key]`),n=t?.getAttribute(`data-atom-key`);if(n==null)return;let r=n;if(!l.keyToIndex.has(n)){let e=Number(n);!Number.isNaN(e)&&l.keyToIndex.has(e)&&(r=e)}let i=l.keyToIndex.get(r);i!==void 0&&a.call(t,l.oldItems[i],i,e)})}K.trackEffect(o,u),un.set(o,{fx:u,ctx:l}),K.trackCleanup(o,()=>{l.dispose(),un.delete(o)})}return this};var Sn=Object.freeze({});t.default.fn.atomMount=function(e,n){let r=n??Sn,i=e.name||`Component`;for(let n=0,a=this.length;n<a;n++){let a=this[n];if(a){K.cleanupTree(a);try{let n=E(()=>e((0,t.default)(a),r));typeof n==`function`&&K.setComponentCleanup(a,n)}catch(e){U.error(B.MOUNT,H.MOUNT.ERROR(i),e)}}}return this},t.default.fn.atomUnmount=function(){for(let e=0,t=this.length;e<t;e++){let t=this[e];t&&an(t)}return this};function Cn(e,t){try{history.pushState(e,``,t)}catch(e){U.warn(B.ROUTE,`PushState failed (likely file:// protocol or security restriction). UI will update, but URL will not.`,e)}}var wn=class{constructor(e){this.isDestroyed=!1,this.previousRoute=``,this.cleanups=[],this.templateCache=new Map,this.routeCleanups=[],this.lastRawQuery=``,this.cachedParams={},this.config={mode:V.mode,basePath:V.basePath,autoBindLinks:V.autoBindLinks,activeClass:V.activeClass,...e},this.isHistoryMode=this.config.mode===`history`,this.basePath=this.config.basePath.replace(/\/$/,``),this.activeClass=this.config.activeClass,this.$target=(0,t.default)(this.config.target),this.previousUrl=this.isHistoryMode?location.pathname+location.search:location.hash,this.currentRouteAtom=Oe(this.getRouteName()),this.currentRoute=this.currentRouteAtom,this.queryParamsAtom=Oe(this.getQueryParams()),this.queryParams=F(()=>this.queryParamsAtom.value),this.init()}init(){let e=this.isHistoryMode?`popstate`:`hashchange`,t=this.handleUrlChange.bind(this);window.addEventListener(e,t),this.cleanups.push(()=>window.removeEventListener(e,t));let n=I(()=>{let e=this.currentRouteAtom.value;E(()=>{for(let e of this.routeCleanups)try{e()}catch{}this.routeCleanups.length=0}),this.renderRoute(e)});this.cleanups.push(()=>n.dispose()),this.setupAutoBindLinks(),this.$target[0]&&K.trackCleanup(this.$target[0],()=>this.destroy())}getRouteName(){let{default:e}=this.config;if(this.isHistoryMode){let t=this.basePath,n=location.pathname;return t&&n.startsWith(t)&&(n=n.substring(t.length)),n.replace(/^\//,``)||e}return location.hash.split(`?`)[0].substring(1)||e}getQueryParams(){let e=location.hash,t=e.indexOf(`?`),n=this.isHistoryMode?location.search.substring(1):t===-1?``:e.substring(t+1);if(n===this.lastRawQuery)return this.cachedParams;this.lastRawQuery=n;let r={},i=0;n&&new URLSearchParams(n).forEach((e,t)=>{r[t]=e,i++});let a=0;for(let e in this.cachedParams)a++;let o=i!==a;if(!o){for(let e in r)if(r[e]!==this.cachedParams[e]){o=!0;break}}return o&&(n.indexOf(`%`),this.cachedParams=r),this.cachedParams}setUrl(e){let t=this.isHistoryMode?`${this.basePath}/${e}`:`#${e}`;this.isHistoryMode?Cn(null,t):location.hash=t,this.previousUrl=this.isHistoryMode?t:location.hash}restoreUrl(){this.isHistoryMode?Cn(null,this.previousUrl):location.hash=this.previousUrl}renderRoute(e){if(this.isDestroyed||!this.$target[0])return;let{routes:t,notFound:n,beforeTransition:r,afterTransition:i}=this.config,a=t[e]??(n?t[n]:void 0);if(!a){U.warn(B.ROUTE,H.ROUTE.NOT_FOUND(e));return}let o=this.getQueryParams(),s=this.previousRoute;r&&E(()=>r(s,e)),this.$target.empty();let c=o;if(a.onEnter){let e=E(()=>a.onEnter(o,this));e&&(c={...o,...e})}let l=e=>this.routeCleanups.push(e);if(a.render)a.render(this.$target[0],e,c,l,this);else if(a.template){let e=this.templateCache.get(a.template);if(!e){let t=document.querySelector(a.template);if(t instanceof HTMLTemplateElement)e=t,this.templateCache.set(a.template,e);else{U.warn(B.ROUTE,H.ROUTE.TEMPLATE_NOT_FOUND(a.template));return}}this.$target.append(e.content.cloneNode(!0)),a.onMount&&a.onMount(this.$target.children(),l,this)}i&&E(()=>i(s,e)),this.previousRoute=e}handleUrlChange(){if(this.isDestroyed)return;let e=this.isHistoryMode?location.pathname+location.search:location.hash;if(e===this.previousUrl)return;let t=this.getRouteName(),n=this.currentRouteAtom.peek();if(n!==t){if(E(()=>this.config.routes[n]?.onLeave?.(this))===!1){this.restoreUrl();return}this.currentRouteAtom.value=t}this.queryParamsAtom.value=this.getQueryParams(),this.previousUrl=e}setupAutoBindLinks(){if(!this.config.autoBindLinks)return;let e=e=>{e.preventDefault();let t=e.currentTarget.dataset.route;t!=null&&this.navigate(t)};(0,t.default)(document).on(`click`,`[data-route]`,e),this.cleanups.push(()=>(0,t.default)(document).off(`click`,`[data-route]`,e));let n=[],r=I(()=>{let e=this.currentRouteAtom.value,t=this.activeClass;E(()=>{let r=n.length;for(let e=0;e<r;e++){let r=n[e];r.classList.remove(t),r.removeAttribute(`aria-current`)}try{let r=`[data-route="${e.replace(/"/g,`\\"`)}"]`,i=Array.from(document.querySelectorAll(r)),a=i.length;for(let e=0;e<a;e++){let n=i[e];n.classList.add(t),n.setAttribute(`aria-current`,`page`)}n=i}catch{n=[]}})});this.cleanups.push(()=>r.dispose())}navigate(e){if(this.isDestroyed)return;let t=this.currentRouteAtom.peek();if(this.config.routes[t]?.onLeave?.(this)===!1)return;let n=e||this.config.default;n&&(this.setUrl(n),this.queryParamsAtom.value={},this.currentRouteAtom.value=n)}destroy(){if(!this.isDestroyed){this.isDestroyed=!0;for(let e of this.cleanups)try{e()}catch{}this.templateCache.clear()}}};function Tn(e){return new wn(e)}t.default.extend({route:Tn});var En=class{constructor(e,n){this.abortController=null,this.execute=async()=>{this.abortController?.abort(),this.abortController=new AbortController;let{signal:e}=this.abortController,n=this.ajaxOptionsFn?.()??{},r={...this.staticOptions,...n,headers:{...this.staticOptions.headers,...n.headers},url:this.isStaticUrl?this.staticUrl:this.getUrl(),success:void 0,error:void 0,complete:void 0},i=t.default.ajax(r);e.onabort=()=>i.abort(),e.aborted&&i.abort();try{let e=await i;return this.transformFn?this.transformFn(e):e}catch(t){if(e.aborted){let e=Error(`AbortError`);throw e.name=`AbortError`,e}return this.handleError(t)}finally{e.onabort=null,this.abortController?.signal===e&&(this.abortController=null)}};let r=typeof e==`string`;this.isStaticUrl=r,r?(this.staticUrl=e,this.getUrl=()=>this.staticUrl):this.getUrl=e,this.ajaxOptionsFn=typeof n.ajaxOptions==`function`?n.ajaxOptions:void 0;let i=typeof n.ajaxOptions==`object`?n.ajaxOptions:{};this.staticOptions={...i,method:n.method,headers:{...i?.headers,...n.headers}},this.transformFn=n.transform,this.onErrorFn=n.onError}abort(){this.abortController?.abort()}handleError(e){let t;if(e&&e.readyState!==void 0){let n=e;t=Error(`Network Error: ${n.statusText||`Unknown`} (${n.status})`),t.jqXHR=n}else t=e instanceof Error?e:Error(String(e??`Unknown error`));if(this.onErrorFn)try{this.onErrorFn(t)}catch{}throw t}};t.default.extend({atomFetch(e,t){let n=new En(e,t),r=F(n.execute,{defaultValue:t.defaultValue,lazy:t.eager===!1});return Object.assign(r,{abort:()=>n.abort()})}}),(0,t.default)(()=>{vt(),ft(document.body)}),e.default=t.default,e.disableAutoCleanup=pt,e.disablejQueryOverrides=yt,e.enableAutoCleanup=ft,e.enablejQueryOverrides=vt,e.isReactive=R,e.nextTick=it,e.registry=K});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`jquery`)):typeof define==`function`&&define.amd?define([`exports`,`jquery`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AtomEffectJQuery={},e.jQuery))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e};t=((e,t,i)=>(i=e==null?{}:n(o(e)),c(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)))(t,1);var l={DISPOSED:1,IS_COMPUTED:2,DIRTY:256,RECOMPUTING:512,HAS_ERROR:1024,FORCE_COMPUTE:2048,IDLE:65536,PENDING:131072,RESOLVED:262144,REJECTED:524288,ATOM_SYNC:16777216,ATOM_NOTIFICATION_SCHEDULED:33554432,EFFECT_EXECUTING:268435456};Object.freeze({ASYNC_STATE:l.IDLE|l.PENDING|l.RESOLVED|l.REJECTED,COMPUTED_DIRTY_MASK:l.DIRTY|l.RECOMPUTING|l.FORCE_COMPUTE});var u=Object.freeze({IDLE:`idle`,PENDING:`pending`,RESOLVED:`resolved`,REJECTED:`rejected`}),d=Object.freeze({DISPOSED:l.DISPOSED,EXECUTING:l.EFFECT_EXECUTING}),f=Object.freeze({DISPOSED:l.DISPOSED,IS_COMPUTED:l.IS_COMPUTED,DIRTY:l.DIRTY,IDLE:l.IDLE,PENDING:l.PENDING,RESOLVED:l.RESOLVED,REJECTED:l.REJECTED,RECOMPUTING:l.RECOMPUTING,HAS_ERROR:l.HAS_ERROR,FORCE_COMPUTE:l.FORCE_COMPUTE}),p=Object.freeze({DISPOSED:l.DISPOSED,SYNC:l.ATOM_SYNC,NOTIFICATION_SCHEDULED:l.ATOM_NOTIFICATION_SCHEDULED}),m=Object.freeze({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}),h=1073741823,g=Object.freeze({WARN_INFINITE_LOOP:!0,EFFECT_FREQUENCY_WINDOW:1e3,LOOP_THRESHOLD:100}),ee=Object.freeze({MAX_PROMISE_ID:h}),_=Object.freeze({UNINITIALIZED:-1,MIN:1}),v=!1;try{v=!!(typeof globalThis<`u`&&globalThis.__ATOM_DEBUG__||typeof sessionStorage<`u`&&sessionStorage.getItem(`__ATOM_DEBUG__`)===`true`)}catch{}var y=(typeof process<`u`&&process.env,typeof __DEV__<`u`&&!!__DEV__||v),b=Object.freeze([]),x=class e extends Error{constructor(e,t=null,n=!0,r){super(e),this.cause=t,this.recoverable=n,this.code=r,this.name=`AtomError`,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}getChain(){if(this.cause===null||this.cause===void 0)return[this];let t=[this],n=new Set([this]),r=this.cause;for(;r!=null;){let i=n.has(r);if(t.push(r),i)break;if(n.add(r),r instanceof e)r=r.cause;else if(r instanceof Error&&`cause`in r)r=r.cause;else break}return t}toJSON(t=new Set){if(t.has(this))return{name:this.name,message:`[Circular Reference]`,recoverable:this.recoverable,code:this.code};t.add(this);let n=this.cause;return this.cause instanceof e?n=this.cause.toJSON(t):this.cause instanceof Error&&(n={name:this.cause.name,message:this.cause.message,stack:this.cause.stack,cause:this.cause.cause}),{name:this.name,message:this.message,code:this.code,recoverable:this.recoverable,stack:this.stack,cause:n}}static format(e,t,n){return`${e} (${t}): ${n}`}},S=class extends x{constructor(...e){super(...e),this.name=`ComputedError`}},C=class extends x{constructor(e,t=null,n=!1,r){super(e,t,n,r),this.name=`EffectError`}},w=class extends x{constructor(e,t=null,n=!1,r){super(e,t,n,r),this.name=`SchedulerError`}},T={COMPUTED_MUST_BE_FUNCTION:`Computed target must be a function`,COMPUTED_ASYNC_PENDING_NO_DEFAULT:`Async computation pending with no default value`,COMPUTED_COMPUTATION_FAILED:`Computation execution failed`,COMPUTED_ASYNC_COMPUTATION_FAILED:`Async computation execution failed`,COMPUTED_CIRCULAR_DEPENDENCY:`Circular dependency detected`,COMPUTED_DISPOSED:`Attempted to access disposed computed`,ATOM_SUBSCRIBER_MUST_BE_FUNCTION:`Subscriber must be a function or Subscriber object`,ATOM_INDIVIDUAL_SUBSCRIBER_FAILED:`Subscriber execution failed`,EFFECT_MUST_BE_FUNCTION:`Effect target must be a function`,EFFECT_EXECUTION_FAILED:`Effect execution failed`,EFFECT_CLEANUP_FAILED:`Effect cleanup failed`,EFFECT_DISPOSED:`Attempted to run disposed effect`,SCHEDULER_FLUSH_OVERFLOW:(e,t)=>`Maximum flush iterations (${e}) exceeded. ${t} jobs dropped. Possible infinite loop.`,CALLBACK_ERROR_IN_ERROR_HANDLER:`Exception encountered in onError handler`,EFFECT_FREQUENCY_LIMIT_EXCEEDED:`Effect executed too frequently within 1 second. Suspected infinite loop.`,SCHEDULER_CALLBACK_MUST_BE_FUNCTION:`Scheduler callback must be a function`,SCHEDULER_END_BATCH_WITHOUT_START:`endBatch() called without matching startBatch(). Ignoring.`,BATCH_CALLBACK_MUST_BE_FUNCTION:`Batch callback must be a function`};function E(e,t,n){if(e instanceof x)return new t(x.format(e.name,n,e.message),e,e.recoverable,e.code);if(e instanceof Error){let r=e.name||e.constructor.name||`Error`;return new t(x.format(r,n,e.message),e)}return new t(x.format(`Unexpected error`,n,String(e)),e)}var te=Symbol(`AtomEffect.DebugName`),ne=Symbol(`AtomEffect.Id`),re=Symbol(`AtomEffect.Type`),ie=Symbol(`AtomEffect.NoDefaultValue`),ae=`[Atom Effect]`,D=y?new class{constructor(){this.enabled=!0,this.warnInfiniteLoop=g.WARN_INFINITE_LOOP,this._updateCounts=new Map,this._nodeRegistry=new Map,this._threshold=g.LOOP_THRESHOLD,this._cleanupScheduled=!1,this.warn=(e,t)=>{this.enabled&&e&&console.warn(`${ae} ${t}`)},this.registerNode=e=>{this._nodeRegistry.set(e.id,new WeakRef(e))},this.attachDebugInfo=(e,t,n,r)=>{this.enabled&&(Object.defineProperties(e,{[te]:{value:r??`${t}_${n}`,configurable:!0},[ne]:{value:n,configurable:!0},[re]:{value:t,configurable:!0}}),this.registerNode(e))},this.trackUpdate=(e,t)=>{if(!this.enabled||!this.warnInfiniteLoop)return;let n=this._updateCounts,r=(n.get(e)??0)+1;r>this._threshold?this.warn(!0,`Infinite loop detected for ${t??`dependency ${e}`}. Over ${this._threshold} updates in a single execution scope.`):n.set(e,r),this._cleanupScheduled||(this._cleanupScheduled=!0,Promise.resolve().then(()=>{this._updateCounts.clear(),this._cleanupScheduled=!1}))},this.dumpGraph=()=>{let e=[];for(let[t,n]of this._nodeRegistry){let r=n.deref();r?e.push({id:t,name:this.getDebugName(r),type:this.getDebugType(r),updateCount:this._updateCounts.get(t)??0}):(this._nodeRegistry.delete(t),this._updateCounts.delete(t))}return e},this.getDebugName=e=>{if(e)return e[te]},this.getDebugType=e=>{if(e)return e[re]}}}:{enabled:!1,warnInfiniteLoop:!1,warn:()=>{},registerNode:()=>{},attachDebugInfo:()=>{},trackUpdate:()=>{},dumpGraph:()=>[],getDebugName:()=>{},getDebugType:()=>{}},oe=1,se=()=>oe++|0,ce=class{constructor(){this._s0=null,this._s1=null,this._s2=null,this._s3=null,this._count=0,this._actualCount=0,this._overflow=null,this._freeIndices=null}_rawWrite(e,t){if(e<4)e===0?this._s0=t:e===1?this._s1=t:e===2?this._s2=t:this._s3=t;else{this._overflow===null&&(this._overflow=[]);let n=this._overflow,r=e-4;n[r]=t}}_rawAdd(e){if(this._s0===null)return this._s0=e,0;if(this._s1===null)return this._s1=e,1;if(this._s2===null)return this._s2=e,2;if(this._s3===null)return this._s3=e,3;this._overflow===null&&(this._overflow=[]);let t=this._overflow,n=this._freeIndices;if(n!==null&&n.length>0){let r=n.pop();return t[r]=e,r+4}return t.push(e),4+t.length-1}_rawSwap(e,t){if(e===t)return;let n=this.getAt(e),r=this.getAt(t);this._rawWrite(e,r),this._rawWrite(t,n)}get size(){return this._actualCount}get physicalSize(){return this._count}getAt(e){return e<4?e===0?this._s0:e===1?this._s1:e===2?this._s2:this._s3:this._overflow?.[e-4]??null}setAt(e,t){let n=this.getAt(e);n!==t&&(this._rawWrite(e,t),n===null?this._actualCount++:t===null&&this._actualCount--,t!==null&&e>=this._count?this._count=e+1:t===null&&this._shrinkPhysicalSizeFrom(e))}_shrinkPhysicalSizeFrom(e){if(e===this._count-1)for(this._count--;this._count>0&&this.getAt(this._count-1)==null;)this._count--}truncateFrom(e){e<=3&&(e<=0&&this._s0!==null&&(this._onItemRemoved(this._s0),this._s0=null,this._actualCount--),e<=1&&this._s1!==null&&(this._onItemRemoved(this._s1),this._s1=null,this._actualCount--),e<=2&&this._s2!==null&&(this._onItemRemoved(this._s2),this._s2=null,this._actualCount--),e<=3&&this._s3!==null&&(this._onItemRemoved(this._s3),this._s3=null,this._actualCount--));let t=this._overflow;if(t!==null){let n=e>4?e-4:0,r=t.length;for(let e=n;e<r;e++){let n=t[e];n!=null&&(this._onItemRemoved(n),t[e]=null,this._actualCount--)}e<=4?this._overflow=null:t.length=e-4}this._count=e,this._actualCount<0&&(this._actualCount=0),this._freeIndices=null}_onItemRemoved(e){}add(e){let t=this._rawAdd(e);return t>=this._count&&(this._count=t+1),this._actualCount++,t}remove(e){let t=-1;if(this._s0===e)t=0;else if(this._s1===e)t=1;else if(this._s2===e)t=2;else if(this._s3===e)t=3;else{let n=this._overflow;n!==null&&(t=n.indexOf(e),t!==-1&&(t+=4))}return t===-1?!1:(this._rawWrite(t,null),this._shrinkPhysicalSizeFrom(t),this._actualCount--,t>=4&&(this._freeIndices===null&&(this._freeIndices=[]),this._freeIndices.push(t-4)),!0)}has(e){if(this._actualCount===0)return!1;if(this._s0===e||this._s1===e||this._s2===e||this._s3===e)return!0;let t=this._overflow;return t===null?!1:t.indexOf(e)!==-1}forEach(e){let t=this._actualCount;if(t===0)return;if(t===this._count){this._s0!=null&&e(this._s0),this._s1!=null&&e(this._s1),this._s2!=null&&e(this._s2),this._s3!=null&&e(this._s3);let t=this._overflow;if(t!==null)for(let n=0,r=t.length;n<r;n++){let r=t[n];r!=null&&e(r)}return}let n=0,r=this._count;for(let i=0;i<r;i++){let r=this.getAt(i);if(r!=null&&(e(r),++n>=t))break}}compact(){if(this._actualCount===this._count)return;let e=0,t=this._count;for(let n=0;n<t;n++){let t=this.getAt(n);t!=null&&(n!==e&&(this._rawWrite(e,t),this._rawWrite(n,null)),e++)}this._count=this._actualCount,this._overflow!==null&&(e<=4?this._overflow=null:this._overflow.length=e-4),this._freeIndices=null}clear(){this._s0=this._s1=this._s2=this._s3=null,this._count=0,this._actualCount=0,this._overflow=null,this._freeIndices=null}dispose(){this.clear()}},le=class extends ce{constructor(...e){super(...e),this._map=null,this._SCAN_THRESHOLD=32,this.hasComputeds=!1}prepareTracking(){this.hasComputeds=!1}_onItemRemoved(e){e.unsub?.()}setAt(e,t){let n=this.getAt(e);super.setAt(e,t),this._map!==null&&(n?.unsub&&this._map.delete(n.node),t?.unsub&&this._map.set(t.node,e))}claimExisting(e,t){let n=this._count;if(n<=t)return!1;let r=this.getAt(t);if(r&&r.node===e&&r.unsub)return r.version=e.version,!0;if(this._map!==null||n-t>this._SCAN_THRESHOLD)return this._claimViaMap(e,t);for(let r=t+1;r<n;r++){let n=this.getAt(r);if(n&&n.node===e&&n.unsub)return n.version=e.version,this._rawSwap(r,t),!0}return!1}_claimViaMap(e,t){this._map===null&&(this._map=this._initMap());let n=this._map,r=n.get(e);if(r===void 0||r<t)return!1;let i=this.getAt(r);if(i==null||!i.unsub)return!1;if(i.version=e.version,r!==t){let i=this.getAt(t);this._rawSwap(r,t),n.set(e,t),i?.unsub&&n.set(i.node,r)}return!0}_initMap(){let e=new Map;for(let t=0;t<this._count;t++){let n=this.getAt(t);n?.unsub&&e.set(n.node,t)}return e}insertNew(e,t){let n=this.getAt(e);if(n!==null){let e=this._rawAdd(n);e>=this._count&&(this._count=e+1),this._map!==null&&n.unsub&&this._map.set(n.node,e)}this._rawWrite(e,t),e>=this._count&&(this._count=e+1),this._actualCount++,this._map!==null&&t.unsub&&this._map.set(t.node,e)}add(e){let t=super.add(e);return this._map!==null&&e.unsub&&this._map.set(e.node,t),t}remove(e){throw Error(`remove() prohibited`)}compact(){}truncateFrom(e){super.truncateFrom(e),this._map!==null&&(this._map=null)}disposeAll(){this.truncateFrom(0),this.hasComputeds=!1}},ue=Symbol.for(`atom-effect/brand`),O={Atom:1,Writable:2,Computed:4,Effect:8};function de(e,t){if(!e)return!1;let n=typeof e;return(n===`object`||n===`function`)&&!!((e[ue]??0)&t)}function fe(e){return de(e,O.Atom)}function pe(e){return de(e,O.Computed)}function me(e){if(e instanceof Promise)return!0;if(!e)return!1;let t=typeof e;return(t===`object`||t===`function`)&&typeof e.then==`function`}var he=class{constructor(e,t,n=void 0){this.node=e,this.version=t,this.unsub=n}},ge=class{constructor(e=void 0,t=void 0){this.fn=e,this.sub=t}notify(e,t){A(()=>{let n=this.fn;n!==void 0&&n(e,t);let r=this.sub;r!==void 0&&r.execute()})}},k=new class{constructor(){this.current=null}run(e,t){if(this.current===e)return t();let n=this.current;this.current=e;try{let e=t();return y&&D.warn(me(e),`Detected Promise returned within tracking context. Dependencies accessed after "await" will NOT be tracked. Consider using synchronous tracking before the async boundary.`),e}finally{this.current=n}}};function A(e){let t=k,n=t.current;if(n===null)return e();t.current=null;try{return e()}finally{t.current=n}}var _e=class{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=_.UNINITIALIZED,this._nextEpoch=void 0,this._notifying=0,this._hotIndex=-1,this._slots=null,this._deps=null,this.id=se()&h}get isDisposed(){return(this.flags&f.DISPOSED)!==0}get isComputed(){return(this.flags&f.IS_COMPUTED)!==0}get hasError(){return!1}subscribe(e){let t=typeof e==`function`;if(!t&&(!e||typeof e.execute!=`function`))throw E(TypeError(`Invalid subscriber`),x,T.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);let n=this._slots;n||(n=new ce,this._slots=n);let r=!1;if(n._s0!=null&&(t?n._s0.fn===e:n._s0.sub===e))r=!0;else if(n._s1!=null&&(t?n._s1.fn===e:n._s1.sub===e))r=!0;else if(n._s2!=null&&(t?n._s2.fn===e:n._s2.sub===e))r=!0;else if(n._s3!=null&&(t?n._s3.fn===e:n._s3.sub===e))r=!0;else{let i=n._overflow;if(i!=null)for(let n=0,a=i.length;n<a;n++){let a=i[n];if(a!=null&&(t?a.fn===e:a.sub===e)){r=!0;break}}}if(r)return y&&console.warn(`[atom-effect] Duplicate subscription ignored on node ${this.id}`),()=>{};let i=new ge(t?e:void 0,t?void 0:e);return n.add(i),()=>this._unsubscribe(i)}_unsubscribe(e){let t=this._slots;t&&(t.remove(e),this._notifying===0&&t.compact())}subscriberCount(){let e=this._slots;return e===null?0:e.size}_notifySubscribers(e,t){let n=this._slots;if(!(n===null||n.size===0)){this._notifying++;try{let r=n._s0;if(r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s1,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s2,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s3,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}let i=n._overflow;if(i!=null)for(let n=0,r=i.length;n<r;n++){let r=i[n];if(r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}}}finally{--this._notifying===0&&n.compact()}}}_logNotifyError(e){console.error(E(e,x,T.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED))}_isDirty(){let e=this._deps;if(e===null||e.size===0)return!1;let t=this._hotIndex;if(t!==-1){let n=e.getAt(t);if(n!=null&&n.node.version!==n.version)return!0}return this._deepDirtyCheck()}},ve=0;function ye(){let e=ve+1&h;return ve=e===0?1:e,ve}function be(e){let t=e+1&h;return t===0?1:t}var xe=0,Se=!1,Ce=0;function we(){return Ce}function Te(){return Se?(y&&console.warn(`startFlush() called during flush - ignored`),!1):(Se=!0,Ce=ye(),xe=0,!0)}function Ee(){Se=!1}function De(){if(!Se)return 0;let e=++xe;if(e<=m.MAX_EXECUTIONS_PER_FLUSH)return e;throw Error(`[atom-effect] Infinite loop detected: flush execution count exceeded ${m.MAX_EXECUTIONS_PER_FLUSH}`)}var j=new class{constructor(){this._queueBuffer=[[],[]],this._bufferIndex=0,this._size=0,this._epoch=0,this._isProcessing=!1,this._isFlushingSync=!1,this._batchDepth=0,this._batchQueue=[],this._batchQueueSize=0,this._maxFlushIterations=m.MAX_FLUSH_ITERATIONS,this.onOverflow=null,this._boundRunLoop=this._runLoop.bind(this)}get queueSize(){return this._size+this._batchQueueSize}get isBatching(){return this._batchDepth>0}schedule(e){if(y&&typeof e!=`function`&&(!e||typeof e.execute!=`function`))throw new w(T.SCHEDULER_CALLBACK_MUST_BE_FUNCTION);let t=this._epoch;if(e._nextEpoch===t)return;if(e._nextEpoch=t,this._batchDepth>0||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=e;return}let n=this._queueBuffer[this._bufferIndex];n[this._size++]=e,this._isProcessing||this._flush()}_flush(){this._isProcessing||this._size===0||(this._isProcessing=!0,queueMicrotask(this._boundRunLoop))}_runLoop(){try{if(this._size===0&&this._batchQueueSize===0)return;let e=Te();this._drainQueue(),e&&Ee()}finally{this._isProcessing=!1}}_flushSync(){if(this._size===0&&this._batchQueueSize===0)return;let e=this._isFlushingSync;this._isFlushingSync=!0;let t=Te();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=e,t&&Ee()}}_mergeBatchQueue(){let e=this._batchQueueSize;if(e===0)return;this._epoch=this._epoch+1|0;let t=this._epoch,n=this._batchQueue,r=this._queueBuffer[this._bufferIndex],i=this._size;for(let a=0;a<e;a++){let e=n[a];e._nextEpoch!==t&&(e._nextEpoch=t,r[i++]=e),n[a]=void 0}this._size=i,this._batchQueueSize=0,n.length>m.BATCH_QUEUE_SHRINK_THRESHOLD&&(n.length=0)}_drainQueue(){let e=0;for(;this._size>0||this._batchQueueSize>0;){if(++e>this._maxFlushIterations){this._handleFlushOverflow();return}this._batchQueueSize>0&&this._mergeBatchQueue(),this._size>0&&this._processQueue()}}_processQueue(){let e=this._bufferIndex,t=this._queueBuffer[e],n=this._size;this._bufferIndex=e^1,this._size=0,this._epoch=this._epoch+1|0;for(let e=0;e<n;e++){let n=t[e];t[e]=void 0;try{typeof n==`function`?n():n.execute()}catch(e){console.error(new w(`Error occurred during scheduler execution`,e))}}}_handleFlushOverflow(){let e=this._size+this._batchQueueSize;console.error(new w(T.SCHEDULER_FLUSH_OVERFLOW(this._maxFlushIterations,e))),this._size=0,this._queueBuffer[0].length=0,this._queueBuffer[1].length=0,this._batchQueueSize=0,this._batchQueue.length=0;let t=this.onOverflow;if(t)try{t(e)}catch{}}startBatch(){this._batchDepth++}endBatch(){if(this._batchDepth===0){y&&console.warn(T.SCHEDULER_END_BATCH_WITHOUT_START);return}--this._batchDepth===0&&(this._isFlushingSync||this._flushSync())}setMaxFlushIterations(e){if(e<m.MIN_FLUSH_ITERATIONS)throw new w(`Max iterations must be at least ${m.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=e}};function Oe(e){if(y&&typeof e!=`function`)throw TypeError(T.BATCH_CALLBACK_MUST_BE_FUNCTION);j.startBatch();try{return e()}finally{j.endBatch()}}var ke=class extends _e{constructor(e,t){super(),this[ue]=O.Atom|O.Writable,this._value=e,this._equal=t.equal??Object.is,t.sync&&(this.flags|=p.SYNC),D.attachDebugInfo(this,`atom`,this.id,t.name)}get isNotificationScheduled(){return(this.flags&p.NOTIFICATION_SCHEDULED)!==0}get isSync(){return(this.flags&p.SYNC)!==0}get value(){return k.current?.addDependency(this),this._value}set value(e){let t=this._value;if(this._equal(t,e)||(this._value=e,this.version=be(this.version),D.trackUpdate(this.id,D.getDebugName(this)),(this.flags&p.NOTIFICATION_SCHEDULED)!==0))return;let n=this._slots;n==null||n.size===0||(this._pendingOldValue=t,this.flags|=p.NOTIFICATION_SCHEDULED,(this.flags&p.SYNC)!==0&&!j.isBatching?this._notifying===0&&this._flushNotifications():j.schedule(this))}execute(){this._flushNotifications()}_flushNotifications(){let e=p.NOTIFICATION_SCHEDULED,t=p.DISPOSED,n=p.SYNC;for(;(this.flags&(e|t))===e;){let t=this._pendingOldValue;if(this._pendingOldValue=void 0,this.flags&=~e,this._equal(this._value,t)||this._notifySubscribers(this._value,t),(this.flags&n)===0||j.isBatching)break}}peek(){return this._value}dispose(){let e=this.flags;(e&p.DISPOSED)===0&&(this._slots?.clear(),this.flags=e|p.DISPOSED,this._value=void 0,this._pendingOldValue=void 0,this._equal=Object.is)}_deepDirtyCheck(){return!1}[Symbol.dispose](){this.dispose()}};function Ae(e,t={}){return new ke(e,t)}var{IDLE:M,DIRTY:N,PENDING:P,RESOLVED:F,REJECTED:I,HAS_ERROR:je,RECOMPUTING:L,DISPOSED:Me,IS_COMPUTED:R,FORCE_COMPUTE:Ne}=f,Pe=class extends _e{constructor(e,t={}){if(typeof e!=`function`)throw new S(T.COMPUTED_MUST_BE_FUNCTION);if(super(),this[ue]=O.Atom|O.Computed,this._error=null,this._promiseId=0,this._deps=new le,this._trackEpoch=_.UNINITIALIZED,this._trackCount=0,this._value=void 0,this.flags=R|N|M,this._equal=t.equal??Object.is,this._fn=e,this._defaultValue=`defaultValue`in t?t.defaultValue:ie,this._onError=t.onError??null,D.attachDebugInfo(this,`computed`,this.id,t.name),t.lazy===!1)try{this._recompute()}catch{}}get isDirty(){return(this.flags&N)!==0}get isRejected(){return(this.flags&I)!==0}get isRecomputing(){return(this.flags&L)!==0}get _hasErrorInternal(){return(this.flags&je)!==0}_track(){k.current?.addDependency(this)}get value(){k.current?.addDependency(this);let e=this.flags;if((e&(F|N|M))===F)return this._value;if((e&Me)!==0)throw new S(T.COMPUTED_DISPOSED);if((e&L)!==0){let e=this._defaultValue;if(e!==ie)return e;throw new S(T.COMPUTED_CIRCULAR_DEPENDENCY)}if((e&(N|M))!==0){let t=this._deps;if((e&M)===0&&(e&Ne)===0&&t.size>0&&!this._isDirty()?e=this.flags&=~N:(this._recompute(),e=this.flags),(e&F)!==0)return this._value}let t=this._defaultValue,n=t!==ie;if((e&P)!==0){if(n)return t;throw new S(T.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if((e&I)!==0){if(n)return t;throw this._error}return this._value}peek(){return this._value}get state(){k.current?.addDependency(this);let e=this.flags;return(e&F)===0?(e&P)===0?(e&I)===0?u.IDLE:u.REJECTED:u.PENDING:u.RESOLVED}get hasError(){if(k.current?.addDependency(this),(this.flags&(I|je))!==0)return!0;let e=this._deps;return e.hasComputeds?A(()=>{let t=e.size;for(let n=0;n<t;n++)if(e.getAt(n)?.node.hasError)return!0;return!1}):!1}get isValid(){return!this.hasError}get errors(){k.current?.addDependency(this);let e=this._error,t=this._deps;if(!t.hasComputeds)return e==null?b:Object.freeze([e]);let n=[];return e!=null&&n.push(e),A(()=>{let e=t.size;for(let r=0;r<e;r++){let e=t.getAt(r)?.node;e!=null&&(e.flags&R)!==0&&this._accumulateErrors(e,n)}}),n.length===0?b:Object.freeze(n)}_accumulateErrors(e,t){let n=e._error;n!=null&&!t.includes(n)&&t.push(n);let r=e._deps;if(!r.hasComputeds)return;let i=r.size;for(let e=0;e<i;e++){let n=r.getAt(e)?.node;n!=null&&(n.flags&R)!==0&&this._accumulateErrors(n,t)}}get lastError(){return k.current?.addDependency(this),this._error}get isPending(){return k.current?.addDependency(this),(this.flags&P)!==0}get isResolved(){return k.current?.addDependency(this),(this.flags&F)!==0}invalidate(){this.flags|=Ne,this._markDirty()}dispose(){(this.flags&Me)===0&&(this._deps.disposeAll(),this._slots!=null&&this._slots.clear(),this.flags=Me|N|M,this._error=null,this._value=void 0,this._hotIndex=-1)}[Symbol.dispose](){this.dispose()}addDependency(e){let t=this._trackEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;let n=this._trackCount++,r=this._deps,i=r.getAt(n);if(i!=null&&i.node===e)i.version=e.version;else if(!r.claimExisting(e,n)){let t=new he(e,e.version,e.subscribe(this));r.insertNew(n,t)}(e.flags&R)!==0&&(r.hasComputeds=!0)}_recompute(){if(this.isRecomputing)return;this.flags=(this.flags|L)&~Ne,this._trackEpoch=ye(),this._trackCount=0,this._deps.prepareTracking(),this._hotIndex=-1;let e=!1;try{let t=k.run(this,this._fn);this._deps.truncateFrom(this._trackCount),e=!0,me(t)?this._handleAsyncComputation(t):this._finalizeResolution(t)}catch(t){if(!e)try{this._deps.truncateFrom(this._trackCount)}catch(e){y&&console.warn(`[atom-effect] _commitDeps failed during error recovery:`,e)}this._handleError(t,T.COMPUTED_COMPUTATION_FAILED,!0)}finally{this._trackEpoch=_.UNINITIALIZED,this._trackCount=0,this.flags&=~L}}_handleAsyncComputation(e){this.flags=(this.flags|P)&~(M|N|F|I),this._notifySubscribers(void 0,void 0),this._promiseId=(this._promiseId+1)%ee.MAX_PROMISE_ID;let t=this._promiseId;e.then(e=>{if(t===this._promiseId){if(this._isDirty())return this._markDirty();this._finalizeResolution(e),this._notifySubscribers(e,void 0)}},e=>t===this._promiseId&&this._handleError(e,T.COMPUTED_ASYNC_COMPUTATION_FAILED))}_handleError(e,t,n=!1){let r=E(e,S,t);if((!this.isRejected||this._error!==r)&&(this.version=be(this.version)),this._error=r,this.flags=this.flags&~(M|N|P|F)|I|je,this._onError)try{this._onError(r)}catch(e){console.error(T.CALLBACK_ERROR_IN_ERROR_HANDLER,e)}if(this._notifySubscribers(void 0,void 0),n)throw r}_finalizeResolution(e){let t=this.flags;((t&F)===0||!this._equal(this._value,e))&&(this.version=be(this.version)),this._value=e,this._error=null,this.flags=(t|F)&~(M|N|P|I|je)}execute(){this._markDirty()}_markDirty(){let e=this.flags;(e&(L|N))===0&&(this.flags=e|N,D.trackUpdate(this.id,D.getDebugName(this)),this._notifySubscribers(void 0,void 0))}_deepDirtyCheck(){let e=this._deps;return A(()=>{let t=e.size;for(let n=0;n<t;n++){let t=e.getAt(n);if(t==null)continue;let r=t.node;if((r.flags&R)!==0)try{r.value}catch{y&&console.warn(`[atom-effect] Dependency #${r.id} threw during dirty check`)}if(r.version!==t.version)return this._hotIndex=n,!0}return this._hotIndex=-1,!1})}};function Fe(e,t={}){return new Pe(e,t)}var Ie=class extends _e{constructor(e,t={}){super(),this[ue]=O.Effect,this._cleanup=null,this._deps=new le,this._currentEpoch=_.UNINITIALIZED,this._lastFlushEpoch=_.UNINITIALIZED,this._fn=e,this._onError=t.onError??null,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??m.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??m.MAX_EXECUTIONS_PER_EFFECT,this._executionsInEpoch=0,this._executionCount=0,this._windowStart=0,this._windowCount=0,this._execId=0,this._trackCount=0,this._sync?this._notifyCallback=()=>this.execute():this._notifyCallback=()=>j.schedule(this),D.attachDebugInfo(this,`effect`,this.id,t.name)}run(){if(this.isDisposed)throw new C(T.EFFECT_DISPOSED);this.execute(!0)}dispose(){this.isDisposed||(this.flags|=d.DISPOSED,this._execCleanup(),this._deps?.disposeAll())}[Symbol.dispose](){this.dispose()}addDependency(e){if((this.flags&d.EXECUTING)===0)return;let t=this._currentEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;let n=this._trackCount++,r=this._deps,i;switch(n){case 0:i=r._s0;break;case 1:i=r._s1;break;case 2:i=r._s2;break;case 3:i=r._s3;break;default:i=r.getAt(n)}i!=null&&i.node===e?i.version=e.version:r.claimExisting(e,n)||this._insertNewDependency(e,n),e.isComputed&&(r.hasComputeds=!0)}_insertNewDependency(e,t){let n;try{let t=e.subscribe(this._notifyCallback);n=new he(e,e.version,t)}catch(t){let r=E(t,C,T.EFFECT_EXECUTION_FAILED);if(console.error(r),this._onError)try{this._onError(r)}catch{}n=new he(e,e.version,void 0)}this._deps.insertNew(t,n)}execute(e=!1){let t=this.flags;if((t&(d.DISPOSED|d.EXECUTING))!==0)return;let n=this._deps;if(!e&&n.size>0&&!this._isDirty())return;this._checkInfiniteLoops(),D.trackUpdate(this.id,D.getDebugName(this)),this.flags=t|d.EXECUTING,this._execCleanup(),this._currentEpoch=ye(),this._trackCount=0,n.prepareTracking(),this._hotIndex=-1;let r=!1;try{let e=k.run(this,this._fn);n.truncateFrom(this._trackCount),r=!0,me(e)?this._handleAsyncResult(e):this._cleanup=typeof e==`function`?e:null}catch(e){if(!r)try{n.truncateFrom(this._trackCount)}catch(e){y&&console.warn(`[atom-effect] _commitDeps failed during error recovery:`,e)}this._handleExecutionError(e),this._cleanup=null}finally{this.flags&=~d.EXECUTING}}_handleAsyncResult(e){let t=++this._execId;e.then(e=>{if(t!==this._execId||this.isDisposed){if(typeof e==`function`)try{e()}catch(e){this._handleExecutionError(e,T.EFFECT_CLEANUP_FAILED)}return}typeof e==`function`&&(this._cleanup=e)},e=>t===this._execId&&this._handleExecutionError(e))}_deepDirtyCheck(){let e=k.current;k.current=null;let t=this._deps;try{let e=t.size;for(let n=0;n<e;n++){let e=t.getAt(n);if(e==null)continue;let r=e.node;if(r.isComputed&&this._tryPullComputed(r),r.version!==e.version)return this._hotIndex=n,!0}return!1}finally{k.current=e}}_tryPullComputed(e){try{e.value}catch{y&&console.warn(`[atom-effect] Dependency #${e.id} threw during dirty check`)}}_execCleanup(){let e=this._cleanup;if(e!=null){this._cleanup=null;try{e()}catch(e){this._handleExecutionError(e,T.EFFECT_CLEANUP_FAILED)}}}_checkInfiniteLoops(){let e=we();this._lastFlushEpoch!==e&&(this._lastFlushEpoch=e,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError(`per-effect`),De()>m.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError(`global`),this._executionCount++,y&&this._checkFrequencyLimit()}_checkFrequencyLimit(){if(!Number.isFinite(this._maxExecutions))return;let e=Date.now();if(e-this._windowStart>=g.EFFECT_FREQUENCY_WINDOW){this._windowStart=e,this._windowCount=1;return}if(++this._windowCount>this._maxExecutions){let e=new C(T.EFFECT_FREQUENCY_LIMIT_EXCEEDED);throw this.dispose(),this._handleExecutionError(e),e}}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&d.EXECUTING)!==0}_throwInfiniteLoopError(e){let t=new C(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${xe}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=T.EFFECT_EXECUTION_FAILED){let n=E(e,C,t);if(console.error(n),this._onError)try{this._onError(n)}catch(e){console.error(E(e,C,T.CALLBACK_ERROR_IN_ERROR_HANDLER))}}};function z(e,t={}){if(typeof e!=`function`)throw new C(T.EFFECT_MUST_BE_FUNCTION);let n=new Ie(e,t);return n.execute(),n}function Le(e,t,n,r){if(n===t.length)return r;let i=t[n],a=typeof e==`object`&&e?e:{},o=a[i],s=Le(o,t,n+1,r);if(Object.is(o,s))return e;if(Array.isArray(a)){let e=a.slice(),t=Number.parseInt(i,10);return Number.isNaN(t)?e[i]=s:e[t]=s,e}return{...a,[i]:s}}function B(e,t){let n=e,r=t.length;for(let e=0;e<r;e++){if(n==null)return;n=n[t[e]]}return n}function Re(e,t){let n=t.includes(`.`)?t.split(`.`):[t],r=new Set,i=()=>{r.forEach(e=>e()),r.clear()};return{get value(){return B(e.value,n)},set value(t){let r=e.peek(),i=Le(r,n,0,t);i!==r&&(e.value=i)},peek:()=>B(e.peek(),n),subscribe(t){let i=e.subscribe((e,r)=>{let i=B(e,n),a=B(r,n);Object.is(i,a)||t(i,a)});return r.add(i),()=>{i(),r.delete(i)}},subscriberCount:()=>r.size,dispose:i,[Symbol.dispose]:i,[ue]:O.Atom|O.Writable}}var ze=(e,t)=>Re(e,t),Be=e=>t=>Re(e,t),Ve=e=>typeof e==`object`&&!!e,He=e=>fe(e),Ue=e=>(Ve(e)||typeof e==`function`)&&typeof e.then==`function`;function We(e){let{localName:t,id:n,className:r}=e,i=t;n&&(i+=`#${n}`);let a=typeof r==`string`?r:r.baseVal;if(typeof a==`string`){let e=a.trim();e&&(i+=`.${e.replace(/\s+/g,`.`)}`)}let o=e.type;return o&&typeof o==`string`&&o!==`text`&&(i+=`.${o}`),i}var V=Object.prototype.hasOwnProperty;function Ge(e,t){if(e===t)return!0;if(!Ve(e)||!Ve(t))return!1;let n=e,r=t,i=Object.keys(n),a=Object.keys(r);if(i.length!==a.length)return!1;for(let e of i)if(!V.call(r,e)||!Object.is(n[e],r[e]))return!1;return!0}var H={ROUTE:`[atom-route]`,BINDING:`[atom-binding]`,LIST:`[atom-list]`,MOUNT:`[atom-mount]`},Ke=Object.freeze({mode:`hash`,basePath:``,autoBindLinks:!1,activeClass:`active`}),qe=Object.freeze({EVENT:`input`,DEBOUNCE:0}),Je=Object.freeze({HIGHLIGHT_DURATION_MS:500}),Ye=new Set([`input`,`select`,`textarea`]),Xe=new Set([`innerHTML`,`outerHTML`,`srcdoc`,`__proto__`,`constructor`,`prototype`]),Ze=`(?:j\\s*a\\s*v\\s*a\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t|v\\s*b\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t)`,U={ROUTE:{NOT_FOUND:e=>`Route "${e}" not found and no notFound route configured`,TEMPLATE_NOT_FOUND:e=>`Template "${e}" not found`,TARGET_NOT_FOUND:e=>`Target element "${e}" not found`,MALFORMED_URI:e=>`Malformed URI component: ${e}`},SECURITY:{UNSAFE_CONTENT:()=>`Unsafe content neutralized during sanitization.`,BLOCKED_CSS_VALUE:e=>`Blocked dangerous value in CSS style property "${e}".`,BLOCKED_EVENT_HANDLER:e=>`Blocked setting dangerous event handler attribute/property "${e}".`,BLOCKED_PROTOCOL:e=>`Blocked dangerous protocol in "${e}".`,BLOCKED_PROP:e=>`Blocked setting dangerous property "${e}". Use html binding for sanitized HTML.`},BINDING:{INVALID_INPUT_ELEMENT:e=>`Val binding used on non-input element <${e}>.`,MISSING_SOURCE:e=>`[${e}] source is required when prop/name is a string.`,MISSING_CONDITION:e=>`[${e}] condition is required when className is a string.`,UPDATER_ERROR:(e,t)=>`Updater threw in binding "${e}"${t?` (static)`:``}`,CLEANUP_ERROR:e=>`Binding cleanup error${e?`: ${e}`:``}`,PARSE_ERROR:e=>`parse() threw during DOM→Atom sync${e?`: ${e}`:``}`},LIST:{DUPLICATE_KEY:(e,t,n)=>`Duplicate key "${e}" at index ${t} in atomList <${n}>.`},MOUNT:{ERROR:e=>`Mount error${e?` in component <${e}>`:``}`,CLEANUP_ERROR:e=>`Cleanup error${e?` in component <${e}>`:``}`},CORE:{EFFECT_DISPOSE_ERROR:e=>`Effect dispose error${e?`: ${e}`:``}`}},Qe=`atom-debug-highlight`,W=`data-atom-debug`,$e=typeof window<`u`,et=new WeakMap,tt=new WeakMap,nt=!1,rt=()=>`${Je.HIGHLIGHT_DURATION_MS/1e3}s`,it=()=>`
|
|
2
|
+
[${W}] {
|
|
3
|
+
transition: outline ${rt()} ease-out;
|
|
4
|
+
}
|
|
5
|
+
.${Qe} {
|
|
6
|
+
outline: 2px solid rgba(255, 68, 68, 0.8);
|
|
7
|
+
outline-offset: 1px;
|
|
8
|
+
}
|
|
9
|
+
`.replace(/\s+/g,` `);function at(){if(nt||!$e)return;if(document.querySelector(`style[${W}]`)){nt=!0;return}let e=document.createElement(`style`);e.setAttribute(W,``),e.textContent=it(),document.head.appendChild(e),nt=!0}function ot(){let e=globalThis;if(e.__ATOM_DEBUG__!==void 0)return!!e.__ATOM_DEBUG__;try{if(typeof sessionStorage<`u`&&sessionStorage.getItem(`__ATOM_DEBUG__`)===`true`)return!0}catch{}return e.process?.env?.NODE_ENV!==`production`&&e.process?.env?.NODE_ENV!==void 0?!0:e.__DEV__===void 0?!1:!!e.__DEV__}var st=class{constructor(){this.enabled=!0}log(e,...t){this.enabled&&console.log(e,...t)}atomChanged(e,t,n,r){this.enabled&&console.log(`${e} Atom "${t??`anonymous`}" changed:`,n,`→`,r)}cleanup(e,t){this.enabled&&console.log(`${e} Cleanup: ${t}`)}warn(e,t,...n){console.warn(`${e} ${t}`,...n)}error(e,t,n){console.error(`${e} ${t}`,n)}domUpdated(e,t,n,r){if(!this.enabled)return;let i=`jquery`in t?t[0]:t;i&&i.nodeType===1&&i.isConnected&&(console.log(`${e} DOM updated: ${We(i)}.${n} =`,r),this._triggerVisualHighlight(i))}_triggerVisualHighlight(e){let t=globalThis,n=t.requestAnimationFrame,r=t.cancelAnimationFrame;if(!$e||typeof n!=`function`)return;at();let i=tt.get(e),a=et.get(e);i!==void 0&&typeof r==`function`&&r(i),a!==void 0&&(clearTimeout(a),et.delete(e)),e.hasAttribute(W)||e.setAttribute(W,``),tt.set(e,n(()=>{tt.delete(e),e.isConnected&&(e.classList.add(Qe),et.set(e,setTimeout(()=>{e.classList.remove(Qe),et.delete(e)},Je.HIGHLIGHT_DURATION_MS)))}))}},G=ot()?new st:{enabled:!1,log:()=>{},atomChanged:()=>{},domUpdated:()=>{},cleanup:()=>{},warn:(e,t,...n)=>console.warn(`${e} ${t}`,...n),error:(e,t,n)=>console.error(`${e} ${t}`,n)};function ct(e,t){return Ae(e,t)}Object.defineProperty(ct,`debug`,{enumerable:!0,configurable:!0,get:()=>G.enabled,set:e=>{G.enabled=e}});var lt=()=>Promise.resolve();t.default.extend({atom:ct,computed:Fe,effect:z,batch:Oe,untracked:A,isAtom:fe,isComputed:pe,isReactive:He,nextTick:lt,atomLens:Re,composeLens:ze,lensFor:Be});var ut=class{constructor(e=50,t=256){this.limit=e,this.capacity=t,this.pool=[]}acquire(){return this.pool.pop()??[]}release(e){if(Object.isFrozen(e))return;let t=e.length;e.length=0,this.pool.length<this.limit&&t<=this.capacity&&this.pool.indexOf(e)===-1&&this.pool.push(e)}reset(){this.pool.length=0}},dt=class{constructor(e,t,n=64){this.factory=e,this.reset=t,this.limit=n,this.pool=[]}acquire(){return this.pool.pop()??this.factory()}release(e){Object.isFrozen(e)||(this.reset(e),this.pool.length<this.limit&&this.pool.indexOf(e)===-1&&this.pool.push(e))}drain(){this.pool.length>0&&(this.pool.length=0)}get size(){return this.pool.length}},ft=128,pt=new ut(ft),mt=new ut(ft),ht=new dt(()=>({effects:void 0,cleanups:void 0,componentCleanup:void 0}),e=>{if(e.effects){let t=e.effects.length;for(let n=0;n<t;n++)try{e.effects[n].dispose()}catch{}pt.release(e.effects),e.effects=void 0}if(e.cleanups){let t=e.cleanups.length;for(let n=0;n<t;n++)try{e.cleanups[n]()}catch{}mt.release(e.cleanups),e.cleanups=void 0}if(e.componentCleanup){try{e.componentCleanup()}catch{}e.componentCleanup=void 0}},ft),gt=!1;function _t(){gt||typeof document<`u`&&document.body&&(gt=!0,yt(document.body))}var K=`_aes-bound`,q=new class{constructor(){this.records=new WeakMap,this.preservedNodes=new WeakSet,this.ignoredNodes=new WeakSet}keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}markIgnored(e){this.ignoredNodes.add(e)}isIgnored(e){return this.ignoredNodes.has(e)}getOrCreateRecord(e){_t();let t=this.records.get(e);return t||(t=ht.acquire(),this.records.set(e,t),e.classList.add(K)),t}trackEffect(e,t){let n=this.getOrCreateRecord(e);n.effects||=pt.acquire(),n.effects.push(t)}trackCleanup(e,t){let n=this.getOrCreateRecord(e);n.cleanups||=mt.acquire(),n.cleanups.push(t)}setComponentCleanup(e,t){this.getOrCreateRecord(e).componentCleanup=t}hasBind(e){return this.records.has(e)}cleanup(e){if(this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.nodeType!==1)return;let t=e,n=this.records.get(t);if(!n){t.classList.remove(K);return}this.records.delete(t),t.classList.remove(K);let r=We(t);if(G.cleanup(H.BINDING,r),n.componentCleanup){try{n.componentCleanup()}catch(e){G.error(H.MOUNT,U.MOUNT.CLEANUP_ERROR(r),e)}n.componentCleanup=void 0}if(n.effects){for(let e of n.effects)try{e.dispose()}catch(e){G.error(H.BINDING,U.CORE.EFFECT_DISPOSE_ERROR(r),e)}pt.release(n.effects),n.effects=void 0}if(n.cleanups){for(let e of n.cleanups)try{e()}catch(e){G.error(H.BINDING,U.BINDING.CLEANUP_ERROR(r),e)}mt.release(n.cleanups),n.cleanups=void 0}ht.release(n)}cleanupDescendants(e){let t=`getElementsByClassName`in e?e.getElementsByClassName(K):e.querySelectorAll(`.${K}`),n=t.length;if(n===0)return;let r=Array(n);for(let e=0;e<n;e++)r[e]=t[e];for(let e=n-1;e>=0;e--){let t=r[e];this.records.has(t)?this.cleanup(t):t.classList.remove(K)}}cleanupTree(e){(e.nodeType===1||e.nodeType===11)&&this.cleanupDescendants(e),this.cleanup(e)}},vt=new Map;function yt(e){if(vt.has(e))return;let t=new MutationObserver(e=>{let t=q;for(let n=0,r=e.length;n<r;n++){let r=e[n].removedNodes;for(let e=0,n=r.length;e<n;e++){let n=r[e];if(n.nodeType!==1||n.isConnected)continue;let i=n;t.isKept(i)||t.isIgnored(i)||t.cleanupTree(i)}}});t.observe(e,{childList:!0,subtree:!0}),vt.set(e,t)}function bt(){vt.forEach(e=>e.disconnect()),vt.clear()}function xt(e){return{el:e,trackCleanup:t=>q.trackCleanup(e,t)}}function J(e,t,n={}){for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i?.nodeType===1){let e=i;t(n.needsCtx?xt(e):null,e)}else i&&G.log(H.BINDING,`Skipping non-Element node (nodeType=${i.nodeType})`)}return e}function St(e){return Array.isArray(e)&&e.length===2&&(typeof e[0]==`function`||e[0]!==null&&typeof e[0]==`object`&&(`value`in e[0]||`then`in e[0]))?e:[e]}var Y=Symbol.for(`atom-effect-internal`),Ct=Symbol.for(`atom-effect-wrapped`),wt=new WeakMap,X=null,Tt=e=>{let t=e;if(t[Y])return e;let n=t[Ct];if(n)return n;if(n=wt.get(e),!n){n=function(...t){return Oe(()=>e.apply(this,t))},n[Y]=!0,wt.set(e,n);try{t[Ct]=n}catch{}}return n},Et=e=>e[Ct]??wt.get(e)??e;function Dt(e){let t={};for(let n in e){let r=e[n];typeof r==`function`?t[n]=Tt(r):r!==void 0&&(t[n]=r)}return t}function Ot(e){let t={};for(let n in e){let r=e[n];typeof r==`function`?t[n]=Et(r):t[n]=r}return t}function kt(e,t,n){let r=e[0];if(r&&typeof r==`object`)e[0]=t(r);else for(let t=1;t<e.length;t++)typeof e[t]==`function`&&(e[t]=n(e[t]))}function At(e){return function(...t){return kt(t,Dt,Tt),e.apply(this,t)??this}}function jt(){if(X!==null)return;X={on:t.default.fn.on,one:t.default.fn.one,off:t.default.fn.off,remove:t.default.fn.remove,empty:t.default.fn.empty,detach:t.default.fn.detach};let e=X;t.default.fn.remove=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&(q.markIgnored(t),q.cleanupTree(t))}return e.remove.call(this,t)??this},t.default.fn.empty=function(){let t=this.length;for(let e=0;e<t;e++){let t=this[e];t?.hasChildNodes()&&q.cleanupDescendants(t)}return e.empty.call(this)??this},t.default.fn.detach=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&q.keep(t)}return e.detach.call(this,t)??this},t.default.fn.on=At(e.on),t.default.fn.one=At(e.one),t.default.fn.off=function(...t){return kt(t,Ot,Et),e.off.apply(this,t)??this}}function Mt(){X!==null&&(t.default.fn.on=X.on,t.default.fn.one=X.one,t.default.fn.off=X.off,t.default.fn.remove=X.remove,t.default.fn.empty=X.empty,t.default.fn.detach=X.detach,X=null)}var Z=function(e){return e[e.None=0]=`None`,e[e.Focused=1]=`Focused`,e[e.Composing=2]=`Composing`,e[e.SyncingToAtom=4]=`SyncingToAtom`,e[e.SyncingToDom=8]=`SyncingToDom`,e[e.Busy=14]=`Busy`,e}({}),Nt=0;function Pt(e){e[Y]=!0}var Ft=class{constructor(e,t,n){this.flags=0,this.timeoutId=void 0,this.handleCompositionStart=()=>{this.flags|=Z.Composing},this.handleCompositionEnd=()=>{this.flags&=~Z.Composing,this.handleInput()},this.handleFocus=()=>{this.flags|=Z.Focused},this.handleBlur=()=>{this.flags&=~Z.Focused;let e=!!(this.flags&Z.Composing);this.flags&=~Z.Composing;let t=this.flushPendingDebounce();e&&!t&&this.syncAtomFromDom(),this.normalizeDomValue()},this.syncDomFromAtom=()=>{let e=this.atom.value;this.flags&Z.Busy||A(()=>{if(this.isDomUpToDate(e))return;let t=this.format(e);this.flags|=Z.SyncingToDom;try{this.writeDom(e,t),G.domUpdated(H.BINDING,this.$el,`val`,t)}finally{this.flags&=~Z.SyncingToDom}})},this.cleanup=()=>{this.$el.off(this.ns),clearTimeout(this.timeoutId),this.timeoutId=void 0},this.$el=e,this.el=e[0],this.atom=t;let r=this.el.tagName;this.isMultipleSelect=r===`SELECT`&&this.el.multiple,this.isTextControl=r===`INPUT`||r===`TEXTAREA`,this.ns=`.atomBind-${++Nt}`;let{parse:i,format:a,equal:o,readDom:s,getRawDom:c,writeDom:l}=this.initStrategies(n);this.parse=i,this.format=a,this.equal=o,this.readDom=s,this.getRawDom=c,this.writeDom=l;let u=n.debounce??0;u>0?this.handleInput=()=>{this.flags&Z.Composing||(clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>this.syncAtomFromDom(),u))}:this.handleInput=()=>{this.flags&Z.Composing||this.syncAtomFromDom()},[this.handleFocus,this.handleBlur,this.handleCompositionStart,this.handleCompositionEnd,this.handleInput].forEach(Pt),this.bindEvents(n.event??qe.EVENT)}initStrategies(e){let t=e.parse??(e=>e),n=e.equal??Object.is;return this.isMultipleSelect?{parse:t,format:e.format??(e=>(Array.isArray(e)?e:e?[String(e)]:[]).join(`,`)),getRawDom:()=>this.$el.val()||[],readDom:()=>this.$el.val()||[],writeDom:e=>{this.$el.val(e)},equal:(e,t)=>{if(n(e,t))return!0;if(Array.isArray(e)&&Array.isArray(t)){let n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!Object.is(e[r],t[r]))return!1;return!0}return!1}}:{parse:t,format:e.format??(e=>String(e??``)),equal:n,readDom:()=>t(this.el.value),getRawDom:()=>this.el.value,writeDom:this.isTextControl?(e,t)=>this.writeTextValue(t):(e,t)=>{this.el.value=t}}}writeTextValue(e){let t=this.el;if(this.flags&Z.Focused)try{let n=t.selectionStart,r=t.selectionEnd;t.value=e;let i=e.length;n!==null&&r!==null&&t.setSelectionRange(Math.min(n,i),Math.min(r,i))}catch{t.value=e}else t.value=e}flushPendingDebounce(){return this.timeoutId===void 0?!1:(clearTimeout(this.timeoutId),this.timeoutId=void 0,this.syncAtomFromDom(),!0)}normalizeDomValue(){let e=this.atom.peek(),t=this.format(e),n=this.getRawDom();this.isMultipleSelect?this.equal(n,e)||this.writeDom(e,t):n!==t&&this.writeDom(e,t)}syncAtomFromDom(){if(!(this.flags&Z.Busy)){this.flags|=Z.SyncingToAtom;try{let e=this.readDom();this.equal(this.atom.peek(),e)||(this.atom.value=e)}catch(e){G.warn(H.BINDING,U.BINDING.PARSE_ERROR(e instanceof Error?e.message:String(e)),e)}finally{this.flags&=~Z.SyncingToAtom}}}isDomUpToDate(e){let t=this.getRawDom();if(this.isMultipleSelect)return this.equal(t,e);if(t===this.format(e))return!0;if(this.flags&Z.Focused)try{return this.equal(this.readDom(),e)}catch{}return!1}bindEvents(e){let t=this.ns,n=e.trim().split(/\s+/).map(e=>`${e}${t}`).join(` `);this.$el.on(`focus${t}`,this.handleFocus).on(`blur${t}`,this.handleBlur).on(`compositionstart${t}`,this.handleCompositionStart).on(`compositionend${t}`,this.handleCompositionEnd).on(n,this.handleInput)}};function It(e,t,n){let r=new Ft(e,t,n);return{fx:z(r.syncDomFromAtom),cleanup:()=>{r&&=(r.cleanup(),null)}}}function Lt(e,t,n,r){let i={latestId:0,isDisposed:!1};q.trackCleanup(e,()=>{i.isDisposed=!0});let a=t=>{if(!Ue(t)){i.latestId++,A(()=>{try{n(t),G.domUpdated(H.BINDING,e,r,t)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r,!0),e)}});return}let a=++i.latestId;t.then(t=>{a===i.latestId&&!i.isDisposed&&A(()=>{try{n(t),G.domUpdated(H.BINDING,e,`${r} (async)`,t)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)}})}).catch(e=>{a===i.latestId&&!i.isDisposed&&G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)})},o=He(t);o||typeof t==`function`?q.trackEffect(e,z(()=>{a(o?t.value:t())},{name:r})):a(t)}function Rt(e,t,n,r){let i=Object.keys(t),a=[],o=[],s=[],c={};for(let e=0,n=i.length;e<n;e++){let n=i[e],r=t[n],l=He(r);l||typeof r==`function`?(a.push(n),o.push(r),s.push(l)):c[n]=r}let l={latestId:0,isDisposed:!1,cache:{}};q.trackCleanup(e,()=>{l.isDisposed=!0});let u=t=>{let a=[],o={},s=i.length;for(let e=0;e<s;e++){let n=i[e],r=t[n];if(Ue(r)&&V.call(l.cache,n)){let e=l.cache[n];if(e.p===r){o[n]=e.v;continue}}Ue(r)?a.push(r.then(e=>(l.cache[n]={p:r,v:e},{key:n,val:e}))):o[n]=r}if(a.length>0){let t=++l.latestId;Promise.all(a).then(i=>{if(t===l.latestId&&!l.isDisposed){for(let e=0,t=i.length;e<t;e++){let t=i[e];o[t.key]=t.val}A(()=>{try{n(o),G.domUpdated(H.BINDING,e,`${r} (async)`,o)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)}})}},e=>{t===l.latestId&&!l.isDisposed&&G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)})}else l.latestId++,A(()=>{try{n(o),G.domUpdated(H.BINDING,e,r,o)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r,!0),e)}})};a.length>0?q.trackEffect(e,z(()=>{let e={...c};for(let t=0,n=a.length;t<n;t++){let n=o[t];e[a[t]]=s[t]?n.value:n()}u(e)},{name:r})):u(c)}var zt=new Set([`href`,`src`,`action`,`formaction`,`xlink:href`,`data`,`poster`,`background`,`cite`,`longdesc`,`profile`,`usemap`,`classid`,`codebase`,`fill`,`filter`,`mask`,`marker-start`,`marker-mid`,`marker-end`,`clip-path`]),Bt={colon:`:`,Tab:` `,NewLine:`
|
|
10
|
+
`},Vt=/&#x([0-9a-f]+);?|&#([0-9]+);?/gi,Ht=/&(colon|Tab|NewLine);/g,Ut=/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,Wt=/[<&\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/,Gt=/<\?[\s\S]*?\?>/g,Kt=/(<(script|iframe|object|embed|base|meta|applet|noscript|form|style|link)\b[^>]*>([\s\S]*?)<\/\2>|<(script|iframe|object|embed|base|meta|applet|noscript|form|style|link)\b[^>]*\/?>)/gi,qt=/\bon\w+\s*=/gim,Jt=/data\s*:\s*(?:text\/(?:html|javascript|vbscript|xml)|application\/(?:javascript|xhtml\+xml|xml|x-shockwave-flash)|image\/svg\+xml)/gi,Yt=RegExp(`${Ze}\\s*:`,`gi`),Xt=RegExp(`^\\s*${Ze}\\s*:`,`i`),Zt=`(?:expression\\s*\\(|behavior\\s*:|-moz-binding\\s*:|(?:\\\\[0-9a-f]{1,6}\\s*|[\\s\\x00-\\x20/'"])*${Ze}\\s*:(?!image\\/)|data\\s*:\\s*(?!image\\/))`,Qt=new RegExp(Zt,`gim`),$t=new RegExp(Zt,`im`),en=RegExp(`url\\s*\\(\\s*(?:["']?\\s*)?${Ze}\\s*:`,`i`);function tn(e){return e.replace(Vt,(e,t,n)=>{let r=t?parseInt(t,16):parseInt(n,10);return r>=0&&r<=1114111?String.fromCodePoint(r):``}).replace(Ht,(e,t)=>Bt[t]??``).replace(Ut,``)}function nn(e){return Xt.test(e)||new RegExp(Jt.source,`i`).test(e)}function rn(e){return e.toLowerCase().includes(`url(`)&&en.test(e)||$t.test(e)}function an(e){if(Wt.test(e)||e.indexOf(`:`)!==-1)return!0;let t=e.toLowerCase(),n=t.indexOf(`on`);for(;n!==-1&&n<e.length-2;){let e=t.charCodeAt(n+2);if(e>=97&&e<=122)return!0;n=t.indexOf(`on`,n+1)}return!1}function Q(e){if(!e)return``;let t=String(e);if(!an(t))return t;let n=tn(t);if(n.indexOf(`<`)!==-1){n=n.replace(Gt,``);let e;do e=n,n=n.replace(Kt,``);while(n!==e)}return n.replace(Qt,`data-unsafe-css:`).replace(Yt,`data-unsafe-protocol:`).replace(Jt,`data-unsafe-protocol:`).replace(qt,`data-unsafe-attr=`)}var on=(e,t)=>{let n=e.toLowerCase();return zt.has(n)?nn(tn(t)):!1},sn=e=>rn(tn(e)),cn=new Map;function ln(e){let t=cn.get(e);return t===void 0?(t=e.includes(`-`)?e.replace(/-./g,e=>e[1].toUpperCase()):e,cn.set(e,t),t):t}var un=new WeakMap;function dn(e){let t=un.get(e);return t||(t=Fe(()=>{let t=e.value;return Ue(t)?t.then(e=>Q(e)):Q(t)}),un.set(e,t)),t}function fn({el:e},t,n){Lt(e,t,t=>{let r=n?n(t):String(t??``);e.textContent!==r&&(e.textContent=r)},`text`)}function pn({el:e},t){let n=fe(t)?dn(t):t,r=null;Lt(e,n,i=>{let a=n===t?Q(i):i;r!==a&&(q.cleanupDescendants(e),e.innerHTML=a,r=a)},`html`)}function mn({el:e},t){let n={},r={};for(let e in t)if(V.call(t,e)){let t=e.trim();n[e]=/\s/.test(t)?t.split(/\s+/).filter(Boolean):[t]}Rt(e,t,t=>{for(let i in t){let a=!!t[i];if(r[i]===a)continue;let o=n[i];if(a)e.classList.add(...o);else for(let r of o){let a=!1;for(let e in t)if(e!==i&&t[e]&&n[e].includes(r)){a=!0;break}a||e.classList.remove(r)}r[i]=a}},`class`)}function hn({el:e},t){let n=e.style,r={},i={},a={};for(let e in t)if(V.call(t,e)){let n=t[e],[a,o]=Array.isArray(n)?n:[n,``];r[e]=a,i[e]={camel:ln(e),unit:o}}Rt(e,r,e=>{for(let t in e){let r=i[t],o=e[t],s=r.unit?`${o}${r.unit}`:String(o),c=r.camel;a[t]!==s&&(sn(s)||(n[c]=s),a[t]=s)}},`css`)}function gn({el:e},t){let n={},r={},i={};for(let a in t){if(!V.call(t,a))continue;let o=a.toLowerCase();if(o.startsWith(`on`)){console.warn(`${H.BINDING} ${U.SECURITY.BLOCKED_EVENT_HANDLER(a)}`);continue}n[a]=t[a],r[a]={isAria:o.startsWith(`aria-`),isUrl:zt.has(o)},i[a]=e.getAttribute(a)}Rt(e,n,t=>{for(let n in t){let a=r[n],o=t[n];if(o==null||o===!1&&!a.isAria){i[n]!==null&&e.removeAttribute(n),i[n]=null;continue}let s=o===!0?a.isAria?`true`:n:String(o);if(on(n,s)){console.warn(`${H.BINDING} ${U.SECURITY.BLOCKED_PROTOCOL(n)}`);continue}i[n]!==s&&(e.setAttribute(n,s),i[n]=s)}},`attr`)}function _n(e,t){let n=e.el,r={},i={},a={};for(let e in t){if(!V.call(t,e))continue;let n=e.toLowerCase();if(n.startsWith(`on`)||Xe.has(e)){console.warn(`${H.BINDING} ${n.startsWith(`on`)?U.SECURITY.BLOCKED_EVENT_HANDLER(e):U.SECURITY.BLOCKED_PROP(e)}`);continue}r[e]=t[e],i[e]={isUrl:zt.has(n)}}Rt(e.el,r,e=>{for(let t in e){let r=e[t];if(a[t]!==r){if(typeof r==`string`&&on(t,r)){console.warn(`${H.BINDING} ${U.SECURITY.BLOCKED_PROTOCOL(t)}`);continue}n[t]=r,a[t]=r}}},`prop`)}function vn({el:e},t,n){let r=e.style.display===`none`?``:e.style.display;Lt(e,t,t=>{n===!!t?e.style.display!==`none`&&(r=e.style.display,e.style.display=`none`):e.style.display===`none`&&(e.style.display=r)},n?`hide`:`show`)}function yn(e,n,r={}){let i=e.el.tagName.toLowerCase();if(!Ye.has(i)){console.warn(`${H.BINDING} ${U.BINDING.INVALID_INPUT_ELEMENT(i)}`);return}let{fx:a,cleanup:o}=It((0,t.default)(e.el),n,r);q.trackEffect(e.el,a),e.trackCleanup(o)}function bn(e){e.type===`radio`&&e.name&&(e.form?(0,t.default)(e.form):(0,t.default)(document)).find(`input[type="radio"][name="${t.default.escapeSelector(e.name)}"]`).not(e).trigger(`change.atomRadioSync`)}function xn(e,n){let r=e.el,i=(0,t.default)(r),a=()=>{n.peek()!==r.checked&&(n.value=r.checked,bn(r))};a[Y]=!0,i.on(`change change.atomRadioSync`,a),e.trackCleanup(()=>i.off(`change change.atomRadioSync`,a)),q.trackEffect(r,z(()=>{let e=!!n.value;A(()=>{r.checked!==e&&(r.checked=e,G.domUpdated(H.BINDING,r,`checked`,e),e&&bn(r))})}))}function Sn(e,n){let r=(0,t.default)(e.el);r.on(n),e.trackCleanup(()=>r.off(n))}function Cn({el:e,trackCleanup:n},r,i){let a=(0,t.default)(e);a.on(r,i),n(()=>a.off(r,i))}function wn(e){q.cleanupTree(e)}var Tn=`input, select, textarea`,En=class{constructor(e,t,n={}){this.form=e,this.atom=t,this.options=n,this.fieldMap=new Map,this.fields=[],this.elementNames=new WeakMap,this.isSyncingFromLeaf=!1,this.init()}init(){let e=z(()=>{let e=this.atom.value;this.isSyncingFromLeaf||!this.fields.length||Oe(()=>{A(()=>{for(let t=0;t<this.fields.length;t++){let n=this.fields[t],r=B(e,n.parts);Object.is(n.atom.peek(),r)||(n.atom.value=r)}})})});q.trackEffect(this.form,e),this.bindElement(this.form),this.setupObserver()}bindElement(e){let t=e.matches?.(Tn)?[e]:e.querySelectorAll?.(Tn)||[];for(let e=0,n=t.length;e<n;e++)this.bindControl(t[e])}bindControl(e){if(!(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement))return;let t=e,n=t.name;if(!n)return;let r=this.elementNames.get(t);if(r!==void 0&&r!==n&&q.cleanup(t),this.elementNames.has(t)&&r===n)return;let i=this.acquireField(n);this.elementNames.set(t,n);let a=xt(t);a.trackCleanup(()=>this.releaseField(t,n)),t instanceof HTMLInputElement&&(t.type===`radio`||t.type===`checkbox`)?this.bindToggle(a,i.atom,t.value,t.type===`checkbox`):yn(a,i.atom,this.options)}bindToggle(e,n,r,i){let a=e.el,o=()=>{let e=n.peek();if(i&&Array.isArray(e)){let t=new Set(e.map(String));a.checked?t.add(r):t.delete(r),n.value=Array.from(t)}else n.value=i?a.checked:r};o[Y]=!0,(0,t.default)(a).on(`change`,o),e.trackCleanup(()=>(0,t.default)(a).off(`change`,o)),q.trackEffect(a,z(()=>{let e=n.value,t=i?Array.isArray(e)?e.some(e=>String(e)===r):!!e:String(e)===r;a.checked!==t&&(a.checked=t)}))}acquireField(e){let t=this.fieldMap.get(e);if(t)return t.refCount++,t;let n=e.replace(/\[(\w+)\]/g,`.$1`).split(`.`).filter(Boolean),r=Ae(B(this.atom.peek(),n));return t={atom:r,parts:n,name:e,refCount:1,effect:null},t.effect=z(()=>{let t=r.value;this.options.transform&&(t=this.options.transform(e,t));let i=this.atom.peek(),a=Le(i,n,0,t);if(a!==i){this.isSyncingFromLeaf=!0;try{this.atom.value=a,this.options.onChange&&A(()=>this.options.onChange(e,t))}finally{this.isSyncingFromLeaf=!1}}}),this.fieldMap.set(e,t),this.fields.push(t),t}releaseField(e,t){let n=this.fieldMap.get(t);if(n&&--n.refCount<=0){let e=this.fields.indexOf(n);e!==-1&&this.fields.splice(e,1),n.effect?.dispose(),this.fieldMap.delete(t)}q.cleanup(e)}setupObserver(){let e=new MutationObserver(e=>{for(let t=0,n=e.length;t<n;t++){let n=e[t];if(n.type===`childList`)for(let e=0;e<n.addedNodes.length;e++){let t=n.addedNodes[e];t.nodeType===1&&this.bindElement(t)}else n.attributeName===`name`&&this.bindElement(n.target)}});e.observe(this.form,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`name`]}),q.trackCleanup(this.form,()=>e.disconnect())}};function Dn(e,t,n={}){new En(e,t,n)}t.default.fn.atomText=function(e,t){return J(this,n=>fn(n,e,t),{needsCtx:!0})},t.default.fn.atomHtml=function(e){return J(this,t=>pn(t,e),{needsCtx:!0})},t.default.fn.atomClass=function(e,t){let n=typeof e==`string`?t===void 0?null:{[e]:t}:e;return n?J(this,e=>mn(e,n),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_CONDITION(`atomClass`)}`),this)},t.default.fn.atomCss=function(e,t,n){let r=typeof e==`string`?t===void 0?null:{[e]:n?[t,n]:t}:e;return r?J(this,e=>hn(e,r),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_SOURCE(`atomCss`)}`),this)},t.default.fn.atomAttr=function(e,t){let n=typeof e==`string`?t===void 0?null:{[e]:t}:e;return n?J(this,e=>gn(e,n),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_SOURCE(`atomAttr`)}`),this)},t.default.fn.atomProp=function(e,t){let n=typeof e==`string`?t===void 0?null:{[e]:t}:e;return n?J(this,e=>_n(e,n),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_SOURCE(`atomProp`)}`),this)},t.default.fn.atomShow=function(e){return J(this,t=>vn(t,e,!1),{needsCtx:!0})},t.default.fn.atomHide=function(e){return J(this,t=>vn(t,e,!0),{needsCtx:!0})},t.default.fn.atomVal=function(e,t={}){return J(this,n=>yn(n,e,t),{needsCtx:!0})},t.default.fn.atomChecked=function(e){return J(this,t=>xn(t,e),{needsCtx:!0})},t.default.fn.atomForm=function(e,t={}){return J(this,(n,r)=>{r instanceof HTMLFormElement?Dn(r,e,t):G.log(H.BINDING,`Skipping non-Form element for atomForm`)},{needsCtx:!1})},t.default.fn.atomOn=function(e,t){return J(this,n=>Cn(n,e,t),{needsCtx:!0})};var On=[(e,t)=>fn(e,...St(t.text)),(e,t)=>pn(e,t.html),(e,t)=>mn(e,t.class),(e,t)=>hn(e,t.css),(e,t)=>gn(e,t.attr),(e,t)=>_n(e,t.prop),(e,t)=>vn(e,t.show,!1),(e,t)=>vn(e,t.hide,!0),(e,t)=>yn(e,...St(t.val)),(e,t)=>xn(e,t.checked),(e,t)=>{e.el instanceof HTMLFormElement&&Dn(e.el,...St(t.form))},(e,t)=>Sn(e,t.on)];t.default.fn.atomBind=function(e){let t=0;return e.text!==void 0&&(t|=1),e.html!==void 0&&(t|=2),e.class!==void 0&&(t|=4),e.css!==void 0&&(t|=8),e.attr!==void 0&&(t|=16),e.prop!==void 0&&(t|=32),e.show!==void 0&&(t|=64),e.hide!==void 0&&(t|=128),e.val!==void 0&&(t|=256),e.checked!==void 0&&(t|=512),e.form!==void 0&&(t|=1024),e.on!==void 0&&(t|=2048),t===0?this:J(this,n=>{let r=t;for(;r>0;){let t=r&-r;On[31-Math.clz32(t)](n,e),r^=t}},{needsCtx:!0})},t.default.fn.atomUnbind=function(){return J(this,(e,t)=>wn(t),{needsCtx:!1})};function kn(e){return e instanceof Element?(0,t.default)(e):e}function An(e,t){if(e instanceof Element)t===null?e.removeAttribute(`data-atom-key`):e.setAttribute(`data-atom-key`,t);else if(!e.nodeType){let n=e;for(let e=0,r=n.length;e<r;e++){let r=n[e];r instanceof Element&&(t===null?r.removeAttribute(`data-atom-key`):r.setAttribute(`data-atom-key`,t))}}}function jn(e){if(e instanceof Element)q.cleanupTree(e);else for(let t=0,n=e.length;t<n;t++){let n=e[t];n instanceof Element&&q.cleanupTree(n)}}var Mn=class{constructor(e,t,n){this.$container=e,this.containerSelector=t,this.onRemove=n,this.oldKeys=[],this.oldItems=[],this.oldNodes=[],this.removingKeys=new Set,this.$emptyEl=null,this.keyToIndex=new Map,this.statesBuffer=new Uint8Array(256),this.indicesBuffer=new Int32Array(256)}scheduleRemoval(e,t){let n=()=>{this.fx?.isDisposed||t[0]instanceof Element&&t[0].hasAttribute(`data-atom-key`)||(t[0]?.isConnected&&t.remove(),this.removingKeys.delete(e),G.log(H.LIST,`${this.containerSelector} removed item:`,e))},r=this.onRemove?.(t);r instanceof Promise?r.then(n,n):n()}removeItem(e,t){An(t,null),this.removingKeys.add(e),this.scheduleRemoval(e,t)}dispose(){this.removingKeys.clear(),this.oldKeys.length=0,this.oldItems.length=0,this.oldNodes.length=0,this.keyToIndex.clear(),this.$emptyEl?.remove(),this.$container.off(`.atomList`),this.statesBuffer=new Uint8Array,this.indicesBuffer=new Int32Array}ensureBuffers(e){this.statesBuffer.length<e&&(this.statesBuffer=new Uint8Array(Math.max(e,this.statesBuffer.length*2))),this.indicesBuffer.length<e&&(this.indicesBuffer=new Int32Array(Math.max(e,this.indicesBuffer.length*2)))}};function Nn(e,t,n,r,i,a,o){let{oldKeys:s,oldItems:c,oldNodes:l,removingKeys:u,keyToIndex:d}=e,f=s.length,p=0,m=f-1,h=n-1,g=a||Ge;for(;p<=m&&p<=h;){let e=t[p],n=r(e,p);if(s[p]!==n||!g(c[p],e)||!l[p])break;d.set(n,p++)}for(;m>=p&&h>=p;){let e=t[h],n=r(e,h);if(s[m]!==n||!g(c[m],e)||!l[m])break;d.set(n,h--),m--}let ee=o.map.acquire();for(let e=p;e<=m;e++)ee.set(s[e],e);let _=o.set.acquire();e.ensureBuffers(n);let v=o.array.acquire();v.length=n;let y=o.array.acquire();y.length=n;let b=o.array.acquire();b.length=n;let x=e.statesBuffer,S=e.indicesBuffer,C=o.array.acquire(),w=o.array.acquire(),T=o.array.acquire();for(let e=0;e<p;e++){let n=s[e];v[e]=n,y[e]=t[e],b[e]=l[e],x[e]=3,S[e]=e,_.add(n)}for(let e=f-1,r=n-1;r>h;r--,e--){let n=s[e];v[r]=n,y[r]=t[r],b[r]=l[e],x[r]=3,S[r]=e,_.add(n)}for(let n=p;n<=h;n++){let o=t[n],s=r(o,n);if(v[n]=s,y[n]=o,d.set(s,n),_.has(s)){G.warn(H.LIST,U.LIST.DUPLICATE_KEY(s,n,e.containerSelector)),S[n]=-1;continue}_.add(s);let f=ee.get(s);if(f===void 0){C.push(s),w.push(o),T.push(n),S[n]=-1,x[n]=1;continue}let p=c[f];b[n]=l[f],!i&&p!==o&&!(a?a(p,o):Ge(p,o))?(C.push(s),w.push(o),T.push(n),x[n]=2):x[n]=0,S[n]=u.has(s)?-1:f}return o.map.release(ee),{newKeys:v,newKeySet:_,newItems:y,newNodes:b,newStates:x,newIndices:S,trKeys:C,trItems:w,trIdxs:T,startIndex:p,oldEndIndex:m,newEndIndex:h}}var Pn=0;function Fn(e,t,n){if(!e)return;if(e instanceof Element){n.insertBefore(e,t);return}let r=e.length;for(let i=0;i<r;i++){let r=e[i];r&&n.insertBefore(r,t)}}function In(e,n,r,i,a){if(e.$emptyEl&&n>0&&(e.$emptyEl.remove(),e.$emptyEl=null),n!==0)return;let{oldKeys:o,oldNodes:s,onRemove:c}=e;if(c)for(let t=0,n=o.length;t<n;t++){let n=o[t];s[t]&&e.removeItem(n,kn(s[t]))}else{for(let t=0,n=o.length;t<n;t++)e.removingKeys.delete(o[t]);r.empty()}i&&!e.$emptyEl&&(e.$emptyEl=typeof i==`string`?(0,t.default)(Q(i)):(0,t.default)(i),e.$emptyEl.appendTo(r)),a.release(e.oldKeys),a.release(e.oldItems),a.release(e.oldNodes),e.oldKeys=[],e.oldItems=[],e.oldNodes=[]}function Ln(e,n,r){let{trKeys:i,trItems:a,trIdxs:o,newNodes:s,newStates:c}=e,l=i.length,u=Array(l),d=[],f=0;for(let e=0;e<l;e++){let t=n.render(a[e],o[e]);u[e]=t,typeof t==`string`&&(d.push(t),f++)}let p=null;if(d.length>0)if(d.length===1)p=[Q(d[0])];else{let e=`<template data-atom-sep="${(Pn++).toString(36)}"></template>`;p=Q(d.join(e)).split(e)}if(r&&p&&f===l&&!n.bind&&!n.onAdd&&!n.onRemove&&!n.events&&t.default.parseHTML(p.join(``)).length===l)return p;let m=0;for(let e=0;e<l;e++){let n=u[e],r=typeof n==`string`?(0,t.default)(t.default.parseHTML(p[m++])):(0,t.default)(n),a=o[e];if(An(r,String(i[e])),c[a]===2&&s[a]){let e=s[a];jn(e);let t=kn(e);t.first().before(r),t.remove()}s[a]=r.length===1?r[0]:r}return null}function Rn(e,t){let{startIndex:n,oldEndIndex:r,newKeySet:i}=t;for(let t=n;t<=r;t++){let n=e.oldKeys[t];!i.has(n)&&e.oldNodes[t]&&e.removeItem(n,kn(e.oldNodes[t]))}}function zn(e,n,r,i,a){let{newKeys:o,newItems:s,newNodes:c,newStates:l,newIndices:u}=n,d=o.length;if(a!==null){r.innerHTML=a.join(``);let n=r.firstElementChild;for(let r=0;r<d&&n;r++)n.setAttribute(`data-atom-key`,String(o[r])),c[r]=n,l[r]=0,e.removingKeys.delete(o[r]),G.domUpdated(H.LIST,(0,t.default)(n),`list.add`,s[r]),n=n.nextElementSibling;return}if(e.oldKeys.length===0&&e.removingKeys.size===0){let e=document.createDocumentFragment();for(let t=0;t<d;t++){let n=c[t];if(n)if(n instanceof Element)e.appendChild(n);else for(let t=0;t<n.length;t++)e.appendChild(n[t])}r.innerHTML=``,r.appendChild(e)}else{let e=null,t=2147483647;for(let n=d-1;n>=0;n--){let i=u[n],a=c[n];a&&(i!==-1&&i<t?t=i:Fn(a,e,r),e=a instanceof Element?a:a[0]??null)}}for(let t=0;t<d;t++){let n=l[t];if(n!==3){let r=c[t];if(!r)continue;let a=kn(r),l=s[t];n===0?i.update?.(a,l,t):i.bind?.(a,l,t),n===1&&(i.onAdd?.(a),e.removingKeys.delete(o[t]),G.domUpdated(H.LIST,a,`list.add`,l))}}}var Bn=new WeakMap,Vn=new dt(()=>new Map,e=>e.clear()),Hn=new dt(()=>new Set,e=>e.clear()),$=new ut(100,1024),Un={map:Vn,set:Hn,array:$};function Wn(e,n){let r=typeof n.key==`function`?n.key:e=>e[n.key],i={bind:n.bind,update:n.update,onAdd:n.onAdd,onRemove:n.onRemove,events:n.events};for(let a=0,o=this.length;a<o;a++){let o=this[a],s=(0,t.default)(o);s.off(`.atomList`);let c=Bn.get(o);c&&(c.fx.dispose(),c.ctx.dispose());let l=new Mn(s,We(o),n.onRemove),u=z(()=>{let t=e.value,a=t.length;A(()=>{if(In(l,a,s,n.empty,$),a===0)return;G.log(H.LIST,`${l.containerSelector} updating with ${a} items`);let e=Nn(l,t,a,r,n.update,n.isEqual,Un),c=Ln(e,n,l.oldKeys.length===0);if(Rn(l,e),zn(l,e,o,i,c),n.events)for(let t=e.startIndex;t<=e.oldEndIndex;t++)e.newKeySet.has(l.oldKeys[t])||l.keyToIndex.delete(l.oldKeys[t]);$.release(l.oldKeys),$.release(l.oldItems),$.release(l.oldNodes),l.oldKeys=e.newKeys,l.oldItems=e.newItems,l.oldNodes=e.newNodes,Hn.release(e.newKeySet),$.release(e.trKeys),$.release(e.trItems),$.release(e.trIdxs)})});if(l.fx=u,n.events)for(let e in n.events){if(!V.call(n.events,e))continue;let t=e.indexOf(` `),r=t===-1?e:e.slice(0,t),i=t===-1?`> *`:e.slice(t+1).trim(),a=n.events[e];s.on(`${r}.atomList`,i,function(e){let t=e.target.closest?.(`[data-atom-key]`),n=t?.getAttribute(`data-atom-key`);if(n==null)return;let r=n;if(!l.keyToIndex.has(n)){let e=Number(n);!Number.isNaN(e)&&l.keyToIndex.has(e)&&(r=e)}let i=l.keyToIndex.get(r);i!==void 0&&a.call(t,l.oldItems[i],i,e)})}q.trackEffect(o,u),Bn.set(o,{fx:u,ctx:l}),q.trackCleanup(o,()=>{l.dispose(),Bn.delete(o)})}return this}t.default.fn.atomList=Wn;var Gn=Object.freeze({});t.default.fn.atomMount=function(e,n){let r=n??Gn,i=e.name||`Component`;return J(this,(n,a)=>{q.cleanupTree(a);try{let n=A(()=>Oe(()=>e((0,t.default)(a),r)));typeof n==`function`&&q.setComponentCleanup(a,n)}catch(e){G.error(H.MOUNT,U.MOUNT.ERROR(i),e)}})},t.default.fn.atomUnmount=function(){return J(this,(e,t)=>wn(t))};function Kn(e,t){try{history.pushState(e,``,t)}catch(e){G.warn(H.ROUTE,`PushState failed (likely file:// protocol or security restriction). UI will update, but URL will not.`,e)}}var qn=class{parseQueryParams(e){let t={};return e&&new URLSearchParams(e).forEach((e,n)=>{t[n]=e}),t}constructor(e){this.isDestroyed=!1,this.previousRoute=``,this.cleanups=[],this.templateCache=new Map,this.routeCleanups=[],this.lastRawQuery=``,this.cachedParams={},this.config={mode:Ke.mode,basePath:Ke.basePath,autoBindLinks:Ke.autoBindLinks,activeClass:Ke.activeClass,notFound:e.notFound||``,beforeTransition:e.beforeTransition||(()=>{}),afterTransition:e.afterTransition||(()=>{}),...e},this.isHistoryMode=this.config.mode===`history`,this.basePath=this.config.basePath.replace(/\/$/,``),this.activeClass=this.config.activeClass,this.$target=(0,t.default)(this.config.target),this.previousUrl=this.isHistoryMode?location.pathname+location.search:location.hash,this.currentRouteAtom=Ae(this.getRouteName()),this.currentRoute=this.currentRouteAtom,this.queryParamsAtom=Ae(this.getQueryParams()),this.queryParams=Fe(()=>this.queryParamsAtom.value),this.init()}init(){let e=this.isHistoryMode?`popstate`:`hashchange`,t=this.handleUrlChange.bind(this);window.addEventListener(e,t),this.cleanups.push(()=>window.removeEventListener(e,t));let n=z(()=>{let e=this.currentRouteAtom.value;A(()=>{for(let e of this.routeCleanups)try{e()}catch{}this.routeCleanups.length=0}),this.renderRoute(e)});this.cleanups.push(()=>n.dispose()),this.setupAutoBindLinks(),this.$target[0]&&q.trackCleanup(this.$target[0],()=>this.destroy())}getRouteName(){let{default:e}=this.config;if(this.isHistoryMode){let t=this.basePath,n=location.pathname;return t&&(n===t||n.startsWith(`${t}/`))&&(n=n.substring(t.length)),n.replace(/^\/+/,``)||e}let t=location.hash,{route:n}=this.splitPath(t.startsWith(`#`)?t.substring(1):t);return n||e}getQueryParams(){let e=this.getCurrentRawQuery();if(e===this.lastRawQuery)return this.cachedParams;this.lastRawQuery=e;let t=this.parseQueryParams(e);return this.areParamsEqual(t,this.cachedParams)?this.cachedParams:(e.indexOf(`%`),this.cachedParams=t,t)}getCurrentRawQuery(){if(this.isHistoryMode)return location.search.substring(1);let e=location.hash,t=e.indexOf(`?`);return t===-1?``:e.substring(t+1)}areParamsEqual(e,t){let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0}splitPath(e){let t=e.indexOf(`?`),n=t===-1?e:e.slice(0,t),r=t===-1?void 0:e.slice(t+1);return{route:n.replace(/^\/+/,``),query:r}}setUrl(e){let{route:t,query:n}=this.splitPath(e),r=n?`${t}?${n}`:t,i=this.isHistoryMode?`${this.basePath}/${r}`:`#${r}`;this.isHistoryMode?Kn(null,i):location.hash=i,this.previousUrl=this.isHistoryMode?i:location.hash}restoreUrl(){try{this.isHistoryMode?history.replaceState(null,``,this.previousUrl):location.hash=this.previousUrl}catch(e){G.warn(H.ROUTE,`Restore URL failed`,e)}}renderRoute(e){if(this.isDestroyed||!this.$target[0])return;let{routes:t,notFound:n,beforeTransition:r,afterTransition:i}=this.config,a=t[e]??(n?t[n]:void 0);if(!a){G.warn(H.ROUTE,U.ROUTE.NOT_FOUND(e));return}let o=this.getQueryParams(),s=this.previousRoute;r&&A(()=>r(s,e)),this.$target.empty();let c=o;if(a.onEnter){let e=A(()=>a.onEnter(o,this));e&&(c={...o,...e})}let l=e=>this.routeCleanups.push(e);if(a.render)a.render(this.$target[0],e,c,l,this);else if(a.template){let e=this.templateCache.get(a.template);if(!e){let t=document.querySelector(a.template);if(t instanceof HTMLTemplateElement)e=t,this.templateCache.set(a.template,e);else{G.warn(H.ROUTE,U.ROUTE.TEMPLATE_NOT_FOUND(a.template));return}}this.$target.append(e.content.cloneNode(!0)),a.onMount&&a.onMount(this.$target.children(),l,this)}i&&A(()=>i(s,e)),this.previousRoute=e}handleUrlChange(){if(this.isDestroyed)return;let e=this.isHistoryMode?location.pathname+location.search:location.hash;if(e===this.previousUrl)return;let t=this.getRouteName(),n=this.currentRouteAtom.peek();if(n!==t){if(A(()=>this.config.routes[n]?.onLeave?.(this))===!1){this.restoreUrl();return}this.currentRouteAtom.value=t}this.queryParamsAtom.value=this.getQueryParams(),this.previousUrl=e}setupAutoBindLinks(){if(!this.config.autoBindLinks)return;let e=e=>{e.preventDefault();let t=e.currentTarget.dataset.route;t!=null&&this.navigate(t)};(0,t.default)(document).on(`click`,`[data-route]`,e),this.cleanups.push(()=>(0,t.default)(document).off(`click`,`[data-route]`,e));let n=[],r=z(()=>{let e=this.currentRouteAtom.value,t=this.activeClass;A(()=>{for(let e of n)e.classList.remove(t),e.removeAttribute(`aria-current`);try{let r=`[data-route="${e.replace(/"/g,`\\"`)}"]`,i=Array.from(document.querySelectorAll(r));for(let e of i)e.classList.add(t),e.setAttribute(`aria-current`,`page`);n=i}catch{n=[]}})});this.cleanups.push(()=>{r.dispose(),n.length=0})}navigate(e){if(this.isDestroyed)return;let n=this.currentRouteAtom.peek();if(this.config.routes[n]?.onLeave?.(this)===!1)return;let{route:r,query:i}=this.splitPath(e),a=r||this.config.default||``;a&&t.default.batch(()=>{this.setUrl(e);let t=i?this.parseQueryParams(i):{};this.areParamsEqual(t,this.queryParamsAtom.peek())||(this.queryParamsAtom.value=t),this.currentRouteAtom.value=a})}destroy(){if(!this.isDestroyed){this.isDestroyed=!0;for(let e of this.cleanups)try{e()}catch{}this.cleanups.length=0,this.templateCache.clear()}}};function Jn(e){return new qn(e)}t.default.extend({route:Jn});var Yn=class{constructor(e,n){this.abortController=null,this.execute=async()=>{this.abort();let e=new AbortController;this.abortController=e;let{signal:n}=e,r;try{let e=this.prepareSettings(),i=t.default.ajax(e);r=()=>i.abort(),n.addEventListener(`abort`,r),n.aborted&&i.abort();let a=await i;return this.transformFn?this.transformFn(a):a}catch(e){if(n.aborted)throw this.createAbortError();return this.handleError(e)}finally{r&&n.removeEventListener(`abort`,r),this.abortController===e&&(this.abortController=null)}};let r=typeof e==`string`;this.isStaticUrl=r,r?(this.staticUrl=e,this.getUrl=()=>this.staticUrl):this.getUrl=e,this.ajaxOptionsFn=typeof n.ajaxOptions==`function`?n.ajaxOptions:void 0;let i=typeof n.ajaxOptions==`object`?n.ajaxOptions:{};this.staticOptions={...i,headers:{...i?.headers,...n.headers}},n.method&&(this.staticOptions.method=n.method),this.transformFn=n.transform,this.onErrorFn=n.onError}abort(){this.abortController?.abort()}handleError(e){let t;if(e&&e.readyState!==void 0){let n=e;t=Error(`Network Error: ${n.statusText||`Unknown`} (${n.status})`),t.jqXHR=n}else t=e instanceof Error?e:Error(String(e??`Unknown error`));if(this.onErrorFn)try{this.onErrorFn(t)}catch{}throw t}prepareSettings(){let e=this.ajaxOptionsFn?.()??{};return{...this.staticOptions,...e,headers:{...this.staticOptions.headers,...e.headers},url:this.isStaticUrl?this.staticUrl:this.getUrl(),success:void 0,error:void 0,complete:void 0}}createAbortError(){let e=Error(`AbortError`);return e.name=`AbortError`,e}};t.default.extend({atomFetch(e,t){let n=new Yn(e,t),r=Fe(n.execute,{defaultValue:t.defaultValue,lazy:t.eager===!1}),i=r.dispose.bind(r);return r.dispose=()=>{n.abort(),i()},Object.assign(r,{abort:()=>n.abort()})}}),(0,t.default)(()=>{jt(),document.body&&yt(document.body)}),e.default=t.default,e.disableAutoCleanup=bt,e.disablejQueryOverrides=Mt,e.enableAutoCleanup=yt,e.enablejQueryOverrides=jt,e.isReactive=He,e.nextTick=lt,e.registry=q});
|
|
3
11
|
//# sourceMappingURL=atom-effect-jquery.min.js.map
|