diff --git a/assets/index-680e55bc.js b/assets/index-680e55bc.js new file mode 100644 index 0000000..c3341d4 --- /dev/null +++ b/assets/index-680e55bc.js @@ -0,0 +1,2 @@ +const e={equals:(e,t)=>e===t};let t=y;const n=1,s=2,r={owned:null,cleanups:null,context:null,owner:null};var o=null;let l=null,i=null,u=null,a=null,c=0;function f(t,n){const s={value:t,observers:null,observerSlots:null,comparator:(n=n?Object.assign({},e,n):e).equals||void 0};return[p.bind(s),e=>("function"==typeof e&&(e=e(s.value)),m(s,e))]}function d(e,t,s){b(v(e,t,!1,n))}function h(e){if(null===i)return e();const t=i;i=null;try{return e()}finally{i=t}}function g(e){!function(e,s,r){t=M;const o=v(e,s,!1,n);r&&r.render||(o.user=!0),a?a.push(o):b(o)}((()=>h(e)))}function p(){if(this.sources&&this.state)if(this.state===n)b(this);else{const e=u;u=null,S((()=>w(this)),!1),u=e}if(i){const e=this.observers?this.observers.length:0;i.sources?(i.sources.push(this),i.sourceSlots.push(e)):(i.sources=[this],i.sourceSlots=[e]),this.observers?(this.observers.push(i),this.observerSlots.push(i.sources.length-1)):(this.observers=[i],this.observerSlots=[i.sources.length-1])}return this.value}function m(e,t,s){let r=e.value;return e.comparator&&e.comparator(r,t)||(e.value=t,e.observers&&e.observers.length&&S((()=>{for(let t=0;t1e6)throw u=[],new Error}),!1)),t}function b(e){if(!e.fn)return;A(e);const t=o,s=i,r=c;i=o=e,function(e,t,s){let r;try{r=e.fn(t)}catch(o){return e.pure&&(e.state=n,e.owned&&e.owned.forEach(A),e.owned=null),e.updatedAt=s+1,T(o)}(!e.updatedAt||e.updatedAt<=s)&&(null!=e.updatedAt&&"observers"in e?m(e,r):e.value=r,e.updatedAt=s)}(e,e.value,r),i=s,o=t}function v(e,t,s,l=n,i){const u={fn:e,state:l,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:o,context:o?o.context:null,pure:s};return null===o||o!==r&&(o.owned?o.owned.push(u):o.owned=[u]),u}function D(e){if(0===e.state)return;if(e.state===s)return w(e);if(e.suspense&&h(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;r--)if((e=t[r]).state===n)b(e);else if(e.state===s){const n=u;u=null,S((()=>w(e,t[0])),!1),u=n}}function S(e,n){if(u)return e();let s=!1;n||(u=[]),a?s=!0:a=[],c++;try{const n=e();return function(e){u&&(y(u),u=null);if(e)return;const n=a;a=null,n.length&&S((()=>t(n)),!1)}(s),n}catch(r){s||(a=null),u=null,T(r)}}function y(e){for(let t=0;t=0;t--)A(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function T(e,t=o){const n=function(e){return e instanceof Error?e:new Error("string"==typeof e?e:"Unknown error",{cause:e})}(e);throw n}function x(e,t){return h((()=>e(t||{})))}function G(e,t,n){let s;const r=()=>{const t=document.createElement("template");return t.innerHTML=e,n?t.content.firstChild.firstChild:t.content.firstChild},o=t?()=>h((()=>document.importNode(s||(s=r()),!0))):()=>(s||(s=r())).cloneNode(!0);return o.cloneNode=o,o}function P(e,t,n,s){if(void 0===n||s||(s=[]),"function"!=typeof t)return I(e,t,s,n);d((s=>I(e,t(),s,n)),s)}function I(e,t,n,s,r){for(;"function"==typeof n;)n=n();if(t===n)return n;const o=typeof t,l=void 0!==s;if(e=l&&n[0]&&n[0].parentNode||e,"string"===o||"number"===o)if("number"===o&&(t=t.toString()),l){let r=n[0];r&&3===r.nodeType?r.data=t:r=document.createTextNode(t),n=Y(e,n,s,r)}else n=""!==n&&"string"==typeof n?e.firstChild.data=t:e.textContent=t;else if(null==t||"boolean"===o)n=Y(e,n,s);else{if("function"===o)return d((()=>{let r=t();for(;"function"==typeof r;)r=r();n=I(e,r,n,s)})),()=>n;if(Array.isArray(t)){const o=[],i=n&&Array.isArray(n);if(q(o,t,n,r))return d((()=>n=I(e,o,n,s,!0))),()=>n;if(0===o.length){if(n=Y(e,n,s),l)return n}else i?0===n.length?F(e,o,s):function(e,t,n){let s=n.length,r=t.length,o=s,l=0,i=0,u=t[r-1].nextSibling,a=null;for(;ls-i){const r=t[l];for(;i=0;o--){const l=t[o];if(r!==l){const t=l.parentNode===e;s||o?t&&l.remove():t?e.replaceChild(r,l):e.insertBefore(r,n)}else s=!0}}else e.insertBefore(r,n);return[r]}const k=Date.UTC,H=[{name:"Daily tasks:",start:k(2023,7,29,12),occurence:864e5,sequenceLabel:e=>`${e} Region`,sequence:["Stia","Retem","Aelio","Kvaris"]},{name:"Daily tasks:",start:k(2023,8,2,12),occurence:864e5,sequenceLabel:e=>`${e} Gathering`,sequence:["Fruit","Mineral","Vegetable","TAMES","Seafood"]},{name:"GP Tree:",start:k(2022,8,3,12),occurence:864e5,sequence:["GPID4 (315pts)","GPID1 (625pts)","GPID8 (315pts)","GPID5 (315pts)","GPID2 (625pts)","GPID7 (315pts)","GPID6 (315pts)","GPID3 (625pts)","GPID6 (315pts)","GPID7 (315pts)","GPID0 & 4 (315pts & 625pts)","GPID5 (315pts)","GPID3 & 8 (315pts & 315pts)","GPID5 (625pts)","GPID4 (315pts)","GPID9 (315pts)","GPID6 (625pts)","GPID3 (315pts)","GPID0 (315pts)","GPID7 (625pts)","GPID2 (315pts)","GPID1 (315pts)","GPID8 (625pts)","GPID1 (315pts)","GPID2 (315pts)","GPID9 (625pts)","GPID0 (625pts)","GPID9 (315pts)"]},{name:"Daily free SG scratch",start:k(2023,7,29,8),occurence:864e5},{name:"Lookbook SG",start:k(2023,7,29,15),occurence:864e5},{name:"Leciel Exploration buffs",start:k(2023,7,29,19),occurence:864e5},{name:"Treasure Shop",start:k(2023,7,29,3),occurence:864e5},{name:"Weekly tasks",start:k(2023,7,23,3),occurence:6048e5},{name:"Alliance tasks:",start:k(2023,1,1,3),occurence:6048e5,sequenceLabel:e=>`${e} Region`,sequence:["Aelio","Retem","Kvaris","Stia"]},{name:"Alliance tasks:",start:k(2023,1,22,3),occurence:24192e5,sequenceLabel:e=>`${e} Augment`,sequence:["Note A","Note B","Note C","Note D"]},{name:"Alliance tasks:",start:k(2023,1,1,3),occurence:6048e5,sequenceLabel:e=>`${e} Rare Enemy`,sequence:["Silver","Gold"]},{name:"Alliance tasks:",start:k(2023,1,1,3),occurence:6048e5,sequenceLabel:e=>`${e} Field Race`,sequence:["Dash","Board"]},{name:"Alliance tasks:",start:k(2023,1,1,3),occurence:6048e5,sequenceLabel:e=>`${e} Task`,sequence:["Kudos","Region Mags","Battledia Yellow"]},{name:"ARKS Records",start:k(2023,7,23,2),occurence:6048e5}],N=36e5,B=e=>new Date(e.getTime()),U=Math.abs,z=Math.sign,L=Math.trunc,R=(e,t)=>{const n=B(e);return n.setFullYear(n.getFullYear()+t),n},$=(e,t)=>{const n=B(e),s=B(t),r=se(e,t),o=U(((e,t)=>e.getFullYear()-t.getFullYear())(e,t));n.setFullYear(1584),s.setFullYear(1584);const l=r*(o-+(se(n,s)===-r));return 0===l?0:l},E=(e,t)=>{const n=B(e);return n.setMonth(n.getMonth()+t),n},K=e=>V(e).getTime()===(e=>{const t=B(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t})(e).getTime(),j=(e,t)=>{const n=B(e),s=se(e,t),r=U(((e,t)=>12*(e.getFullYear()-t.getFullYear())+(e.getMonth()-t.getMonth()))(e,t));let o;if(r<1)o=0;else{1===n.getMonth()&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-s*r);o=s*(r-+((!K(n)||1!==r||1!==se(n,t))&&se(n,t)===-s))}return 0===o?0:o},O=(e,t)=>{const n=B(e);return n.setDate(n.getDate()+t),n},W=e=>{const t=B(e);return t.setHours(0,0,0,0),t},V=e=>{const t=B(e);return t.setHours(23,59,59,999),t},_=(e,t)=>{const n=B(e),s=re(e,t),r=U(((e,t)=>{const n=e.getTime()-le(e),s=t.getTime()-le(t);return Math.round((n-s)/864e5)})(e,t));n.setDate(n.getDate()-s*r);const o=s*(r-+(re(n,t)===-s));return 0===o?0:o},J=(e,t)=>Q(e,e.getHours()+t),Q=(e,t)=>{const n=B(e);return n.setHours(t),n},X=(e,t)=>oe(e,t,N),Z=(e,t)=>{const n=B(e);return n.setMinutes(n.getMinutes()+t),n},ee=(e,t)=>oe(e,t,6e4),te=(e,t)=>{const n=B(e);return n.setSeconds(n.getSeconds()+t),n},ne=(e,t)=>oe(e,t,1e3),se=(e,t)=>z(e.getTime()-t.getTime()),re=(e,t)=>{const n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return z(n)},oe=(e,t,n)=>L((e.getTime()-t.getTime())/n),le=e=>{const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()},ie=G('
'),ue=G(""),ae=G('

NGS World Time

Current time:
Day (06:00 AM):(in )
Night (08:00 PM):(in )

Reset timersends in

source code'),ce=(e,t,n)=>{let s=(e=>{const t=B(e);return t.setHours(t.getHours(),0,0,0),t})(Q(t,n));return s.getTime()<=t.getTime()&&(s=O(s,1)),te(e,ne(s,t)/30)},fe=(e,t,n)=>(""+e).padStart(n,t),de=(e,t)=>{const{days:n,hours:s,minutes:r,seconds:o}=((e,t)=>{let n,s=e;return{years:n=$(e,t),months:n=j(t,s=R(s,n)),days:n=_(t,s=E(s,n)),hours:n=X(t,s=O(s,n)),minutes:n=ee(t,s=J(s,n)),seconds:n=ne(t,s=Z(s,n))}})(e,t);let l="",i=!1;return(i||n>0)&&(l&&(l+=":"),l+=i?fe(n,"0",2):n,i=!0),(i||s>0)&&(l&&(l+=":"),l+=i?fe(s,"0",2):s,i=!0),l&&(l+=":"),l+=`${i?fe(r,"0",2):r}:${fe(o,"0",2)}`,l},he=({now:t,event:n})=>{const{name:s,start:r,occurence:o,sequence:l,sequenceLabel:i}=n,u=function(t,n,s){s=s?Object.assign({},e,s):e;const r=v(t,n,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=s.equals||void 0,b(r),p.bind(r)}((e=>{const n=t().getTime();return e&&e.date.getTime()>n?e:((e,t,n)=>{const s=e-t,r=Math.ceil(s/n);return{index:r,date:new Date(t+r*n)}})(n,r,o)})),a=()=>{if(!l)return null;const e=l[u().index%l.length],t=i?i(e):e;return(()=>{const e=ie();return e.firstChild,P(e,t,null),e})()};return(()=>{const e=ue(),n=e.firstChild,r=n.firstChild,o=n.nextSibling;return P(r,s),P(n,a,null),P(o,(()=>de(t(),u().date))),e})()},ge=new Intl.DateTimeFormat(void 0,{timeStyle:"short"}),pe=()=>{const[e,t]=f(new Date),[n,s]=f(new Date(0)),[r,o]=f(new Date(0)),[l,i]=f(new Date(0)),[u,a]=f("#icon-sun");return d((()=>{const t=e(),n=((e,t)=>{const n=36e5*-t,s=new Date(e.getTime()-n),r=new Date(0);return r.setFullYear(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()),r.setHours(s.getUTCHours(),s.getUTCMinutes(),s.getUTCSeconds(),s.getUTCMilliseconds()),r})(t,-7),r=ne(n,Z(W(n),-38)),l=te(W(n),r%2880*30),u=l.getHours();s(l),o(ce(t,l,6)),i(ce(t,l,20)),a(u<6||u>=20?"#icon-moon":"#icon-sun")})),g((()=>{const e=new AbortController;return((e,t,n)=>{const s=document.timeline?document.timeline.currentTime:performance.now(),r=e=>{t.aborted||(n(e),o(e))},o=t=>{const n=t-s,o=Math.round(n/e)*e,l=s+o+e-performance.now();setTimeout((()=>requestAnimationFrame(r)),l)};o(s)})(1e3,e.signal,(()=>{const e=new Date;e.setMilliseconds(0),t(e)})),()=>e.abort()})),(()=>{const t=ae(),s=t.firstChild.nextSibling,o=s.firstChild,i=o.firstChild.firstChild.nextSibling.firstChild,a=i.nextSibling.firstChild,c=o.nextSibling.firstChild,f=c.firstChild.nextSibling.firstChild,h=f.firstChild.nextSibling;h.nextSibling;const g=f.nextSibling,p=c.nextSibling.firstChild.nextSibling.firstChild,m=p.firstChild.nextSibling;m.nextSibling;const b=p.nextSibling,v=s.nextSibling.nextSibling.firstChild.nextSibling;return P(i,(()=>ge.format(n()))),P(f,(()=>de(e(),r())),h),P(g,(()=>ge.format(r()))),P(p,(()=>de(e(),l())),m),P(b,(()=>ge.format(l()))),P(v,(()=>H.map((t=>x(he,{now:e,event:t}))))),d((()=>{return e=a,t="href",void(null==(n=u())?e.removeAttribute(t):e.setAttribute(t,n));var e,t,n})),t})()};!function(e,t,n,s={}){let l;(function(e,t){const n=i,s=o,l=0===e.length,u=void 0===t?s:t,a=l?r:{owned:null,cleanups:null,context:u?u.context:null,owner:u},c=l?e:()=>e((()=>h((()=>A(a)))));o=a,i=null;try{return S(c,!0)}finally{i=n,o=s}})((s=>{l=s,t===document?e():P(t,e(),t.firstChild?null:void 0,n)}),s.owner)}((()=>x(pe,{})),document.body); +//# sourceMappingURL=index-680e55bc.js.map diff --git a/assets/index-ae7a86db.js.map b/assets/index-680e55bc.js.map similarity index 66% rename from assets/index-ae7a86db.js.map rename to assets/index-680e55bc.js.map index 351e6f1..810e8dc 100644 --- a/assets/index-ae7a86db.js.map +++ b/assets/index-680e55bc.js.map @@ -1 +1 @@ -{"version":3,"file":"index-ae7a86db.js","sources":["../../node_modules/.pnpm/solid-js@1.7.11/node_modules/solid-js/dist/solid.js","../../node_modules/.pnpm/solid-js@1.7.11/node_modules/solid-js/web/dist/web.js","../../src/events.ts","../../src/utils.ts","../../src/App.tsx"],"sourcesContent":["let taskIdCounter = 1,\n isCallbackScheduled = false,\n isPerformingWork = false,\n taskQueue = [],\n currentTask = null,\n shouldYieldToHost = null,\n yieldInterval = 5,\n deadline = 0,\n maxYieldInterval = 300,\n scheduleCallback = null,\n scheduledCallback = null;\nconst maxSigned31BitInt = 1073741823;\nfunction setupScheduler() {\n const channel = new MessageChannel(),\n port = channel.port2;\n scheduleCallback = () => port.postMessage(null);\n channel.port1.onmessage = () => {\n if (scheduledCallback !== null) {\n const currentTime = performance.now();\n deadline = currentTime + yieldInterval;\n const hasTimeRemaining = true;\n try {\n const hasMoreWork = scheduledCallback(hasTimeRemaining, currentTime);\n if (!hasMoreWork) {\n scheduledCallback = null;\n } else port.postMessage(null);\n } catch (error) {\n port.postMessage(null);\n throw error;\n }\n }\n };\n if (navigator && navigator.scheduling && navigator.scheduling.isInputPending) {\n const scheduling = navigator.scheduling;\n shouldYieldToHost = () => {\n const currentTime = performance.now();\n if (currentTime >= deadline) {\n if (scheduling.isInputPending()) {\n return true;\n }\n return currentTime >= maxYieldInterval;\n } else {\n return false;\n }\n };\n } else {\n shouldYieldToHost = () => performance.now() >= deadline;\n }\n}\nfunction enqueue(taskQueue, task) {\n function findIndex() {\n let m = 0;\n let n = taskQueue.length - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = task.expirationTime - taskQueue[k].expirationTime;\n if (cmp > 0) m = k + 1;else if (cmp < 0) n = k - 1;else return k;\n }\n return m;\n }\n taskQueue.splice(findIndex(), 0, task);\n}\nfunction requestCallback(fn, options) {\n if (!scheduleCallback) setupScheduler();\n let startTime = performance.now(),\n timeout = maxSigned31BitInt;\n if (options && options.timeout) timeout = options.timeout;\n const newTask = {\n id: taskIdCounter++,\n fn,\n startTime,\n expirationTime: startTime + timeout\n };\n enqueue(taskQueue, newTask);\n if (!isCallbackScheduled && !isPerformingWork) {\n isCallbackScheduled = true;\n scheduledCallback = flushWork;\n scheduleCallback();\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n task.fn = null;\n}\nfunction flushWork(hasTimeRemaining, initialTime) {\n isCallbackScheduled = false;\n isPerformingWork = true;\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } finally {\n currentTask = null;\n isPerformingWork = false;\n }\n}\nfunction workLoop(hasTimeRemaining, initialTime) {\n let currentTime = initialTime;\n currentTask = taskQueue[0] || null;\n while (currentTask !== null) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n break;\n }\n const callback = currentTask.fn;\n if (callback !== null) {\n currentTask.fn = null;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n callback(didUserCallbackTimeout);\n currentTime = performance.now();\n if (currentTask === taskQueue[0]) {\n taskQueue.shift();\n }\n } else taskQueue.shift();\n currentTask = taskQueue[0] || null;\n }\n return currentTask !== null;\n}\n\nconst sharedConfig = {\n context: undefined,\n registry: undefined\n};\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nfunction nextHydrateContext() {\n return {\n ...sharedConfig.context,\n id: `${sharedConfig.context.id}${sharedConfig.context.count++}-`,\n count: 0\n };\n}\n\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst $TRACK = Symbol(\"solid-track\");\nconst $DEVCOMP = Symbol(\"solid-dev-component\");\nconst signalOptions = {\n equals: equalFn\n};\nlet ERROR = null;\nlet runEffects = runQueue;\nconst STALE = 1;\nconst PENDING = 2;\nconst UNOWNED = {\n owned: null,\n cleanups: null,\n context: null,\n owner: null\n};\nconst NO_INIT = {};\nvar Owner = null;\nlet Transition = null;\nlet Scheduler = null;\nlet ExternalSourceFactory = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nconst [transPending, setTransPending] = /*@__PURE__*/createSignal(false);\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener,\n owner = Owner,\n unowned = fn.length === 0,\n current = detachedOwner === undefined ? owner : detachedOwner,\n root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: current ? current.context : null,\n owner: current\n },\n updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));\n Owner = root;\n Listener = null;\n try {\n return runUpdates(updateFn, true);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n}\nfunction createSignal(value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const s = {\n value,\n observers: null,\n observerSlots: null,\n comparator: options.equals || undefined\n };\n const setter = value => {\n if (typeof value === \"function\") {\n if (Transition && Transition.running && Transition.sources.has(s)) value = value(s.tValue);else value = value(s.value);\n }\n return writeSignal(s, value);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n if (!options || !options.render) c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createReaction(onInvalidate, options) {\n let fn;\n const c = createComputation(() => {\n fn ? fn() : untrack(onInvalidate);\n fn = undefined;\n }, undefined, false, 0),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n c.user = true;\n return tracking => {\n fn = tracking;\n updateComputation(c);\n };\n}\nfunction createMemo(fn, value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const c = createComputation(fn, value, true, 0);\n c.observers = null;\n c.observerSlots = null;\n c.comparator = options.equals || undefined;\n if (Scheduler && Transition && Transition.running) {\n c.tState = STALE;\n Updates.push(c);\n } else updateComputation(c);\n return readSignal.bind(c);\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n if (arguments.length === 2 && typeof pFetcher === \"object\" || arguments.length === 1) {\n source = true;\n fetcher = pSource;\n options = pFetcher || {};\n } else {\n source = pSource;\n fetcher = pFetcher;\n options = pOptions || {};\n }\n let pr = null,\n initP = NO_INIT,\n id = null,\n loadedUnderTransition = false,\n scheduled = false,\n resolved = (\"initialValue\" in options),\n dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = new Set(),\n [value, setValue] = (options.storage || createSignal)(options.initialValue),\n [error, setError] = createSignal(undefined),\n [track, trigger] = createSignal(undefined, {\n equals: false\n }),\n [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = `${sharedConfig.context.id}${sharedConfig.context.count++}`;\n let v;\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;else if (sharedConfig.load && (v = sharedConfig.load(id))) initP = v[0];\n }\n function loadEnd(p, v, error, key) {\n if (pr === p) {\n pr = null;\n key !== undefined && (resolved = true);\n if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {\n value: v\n }));\n initP = NO_INIT;\n if (Transition && p && loadedUnderTransition) {\n Transition.promises.delete(p);\n loadedUnderTransition = false;\n runUpdates(() => {\n Transition.running = true;\n completeLoad(v, error);\n }, false);\n } else completeLoad(v, error);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === undefined) setValue(() => v);\n setState(err !== undefined ? \"errored\" : resolved ? \"ready\" : \"unresolved\");\n setError(err);\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n }, false);\n }\n function read() {\n const c = SuspenseContext && useContext(SuspenseContext),\n v = value(),\n err = error();\n if (err !== undefined && !pr) throw err;\n if (Listener && !Listener.user && c) {\n createComputed(() => {\n track();\n if (pr) {\n if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {\n c.increment();\n contexts.add(c);\n }\n }\n });\n }\n return v;\n }\n function load(refetching = true) {\n if (refetching !== false && scheduled) return;\n scheduled = false;\n const lookup = dynamic ? dynamic() : source;\n loadedUnderTransition = Transition && Transition.running;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n if (Transition && pr) Transition.promises.delete(pr);\n const p = initP !== NO_INIT ? initP : untrack(() => fetcher(lookup, {\n value: value(),\n refetching\n }));\n if (typeof p !== \"object\" || !(p && \"then\" in p)) {\n loadEnd(pr, p, undefined, lookup);\n return p;\n }\n pr = p;\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));\n }\n Object.defineProperties(read, {\n state: {\n get: () => state()\n },\n error: {\n get: () => error()\n },\n loading: {\n get() {\n const s = state();\n return s === \"pending\" || s === \"refreshing\";\n }\n },\n latest: {\n get() {\n if (!resolved) return read();\n const err = error();\n if (err && !pr) throw err;\n return value();\n }\n }\n });\n if (dynamic) createComputed(() => load(false));else load(false);\n return [read, {\n refetch: load,\n mutate: setValue\n }];\n}\nfunction createDeferred(source, options) {\n let t,\n timeout = options ? options.timeoutMs : undefined;\n const node = createComputation(() => {\n if (!t || !t.fn) t = requestCallback(() => setDeferred(() => node.value), timeout !== undefined ? {\n timeout\n } : undefined);\n return source();\n }, undefined, true);\n const [deferred, setDeferred] = createSignal(node.value, options);\n updateComputation(node);\n setDeferred(() => node.value);\n return deferred;\n}\nfunction createSelector(source, fn = equalFn, options) {\n const subs = new Map();\n const node = createComputation(p => {\n const v = source();\n for (const [key, val] of subs.entries()) if (fn(key, v) !== fn(key, p)) {\n for (const c of val.values()) {\n c.state = STALE;\n if (c.pure) Updates.push(c);else Effects.push(c);\n }\n }\n return v;\n }, undefined, true, STALE);\n updateComputation(node);\n return key => {\n const listener = Listener;\n if (listener) {\n let l;\n if (l = subs.get(key)) l.add(listener);else subs.set(key, l = new Set([listener]));\n onCleanup(() => {\n l.delete(listener);\n !l.size && subs.delete(key);\n });\n }\n return fn(key, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n };\n}\nfunction batch(fn) {\n return runUpdates(fn, false);\n}\nfunction untrack(fn) {\n if (Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction on(deps, fn, options) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let defer = options && options.defer;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++) input[i] = deps[i]();\n } else input = deps();\n if (defer) {\n defer = false;\n return undefined;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nfunction onMount(fn) {\n createEffect(() => untrack(fn));\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;else if (Owner.cleanups === null) Owner.cleanups = [fn];else Owner.cleanups.push(fn);\n return fn;\n}\nfunction catchError(fn, handler) {\n ERROR || (ERROR = Symbol(\"error\"));\n Owner = createComputation(undefined, undefined, true);\n Owner.context = {\n ...Owner.context,\n [ERROR]: [handler]\n };\n if (Transition && Transition.running) Transition.sources.add(Owner);\n try {\n return fn();\n } catch (err) {\n handleError(err);\n } finally {\n Owner = Owner.owner;\n }\n}\nfunction getListener() {\n return Listener;\n}\nfunction getOwner() {\n return Owner;\n}\nfunction runWithOwner(o, fn) {\n const prev = Owner;\n const prevListener = Listener;\n Owner = o;\n Listener = null;\n try {\n return runUpdates(fn, true);\n } catch (err) {\n handleError(err);\n } finally {\n Owner = prev;\n Listener = prevListener;\n }\n}\nfunction enableScheduling(scheduler = requestCallback) {\n Scheduler = scheduler;\n}\nfunction startTransition(fn) {\n if (Transition && Transition.running) {\n fn();\n return Transition.done;\n }\n const l = Listener;\n const o = Owner;\n return Promise.resolve().then(() => {\n Listener = l;\n Owner = o;\n let t;\n if (Scheduler || SuspenseContext) {\n t = Transition || (Transition = {\n sources: new Set(),\n effects: [],\n promises: new Set(),\n disposed: new Set(),\n queue: new Set(),\n running: true\n });\n t.done || (t.done = new Promise(res => t.resolve = res));\n t.running = true;\n }\n runUpdates(fn, false);\n Listener = Owner = null;\n return t ? t.done : undefined;\n });\n}\nfunction useTransition() {\n return [transPending, startTransition];\n}\nfunction resumeEffects(e) {\n Effects.push.apply(Effects, e);\n e.length = 0;\n}\nfunction createContext(defaultValue, options) {\n const id = Symbol(\"context\");\n return {\n id,\n Provider: createProvider(id),\n defaultValue\n };\n}\nfunction useContext(context) {\n return Owner && Owner.context && Owner.context[context.id] !== undefined ? Owner.context[context.id] : context.defaultValue;\n}\nfunction children(fn) {\n const children = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction getSuspenseContext() {\n return SuspenseContext || (SuspenseContext = createContext());\n}\nfunction enableExternalSource(factory) {\n if (ExternalSourceFactory) {\n const oldFactory = ExternalSourceFactory;\n ExternalSourceFactory = (fn, trigger) => {\n const oldSource = oldFactory(fn, trigger);\n const source = factory(x => oldSource.track(x), trigger);\n return {\n track: x => source.track(x),\n dispose() {\n source.dispose();\n oldSource.dispose();\n }\n };\n };\n } else {\n ExternalSourceFactory = factory;\n }\n}\nfunction readSignal() {\n const runningTransition = Transition && Transition.running;\n if (this.sources && (runningTransition ? this.tState : this.state)) {\n if ((runningTransition ? this.tState : this.state) === STALE) updateComputation(this);else {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(this), false);\n Updates = updates;\n }\n }\n if (Listener) {\n const sSlot = this.observers ? this.observers.length : 0;\n if (!Listener.sources) {\n Listener.sources = [this];\n Listener.sourceSlots = [sSlot];\n } else {\n Listener.sources.push(this);\n Listener.sourceSlots.push(sSlot);\n }\n if (!this.observers) {\n this.observers = [Listener];\n this.observerSlots = [Listener.sources.length - 1];\n } else {\n this.observers.push(Listener);\n this.observerSlots.push(Listener.sources.length - 1);\n }\n }\n if (runningTransition && Transition.sources.has(this)) return this.tValue;\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n if (Transition) {\n const TransitionRunning = Transition.running;\n if (TransitionRunning || !isComp && Transition.sources.has(node)) {\n Transition.sources.add(node);\n node.tValue = value;\n }\n if (!TransitionRunning) node.value = value;\n } else node.value = value;\n if (node.observers && node.observers.length) {\n runUpdates(() => {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n const TransitionRunning = Transition && Transition.running;\n if (TransitionRunning && Transition.disposed.has(o)) continue;\n if (TransitionRunning ? !o.tState : !o.state) {\n if (o.pure) Updates.push(o);else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (!TransitionRunning) o.state = STALE;else o.tState = STALE;\n }\n if (Updates.length > 10e5) {\n Updates = [];\n if (false) ;\n throw new Error();\n }\n }, false);\n }\n }\n return value;\n}\nfunction updateComputation(node) {\n if (!node.fn) return;\n cleanNode(node);\n const owner = Owner,\n listener = Listener,\n time = ExecCount;\n Listener = Owner = node;\n runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);\n if (Transition && !Transition.running && Transition.sources.has(node)) {\n queueMicrotask(() => {\n runUpdates(() => {\n Transition && (Transition.running = true);\n Listener = Owner = node;\n runComputation(node, node.tValue, time);\n Listener = Owner = null;\n }, false);\n });\n }\n Listener = listener;\n Owner = owner;\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n if (Transition && Transition.running) {\n node.tState = STALE;\n node.tOwned && node.tOwned.forEach(cleanNode);\n node.tOwned = undefined;\n } else {\n node.state = STALE;\n node.owned && node.owned.forEach(cleanNode);\n node.owned = null;\n }\n }\n node.updatedAt = time + 1;\n return handleError(err);\n }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue, true);\n } else if (Transition && Transition.running && node.pure) {\n Transition.sources.add(node);\n node.tValue = nextValue;\n } else node.value = nextValue;\n node.updatedAt = time;\n }\n}\nfunction createComputation(fn, init, pure, state = STALE, options) {\n const c = {\n fn,\n state: state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: Owner ? Owner.context : null,\n pure\n };\n if (Transition && Transition.running) {\n c.state = 0;\n c.tState = state;\n }\n if (Owner === null) ;else if (Owner !== UNOWNED) {\n if (Transition && Transition.running && Owner.pure) {\n if (!Owner.tOwned) Owner.tOwned = [c];else Owner.tOwned.push(c);\n } else {\n if (!Owner.owned) Owner.owned = [c];else Owner.owned.push(c);\n }\n }\n if (ExternalSourceFactory) {\n const [track, trigger] = createSignal(undefined, {\n equals: false\n });\n const ordinary = ExternalSourceFactory(c.fn, trigger);\n onCleanup(() => ordinary.dispose());\n const triggerInTransition = () => startTransition(trigger).then(() => inTransition.dispose());\n const inTransition = ExternalSourceFactory(c.fn, triggerInTransition);\n c.fn = x => {\n track();\n return Transition && Transition.running ? inTransition.track(x) : ordinary.track(x);\n };\n }\n return c;\n}\nfunction runTop(node) {\n const runningTransition = Transition && Transition.running;\n if ((runningTransition ? node.tState : node.state) === 0) return;\n if ((runningTransition ? node.tState : node.state) === PENDING) return lookUpstream(node);\n if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);\n const ancestors = [node];\n while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {\n if (runningTransition && Transition.disposed.has(node)) return;\n if (runningTransition ? node.tState : node.state) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (runningTransition) {\n let top = node,\n prev = ancestors[i + 1];\n while ((top = top.owner) && top !== prev) {\n if (Transition.disposed.has(top)) return;\n }\n }\n if ((runningTransition ? node.tState : node.state) === STALE) {\n updateComputation(node);\n } else if ((runningTransition ? node.tState : node.state) === PENDING) {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(node, ancestors[0]), false);\n Updates = updates;\n }\n }\n}\nfunction runUpdates(fn, init) {\n if (Updates) return fn();\n let wait = false;\n if (!init) Updates = [];\n if (Effects) wait = true;else Effects = [];\n ExecCount++;\n try {\n const res = fn();\n completeUpdates(wait);\n return res;\n } catch (err) {\n if (!wait) Effects = null;\n Updates = null;\n handleError(err);\n }\n}\nfunction completeUpdates(wait) {\n if (Updates) {\n if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);else runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n let res;\n if (Transition) {\n if (!Transition.promises.size && !Transition.queue.size) {\n const sources = Transition.sources;\n const disposed = Transition.disposed;\n Effects.push.apply(Effects, Transition.effects);\n res = Transition.resolve;\n for (const e of Effects) {\n \"tState\" in e && (e.state = e.tState);\n delete e.tState;\n }\n Transition = null;\n runUpdates(() => {\n for (const d of disposed) cleanNode(d);\n for (const v of sources) {\n v.value = v.tValue;\n if (v.owned) {\n for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);\n }\n if (v.tOwned) v.owned = v.tOwned;\n delete v.tValue;\n delete v.tOwned;\n v.tState = 0;\n }\n setTransPending(false);\n }, false);\n } else if (Transition.running) {\n Transition.running = false;\n Transition.effects.push.apply(Transition.effects, Effects);\n Effects = null;\n setTransPending(true);\n return;\n }\n }\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n if (res) res();\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction scheduleQueue(queue) {\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n const tasks = Transition.queue;\n if (!tasks.has(item)) {\n tasks.add(item);\n Scheduler(() => {\n tasks.delete(item);\n runUpdates(() => {\n Transition.running = true;\n runTop(item);\n }, false);\n Transition && (Transition.running = false);\n });\n }\n }\n}\nfunction runUserEffects(queue) {\n let i,\n userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);else queue[userLength++] = e;\n }\n if (sharedConfig.context) {\n if (sharedConfig.count) {\n sharedConfig.effects || (sharedConfig.effects = []);\n sharedConfig.effects.push(...queue.slice(0, userLength));\n return;\n } else if (sharedConfig.effects) {\n queue = [...sharedConfig.effects, ...queue];\n userLength += sharedConfig.effects.length;\n delete sharedConfig.effects;\n }\n setHydrateContext();\n }\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n const runningTransition = Transition && Transition.running;\n if (runningTransition) node.tState = 0;else node.state = 0;\n for (let i = 0; i < node.sources.length; i += 1) {\n const source = node.sources[i];\n if (source.sources) {\n const state = runningTransition ? source.tState : source.state;\n if (state === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);\n } else if (state === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n const runningTransition = Transition && Transition.running;\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (runningTransition ? !o.tState : !o.state) {\n if (runningTransition) o.tState = PENDING;else o.state = PENDING;\n if (o.pure) Updates.push(o);else Effects.push(o);\n o.observers && markDownstream(o);\n }\n }\n}\nfunction cleanNode(node) {\n let i;\n if (node.sources) {\n while (node.sources.length) {\n const source = node.sources.pop(),\n index = node.sourceSlots.pop(),\n obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(),\n s = source.observerSlots.pop();\n if (index < obs.length) {\n n.sourceSlots[s] = index;\n obs[index] = n;\n source.observerSlots[index] = s;\n }\n }\n }\n }\n if (Transition && Transition.running && node.pure) {\n if (node.tOwned) {\n for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n reset(node, true);\n } else if (node.owned) {\n for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();\n node.cleanups = null;\n }\n if (Transition && Transition.running) node.tState = 0;else node.state = 0;\n}\nfunction reset(node, top) {\n if (!top) {\n node.tState = 0;\n Transition.disposed.add(node);\n }\n if (node.owned) {\n for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);\n }\n}\nfunction castError(err) {\n if (err instanceof Error) return err;\n return new Error(typeof err === \"string\" ? err : \"Unknown error\", {\n cause: err\n });\n}\nfunction runErrors(err, fns, owner) {\n try {\n for (const f of fns) f(err);\n } catch (e) {\n handleError(e, owner && owner.owner || null);\n }\n}\nfunction handleError(err, owner = Owner) {\n const fns = ERROR && owner && owner.context && owner.context[ERROR];\n const error = castError(err);\n if (!fns) throw error;\n if (Effects) Effects.push({\n fn() {\n runErrors(error, fns, owner);\n },\n state: STALE\n });else runErrors(error, fns, owner);\n}\nfunction resolveChildren(children) {\n if (typeof children === \"function\" && !children.length) return resolveChildren(children());\n if (Array.isArray(children)) {\n const results = [];\n for (let i = 0; i < children.length; i++) {\n const result = resolveChildren(children[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(() => res = untrack(() => {\n Owner.context = {\n ...Owner.context,\n [id]: props.value\n };\n return children(() => props.children);\n }), undefined);\n return res;\n };\n}\nfunction onError(fn) {\n ERROR || (ERROR = Symbol(\"error\"));\n if (Owner === null) ;else if (Owner.context === null || !Owner.context[ERROR]) {\n Owner.context = {\n ...Owner.context,\n [ERROR]: [fn]\n };\n mutateContext(Owner, ERROR, [fn]);\n } else Owner.context[ERROR].push(fn);\n}\nfunction mutateContext(o, key, value) {\n if (o.owned) {\n for (let i = 0; i < o.owned.length; i++) {\n if (o.owned[i].context === o.context) mutateContext(o.owned[i], key, value);\n if (!o.owned[i].context) {\n o.owned[i].context = o.context;\n mutateContext(o.owned[i], key, value);\n } else if (!o.owned[i].context[key]) {\n o.owned[i].context[key] = value;\n mutateContext(o.owned[i], key, value);\n }\n }\n }\n}\n\nfunction observable(input) {\n return {\n subscribe(observer) {\n if (!(observer instanceof Object) || observer == null) {\n throw new TypeError(\"Expected the observer to be an object.\");\n }\n const handler = typeof observer === \"function\" ? observer : observer.next && observer.next.bind(observer);\n if (!handler) {\n return {\n unsubscribe() {}\n };\n }\n const dispose = createRoot(disposer => {\n createEffect(() => {\n const v = input();\n untrack(() => handler(v));\n });\n return disposer;\n });\n if (getOwner()) onCleanup(dispose);\n return {\n unsubscribe() {\n dispose();\n }\n };\n },\n [Symbol.observable || \"@@observable\"]() {\n return this;\n }\n };\n}\nfunction from(producer) {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n if (\"subscribe\" in producer) {\n const unsub = producer.subscribe(v => set(() => v));\n onCleanup(() => \"unsubscribe\" in unsub ? unsub.unsubscribe() : unsub());\n } else {\n const clean = producer(set);\n onCleanup(clean);\n }\n return s;\n}\n\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(d) {\n for (let i = 0; i < d.length; i++) d[i]();\n}\nfunction mapArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n len = 0,\n indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [],\n i,\n j;\n newItems[$TRACK];\n return untrack(() => {\n let newLen = newItems.length,\n newIndices,\n newIndicesNext,\n temp,\n tempdisposers,\n tempIndexes,\n start,\n end,\n newEnd,\n item;\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n indexes && (indexes = []);\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n }\n else if (len === 0) {\n mapped = new Array(newLen);\n for (j = 0; j < newLen; j++) {\n items[j] = newItems[j];\n mapped[j] = createRoot(mapper);\n }\n len = newLen;\n } else {\n temp = new Array(newLen);\n tempdisposers = new Array(newLen);\n indexes && (tempIndexes = new Array(newLen));\n for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++);\n for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {\n temp[newEnd] = mapped[end];\n tempdisposers[newEnd] = disposers[end];\n indexes && (tempIndexes[newEnd] = indexes[end]);\n }\n newIndices = new Map();\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = newItems[j];\n i = newIndices.get(item);\n newIndicesNext[j] = i === undefined ? -1 : i;\n newIndices.set(item, j);\n }\n for (i = start; i <= end; i++) {\n item = items[i];\n j = newIndices.get(item);\n if (j !== undefined && j !== -1) {\n temp[j] = mapped[i];\n tempdisposers[j] = disposers[i];\n indexes && (tempIndexes[j] = indexes[i]);\n j = newIndicesNext[j];\n newIndices.set(item, j);\n } else disposers[i]();\n }\n for (j = start; j < newLen; j++) {\n if (j in temp) {\n mapped[j] = temp[j];\n disposers[j] = tempdisposers[j];\n if (indexes) {\n indexes[j] = tempIndexes[j];\n indexes[j](j);\n }\n } else mapped[j] = createRoot(mapper);\n }\n mapped = mapped.slice(0, len = newLen);\n items = newItems.slice(0);\n }\n return mapped;\n });\n function mapper(disposer) {\n disposers[j] = disposer;\n if (indexes) {\n const [s, set] = createSignal(j);\n indexes[j] = set;\n return mapFn(newItems[j], s);\n }\n return mapFn(newItems[j]);\n }\n };\n}\nfunction indexArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n signals = [],\n len = 0,\n i;\n onCleanup(() => dispose(disposers));\n return () => {\n const newItems = list() || [];\n newItems[$TRACK];\n return untrack(() => {\n if (newItems.length === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n signals = [];\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n return mapped;\n }\n if (items[0] === FALLBACK) {\n disposers[0]();\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n }\n for (i = 0; i < newItems.length; i++) {\n if (i < items.length && items[i] !== newItems[i]) {\n signals[i](() => newItems[i]);\n } else if (i >= items.length) {\n mapped[i] = createRoot(mapper);\n }\n }\n for (; i < items.length; i++) {\n disposers[i]();\n }\n len = signals.length = disposers.length = newItems.length;\n items = newItems.slice(0);\n return mapped = mapped.slice(0, len);\n });\n function mapper(disposer) {\n disposers[i] = disposer;\n const [s, set] = createSignal(newItems[i]);\n signals[i] = set;\n return mapFn(s, i);\n }\n };\n}\n\nlet hydrationEnabled = false;\nfunction enableHydration() {\n hydrationEnabled = true;\n}\nfunction createComponent(Comp, props) {\n if (hydrationEnabled) {\n if (sharedConfig.context) {\n const c = sharedConfig.context;\n setHydrateContext(nextHydrateContext());\n const r = untrack(() => Comp(props || {}));\n setHydrateContext(c);\n return r;\n }\n }\n return untrack(() => Comp(props || {}));\n}\nfunction trueFn() {\n return true;\n}\nconst propTraps = {\n get(_, property, receiver) {\n if (property === $PROXY) return receiver;\n return _.get(property);\n },\n has(_, property) {\n if (property === $PROXY) return true;\n return _.has(property);\n },\n set: trueFn,\n deleteProperty: trueFn,\n getOwnPropertyDescriptor(_, property) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return _.get(property);\n },\n set: trueFn,\n deleteProperty: trueFn\n };\n },\n ownKeys(_) {\n return _.keys();\n }\n};\nfunction resolveSource(s) {\n return !(s = typeof s === \"function\" ? s() : s) ? {} : s;\n}\nfunction resolveSources() {\n for (let i = 0, length = this.length; i < length; ++i) {\n const v = this[i]();\n if (v !== undefined) return v;\n }\n}\nfunction mergeProps(...sources) {\n let proxy = false;\n for (let i = 0; i < sources.length; i++) {\n const s = sources[i];\n proxy = proxy || !!s && $PROXY in s;\n sources[i] = typeof s === \"function\" ? (proxy = true, createMemo(s)) : s;\n }\n if (proxy) {\n return new Proxy({\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== undefined) return v;\n }\n },\n has(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n if (property in resolveSource(sources[i])) return true;\n }\n return false;\n },\n keys() {\n const keys = [];\n for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n }, propTraps);\n }\n const target = {};\n const sourcesMap = {};\n const defined = new Set();\n for (let i = sources.length - 1; i >= 0; i--) {\n const source = sources[i];\n if (!source) continue;\n const sourceKeys = Object.getOwnPropertyNames(source);\n for (let i = 0, length = sourceKeys.length; i < length; i++) {\n const key = sourceKeys[i];\n if (key === \"__proto__\" || key === \"constructor\") continue;\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!defined.has(key)) {\n if (desc.get) {\n defined.add(key);\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])\n });\n } else {\n if (desc.value !== undefined) defined.add(key);\n target[key] = desc.value;\n }\n } else {\n const sources = sourcesMap[key];\n if (sources) {\n if (desc.get) {\n sources.push(desc.get.bind(source));\n } else if (desc.value !== undefined) {\n sources.push(() => desc.value);\n }\n } else if (target[key] === undefined) target[key] = desc.value;\n }\n }\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n if ($PROXY in props) {\n const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);\n const res = keys.map(k => {\n return new Proxy({\n get(property) {\n return k.includes(property) ? props[property] : undefined;\n },\n has(property) {\n return k.includes(property) && property in props;\n },\n keys() {\n return k.filter(property => property in props);\n }\n }, propTraps);\n });\n res.push(new Proxy({\n get(property) {\n return blocked.has(property) ? undefined : props[property];\n },\n has(property) {\n return blocked.has(property) ? false : property in props;\n },\n keys() {\n return Object.keys(props).filter(k => !blocked.has(k));\n }\n }, propTraps));\n return res;\n }\n const otherObject = {};\n const objects = keys.map(() => ({}));\n for (const propName of Object.getOwnPropertyNames(props)) {\n const desc = Object.getOwnPropertyDescriptor(props, propName);\n const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;\n let blocked = false;\n let objectIndex = 0;\n for (const k of keys) {\n if (k.includes(propName)) {\n blocked = true;\n isDefaultDesc ? objects[objectIndex][propName] = desc.value : Object.defineProperty(objects[objectIndex], propName, desc);\n }\n ++objectIndex;\n }\n if (!blocked) {\n isDefaultDesc ? otherObject[propName] = desc.value : Object.defineProperty(otherObject, propName, desc);\n }\n }\n return [...objects, otherObject];\n}\nfunction lazy(fn) {\n let comp;\n let p;\n const wrap = props => {\n const ctx = sharedConfig.context;\n if (ctx) {\n const [s, set] = createSignal();\n sharedConfig.count || (sharedConfig.count = 0);\n sharedConfig.count++;\n (p || (p = fn())).then(mod => {\n setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => mod.default);\n setHydrateContext();\n });\n comp = s;\n } else if (!comp) {\n const [s] = createResource(() => (p || (p = fn())).then(mod => mod.default));\n comp = s;\n }\n let Comp;\n return createMemo(() => (Comp = comp()) && untrack(() => {\n if (false) ;\n if (!ctx) return Comp(props);\n const c = sharedConfig.context;\n setHydrateContext(ctx);\n const r = Comp(props);\n setHydrateContext(c);\n return r;\n }));\n };\n wrap.preload = () => p || ((p = fn()).then(mod => comp = () => mod.default), p);\n return wrap;\n}\nlet counter = 0;\nfunction createUniqueId() {\n const ctx = sharedConfig.context;\n return ctx ? `${ctx.id}${ctx.count++}` : `cl-${counter++}`;\n}\n\nconst narrowedError = name => `Stale read from <${name}>.`;\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Index(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(indexArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Show(props) {\n const keyed = props.keyed;\n const condition = createMemo(() => props.when, undefined, {\n equals: (a, b) => keyed ? a === b : !a === !b\n });\n return createMemo(() => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(() => child(keyed ? c : () => {\n if (!untrack(condition)) throw narrowedError(\"Show\");\n return props.when;\n })) : child;\n }\n return props.fallback;\n }, undefined, undefined);\n}\nfunction Switch(props) {\n let keyed = false;\n const equals = (a, b) => a[0] === b[0] && (keyed ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];\n const conditions = children(() => props.children),\n evalConditions = createMemo(() => {\n let conds = conditions();\n if (!Array.isArray(conds)) conds = [conds];\n for (let i = 0; i < conds.length; i++) {\n const c = conds[i].when;\n if (c) {\n keyed = !!conds[i].keyed;\n return [i, c, conds[i]];\n }\n }\n return [-1];\n }, undefined, {\n equals\n });\n return createMemo(() => {\n const [index, when, cond] = evalConditions();\n if (index < 0) return props.fallback;\n const c = cond.children;\n const fn = typeof c === \"function\" && c.length > 0;\n return fn ? untrack(() => c(keyed ? when : () => {\n if (untrack(evalConditions)[0] !== index) throw narrowedError(\"Match\");\n return cond.when;\n })) : c;\n }, undefined, undefined);\n}\nfunction Match(props) {\n return props;\n}\nlet Errors;\nfunction resetErrorBoundaries() {\n Errors && [...Errors].forEach(fn => fn());\n}\nfunction ErrorBoundary(props) {\n let err;\n let v;\n if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];\n const [errored, setErrored] = createSignal(err, undefined);\n Errors || (Errors = new Set());\n Errors.add(setErrored);\n onCleanup(() => Errors.delete(setErrored));\n return createMemo(() => {\n let e;\n if (e = errored()) {\n const f = props.fallback;\n return typeof f === \"function\" && f.length ? untrack(() => f(e, () => setErrored())) : f;\n }\n return catchError(() => props.children, setErrored);\n }, undefined, undefined);\n}\n\nconst suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;\nconst SuspenseListContext = createContext();\nfunction SuspenseList(props) {\n let [wrapper, setWrapper] = createSignal(() => ({\n inFallback: false\n })),\n show;\n const listContext = useContext(SuspenseListContext);\n const [registry, setRegistry] = createSignal([]);\n if (listContext) {\n show = listContext.register(createMemo(() => wrapper()().inFallback));\n }\n const resolved = createMemo(prev => {\n const reveal = props.revealOrder,\n tail = props.tail,\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {},\n reg = registry(),\n reverse = reveal === \"backwards\";\n if (reveal === \"together\") {\n const all = reg.every(inFallback => !inFallback());\n const res = reg.map(() => ({\n showContent: all && showContent,\n showFallback\n }));\n res.inFallback = !all;\n return res;\n }\n let stop = false;\n let inFallback = prev.inFallback;\n const res = [];\n for (let i = 0, len = reg.length; i < len; i++) {\n const n = reverse ? len - i - 1 : i,\n s = reg[n]();\n if (!stop && !s) {\n res[n] = {\n showContent,\n showFallback\n };\n } else {\n const next = !stop;\n if (next) inFallback = true;\n res[n] = {\n showContent: next,\n showFallback: !tail || next && tail === \"collapsed\" ? showFallback : false\n };\n stop = true;\n }\n }\n if (!stop) inFallback = false;\n res.inFallback = inFallback;\n return res;\n }, {\n inFallback: false\n });\n setWrapper(() => resolved);\n return createComponent(SuspenseListContext.Provider, {\n value: {\n register: inFallback => {\n let index;\n setRegistry(registry => {\n index = registry.length;\n return [...registry, inFallback];\n });\n return createMemo(() => resolved()[index], undefined, {\n equals: suspenseListEquals\n });\n }\n },\n get children() {\n return props.children;\n }\n });\n}\nfunction Suspense(props) {\n let counter = 0,\n show,\n ctx,\n p,\n flicker,\n error;\n const [inFallback, setFallback] = createSignal(false),\n SuspenseContext = getSuspenseContext(),\n store = {\n increment: () => {\n if (++counter === 1) setFallback(true);\n },\n decrement: () => {\n if (--counter === 0) setFallback(false);\n },\n inFallback,\n effects: [],\n resolved: false\n },\n owner = getOwner();\n if (sharedConfig.context && sharedConfig.load) {\n const key = sharedConfig.context.id + sharedConfig.context.count;\n let ref = sharedConfig.load(key);\n if (ref && (p = ref[0]) && p !== \"$$f\") {\n if (typeof p !== \"object\" || !(\"then\" in p)) p = Promise.resolve(p);\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n flicker = s;\n p.then(err => {\n if (err || sharedConfig.done) {\n err && (error = err);\n return set();\n }\n sharedConfig.gather(key);\n setHydrateContext(ctx);\n set();\n setHydrateContext();\n });\n }\n }\n const listContext = useContext(SuspenseListContext);\n if (listContext) show = listContext.register(store.inFallback);\n let dispose;\n onCleanup(() => dispose && dispose());\n return createComponent(SuspenseContext.Provider, {\n value: store,\n get children() {\n return createMemo(() => {\n if (error) throw error;\n ctx = sharedConfig.context;\n if (flicker) {\n flicker();\n return flicker = undefined;\n }\n if (ctx && p === \"$$f\") setHydrateContext();\n const rendered = createMemo(() => props.children);\n return createMemo(prev => {\n const inFallback = store.inFallback(),\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {};\n if ((!inFallback || p && p !== \"$$f\") && showContent) {\n store.resolved = true;\n dispose && dispose();\n dispose = ctx = p = undefined;\n resumeEffects(store.effects);\n return rendered();\n }\n if (!showFallback) return;\n if (dispose) return prev;\n return createRoot(disposer => {\n dispose = disposer;\n if (ctx) {\n setHydrateContext({\n id: ctx.id + \"f\",\n count: 0\n });\n ctx = undefined;\n }\n return props.fallback;\n }, owner);\n });\n });\n }\n });\n}\n\nconst DEV = undefined;\n\nexport { $DEVCOMP, $PROXY, $TRACK, DEV, ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, batch, cancelCallback, catchError, children, createComponent, createComputed, createContext, createDeferred, createEffect, createMemo, createReaction, createRenderEffect, createResource, createRoot, createSelector, createSignal, createUniqueId, enableExternalSource, enableHydration, enableScheduling, equalFn, from, getListener, getOwner, indexArray, lazy, mapArray, mergeProps, observable, on, onCleanup, onError, onMount, requestCallback, resetErrorBoundaries, runWithOwner, sharedConfig, splitProps, startTransition, untrack, useContext, useTransition };\n","import { createRoot, createRenderEffect, sharedConfig, untrack, enableHydration, getOwner, createEffect, runWithOwner, createMemo, createSignal, onCleanup, splitProps, $DEVCOMP } from 'solid-js';\nexport { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, createRenderEffect as effect, getOwner, createMemo as memo, mergeProps, untrack } from 'solid-js';\n\nconst booleans = [\"allowfullscreen\", \"async\", \"autofocus\", \"autoplay\", \"checked\", \"controls\", \"default\", \"disabled\", \"formnovalidate\", \"hidden\", \"indeterminate\", \"ismap\", \"loop\", \"multiple\", \"muted\", \"nomodule\", \"novalidate\", \"open\", \"playsinline\", \"readonly\", \"required\", \"reversed\", \"seamless\", \"selected\"];\nconst Properties = /*#__PURE__*/new Set([\"className\", \"value\", \"readOnly\", \"formNoValidate\", \"isMap\", \"noModule\", \"playsInline\", ...booleans]);\nconst ChildProperties = /*#__PURE__*/new Set([\"innerHTML\", \"textContent\", \"innerText\", \"children\"]);\nconst Aliases = /*#__PURE__*/Object.assign(Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {\n class: \"className\",\n formnovalidate: {\n $: \"formNoValidate\",\n BUTTON: 1,\n INPUT: 1\n },\n ismap: {\n $: \"isMap\",\n IMG: 1\n },\n nomodule: {\n $: \"noModule\",\n SCRIPT: 1\n },\n playsinline: {\n $: \"playsInline\",\n VIDEO: 1\n },\n readonly: {\n $: \"readOnly\",\n INPUT: 1,\n TEXTAREA: 1\n }\n});\nfunction getPropAlias(prop, tagName) {\n const a = PropAliases[prop];\n return typeof a === \"object\" ? a[tagName] ? a[\"$\"] : undefined : a;\n}\nconst DelegatedEvents = /*#__PURE__*/new Set([\"beforeinput\", \"click\", \"dblclick\", \"contextmenu\", \"focusin\", \"focusout\", \"input\", \"keydown\", \"keyup\", \"mousedown\", \"mousemove\", \"mouseout\", \"mouseover\", \"mouseup\", \"pointerdown\", \"pointermove\", \"pointerout\", \"pointerover\", \"pointerup\", \"touchend\", \"touchmove\", \"touchstart\"]);\nconst SVGElements = /*#__PURE__*/new Set([\n\"altGlyph\", \"altGlyphDef\", \"altGlyphItem\", \"animate\", \"animateColor\", \"animateMotion\", \"animateTransform\", \"circle\", \"clipPath\", \"color-profile\", \"cursor\", \"defs\", \"desc\", \"ellipse\", \"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\", \"filter\", \"font\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignObject\", \"g\", \"glyph\", \"glyphRef\", \"hkern\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"metadata\", \"missing-glyph\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\",\n\"set\", \"stop\",\n\"svg\", \"switch\", \"symbol\", \"text\", \"textPath\",\n\"tref\", \"tspan\", \"use\", \"view\", \"vkern\"]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nconst DOMElements = /*#__PURE__*/new Set([\"html\", \"base\", \"head\", \"link\", \"meta\", \"style\", \"title\", \"body\", \"address\", \"article\", \"aside\", \"footer\", \"header\", \"main\", \"nav\", \"section\", \"body\", \"blockquote\", \"dd\", \"div\", \"dl\", \"dt\", \"figcaption\", \"figure\", \"hr\", \"li\", \"ol\", \"p\", \"pre\", \"ul\", \"a\", \"abbr\", \"b\", \"bdi\", \"bdo\", \"br\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"small\", \"span\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\", \"wbr\", \"area\", \"audio\", \"img\", \"map\", \"track\", \"video\", \"embed\", \"iframe\", \"object\", \"param\", \"picture\", \"portal\", \"source\", \"svg\", \"math\", \"canvas\", \"noscript\", \"script\", \"del\", \"ins\", \"caption\", \"col\", \"colgroup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thead\", \"tr\", \"button\", \"datalist\", \"fieldset\", \"form\", \"input\", \"label\", \"legend\", \"meter\", \"optgroup\", \"option\", \"output\", \"progress\", \"select\", \"textarea\", \"details\", \"dialog\", \"menu\", \"summary\", \"details\", \"slot\", \"template\", \"acronym\", \"applet\", \"basefont\", \"bgsound\", \"big\", \"blink\", \"center\", \"content\", \"dir\", \"font\", \"frame\", \"frameset\", \"hgroup\", \"image\", \"keygen\", \"marquee\", \"menuitem\", \"nobr\", \"noembed\", \"noframes\", \"plaintext\", \"rb\", \"rtc\", \"shadow\", \"spacer\", \"strike\", \"tt\", \"xmp\", \"a\", \"abbr\", \"acronym\", \"address\", \"applet\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"basefont\", \"bdi\", \"bdo\", \"bgsound\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"frame\", \"frameset\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"image\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"nobr\", \"noembed\", \"noframes\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"plaintext\", \"portal\", \"pre\", \"progress\", \"q\", \"rb\", \"rp\", \"rt\", \"rtc\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"shadow\", \"slot\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"xmp\", \"input\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\n\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = a[aEnd - 1].nextSibling,\n map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;\n while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) a[aStart].remove();\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = a[--aEnd].nextSibling;\n parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling);\n parentNode.insertBefore(b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart,\n sequence = 1,\n t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) parentNode.insertBefore(b[bStart++], node);\n } else parentNode.replaceChild(b[bStart++], a[aStart++]);\n } else aStart++;\n } else a[aStart++].remove();\n }\n }\n}\n\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, isCE, isSVG) {\n let node;\n const create = () => {\n const t = document.createElement(\"template\");\n t.innerHTML = html;\n return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;\n };\n const fn = isCE ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);\n fn.cloneNode = fn;\n return fn;\n}\nfunction delegateEvents(eventNames, document = window.document) {\n const e = document[$$EVENTS] || (document[$$EVENTS] = new Set());\n for (let i = 0, l = eventNames.length; i < l; i++) {\n const name = eventNames[i];\n if (!e.has(name)) {\n e.add(name);\n document.addEventListener(name, eventHandler);\n }\n }\n}\nfunction clearDelegatedEvents(document = window.document) {\n if (document[$$EVENTS]) {\n for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);\n delete document[$$EVENTS];\n }\n}\nfunction setAttribute(node, name, value) {\n if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);\n}\nfunction className(node, value) {\n if (value == null) node.removeAttribute(\"class\");else node.className = value;\n}\nfunction addEventListener(node, name, handler, delegate) {\n if (delegate) {\n if (Array.isArray(handler)) {\n node[`$$${name}`] = handler[0];\n node[`$$${name}Data`] = handler[1];\n } else node[`$$${name}`] = handler;\n } else if (Array.isArray(handler)) {\n const handlerFn = handler[0];\n node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));\n } else node.addEventListener(name, handler);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}),\n prevKeys = Object.keys(prev);\n let i, len;\n for (i = 0, len = prevKeys.length; i < len; i++) {\n const key = prevKeys[i];\n if (!key || key === \"undefined\" || value[key]) continue;\n toggleClassKey(node, key, false);\n delete prev[key];\n }\n for (i = 0, len = classKeys.length; i < len; i++) {\n const key = classKeys[i],\n classValue = !!value[key];\n if (!key || key === \"undefined\" || prev[key] === classValue || !classValue) continue;\n toggleClassKey(node, key, true);\n prev[key] = classValue;\n }\n return prev;\n}\nfunction style(node, value, prev) {\n if (!value) return prev ? setAttribute(node, \"style\") : value;\n const nodeStyle = node.style;\n if (typeof value === \"string\") return nodeStyle.cssText = value;\n typeof prev === \"string\" && (nodeStyle.cssText = prev = undefined);\n prev || (prev = {});\n value || (value = {});\n let v, s;\n for (s in prev) {\n value[s] == null && nodeStyle.removeProperty(s);\n delete prev[s];\n }\n for (s in value) {\n v = value[s];\n if (v !== prev[s]) {\n nodeStyle.setProperty(s, v);\n prev[s] = v;\n }\n }\n return prev;\n}\nfunction spread(node, props = {}, isSVG, skipChildren) {\n const prevProps = {};\n if (!skipChildren) {\n createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));\n }\n createRenderEffect(() => props.ref && props.ref(node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction dynamicProperty(props, key) {\n const src = props[key];\n Object.defineProperty(props, key, {\n get() {\n return src();\n },\n enumerable: true\n });\n return props;\n}\nfunction innerHTML(parent, content) {\n !sharedConfig.context && (parent.innerHTML = content);\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);\n}\nfunction assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {\n props || (props = {});\n for (const prop in prevProps) {\n if (!(prop in props)) {\n if (prop === \"children\") continue;\n prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n if (!skipChildren) insertExpression(node, props.children);\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef);\n }\n}\nfunction hydrate$1(code, element, options = {}) {\n sharedConfig.completed = globalThis._$HY.completed;\n sharedConfig.events = globalThis._$HY.events;\n sharedConfig.load = globalThis._$HY.load;\n sharedConfig.gather = root => gatherHydratable(element, root);\n sharedConfig.registry = new Map();\n sharedConfig.context = {\n id: options.renderId || \"\",\n count: 0\n };\n gatherHydratable(element, options.renderId);\n const dispose = render(code, element, [...element.childNodes], options);\n sharedConfig.context = null;\n return dispose;\n}\nfunction getNextElement(template) {\n let node, key;\n if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n if (sharedConfig.context) console.warn(\"Unable to find DOM nodes for hydration key:\", key);\n if (!template) throw new Error(\"Unrecoverable Hydration Mismatch. No template for key: \" + key);\n return template();\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction getNextMatch(el, nodeName) {\n while (el && el.localName !== nodeName) el = el.nextSibling;\n return el;\n}\nfunction getNextMarker(start) {\n let end = start,\n count = 0,\n current = [];\n if (sharedConfig.context) {\n while (end) {\n if (end.nodeType === 8) {\n const v = end.nodeValue;\n if (v === \"#\") count++;else if (v === \"/\") {\n if (count === 0) return [end, current];\n count--;\n }\n }\n current.push(end);\n end = end.nextSibling;\n }\n }\n return [end, current];\n}\nfunction runHydrationEvents() {\n if (sharedConfig.events && !sharedConfig.events.queued) {\n queueMicrotask(() => {\n const {\n completed,\n events\n } = sharedConfig;\n events.queued = false;\n while (events.length) {\n const [el, e] = events[0];\n if (!completed.has(el)) return;\n eventHandler(e);\n events.shift();\n }\n });\n sharedConfig.events.queued = true;\n }\n}\nfunction toPropertyName(name) {\n return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase());\n}\nfunction toggleClassKey(node, key, value) {\n const classNames = key.trim().split(/\\s+/);\n for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef) {\n let isCE, isProp, isChildProp, propAlias, forceProp;\n if (prop === \"style\") return style(node, value, prev);\n if (prop === \"classList\") return classList(node, value, prev);\n if (value === prev) return prev;\n if (prop === \"ref\") {\n if (!skipRef) value(node);\n } else if (prop.slice(0, 3) === \"on:\") {\n const e = prop.slice(3);\n prev && node.removeEventListener(e, prev);\n value && node.addEventListener(e, value);\n } else if (prop.slice(0, 10) === \"oncapture:\") {\n const e = prop.slice(10);\n prev && node.removeEventListener(e, prev, true);\n value && node.addEventListener(e, value, true);\n } else if (prop.slice(0, 2) === \"on\") {\n const name = prop.slice(2).toLowerCase();\n const delegate = DelegatedEvents.has(name);\n if (!delegate && prev) {\n const h = Array.isArray(prev) ? prev[0] : prev;\n node.removeEventListener(name, h);\n }\n if (delegate || value) {\n addEventListener(node, name, value, delegate);\n delegate && delegateEvents([name]);\n }\n } else if (prop.slice(0, 5) === \"attr:\") {\n setAttribute(node, prop.slice(5), value);\n } else if ((forceProp = prop.slice(0, 5) === \"prop:\") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\"))) {\n if (forceProp) {\n prop = prop.slice(5);\n isProp = true;\n }\n if (prop === \"class\" || prop === \"className\") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[propAlias || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n const key = `$$${e.type}`;\n let node = e.composedPath && e.composedPath()[0] || e.target;\n if (e.target !== node) {\n Object.defineProperty(e, \"target\", {\n configurable: true,\n value: node\n });\n }\n Object.defineProperty(e, \"currentTarget\", {\n configurable: true,\n get() {\n return node || document;\n }\n });\n if (sharedConfig.registry && !sharedConfig.done) sharedConfig.done = _$HY.done = true;\n while (node) {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== undefined ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node = node._$host || node.parentNode || node.host;\n }\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n if (sharedConfig.context) {\n !current && (current = [...parent.childNodes]);\n let cleaned = [];\n for (let i = 0; i < current.length; i++) {\n const node = current[i];\n if (node.nodeType === 8 && node.data.slice(0, 2) === \"!$\") node.remove();else cleaned.push(node);\n }\n current = cleaned;\n }\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value,\n multi = marker !== undefined;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (sharedConfig.context) return current;\n if (t === \"number\") value = value.toString();\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n node.data = value;\n } else node = document.createTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n current = parent.firstChild.data = value;\n } else current = parent.textContent = value;\n }\n } else if (value == null || t === \"boolean\") {\n if (sharedConfig.context) return current;\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n const currentArray = current && Array.isArray(current);\n if (normalizeIncomingArray(array, value, current, unwrapArray)) {\n createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));\n return () => current;\n }\n if (sharedConfig.context) {\n if (!array.length) return current;\n for (let i = 0; i < array.length; i++) {\n if (array[i].parentNode) return current = array;\n }\n }\n if (array.length === 0) {\n current = cleanChildren(parent, current, marker);\n if (multi) return current;\n } else if (currentArray) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else {\n current && cleanChildren(parent);\n appendNodes(parent, array);\n }\n current = array;\n } else if (value.nodeType) {\n if (sharedConfig.context && value.parentNode) return current = multi ? [value] : value;\n if (Array.isArray(current)) {\n if (multi) return current = cleanChildren(parent, current, marker, value);\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !parent.firstChild) {\n parent.appendChild(value);\n } else parent.replaceChild(value, parent.firstChild);\n current = value;\n } else console.warn(`Unrecognized value. Skipped inserting`, value);\n return current;\n}\nfunction normalizeIncomingArray(normalized, array, current, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i],\n prev = current && current[i],\n t;\n if (item == null || item === true || item === false) ; else if ((t = typeof item) === \"object\" && item.nodeType) {\n normalized.push(item);\n } else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));\n }\n }\n return dynamic;\n}\nfunction appendNodes(parent, array, marker = null) {\n for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);\n}\nfunction cleanChildren(parent, current, marker, replacement) {\n if (marker === undefined) return parent.textContent = \"\";\n const node = replacement || document.createTextNode(\"\");\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = el.parentNode === parent;\n if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction gatherHydratable(element, root) {\n const templates = element.querySelectorAll(`*[data-hk]`);\n for (let i = 0; i < templates.length; i++) {\n const node = templates[i];\n const key = node.getAttribute(\"data-hk\");\n if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);\n }\n}\nfunction getHydrationKey() {\n const hydrate = sharedConfig.context;\n return `${hydrate.id}${hydrate.count++}`;\n}\nfunction NoHydration(props) {\n return sharedConfig.context ? undefined : props.children;\n}\nfunction Hydration(props) {\n return props.children;\n}\nfunction voidFn() {}\n\nfunction throwInBrowser(func) {\n const err = new Error(`${func.name} is not supported in the browser, returning undefined`);\n console.error(err);\n}\nfunction renderToString(fn, options) {\n throwInBrowser(renderToString);\n}\nfunction renderToStringAsync(fn, options) {\n throwInBrowser(renderToStringAsync);\n}\nfunction renderToStream(fn, options) {\n throwInBrowser(renderToStream);\n}\nfunction ssr(template, ...nodes) {}\nfunction ssrElement(name, props, children, needsId) {}\nfunction ssrClassList(value) {}\nfunction ssrStyle(value) {}\nfunction ssrAttribute(key, value) {}\nfunction ssrHydrationKey() {}\nfunction resolveSSRNode(node) {}\nfunction escape(html) {}\nfunction ssrSpread(props, isSVG, skipChildren) {}\n\nconst isServer = false;\nconst isDev = false;\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nfunction createElement(tagName, isSVG = false) {\n return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName);\n}\nconst hydrate = (...args) => {\n enableHydration();\n return hydrate$1(...args);\n};\nfunction Portal(props) {\n const {\n useShadow\n } = props,\n marker = document.createTextNode(\"\"),\n mount = () => props.mount || document.body,\n owner = getOwner();\n let content;\n let hydrating = !!sharedConfig.context;\n createEffect(() => {\n if (hydrating) getOwner().user = hydrating = false;\n content || (content = runWithOwner(owner, () => createMemo(() => props.children)));\n const el = mount();\n if (el instanceof HTMLHeadElement) {\n const [clean, setClean] = createSignal(false);\n const cleanup = () => setClean(true);\n createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));\n onCleanup(cleanup);\n } else {\n const container = createElement(props.isSVG ? \"g\" : \"div\", props.isSVG),\n renderRoot = useShadow && container.attachShadow ? container.attachShadow({\n mode: \"open\"\n }) : container;\n Object.defineProperty(container, \"_$host\", {\n get() {\n return marker.parentNode;\n },\n configurable: true\n });\n insert(renderRoot, content);\n el.appendChild(container);\n props.ref && props.ref(container);\n onCleanup(() => el.removeChild(container));\n }\n }, undefined, {\n render: !hydrating\n });\n return marker;\n}\nfunction Dynamic(props) {\n const [p, others] = splitProps(props, [\"component\"]);\n const cached = createMemo(() => p.component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n Object.assign(component, {\n [$DEVCOMP]: true\n });\n return untrack(() => component(others));\n case \"string\":\n const isSvg = SVGElements.has(component);\n const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg);\n spread(el, others, isSvg);\n return el;\n }\n });\n}\n\nexport { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, Properties, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, getPropAlias, hydrate, innerHTML, insert, isDev, isServer, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };\n","export interface ScheduledEvent {\n\tname: string;\n\tstart: number;\n\toccurence: number;\n\tsequence?: string[];\n}\n\nconst utc = Date.UTC;\n\nexport const getNextOccurence = (now: number, start: number, occurence: number) => {\n\tconst diff = now - start;\n\tconst index = Math.ceil(diff / occurence);\n\n\tconst date = new Date(start + index * occurence);\n\n\treturn { index, date };\n};\n\nconst enum Occurence {\n\tDAILY = 86400000,\n\tWEEKLY = 604800000,\n}\n\nexport const events: ScheduledEvent[] = [\n\t// Dailies\n\t{\n\t\tname: 'Daily tasks: Region',\n\t\tstart: utc(2023, 7, 29, 12),\n\t\toccurence: Occurence.DAILY,\n\t\tsequence: ['Stia', 'Retem', 'Aelio', 'Kvaris'],\n\t},\n\t{\n\t\tname: 'GP Tree:',\n\t\tstart: utc(2022, 8, 3, 12),\n\t\toccurence: Occurence.DAILY,\n\t\tsequence: [\n\t\t\t'GPID4 (315pts)',\n\t\t\t'GPID1 (625pts)',\n\t\t\t'GPID8 (315pts)',\n\t\t\t'GPID5 (315pts)',\n\t\t\t'GPID2 (625pts)',\n\t\t\t'GPID7 (315pts)',\n\t\t\t'GPID6 (315pts)',\n\t\t\t'GPID3 (625pts)',\n\t\t\t'GPID6 (315pts)',\n\t\t\t'GPID7 (315pts)',\n\t\t\t'GPID0 & 4 (315pts & 625pts)',\n\t\t\t'GPID5 (315pts)',\n\t\t\t'GPID3 & 8 (315pts & 315pts)',\n\t\t\t'GPID5 (625pts)',\n\t\t\t'GPID4 (315pts)',\n\t\t\t'GPID9 (315pts)',\n\t\t\t'GPID6 (625pts)',\n\t\t\t'GPID3 (315pts)',\n\t\t\t'GPID0 (315pts)',\n\t\t\t'GPID7 (625pts)',\n\t\t\t'GPID2 (315pts)',\n\t\t\t'GPID1 (315pts)',\n\t\t\t'GPID8 (625pts)',\n\t\t\t'GPID1 (315pts)',\n\t\t\t'GPID2 (315pts)',\n\t\t\t'GPID9 (625pts)',\n\t\t\t'GPID0 (625pts)',\n\t\t\t'GPID9 (315pts)',\n\t\t],\n\t},\n\t{\n\t\tname: 'Daily free SG scratch',\n\t\tstart: utc(2023, 7, 29, 8),\n\t\toccurence: Occurence.DAILY,\n\t},\n\t{\n\t\tname: 'Lookbook SG',\n\t\tstart: utc(2023, 7, 29, 15),\n\t\toccurence: Occurence.DAILY,\n\t},\n\t{\n\t\tname: 'Leciel Exploration buffs',\n\t\tstart: utc(2023, 7, 29, 19),\n\t\toccurence: Occurence.DAILY,\n\t},\n\t{\n\t\tname: 'Treasure Shop',\n\t\tstart: utc(2023, 7, 29, 3),\n\t\toccurence: Occurence.DAILY,\n\t},\n\n\t// Weeklies\n\t{\n\t\tname: 'Weekly tasks',\n\t\tstart: utc(2023, 7, 23, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t},\n\t{\n\t\tname: 'Alliance tasks: Region',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequence: ['Aelio', 'Retem', 'Kvaris', 'Stia'],\n\t},\n\t{\n\t\tname: 'Alliance tasks: Augment',\n\t\tstart: utc(2023, 1, 22, 3),\n\t\toccurence: Occurence.WEEKLY * 4,\n\t\tsequence: ['Note A', 'Note B', 'Note C', 'Note D'],\n\t},\n\t{\n\t\tname: 'Alliance tasks: Rare Enemy',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequence: ['Silver', 'Gold'],\n\t},\n\t{\n\t\tname: 'Alliance tasks: Field Race',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequence: ['Dash', 'Board'],\n\t},\n\t{\n\t\tname: 'Alliance tasks: Task',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequence: ['Kudos', 'Region Mags', 'Battledia Yellow'],\n\t},\n\t{\n\t\tname: 'ARKS Records',\n\t\tstart: utc(2023, 7, 23, 2),\n\t\toccurence: Occurence.WEEKLY,\n\t},\n];\n","export interface Duration {\n\tyears?: number;\n\tmonths?: number;\n\tdays?: number;\n\thours?: number;\n\tminutes?: number;\n\tseconds?: number;\n}\n\nconst SECONDS = 1000;\nconst MINUTES = SECONDS * 60;\nconst HOURS = MINUTES * 60;\nconst DAYS = HOURS * 24;\nconst WEEKS = DAYS * 7;\nconst YEARS = DAYS * 365.25;\n\nconst clone = (date: Date) => {\n\treturn new Date(date.getTime());\n};\n\nconst abs = Math.abs;\nconst sign = Math.sign;\nconst trunc = Math.trunc;\n\n// date\nexport const intervalToDuration = (start: Date, end: Date): Required => {\n\tlet date = start;\n\tlet count: number;\n\n\treturn {\n\t\tyears: (count = differenceInYears(start, end)),\n\t\tmonths: (count = differenceInMonths(end, (date = addYears(date, count)))),\n\t\tdays: (count = differenceInDays(end, (date = addMonths(date, count)))),\n\t\thours: (count = differenceInHours(end, (date = addDays(date, count)))),\n\t\tminutes: (count = differenceInMinutes(end, (date = addHours(date, count)))),\n\t\tseconds: (count = differenceInSeconds(end, (date = addMinutes(date, count)))),\n\t};\n};\n\n// years\nexport const addYears = (date: Date, years: number) => {\n\tconst inst = clone(date);\n\tinst.setFullYear(inst.getFullYear() + years);\n\n\treturn inst;\n};\n\nexport const differenceInCalendarYears = (a: Date, b: Date) => {\n\treturn a.getFullYear() - b.getFullYear();\n};\n\nexport const differenceInYears = (a: Date, b: Date) => {\n\tconst left = clone(a);\n\tconst right = clone(b);\n\n\tconst s = compareAsc(a, b);\n\tconst d = abs(differenceInCalendarYears(a, b));\n\n\tleft.setFullYear(1584);\n\tright.setFullYear(1584);\n\n\tconst isLastYearNotFull = compareAsc(left, right) === -s;\n\tconst result = s * (d - +isLastYearNotFull);\n\n\treturn result === 0 ? 0 : result;\n};\n\n// months\nexport const addMonths = (date: Date, months: number) => {\n\tconst inst = clone(date);\n\tinst.setMonth(inst.getMonth() + months);\n\n\treturn inst;\n};\n\nexport const endOfMonth = (date: Date) => {\n\tconst inst = clone(date);\n\tconst month = inst.getMonth();\n\n\tinst.setFullYear(inst.getFullYear(), month + 1, 0);\n\tinst.setHours(23, 59, 59, 999);\n\n\treturn inst;\n};\n\nexport const isLastDayOfMonth = (date: Date) => {\n\treturn endOfDay(date).getTime() === endOfMonth(date).getTime();\n};\n\nexport const differenceInCalendarMonths = (a: Date, b: Date) => {\n\tconst yearDiff = a.getFullYear() - b.getFullYear();\n\tconst monthDiff = a.getMonth() - b.getMonth();\n\n\treturn yearDiff * 12 + monthDiff;\n};\n\nexport const differenceInMonths = (a: Date, b: Date) => {\n\tconst left = clone(a);\n\n\tconst s = compareAsc(a, b);\n\tconst d = abs(differenceInCalendarMonths(a, b));\n\n\tlet result: number;\n\n\tif (d < 1) {\n\t\tresult = 0;\n\t} else {\n\t\tif (left.getMonth() === 1 && left.getDate() > 27) {\n\t\t\tleft.setDate(30);\n\t\t}\n\n\t\tleft.setMonth(left.getMonth() - s * d);\n\n\t\t// Check for cases of one full calendar month\n\t\tconst isLastMonthNotFull =\n\t\t\tisLastDayOfMonth(left) && d === 1 && compareAsc(left, b) === 1 ? false : compareAsc(left, b) === -s;\n\n\t\tresult = s * (d - +isLastMonthNotFull);\n\t}\n\n\treturn result === 0 ? 0 : result;\n};\n\n// days\nexport const addDays = (date: Date, days: number) => {\n\tconst inst = clone(date);\n\tinst.setDate(inst.getDate() + days);\n\n\treturn inst;\n};\n\nexport const startOfDay = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setHours(0, 0, 0, 0);\n\n\treturn inst;\n};\n\nexport const endOfDay = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setHours(23, 59, 59, 999);\n\n\treturn inst;\n};\n\nexport const differenceInCalendarDays = (a: Date, b: Date) => {\n\tconst left = a.getTime() - getTimezoneOffsetInMilliseconds(a);\n\tconst right = b.getTime() - getTimezoneOffsetInMilliseconds(b);\n\n\treturn Math.round((left - right) / DAYS);\n};\n\nexport const differenceInDays = (a: Date, b: Date) => {\n\tconst left = clone(a);\n\n\tconst s = compareLocalAsc(a, b);\n\tconst d = abs(differenceInCalendarDays(a, b));\n\n\tleft.setDate(left.getDate() - s * d);\n\n\tconst isLastDayNotFull = compareLocalAsc(left, b) === -s;\n\tconst result = s * (d - +isLastDayNotFull);\n\n\treturn result === 0 ? 0 : result;\n};\n\n// hours\nexport const getHours = (date: Date) => {\n\treturn date.getHours();\n};\n\nexport const addHours = (date: Date, hours: number) => {\n\treturn setHours(date, date.getHours() + hours);\n};\n\nexport const setHours = (date: Date, hours: number) => {\n\tconst inst = clone(date);\n\tinst.setHours(hours);\n\n\treturn inst;\n};\n\nexport const startOfHour = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setHours(inst.getHours(), 0, 0, 0);\n\n\treturn inst;\n};\n\nexport const differenceInHours = (a: Date, b: Date) => {\n\treturn differenceInX(a, b, HOURS);\n};\n\n// minute\nexport const addMinutes = (date: Date, minutes: number) => {\n\tconst inst = clone(date);\n\tinst.setMinutes(inst.getMinutes() + minutes);\n\n\treturn inst;\n};\n\nexport const differenceInMinutes = (a: Date, b: Date) => {\n\treturn differenceInX(a, b, MINUTES);\n};\n\n// second\nexport const startOfSeconds = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setMilliseconds(0);\n\n\treturn inst;\n};\n\nexport const addSeconds = (date: Date, seconds: number) => {\n\tconst inst = clone(date);\n\tinst.setSeconds(inst.getSeconds() + seconds);\n\n\treturn inst;\n};\n\nexport const differenceInSeconds = (a: Date, b: Date) => {\n\treturn differenceInX(a, b, SECONDS);\n};\n\n// utils\nconst compareAsc = (a: Date, b: Date) => {\n\treturn sign(a.getTime() - b.getTime());\n};\n\nconst compareLocalAsc = (a: Date, b: Date) => {\n\tconst diff =\n\t\ta.getFullYear() - b.getFullYear() ||\n\t\ta.getMonth() - b.getMonth() ||\n\t\ta.getDate() - b.getDate() ||\n\t\ta.getHours() - b.getHours() ||\n\t\ta.getMinutes() - b.getMinutes() ||\n\t\ta.getSeconds() - b.getSeconds() ||\n\t\ta.getMilliseconds() - b.getMilliseconds();\n\n\treturn sign(diff);\n};\n\nconst differenceInX = (a: Date, b: Date, num: number) => {\n\treturn trunc((a.getTime() - b.getTime()) / num);\n};\n\nconst getTimezoneOffsetInMilliseconds = (date: Date) => {\n\tconst utc = new Date(\n\t\tDate.UTC(\n\t\t\tdate.getFullYear(),\n\t\t\tdate.getMonth(),\n\t\t\tdate.getDate(),\n\t\t\tdate.getHours(),\n\t\t\tdate.getMinutes(),\n\t\t\tdate.getSeconds(),\n\t\t\tdate.getMilliseconds(),\n\t\t),\n\t);\n\n\tutc.setUTCFullYear(date.getFullYear());\n\treturn date.getTime() - utc.getTime();\n};\n","import { type Accessor, createMemo, createRenderEffect, createSignal, onMount } from 'solid-js';\nimport { render } from 'solid-js/web';\n\nimport { type ScheduledEvent, events, getNextOccurence } from './events.ts';\nimport * as u from './utils.ts';\n\nimport './style.css';\n\nconst interval = (ms: number, signal: AbortSignal, callback: (time: number) => void) => {\n\tconst start = document.timeline ? (document.timeline.currentTime! as number) : performance.now();\n\n\tconst frame = (time: number) => {\n\t\tif (signal.aborted) {\n\t\t\treturn;\n\t\t}\n\n\t\tcallback(time);\n\t\tschedule(time);\n\t};\n\n\tconst schedule = (time: number) => {\n\t\tconst elapsed = time - start;\n\t\tconst roundedElapsed = Math.round(elapsed / ms) * ms;\n\t\tconst target = start + roundedElapsed + ms;\n\t\tconst delay = target - performance.now();\n\n\t\tsetTimeout(() => requestAnimationFrame(frame), delay);\n\t};\n\n\tschedule(start);\n};\n\nconst calculateTime = (from: Date, time: Date, hours: number) => {\n\tlet start = u.startOfHour(u.setHours(time, hours));\n\n\tif (start.getTime() <= time.getTime()) {\n\t\tstart = u.addDays(start, 1);\n\t}\n\n\treturn u.addSeconds(from, u.differenceInSeconds(start, time) / 30);\n};\n\nconst leftpad = (value: any, pad: string, amount: number) => {\n\treturn ('' + value).padStart(amount, pad);\n};\n\nconst diffFormat = (start: Date, end: Date) => {\n\tconst { days, hours, minutes, seconds } = u.intervalToDuration(start, end);\n\tlet str = '';\n\tlet pad = false;\n\n\tif (pad || days > 0) {\n\t\tstr && (str += `:`);\n\t\tstr += pad ? leftpad(days, '0', 2) : days;\n\t\tpad = true;\n\t}\n\n\tif (pad || hours > 0) {\n\t\tstr && (str += `:`);\n\t\tstr += pad ? leftpad(hours, '0', 2) : hours;\n\t\tpad = true;\n\t}\n\n\tstr && (str += `:`);\n\tstr += `${pad ? leftpad(minutes, '0', 2) : minutes}:${leftpad(seconds, '0', 2)}`;\n\n\treturn str;\n};\n\nconst utcToZonedTime = (date: Date, tz: number) => {\n\tconst offset = -tz * 3600000;\n\n\tconst d = new Date(date.getTime() - offset);\n\tconst r = new Date(0);\n\n\tr.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n\tr.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\n\n\treturn r;\n};\n\nconst Occurence = ({ now, event }: { now: Accessor; event: ScheduledEvent }) => {\n\tconst { name, start, occurence, sequence } = event;\n\n\tconst next = createMemo((prev: ReturnType | undefined) => {\n\t\tconst $now = now().getTime();\n\n\t\tif (prev && prev.date.getTime() > $now) {\n\t\t\treturn prev;\n\t\t}\n\n\t\treturn getNextOccurence($now, start, occurence);\n\t});\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t
{name}\n\t\t\t\t{sequence && {sequence[next().index % sequence.length]}}\n\t\t\t\n\t\t\t{diffFormat(now(), next().date)}\n\t\t\n\t);\n};\n\nconst timeFormat = new Intl.DateTimeFormat(undefined, {\n\ttimeStyle: 'short',\n});\n\nconst App = () => {\n\tconst [now, setNow] = createSignal(new Date());\n\n\tconst [time, setTime] = createSignal(new Date(0));\n\tconst [morning, setMorning] = createSignal(new Date(0));\n\tconst [night, setNight] = createSignal(new Date(0));\n\tconst [icon, setIcon] = createSignal('#icon-sun');\n\n\tcreateRenderEffect(() => {\n\t\tconst _now = now();\n\n\t\tconst zoned = utcToZonedTime(_now, -7);\n\t\tconst diff = u.differenceInSeconds(zoned, u.addMinutes(u.startOfDay(zoned), -38));\n\n\t\tconst ingame = u.addSeconds(u.startOfDay(zoned), (diff % 2880) * 30);\n\t\tconst hour = u.getHours(ingame);\n\n\t\tsetTime(ingame);\n\t\tsetMorning(calculateTime(_now, ingame, 6));\n\t\tsetNight(calculateTime(_now, ingame, 20));\n\t\tsetIcon(hour < 6 || hour >= 20 ? '#icon-moon' : '#icon-sun');\n\t});\n\n\tonMount(() => {\n\t\tconst controller = new AbortController();\n\t\tinterval(1000, controller.signal, () => {\n\t\t\tconst next = new Date();\n\t\t\tnext.setMilliseconds(0);\n\n\t\t\tsetNow(next);\n\t\t});\n\n\t\treturn () => controller.abort();\n\t});\n\n\treturn (\n\t\t
\n\t\t\t

NGS World Time

\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
Current time:\n\t\t\t\t\t\t\t{timeFormat.format(time())}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
Day (06:00 AM):\n\t\t\t\t\t\t\t(in {diffFormat(now(), morning())})\n\t\t\t\t\t\t\t{timeFormat.format(morning())}\n\t\t\t\t\t\t
Night (08:00 PM):\n\t\t\t\t\t\t\t(in {diffFormat(now(), night())})\n\t\t\t\t\t\t\t{timeFormat.format(night())}\n\t\t\t\t\t\t
\n\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{events.map((event) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t
Reset timersends in
\n\n\t\t\t
\n\n\t\t\t\n\t\t\t\tsource code\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nrender(() => , document.body);\n"],"names":["signalOptions","equals","a","b","runEffects","runQueue","STALE","PENDING","UNOWNED","owned","cleanups","context","owner","Owner","Transition","Listener","Updates","Effects","ExecCount","createSignal","value","options","s","observers","observerSlots","comparator","Object","assign","undefined","readSignal","bind","writeSignal","createRenderEffect","fn","updateComputation","createComputation","untrack","listener","onMount","runUserEffects","c","render","user","push","createEffect","this","sources","updates","runUpdates","lookUpstream","sSlot","length","sourceSlots","node","isComp","current","i","o","TransitionRunning","running","disposed","has","tState","state","pure","markDownstream","Error","cleanNode","time","nextValue","err","forEach","updatedAt","handleError","runComputation","init","runTop","suspense","inFallback","effects","ancestors","wait","res","e","completeUpdates","queue","userLength","ignore","source","pop","index","obs","n","error","cause","castError","createComponent","Comp","props","template","html","isCE","isSVG","create","t","document","createElement","innerHTML","content","firstChild","importNode","cloneNode","insert","parent","accessor","marker","initial","insertExpression","unwrapArray","multi","parentNode","toString","nodeType","data","createTextNode","cleanChildren","textContent","v","Array","isArray","array","currentArray","normalizeIncomingArray","appendNodes","bLength","aEnd","bEnd","aStart","bStart","after","nextSibling","map","insertBefore","remove","Map","set","get","sequence","replaceChild","reconcileArrays","appendChild","console","warn","normalized","unwrap","dynamic","len","item","prev","String","replacement","inserted","el","isParent","utc","Date","UTC","events","name","start","occurence","HOURS","MINUTES","clone","date","getTime","abs","Math","sign","trunc","addYears","years","inst","setFullYear","getFullYear","differenceInYears","left","right","compareAsc","d","differenceInCalendarYears","result","addMonths","months","setMonth","getMonth","isLastDayOfMonth","endOfDay","month","setHours","endOfMonth","differenceInMonths","differenceInCalendarMonths","getDate","setDate","addDays","days","startOfDay","differenceInDays","compareLocalAsc","getTimezoneOffsetInMilliseconds","round","differenceInCalendarDays","addHours","hours","getHours","differenceInHours","differenceInX","addMinutes","minutes","setMinutes","getMinutes","differenceInMinutes","SECONDS","addSeconds","seconds","setSeconds","getSeconds","differenceInSeconds","diff","getMilliseconds","num","setUTCFullYear","calculateTime","from","u","leftpad","pad","amount","padStart","diffFormat","end","count","str","Occurence","now","event","next","createMemo","$now","ceil","getNextOccurence","_el$","_tmpl$","_el$2","_el$3","_el$4","_$insert","_el$5","_tmpl$2","timeFormat","Intl","DateTimeFormat","timeStyle","App","setNow","setTime","morning","setMorning","night","setNight","icon","setIcon","_now","zoned","utcToZonedTime","tz","offset","r","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","ingame","hour","controller","AbortController","interval","ms","signal","callback","timeline","currentTime","performance","frame","aborted","schedule","elapsed","roundedElapsed","delay","setTimeout","requestAnimationFrame","setMilliseconds","abort","_el$7","_tmpl$3","_el$9","_el$10","_el$14","_el$16","_el$18","_el$21","_el$24","_el$25","_el$29","_el$32","_el$33","_el$37","format","_$createComponent","_$effect","_$setAttribute","removeAttribute","setAttribute","code","element","disposer","detachedOwner","unowned","root","updateFn","createRoot","dispose","body"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"index-680e55bc.js","sources":["../../node_modules/.pnpm/solid-js@1.7.11/node_modules/solid-js/dist/solid.js","../../node_modules/.pnpm/solid-js@1.7.11/node_modules/solid-js/web/dist/web.js","../../src/events.ts","../../src/utils.ts","../../src/App.tsx"],"sourcesContent":["let taskIdCounter = 1,\n isCallbackScheduled = false,\n isPerformingWork = false,\n taskQueue = [],\n currentTask = null,\n shouldYieldToHost = null,\n yieldInterval = 5,\n deadline = 0,\n maxYieldInterval = 300,\n scheduleCallback = null,\n scheduledCallback = null;\nconst maxSigned31BitInt = 1073741823;\nfunction setupScheduler() {\n const channel = new MessageChannel(),\n port = channel.port2;\n scheduleCallback = () => port.postMessage(null);\n channel.port1.onmessage = () => {\n if (scheduledCallback !== null) {\n const currentTime = performance.now();\n deadline = currentTime + yieldInterval;\n const hasTimeRemaining = true;\n try {\n const hasMoreWork = scheduledCallback(hasTimeRemaining, currentTime);\n if (!hasMoreWork) {\n scheduledCallback = null;\n } else port.postMessage(null);\n } catch (error) {\n port.postMessage(null);\n throw error;\n }\n }\n };\n if (navigator && navigator.scheduling && navigator.scheduling.isInputPending) {\n const scheduling = navigator.scheduling;\n shouldYieldToHost = () => {\n const currentTime = performance.now();\n if (currentTime >= deadline) {\n if (scheduling.isInputPending()) {\n return true;\n }\n return currentTime >= maxYieldInterval;\n } else {\n return false;\n }\n };\n } else {\n shouldYieldToHost = () => performance.now() >= deadline;\n }\n}\nfunction enqueue(taskQueue, task) {\n function findIndex() {\n let m = 0;\n let n = taskQueue.length - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = task.expirationTime - taskQueue[k].expirationTime;\n if (cmp > 0) m = k + 1;else if (cmp < 0) n = k - 1;else return k;\n }\n return m;\n }\n taskQueue.splice(findIndex(), 0, task);\n}\nfunction requestCallback(fn, options) {\n if (!scheduleCallback) setupScheduler();\n let startTime = performance.now(),\n timeout = maxSigned31BitInt;\n if (options && options.timeout) timeout = options.timeout;\n const newTask = {\n id: taskIdCounter++,\n fn,\n startTime,\n expirationTime: startTime + timeout\n };\n enqueue(taskQueue, newTask);\n if (!isCallbackScheduled && !isPerformingWork) {\n isCallbackScheduled = true;\n scheduledCallback = flushWork;\n scheduleCallback();\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n task.fn = null;\n}\nfunction flushWork(hasTimeRemaining, initialTime) {\n isCallbackScheduled = false;\n isPerformingWork = true;\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } finally {\n currentTask = null;\n isPerformingWork = false;\n }\n}\nfunction workLoop(hasTimeRemaining, initialTime) {\n let currentTime = initialTime;\n currentTask = taskQueue[0] || null;\n while (currentTask !== null) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n break;\n }\n const callback = currentTask.fn;\n if (callback !== null) {\n currentTask.fn = null;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n callback(didUserCallbackTimeout);\n currentTime = performance.now();\n if (currentTask === taskQueue[0]) {\n taskQueue.shift();\n }\n } else taskQueue.shift();\n currentTask = taskQueue[0] || null;\n }\n return currentTask !== null;\n}\n\nconst sharedConfig = {\n context: undefined,\n registry: undefined\n};\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nfunction nextHydrateContext() {\n return {\n ...sharedConfig.context,\n id: `${sharedConfig.context.id}${sharedConfig.context.count++}-`,\n count: 0\n };\n}\n\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst $TRACK = Symbol(\"solid-track\");\nconst $DEVCOMP = Symbol(\"solid-dev-component\");\nconst signalOptions = {\n equals: equalFn\n};\nlet ERROR = null;\nlet runEffects = runQueue;\nconst STALE = 1;\nconst PENDING = 2;\nconst UNOWNED = {\n owned: null,\n cleanups: null,\n context: null,\n owner: null\n};\nconst NO_INIT = {};\nvar Owner = null;\nlet Transition = null;\nlet Scheduler = null;\nlet ExternalSourceFactory = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nconst [transPending, setTransPending] = /*@__PURE__*/createSignal(false);\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener,\n owner = Owner,\n unowned = fn.length === 0,\n current = detachedOwner === undefined ? owner : detachedOwner,\n root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: current ? current.context : null,\n owner: current\n },\n updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));\n Owner = root;\n Listener = null;\n try {\n return runUpdates(updateFn, true);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n}\nfunction createSignal(value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const s = {\n value,\n observers: null,\n observerSlots: null,\n comparator: options.equals || undefined\n };\n const setter = value => {\n if (typeof value === \"function\") {\n if (Transition && Transition.running && Transition.sources.has(s)) value = value(s.tValue);else value = value(s.value);\n }\n return writeSignal(s, value);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n if (!options || !options.render) c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createReaction(onInvalidate, options) {\n let fn;\n const c = createComputation(() => {\n fn ? fn() : untrack(onInvalidate);\n fn = undefined;\n }, undefined, false, 0),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n c.user = true;\n return tracking => {\n fn = tracking;\n updateComputation(c);\n };\n}\nfunction createMemo(fn, value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const c = createComputation(fn, value, true, 0);\n c.observers = null;\n c.observerSlots = null;\n c.comparator = options.equals || undefined;\n if (Scheduler && Transition && Transition.running) {\n c.tState = STALE;\n Updates.push(c);\n } else updateComputation(c);\n return readSignal.bind(c);\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n if (arguments.length === 2 && typeof pFetcher === \"object\" || arguments.length === 1) {\n source = true;\n fetcher = pSource;\n options = pFetcher || {};\n } else {\n source = pSource;\n fetcher = pFetcher;\n options = pOptions || {};\n }\n let pr = null,\n initP = NO_INIT,\n id = null,\n loadedUnderTransition = false,\n scheduled = false,\n resolved = (\"initialValue\" in options),\n dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = new Set(),\n [value, setValue] = (options.storage || createSignal)(options.initialValue),\n [error, setError] = createSignal(undefined),\n [track, trigger] = createSignal(undefined, {\n equals: false\n }),\n [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = `${sharedConfig.context.id}${sharedConfig.context.count++}`;\n let v;\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;else if (sharedConfig.load && (v = sharedConfig.load(id))) initP = v[0];\n }\n function loadEnd(p, v, error, key) {\n if (pr === p) {\n pr = null;\n key !== undefined && (resolved = true);\n if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {\n value: v\n }));\n initP = NO_INIT;\n if (Transition && p && loadedUnderTransition) {\n Transition.promises.delete(p);\n loadedUnderTransition = false;\n runUpdates(() => {\n Transition.running = true;\n completeLoad(v, error);\n }, false);\n } else completeLoad(v, error);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === undefined) setValue(() => v);\n setState(err !== undefined ? \"errored\" : resolved ? \"ready\" : \"unresolved\");\n setError(err);\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n }, false);\n }\n function read() {\n const c = SuspenseContext && useContext(SuspenseContext),\n v = value(),\n err = error();\n if (err !== undefined && !pr) throw err;\n if (Listener && !Listener.user && c) {\n createComputed(() => {\n track();\n if (pr) {\n if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {\n c.increment();\n contexts.add(c);\n }\n }\n });\n }\n return v;\n }\n function load(refetching = true) {\n if (refetching !== false && scheduled) return;\n scheduled = false;\n const lookup = dynamic ? dynamic() : source;\n loadedUnderTransition = Transition && Transition.running;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n if (Transition && pr) Transition.promises.delete(pr);\n const p = initP !== NO_INIT ? initP : untrack(() => fetcher(lookup, {\n value: value(),\n refetching\n }));\n if (typeof p !== \"object\" || !(p && \"then\" in p)) {\n loadEnd(pr, p, undefined, lookup);\n return p;\n }\n pr = p;\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));\n }\n Object.defineProperties(read, {\n state: {\n get: () => state()\n },\n error: {\n get: () => error()\n },\n loading: {\n get() {\n const s = state();\n return s === \"pending\" || s === \"refreshing\";\n }\n },\n latest: {\n get() {\n if (!resolved) return read();\n const err = error();\n if (err && !pr) throw err;\n return value();\n }\n }\n });\n if (dynamic) createComputed(() => load(false));else load(false);\n return [read, {\n refetch: load,\n mutate: setValue\n }];\n}\nfunction createDeferred(source, options) {\n let t,\n timeout = options ? options.timeoutMs : undefined;\n const node = createComputation(() => {\n if (!t || !t.fn) t = requestCallback(() => setDeferred(() => node.value), timeout !== undefined ? {\n timeout\n } : undefined);\n return source();\n }, undefined, true);\n const [deferred, setDeferred] = createSignal(node.value, options);\n updateComputation(node);\n setDeferred(() => node.value);\n return deferred;\n}\nfunction createSelector(source, fn = equalFn, options) {\n const subs = new Map();\n const node = createComputation(p => {\n const v = source();\n for (const [key, val] of subs.entries()) if (fn(key, v) !== fn(key, p)) {\n for (const c of val.values()) {\n c.state = STALE;\n if (c.pure) Updates.push(c);else Effects.push(c);\n }\n }\n return v;\n }, undefined, true, STALE);\n updateComputation(node);\n return key => {\n const listener = Listener;\n if (listener) {\n let l;\n if (l = subs.get(key)) l.add(listener);else subs.set(key, l = new Set([listener]));\n onCleanup(() => {\n l.delete(listener);\n !l.size && subs.delete(key);\n });\n }\n return fn(key, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n };\n}\nfunction batch(fn) {\n return runUpdates(fn, false);\n}\nfunction untrack(fn) {\n if (Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction on(deps, fn, options) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let defer = options && options.defer;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++) input[i] = deps[i]();\n } else input = deps();\n if (defer) {\n defer = false;\n return undefined;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nfunction onMount(fn) {\n createEffect(() => untrack(fn));\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;else if (Owner.cleanups === null) Owner.cleanups = [fn];else Owner.cleanups.push(fn);\n return fn;\n}\nfunction catchError(fn, handler) {\n ERROR || (ERROR = Symbol(\"error\"));\n Owner = createComputation(undefined, undefined, true);\n Owner.context = {\n ...Owner.context,\n [ERROR]: [handler]\n };\n if (Transition && Transition.running) Transition.sources.add(Owner);\n try {\n return fn();\n } catch (err) {\n handleError(err);\n } finally {\n Owner = Owner.owner;\n }\n}\nfunction getListener() {\n return Listener;\n}\nfunction getOwner() {\n return Owner;\n}\nfunction runWithOwner(o, fn) {\n const prev = Owner;\n const prevListener = Listener;\n Owner = o;\n Listener = null;\n try {\n return runUpdates(fn, true);\n } catch (err) {\n handleError(err);\n } finally {\n Owner = prev;\n Listener = prevListener;\n }\n}\nfunction enableScheduling(scheduler = requestCallback) {\n Scheduler = scheduler;\n}\nfunction startTransition(fn) {\n if (Transition && Transition.running) {\n fn();\n return Transition.done;\n }\n const l = Listener;\n const o = Owner;\n return Promise.resolve().then(() => {\n Listener = l;\n Owner = o;\n let t;\n if (Scheduler || SuspenseContext) {\n t = Transition || (Transition = {\n sources: new Set(),\n effects: [],\n promises: new Set(),\n disposed: new Set(),\n queue: new Set(),\n running: true\n });\n t.done || (t.done = new Promise(res => t.resolve = res));\n t.running = true;\n }\n runUpdates(fn, false);\n Listener = Owner = null;\n return t ? t.done : undefined;\n });\n}\nfunction useTransition() {\n return [transPending, startTransition];\n}\nfunction resumeEffects(e) {\n Effects.push.apply(Effects, e);\n e.length = 0;\n}\nfunction createContext(defaultValue, options) {\n const id = Symbol(\"context\");\n return {\n id,\n Provider: createProvider(id),\n defaultValue\n };\n}\nfunction useContext(context) {\n return Owner && Owner.context && Owner.context[context.id] !== undefined ? Owner.context[context.id] : context.defaultValue;\n}\nfunction children(fn) {\n const children = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction getSuspenseContext() {\n return SuspenseContext || (SuspenseContext = createContext());\n}\nfunction enableExternalSource(factory) {\n if (ExternalSourceFactory) {\n const oldFactory = ExternalSourceFactory;\n ExternalSourceFactory = (fn, trigger) => {\n const oldSource = oldFactory(fn, trigger);\n const source = factory(x => oldSource.track(x), trigger);\n return {\n track: x => source.track(x),\n dispose() {\n source.dispose();\n oldSource.dispose();\n }\n };\n };\n } else {\n ExternalSourceFactory = factory;\n }\n}\nfunction readSignal() {\n const runningTransition = Transition && Transition.running;\n if (this.sources && (runningTransition ? this.tState : this.state)) {\n if ((runningTransition ? this.tState : this.state) === STALE) updateComputation(this);else {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(this), false);\n Updates = updates;\n }\n }\n if (Listener) {\n const sSlot = this.observers ? this.observers.length : 0;\n if (!Listener.sources) {\n Listener.sources = [this];\n Listener.sourceSlots = [sSlot];\n } else {\n Listener.sources.push(this);\n Listener.sourceSlots.push(sSlot);\n }\n if (!this.observers) {\n this.observers = [Listener];\n this.observerSlots = [Listener.sources.length - 1];\n } else {\n this.observers.push(Listener);\n this.observerSlots.push(Listener.sources.length - 1);\n }\n }\n if (runningTransition && Transition.sources.has(this)) return this.tValue;\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n if (Transition) {\n const TransitionRunning = Transition.running;\n if (TransitionRunning || !isComp && Transition.sources.has(node)) {\n Transition.sources.add(node);\n node.tValue = value;\n }\n if (!TransitionRunning) node.value = value;\n } else node.value = value;\n if (node.observers && node.observers.length) {\n runUpdates(() => {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n const TransitionRunning = Transition && Transition.running;\n if (TransitionRunning && Transition.disposed.has(o)) continue;\n if (TransitionRunning ? !o.tState : !o.state) {\n if (o.pure) Updates.push(o);else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (!TransitionRunning) o.state = STALE;else o.tState = STALE;\n }\n if (Updates.length > 10e5) {\n Updates = [];\n if (false) ;\n throw new Error();\n }\n }, false);\n }\n }\n return value;\n}\nfunction updateComputation(node) {\n if (!node.fn) return;\n cleanNode(node);\n const owner = Owner,\n listener = Listener,\n time = ExecCount;\n Listener = Owner = node;\n runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);\n if (Transition && !Transition.running && Transition.sources.has(node)) {\n queueMicrotask(() => {\n runUpdates(() => {\n Transition && (Transition.running = true);\n Listener = Owner = node;\n runComputation(node, node.tValue, time);\n Listener = Owner = null;\n }, false);\n });\n }\n Listener = listener;\n Owner = owner;\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n if (Transition && Transition.running) {\n node.tState = STALE;\n node.tOwned && node.tOwned.forEach(cleanNode);\n node.tOwned = undefined;\n } else {\n node.state = STALE;\n node.owned && node.owned.forEach(cleanNode);\n node.owned = null;\n }\n }\n node.updatedAt = time + 1;\n return handleError(err);\n }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue, true);\n } else if (Transition && Transition.running && node.pure) {\n Transition.sources.add(node);\n node.tValue = nextValue;\n } else node.value = nextValue;\n node.updatedAt = time;\n }\n}\nfunction createComputation(fn, init, pure, state = STALE, options) {\n const c = {\n fn,\n state: state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: Owner ? Owner.context : null,\n pure\n };\n if (Transition && Transition.running) {\n c.state = 0;\n c.tState = state;\n }\n if (Owner === null) ;else if (Owner !== UNOWNED) {\n if (Transition && Transition.running && Owner.pure) {\n if (!Owner.tOwned) Owner.tOwned = [c];else Owner.tOwned.push(c);\n } else {\n if (!Owner.owned) Owner.owned = [c];else Owner.owned.push(c);\n }\n }\n if (ExternalSourceFactory) {\n const [track, trigger] = createSignal(undefined, {\n equals: false\n });\n const ordinary = ExternalSourceFactory(c.fn, trigger);\n onCleanup(() => ordinary.dispose());\n const triggerInTransition = () => startTransition(trigger).then(() => inTransition.dispose());\n const inTransition = ExternalSourceFactory(c.fn, triggerInTransition);\n c.fn = x => {\n track();\n return Transition && Transition.running ? inTransition.track(x) : ordinary.track(x);\n };\n }\n return c;\n}\nfunction runTop(node) {\n const runningTransition = Transition && Transition.running;\n if ((runningTransition ? node.tState : node.state) === 0) return;\n if ((runningTransition ? node.tState : node.state) === PENDING) return lookUpstream(node);\n if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);\n const ancestors = [node];\n while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {\n if (runningTransition && Transition.disposed.has(node)) return;\n if (runningTransition ? node.tState : node.state) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (runningTransition) {\n let top = node,\n prev = ancestors[i + 1];\n while ((top = top.owner) && top !== prev) {\n if (Transition.disposed.has(top)) return;\n }\n }\n if ((runningTransition ? node.tState : node.state) === STALE) {\n updateComputation(node);\n } else if ((runningTransition ? node.tState : node.state) === PENDING) {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(node, ancestors[0]), false);\n Updates = updates;\n }\n }\n}\nfunction runUpdates(fn, init) {\n if (Updates) return fn();\n let wait = false;\n if (!init) Updates = [];\n if (Effects) wait = true;else Effects = [];\n ExecCount++;\n try {\n const res = fn();\n completeUpdates(wait);\n return res;\n } catch (err) {\n if (!wait) Effects = null;\n Updates = null;\n handleError(err);\n }\n}\nfunction completeUpdates(wait) {\n if (Updates) {\n if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);else runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n let res;\n if (Transition) {\n if (!Transition.promises.size && !Transition.queue.size) {\n const sources = Transition.sources;\n const disposed = Transition.disposed;\n Effects.push.apply(Effects, Transition.effects);\n res = Transition.resolve;\n for (const e of Effects) {\n \"tState\" in e && (e.state = e.tState);\n delete e.tState;\n }\n Transition = null;\n runUpdates(() => {\n for (const d of disposed) cleanNode(d);\n for (const v of sources) {\n v.value = v.tValue;\n if (v.owned) {\n for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);\n }\n if (v.tOwned) v.owned = v.tOwned;\n delete v.tValue;\n delete v.tOwned;\n v.tState = 0;\n }\n setTransPending(false);\n }, false);\n } else if (Transition.running) {\n Transition.running = false;\n Transition.effects.push.apply(Transition.effects, Effects);\n Effects = null;\n setTransPending(true);\n return;\n }\n }\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n if (res) res();\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction scheduleQueue(queue) {\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n const tasks = Transition.queue;\n if (!tasks.has(item)) {\n tasks.add(item);\n Scheduler(() => {\n tasks.delete(item);\n runUpdates(() => {\n Transition.running = true;\n runTop(item);\n }, false);\n Transition && (Transition.running = false);\n });\n }\n }\n}\nfunction runUserEffects(queue) {\n let i,\n userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);else queue[userLength++] = e;\n }\n if (sharedConfig.context) {\n if (sharedConfig.count) {\n sharedConfig.effects || (sharedConfig.effects = []);\n sharedConfig.effects.push(...queue.slice(0, userLength));\n return;\n } else if (sharedConfig.effects) {\n queue = [...sharedConfig.effects, ...queue];\n userLength += sharedConfig.effects.length;\n delete sharedConfig.effects;\n }\n setHydrateContext();\n }\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n const runningTransition = Transition && Transition.running;\n if (runningTransition) node.tState = 0;else node.state = 0;\n for (let i = 0; i < node.sources.length; i += 1) {\n const source = node.sources[i];\n if (source.sources) {\n const state = runningTransition ? source.tState : source.state;\n if (state === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);\n } else if (state === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n const runningTransition = Transition && Transition.running;\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (runningTransition ? !o.tState : !o.state) {\n if (runningTransition) o.tState = PENDING;else o.state = PENDING;\n if (o.pure) Updates.push(o);else Effects.push(o);\n o.observers && markDownstream(o);\n }\n }\n}\nfunction cleanNode(node) {\n let i;\n if (node.sources) {\n while (node.sources.length) {\n const source = node.sources.pop(),\n index = node.sourceSlots.pop(),\n obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(),\n s = source.observerSlots.pop();\n if (index < obs.length) {\n n.sourceSlots[s] = index;\n obs[index] = n;\n source.observerSlots[index] = s;\n }\n }\n }\n }\n if (Transition && Transition.running && node.pure) {\n if (node.tOwned) {\n for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n reset(node, true);\n } else if (node.owned) {\n for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();\n node.cleanups = null;\n }\n if (Transition && Transition.running) node.tState = 0;else node.state = 0;\n}\nfunction reset(node, top) {\n if (!top) {\n node.tState = 0;\n Transition.disposed.add(node);\n }\n if (node.owned) {\n for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);\n }\n}\nfunction castError(err) {\n if (err instanceof Error) return err;\n return new Error(typeof err === \"string\" ? err : \"Unknown error\", {\n cause: err\n });\n}\nfunction runErrors(err, fns, owner) {\n try {\n for (const f of fns) f(err);\n } catch (e) {\n handleError(e, owner && owner.owner || null);\n }\n}\nfunction handleError(err, owner = Owner) {\n const fns = ERROR && owner && owner.context && owner.context[ERROR];\n const error = castError(err);\n if (!fns) throw error;\n if (Effects) Effects.push({\n fn() {\n runErrors(error, fns, owner);\n },\n state: STALE\n });else runErrors(error, fns, owner);\n}\nfunction resolveChildren(children) {\n if (typeof children === \"function\" && !children.length) return resolveChildren(children());\n if (Array.isArray(children)) {\n const results = [];\n for (let i = 0; i < children.length; i++) {\n const result = resolveChildren(children[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(() => res = untrack(() => {\n Owner.context = {\n ...Owner.context,\n [id]: props.value\n };\n return children(() => props.children);\n }), undefined);\n return res;\n };\n}\nfunction onError(fn) {\n ERROR || (ERROR = Symbol(\"error\"));\n if (Owner === null) ;else if (Owner.context === null || !Owner.context[ERROR]) {\n Owner.context = {\n ...Owner.context,\n [ERROR]: [fn]\n };\n mutateContext(Owner, ERROR, [fn]);\n } else Owner.context[ERROR].push(fn);\n}\nfunction mutateContext(o, key, value) {\n if (o.owned) {\n for (let i = 0; i < o.owned.length; i++) {\n if (o.owned[i].context === o.context) mutateContext(o.owned[i], key, value);\n if (!o.owned[i].context) {\n o.owned[i].context = o.context;\n mutateContext(o.owned[i], key, value);\n } else if (!o.owned[i].context[key]) {\n o.owned[i].context[key] = value;\n mutateContext(o.owned[i], key, value);\n }\n }\n }\n}\n\nfunction observable(input) {\n return {\n subscribe(observer) {\n if (!(observer instanceof Object) || observer == null) {\n throw new TypeError(\"Expected the observer to be an object.\");\n }\n const handler = typeof observer === \"function\" ? observer : observer.next && observer.next.bind(observer);\n if (!handler) {\n return {\n unsubscribe() {}\n };\n }\n const dispose = createRoot(disposer => {\n createEffect(() => {\n const v = input();\n untrack(() => handler(v));\n });\n return disposer;\n });\n if (getOwner()) onCleanup(dispose);\n return {\n unsubscribe() {\n dispose();\n }\n };\n },\n [Symbol.observable || \"@@observable\"]() {\n return this;\n }\n };\n}\nfunction from(producer) {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n if (\"subscribe\" in producer) {\n const unsub = producer.subscribe(v => set(() => v));\n onCleanup(() => \"unsubscribe\" in unsub ? unsub.unsubscribe() : unsub());\n } else {\n const clean = producer(set);\n onCleanup(clean);\n }\n return s;\n}\n\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(d) {\n for (let i = 0; i < d.length; i++) d[i]();\n}\nfunction mapArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n len = 0,\n indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [],\n i,\n j;\n newItems[$TRACK];\n return untrack(() => {\n let newLen = newItems.length,\n newIndices,\n newIndicesNext,\n temp,\n tempdisposers,\n tempIndexes,\n start,\n end,\n newEnd,\n item;\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n indexes && (indexes = []);\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n }\n else if (len === 0) {\n mapped = new Array(newLen);\n for (j = 0; j < newLen; j++) {\n items[j] = newItems[j];\n mapped[j] = createRoot(mapper);\n }\n len = newLen;\n } else {\n temp = new Array(newLen);\n tempdisposers = new Array(newLen);\n indexes && (tempIndexes = new Array(newLen));\n for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++);\n for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {\n temp[newEnd] = mapped[end];\n tempdisposers[newEnd] = disposers[end];\n indexes && (tempIndexes[newEnd] = indexes[end]);\n }\n newIndices = new Map();\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = newItems[j];\n i = newIndices.get(item);\n newIndicesNext[j] = i === undefined ? -1 : i;\n newIndices.set(item, j);\n }\n for (i = start; i <= end; i++) {\n item = items[i];\n j = newIndices.get(item);\n if (j !== undefined && j !== -1) {\n temp[j] = mapped[i];\n tempdisposers[j] = disposers[i];\n indexes && (tempIndexes[j] = indexes[i]);\n j = newIndicesNext[j];\n newIndices.set(item, j);\n } else disposers[i]();\n }\n for (j = start; j < newLen; j++) {\n if (j in temp) {\n mapped[j] = temp[j];\n disposers[j] = tempdisposers[j];\n if (indexes) {\n indexes[j] = tempIndexes[j];\n indexes[j](j);\n }\n } else mapped[j] = createRoot(mapper);\n }\n mapped = mapped.slice(0, len = newLen);\n items = newItems.slice(0);\n }\n return mapped;\n });\n function mapper(disposer) {\n disposers[j] = disposer;\n if (indexes) {\n const [s, set] = createSignal(j);\n indexes[j] = set;\n return mapFn(newItems[j], s);\n }\n return mapFn(newItems[j]);\n }\n };\n}\nfunction indexArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n signals = [],\n len = 0,\n i;\n onCleanup(() => dispose(disposers));\n return () => {\n const newItems = list() || [];\n newItems[$TRACK];\n return untrack(() => {\n if (newItems.length === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n signals = [];\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n return mapped;\n }\n if (items[0] === FALLBACK) {\n disposers[0]();\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n }\n for (i = 0; i < newItems.length; i++) {\n if (i < items.length && items[i] !== newItems[i]) {\n signals[i](() => newItems[i]);\n } else if (i >= items.length) {\n mapped[i] = createRoot(mapper);\n }\n }\n for (; i < items.length; i++) {\n disposers[i]();\n }\n len = signals.length = disposers.length = newItems.length;\n items = newItems.slice(0);\n return mapped = mapped.slice(0, len);\n });\n function mapper(disposer) {\n disposers[i] = disposer;\n const [s, set] = createSignal(newItems[i]);\n signals[i] = set;\n return mapFn(s, i);\n }\n };\n}\n\nlet hydrationEnabled = false;\nfunction enableHydration() {\n hydrationEnabled = true;\n}\nfunction createComponent(Comp, props) {\n if (hydrationEnabled) {\n if (sharedConfig.context) {\n const c = sharedConfig.context;\n setHydrateContext(nextHydrateContext());\n const r = untrack(() => Comp(props || {}));\n setHydrateContext(c);\n return r;\n }\n }\n return untrack(() => Comp(props || {}));\n}\nfunction trueFn() {\n return true;\n}\nconst propTraps = {\n get(_, property, receiver) {\n if (property === $PROXY) return receiver;\n return _.get(property);\n },\n has(_, property) {\n if (property === $PROXY) return true;\n return _.has(property);\n },\n set: trueFn,\n deleteProperty: trueFn,\n getOwnPropertyDescriptor(_, property) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return _.get(property);\n },\n set: trueFn,\n deleteProperty: trueFn\n };\n },\n ownKeys(_) {\n return _.keys();\n }\n};\nfunction resolveSource(s) {\n return !(s = typeof s === \"function\" ? s() : s) ? {} : s;\n}\nfunction resolveSources() {\n for (let i = 0, length = this.length; i < length; ++i) {\n const v = this[i]();\n if (v !== undefined) return v;\n }\n}\nfunction mergeProps(...sources) {\n let proxy = false;\n for (let i = 0; i < sources.length; i++) {\n const s = sources[i];\n proxy = proxy || !!s && $PROXY in s;\n sources[i] = typeof s === \"function\" ? (proxy = true, createMemo(s)) : s;\n }\n if (proxy) {\n return new Proxy({\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== undefined) return v;\n }\n },\n has(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n if (property in resolveSource(sources[i])) return true;\n }\n return false;\n },\n keys() {\n const keys = [];\n for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n }, propTraps);\n }\n const target = {};\n const sourcesMap = {};\n const defined = new Set();\n for (let i = sources.length - 1; i >= 0; i--) {\n const source = sources[i];\n if (!source) continue;\n const sourceKeys = Object.getOwnPropertyNames(source);\n for (let i = 0, length = sourceKeys.length; i < length; i++) {\n const key = sourceKeys[i];\n if (key === \"__proto__\" || key === \"constructor\") continue;\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!defined.has(key)) {\n if (desc.get) {\n defined.add(key);\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])\n });\n } else {\n if (desc.value !== undefined) defined.add(key);\n target[key] = desc.value;\n }\n } else {\n const sources = sourcesMap[key];\n if (sources) {\n if (desc.get) {\n sources.push(desc.get.bind(source));\n } else if (desc.value !== undefined) {\n sources.push(() => desc.value);\n }\n } else if (target[key] === undefined) target[key] = desc.value;\n }\n }\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n if ($PROXY in props) {\n const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);\n const res = keys.map(k => {\n return new Proxy({\n get(property) {\n return k.includes(property) ? props[property] : undefined;\n },\n has(property) {\n return k.includes(property) && property in props;\n },\n keys() {\n return k.filter(property => property in props);\n }\n }, propTraps);\n });\n res.push(new Proxy({\n get(property) {\n return blocked.has(property) ? undefined : props[property];\n },\n has(property) {\n return blocked.has(property) ? false : property in props;\n },\n keys() {\n return Object.keys(props).filter(k => !blocked.has(k));\n }\n }, propTraps));\n return res;\n }\n const otherObject = {};\n const objects = keys.map(() => ({}));\n for (const propName of Object.getOwnPropertyNames(props)) {\n const desc = Object.getOwnPropertyDescriptor(props, propName);\n const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;\n let blocked = false;\n let objectIndex = 0;\n for (const k of keys) {\n if (k.includes(propName)) {\n blocked = true;\n isDefaultDesc ? objects[objectIndex][propName] = desc.value : Object.defineProperty(objects[objectIndex], propName, desc);\n }\n ++objectIndex;\n }\n if (!blocked) {\n isDefaultDesc ? otherObject[propName] = desc.value : Object.defineProperty(otherObject, propName, desc);\n }\n }\n return [...objects, otherObject];\n}\nfunction lazy(fn) {\n let comp;\n let p;\n const wrap = props => {\n const ctx = sharedConfig.context;\n if (ctx) {\n const [s, set] = createSignal();\n sharedConfig.count || (sharedConfig.count = 0);\n sharedConfig.count++;\n (p || (p = fn())).then(mod => {\n setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => mod.default);\n setHydrateContext();\n });\n comp = s;\n } else if (!comp) {\n const [s] = createResource(() => (p || (p = fn())).then(mod => mod.default));\n comp = s;\n }\n let Comp;\n return createMemo(() => (Comp = comp()) && untrack(() => {\n if (false) ;\n if (!ctx) return Comp(props);\n const c = sharedConfig.context;\n setHydrateContext(ctx);\n const r = Comp(props);\n setHydrateContext(c);\n return r;\n }));\n };\n wrap.preload = () => p || ((p = fn()).then(mod => comp = () => mod.default), p);\n return wrap;\n}\nlet counter = 0;\nfunction createUniqueId() {\n const ctx = sharedConfig.context;\n return ctx ? `${ctx.id}${ctx.count++}` : `cl-${counter++}`;\n}\n\nconst narrowedError = name => `Stale read from <${name}>.`;\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Index(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(indexArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Show(props) {\n const keyed = props.keyed;\n const condition = createMemo(() => props.when, undefined, {\n equals: (a, b) => keyed ? a === b : !a === !b\n });\n return createMemo(() => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(() => child(keyed ? c : () => {\n if (!untrack(condition)) throw narrowedError(\"Show\");\n return props.when;\n })) : child;\n }\n return props.fallback;\n }, undefined, undefined);\n}\nfunction Switch(props) {\n let keyed = false;\n const equals = (a, b) => a[0] === b[0] && (keyed ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];\n const conditions = children(() => props.children),\n evalConditions = createMemo(() => {\n let conds = conditions();\n if (!Array.isArray(conds)) conds = [conds];\n for (let i = 0; i < conds.length; i++) {\n const c = conds[i].when;\n if (c) {\n keyed = !!conds[i].keyed;\n return [i, c, conds[i]];\n }\n }\n return [-1];\n }, undefined, {\n equals\n });\n return createMemo(() => {\n const [index, when, cond] = evalConditions();\n if (index < 0) return props.fallback;\n const c = cond.children;\n const fn = typeof c === \"function\" && c.length > 0;\n return fn ? untrack(() => c(keyed ? when : () => {\n if (untrack(evalConditions)[0] !== index) throw narrowedError(\"Match\");\n return cond.when;\n })) : c;\n }, undefined, undefined);\n}\nfunction Match(props) {\n return props;\n}\nlet Errors;\nfunction resetErrorBoundaries() {\n Errors && [...Errors].forEach(fn => fn());\n}\nfunction ErrorBoundary(props) {\n let err;\n let v;\n if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];\n const [errored, setErrored] = createSignal(err, undefined);\n Errors || (Errors = new Set());\n Errors.add(setErrored);\n onCleanup(() => Errors.delete(setErrored));\n return createMemo(() => {\n let e;\n if (e = errored()) {\n const f = props.fallback;\n return typeof f === \"function\" && f.length ? untrack(() => f(e, () => setErrored())) : f;\n }\n return catchError(() => props.children, setErrored);\n }, undefined, undefined);\n}\n\nconst suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;\nconst SuspenseListContext = createContext();\nfunction SuspenseList(props) {\n let [wrapper, setWrapper] = createSignal(() => ({\n inFallback: false\n })),\n show;\n const listContext = useContext(SuspenseListContext);\n const [registry, setRegistry] = createSignal([]);\n if (listContext) {\n show = listContext.register(createMemo(() => wrapper()().inFallback));\n }\n const resolved = createMemo(prev => {\n const reveal = props.revealOrder,\n tail = props.tail,\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {},\n reg = registry(),\n reverse = reveal === \"backwards\";\n if (reveal === \"together\") {\n const all = reg.every(inFallback => !inFallback());\n const res = reg.map(() => ({\n showContent: all && showContent,\n showFallback\n }));\n res.inFallback = !all;\n return res;\n }\n let stop = false;\n let inFallback = prev.inFallback;\n const res = [];\n for (let i = 0, len = reg.length; i < len; i++) {\n const n = reverse ? len - i - 1 : i,\n s = reg[n]();\n if (!stop && !s) {\n res[n] = {\n showContent,\n showFallback\n };\n } else {\n const next = !stop;\n if (next) inFallback = true;\n res[n] = {\n showContent: next,\n showFallback: !tail || next && tail === \"collapsed\" ? showFallback : false\n };\n stop = true;\n }\n }\n if (!stop) inFallback = false;\n res.inFallback = inFallback;\n return res;\n }, {\n inFallback: false\n });\n setWrapper(() => resolved);\n return createComponent(SuspenseListContext.Provider, {\n value: {\n register: inFallback => {\n let index;\n setRegistry(registry => {\n index = registry.length;\n return [...registry, inFallback];\n });\n return createMemo(() => resolved()[index], undefined, {\n equals: suspenseListEquals\n });\n }\n },\n get children() {\n return props.children;\n }\n });\n}\nfunction Suspense(props) {\n let counter = 0,\n show,\n ctx,\n p,\n flicker,\n error;\n const [inFallback, setFallback] = createSignal(false),\n SuspenseContext = getSuspenseContext(),\n store = {\n increment: () => {\n if (++counter === 1) setFallback(true);\n },\n decrement: () => {\n if (--counter === 0) setFallback(false);\n },\n inFallback,\n effects: [],\n resolved: false\n },\n owner = getOwner();\n if (sharedConfig.context && sharedConfig.load) {\n const key = sharedConfig.context.id + sharedConfig.context.count;\n let ref = sharedConfig.load(key);\n if (ref && (p = ref[0]) && p !== \"$$f\") {\n if (typeof p !== \"object\" || !(\"then\" in p)) p = Promise.resolve(p);\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n flicker = s;\n p.then(err => {\n if (err || sharedConfig.done) {\n err && (error = err);\n return set();\n }\n sharedConfig.gather(key);\n setHydrateContext(ctx);\n set();\n setHydrateContext();\n });\n }\n }\n const listContext = useContext(SuspenseListContext);\n if (listContext) show = listContext.register(store.inFallback);\n let dispose;\n onCleanup(() => dispose && dispose());\n return createComponent(SuspenseContext.Provider, {\n value: store,\n get children() {\n return createMemo(() => {\n if (error) throw error;\n ctx = sharedConfig.context;\n if (flicker) {\n flicker();\n return flicker = undefined;\n }\n if (ctx && p === \"$$f\") setHydrateContext();\n const rendered = createMemo(() => props.children);\n return createMemo(prev => {\n const inFallback = store.inFallback(),\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {};\n if ((!inFallback || p && p !== \"$$f\") && showContent) {\n store.resolved = true;\n dispose && dispose();\n dispose = ctx = p = undefined;\n resumeEffects(store.effects);\n return rendered();\n }\n if (!showFallback) return;\n if (dispose) return prev;\n return createRoot(disposer => {\n dispose = disposer;\n if (ctx) {\n setHydrateContext({\n id: ctx.id + \"f\",\n count: 0\n });\n ctx = undefined;\n }\n return props.fallback;\n }, owner);\n });\n });\n }\n });\n}\n\nconst DEV = undefined;\n\nexport { $DEVCOMP, $PROXY, $TRACK, DEV, ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, batch, cancelCallback, catchError, children, createComponent, createComputed, createContext, createDeferred, createEffect, createMemo, createReaction, createRenderEffect, createResource, createRoot, createSelector, createSignal, createUniqueId, enableExternalSource, enableHydration, enableScheduling, equalFn, from, getListener, getOwner, indexArray, lazy, mapArray, mergeProps, observable, on, onCleanup, onError, onMount, requestCallback, resetErrorBoundaries, runWithOwner, sharedConfig, splitProps, startTransition, untrack, useContext, useTransition };\n","import { createRoot, createRenderEffect, sharedConfig, untrack, enableHydration, getOwner, createEffect, runWithOwner, createMemo, createSignal, onCleanup, splitProps, $DEVCOMP } from 'solid-js';\nexport { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, createRenderEffect as effect, getOwner, createMemo as memo, mergeProps, untrack } from 'solid-js';\n\nconst booleans = [\"allowfullscreen\", \"async\", \"autofocus\", \"autoplay\", \"checked\", \"controls\", \"default\", \"disabled\", \"formnovalidate\", \"hidden\", \"indeterminate\", \"ismap\", \"loop\", \"multiple\", \"muted\", \"nomodule\", \"novalidate\", \"open\", \"playsinline\", \"readonly\", \"required\", \"reversed\", \"seamless\", \"selected\"];\nconst Properties = /*#__PURE__*/new Set([\"className\", \"value\", \"readOnly\", \"formNoValidate\", \"isMap\", \"noModule\", \"playsInline\", ...booleans]);\nconst ChildProperties = /*#__PURE__*/new Set([\"innerHTML\", \"textContent\", \"innerText\", \"children\"]);\nconst Aliases = /*#__PURE__*/Object.assign(Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {\n class: \"className\",\n formnovalidate: {\n $: \"formNoValidate\",\n BUTTON: 1,\n INPUT: 1\n },\n ismap: {\n $: \"isMap\",\n IMG: 1\n },\n nomodule: {\n $: \"noModule\",\n SCRIPT: 1\n },\n playsinline: {\n $: \"playsInline\",\n VIDEO: 1\n },\n readonly: {\n $: \"readOnly\",\n INPUT: 1,\n TEXTAREA: 1\n }\n});\nfunction getPropAlias(prop, tagName) {\n const a = PropAliases[prop];\n return typeof a === \"object\" ? a[tagName] ? a[\"$\"] : undefined : a;\n}\nconst DelegatedEvents = /*#__PURE__*/new Set([\"beforeinput\", \"click\", \"dblclick\", \"contextmenu\", \"focusin\", \"focusout\", \"input\", \"keydown\", \"keyup\", \"mousedown\", \"mousemove\", \"mouseout\", \"mouseover\", \"mouseup\", \"pointerdown\", \"pointermove\", \"pointerout\", \"pointerover\", \"pointerup\", \"touchend\", \"touchmove\", \"touchstart\"]);\nconst SVGElements = /*#__PURE__*/new Set([\n\"altGlyph\", \"altGlyphDef\", \"altGlyphItem\", \"animate\", \"animateColor\", \"animateMotion\", \"animateTransform\", \"circle\", \"clipPath\", \"color-profile\", \"cursor\", \"defs\", \"desc\", \"ellipse\", \"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\", \"filter\", \"font\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignObject\", \"g\", \"glyph\", \"glyphRef\", \"hkern\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"metadata\", \"missing-glyph\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\",\n\"set\", \"stop\",\n\"svg\", \"switch\", \"symbol\", \"text\", \"textPath\",\n\"tref\", \"tspan\", \"use\", \"view\", \"vkern\"]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nconst DOMElements = /*#__PURE__*/new Set([\"html\", \"base\", \"head\", \"link\", \"meta\", \"style\", \"title\", \"body\", \"address\", \"article\", \"aside\", \"footer\", \"header\", \"main\", \"nav\", \"section\", \"body\", \"blockquote\", \"dd\", \"div\", \"dl\", \"dt\", \"figcaption\", \"figure\", \"hr\", \"li\", \"ol\", \"p\", \"pre\", \"ul\", \"a\", \"abbr\", \"b\", \"bdi\", \"bdo\", \"br\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"small\", \"span\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\", \"wbr\", \"area\", \"audio\", \"img\", \"map\", \"track\", \"video\", \"embed\", \"iframe\", \"object\", \"param\", \"picture\", \"portal\", \"source\", \"svg\", \"math\", \"canvas\", \"noscript\", \"script\", \"del\", \"ins\", \"caption\", \"col\", \"colgroup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thead\", \"tr\", \"button\", \"datalist\", \"fieldset\", \"form\", \"input\", \"label\", \"legend\", \"meter\", \"optgroup\", \"option\", \"output\", \"progress\", \"select\", \"textarea\", \"details\", \"dialog\", \"menu\", \"summary\", \"details\", \"slot\", \"template\", \"acronym\", \"applet\", \"basefont\", \"bgsound\", \"big\", \"blink\", \"center\", \"content\", \"dir\", \"font\", \"frame\", \"frameset\", \"hgroup\", \"image\", \"keygen\", \"marquee\", \"menuitem\", \"nobr\", \"noembed\", \"noframes\", \"plaintext\", \"rb\", \"rtc\", \"shadow\", \"spacer\", \"strike\", \"tt\", \"xmp\", \"a\", \"abbr\", \"acronym\", \"address\", \"applet\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"basefont\", \"bdi\", \"bdo\", \"bgsound\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"frame\", \"frameset\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"image\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"nobr\", \"noembed\", \"noframes\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"plaintext\", \"portal\", \"pre\", \"progress\", \"q\", \"rb\", \"rp\", \"rt\", \"rtc\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"shadow\", \"slot\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"xmp\", \"input\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\n\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = a[aEnd - 1].nextSibling,\n map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;\n while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) a[aStart].remove();\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = a[--aEnd].nextSibling;\n parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling);\n parentNode.insertBefore(b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart,\n sequence = 1,\n t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) parentNode.insertBefore(b[bStart++], node);\n } else parentNode.replaceChild(b[bStart++], a[aStart++]);\n } else aStart++;\n } else a[aStart++].remove();\n }\n }\n}\n\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, isCE, isSVG) {\n let node;\n const create = () => {\n const t = document.createElement(\"template\");\n t.innerHTML = html;\n return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;\n };\n const fn = isCE ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);\n fn.cloneNode = fn;\n return fn;\n}\nfunction delegateEvents(eventNames, document = window.document) {\n const e = document[$$EVENTS] || (document[$$EVENTS] = new Set());\n for (let i = 0, l = eventNames.length; i < l; i++) {\n const name = eventNames[i];\n if (!e.has(name)) {\n e.add(name);\n document.addEventListener(name, eventHandler);\n }\n }\n}\nfunction clearDelegatedEvents(document = window.document) {\n if (document[$$EVENTS]) {\n for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);\n delete document[$$EVENTS];\n }\n}\nfunction setAttribute(node, name, value) {\n if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);\n}\nfunction className(node, value) {\n if (value == null) node.removeAttribute(\"class\");else node.className = value;\n}\nfunction addEventListener(node, name, handler, delegate) {\n if (delegate) {\n if (Array.isArray(handler)) {\n node[`$$${name}`] = handler[0];\n node[`$$${name}Data`] = handler[1];\n } else node[`$$${name}`] = handler;\n } else if (Array.isArray(handler)) {\n const handlerFn = handler[0];\n node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));\n } else node.addEventListener(name, handler);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}),\n prevKeys = Object.keys(prev);\n let i, len;\n for (i = 0, len = prevKeys.length; i < len; i++) {\n const key = prevKeys[i];\n if (!key || key === \"undefined\" || value[key]) continue;\n toggleClassKey(node, key, false);\n delete prev[key];\n }\n for (i = 0, len = classKeys.length; i < len; i++) {\n const key = classKeys[i],\n classValue = !!value[key];\n if (!key || key === \"undefined\" || prev[key] === classValue || !classValue) continue;\n toggleClassKey(node, key, true);\n prev[key] = classValue;\n }\n return prev;\n}\nfunction style(node, value, prev) {\n if (!value) return prev ? setAttribute(node, \"style\") : value;\n const nodeStyle = node.style;\n if (typeof value === \"string\") return nodeStyle.cssText = value;\n typeof prev === \"string\" && (nodeStyle.cssText = prev = undefined);\n prev || (prev = {});\n value || (value = {});\n let v, s;\n for (s in prev) {\n value[s] == null && nodeStyle.removeProperty(s);\n delete prev[s];\n }\n for (s in value) {\n v = value[s];\n if (v !== prev[s]) {\n nodeStyle.setProperty(s, v);\n prev[s] = v;\n }\n }\n return prev;\n}\nfunction spread(node, props = {}, isSVG, skipChildren) {\n const prevProps = {};\n if (!skipChildren) {\n createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));\n }\n createRenderEffect(() => props.ref && props.ref(node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction dynamicProperty(props, key) {\n const src = props[key];\n Object.defineProperty(props, key, {\n get() {\n return src();\n },\n enumerable: true\n });\n return props;\n}\nfunction innerHTML(parent, content) {\n !sharedConfig.context && (parent.innerHTML = content);\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);\n}\nfunction assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {\n props || (props = {});\n for (const prop in prevProps) {\n if (!(prop in props)) {\n if (prop === \"children\") continue;\n prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n if (!skipChildren) insertExpression(node, props.children);\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef);\n }\n}\nfunction hydrate$1(code, element, options = {}) {\n sharedConfig.completed = globalThis._$HY.completed;\n sharedConfig.events = globalThis._$HY.events;\n sharedConfig.load = globalThis._$HY.load;\n sharedConfig.gather = root => gatherHydratable(element, root);\n sharedConfig.registry = new Map();\n sharedConfig.context = {\n id: options.renderId || \"\",\n count: 0\n };\n gatherHydratable(element, options.renderId);\n const dispose = render(code, element, [...element.childNodes], options);\n sharedConfig.context = null;\n return dispose;\n}\nfunction getNextElement(template) {\n let node, key;\n if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n if (sharedConfig.context) console.warn(\"Unable to find DOM nodes for hydration key:\", key);\n if (!template) throw new Error(\"Unrecoverable Hydration Mismatch. No template for key: \" + key);\n return template();\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction getNextMatch(el, nodeName) {\n while (el && el.localName !== nodeName) el = el.nextSibling;\n return el;\n}\nfunction getNextMarker(start) {\n let end = start,\n count = 0,\n current = [];\n if (sharedConfig.context) {\n while (end) {\n if (end.nodeType === 8) {\n const v = end.nodeValue;\n if (v === \"#\") count++;else if (v === \"/\") {\n if (count === 0) return [end, current];\n count--;\n }\n }\n current.push(end);\n end = end.nextSibling;\n }\n }\n return [end, current];\n}\nfunction runHydrationEvents() {\n if (sharedConfig.events && !sharedConfig.events.queued) {\n queueMicrotask(() => {\n const {\n completed,\n events\n } = sharedConfig;\n events.queued = false;\n while (events.length) {\n const [el, e] = events[0];\n if (!completed.has(el)) return;\n eventHandler(e);\n events.shift();\n }\n });\n sharedConfig.events.queued = true;\n }\n}\nfunction toPropertyName(name) {\n return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase());\n}\nfunction toggleClassKey(node, key, value) {\n const classNames = key.trim().split(/\\s+/);\n for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef) {\n let isCE, isProp, isChildProp, propAlias, forceProp;\n if (prop === \"style\") return style(node, value, prev);\n if (prop === \"classList\") return classList(node, value, prev);\n if (value === prev) return prev;\n if (prop === \"ref\") {\n if (!skipRef) value(node);\n } else if (prop.slice(0, 3) === \"on:\") {\n const e = prop.slice(3);\n prev && node.removeEventListener(e, prev);\n value && node.addEventListener(e, value);\n } else if (prop.slice(0, 10) === \"oncapture:\") {\n const e = prop.slice(10);\n prev && node.removeEventListener(e, prev, true);\n value && node.addEventListener(e, value, true);\n } else if (prop.slice(0, 2) === \"on\") {\n const name = prop.slice(2).toLowerCase();\n const delegate = DelegatedEvents.has(name);\n if (!delegate && prev) {\n const h = Array.isArray(prev) ? prev[0] : prev;\n node.removeEventListener(name, h);\n }\n if (delegate || value) {\n addEventListener(node, name, value, delegate);\n delegate && delegateEvents([name]);\n }\n } else if (prop.slice(0, 5) === \"attr:\") {\n setAttribute(node, prop.slice(5), value);\n } else if ((forceProp = prop.slice(0, 5) === \"prop:\") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\"))) {\n if (forceProp) {\n prop = prop.slice(5);\n isProp = true;\n }\n if (prop === \"class\" || prop === \"className\") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[propAlias || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n const key = `$$${e.type}`;\n let node = e.composedPath && e.composedPath()[0] || e.target;\n if (e.target !== node) {\n Object.defineProperty(e, \"target\", {\n configurable: true,\n value: node\n });\n }\n Object.defineProperty(e, \"currentTarget\", {\n configurable: true,\n get() {\n return node || document;\n }\n });\n if (sharedConfig.registry && !sharedConfig.done) sharedConfig.done = _$HY.done = true;\n while (node) {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== undefined ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node = node._$host || node.parentNode || node.host;\n }\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n if (sharedConfig.context) {\n !current && (current = [...parent.childNodes]);\n let cleaned = [];\n for (let i = 0; i < current.length; i++) {\n const node = current[i];\n if (node.nodeType === 8 && node.data.slice(0, 2) === \"!$\") node.remove();else cleaned.push(node);\n }\n current = cleaned;\n }\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value,\n multi = marker !== undefined;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (sharedConfig.context) return current;\n if (t === \"number\") value = value.toString();\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n node.data = value;\n } else node = document.createTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n current = parent.firstChild.data = value;\n } else current = parent.textContent = value;\n }\n } else if (value == null || t === \"boolean\") {\n if (sharedConfig.context) return current;\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n const currentArray = current && Array.isArray(current);\n if (normalizeIncomingArray(array, value, current, unwrapArray)) {\n createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));\n return () => current;\n }\n if (sharedConfig.context) {\n if (!array.length) return current;\n for (let i = 0; i < array.length; i++) {\n if (array[i].parentNode) return current = array;\n }\n }\n if (array.length === 0) {\n current = cleanChildren(parent, current, marker);\n if (multi) return current;\n } else if (currentArray) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else {\n current && cleanChildren(parent);\n appendNodes(parent, array);\n }\n current = array;\n } else if (value.nodeType) {\n if (sharedConfig.context && value.parentNode) return current = multi ? [value] : value;\n if (Array.isArray(current)) {\n if (multi) return current = cleanChildren(parent, current, marker, value);\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !parent.firstChild) {\n parent.appendChild(value);\n } else parent.replaceChild(value, parent.firstChild);\n current = value;\n } else console.warn(`Unrecognized value. Skipped inserting`, value);\n return current;\n}\nfunction normalizeIncomingArray(normalized, array, current, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i],\n prev = current && current[i],\n t;\n if (item == null || item === true || item === false) ; else if ((t = typeof item) === \"object\" && item.nodeType) {\n normalized.push(item);\n } else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));\n }\n }\n return dynamic;\n}\nfunction appendNodes(parent, array, marker = null) {\n for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);\n}\nfunction cleanChildren(parent, current, marker, replacement) {\n if (marker === undefined) return parent.textContent = \"\";\n const node = replacement || document.createTextNode(\"\");\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = el.parentNode === parent;\n if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction gatherHydratable(element, root) {\n const templates = element.querySelectorAll(`*[data-hk]`);\n for (let i = 0; i < templates.length; i++) {\n const node = templates[i];\n const key = node.getAttribute(\"data-hk\");\n if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);\n }\n}\nfunction getHydrationKey() {\n const hydrate = sharedConfig.context;\n return `${hydrate.id}${hydrate.count++}`;\n}\nfunction NoHydration(props) {\n return sharedConfig.context ? undefined : props.children;\n}\nfunction Hydration(props) {\n return props.children;\n}\nfunction voidFn() {}\n\nfunction throwInBrowser(func) {\n const err = new Error(`${func.name} is not supported in the browser, returning undefined`);\n console.error(err);\n}\nfunction renderToString(fn, options) {\n throwInBrowser(renderToString);\n}\nfunction renderToStringAsync(fn, options) {\n throwInBrowser(renderToStringAsync);\n}\nfunction renderToStream(fn, options) {\n throwInBrowser(renderToStream);\n}\nfunction ssr(template, ...nodes) {}\nfunction ssrElement(name, props, children, needsId) {}\nfunction ssrClassList(value) {}\nfunction ssrStyle(value) {}\nfunction ssrAttribute(key, value) {}\nfunction ssrHydrationKey() {}\nfunction resolveSSRNode(node) {}\nfunction escape(html) {}\nfunction ssrSpread(props, isSVG, skipChildren) {}\n\nconst isServer = false;\nconst isDev = false;\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nfunction createElement(tagName, isSVG = false) {\n return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName);\n}\nconst hydrate = (...args) => {\n enableHydration();\n return hydrate$1(...args);\n};\nfunction Portal(props) {\n const {\n useShadow\n } = props,\n marker = document.createTextNode(\"\"),\n mount = () => props.mount || document.body,\n owner = getOwner();\n let content;\n let hydrating = !!sharedConfig.context;\n createEffect(() => {\n if (hydrating) getOwner().user = hydrating = false;\n content || (content = runWithOwner(owner, () => createMemo(() => props.children)));\n const el = mount();\n if (el instanceof HTMLHeadElement) {\n const [clean, setClean] = createSignal(false);\n const cleanup = () => setClean(true);\n createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));\n onCleanup(cleanup);\n } else {\n const container = createElement(props.isSVG ? \"g\" : \"div\", props.isSVG),\n renderRoot = useShadow && container.attachShadow ? container.attachShadow({\n mode: \"open\"\n }) : container;\n Object.defineProperty(container, \"_$host\", {\n get() {\n return marker.parentNode;\n },\n configurable: true\n });\n insert(renderRoot, content);\n el.appendChild(container);\n props.ref && props.ref(container);\n onCleanup(() => el.removeChild(container));\n }\n }, undefined, {\n render: !hydrating\n });\n return marker;\n}\nfunction Dynamic(props) {\n const [p, others] = splitProps(props, [\"component\"]);\n const cached = createMemo(() => p.component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n Object.assign(component, {\n [$DEVCOMP]: true\n });\n return untrack(() => component(others));\n case \"string\":\n const isSvg = SVGElements.has(component);\n const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg);\n spread(el, others, isSvg);\n return el;\n }\n });\n}\n\nexport { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, Properties, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, getPropAlias, hydrate, innerHTML, insert, isDev, isServer, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };\n","export interface ScheduledEvent {\n\tname: string;\n\tstart: number;\n\toccurence: number;\n\tsequence?: string[];\n\tsequenceLabel?: (seq: string) => string;\n}\n\nconst utc = Date.UTC;\n\nexport const getNextOccurence = (now: number, start: number, occurence: number) => {\n\tconst diff = now - start;\n\tconst index = Math.ceil(diff / occurence);\n\n\tconst date = new Date(start + index * occurence);\n\n\treturn { index, date };\n};\n\nconst enum Occurence {\n\tDAILY = 86400000,\n\tWEEKLY = 604800000,\n}\n\nexport const events: ScheduledEvent[] = [\n\t// Dailies\n\t{\n\t\tname: 'Daily tasks:',\n\t\tstart: utc(2023, 7, 29, 12),\n\t\toccurence: Occurence.DAILY,\n\t\tsequenceLabel: (seq) => `${seq} Region`,\n\t\tsequence: ['Stia', 'Retem', 'Aelio', 'Kvaris'],\n\t},\n\t{\n\t\tname: 'Daily tasks:',\n\t\tstart: utc(2023, 8, 2, 12),\n\t\toccurence: Occurence.DAILY,\n\t\tsequenceLabel: (seq) => `${seq} Gathering`,\n\t\tsequence: ['Fruit', 'Mineral', 'Vegetable', 'TAMES', 'Seafood'],\n\t},\n\t{\n\t\tname: 'GP Tree:',\n\t\tstart: utc(2022, 8, 3, 12),\n\t\toccurence: Occurence.DAILY,\n\t\tsequence: [\n\t\t\t'GPID4 (315pts)',\n\t\t\t'GPID1 (625pts)',\n\t\t\t'GPID8 (315pts)',\n\t\t\t'GPID5 (315pts)',\n\t\t\t'GPID2 (625pts)',\n\t\t\t'GPID7 (315pts)',\n\t\t\t'GPID6 (315pts)',\n\t\t\t'GPID3 (625pts)',\n\t\t\t'GPID6 (315pts)',\n\t\t\t'GPID7 (315pts)',\n\t\t\t'GPID0 & 4 (315pts & 625pts)',\n\t\t\t'GPID5 (315pts)',\n\t\t\t'GPID3 & 8 (315pts & 315pts)',\n\t\t\t'GPID5 (625pts)',\n\t\t\t'GPID4 (315pts)',\n\t\t\t'GPID9 (315pts)',\n\t\t\t'GPID6 (625pts)',\n\t\t\t'GPID3 (315pts)',\n\t\t\t'GPID0 (315pts)',\n\t\t\t'GPID7 (625pts)',\n\t\t\t'GPID2 (315pts)',\n\t\t\t'GPID1 (315pts)',\n\t\t\t'GPID8 (625pts)',\n\t\t\t'GPID1 (315pts)',\n\t\t\t'GPID2 (315pts)',\n\t\t\t'GPID9 (625pts)',\n\t\t\t'GPID0 (625pts)',\n\t\t\t'GPID9 (315pts)',\n\t\t],\n\t},\n\t{\n\t\tname: 'Daily free SG scratch',\n\t\tstart: utc(2023, 7, 29, 8),\n\t\toccurence: Occurence.DAILY,\n\t},\n\t{\n\t\tname: 'Lookbook SG',\n\t\tstart: utc(2023, 7, 29, 15),\n\t\toccurence: Occurence.DAILY,\n\t},\n\t{\n\t\tname: 'Leciel Exploration buffs',\n\t\tstart: utc(2023, 7, 29, 19),\n\t\toccurence: Occurence.DAILY,\n\t},\n\t{\n\t\tname: 'Treasure Shop',\n\t\tstart: utc(2023, 7, 29, 3),\n\t\toccurence: Occurence.DAILY,\n\t},\n\n\t// Weeklies\n\t{\n\t\tname: 'Weekly tasks',\n\t\tstart: utc(2023, 7, 23, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t},\n\t{\n\t\tname: 'Alliance tasks:',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequenceLabel: (seq) => `${seq} Region`,\n\t\tsequence: ['Aelio', 'Retem', 'Kvaris', 'Stia'],\n\t},\n\t{\n\t\tname: 'Alliance tasks:',\n\t\tstart: utc(2023, 1, 22, 3),\n\t\toccurence: Occurence.WEEKLY * 4,\n\t\tsequenceLabel: (seq) => `${seq} Augment`,\n\t\tsequence: ['Note A', 'Note B', 'Note C', 'Note D'],\n\t},\n\t{\n\t\tname: 'Alliance tasks:',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequenceLabel: (seq) => `${seq} Rare Enemy`,\n\t\tsequence: ['Silver', 'Gold'],\n\t},\n\t{\n\t\tname: 'Alliance tasks:',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequenceLabel: (seq) => `${seq} Field Race`,\n\t\tsequence: ['Dash', 'Board'],\n\t},\n\t{\n\t\tname: 'Alliance tasks:',\n\t\tstart: utc(2023, 1, 1, 3),\n\t\toccurence: Occurence.WEEKLY,\n\t\tsequenceLabel: (seq) => `${seq} Task`,\n\t\tsequence: ['Kudos', 'Region Mags', 'Battledia Yellow'],\n\t},\n\t{\n\t\tname: 'ARKS Records',\n\t\tstart: utc(2023, 7, 23, 2),\n\t\toccurence: Occurence.WEEKLY,\n\t},\n];\n","export interface Duration {\n\tyears?: number;\n\tmonths?: number;\n\tdays?: number;\n\thours?: number;\n\tminutes?: number;\n\tseconds?: number;\n}\n\nconst SECONDS = 1000;\nconst MINUTES = SECONDS * 60;\nconst HOURS = MINUTES * 60;\nconst DAYS = HOURS * 24;\nconst WEEKS = DAYS * 7;\nconst YEARS = DAYS * 365.25;\n\nconst clone = (date: Date) => {\n\treturn new Date(date.getTime());\n};\n\nconst abs = Math.abs;\nconst sign = Math.sign;\nconst trunc = Math.trunc;\n\n// date\nexport const intervalToDuration = (start: Date, end: Date): Required => {\n\tlet date = start;\n\tlet count: number;\n\n\treturn {\n\t\tyears: (count = differenceInYears(start, end)),\n\t\tmonths: (count = differenceInMonths(end, (date = addYears(date, count)))),\n\t\tdays: (count = differenceInDays(end, (date = addMonths(date, count)))),\n\t\thours: (count = differenceInHours(end, (date = addDays(date, count)))),\n\t\tminutes: (count = differenceInMinutes(end, (date = addHours(date, count)))),\n\t\tseconds: (count = differenceInSeconds(end, (date = addMinutes(date, count)))),\n\t};\n};\n\n// years\nexport const addYears = (date: Date, years: number) => {\n\tconst inst = clone(date);\n\tinst.setFullYear(inst.getFullYear() + years);\n\n\treturn inst;\n};\n\nexport const differenceInCalendarYears = (a: Date, b: Date) => {\n\treturn a.getFullYear() - b.getFullYear();\n};\n\nexport const differenceInYears = (a: Date, b: Date) => {\n\tconst left = clone(a);\n\tconst right = clone(b);\n\n\tconst s = compareAsc(a, b);\n\tconst d = abs(differenceInCalendarYears(a, b));\n\n\tleft.setFullYear(1584);\n\tright.setFullYear(1584);\n\n\tconst isLastYearNotFull = compareAsc(left, right) === -s;\n\tconst result = s * (d - +isLastYearNotFull);\n\n\treturn result === 0 ? 0 : result;\n};\n\n// months\nexport const addMonths = (date: Date, months: number) => {\n\tconst inst = clone(date);\n\tinst.setMonth(inst.getMonth() + months);\n\n\treturn inst;\n};\n\nexport const endOfMonth = (date: Date) => {\n\tconst inst = clone(date);\n\tconst month = inst.getMonth();\n\n\tinst.setFullYear(inst.getFullYear(), month + 1, 0);\n\tinst.setHours(23, 59, 59, 999);\n\n\treturn inst;\n};\n\nexport const isLastDayOfMonth = (date: Date) => {\n\treturn endOfDay(date).getTime() === endOfMonth(date).getTime();\n};\n\nexport const differenceInCalendarMonths = (a: Date, b: Date) => {\n\tconst yearDiff = a.getFullYear() - b.getFullYear();\n\tconst monthDiff = a.getMonth() - b.getMonth();\n\n\treturn yearDiff * 12 + monthDiff;\n};\n\nexport const differenceInMonths = (a: Date, b: Date) => {\n\tconst left = clone(a);\n\n\tconst s = compareAsc(a, b);\n\tconst d = abs(differenceInCalendarMonths(a, b));\n\n\tlet result: number;\n\n\tif (d < 1) {\n\t\tresult = 0;\n\t} else {\n\t\tif (left.getMonth() === 1 && left.getDate() > 27) {\n\t\t\tleft.setDate(30);\n\t\t}\n\n\t\tleft.setMonth(left.getMonth() - s * d);\n\n\t\t// Check for cases of one full calendar month\n\t\tconst isLastMonthNotFull =\n\t\t\tisLastDayOfMonth(left) && d === 1 && compareAsc(left, b) === 1 ? false : compareAsc(left, b) === -s;\n\n\t\tresult = s * (d - +isLastMonthNotFull);\n\t}\n\n\treturn result === 0 ? 0 : result;\n};\n\n// days\nexport const addDays = (date: Date, days: number) => {\n\tconst inst = clone(date);\n\tinst.setDate(inst.getDate() + days);\n\n\treturn inst;\n};\n\nexport const startOfDay = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setHours(0, 0, 0, 0);\n\n\treturn inst;\n};\n\nexport const endOfDay = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setHours(23, 59, 59, 999);\n\n\treturn inst;\n};\n\nexport const differenceInCalendarDays = (a: Date, b: Date) => {\n\tconst left = a.getTime() - getTimezoneOffsetInMilliseconds(a);\n\tconst right = b.getTime() - getTimezoneOffsetInMilliseconds(b);\n\n\treturn Math.round((left - right) / DAYS);\n};\n\nexport const differenceInDays = (a: Date, b: Date) => {\n\tconst left = clone(a);\n\n\tconst s = compareLocalAsc(a, b);\n\tconst d = abs(differenceInCalendarDays(a, b));\n\n\tleft.setDate(left.getDate() - s * d);\n\n\tconst isLastDayNotFull = compareLocalAsc(left, b) === -s;\n\tconst result = s * (d - +isLastDayNotFull);\n\n\treturn result === 0 ? 0 : result;\n};\n\n// hours\nexport const getHours = (date: Date) => {\n\treturn date.getHours();\n};\n\nexport const addHours = (date: Date, hours: number) => {\n\treturn setHours(date, date.getHours() + hours);\n};\n\nexport const setHours = (date: Date, hours: number) => {\n\tconst inst = clone(date);\n\tinst.setHours(hours);\n\n\treturn inst;\n};\n\nexport const startOfHour = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setHours(inst.getHours(), 0, 0, 0);\n\n\treturn inst;\n};\n\nexport const differenceInHours = (a: Date, b: Date) => {\n\treturn differenceInX(a, b, HOURS);\n};\n\n// minute\nexport const addMinutes = (date: Date, minutes: number) => {\n\tconst inst = clone(date);\n\tinst.setMinutes(inst.getMinutes() + minutes);\n\n\treturn inst;\n};\n\nexport const differenceInMinutes = (a: Date, b: Date) => {\n\treturn differenceInX(a, b, MINUTES);\n};\n\n// second\nexport const startOfSeconds = (date: Date) => {\n\tconst inst = clone(date);\n\tinst.setMilliseconds(0);\n\n\treturn inst;\n};\n\nexport const addSeconds = (date: Date, seconds: number) => {\n\tconst inst = clone(date);\n\tinst.setSeconds(inst.getSeconds() + seconds);\n\n\treturn inst;\n};\n\nexport const differenceInSeconds = (a: Date, b: Date) => {\n\treturn differenceInX(a, b, SECONDS);\n};\n\n// utils\nconst compareAsc = (a: Date, b: Date) => {\n\treturn sign(a.getTime() - b.getTime());\n};\n\nconst compareLocalAsc = (a: Date, b: Date) => {\n\tconst diff =\n\t\ta.getFullYear() - b.getFullYear() ||\n\t\ta.getMonth() - b.getMonth() ||\n\t\ta.getDate() - b.getDate() ||\n\t\ta.getHours() - b.getHours() ||\n\t\ta.getMinutes() - b.getMinutes() ||\n\t\ta.getSeconds() - b.getSeconds() ||\n\t\ta.getMilliseconds() - b.getMilliseconds();\n\n\treturn sign(diff);\n};\n\nconst differenceInX = (a: Date, b: Date, num: number) => {\n\treturn trunc((a.getTime() - b.getTime()) / num);\n};\n\nconst getTimezoneOffsetInMilliseconds = (date: Date) => {\n\tconst utc = new Date(\n\t\tDate.UTC(\n\t\t\tdate.getFullYear(),\n\t\t\tdate.getMonth(),\n\t\t\tdate.getDate(),\n\t\t\tdate.getHours(),\n\t\t\tdate.getMinutes(),\n\t\t\tdate.getSeconds(),\n\t\t\tdate.getMilliseconds(),\n\t\t),\n\t);\n\n\tutc.setUTCFullYear(date.getFullYear());\n\treturn date.getTime() - utc.getTime();\n};\n","import { type Accessor, createMemo, createRenderEffect, createSignal, onMount } from 'solid-js';\nimport { render } from 'solid-js/web';\n\nimport { type ScheduledEvent, events, getNextOccurence } from './events.ts';\nimport * as u from './utils.ts';\n\nimport './style.css';\n\nconst interval = (ms: number, signal: AbortSignal, callback: (time: number) => void) => {\n\tconst start = document.timeline ? (document.timeline.currentTime! as number) : performance.now();\n\n\tconst frame = (time: number) => {\n\t\tif (signal.aborted) {\n\t\t\treturn;\n\t\t}\n\n\t\tcallback(time);\n\t\tschedule(time);\n\t};\n\n\tconst schedule = (time: number) => {\n\t\tconst elapsed = time - start;\n\t\tconst roundedElapsed = Math.round(elapsed / ms) * ms;\n\t\tconst target = start + roundedElapsed + ms;\n\t\tconst delay = target - performance.now();\n\n\t\tsetTimeout(() => requestAnimationFrame(frame), delay);\n\t};\n\n\tschedule(start);\n};\n\nconst calculateTime = (from: Date, time: Date, hours: number) => {\n\tlet start = u.startOfHour(u.setHours(time, hours));\n\n\tif (start.getTime() <= time.getTime()) {\n\t\tstart = u.addDays(start, 1);\n\t}\n\n\treturn u.addSeconds(from, u.differenceInSeconds(start, time) / 30);\n};\n\nconst leftpad = (value: any, pad: string, amount: number) => {\n\treturn ('' + value).padStart(amount, pad);\n};\n\nconst diffFormat = (start: Date, end: Date) => {\n\tconst { days, hours, minutes, seconds } = u.intervalToDuration(start, end);\n\tlet str = '';\n\tlet pad = false;\n\n\tif (pad || days > 0) {\n\t\tstr && (str += `:`);\n\t\tstr += pad ? leftpad(days, '0', 2) : days;\n\t\tpad = true;\n\t}\n\n\tif (pad || hours > 0) {\n\t\tstr && (str += `:`);\n\t\tstr += pad ? leftpad(hours, '0', 2) : hours;\n\t\tpad = true;\n\t}\n\n\tstr && (str += `:`);\n\tstr += `${pad ? leftpad(minutes, '0', 2) : minutes}:${leftpad(seconds, '0', 2)}`;\n\n\treturn str;\n};\n\nconst utcToZonedTime = (date: Date, tz: number) => {\n\tconst offset = -tz * 3600000;\n\n\tconst d = new Date(date.getTime() - offset);\n\tconst r = new Date(0);\n\n\tr.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n\tr.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\n\n\treturn r;\n};\n\nconst Occurence = ({ now, event }: { now: Accessor; event: ScheduledEvent }) => {\n\tconst { name, start, occurence, sequence, sequenceLabel } = event;\n\n\tconst next = createMemo((prev: ReturnType | undefined) => {\n\t\tconst $now = now().getTime();\n\n\t\tif (prev && prev.date.getTime() > $now) {\n\t\t\treturn prev;\n\t\t}\n\n\t\treturn getNextOccurence($now, start, occurence);\n\t});\n\n\tconst renderSequenceLabel = () => {\n\t\tif (!sequence) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst seq = sequence[next().index % sequence.length];\n\t\tconst labeled = sequenceLabel ? sequenceLabel(seq) : seq;\n\n\t\treturn
{labeled}
;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{name}\n\t\t\t\t{renderSequenceLabel()}\n\t\t\t\n\t\t\t{diffFormat(now(), next().date)}\n\t\t\n\t);\n};\n\nconst timeFormat = new Intl.DateTimeFormat(undefined, {\n\ttimeStyle: 'short',\n});\n\nconst App = () => {\n\tconst [now, setNow] = createSignal(new Date());\n\n\tconst [time, setTime] = createSignal(new Date(0));\n\tconst [morning, setMorning] = createSignal(new Date(0));\n\tconst [night, setNight] = createSignal(new Date(0));\n\tconst [icon, setIcon] = createSignal('#icon-sun');\n\n\tcreateRenderEffect(() => {\n\t\tconst _now = now();\n\n\t\tconst zoned = utcToZonedTime(_now, -7);\n\t\tconst diff = u.differenceInSeconds(zoned, u.addMinutes(u.startOfDay(zoned), -38));\n\n\t\tconst ingame = u.addSeconds(u.startOfDay(zoned), (diff % 2880) * 30);\n\t\tconst hour = u.getHours(ingame);\n\n\t\tsetTime(ingame);\n\t\tsetMorning(calculateTime(_now, ingame, 6));\n\t\tsetNight(calculateTime(_now, ingame, 20));\n\t\tsetIcon(hour < 6 || hour >= 20 ? '#icon-moon' : '#icon-sun');\n\t});\n\n\tonMount(() => {\n\t\tconst controller = new AbortController();\n\t\tinterval(1000, controller.signal, () => {\n\t\t\tconst next = new Date();\n\t\t\tnext.setMilliseconds(0);\n\n\t\t\tsetNow(next);\n\t\t});\n\n\t\treturn () => controller.abort();\n\t});\n\n\treturn (\n\t\t
\n\t\t\t

NGS World Time

\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
Current time:\n\t\t\t\t\t\t\t{timeFormat.format(time())}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
Day (06:00 AM):\n\t\t\t\t\t\t\t(in {diffFormat(now(), morning())})\n\t\t\t\t\t\t\t{timeFormat.format(morning())}\n\t\t\t\t\t\t
Night (08:00 PM):\n\t\t\t\t\t\t\t(in {diffFormat(now(), night())})\n\t\t\t\t\t\t\t{timeFormat.format(night())}\n\t\t\t\t\t\t
\n\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{events.map((event) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t
Reset timersends in
\n\n\t\t\t
\n\n\t\t\t\n\t\t\t\tsource code\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nrender(() => , document.body);\n"],"names":["signalOptions","equals","a","b","runEffects","runQueue","STALE","PENDING","UNOWNED","owned","cleanups","context","owner","Owner","Transition","Listener","Updates","Effects","ExecCount","createSignal","value","options","s","observers","observerSlots","comparator","Object","assign","undefined","readSignal","bind","writeSignal","createRenderEffect","fn","updateComputation","createComputation","untrack","listener","onMount","runUserEffects","c","render","user","push","createEffect","this","sources","updates","runUpdates","lookUpstream","sSlot","length","sourceSlots","node","isComp","current","i","o","TransitionRunning","running","disposed","has","tState","state","pure","markDownstream","Error","cleanNode","time","nextValue","err","forEach","updatedAt","handleError","runComputation","init","runTop","suspense","inFallback","effects","ancestors","wait","res","e","completeUpdates","queue","userLength","ignore","source","pop","index","obs","n","error","cause","castError","createComponent","Comp","props","template","html","isCE","isSVG","create","t","document","createElement","innerHTML","content","firstChild","importNode","cloneNode","insert","parent","accessor","marker","initial","insertExpression","unwrapArray","multi","parentNode","toString","nodeType","data","createTextNode","cleanChildren","textContent","v","Array","isArray","array","currentArray","normalizeIncomingArray","appendNodes","bLength","aEnd","bEnd","aStart","bStart","after","nextSibling","map","insertBefore","remove","Map","set","get","sequence","replaceChild","reconcileArrays","appendChild","console","warn","normalized","unwrap","dynamic","len","item","prev","String","replacement","inserted","el","isParent","utc","Date","UTC","events","name","start","occurence","sequenceLabel","seq","HOURS","MINUTES","clone","date","getTime","abs","Math","sign","trunc","addYears","years","inst","setFullYear","getFullYear","differenceInYears","left","right","compareAsc","d","differenceInCalendarYears","result","addMonths","months","setMonth","getMonth","isLastDayOfMonth","endOfDay","month","setHours","endOfMonth","differenceInMonths","differenceInCalendarMonths","getDate","setDate","addDays","days","startOfDay","differenceInDays","compareLocalAsc","getTimezoneOffsetInMilliseconds","round","differenceInCalendarDays","addHours","hours","getHours","differenceInHours","differenceInX","addMinutes","minutes","setMinutes","getMinutes","differenceInMinutes","SECONDS","addSeconds","seconds","setSeconds","getSeconds","differenceInSeconds","diff","getMilliseconds","num","setUTCFullYear","calculateTime","from","u","leftpad","pad","amount","padStart","diffFormat","end","count","str","Occurence","now","event","next","createMemo","$now","ceil","getNextOccurence","renderSequenceLabel","labeled","_el$","_tmpl$","_$insert","_el$3","_tmpl$2","_el$4","_el$5","_el$6","timeFormat","Intl","DateTimeFormat","timeStyle","App","setNow","setTime","morning","setMorning","night","setNight","icon","setIcon","_now","zoned","utcToZonedTime","tz","offset","r","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","ingame","hour","controller","AbortController","interval","ms","signal","callback","timeline","currentTime","performance","frame","aborted","schedule","elapsed","roundedElapsed","delay","setTimeout","requestAnimationFrame","setMilliseconds","abort","_el$7","_tmpl$3","_el$9","_el$10","_el$14","_el$16","_el$18","_el$21","_el$24","_el$25","_el$29","_el$32","_el$33","_el$37","format","_$createComponent","_$effect","_$setAttribute","removeAttribute","setAttribute","code","element","disposer","detachedOwner","unowned","root","updateFn","createRoot","dispose","body"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/assets/index-ae7a86db.js b/assets/index-ae7a86db.js deleted file mode 100644 index c53c5c7..0000000 --- a/assets/index-ae7a86db.js +++ /dev/null @@ -1,2 +0,0 @@ -const e={equals:(e,t)=>e===t};let t=y;const n=1,s=2,r={owned:null,cleanups:null,context:null,owner:null};var o=null;let l=null,i=null,u=null,a=null,c=0;function f(t,n){const s={value:t,observers:null,observerSlots:null,comparator:(n=n?Object.assign({},e,n):e).equals||void 0};return[p.bind(s),e=>("function"==typeof e&&(e=e(s.value)),m(s,e))]}function d(e,t,s){b(v(e,t,!1,n))}function h(e){if(null===i)return e();const t=i;i=null;try{return e()}finally{i=t}}function g(e){!function(e,s,r){t=w;const o=v(e,s,!1,n);r&&r.render||(o.user=!0),a?a.push(o):b(o)}((()=>h(e)))}function p(){if(this.sources&&this.state)if(this.state===n)b(this);else{const e=u;u=null,S((()=>C(this)),!1),u=e}if(i){const e=this.observers?this.observers.length:0;i.sources?(i.sources.push(this),i.sourceSlots.push(e)):(i.sources=[this],i.sourceSlots=[e]),this.observers?(this.observers.push(i),this.observerSlots.push(i.sources.length-1)):(this.observers=[i],this.observerSlots=[i.sources.length-1])}return this.value}function m(e,t,s){let r=e.value;return e.comparator&&e.comparator(r,t)||(e.value=t,e.observers&&e.observers.length&&S((()=>{for(let t=0;t1e6)throw u=[],new Error}),!1)),t}function b(e){if(!e.fn)return;A(e);const t=o,s=i,r=c;i=o=e,function(e,t,s){let r;try{r=e.fn(t)}catch(o){return e.pure&&(e.state=n,e.owned&&e.owned.forEach(A),e.owned=null),e.updatedAt=s+1,T(o)}(!e.updatedAt||e.updatedAt<=s)&&(null!=e.updatedAt&&"observers"in e?m(e,r):e.value=r,e.updatedAt=s)}(e,e.value,r),i=s,o=t}function v(e,t,s,l=n,i){const u={fn:e,state:l,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:o,context:o?o.context:null,pure:s};return null===o||o!==r&&(o.owned?o.owned.push(u):o.owned=[u]),u}function D(e){if(0===e.state)return;if(e.state===s)return C(e);if(e.suspense&&h(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;r--)if((e=t[r]).state===n)b(e);else if(e.state===s){const n=u;u=null,S((()=>C(e,t[0])),!1),u=n}}function S(e,n){if(u)return e();let s=!1;n||(u=[]),a?s=!0:a=[],c++;try{const n=e();return function(e){u&&(y(u),u=null);if(e)return;const n=a;a=null,n.length&&S((()=>t(n)),!1)}(s),n}catch(r){s||(a=null),u=null,T(r)}}function y(e){for(let t=0;t=0;t--)A(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function T(e,t=o){const n=function(e){return e instanceof Error?e:new Error("string"==typeof e?e:"Unknown error",{cause:e})}(e);throw n}function x(e,t){return h((()=>e(t||{})))}function G(e,t,n){let s;const r=()=>{const t=document.createElement("template");return t.innerHTML=e,n?t.content.firstChild.firstChild:t.content.firstChild},o=t?()=>h((()=>document.importNode(s||(s=r()),!0))):()=>(s||(s=r())).cloneNode(!0);return o.cloneNode=o,o}function P(e,t,n,s){if(void 0===n||s||(s=[]),"function"!=typeof t)return I(e,t,s,n);d((s=>I(e,t(),s,n)),s)}function I(e,t,n,s,r){for(;"function"==typeof n;)n=n();if(t===n)return n;const o=typeof t,l=void 0!==s;if(e=l&&n[0]&&n[0].parentNode||e,"string"===o||"number"===o)if("number"===o&&(t=t.toString()),l){let r=n[0];r&&3===r.nodeType?r.data=t:r=document.createTextNode(t),n=k(e,n,s,r)}else n=""!==n&&"string"==typeof n?e.firstChild.data=t:e.textContent=t;else if(null==t||"boolean"===o)n=k(e,n,s);else{if("function"===o)return d((()=>{let r=t();for(;"function"==typeof r;)r=r();n=I(e,r,n,s)})),()=>n;if(Array.isArray(t)){const o=[],i=n&&Array.isArray(n);if(F(o,t,n,r))return d((()=>n=I(e,o,n,s,!0))),()=>n;if(0===o.length){if(n=k(e,n,s),l)return n}else i?0===n.length?Y(e,o,s):function(e,t,n){let s=n.length,r=t.length,o=s,l=0,i=0,u=t[r-1].nextSibling,a=null;for(;ls-i){const r=t[l];for(;i=0;o--){const l=t[o];if(r!==l){const t=l.parentNode===e;s||o?t&&l.remove():t?e.replaceChild(r,l):e.insertBefore(r,n)}else s=!0}}else e.insertBefore(r,n);return[r]}const H=Date.UTC,N=[{name:"Daily tasks: Region",start:H(2023,7,29,12),occurence:864e5,sequence:["Stia","Retem","Aelio","Kvaris"]},{name:"GP Tree:",start:H(2022,8,3,12),occurence:864e5,sequence:["GPID4 (315pts)","GPID1 (625pts)","GPID8 (315pts)","GPID5 (315pts)","GPID2 (625pts)","GPID7 (315pts)","GPID6 (315pts)","GPID3 (625pts)","GPID6 (315pts)","GPID7 (315pts)","GPID0 & 4 (315pts & 625pts)","GPID5 (315pts)","GPID3 & 8 (315pts & 315pts)","GPID5 (625pts)","GPID4 (315pts)","GPID9 (315pts)","GPID6 (625pts)","GPID3 (315pts)","GPID0 (315pts)","GPID7 (625pts)","GPID2 (315pts)","GPID1 (315pts)","GPID8 (625pts)","GPID1 (315pts)","GPID2 (315pts)","GPID9 (625pts)","GPID0 (625pts)","GPID9 (315pts)"]},{name:"Daily free SG scratch",start:H(2023,7,29,8),occurence:864e5},{name:"Lookbook SG",start:H(2023,7,29,15),occurence:864e5},{name:"Leciel Exploration buffs",start:H(2023,7,29,19),occurence:864e5},{name:"Treasure Shop",start:H(2023,7,29,3),occurence:864e5},{name:"Weekly tasks",start:H(2023,7,23,3),occurence:6048e5},{name:"Alliance tasks: Region",start:H(2023,1,1,3),occurence:6048e5,sequence:["Aelio","Retem","Kvaris","Stia"]},{name:"Alliance tasks: Augment",start:H(2023,1,22,3),occurence:24192e5,sequence:["Note A","Note B","Note C","Note D"]},{name:"Alliance tasks: Rare Enemy",start:H(2023,1,1,3),occurence:6048e5,sequence:["Silver","Gold"]},{name:"Alliance tasks: Field Race",start:H(2023,1,1,3),occurence:6048e5,sequence:["Dash","Board"]},{name:"Alliance tasks: Task",start:H(2023,1,1,3),occurence:6048e5,sequence:["Kudos","Region Mags","Battledia Yellow"]},{name:"ARKS Records",start:H(2023,7,23,2),occurence:6048e5}],q=36e5,B=e=>new Date(e.getTime()),U=Math.abs,z=Math.sign,R=Math.trunc,E=(e,t)=>{const n=B(e);return n.setFullYear(n.getFullYear()+t),n},K=(e,t)=>{const n=B(e),s=B(t),r=se(e,t),o=U(((e,t)=>e.getFullYear()-t.getFullYear())(e,t));n.setFullYear(1584),s.setFullYear(1584);const l=r*(o-+(se(n,s)===-r));return 0===l?0:l},j=(e,t)=>{const n=B(e);return n.setMonth(n.getMonth()+t),n},L=e=>_(e).getTime()===(e=>{const t=B(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t})(e).getTime(),O=(e,t)=>{const n=B(e),s=se(e,t),r=U(((e,t)=>12*(e.getFullYear()-t.getFullYear())+(e.getMonth()-t.getMonth()))(e,t));let o;if(r<1)o=0;else{1===n.getMonth()&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-s*r);o=s*(r-+((!L(n)||1!==r||1!==se(n,t))&&se(n,t)===-s))}return 0===o?0:o},W=(e,t)=>{const n=B(e);return n.setDate(n.getDate()+t),n},$=e=>{const t=B(e);return t.setHours(0,0,0,0),t},_=e=>{const t=B(e);return t.setHours(23,59,59,999),t},J=(e,t)=>{const n=B(e),s=re(e,t),r=U(((e,t)=>{const n=e.getTime()-le(e),s=t.getTime()-le(t);return Math.round((n-s)/864e5)})(e,t));n.setDate(n.getDate()-s*r);const o=s*(r-+(re(n,t)===-s));return 0===o?0:o},Q=(e,t)=>V(e,e.getHours()+t),V=(e,t)=>{const n=B(e);return n.setHours(t),n},X=(e,t)=>oe(e,t,q),Z=(e,t)=>{const n=B(e);return n.setMinutes(n.getMinutes()+t),n},ee=(e,t)=>oe(e,t,6e4),te=(e,t)=>{const n=B(e);return n.setSeconds(n.getSeconds()+t),n},ne=(e,t)=>oe(e,t,1e3),se=(e,t)=>z(e.getTime()-t.getTime()),re=(e,t)=>{const n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return z(n)},oe=(e,t,n)=>R((e.getTime()-t.getTime())/n),le=e=>{const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()},ie=G(""),ue=G(' '),ae=G('

NGS World Time

Current time:
Day (06:00 AM):(in )
Night (08:00 PM):(in )

Reset timersends in

source code'),ce=(e,t,n)=>{let s=(e=>{const t=B(e);return t.setHours(t.getHours(),0,0,0),t})(V(t,n));return s.getTime()<=t.getTime()&&(s=W(s,1)),te(e,ne(s,t)/30)},fe=(e,t,n)=>(""+e).padStart(n,t),de=(e,t)=>{const{days:n,hours:s,minutes:r,seconds:o}=((e,t)=>{let n,s=e;return{years:n=K(e,t),months:n=O(t,s=E(s,n)),days:n=J(t,s=j(s,n)),hours:n=X(t,s=W(s,n)),minutes:n=ee(t,s=Q(s,n)),seconds:n=ne(t,s=Z(s,n))}})(e,t);let l="",i=!1;return(i||n>0)&&(l&&(l+=":"),l+=i?fe(n,"0",2):n,i=!0),(i||s>0)&&(l&&(l+=":"),l+=i?fe(s,"0",2):s,i=!0),l&&(l+=":"),l+=`${i?fe(r,"0",2):r}:${fe(o,"0",2)}`,l},he=({now:t,event:n})=>{const{name:s,start:r,occurence:o,sequence:l}=n,i=function(t,n,s){s=s?Object.assign({},e,s):e;const r=v(t,n,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=s.equals||void 0,b(r),p.bind(r)}((e=>{const n=t().getTime();return e&&e.date.getTime()>n?e:((e,t,n)=>{const s=e-t,r=Math.ceil(s/n);return{index:r,date:new Date(t+r*n)}})(n,r,o)}));return(()=>{const e=ie(),n=e.firstChild,r=n.firstChild,o=n.nextSibling;return P(r,s),P(n,l&&(()=>{const e=ue();return e.firstChild,P(e,(()=>l[i().index%l.length]),null),e})(),null),P(o,(()=>de(t(),i().date))),e})()},ge=new Intl.DateTimeFormat(void 0,{timeStyle:"short"}),pe=()=>{const[e,t]=f(new Date),[n,s]=f(new Date(0)),[r,o]=f(new Date(0)),[l,i]=f(new Date(0)),[u,a]=f("#icon-sun");return d((()=>{const t=e(),n=((e,t)=>{const n=36e5*-t,s=new Date(e.getTime()-n),r=new Date(0);return r.setFullYear(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()),r.setHours(s.getUTCHours(),s.getUTCMinutes(),s.getUTCSeconds(),s.getUTCMilliseconds()),r})(t,-7),r=ne(n,Z($(n),-38)),l=te($(n),r%2880*30),u=l.getHours();s(l),o(ce(t,l,6)),i(ce(t,l,20)),a(u<6||u>=20?"#icon-moon":"#icon-sun")})),g((()=>{const e=new AbortController;return((e,t,n)=>{const s=document.timeline?document.timeline.currentTime:performance.now(),r=e=>{t.aborted||(n(e),o(e))},o=t=>{const n=t-s,o=Math.round(n/e)*e,l=s+o+e-performance.now();setTimeout((()=>requestAnimationFrame(r)),l)};o(s)})(1e3,e.signal,(()=>{const e=new Date;e.setMilliseconds(0),t(e)})),()=>e.abort()})),(()=>{const t=ae(),s=t.firstChild.nextSibling,o=s.firstChild,i=o.firstChild.firstChild.nextSibling.firstChild,a=i.nextSibling.firstChild,c=o.nextSibling.firstChild,f=c.firstChild.nextSibling.firstChild,h=f.firstChild.nextSibling;h.nextSibling;const g=f.nextSibling,p=c.nextSibling.firstChild.nextSibling.firstChild,m=p.firstChild.nextSibling;m.nextSibling;const b=p.nextSibling,v=s.nextSibling.nextSibling.firstChild.nextSibling;return P(i,(()=>ge.format(n()))),P(f,(()=>de(e(),r())),h),P(g,(()=>ge.format(r()))),P(p,(()=>de(e(),l())),m),P(b,(()=>ge.format(l()))),P(v,(()=>N.map((t=>x(he,{now:e,event:t}))))),d((()=>{return e=a,t="href",void(null==(n=u())?e.removeAttribute(t):e.setAttribute(t,n));var e,t,n})),t})()};!function(e,t,n,s={}){let l;(function(e,t){const n=i,s=o,l=0===e.length,u=void 0===t?s:t,a=l?r:{owned:null,cleanups:null,context:u?u.context:null,owner:u},c=l?e:()=>e((()=>h((()=>A(a)))));o=a,i=null;try{return S(c,!0)}finally{i=n,o=s}})((s=>{l=s,t===document?e():P(t,e(),t.firstChild?null:void 0,n)}),s.owner)}((()=>x(pe,{})),document.body); -//# sourceMappingURL=index-ae7a86db.js.map diff --git a/index.html b/index.html index db39ec1..8ab6c53 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ NGS World Time - +