From 56c0514d02eb9c13e9f26b5069bcf51cc4e39c48 Mon Sep 17 00:00:00 2001 From: CI Date: Sun, 21 Dec 2025 00:16:11 +0000 Subject: [PATCH] deploy --- 404.html | 1 + CNAME | 1 + assets/index-Bmabhb_D.css | 1 + assets/index-CO5bRgec.js | 1 + data/items.json | 144 ++++++++++++++ data/nodes.json | 331 +++++++++++++++++++++++++++++++++ data/zones.json | 381 ++++++++++++++++++++++++++++++++++++++ index.html | 30 +++ 8 files changed, 890 insertions(+) create mode 120000 404.html create mode 100644 CNAME create mode 100644 assets/index-Bmabhb_D.css create mode 100644 assets/index-CO5bRgec.js create mode 100644 data/items.json create mode 100644 data/nodes.json create mode 100644 data/zones.json create mode 100644 index.html diff --git a/404.html b/404.html new file mode 120000 index 0000000..64233a9 --- /dev/null +++ b/404.html @@ -0,0 +1 @@ +index.html \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..a680088 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +dol.yht.one diff --git a/assets/index-Bmabhb_D.css b/assets/index-Bmabhb_D.css new file mode 100644 index 0000000..1b838ea --- /dev/null +++ b/assets/index-Bmabhb_D.css @@ -0,0 +1 @@ +@charset "UTF-8";*{box-sizing:border-box;font-family:Roboto,sans-serif;font-size:16px;font-weight:400;color:#eaeaea}body{background-color:#2a2a2a;margin:0;padding:0}#app{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem;font-weight:400}@keyframes pulsing-a636ed1c{0%{background-color:#ffffff0d}50%{background-color:#ffffff13}to{background-color:#ffffff0d}}.node[data-v-a636ed1c]{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;width:100%;min-height:6rem;border:1px solid #fff;padding:.5rem;border-radius:.25rem;content-visibility:auto}.node .location-info[data-v-a636ed1c]{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:center}.node.active[data-v-a636ed1c]{animation:infinite pulsing-a636ed1c 6s}.node .timer[data-v-a636ed1c]{min-width:7rem;font-size:2rem;display:flex;height:100%;flex-direction:column;justify-content:center;align-items:center}.node .job[data-v-a636ed1c]{display:flex;justify-content:center;align-items:center}.node .job .icon[data-v-a636ed1c]{width:3rem;height:3rem}.node .job .icon img[data-v-a636ed1c]{width:100%;height:100%}.node .aetheryte[data-v-a636ed1c]{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:.25rem;font-size:1.5rem;border-radius:.75rem;padding:.35rem 1rem;background-color:#0003}.node .aetheryte .icon[data-v-a636ed1c]{width:3rem}.node .aetheryte .icon img[data-v-a636ed1c]{width:100%;height:100%;object-fit:fill}.node .aetheryte .info[data-v-a636ed1c]{display:flex;flex-direction:column;justify-content:center;align-items:start;gap:.1rem;line-height:1}.node .aetheryte .info .zone-name[data-v-a636ed1c]{font-size:.75rem}.node .aetheryte .info .aetheryte-name[data-v-a636ed1c]{font-size:1.1rem}.node .aetheryte .info .coords[data-v-a636ed1c]{padding-top:.15rem}.node .items[data-v-a636ed1c]{display:flex;flex-direction:column;justify-content:center;align-items:start;gap:.1rem}.node-list[data-v-35ea1fd0]{display:flex;flex-direction:column;gap:.33rem;padding-block:.5rem;padding-inline:.25rem}section[data-v-fc9f5c52]{display:flex;flex-direction:column;gap:1rem;padding-block:1rem;padding-inline:.25rem}section details[data-v-fc9f5c52]{background-color:#1f1f1f;display:flex;flex-direction:column;border-radius:.25rem;padding:1rem;gap:.5rem;position:relative}section details[data-v-fc9f5c52]:before{position:absolute;right:1rem;top:1rem;width:1.5rem;height:1.5rem;display:flex;justify-content:center;align-content:center;content:"▶";pointer-events:none;rotate:90deg;transition:rotate .25s}section details[open][data-v-fc9f5c52]:before{rotate:270deg}section details summary[data-v-fc9f5c52]{cursor:pointer;color:#fff;border:none;border-radius:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:1.25rem}section details section[data-v-fc9f5c52]{display:flex;flex-direction:row;gap:2rem;flex-wrap:wrap}section details section label[data-v-fc9f5c52]{display:flex;gap:.5rem;flex-direction:column}section details section label.horizontal[data-v-fc9f5c52]{flex-direction:row;gap:.2rem}section details section label input[type=number][data-v-fc9f5c52]{padding:.5rem;border:1px solid #fff;background-color:transparent;color:#fff;border-radius:.25rem;width:5rem;text-align:start}.github-logo[data-v-abcb3caa]{width:var(--80f95432);height:var(--80f95432)}nav[data-v-5cc282e7]{background-color:#1f1f1f;width:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-inline:1rem}nav .current-eorzea-time[data-v-5cc282e7]{font-size:3rem}nav .top-bar-menu[data-v-5cc282e7]{display:flex;gap:1rem;flex-direction:row}nav .filters-button[data-v-5cc282e7]{display:flex;padding:.5rem;border:1px solid #fff;background-color:transparent;cursor:pointer;width:max-content;white-space:nowrap}nav .filters-button.active[data-v-5cc282e7]{background-color:#ffffff1a}footer[data-v-5cc282e7]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1rem .25rem;gap:.5rem}footer p[data-v-5cc282e7]{margin:0} diff --git a/assets/index-CO5bRgec.js b/assets/index-CO5bRgec.js new file mode 100644 index 0000000..17f2446 --- /dev/null +++ b/assets/index-CO5bRgec.js @@ -0,0 +1 @@ +var Hr=Object.defineProperty;var Ur=(e,t,n)=>t in e?Hr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var W=(e,t,n)=>Ur(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();function Sn(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const H={},Xe=[],Te=()=>{},Br=()=>!1,Kr=/^on[^a-z]/,Yt=e=>Kr.test(e),Mn=e=>e.startsWith("onUpdate:"),Q=Object.assign,Pn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Wr=Object.prototype.hasOwnProperty,P=(e,t)=>Wr.call(e,t),A=Array.isArray,Ze=e=>kt(e)==="[object Map]",Vs=e=>kt(e)==="[object Set]",$=e=>typeof e=="function",q=e=>typeof e=="string",Ln=e=>typeof e=="symbol",B=e=>e!==null&&typeof e=="object",Js=e=>B(e)&&$(e.then)&&$(e.catch),qs=Object.prototype.toString,kt=e=>qs.call(e),Vr=e=>kt(e).slice(8,-1),Ys=e=>kt(e)==="[object Object]",jn=e=>q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pt=Sn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Xt=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Jr=/-(\w)/g,we=Xt(e=>e.replace(Jr,(t,n)=>n?n.toUpperCase():"")),qr=/\B([A-Z])/g,nt=Xt(e=>e.replace(qr,"-$1").toLowerCase()),Zt=Xt(e=>e.charAt(0).toUpperCase()+e.slice(1)),an=Xt(e=>e?`on${Zt(e)}`:""),Ut=(e,t)=>!Object.is(e,t),Lt=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},gn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let cs;const _n=()=>cs||(cs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Rn(e){if(A(e)){const t={};for(let n=0;n{if(n){const s=n.split(kr);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Tt(e){let t="";if(q(e))t=e;else if(A(e))for(let n=0;nq(e)?e:e==null?"":A(e)||B(e)&&(e.toString===qs||!$(e.toString))?JSON.stringify(e,Xs,2):String(e),Xs=(e,t)=>t&&t.__v_isRef?Xs(e,t.value):Ze(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:Vs(t)?{[`Set(${t.size})`]:[...t.values()]}:B(t)&&!A(t)&&!Ys(t)?String(t):t;let fe;class eo{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=fe,!t&&fe&&(this.index=(fe.scopes||(fe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=fe;try{return fe=this,t()}finally{fe=n}}}on(){fe=this}off(){fe=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Zs=e=>(e.w&Pe)>0,Qs=e=>(e.n&Pe)>0,so=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(g==="length"||g>=f)&&l.push(a)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":A(e)?jn(n)&&l.push(i.get("length")):(l.push(i.get(We)),Ze(e)&&l.push(i.get(Tn)));break;case"delete":A(e)||(l.push(i.get(We)),Ze(e)&&l.push(i.get(Tn)));break;case"set":Ze(e)&&l.push(i.get(We));break}if(l.length===1)l[0]&&vn(l[0]);else{const f=[];for(const a of l)a&&f.push(...a);vn(zn(f))}}function vn(e,t){const n=A(e)?e:[...e];for(const s of n)s.computed&&us(s);for(const s of n)s.computed||us(s)}function us(e,t){(e!==ae||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const oo=Sn("__proto__,__v_isRef,__isVue"),tr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ln)),io=Hn(),lo=Hn(!1,!0),co=Hn(!0),as=fo();function fo(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=L(this);for(let o=0,i=this.length;o{e[t]=function(...n){st();const s=L(this)[t].apply(this,n);return rt(),s}}),e}function uo(e){const t=L(this);return re(t,"has",e),t.hasOwnProperty(e)}function Hn(e=!1,t=!1){return function(s,r,o){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&o===(e?t?Ao:ir:t?or:rr).get(s))return s;const i=A(s);if(!e){if(i&&P(as,r))return Reflect.get(as,r,o);if(r==="hasOwnProperty")return uo}const l=Reflect.get(s,r,o);return(Ln(r)?tr.has(r):oo(r))||(e||re(s,"get",r),t)?l:ne(l)?i&&jn(r)?l:l.value:B(l)?e?lr(l):Kn(l):l}}const ao=nr(),ho=nr(!0);function nr(e=!1){return function(n,s,r,o){let i=n[s];if(pt(i)&&ne(i)&&!ne(r))return!1;if(!e&&(!wn(r)&&!pt(r)&&(i=L(i),r=L(r)),!A(n)&&ne(i)&&!ne(r)))return i.value=r,!0;const l=A(n)&&jn(s)?Number(s)e,Qt=e=>Reflect.getPrototypeOf(e);function Ct(e,t,n=!1,s=!1){e=e.__v_raw;const r=L(e),o=L(t);n||(t!==o&&re(r,"get",t),re(r,"get",o));const{has:i}=Qt(r),l=s?Un:n?Jn:Vn;if(i.call(r,t))return l(e.get(t));if(i.call(r,o))return l(e.get(o));e!==r&&e.get(t)}function Ot(e,t=!1){const n=this.__v_raw,s=L(n),r=L(e);return t||(e!==r&&re(s,"has",e),re(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function $t(e,t=!1){return e=e.__v_raw,!t&&re(L(e),"iterate",We),Reflect.get(e,"size",e)}function ds(e){e=L(e);const t=L(this);return Qt(t).has.call(t,e)||(t.add(e),Ee(t,"add",e,e)),this}function hs(e,t){t=L(t);const n=L(this),{has:s,get:r}=Qt(n);let o=s.call(n,e);o||(e=L(e),o=s.call(n,e));const i=r.call(n,e);return n.set(e,t),o?Ut(t,i)&&Ee(n,"set",e,t):Ee(n,"add",e,t),this}function ps(e){const t=L(this),{has:n,get:s}=Qt(t);let r=n.call(t,e);r||(e=L(e),r=n.call(t,e)),s&&s.call(t,e);const o=t.delete(e);return r&&Ee(t,"delete",e,void 0),o}function ms(){const e=L(this),t=e.size!==0,n=e.clear();return t&&Ee(e,"clear",void 0,void 0),n}function Ft(e,t){return function(s,r){const o=this,i=o.__v_raw,l=L(i),f=t?Un:e?Jn:Vn;return!e&&re(l,"iterate",We),i.forEach((a,g)=>s.call(r,f(a),f(g),o))}}function St(e,t,n){return function(...s){const r=this.__v_raw,o=L(r),i=Ze(o),l=e==="entries"||e===Symbol.iterator&&i,f=e==="keys"&&i,a=r[e](...s),g=n?Un:t?Jn:Vn;return!t&&re(o,"iterate",f?Tn:We),{next(){const{value:T,done:w}=a.next();return w?{value:T,done:w}:{value:l?[g(T[0]),g(T[1])]:g(T),done:w}},[Symbol.iterator](){return this}}}}function Oe(e){return function(...t){return e==="delete"?!1:this}}function yo(){const e={get(o){return Ct(this,o)},get size(){return $t(this)},has:Ot,add:ds,set:hs,delete:ps,clear:ms,forEach:Ft(!1,!1)},t={get(o){return Ct(this,o,!1,!0)},get size(){return $t(this)},has:Ot,add:ds,set:hs,delete:ps,clear:ms,forEach:Ft(!1,!0)},n={get(o){return Ct(this,o,!0)},get size(){return $t(this,!0)},has(o){return Ot.call(this,o,!0)},add:Oe("add"),set:Oe("set"),delete:Oe("delete"),clear:Oe("clear"),forEach:Ft(!0,!1)},s={get(o){return Ct(this,o,!0,!0)},get size(){return $t(this,!0)},has(o){return Ot.call(this,o,!0)},add:Oe("add"),set:Oe("set"),delete:Oe("delete"),clear:Oe("clear"),forEach:Ft(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=St(o,!1,!1),n[o]=St(o,!0,!1),t[o]=St(o,!1,!0),s[o]=St(o,!0,!0)}),[e,n,t,s]}const[To,vo,wo,xo]=yo();function Bn(e,t){const n=t?e?xo:wo:e?vo:To;return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(P(n,r)&&r in s?n:s,r,o)}const No={get:Bn(!1,!1)},Eo={get:Bn(!1,!0)},Io={get:Bn(!0,!1)},rr=new WeakMap,or=new WeakMap,ir=new WeakMap,Ao=new WeakMap;function Co(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Oo(e){return e.__v_skip||!Object.isExtensible(e)?0:Co(Vr(e))}function Kn(e){return pt(e)?e:Wn(e,!1,sr,No,rr)}function $o(e){return Wn(e,!1,bo,Eo,or)}function lr(e){return Wn(e,!0,_o,Io,ir)}function Wn(e,t,n,s,r){if(!B(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=Oo(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return r.set(e,l),l}function Qe(e){return pt(e)?Qe(e.__v_raw):!!(e&&e.__v_isReactive)}function pt(e){return!!(e&&e.__v_isReadonly)}function wn(e){return!!(e&&e.__v_isShallow)}function cr(e){return Qe(e)||pt(e)}function L(e){const t=e&&e.__v_raw;return t?L(t):e}function fr(e){return Bt(e,"__v_skip",!0),e}const Vn=e=>B(e)?Kn(e):e,Jn=e=>B(e)?lr(e):e;function Fo(e){Fe&&ae&&(e=L(e),er(e.dep||(e.dep=zn())))}function So(e,t){e=L(e);const n=e.dep;n&&vn(n)}function ne(e){return!!(e&&e.__v_isRef===!0)}function Mo(e){return ne(e)?e.value:e}const Po={get:(e,t,n)=>Mo(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ne(r)&&!ne(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ur(e){return Qe(e)?e:new Proxy(e,Po)}class Lo{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Dn(t,()=>{this._dirty||(this._dirty=!0,So(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=L(this);return Fo(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function jo(e,t,n=!1){let s,r;const o=$(e);return o?(s=e,r=Te):(s=e.get,r=e.set),new Lo(s,r,o||!r,n)}function Se(e,t,n,s){let r;try{r=s?e(...s):e()}catch(o){Gt(o,t,n)}return r}function pe(e,t,n,s){if($(e)){const o=Se(e,t,n,s);return o&&Js(o)&&o.catch(i=>{Gt(i,t,n)}),o}const r=[];for(let o=0;o>>1;gt(Z[s])ye&&Z.splice(t,1)}function Uo(e){A(e)?Ge.push(...e):(!Ne||!Ne.includes(e,e.allowRecurse?Ue+1:Ue))&&Ge.push(e),dr()}function gs(e,t=mt?ye+1:0){for(;tgt(n)-gt(s)),Ue=0;Uee.id==null?1/0:e.id,Bo=(e,t)=>{const n=gt(e)-gt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function pr(e){xn=!1,mt=!0,Z.sort(Bo);try{for(ye=0;yeq(O)?O.trim():O)),T&&(r=n.map(gn))}let l,f=s[l=an(t)]||s[l=an(we(t))];!f&&o&&(f=s[l=an(nt(t))]),f&&pe(f,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,pe(a,e,6,r)}}function mr(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!$(e)){const f=a=>{const g=mr(a,t,!0);g&&(l=!0,Q(i,g))};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!o&&!l?(B(e)&&s.set(e,null),null):(A(o)?o.forEach(f=>i[f]=null):Q(i,o),B(e)&&s.set(e,i),i)}function en(e,t){return!e||!Yt(t)?!1:(t=t.slice(2).replace(/Once$/,""),P(e,t[0].toLowerCase()+t.slice(1))||P(e,nt(t))||P(e,t))}let ie=null,tn=null;function Kt(e){const t=ie;return ie=e,tn=e&&e.type.__scopeId||null,t}function nn(e){tn=e}function sn(){tn=null}function Wo(e,t=ie,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Os(-1);const o=Kt(t);let i;try{i=e(...r)}finally{Kt(o),s._d&&Os(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function _s(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:o,propsOptions:[i],slots:l,attrs:f,emit:a,render:g,renderCache:T,data:w,setupState:O,ctx:U,inheritAttrs:F}=e;let D,V;const J=Kt(e);try{if(n.shapeFlag&4){const S=r||s;D=be(g.call(S,S,T,o,O,w,U)),V=f}else{const S=t;D=be(S.length>1?S(o,{attrs:f,slots:l,emit:a}):S(o,null)),V=t.props?f:Vo(f)}}catch(S){ht.length=0,Gt(S,e,1),D=ve(Je)}let X=D;if(V&&F!==!1){const S=Object.keys(V),{shapeFlag:Ce}=X;S.length&&Ce&7&&(i&&S.some(Mn)&&(V=Jo(V,i)),X=et(X,V))}return n.dirs&&(X=et(X),X.dirs=X.dirs?X.dirs.concat(n.dirs):n.dirs),n.transition&&(X.transition=n.transition),D=X,Kt(J),D}const Vo=e=>{let t;for(const n in e)(n==="class"||n==="style"||Yt(n))&&((t||(t={}))[n]=e[n]);return t},Jo=(e,t)=>{const n={};for(const s in e)(!Mn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function qo(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:f}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&f>=0){if(f&1024)return!0;if(f&16)return s?bs(s,i,a):!!i;if(f&8){const g=t.dynamicProps;for(let T=0;Te.__isSuspense;function Xo(e,t){t&&t.pendingBranch?A(e)?t.effects.push(...e):t.effects.push(e):Uo(e)}function Zo(e,t){return kn(e,null,{flush:"post"})}const Mt={};function dn(e,t,n){return kn(e,t,n)}function kn(e,t,{immediate:n,deep:s,flush:r,onTrack:o,onTrigger:i}=H){var l;const f=no()===((l=Y)==null?void 0:l.scope)?Y:null;let a,g=!1,T=!1;if(ne(e)?(a=()=>e.value,g=wn(e)):Qe(e)?(a=()=>e,s=!0):A(e)?(T=!0,g=e.some(S=>Qe(S)||wn(S)),a=()=>e.map(S=>{if(ne(S))return S.value;if(Qe(S))return Ke(S);if($(S))return Se(S,f,2)})):$(e)?t?a=()=>Se(e,f,2):a=()=>{if(!(f&&f.isUnmounted))return w&&w(),pe(e,f,3,[O])}:a=Te,t&&s){const S=a;a=()=>Ke(S())}let w,O=S=>{w=J.onStop=()=>{Se(S,f,4)}},U;if(bt)if(O=Te,t?n&&pe(t,f,3,[a(),T?[]:void 0,O]):a(),r==="sync"){const S=Yi();U=S.__watcherHandles||(S.__watcherHandles=[])}else return Te;let F=T?new Array(e.length).fill(Mt):Mt;const D=()=>{if(J.active)if(t){const S=J.run();(s||g||(T?S.some((Ce,ot)=>Ut(Ce,F[ot])):Ut(S,F)))&&(w&&w(),pe(t,f,3,[S,F===Mt?void 0:T&&F[0]===Mt?[]:F,O]),F=S)}else J.run()};D.allowRecurse=!!t;let V;r==="sync"?V=D:r==="post"?V=()=>se(D,f&&f.suspense):(D.pre=!0,f&&(D.id=f.uid),V=()=>Yn(D));const J=new Dn(a,V);t?n?D():F=J.run():r==="post"?se(J.run.bind(J),f&&f.suspense):J.run();const X=()=>{J.stop(),f&&f.scope&&Pn(f.scope.effects,J)};return U&&U.push(X),X}function Qo(e,t,n){const s=this.proxy,r=q(e)?e.includes(".")?gr(s,e):()=>s[e]:e.bind(s,s);let o;$(t)?o=t:(o=t.handler,n=t);const i=Y;tt(this);const l=kn(r,o.bind(s),n);return i?tt(i):Ve(),l}function gr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{Ke(n,t)});else if(Ys(e))for(const n in e)Ke(e[n],t);return e}function ys(e,t){const n=ie;if(n===null)return e;const s=cn(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let o=0;o!!e.type.__asyncLoader,_r=e=>e.type.__isKeepAlive;function Go(e,t){br(e,"a",t)}function ei(e,t){br(e,"da",t)}function br(e,t,n=Y){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(rn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)_r(r.parent.vnode)&&ti(s,t,n,r),r=r.parent}}function ti(e,t,n,s){const r=rn(t,e,s,!0);Xn(()=>{Pn(s[t],r)},n)}function rn(e,t,n=Y,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;st(),tt(n);const l=pe(t,n,e,i);return Ve(),rt(),l});return s?r.unshift(o):r.push(o),o}}const Ie=e=>(t,n=Y)=>(!bt||e==="sp")&&rn(e,(...s)=>t(...s),n),ni=Ie("bm"),yr=Ie("m"),si=Ie("bu"),ri=Ie("u"),oi=Ie("bum"),Xn=Ie("um"),ii=Ie("sp"),li=Ie("rtg"),ci=Ie("rtc");function fi(e,t=Y){rn("ec",e,t)}const ui="components";function Rt(e,t){return di(ui,e,!0,t)||e}const ai=Symbol.for("v-ndc");function di(e,t,n=!0,s=!1){const r=ie||Y;if(r){const o=r.type;{const l=Wi(o,!1);if(l&&(l===t||l===we(t)||l===Zt(we(t))))return o}const i=Ts(r[e]||o[e],t)||Ts(r.appContext[e],t);return!i&&s?o:i}}function Ts(e,t){return e&&(e[t]||e[we(t)]||e[Zt(we(t))])}function Tr(e,t,n,s){let r;const o=n;if(A(e)||q(e)){r=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o));else{const i=Object.keys(e);r=new Array(i.length);for(let l=0,f=i.length;le?Mr(e)?cn(e)||e.proxy:Nn(e.parent):null,dt=Q(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Nn(e.parent),$root:e=>Nn(e.root),$emit:e=>e.emit,$options:e=>wr(e),$forceUpdate:e=>e.f||(e.f=()=>Yn(e.update)),$nextTick:e=>e.n||(e.n=zo.bind(e.proxy)),$watch:e=>Qo.bind(e)}),hn=(e,t)=>e!==H&&!e.__isScriptSetup&&P(e,t),hi={get({_:e},t){const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:f}=e;let a;if(t[0]!=="$"){const O=i[t];if(O!==void 0)switch(O){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(hn(s,t))return i[t]=1,s[t];if(r!==H&&P(r,t))return i[t]=2,r[t];if((a=e.propsOptions[0])&&P(a,t))return i[t]=3,o[t];if(n!==H&&P(n,t))return i[t]=4,n[t];En&&(i[t]=0)}}const g=dt[t];let T,w;if(g)return t==="$attrs"&&re(e,"get",t),g(e);if((T=l.__cssModules)&&(T=T[t]))return T;if(n!==H&&P(n,t))return i[t]=4,n[t];if(w=f.config.globalProperties,P(w,t))return w[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return hn(r,t)?(r[t]=n,!0):s!==H&&P(s,t)?(s[t]=n,!0):P(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},i){let l;return!!n[i]||e!==H&&P(e,i)||hn(t,i)||(l=o[0])&&P(l,i)||P(s,i)||P(dt,i)||P(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:P(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function vs(e){return A(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let En=!0;function pi(e){const t=wr(e),n=e.proxy,s=e.ctx;En=!1,t.beforeCreate&&ws(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:f,inject:a,created:g,beforeMount:T,mounted:w,beforeUpdate:O,updated:U,activated:F,deactivated:D,beforeDestroy:V,beforeUnmount:J,destroyed:X,unmounted:S,render:Ce,renderTracked:ot,renderTriggered:xt,errorCaptured:Le,serverPrefetch:fn,expose:je,inheritAttrs:it,components:Nt,directives:Et,filters:un}=t;if(a&&mi(a,s,null),i)for(const K in i){const R=i[K];$(R)&&(s[K]=R.bind(n))}if(r){const K=r.call(n,n);B(K)&&(e.data=Kn(K))}if(En=!0,o)for(const K in o){const R=o[K],Re=$(R)?R.bind(n,n):$(R.get)?R.get.bind(n,n):Te,It=!$(R)&&$(R.set)?R.set.bind(n):Te,ze=Ji({get:Re,set:It});Object.defineProperty(s,K,{enumerable:!0,configurable:!0,get:()=>ze.value,set:me=>ze.value=me})}if(l)for(const K in l)vr(l[K],s,n,K);if(f){const K=$(f)?f.call(n):f;Reflect.ownKeys(K).forEach(R=>{vi(R,K[R])})}g&&ws(g,e,"c");function G(K,R){A(R)?R.forEach(Re=>K(Re.bind(n))):R&&K(R.bind(n))}if(G(ni,T),G(yr,w),G(si,O),G(ri,U),G(Go,F),G(ei,D),G(fi,Le),G(ci,ot),G(li,xt),G(oi,J),G(Xn,S),G(ii,fn),A(je))if(je.length){const K=e.exposed||(e.exposed={});je.forEach(R=>{Object.defineProperty(K,R,{get:()=>n[R],set:Re=>n[R]=Re})})}else e.exposed||(e.exposed={});Ce&&e.render===Te&&(e.render=Ce),it!=null&&(e.inheritAttrs=it),Nt&&(e.components=Nt),Et&&(e.directives=Et)}function mi(e,t,n=Te){A(e)&&(e=In(e));for(const s in e){const r=e[s];let o;B(r)?"default"in r?o=zt(r.from||s,r.default,!0):o=zt(r.from||s):o=zt(r),ne(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function ws(e,t,n){pe(A(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function vr(e,t,n,s){const r=s.includes(".")?gr(n,s):()=>n[s];if(q(e)){const o=t[e];$(o)&&dn(r,o)}else if($(e))dn(r,e.bind(n));else if(B(e))if(A(e))e.forEach(o=>vr(o,t,n,s));else{const o=$(e.handler)?e.handler.bind(n):t[e.handler];$(o)&&dn(r,o,e)}}function wr(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let f;return l?f=l:!r.length&&!n&&!s?f=t:(f={},r.length&&r.forEach(a=>Wt(f,a,i,!0)),Wt(f,t,i)),B(t)&&o.set(t,f),f}function Wt(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&Wt(e,o,n,!0),r&&r.forEach(i=>Wt(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=gi[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const gi={data:xs,props:Ns,emits:Ns,methods:at,computed:at,beforeCreate:ee,created:ee,beforeMount:ee,mounted:ee,beforeUpdate:ee,updated:ee,beforeDestroy:ee,beforeUnmount:ee,destroyed:ee,unmounted:ee,activated:ee,deactivated:ee,errorCaptured:ee,serverPrefetch:ee,components:at,directives:at,watch:bi,provide:xs,inject:_i};function xs(e,t){return t?e?function(){return Q($(e)?e.call(this,this):e,$(t)?t.call(this,this):t)}:t:e}function _i(e,t){return at(In(e),In(t))}function In(e){if(A(e)){const t={};for(let n=0;n1)return n&&$(t)?t.call(s&&s.proxy):t}}function wi(e,t,n,s=!1){const r={},o={};Bt(o,ln,1),e.propsDefaults=Object.create(null),Nr(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:$o(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function xi(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=L(r),[f]=e.propsOptions;let a=!1;if((s||i>0)&&!(i&16)){if(i&8){const g=e.vnode.dynamicProps;for(let T=0;T{f=!0;const[w,O]=Er(T,t,!0);Q(i,w),O&&l.push(...O)};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!o&&!f)return B(e)&&s.set(e,Xe),Xe;if(A(o))for(let g=0;g-1,O[1]=F<0||U-1||P(O,"default"))&&l.push(T)}}}const a=[i,l];return B(e)&&s.set(e,a),a}function Es(e){return e[0]!=="$"}function Is(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function As(e,t){return Is(e)===Is(t)}function Cs(e,t){return A(t)?t.findIndex(n=>As(n,e)):$(t)&&As(t,e)?0:-1}const Ir=e=>e[0]==="_"||e==="$stable",Zn=e=>A(e)?e.map(be):[be(e)],Ni=(e,t,n)=>{if(t._n)return t;const s=Wo((...r)=>Zn(t(...r)),n);return s._c=!1,s},Ar=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Ir(r))continue;const o=e[r];if($(o))t[r]=Ni(r,o,s);else if(o!=null){const i=Zn(o);t[r]=()=>i}}},Cr=(e,t)=>{const n=Zn(t);e.slots.default=()=>n},Ei=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=L(t),Bt(t,"_",n)):Ar(t,e.slots={})}else e.slots={},t&&Cr(e,t);Bt(e.slots,ln,1)},Ii=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=H;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(Q(r,t),!n&&l===1&&delete r._):(o=!t.$stable,Ar(t,r)),i=t}else t&&(Cr(e,t),i={default:1});if(o)for(const l in r)!Ir(l)&&!(l in i)&&delete r[l]};function Cn(e,t,n,s,r=!1){if(A(e)){e.forEach((w,O)=>Cn(w,t&&(A(t)?t[O]:t),n,s,r));return}if(jt(s)&&!r)return;const o=s.shapeFlag&4?cn(s.component)||s.component.proxy:s.el,i=r?null:o,{i:l,r:f}=e,a=t&&t.r,g=l.refs===H?l.refs={}:l.refs,T=l.setupState;if(a!=null&&a!==f&&(q(a)?(g[a]=null,P(T,a)&&(T[a]=null)):ne(a)&&(a.value=null)),$(f))Se(f,l,12,[i,g]);else{const w=q(f),O=ne(f);if(w||O){const U=()=>{if(e.f){const F=w?P(T,f)?T[f]:g[f]:f.value;r?A(F)&&Pn(F,o):A(F)?F.includes(o)||F.push(o):w?(g[f]=[o],P(T,f)&&(T[f]=g[f])):(f.value=[o],e.k&&(g[e.k]=f.value))}else w?(g[f]=i,P(T,f)&&(T[f]=i)):O&&(f.value=i,e.k&&(g[e.k]=i))};i?(U.id=-1,se(U,n)):U()}}}const se=Xo;function Ai(e){return Ci(e)}function Ci(e,t){const n=_n();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:f,setText:a,setElementText:g,parentNode:T,nextSibling:w,setScopeId:O=Te,insertStaticContent:U}=e,F=(c,u,d,h=null,p=null,b=null,v=!1,_=null,y=!!u.dynamicChildren)=>{if(c===u)return;c&&!ft(c,u)&&(h=At(c),me(c,p,b,!0),c=null),u.patchFlag===-2&&(y=!1,u.dynamicChildren=null);const{type:m,ref:E,shapeFlag:x}=u;switch(m){case on:D(c,u,d,h);break;case Je:V(c,u,d,h);break;case Dt:c==null&&J(u,d,h,v);break;case le:Nt(c,u,d,h,p,b,v,_,y);break;default:x&1?Ce(c,u,d,h,p,b,v,_,y):x&6?Et(c,u,d,h,p,b,v,_,y):(x&64||x&128)&&m.process(c,u,d,h,p,b,v,_,y,lt)}E!=null&&p&&Cn(E,c&&c.ref,b,u||c,!u)},D=(c,u,d,h)=>{if(c==null)s(u.el=l(u.children),d,h);else{const p=u.el=c.el;u.children!==c.children&&a(p,u.children)}},V=(c,u,d,h)=>{c==null?s(u.el=f(u.children||""),d,h):u.el=c.el},J=(c,u,d,h)=>{[c.el,c.anchor]=U(c.children,u,d,h,c.el,c.anchor)},X=({el:c,anchor:u},d,h)=>{let p;for(;c&&c!==u;)p=w(c),s(c,d,h),c=p;s(u,d,h)},S=({el:c,anchor:u})=>{let d;for(;c&&c!==u;)d=w(c),r(c),c=d;r(u)},Ce=(c,u,d,h,p,b,v,_,y)=>{v=v||u.type==="svg",c==null?ot(u,d,h,p,b,v,_,y):fn(c,u,p,b,v,_,y)},ot=(c,u,d,h,p,b,v,_)=>{let y,m;const{type:E,props:x,shapeFlag:I,transition:C,dirs:M}=c;if(y=c.el=i(c.type,b,x&&x.is,x),I&8?g(y,c.children):I&16&&Le(c.children,y,null,h,p,b&&E!=="foreignObject",v,_),M&&De(c,null,h,"created"),xt(y,c,c.scopeId,v,h),x){for(const j in x)j!=="value"&&!Pt(j)&&o(y,j,null,x[j],b,c.children,h,p,xe);"value"in x&&o(y,"value",null,x.value),(m=x.onVnodeBeforeMount)&&_e(m,h,c)}M&&De(c,null,h,"beforeMount");const z=(!p||p&&!p.pendingBranch)&&C&&!C.persisted;z&&C.beforeEnter(y),s(y,u,d),((m=x&&x.onVnodeMounted)||z||M)&&se(()=>{m&&_e(m,h,c),z&&C.enter(y),M&&De(c,null,h,"mounted")},p)},xt=(c,u,d,h,p)=>{if(d&&O(c,d),h)for(let b=0;b{for(let m=y;m{const _=u.el=c.el;let{patchFlag:y,dynamicChildren:m,dirs:E}=u;y|=c.patchFlag&16;const x=c.props||H,I=u.props||H;let C;d&&He(d,!1),(C=I.onVnodeBeforeUpdate)&&_e(C,d,u,c),E&&De(u,c,d,"beforeUpdate"),d&&He(d,!0);const M=p&&u.type!=="foreignObject";if(m?je(c.dynamicChildren,m,_,d,h,M,b):v||R(c,u,_,null,d,h,M,b,!1),y>0){if(y&16)it(_,u,x,I,d,h,p);else if(y&2&&x.class!==I.class&&o(_,"class",null,I.class,p),y&4&&o(_,"style",x.style,I.style,p),y&8){const z=u.dynamicProps;for(let j=0;j{C&&_e(C,d,u,c),E&&De(u,c,d,"updated")},h)},je=(c,u,d,h,p,b,v)=>{for(let _=0;_{if(d!==h){if(d!==H)for(const _ in d)!Pt(_)&&!(_ in h)&&o(c,_,d[_],null,v,u.children,p,b,xe);for(const _ in h){if(Pt(_))continue;const y=h[_],m=d[_];y!==m&&_!=="value"&&o(c,_,m,y,v,u.children,p,b,xe)}"value"in h&&o(c,"value",d.value,h.value)}},Nt=(c,u,d,h,p,b,v,_,y)=>{const m=u.el=c?c.el:l(""),E=u.anchor=c?c.anchor:l("");let{patchFlag:x,dynamicChildren:I,slotScopeIds:C}=u;C&&(_=_?_.concat(C):C),c==null?(s(m,d,h),s(E,d,h),Le(u.children,d,E,p,b,v,_,y)):x>0&&x&64&&I&&c.dynamicChildren?(je(c.dynamicChildren,I,d,p,b,v,_),(u.key!=null||p&&u===p.subTree)&&Or(c,u,!0)):R(c,u,d,E,p,b,v,_,y)},Et=(c,u,d,h,p,b,v,_,y)=>{u.slotScopeIds=_,c==null?u.shapeFlag&512?p.ctx.activate(u,d,h,v,y):un(u,d,h,p,b,v,y):ns(c,u,y)},un=(c,u,d,h,p,b,v)=>{const _=c.component=zi(c,h,p);if(_r(c)&&(_.ctx.renderer=lt),Hi(_),_.asyncDep){if(p&&p.registerDep(_,G),!c.el){const y=_.subTree=ve(Je);V(null,y,u,d)}return}G(_,c,u,d,p,b,v)},ns=(c,u,d)=>{const h=u.component=c.component;if(qo(c,u,d))if(h.asyncDep&&!h.asyncResolved){K(h,u,d);return}else h.next=u,Ho(h.update),h.update();else u.el=c.el,h.vnode=u},G=(c,u,d,h,p,b,v)=>{const _=()=>{if(c.isMounted){let{next:E,bu:x,u:I,parent:C,vnode:M}=c,z=E,j;He(c,!1),E?(E.el=M.el,K(c,E,v)):E=M,x&&Lt(x),(j=E.props&&E.props.onVnodeBeforeUpdate)&&_e(j,C,E,M),He(c,!0);const k=_s(c),ce=c.subTree;c.subTree=k,F(ce,k,T(ce.el),At(ce),c,p,b),E.el=k.el,z===null&&Yo(c,k.el),I&&se(I,p),(j=E.props&&E.props.onVnodeUpdated)&&se(()=>_e(j,C,E,M),p)}else{let E;const{el:x,props:I}=u,{bm:C,m:M,parent:z}=c,j=jt(u);He(c,!1),C&&Lt(C),!j&&(E=I&&I.onVnodeBeforeMount)&&_e(E,z,u),He(c,!0);{const k=c.subTree=_s(c);F(null,k,d,h,c,p,b),u.el=k.el}if(M&&se(M,p),!j&&(E=I&&I.onVnodeMounted)){const k=u;se(()=>_e(E,z,k),p)}(u.shapeFlag&256||z&&jt(z.vnode)&&z.vnode.shapeFlag&256)&&c.a&&se(c.a,p),c.isMounted=!0,u=d=h=null}},y=c.effect=new Dn(_,()=>Yn(m),c.scope),m=c.update=()=>y.run();m.id=c.uid,He(c,!0),m()},K=(c,u,d)=>{u.component=c;const h=c.vnode.props;c.vnode=u,c.next=null,xi(c,u.props,h,d),Ii(c,u.children,d),st(),gs(),rt()},R=(c,u,d,h,p,b,v,_,y=!1)=>{const m=c&&c.children,E=c?c.shapeFlag:0,x=u.children,{patchFlag:I,shapeFlag:C}=u;if(I>0){if(I&128){It(m,x,d,h,p,b,v,_,y);return}else if(I&256){Re(m,x,d,h,p,b,v,_,y);return}}C&8?(E&16&&xe(m,p,b),x!==m&&g(d,x)):E&16?C&16?It(m,x,d,h,p,b,v,_,y):xe(m,p,b,!0):(E&8&&g(d,""),C&16&&Le(x,d,h,p,b,v,_,y))},Re=(c,u,d,h,p,b,v,_,y)=>{c=c||Xe,u=u||Xe;const m=c.length,E=u.length,x=Math.min(m,E);let I;for(I=0;IE?xe(c,p,b,!0,!1,x):Le(u,d,h,p,b,v,_,y,x)},It=(c,u,d,h,p,b,v,_,y)=>{let m=0;const E=u.length;let x=c.length-1,I=E-1;for(;m<=x&&m<=I;){const C=c[m],M=u[m]=y?$e(u[m]):be(u[m]);if(ft(C,M))F(C,M,d,null,p,b,v,_,y);else break;m++}for(;m<=x&&m<=I;){const C=c[x],M=u[I]=y?$e(u[I]):be(u[I]);if(ft(C,M))F(C,M,d,null,p,b,v,_,y);else break;x--,I--}if(m>x){if(m<=I){const C=I+1,M=CI)for(;m<=x;)me(c[m],p,b,!0),m++;else{const C=m,M=m,z=new Map;for(m=M;m<=I;m++){const oe=u[m]=y?$e(u[m]):be(u[m]);oe.key!=null&&z.set(oe.key,m)}let j,k=0;const ce=I-M+1;let qe=!1,os=0;const ct=new Array(ce);for(m=0;m=ce){me(oe,p,b,!0);continue}let ge;if(oe.key!=null)ge=z.get(oe.key);else for(j=M;j<=I;j++)if(ct[j-M]===0&&ft(oe,u[j])){ge=j;break}ge===void 0?me(oe,p,b,!0):(ct[ge-M]=m+1,ge>=os?os=ge:qe=!0,F(oe,u[ge],d,null,p,b,v,_,y),k++)}const is=qe?Oi(ct):Xe;for(j=is.length-1,m=ce-1;m>=0;m--){const oe=M+m,ge=u[oe],ls=oe+1{const{el:b,type:v,transition:_,children:y,shapeFlag:m}=c;if(m&6){ze(c.component.subTree,u,d,h);return}if(m&128){c.suspense.move(u,d,h);return}if(m&64){v.move(c,u,d,lt);return}if(v===le){s(b,u,d);for(let x=0;x_.enter(b),p);else{const{leave:x,delayLeave:I,afterLeave:C}=_,M=()=>s(b,u,d),z=()=>{x(b,()=>{M(),C&&C()})};I?I(b,M,z):z()}else s(b,u,d)},me=(c,u,d,h=!1,p=!1)=>{const{type:b,props:v,ref:_,children:y,dynamicChildren:m,shapeFlag:E,patchFlag:x,dirs:I}=c;if(_!=null&&Cn(_,null,d,c,!0),E&256){u.ctx.deactivate(c);return}const C=E&1&&I,M=!jt(c);let z;if(M&&(z=v&&v.onVnodeBeforeUnmount)&&_e(z,u,c),E&6)Dr(c.component,d,h);else{if(E&128){c.suspense.unmount(d,h);return}C&&De(c,null,u,"beforeUnmount"),E&64?c.type.remove(c,u,d,p,lt,h):m&&(b!==le||x>0&&x&64)?xe(m,u,d,!1,!0):(b===le&&x&384||!p&&E&16)&&xe(y,u,d),h&&ss(c)}(M&&(z=v&&v.onVnodeUnmounted)||C)&&se(()=>{z&&_e(z,u,c),C&&De(c,null,u,"unmounted")},d)},ss=c=>{const{type:u,el:d,anchor:h,transition:p}=c;if(u===le){zr(d,h);return}if(u===Dt){S(c);return}const b=()=>{r(d),p&&!p.persisted&&p.afterLeave&&p.afterLeave()};if(c.shapeFlag&1&&p&&!p.persisted){const{leave:v,delayLeave:_}=p,y=()=>v(d,b);_?_(c.el,b,y):y()}else b()},zr=(c,u)=>{let d;for(;c!==u;)d=w(c),r(c),c=d;r(u)},Dr=(c,u,d)=>{const{bum:h,scope:p,update:b,subTree:v,um:_}=c;h&&Lt(h),p.stop(),b&&(b.active=!1,me(v,c,u,d)),_&&se(_,u),se(()=>{c.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&c.asyncDep&&!c.asyncResolved&&c.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},xe=(c,u,d,h=!1,p=!1,b=0)=>{for(let v=b;vc.shapeFlag&6?At(c.component.subTree):c.shapeFlag&128?c.suspense.next():w(c.anchor||c.el),rs=(c,u,d)=>{c==null?u._vnode&&me(u._vnode,null,null,!0):F(u._vnode||null,c,u,null,null,null,d),gs(),hr(),u._vnode=c},lt={p:F,um:me,m:ze,r:ss,mt:un,mc:Le,pc:R,pbc:je,n:At,o:e};return{render:rs,hydrate:void 0,createApp:Ti(rs)}}function He({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Or(e,t,n=!1){const s=e.children,r=t.children;if(A(s)&&A(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}const $i=e=>e.__isTeleport,le=Symbol.for("v-fgt"),on=Symbol.for("v-txt"),Je=Symbol.for("v-cmt"),Dt=Symbol.for("v-stc"),ht=[];let he=null;function te(e=!1){ht.push(he=e?null:[])}function Fi(){ht.pop(),he=ht[ht.length-1]||null}let _t=1;function Os(e){_t+=e}function $r(e){return e.dynamicChildren=_t>0?he||Xe:null,Fi(),_t>0&&he&&he.push(e),e}function de(e,t,n,s,r,o){return $r(N(e,t,n,s,r,o,!0))}function Jt(e,t,n,s,r){return $r(ve(e,t,n,s,r,!0))}function Si(e){return e?e.__v_isVNode===!0:!1}function ft(e,t){return e.type===t.type&&e.key===t.key}const ln="__vInternal",Fr=({key:e})=>e??null,Ht=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?q(e)||ne(e)||$(e)?{i:ie,r:e,k:t,f:!!n}:e:null);function N(e,t=null,n=null,s=0,r=null,o=e===le?0:1,i=!1,l=!1){const f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Fr(t),ref:t&&Ht(t),scopeId:tn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ie};return l?(Qn(f,n),o&128&&e.normalize(f)):n&&(f.shapeFlag|=q(n)?8:16),_t>0&&!i&&he&&(f.patchFlag>0||o&6)&&f.patchFlag!==32&&he.push(f),f}const ve=Mi;function Mi(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===ai)&&(e=Je),Si(e)){const l=et(e,t,!0);return n&&Qn(l,n),_t>0&&!o&&he&&(l.shapeFlag&6?he[he.indexOf(e)]=l:he.push(l)),l.patchFlag|=-2,l}if(Vi(e)&&(e=e.__vccOpts),t){t=Pi(t);let{class:l,style:f}=t;l&&!q(l)&&(t.class=Tt(l)),B(f)&&(cr(f)&&!A(f)&&(f=Q({},f)),t.style=Rn(f))}const i=q(e)?1:ko(e)?128:$i(e)?64:B(e)?4:$(e)?2:0;return N(e,t,n,s,r,i,o,!0)}function Pi(e){return e?cr(e)||ln in e?Q({},e):e:null}function et(e,t,n=!1){const{props:s,ref:r,patchFlag:o,children:i}=e,l=t?Li(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Fr(l),ref:t&&t.ref?n&&r?A(r)?r.concat(Ht(t)):[r,Ht(t)]:Ht(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==le?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&et(e.ssContent),ssFallback:e.ssFallback&&et(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Sr(e=" ",t=0){return ve(on,null,e,t)}function $s(e="",t=!1){return t?(te(),Jt(Je,null,e)):ve(Je,null,e)}function be(e){return e==null||typeof e=="boolean"?ve(Je):A(e)?ve(le,null,e.slice()):typeof e=="object"?$e(e):ve(on,null,String(e))}function $e(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:et(e)}function Qn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(A(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Qn(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(ln in t)?t._ctx=ie:r===3&&ie&&(ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else $(t)?(t={default:t,_ctx:ie},n=32):(t=String(t),s&64?(n=16,t=[Sr(t)]):n=8);e.children=t,e.shapeFlag|=n}function Li(...e){const t={};for(let n=0;nY||ie;let Gn,Ye,Fs="__VUE_INSTANCE_SETTERS__";(Ye=_n()[Fs])||(Ye=_n()[Fs]=[]),Ye.push(e=>Y=e),Gn=e=>{Ye.length>1?Ye.forEach(t=>t(e)):Ye[0](e)};const tt=e=>{Gn(e),e.scope.on()},Ve=()=>{Y&&Y.scope.off(),Gn(null)};function Mr(e){return e.vnode.shapeFlag&4}let bt=!1;function Hi(e,t=!1){bt=t;const{props:n,children:s}=e.vnode,r=Mr(e);wi(e,n,r,t),Ei(e,s);const o=r?Ui(e,t):void 0;return bt=!1,o}function Ui(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=fr(new Proxy(e.ctx,hi));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?Ki(e):null;tt(e),st();const o=Se(s,e,0,[e.props,r]);if(rt(),Ve(),Js(o)){if(o.then(Ve,Ve),t)return o.then(i=>{Ss(e,i)}).catch(i=>{Gt(i,e,0)});e.asyncDep=o}else Ss(e,o)}else Pr(e)}function Ss(e,t,n){$(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:B(t)&&(e.setupState=ur(t)),Pr(e)}function Pr(e,t,n){const s=e.type;e.render||(e.render=s.render||Te),tt(e),st(),pi(e),rt(),Ve()}function Bi(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return re(e,"get","$attrs"),t[n]}}))}function Ki(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return Bi(e)},slots:e.slots,emit:e.emit,expose:t}}function cn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ur(fr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in dt)return dt[n](e)},has(t,n){return n in t||n in dt}}))}function Wi(e,t=!0){return $(e)?e.displayName||e.name:e.name||t&&e.__name}function Vi(e){return $(e)&&"__vccOpts"in e}const Ji=(e,t)=>jo(e,t,bt),qi=Symbol.for("v-scx"),Yi=()=>zt(qi),ki="3.3.4",Xi="http://www.w3.org/2000/svg",Be=typeof document<"u"?document:null,Ms=Be&&Be.createElement("template"),Zi={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?Be.createElementNS(Xi,e):Be.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Be.createTextNode(e),createComment:e=>Be.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Be.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{Ms.innerHTML=s?`${e}`:e;const l=Ms.content;if(s){const f=l.firstChild;for(;f.firstChild;)l.appendChild(f.firstChild);l.removeChild(f)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Qi(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Gi(e,t,n){const s=e.style,r=q(n);if(n&&!r){if(t&&!q(t))for(const o in t)n[o]==null&&On(s,o,"");for(const o in n)On(s,o,n[o])}else{const o=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=o)}}const Ps=/\s*!important$/;function On(e,t,n){if(A(n))n.forEach(s=>On(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=el(e,t);Ps.test(n)?e.setProperty(nt(s),n.replace(Ps,""),"important"):e[s]=n}}const Ls=["Webkit","Moz","ms"],pn={};function el(e,t){const n=pn[t];if(n)return n;let s=we(t);if(s!=="filter"&&s in e)return pn[t]=s;s=Zt(s);for(let r=0;rmn||(il.then(()=>mn=0),mn=Date.now());function cl(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;pe(fl(s,n.value),t,5,[s])};return n.value=e,n.attached=ll(),n}function fl(e,t){if(A(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const zs=/^on[a-z]/,ul=(e,t,n,s,r=!1,o,i,l,f)=>{t==="class"?Qi(e,s,r):t==="style"?Gi(e,n,s):Yt(t)?Mn(t)||rl(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):al(e,t,s,r))?nl(e,t,s,o,i,l,f):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),tl(e,t,s,r))};function al(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&zs.test(t)&&$(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||zs.test(t)&&q(n)?!1:t in e}function dl(e){const t=Di();if(!t)return;const n=t.ut=(r=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(o=>Fn(o,r))},s=()=>{const r=e(t.proxy);$n(t.subTree,r),n(r)};Zo(s),yr(()=>{const r=new MutationObserver(s);r.observe(t.subTree.el.parentNode,{childList:!0}),Xn(()=>r.disconnect())})}function $n(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{$n(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Fn(e.el,t);else if(e.type===le)e.children.forEach(n=>$n(n,t));else if(e.type===Dt){let{el:n,anchor:s}=e;for(;n&&(Fn(n,t),n!==s);)n=n.nextSibling}}function Fn(e,t){if(e.nodeType===1){const n=e.style;for(const s in t)n.setProperty(`--${s}`,t[s])}}const Ds=e=>{const t=e.props["onUpdate:modelValue"]||!1;return A(t)?n=>Lt(t,n):t};function hl(e){e.target.composing=!0}function Hs(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Us={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e._assign=Ds(r);const o=s||r.props&&r.props.type==="number";ke(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=gn(l)),e._assign(l)}),n&&ke(e,"change",()=>{e.value=e.value.trim()}),t||(ke(e,"compositionstart",hl),ke(e,"compositionend",Hs),ke(e,"change",Hs))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},o){if(e._assign=Ds(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===t||(r||e.type==="number")&&gn(e.value)===t))return;const i=t??"";e.value!==i&&(e.value=i)}},pl=Q({patchProp:ul},Zi);let Bs;function ml(){return Bs||(Bs=Ai(pl))}const gl=(...e)=>{const t=ml().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=_l(s);if(!r)return;const o=t._component;!$(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.innerHTML="";const i=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t};function _l(e){return q(e)?document.querySelector(e):e}class Me{constructor(t=new Date){W(this,"realDate");W(this,"eorzeaDate");this.realDate=t,this.eorzeaDate=new Date(t.getTime()*(3600/175))}getHours(){return this.eorzeaDate.getUTCHours()}getMinutes(){return this.eorzeaDate.getUTCMinutes()}getSeconds(){return this.eorzeaDate.getUTCSeconds()}getTime(){return this.eorzeaDate.getTime()}getPrettyTime(){const t=this.getHours().toString();let n=this.getMinutes().toString();return n.length===1&&(n="0"+n),`${t}:${n}`}static fromRealTime(t){return new Me(t)}static fromEorzeaTime(t){return new Me(new Date(t.getTime()/(3600/175)))}}class bl{constructor(t,n,s,r,o,i){W(this,"job");W(this,"nodeType");W(this,"location");W(this,"times");W(this,"nearestAetheryte");W(this,"items");this.job=t,this.nodeType=n,this.location=s,this.times=r,this.items=o,this.nearestAetheryte=i,o.sort((l,f)=>f.level-l.level)}isActive(t){for(const n of this.times)if(n.isWithinTimeFrame(t.getHours(),t.getMinutes()))return!0;return!1}getCountdownToActive(t){let n=1/0;for(const s of this.times){const r=s.getNextTimeFrame(t);r(e.BOTANIST="botanist",e.MINER="miner",e))(qt||{});function Lr(e){switch(e.toLowerCase()){case"botanist":return"botanist";case"miner":return"miner";default:return null}}var es=(e=>(e.UNSPOILED="unspoiled",e.LEGENDARY="legendary",e))(es||{});function jr(e){switch(e.toLowerCase()){case"unspoiled":return"unspoiled";case"legendary":return"legendary";default:return null}}const Tl=vt({name:"GatheringNode",data(){return{secondsToNextInactiveTime:0,secondsToNextActiveTime:0}},props:{gatheringNode:{type:Object,required:!0},eorzeaTime:{type:Object,required:!0},zones:{type:Object,required:!0}},watch:{eorzeaTime:{handler(){this.calculateTimers()}}},methods:{prettyTimer(e){const t=Math.floor(e/60),n=e%60;return`${t}:${n<10?"0":""}${n}`},calculateTimers(){this.secondsToNextInactiveTime=this.gatheringNode.getSecondsToNextInactiveTime(this.eorzeaTime),this.secondsToNextActiveTime=this.gatheringNode.getSecondsToNextActiveTime(this.eorzeaTime)}},mounted(){this.calculateTimers()}}),wt=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},vl=e=>(nn("data-v-a636ed1c"),e=e(),sn(),e),wl={class:"location-info"},xl={key:0},Nl={class:"timer"},El={key:1},Il={class:"timer"},Al={class:"countdown"},Cl={class:"job"},Ol={class:"icon"},$l=["alt","src","title"],Fl={class:"aetheryte"},Sl=vl(()=>N("span",{class:"icon"},[N("img",{src:"https://xivapi.com/img-misc/mappy/aetheryte.png",alt:"Aetheryte icon",draggable:"false"})],-1)),Ml={class:"info"},Pl={class:"zone-name"},Ll={class:"aetheryte-name"},jl={class:"coords"},Rl={class:"items"};function zl(e,t,n,s,r,o){var i,l;return te(),de("article",{class:Tt(["node",{active:e.gatheringNode.isActive(e.eorzeaTime)}])},[N("div",wl,[e.gatheringNode.isActive(e.eorzeaTime)?(te(),de("div",El,[N("div",Il,[Sr(" Active "),N("div",Al,ue(e.prettyTimer(e.secondsToNextInactiveTime)),1)])])):(te(),de("div",xl,[N("div",Nl,ue(e.prettyTimer(e.secondsToNextActiveTime)),1)])),N("div",Cl,[N("div",Ol,[N("img",{alt:e.gatheringNode.job,src:`https://xivapi.com/cj/1/${e.gatheringNode.job}.png`,title:e.gatheringNode.job,draggable:"false"},null,8,$l)])]),N("div",Fl,[Sl,N("div",Ml,[N("span",Pl,ue((l=(i=e.zones[e.gatheringNode.location.zone])==null?void 0:i.name)==null?void 0:l.en),1),N("span",Ll,ue(e.gatheringNode.nearestAetheryte.name.en),1),N("span",jl,ue(e.gatheringNode.nearestAetheryte.position.x.toFixed(1))+", "+ue(e.gatheringNode.nearestAetheryte.position.y.toFixed(1)),1)])])]),N("div",Rl,[(te(!0),de(le,null,Tr(e.gatheringNode.items,f=>(te(),de("span",{key:f.name},ue(f.name)+" (lv. "+ue(f.level)+") ",1))),128))])],2)}const Dl=wt(Tl,[["render",zl],["__scopeId","data-v-a636ed1c"]]);class yt{constructor(t){W(this,"minLevel");W(this,"maxLevel");W(this,"jobs",new Set);W(this,"nodeTypes",new Set);var r,o;this.minLevel=(t==null?void 0:t.minLevel)||91,this.maxLevel=(t==null?void 0:t.maxLevel)||100;let n=[qt.BOTANIST.toLowerCase(),qt.MINER.toLowerCase()];t!=null&&t.jobs&&Array.isArray(t==null?void 0:t.jobs)&&((r=t==null?void 0:t.jobs)==null?void 0:r.length)>0&&(n=t.jobs);for(const i of n){const l=Lr(i);l&&this.jobs.add(l)}let s=[es.UNSPOILED.toLowerCase()];if(t!=null&&t.nodeTypes&&Array.isArray(t==null?void 0:t.nodeTypes)&&((o=t==null?void 0:t.nodeTypes)==null?void 0:o.length)>0&&(s=t.nodeTypes),Array.isArray(s))for(const i of s){const l=jr(i);l&&this.nodeTypes.add(l)}}serialize(){const t=Array.from(this.jobs),n=Array.from(this.nodeTypes);return JSON.stringify({minLevel:this.minLevel,maxLevel:this.maxLevel,jobs:t,nodeTypes:n})}}const Hl=vt({name:"SortedNodeList",components:{GatheringNode:Dl},props:{nodes:{type:Array,required:!0},eorzeaTime:{type:Object,required:!0},zones:{type:Object,required:!0}},watch:{nodes:{handler(e){this.filterNodes(e)},deep:!0},displayNodes:{handler(){this.sortListByTime()}},eorzeaTime:{handler(){this.sortListByTime()}}},data:()=>({displayNodes:[]}),methods:{sortListByTime(){this.displayNodes.sort((e,t)=>{const n=e.getSecondsToNextActiveTime(this.eorzeaTime),s=t.getSecondsToNextActiveTime(this.eorzeaTime);return n===s?1:n-s})},filterNodes(e=[]){let t=null,n=window.localStorage.getItem("filters");if(n===null&&(window.localStorage.setItem("filters",new yt().serialize()),n=window.localStorage.getItem("filters")),n===null){console.error("Failed to get filters from local storage!");return}const s=JSON.parse(n);t=new yt(s),this.displayNodes=e.filter(r=>{let o=!1;if(t&&(!t.jobs.has(r.job)||!t.nodeTypes.has(r.nodeType)))return!1;for(const i of r.items)if(t&&i.level>=t.minLevel&&i.level<=t.maxLevel){o=!0;break}return o})}},mounted(){this.filterNodes(this.nodes)}}),Ul={class:"node-list"};function Bl(e,t,n,s,r,o){const i=Rt("GatheringNode");return te(),de("div",Ul,[(te(!0),de(le,null,Tr(e.displayNodes,l=>(te(),Jt(i,{key:`${l.location.x}-${l.location.y}-${l.location.zone}`,"gathering-node":l,"eorzea-time":e.eorzeaTime,zones:e.zones},null,8,["gathering-node","eorzea-time","zones"]))),128))])}const Kl=wt(Hl,[["render",Bl],["__scopeId","data-v-35ea1fd0"]]);class Wl{constructor(t,n,s,r){W(this,"from");W(this,"to");this.from=[t,n],this.to=[s,r]}isWithinTimeFrame(t,n){return(this.from[0]=this.to[0]&&n.setUTCHours(this.from[0]+24),n.getTime()}getEndTimeFrame(t){const n=new Date(t.eorzeaDate.getTime());return n.setUTCHours(this.to[0],0,0,0),t.getHours()>=this.to[0]&&n.setUTCHours(this.to[0]+24),n.getTime()}}class Vl{constructor(t){W(this,"position");W(this,"name");this.position=t.position,this.name=t.name}}class Jl{constructor(t){W(this,"name");W(this,"aetherytes",[]);if(this.name={en:t.name.en},!!Array.isArray(t.aetherytes))for(const n of t.aetherytes)this.aetherytes.push(new Vl(n))}}const ql=vt({name:"FiltersMenu",computed:{NodeType(){return es},Job(){return qt}},emits:["update:filters"],data:()=>({filters:new yt}),watch:{filters:{handler(e){window.localStorage.setItem("filters",e.serialize())},deep:!0},minLevel(e){const t=parseInt(e);return isNaN(t)?1:t},maxLevel(e){const t=parseInt(e);return isNaN(t)?100:t}},mounted(){const e=window.localStorage.getItem("filters");if(!e)return;const t=JSON.parse(e);this.filters=new yt(t)}}),Ae=e=>(nn("data-v-fc9f5c52"),e=e(),sn(),e),Yl={open:""},kl=Ae(()=>N("summary",null,"Level of items",-1)),Xl=Ae(()=>N("span",null,"Minimum level",-1)),Zl=["max"],Ql=Ae(()=>N("span",null,"Maximum level",-1)),Gl=["min"],ec={open:""},tc=Ae(()=>N("summary",null,"Jobs",-1)),nc={class:"horizontal"},sc=Ae(()=>N("span",null,"Botanist",-1)),rc=["checked"],oc={class:"horizontal"},ic=Ae(()=>N("span",null,"Miner",-1)),lc=["checked"],cc={open:""},fc=Ae(()=>N("summary",null,"Node type",-1)),uc={class:"horizontal"},ac=Ae(()=>N("span",null,"Unspoiled",-1)),dc=["checked"],hc={class:"horizontal"},pc=Ae(()=>N("span",null,"Legendary",-1)),mc=["checked"];function gc(e,t,n,s,r,o){return te(),de("section",null,[N("details",Yl,[kl,N("section",null,[N("label",null,[Xl,ys(N("input",{type:"number",placeholder:"1",min:1,max:e.filters.maxLevel,"onUpdate:modelValue":t[0]||(t[0]=i=>e.filters.minLevel=i),onFocusout:t[1]||(t[1]=i=>{const l=i.target,f=parseInt(l.value);e.filters.maxLevel&&f>e.filters.maxLevel&&(e.filters.maxLevel=e.filters.minLevel)})},null,40,Zl),[[Us,e.filters.minLevel]])]),N("label",null,[Ql,ys(N("input",{type:"number",placeholder:"100",min:e.filters.minLevel,max:100,"onUpdate:modelValue":t[2]||(t[2]=i=>e.filters.maxLevel=i),onFocusout:t[3]||(t[3]=i=>{const l=i.target,f=parseInt(l.value);e.filters.minLevel&&f{i.target.checked?e.filters.jobs.add(e.Job.BOTANIST):e.filters.jobs.delete(e.Job.BOTANIST)})},null,40,rc)]),N("label",oc,[ic,N("input",{type:"checkbox",checked:e.filters.jobs.has(e.Job.MINER),onChange:t[5]||(t[5]=i=>{i.target.checked?e.filters.jobs.add(e.Job.MINER):e.filters.jobs.delete(e.Job.MINER)})},null,40,lc)])])]),N("details",cc,[fc,N("section",null,[N("label",uc,[ac,N("input",{type:"checkbox",checked:e.filters.nodeTypes.has(e.NodeType.UNSPOILED),onChange:t[6]||(t[6]=i=>{i.target.checked?e.filters.nodeTypes.add(e.NodeType.UNSPOILED):e.filters.nodeTypes.delete(e.NodeType.UNSPOILED)})},null,40,dc)]),N("label",hc,[pc,N("input",{type:"checkbox",checked:e.filters.nodeTypes.has(e.NodeType.LEGENDARY),onChange:t[7]||(t[7]=i=>{i.target.checked?e.filters.nodeTypes.add(e.NodeType.LEGENDARY):e.filters.nodeTypes.delete(e.NodeType.LEGENDARY)})},null,40,mc)])])])])}const _c=wt(ql,[["render",gc],["__scopeId","data-v-fc9f5c52"]]),ts=vt({name:"GithubLogo",props:{color:{type:String,default:"#181616"},size:{type:String,default:"24px"}}}),Ks=()=>{dl(e=>({"80f95432":e.size}))},Ws=ts.setup;ts.setup=Ws?(e,t)=>(Ks(),Ws(e,t)):Ks;const Rr=e=>(nn("data-v-abcb3caa"),e=e(),sn(),e),bc={class:"github-logo","aria-label":"Github logo",title:"GitHub"},yc={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128"},Tc=["fill"],vc=Rr(()=>N("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z"},null,-1)),wc=Rr(()=>N("path",{d:"M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"},null,-1)),xc=[vc,wc];function Nc(e,t,n,s,r,o){return te(),de("div",bc,[(te(),de("svg",yc,[N("g",{fill:e.color},xc,8,Tc)]))])}const Ec=wt(ts,[["render",Nc],["__scopeId","data-v-abcb3caa"]]),Ic="0.1.2",Ac=vt({name:"App",components:{GithubLogo:Ec,FiltersMenu:_c,SortedNodeList:Kl},data:()=>({version:Ic,eorzeaTime:new Me,nodes:[],items:{},zones:{},filtersActive:!1,filters:new yt}),methods:{findNearestAetheryte(e,t,n){let s=null,r=Number.MAX_SAFE_INTEGER;const o=this.zones[e];if(!o)return null;for(const i of o.aetherytes){const l=i.position.x-t,f=i.position.y-n,a=Math.hypot(l,f);a{this.eorzeaTime=new Me},1e3);const e=await fetch("/data/items.json").catch(()=>null);if(e===null){console.error("Failed to fetch item data!");return}const t=await e.json();for(const a in t){const g=t[a];this.items[a]=new yl(a,g)}const n=await fetch("/data/zones.json").catch(()=>null);if(n===null){console.error("Failed to fetch zone data!");return}const s=await n.json();for(const a in s)this.zones[a]=new Jl(s[a]);const r=await fetch("/data/nodes.json").catch(()=>null);if(r===null){console.error("Failed to fetch node data!");return}const o=await r.json();for(const a of o){const g=Lr(a.job);if(g===null){console.debug(`Failed to parse job: ${a.job}`);continue}const T=jr(a.type);if(T===null){console.debug(`Failed to parse node type: ${a.type}`);continue}const w=[];for(const F of a.items){const D=this.items[F];if(D===void 0){console.debug(`Failed to find item with id: ${F}`);continue}w.push(D)}const O=[];for(const F of a.times){const D=F.split("-");if(D.length!==2){console.debug(`Failed to parse time range: ${F}`);continue}const V=D[0].split(":"),J=D[1].split(":");O.push(new Wl(parseInt(V[0]),parseInt(V[1]),parseInt(J[0]),parseInt(J[1])))}const U=this.findNearestAetheryte((i=a==null?void 0:a.position)==null?void 0:i.zone,(l=a==null?void 0:a.position)==null?void 0:l.x,(f=a.position)==null?void 0:f.y);if(U===null){console.debug(`Failed to find nearest aetheryte for node: ${JSON.stringify(a)}`);continue}this.nodes.push(new bl(g,T,a.position,O,w,U))}}}),Cc=e=>(nn("data-v-5cc282e7"),e=e(),sn(),e),Oc={class:"current-eorzea-time"},$c={class:"top-bar-menu"},Fc={href:"https://github.com/YouHaveTrouble/DiscipleOfLand",target:"_blank"},Sc=Cc(()=>N("p",null,[N("a",{href:"https://github.com/YouHaveTrouble/DiscipleOfLand/blob/master/CONTRIBUTING.MD"},"Need YOUR help to input node, item and zone data!")],-1));function Mc(e,t,n,s,r,o){const i=Rt("GithubLogo"),l=Rt("SortedNodeList"),f=Rt("FiltersMenu");return te(),de("div",null,[N("nav",null,[N("div",Oc,ue(e.eorzeaTime.getPrettyTime()),1),N("div",$c,[N("a",Fc,[ve(i,{color:"#fff",size:"2rem"})]),N("button",{class:Tt(["filters-button",{active:e.filtersActive}]),onClick:t[0]||(t[0]=a=>e.filtersActive=!e.filtersActive)},ue(e.filtersActive?" Close filters":"Open filters"),3)])]),N("main",null,[e.filtersActive?$s("",!0):(te(),Jt(l,{key:0,nodes:e.nodes,zones:e.zones,"eorzea-time":e.eorzeaTime},null,8,["nodes","zones","eorzea-time"])),e.filtersActive?(te(),Jt(f,{key:1})):$s("",!0)]),N("footer",null,[N("p",null,"v"+ue(e.version),1),Sc])])}const Pc=wt(Ac,[["render",Mc],["__scopeId","data-v-5cc282e7"]]);gl(Pc).mount("#app"); diff --git a/data/items.json b/data/items.json new file mode 100644 index 0000000..4fcf712 --- /dev/null +++ b/data/items.json @@ -0,0 +1,144 @@ +{ + + "rarefied-sykon": { + "name": "Rarefied Sykon", + "level": 87 + }, + "rarefied-elder-nutmeg": { + "name": "Rarefied Elder Nutmeg", + "level": 90 + }, + "rarefied-coconut": { + "name": "Rarefied Coconut", + "level": 85 + }, + "rarefied-palm-log": { + "name": "Rarefied Palm Log", + "level": 85 + }, + "rarefied-red-pine-log": { + "name": "Rarefied Red Pine Log", + "level": 83 + }, + "rarefied-dark-rye": { + "name": "Rarefied Dark Rye", + "level": 89 + }, + "rarefied-iceberg-lettuce": { + "name": "Rarefied Iceberg Lettuce", + "level": 90, + "stars": 1 + }, + "rarefied-ar-cean-cotton-boll": { + "name": "Rarefied AR-Cean Cotton Boll", + "level": 90, + "stars": 1 + }, + + "rarefied-sharlayan-rock-salt": { + "name": "Rarefied Sharlayan Rock Salt", + "level": 85 + }, + "rarefied-raw-ametrine": { + "name": "Rarefied Raw Ametrine", + "level": 81 + }, + "rarefied-eblan-alumen": { + "name": "Rarefied Eblan Alumen", + "level": 90 + }, + "rarefied-phrygian-gold-ore": { + "name":"Rarefied Phrygian Gold Ore", + "level": 87 + }, + "rarefied-pewter-ore": { + "name": "Rarefied Pewter Ore", + "level": 90, + "stars": 1 + }, + "rarefied-bismuth-ore": { + "name": "Rarefied Bismuth Ore", + "level": 83 + }, + "rarefied-annite": { + "name": "Rarefied Annite", + "level": 90, + "stars": 1 + }, + "rarefied-blue-zircon": { + "name": "Rarefied Blue Zircon", + "level": 89 + }, + "rarefied-titanium-gold-ore": { + "name": "Rarefied Titanium Gold Ore", + "level": 96 + }, + "rarefied-magnesite-ore": { + "name": "Rarefied Magnesite Ore", + "level": 100 + }, + "rarefied-rakaznar-ore": { + "name": "Rarefied Ra'Kaznar Ore", + "level": 100 + }, + "rarefied-white-gold-ore": { + "name": "Rarefied White Gold Ore", + "level": 98 + }, + "rarefied-ash-soil": { + "name": "Rarefied Ash Soil", + "level": 100 + }, + "rarefied-acacia-log": { + "name": "Rarefied Acacia Log", + "level": 100 + }, + "rarefied-acacia-bark": { + "name": "Rarefied Acacia Bark", + "level": 98 + }, + "rarefied-dark-mahogany-log": { + "name": "Rarefied Dark Mahogany Log", + "level": 100 + }, + "rarefied-sweet-kukuru-bean": { + "name": "Rarefied Sweet Kukuru Bean", + "level": 96 + }, + "rarefied-windsbalm-bay-leaf": { + "name": "Rarefied Windsbalm Bay Leaf", + "level": 100 + }, + "rarefied-mountain-flax": { + "name": "Rarefied Mountain Flax", + "level": 93 + }, + "rarefied-raw-dark-amber": { + "name": "Rarefied Raw Dark Amber", + "level": 93 + }, + "raw-spodumene": { + "name": "Raw Spodumene", + "level": 90, + "stars": 3, + "perception": 3850 + }, + "mempisang-log": { + "name": "Mempisang Log", + "level": 90, + "stars": 1, + "perception": 2990 + }, + "paldao-log": { + "name": "Paldao Log", + "level": 90, + "stars": 2, + "perception": 3600 + }, + "shaaloani-coffee": { + "name": "Shaaloani Coffee", + "level": 100, + "stars": 2, + "perception": 4740 + } +} diff --git a/data/nodes.json b/data/nodes.json new file mode 100644 index 0000000..31dd348 --- /dev/null +++ b/data/nodes.json @@ -0,0 +1,331 @@ +[ + { + "job": "botanist", + "type": "unspoiled", + "position": { + "zone": "labyrinthos", + "x": 9.7, + "y": 22.2 + }, + "times": [ + "06:00-08:00", + "18:00-20:00" + ], + "items": [ + "rarefied-dark-rye", + "rarefied-iceberg-lettuce" + ] + }, + { + "job": "botanist", + "type": "unspoiled", + "position": { + "zone": "thavnair", + "x": 14.3, + "y": 14.5 + }, + "times": [ + "02:00-04:00", + "14:00-16:00" + ], + "items": [ + "rarefied-palm-log", + "rarefied-coconut" + ] + }, + { + "job": "botanist", + "type": "unspoiled", + "position": { + "zone": "ultima-thule", + "x": 14.0, + "y": 28.0 + }, + "times": [ + "08:00-10:00", + "20:00-22:00" + ], + "items": [ + "rarefied-ar-cean-cotton-boll" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "labyrinthos", + "x": 32.5, + "y": 21.2 + }, + "times": [ + "12:00-14:00", + "00:00-02:00" + ], + "items": [ + "rarefied-sharlayan-rock-salt", + "rarefied-raw-ametrine" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "garlemald", + "x": 12.9, + "y": 21.8 + }, + "times": [ + "14:00-16:00", + "02:00-04:00" + ], + "items": [ + "rarefied-eblan-alumen", + "rarefied-phrygian-gold-ore" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "thavnair", + "x": 32.0, + "y": 25.0 + }, + "times": [ + "04:00-06:00", + "16:00-18:00" + ], + "items": [ + "rarefied-pewter-ore" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "mare-lamentorum", + "x": 16.0, + "y": 32.0 + }, + "times": [ + "06:00-08:00", + "18:00-20:00" + ], + "items": [ + "rarefied-bismuth-ore" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "elpis", + "x": 8.0, + "y": 36.0 + }, + "times": [ + "10:00-12:00", + "22:00-00:00" + ], + "items": [ + "rarefied-annite", + "rarefied-blue-zircon" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "shaaloani", + "x": 9.2, + "y": 24.2 + }, + "times": [ + "08:00-10:00", + "20:00-22:00" + ], + "items": [ + "rarefied-magnesite-ore", + "rarefied-titanium-gold-ore" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "heritage-found", + "x": 34.6, + "y": 8.2 + }, + "times": [ + "04:00-06:00", + "16:00-18:00" + ], + "items": [ + "rarefied-rakaznar-ore", + "rarefied-white-gold-ore" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "living-memory", + "x": 24.9, + "y": 17.3 + }, + "times": [ + "00:00-02:00", + "12:00-14:00" + ], + "items": [ + "rarefied-ash-soil" + ] + }, + { + "job": "botanist", + "type": "unspoiled", + "position": { + "zone": "shaaloani", + "x": 31.6, + "y": 20.4 + }, + "times": [ + "06:00-08:00", + "18:00-20:00" + ], + "items": [ + "rarefied-acacia-log", + "rarefied-acacia-bark" + ] + }, + { + "job": "botanist", + "type": "unspoiled", + "position": { + "zone": "yak-tel", + "x": 36.9, + "y": 34.8 + }, + "times": [ + "02:00-04:00", + "14:00-16:00" + ], + "items": [ + "rarefied-acacia-log", + "rarefied-acacia-bark" + ] + }, + { + "job": "botanist", + "type": "unspoiled", + "position": { + "zone": "living-memory", + "x": 8.7, + "y": 7.6 + }, + "times": [ + "10:00-12:00", + "22:00-00:00" + ], + "items": [ + "rarefied-windsbalm-bay-leaf" + ] + }, + { + "job": "botanist", + "type": "unspoiled", + "position": { + "zone": "urquopacha", + "x": 5.9, + "y": 23.8 + }, + "times": [ + "00:00-02:00", + "12:00-14:00" + ], + "items": [ + "rarefied-mountain-flax" + ] + }, + { + "job": "miner", + "type": "unspoiled", + "position": { + "zone": "kozamauka", + "x": 6.9, + "y": 7.5 + }, + "times": [ + "10:00-12:00", + "22:00-00:00" + ], + "items": [ + "rarefied-raw-dark-amber" + ] + }, + { + "job": "miner", + "type": "legendary", + "position": { + "zone": "elpis", + "x": 30.2, + "y": 18.2 + }, + "times": [ + "08:00-10:00", + "20:00-22:00" + ], + "items": [ + "raw-spodumene" + ] + }, + { + "job": "botanist", + "type": "legendary", + "position": { + "zone": "elpis", + "x": 33.1, + "y": 14.7 + }, + "times": [ + "06:00-08:00", + "18:00-20:00" + ], + "items": [ + "mempisang-log" + ] + }, + { + "job": "botanist", + "type": "legendary", + "position": { + "zone": "elpis", + "x": 9.8, + "y": 29.8 + }, + "times": [ + "02:00-04:00", + "14:00-16:00" + ], + "items": [ + "paldao-log" + ] + }, + { + "job": "botanist", + "type": "legendary", + "position": { + "zone": "shaaloani", + "x": 34.9, + "y": 16.3 + }, + "times": [ + "04:00-06:00", + "16:00-18:00" + ], + "items": [ + "shaaloani-coffee" + ] + } +] diff --git a/data/zones.json b/data/zones.json new file mode 100644 index 0000000..c62e1d6 --- /dev/null +++ b/data/zones.json @@ -0,0 +1,381 @@ +{ + "labyrinthos": { + "name": { + "en": "Labyrinthos" + }, + "aetherytes": [ + { + "position": { + "x": 30.3, + "y": 11.9 + }, + "name": { + "en": "The Archeion" + } + }, + { + "position": { + "x": 21.6, + "y": 20.4 + }, + "name": { + "en": "Sharlayan Hamlet" + } + }, + { + "position": { + "x": 6.8, + "y": 27.5 + }, + "name": { + "en": "Aporia" + } + } + ] + }, + "thavnair": { + "name": { + "en": "Thavnair" + }, + "aetherytes": [ + { + "position": { + "x": 29.5, + "y": 16.5 + }, + "name": { + "en": "Palaka's Stand" + } + }, + { + "position": { + "x": 10.9, + "y": 22.2 + }, + "name": { + "en": "The Great Work" + } + }, + { + "position": { + "x": 25.3, + "y": 34.0 + }, + "name": { + "en": "Yedlihmad" + } + } + ] + }, + "mare-lamentorum": { + "name": { + "en": "Mare Lamentorum" + }, + "aetherytes": [ + { + "position": { + "x": 10.6, + "y": 34.3 + }, + "name": { + "en": "Sinus Lacrimarum" + } + }, + { + "position": { + "x": 21.7, + "y": 11.1 + }, + "name": { + "en": "Bestways Burrow" + } + } + ] + }, + "ultima-thule": { + "name": { + "en": "Ultima Thule" + }, + "aetherytes": [ + { + "position": { + "x": 22.7, + "y": 8.3 + }, + "name": { + "en": "Reah Tahra" + } + }, + { + "position": { + }, + "name": { + "en": "Abode of the Ea" + } + }, + { + "position": { + "x": 31.3, + "y": 28.0 + }, + "name": { + "en": "Base Omnicron" + } + } + ] + }, + "garlemald": { + "name": { + "en": "Garlemald" + }, + "aetherytes": [ + { + "position": { + "x": 13.3, + "y": 31.1 + }, + "name": { + "en": "Camp Broken Glass" + } + }, + { + "position": { + "x": 31.7, + "y": 18.0 + }, + "name": { + "en": "Tertium" + } + } + ] + }, + "yak-tel": { + "name": { + "en": "Yak T'el" + }, + "aetherytes": [ + { + "position": { + "x": 13.5, + "y": 12.9 + }, + "name": { + "en": "Iq Br'aax" + } + }, + { + "position": { + "x": 35.9, + "y": 32.0 + }, + "name": { + "en": "Mamook" + } + } + ] + }, + "shaaloani": { + "name": { + "en": "Shaaloani" + }, + "aetherytes": [ + { + "position": { + "x": 15.6, + "y": 19.2 + }, + "name": { + "en": "Sheshenewezi Springs" + } + }, + { + "position": { + "x": 29.0, + "y": 30.8 + }, + "name": { + "en": "Hhusatahwi" + } + }, + { + "position": { + "x": 27.1, + "y": 10.1 + }, + "name": { + "en": "Mehwahhetsoan" + } + } + ] + }, + "heritage-found": { + "name": { + "en": "Heritage Found" + }, + "aetherytes": [ + { + "position": { + "x": 17.0, + "y": 9.8 + }, + "name": { + "en": "The Outskirts" + } + }, + { + "position": { + "x": 31.7, + "y": 25.7 + }, + "name": { + "en": "Yyasulani Station" + } + }, + { + "position": { + "x": 17.0, + "y": 23.9 + }, + "name": { + "en": "Electrope Strike" + } + } + ] + }, + "living-memory": { + "name": { + "en": "Living Memory" + }, + "aetherytes": [ + { + "position": { + "x": 21.5, + "y": 37.3 + }, + "name": { + "en": "Leynode Mnemo" + } + }, + { + "position": { + "x": 34.7, + "y": 15.7 + }, + "name": { + "en": "Leynode Pyro" + } + }, + { + "position": { + "x": 16.4, + "y": 13.5 + }, + "name": { + "en": "Leynode Aero" + } + } + ] + }, + "urquopacha": { + "name": { + "en": "Urquopacha" + }, + "aetherytes": [ + { + "position": { + "x": 30.5, + "y": 34.2 + }, + "name": { + "en": "Worlar's Echo" + } + }, + { + "position": { + "x": 28.1, + "y": 13.1 + }, + "name": { + "en": "Wachunpelo" + } + } + ] + }, + "kozamauka": { + "name": { + "en": "Kozama'uka" + }, + "aetherytes": [ + { + "position": { + "x": 37.1, + "y": 16.9 + }, + "name": { + "en": "Dock Poga" + } + }, + { + "position": { + "x": 18.0, + "y": 12.0 + }, + "name": { + "en": "Ok'hanu" + } + }, + { + "position": { + "x": 11.8, + "y": 27.8 + }, + "name": { + "en": "Earthenshire" + } + }, + { + "position": { + "x": 32.2, + "y": 25.9 + }, + "name": { + "en": "Many Fires" + } + } + ] + }, + "elpis": { + "name": { + "en": "Elpis" + }, + "aetherytes": [ + { + "position": { + "x": 24.6, + "y": 24.0 + }, + "name": { + "en": "Anagnorisis" + } + }, + { + "position": { + "x": 8.7, + "y": 32.3 + }, + "name": { + "en": "The Twelve Wonders" + } + }, + { + "position": { + "x": 10.8, + "y": 17.0 + }, + "name": { + "en": "Poieten Oikos" + } + } + ] + } +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..e553002 --- /dev/null +++ b/index.html @@ -0,0 +1,30 @@ + + + + + + + Disciple of Land + + + + + + + + + + + + + + +
+ +