diff --git a/assets/app-clip-view-nLYlAu1q.js b/assets/app-clip-view-DQwDvxlj.js similarity index 61% rename from assets/app-clip-view-nLYlAu1q.js rename to assets/app-clip-view-DQwDvxlj.js index 901e4e33..73f5e155 100644 --- a/assets/app-clip-view-nLYlAu1q.js +++ b/assets/app-clip-view-DQwDvxlj.js @@ -1 +1 @@ -import{j as e,U as S,V as _,c as M,D as A,ao as y,a2 as g,t as h}from"./chakra-CXrhlirJ.js";import{r as o,E as p,aH as b,aN as k,aO as L}from"./index-BqOgmhc6.js";import{u as O,s as z,a as t}from"./react-Caefwd5V.js";import{c as x,P as D,e as V,u as N}from"./param-selector-B7mXBf6L.js";const w="rmg-bridge--",B={overflow:"hidden",flex:1,px:2,pb:2,"& > div":{m:0,h:"100%","& > div":{h:"100%"}}};function F(){const{t:a}=O(),[d]=z(),f=d.get("parentId"),c=d.get("parentComponent"),[v,u]=t.useState([]),[r,i]=t.useState(),[I,l]=t.useState(!1),n=t.useRef();t.useEffect(()=>(n.current=new BroadcastChannel(w+f),o.event(p.APP_CLIP_VIEW_OPENED,{parentComponent:c}),u(x()),()=>{var s;(s=n.current)==null||s.close()}),[]);const j=()=>{var P;if(!r)return;const{config:s,param:m}=V(r);try{(P=n.current)==null||P.postMessage({event:"IMPORT",meta:s,data:m&&N(m)}),o.event(p.APP_CLIP_VIEW_IMPORT,{parentComponent:c}),i(void 0),l(!1)}catch(R){console.error("Unable to update param",R),l(!0)}},C=()=>{var s;(s=n.current)==null||s.postMessage({event:"CLOSE"}),o.event(p.APP_CLIP_VIEW_CLOSED,{parentComponent:c}),i(void 0),l(!1)},E=()=>{o.openApp({appId:"rmg"})};return e.jsxs(b,{children:[I&&e.jsxs(S,{status:"error",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[e.jsx(_,{}),a("Project selected is invalid or corrupted.")]}),e.jsx(M.div,{sx:B,children:e.jsx(D,{paramRegistry:v,selectedParam:r,onParamSelect:i})}),e.jsx(A,{}),e.jsxs(y,{p:2,children:[e.jsx(g,{variant:"ghost",size:"sm","aria-label":a("Manage"),title:a("Manage"),icon:e.jsx(k,{}),onClick:E}),e.jsx(g,{variant:"ghost",size:"sm","aria-label":a("Reload"),title:a("Reload"),icon:e.jsx(L,{}),onClick:()=>u(x())}),e.jsx(h,{size:"sm",onClick:C,ml:"auto",children:a("Close")}),e.jsx(h,{size:"sm",colorScheme:"primary",isDisabled:!r,onClick:j,children:a("Import")})]})]})}export{F as default}; +import{j as e,U as S,V as _,c as M,D as A,ao as y,a2 as g,t as h}from"./chakra-CXrhlirJ.js";import{r as o,E as p,aI as b,aO as k,aP as L}from"./index-ChIkpPhE.js";import{u as O,s as z,a as t}from"./react-Caefwd5V.js";import{c as x,P as D,e as V,u as w}from"./param-selector-BJ-4ECJo.js";const B="rmg-bridge--",N={overflow:"hidden",flex:1,px:2,pb:2,"& > div":{m:0,h:"100%","& > div":{h:"100%"}}};function F(){const{t:a}=O(),[d]=z(),f=d.get("parentId"),c=d.get("parentComponent"),[I,u]=t.useState([]),[r,i]=t.useState(),[v,l]=t.useState(!1),n=t.useRef();t.useEffect(()=>(n.current=new BroadcastChannel(B+f),o.event(p.APP_CLIP_VIEW_OPENED,{parentComponent:c}),u(x()),()=>{var s;(s=n.current)==null||s.close()}),[]);const j=()=>{var P;if(!r)return;const{config:s,param:m}=V(r);try{(P=n.current)==null||P.postMessage({event:"IMPORT",meta:s,data:m&&w(m)}),o.event(p.APP_CLIP_VIEW_IMPORT,{parentComponent:c}),i(void 0),l(!1)}catch(R){console.error("Unable to update param",R),l(!0)}},C=()=>{var s;(s=n.current)==null||s.postMessage({event:"CLOSE"}),o.event(p.APP_CLIP_VIEW_CLOSED,{parentComponent:c}),i(void 0),l(!1)},E=()=>{o.openApp({appId:"rmg"})};return e.jsxs(b,{children:[v&&e.jsxs(S,{status:"error",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[e.jsx(_,{}),a("Project selected is invalid or corrupted.")]}),e.jsx(M.div,{sx:N,children:e.jsx(D,{paramRegistry:I,selectedParam:r,onParamSelect:i})}),e.jsx(A,{}),e.jsxs(y,{p:2,children:[e.jsx(g,{variant:"ghost",size:"sm","aria-label":a("Manage"),title:a("Manage"),icon:e.jsx(k,{}),onClick:E}),e.jsx(g,{variant:"ghost",size:"sm","aria-label":a("Reload"),title:a("Reload"),icon:e.jsx(L,{}),onClick:()=>u(x())}),e.jsx(h,{size:"sm",onClick:C,ml:"auto",children:a("Close")}),e.jsx(h,{size:"sm",colorScheme:"primary",isDisabled:!r,onClick:j,children:a("Import")})]})]})}export{F as default}; diff --git a/assets/app-clip-view-legacy-DhJN-lkK.js b/assets/app-clip-view-legacy-BEZC65g6.js similarity index 55% rename from assets/app-clip-view-legacy-DhJN-lkK.js rename to assets/app-clip-view-legacy-BEZC65g6.js index 492a5c5c..1498625d 100644 --- a/assets/app-clip-view-legacy-DhJN-lkK.js +++ b/assets/app-clip-view-legacy-BEZC65g6.js @@ -1 +1 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./index-legacy-CCR6yT8f.js","./react-legacy-wexXEtdT.js","./param-selector-legacy-C3ApLQi1.js"],(function(e,t){"use strict";var a,s,r,n,o,c,i,l,d,p,u,m,j,x,g,v,P,h,C,f;return{setters:[e=>{a=e.j,s=e.U,r=e.V,n=e.c,o=e.D,c=e.ao,i=e.a2,l=e.t},e=>{d=e.r,p=e.E,u=e.aH,m=e.aN,j=e.aO},e=>{x=e.u,g=e.s,v=e.a},e=>{P=e.c,h=e.P,C=e.e,f=e.u}],execute:function(){e("default",(function(){const{t:e}=x(),[y]=g(),E=y.get("parentId"),_=y.get("parentComponent"),[S,b]=v.useState([]),[M,O]=v.useState(),[R,k]=v.useState(!1),z=v.useRef();return v.useEffect((()=>(z.current=new BroadcastChannel(t+E),d.event(p.APP_CLIP_VIEW_OPENED,{parentComponent:_}),b(P()),()=>{z.current?.close()})),[]),a.jsxs(u,{children:[R&&a.jsxs(s,{status:"error",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[a.jsx(r,{}),e("Project selected is invalid or corrupted.")]}),a.jsx(n.div,{sx:I,children:a.jsx(h,{paramRegistry:S,selectedParam:M,onParamSelect:O})}),a.jsx(o,{}),a.jsxs(c,{p:2,children:[a.jsx(i,{variant:"ghost",size:"sm","aria-label":e("Manage"),title:e("Manage"),icon:a.jsx(m,{}),onClick:()=>{d.openApp({appId:"rmg"})}}),a.jsx(i,{variant:"ghost",size:"sm","aria-label":e("Reload"),title:e("Reload"),icon:a.jsx(j,{}),onClick:()=>b(P())}),a.jsx(l,{size:"sm",onClick:()=>{z.current?.postMessage({event:"CLOSE"}),d.event(p.APP_CLIP_VIEW_CLOSED,{parentComponent:_}),O(void 0),k(!1)},ml:"auto",children:e("Close")}),a.jsx(l,{size:"sm",colorScheme:"primary",isDisabled:!M,onClick:()=>{if(!M)return;const{config:e,param:t}=C(M);try{z.current?.postMessage({event:"IMPORT",meta:e,data:t?f(t):t}),d.event(p.APP_CLIP_VIEW_IMPORT,{parentComponent:_}),O(void 0),k(!1)}catch(a){console.error("Unable to update param",a),k(!0)}},children:e("Import")})]})]})}));const t="rmg-bridge--",I={overflow:"hidden",flex:1,px:2,pb:2,"& > div":{m:0,h:"100%","& > div":{h:"100%"}}}}}})); +System.register(["./chakra-legacy-Di7w1ZhB.js","./index-legacy-Dwehuq_g.js","./react-legacy-wexXEtdT.js","./param-selector-legacy-DN0AGkfT.js"],(function(e,t){"use strict";var a,s,r,n,o,c,i,l,d,p,u,m,j,x,g,P,v,h,C,I;return{setters:[e=>{a=e.j,s=e.U,r=e.V,n=e.c,o=e.D,c=e.ao,i=e.a2,l=e.t},e=>{d=e.r,p=e.E,u=e.aI,m=e.aO,j=e.aP},e=>{x=e.u,g=e.s,P=e.a},e=>{v=e.c,h=e.P,C=e.e,I=e.u}],execute:function(){e("default",(function(){const{t:e}=x(),[y]=g(),E=y.get("parentId"),_=y.get("parentComponent"),[S,b]=P.useState([]),[M,O]=P.useState(),[R,k]=P.useState(!1),z=P.useRef();return P.useEffect((()=>(z.current=new BroadcastChannel(t+E),d.event(p.APP_CLIP_VIEW_OPENED,{parentComponent:_}),b(v()),()=>{z.current?.close()})),[]),a.jsxs(u,{children:[R&&a.jsxs(s,{status:"error",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[a.jsx(r,{}),e("Project selected is invalid or corrupted.")]}),a.jsx(n.div,{sx:f,children:a.jsx(h,{paramRegistry:S,selectedParam:M,onParamSelect:O})}),a.jsx(o,{}),a.jsxs(c,{p:2,children:[a.jsx(i,{variant:"ghost",size:"sm","aria-label":e("Manage"),title:e("Manage"),icon:a.jsx(m,{}),onClick:()=>{d.openApp({appId:"rmg"})}}),a.jsx(i,{variant:"ghost",size:"sm","aria-label":e("Reload"),title:e("Reload"),icon:a.jsx(j,{}),onClick:()=>b(v())}),a.jsx(l,{size:"sm",onClick:()=>{z.current?.postMessage({event:"CLOSE"}),d.event(p.APP_CLIP_VIEW_CLOSED,{parentComponent:_}),O(void 0),k(!1)},ml:"auto",children:e("Close")}),a.jsx(l,{size:"sm",colorScheme:"primary",isDisabled:!M,onClick:()=>{if(!M)return;const{config:e,param:t}=C(M);try{z.current?.postMessage({event:"IMPORT",meta:e,data:t?I(t):t}),d.event(p.APP_CLIP_VIEW_IMPORT,{parentComponent:_}),O(void 0),k(!1)}catch(a){console.error("Unable to update param",a),k(!0)}},children:e("Import")})]})]})}));const t="rmg-bridge--",f={overflow:"hidden",flex:1,px:2,pb:2,"& > div":{m:0,h:"100%","& > div":{h:"100%"}}}}}})); diff --git a/assets/app-router-ByZ3RjTs.js b/assets/app-router-ByZ3RjTs.js new file mode 100644 index 00000000..a638f797 --- /dev/null +++ b/assets/app-router-ByZ3RjTs.js @@ -0,0 +1,12 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BRDCpJ6D.js","assets/chakra-CXrhlirJ.js","assets/react-Caefwd5V.js","assets/index-ChIkpPhE.js","assets/index-BTdBVow0.css","assets/svg-wrapper-DO1Iqw6o.js","assets/share-r5pzRDhM.js","assets/mtr-C3sp7NyA.js","assets/index-F70Wom7-.js","assets/param-selector-BJ-4ECJo.js","assets/index-B75st-hO.js","assets/index-DdI5l9H9.js","assets/station-ag-grid-x9FtULEU.js","assets/ag-grid-react-A6BSx5P9.js","assets/ag-grid-community-TcQKCcyM.js"])))=>i.map(i=>d[i]); +import{j as y,ap as wn,h as Te,B as ke,al as Se,a2 as Be,ao as Re,N as lt,aq as Ot,t as de,D as Ne,aj as Ke,M as Xe,ak as Je,U as ut,V as ft,J as Qe,K as et,L as tt,O as nt,ab as rn,ar as kn,as as Cn,at as jn,au as Ft,av as An,aw as En,ax as gt,ay as On,az as zn,R as Ve,aA as sn,a as Rn,aB as Pn}from"./chakra-CXrhlirJ.js";import{a as X,u as ce,o as an,c as at,g as Tn,s as In}from"./react-Caefwd5V.js";import{_ as Le,u as Q,r as le,E as xe,R as pt,a as on,s as Bn,b as ln,c as Nn,D as ve,d as ue,e as J,f as ze,M as Mn,F as xt,g as Me,h as ct,i as Ie,j as wt,o as zt,k as Dn,l as Rt,S as dt,m as Ut,B as ht,n as Pt,p as Tt,q as Ln,t as Fn,v as Un,w as kt,x as Ct,y as Wn,z as Wt,A as Zn,C as Hn,G as cn,H as dn,I as Gn,J as Vn,P as bt,K as Yn,L as Zt,N as $n,O as qn,Q as Kn,T as Xn,U as Jn,V as Qn,W as er,X as Ht,Y as tr,Z as nr,$ as rr,a0 as _t,a1 as sr,a2 as ir,a3 as ar,a4 as or,a5 as lr,a6 as cr,a7 as dr,a8 as hr,a9 as Fe,aa as qe,ab as Ue,ac as De,ad as hn,ae as ur,af as jt,ag as fr,ah as At,ai as pr,aj as mr,ak as gr,al as br,am as un,an as _r,ao as yr,ap as vr,aq as Sr,ar as Gt,as as xr,at as wr,au as kr,av as Cr,aw as Et,ax as jr,ay as Ar,az as Er,aA as Or,aB as zr,aC as Rr,aD as Pr,aE as Tr,aF as Ir,aG as Br,aH as Ye,aI as fn,aJ as Nr,aK as Mr,aL as Dr,aM as Lr,aN as Oe}from"./index-ChIkpPhE.js";import{R as be,w as Fr,i as Ur,d as Vt,a as pn,s as Wr,g as Zr,b as yt,r as Hr,c as vt,P as Gr,e as Vr,u as Yr,f as $r,h as qr}from"./param-selector-BJ-4ECJo.js";var Kr=function(o){var d=o.text,n=o.delimiter;return y.jsx("span",{children:d.split(n||"\\").map(function(i,s){return s?[y.jsx(wn,{children:"⏎"},s),i]:i})})};const It={mtr:{components:()=>Le(()=>import("./index-BRDCpJ6D.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])),fonts:()=>Le(()=>import("./index-BRDCpJ6D.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])).then(o=>o.mtrFonts)},gzmtr:{components:()=>Le(()=>import("./index-F70Wom7-.js"),__vite__mapDeps([8,1,2,3,4,6,5,9]))},shmetro:{components:()=>Le(()=>import("./index-B75st-hO.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,9]))},shsubrwy:{components:()=>Le(()=>import("./index-DdI5l9H9.js"),__vite__mapDeps([11,1,2,3,4,5]))}};function Xr(o){const[d,n]=X.useState({});return X.useEffect(()=>(It[o].components().then(i=>{n(i.default)}).catch(i=>{console.error("Failed to load canvas for style ".concat(o),i),n({})}),()=>{n({})}),[o]),d}const Jr={position:"relative",flexDirection:"row",overflowX:"auto","&::before, &::after":{content:'""',margin:"auto"},"& > svg":{flex:"0 0 auto",border:"1px solid black"}},Qr=async(o,d)=>{var i,s,e,t;const n=(e=await((s=(i=It[o]).fonts)==null?void 0:s.call(i)))!=null?e:[];await Promise.all(n.map(r=>le.loadFont(r))),d.aborted||(t=document.querySelector("#css_share"))==null||t.setAttribute("href","/rmg/styles/share_".concat(o,".css"))};function es(){const{canvasToShow:o,canvasScale:d}=Q(r=>r.app),{svg_height:n,style:i}=Q(r=>r.param),s=Xr(i);X.useEffect(()=>{const r=new AbortController;return Qr(i,r.signal).then(),le.event(xe.STYLE_CHANGE,{style:i}),()=>{r.abort()}},[i]);const e=Object.keys(s).filter(r=>o.includes(r)),t=n*d;return y.jsx(Te,{minH:t,sx:Jr,children:Object.keys(s).length===0?y.jsx(pt,{isIndeterminate:!0}):e.map(r=>y.jsx(on,{sx:{minWidth:750,height:t},children:s[r]},r+i))})}const Yt=o=>d=>{d(Bn(o)),d(ln(o.stn_list))},_e=(o,d)=>(n,i)=>{const{stn_list:s}=i().param,e={...s,[o]:d};n(we(e))},we=o=>d=>{d(Nn(o)),d(ln(o))},ts=(o=!1)=>(d,n)=>{const{stn_list:i}=n().param,s=Object.keys(i).reduce((e,t)=>({...e,[t]:(r=>{var c,f,v,m;switch(r){case"linestart":return{...i.lineend,parents:[],children:o?i.lineend.parents:i.lineend.parents.toReversed(),branch:{right:(c=i.lineend.branch)==null?void 0:c.left}};case"lineend":return{...i.linestart,parents:o?i.linestart.children:i.linestart.children.toReversed(),children:[],branch:{left:(f=i.linestart.branch)==null?void 0:f.right}};default:{const p=i[r].children.map(g=>g==="linestart"?"lineend":g==="lineend"?"linestart":g),l=i[r].parents.map(g=>g==="linestart"?"lineend":g==="lineend"?"linestart":g);return{...i[r],parents:o?p:p.reverse(),children:o?l:l.reverse(),branch:{left:(v=i[r].branch)==null?void 0:v.right,right:(m=i[r].branch)==null?void 0:m.left}}}}})(t)}),{});d(we(s))},$t=(o,d,n)=>(i,s)=>{const e=s().param.stn_list[o];i(_e(o,{...e,localisedName:{...e.localisedName,[d]:n}}))},ns=(o,d)=>(n,i)=>{const{localisedSecondaryName:s,...e}=i().param.stn_list[o];n(d?_e(o,{...e,localisedSecondaryName:{}}):_e(o,e))},qt=(o,d,n)=>(i,s)=>{const e=s().param.stn_list[o];i(_e(o,{...e,localisedSecondaryName:{...e.localisedSecondaryName,[d]:n}}))},rs=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,num:d}))},Kt=(o,d,n)=>(i,s)=>{var r,c;const e=s().param.stn_list[o],t=e.transfer.groups.map(f=>({...f}));if(t.length>d)t[d]={...t[d],lines:((r=t[d].lines)!=null?r:[]).concat(n)};else{for(let f=t.length;f(i,s)=>{var t,r;const e=s().param.stn_list[o];if(e.transfer.groups.length>d&&(((t=e.transfer.groups[d].lines)==null?void 0:t.length)||0)>n){const c=e.transfer.groups.map((f,v)=>{var m;return v===d?{...f,lines:(m=f.lines)==null?void 0:m.filter((p,l)=>l!==n)}:f});i(_e(o,{...e,transfer:{...e.transfer,groups:[c[0],...(r=c.slice(1))!=null?r:[]]}}))}},is=(o,d,n,i)=>(s,e)=>{var r,c;const t=e().param.stn_list[o];if(t.transfer.groups.length>d&&(((r=t.transfer.groups[d].lines)==null?void 0:r.length)||0)>n){const f=t.transfer.groups.map((v,m)=>{var p;return m===d?{...v,lines:(p=v.lines)==null?void 0:p.map((l,g)=>g===n?i:l)}:v});s(_e(o,{...t,transfer:{...t.transfer,groups:[f[0],...(c=f.slice(1))!=null?c:[]]}}))}},Xt=(o,d,n)=>(i,s)=>{var r;const e=s().param.stn_list[o],t=e.transfer.groups.map(c=>({...c}));t.length>d&&(t[d]={...t[d],name:n},i(_e(o,{...e,transfer:{...e.transfer,groups:[t[0],...(r=t.slice(1))!=null?r:[]]}})))},as=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,transfer:{...s.transfer,tick_direc:d}}))},os=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,transfer:{...s.transfer,paid_area:d}}))},ls=(o,d,n)=>(i,s)=>{var t,r;const e=s().param.stn_list[o];i(_e(o,{...e,branch:{...e.branch,[d]:(r=(t=e.branch)==null?void 0:t[d])==null?void 0:r.with(0,n)}}))},cs=(o,d,n)=>(i,s)=>{var r,c,f;const e=s().helper.branches,t={stnId:o,direction:d,first:n};if(d===ve.left){const v=(r=e.slice(1).find(m=>m.slice(-1)[0]===o))==null?void 0:r[0];if(v){const m=e[0][e[0].indexOf(v)+1];i(Jt([t,{stnId:v,direction:ve.right,first:m}]))}}else{const v=(f=(c=e.slice(1).find(m=>m[0]===o))==null?void 0:c.slice(-1))==null?void 0:f[0];if(v){const m=e[0][e[0].indexOf(v)-1];i(Jt([t,{stnId:v,direction:ve.left,first:m}]))}}},Jt=o=>(d,n)=>{var s,e,t,r;const{stn_list:i}=n().param;d(we({...i,[o[0].stnId]:{...i[o[0].stnId],branch:{...i[o[0].stnId].branch,[o[0].direction]:(e=(s=i[o[0].stnId].branch)==null?void 0:s[o[0].direction])==null?void 0:e.with(1,o[0].first)}},[o[1].stnId]:{...i[o[1].stnId],branch:{...i[o[1].stnId].branch,[o[1].direction]:(r=(t=i[o[1].stnId].branch)==null?void 0:t[o[1].direction])==null?void 0:r.with(1,o[1].first)}}}))},ds=(o,d)=>(n,i)=>{var e,t,r;const s=i().helper.branches;if(d===ve.left){const c=(e=s.slice(1).find(f=>f.slice(-1)[0]===o))==null?void 0:e[0];c&&n(Qt(o,c))}else{const c=(r=(t=s.slice(1).find(f=>f[0]===o))==null?void 0:t.slice(-1))==null?void 0:r[0];c&&n(Qt(c,o))}},Qt=(o,d)=>(n,i)=>{const{stn_list:s}=i().param;n(we({...s,[o]:{...s[o],parents:s[o].parents.slice().reverse()},[d]:{...s[d],children:s[d].children.slice().reverse()}}))},hs=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,facility:d||void 0}))},us=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,services:d}))},fs=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,loop_pivot:d}))},ps=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,one_line:d}))},ms=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,int_padding:d}))},gs=o=>(d,n)=>{const s=n().param.stn_list[o].int_padding,e=structuredClone(n().param.stn_list);Object.values(e).forEach(t=>{t.int_padding=s}),d(we(e))},bs=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,character_spacing:d}))},_s=o=>(d,n)=>{const s=n().param.stn_list[o].character_spacing,e=structuredClone(n().param.stn_list);Object.values(e).forEach(t=>{t.character_spacing=s}),d(we(e))},ys=(o,d,n=2,i="asc")=>(s,e)=>{var f;const t=e().param.stn_list,c=(f=e().helper.branches[o])==null?void 0:f.slice(1,-1);if(c){const v=c.reduce((m,p,l)=>({...m,[p]:{...t[p],num:(d+l*(i==="desc"?-1:1)).toString().padStart(n,"0")}}),t);s(we(v))}};function vs(){var c,f,v,m;const{t:o}=ce(),d=ue(),n=Q(p=>p.app.selectedStation);console.log("InfoSection:: Rendering for",n);const i=Q(p=>p.param.style),{num:s,localisedName:e,localisedSecondaryName:t}=Q(p=>p.param.stn_list[n]),r=[{type:"input",label:o("StationSidePanel.info.num"),value:s,placeholder:"01",onChange:p=>d(rs(n,p)),hidden:![J.GZMTR].includes(i)},{type:"input",label:o("Chinese name"),value:(c=e.zh)!=null?c:"",onChange:p=>d($t(n,"zh",p))},{type:"input",label:o("English name"),value:(f=e.en)!=null?f:"",onChange:p=>d($t(n,"en",p))},{type:"custom",label:o("Secondary names"),component:y.jsx(ze,{selections:[{label:o("Yes"),value:!0},{label:o("No"),value:!1}],defaultValue:!!t,onChange:p=>d(ns(n,p))}),hidden:![J.GZMTR].includes(i)},{type:"input",label:o("StationSidePanel.info.zhSecondary"),value:(v=t==null?void 0:t.zh)!=null?v:"",placeholder:"1号航站楼",onChange:p=>d(qt(n,"zh",p)),hidden:!t||![J.GZMTR].includes(i)},{type:"input",label:o("StationSidePanel.info.enSecondary"),value:(m=t==null?void 0:t.en)!=null?m:"",placeholder:"Terminal 1",onChange:p=>d(qt(n,"en",p)),hidden:!t||![J.GZMTR].includes(i)}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StationSidePanel.info.title")}),y.jsx(be,{fields:r,minW:130})]})}class Ss{static hexToRgb(d){return[parseInt(d.slice(1,3),16),parseInt(d.slice(3,5),16),parseInt(d.slice(5,7),16)]}static fade(d,n){return"rgba(".concat([...this.hexToRgb(d),n].join(","),")")}static euclideanDistance(d,n){return this.hexToRgb(d).reduce((i,s,e)=>i+Math.pow(s-this.hexToRgb(n)[e],2),0)}}function Bt(o){var s;const{theme:d,onClick:n}=o,{t:i}=ce();return y.jsx(Be,{size:"xs","aria-label":i("Colour"),mt:"0.45px",color:d==null?void 0:d[3],bg:d==null?void 0:d[2],_hover:{bg:Ss.fade((s=d==null?void 0:d[2])!=null?s:"#aaaaaa",.7)},icon:y.jsx(Mn,{}),onClick:n})}function xs(o){const{interchangeList:d,onAdd:n,onDelete:i,onUpdate:s}=o,{t:e}=ce(),t=ue(),[r,c]=X.useState(),{paletteAppClipOutput:f}=Q(_=>_.app),{style:v,theme:m,stn_list:p}=Q(_=>_.param);X.useEffect(()=>{r!==void 0&&f&&(s==null||s(r,{...d[r],theme:f}),c(void 0))},[f==null?void 0:f.toString()]);const l=Object.values(p).reduce((_,b)=>{const[x,C]=_;return[[...new Set(x.concat(b.transfer.groups.map(j=>{var A,N;return(N=(A=j.lines)==null?void 0:A.map(z=>z.name[0]))!=null?N:[]}).flat()))],[...new Set(C.concat(b.transfer.groups.map(j=>{var A,N;return(N=(A=j.lines)==null?void 0:A.map(z=>z.name[1]))!=null?N:[]}).flat()))]]},[[],[]]),g=Object.fromEntries(Object.entries(xt).filter(([_])=>!["railway"].includes(_)).map(([_,b])=>[_,e(b)])),h=d.map((_,b)=>[{type:"input",label:e("Chinese name"),value:_.name[0],onChange:x=>s==null?void 0:s(b,{..._,name:[x,_.name[1]]}),optionList:l[0]},{type:"input",label:e("English name"),value:_.name[1],onChange:x=>s==null?void 0:s(b,{..._,name:[_.name[0],x]}),optionList:l[1]},{type:"select",label:e("Line icon"),value:_.facility,options:g,onChange:x=>s==null?void 0:s(b,{..._,facility:x}),hidden:![J.MTR].includes(v)}]);return y.jsxs(Me,{direction:"column",children:[d.length===0&&y.jsxs(Re,{spacing:.5,"data-testid":"interchange-card-stack",children:[y.jsx(lt,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:e("StationSidePanel.interchange.noInterchanges")}),y.jsx(Be,{size:"sm",variant:"ghost","aria-label":e("StationSidePanel.interchange.add"),onClick:()=>n==null?void 0:n({theme:[m[0],"","#aaaaaa",ct.white],name:["",""]}),icon:y.jsx(Ie,{})})]}),d.map((_,b)=>y.jsxs(Re,{spacing:.5,"data-testid":"interchange-card-stack-".concat(b),children:[y.jsx(wt,{label:e("Colour"),minW:"40px",noLabel:b!==0,children:y.jsx(Bt,{theme:_.theme,onClick:()=>{var x;c(b),t(zt((x=_.theme)!=null?x:[m[0],"","#aaaaaa",ct.white]))}})}),y.jsx(be,{fields:h[b],noLabel:b!==0}),n&&b===h.length-1?y.jsx(Be,{size:"sm",variant:"ghost","aria-label":e("StationSidePanel.interchange.copy"),onClick:()=>n==null?void 0:n(d.slice(-1)[0]),icon:y.jsx(Dn,{})}):y.jsx(ke,{minW:8}),i&&y.jsx(Be,{size:"sm",variant:"ghost","aria-label":e("StationSidePanel.interchange.remove"),onClick:()=>i==null?void 0:i(b),icon:y.jsx(Rt,{})})]},b))]})}function ws(){const{t:o}=ce(),d=ue(),n=Q(m=>m.app.selectedStation),{theme:i,style:s}=Q(m=>m.param),{transfer:e}=Q(m=>m.param.stn_list[n]),t=m=>{var p,l,g,h;return[{type:"input",label:o("Station Chinese name"),value:(l=(p=e.groups[m].name)==null?void 0:p[0])!=null?l:"",hidden:![J.MTR].includes(s),onChange:_=>{var b,x;return d(Xt(n,m,[_,(x=(b=e.groups[m].name)==null?void 0:b[1])!=null?x:""]))}},{type:"input",label:o("Station English name"),value:(h=(g=e.groups[m].name)==null?void 0:g[1])!=null?h:"",hidden:![J.MTR].includes(s),onChange:_=>{var b,x;return d(Xt(n,m,[(x=(b=e.groups[m].name)==null?void 0:b[0])!=null?x:"",_]))}},{type:"switch",label:o("Paid area"),isChecked:e.paid_area,onChange:_=>d(os(n,_)),hidden:![J.MTR].includes(s)||m===0,oneLine:!0}]},r=m=>p=>{d(Kt(n,m,p))},c=m=>p=>{d(ss(n,m,p))},f=m=>(p,l)=>{d(is(n,m,p,l))},v=()=>{d(Kt(n,e.groups.length,{theme:[i[0],"","#AAAAAA",ct.white],name:["",""]}))};return y.jsxs(Ot,{align:"flex-start",p:1,children:[y.jsxs(Te,{w:"100%",children:[y.jsx(Se,{as:"h5",size:"sm",mr:"auto",children:o("StationSidePanel.interchange.title")}),s===J.MTR&&y.jsx(ze,{selections:[{label:o("Text on the left"),value:dt.left},{label:o("Text on the right"),value:dt.right}],defaultValue:e.tick_direc,onChange:m=>d(as(n,m))})]}),e.groups.map((m,p)=>{var l;return y.jsxs(X.Fragment,{children:[y.jsx(Se,{as:"h6",size:"xs",children:o(p===0?"StationSidePanel.interchange.within":p===1?"StationSidePanel.interchange.outStation":"StationSidePanel.interchange.outSystem")}),p!==0&&y.jsx(be,{fields:t(p)}),y.jsx(xs,{interchangeList:(l=m.lines)!=null?l:[],onAdd:r(p),onDelete:c(p),onUpdate:f(p)})]},p)}),e.groups.length<3&&y.jsx(de,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:y.jsx(Ie,{}),onClick:v,children:o("StationSidePanel.interchange.addGroup")})]})}function ks(){const{t:o}=ce(),d=ue(),n=Q(h=>h.app.selectedStation),{style:i,loop:s}=Q(h=>h.param),{services:e,facility:t,loop_pivot:r,one_line:c,int_padding:f,character_spacing:v}=Q(h=>h.param.stn_list[n]),m=Object.values(Ut).map(h=>({label:o("StationSidePanel.more."+h),value:h,disabled:h===Ut.local&&i!==J.SHMetro})),p=Object.fromEntries(Object.entries(xt).filter(([h])=>!["railway"].includes(h)).map(([h,_])=>[h,o(_)])),l=Object.fromEntries(Object.entries(xt).filter(([h])=>!["np360"].includes(h)).map(([h,_])=>[h,o(_)])),g=[{type:"custom",label:o("StationSidePanel.more.service"),component:y.jsx(ze,{selections:m,defaultValue:e,onChange:h=>d(us(n,h)),multiSelect:!0}),hidden:![J.GZMTR,J.SHMetro].includes(i)},{type:"select",label:o("StationSidePanel.more.facility"),value:t||"",options:{"":o("None"),...i===J.MTR?p:l},onChange:h=>d(hs(n,h)),hidden:![J.MTR,J.SHMetro].includes(i)},{type:"switch",label:o("StationSidePanel.more.pivot"),isChecked:r,onChange:h=>d(fs(n,h)),hidden:![J.SHMetro].includes(i)||!s,minW:"full",oneLine:!0},{type:"switch",label:o("StationSidePanel.more.oneLine"),isChecked:c,onChange:h=>d(ps(n,h)),hidden:![J.SHMetro].includes(i),minW:"full",oneLine:!0},{type:"input",label:o("StationSidePanel.more.intPadding"),value:f.toString(),validator:h=>Number.isInteger(h),onChange:h=>d(ms(n,Number(h))),hidden:![J.SHMetro].includes(i)},{type:"custom",label:o("StationSidePanel.more.intPaddingApplyGlobal"),component:y.jsx(ze,{selections:[{label:o("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>d(gs(n))}),oneLine:!0,hidden:![J.SHMetro].includes(i)},{type:"input",label:o("StationSidePanel.more.characterSpacing"),value:v.toString(),validator:h=>Number.isInteger(h),onChange:h=>d(bs(n,Number(h))),hidden:![J.SHSuburbanRailway].includes(i)},{type:"custom",label:o("StationSidePanel.more.intPaddingApplyGlobal"),component:y.jsx(ze,{selections:[{label:o("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>d(_s(n))}),oneLine:!0,hidden:![J.SHSuburbanRailway].includes(i)}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StationSidePanel.more.title")}),y.jsx(be,{fields:g})]})}function Cs(){const{t:o}=ce(),d=ue(),n=Q(m=>m.app.selectedStation),i=Q(m=>m.param.stn_list),{parents:s,children:e,branch:t}=i[n],r={[ht.through]:o("StationSidePanel.branch.through"),[ht.nonThrough]:o("StationSidePanel.branch.nonThrough")},c=m=>(m===ve.left?s:e).reduce((p,l)=>({...p,[l]:i[l].localisedName.zh+"/"+i[l].localisedName.en}),{}),f={upper:o("StationSidePanel.branch.upper"),lower:o("StationSidePanel.branch.lower")},v=m=>{const p=t==null?void 0:t[m];return p?[{type:"select",label:o("StationSidePanel.branch.type"),options:r,value:p[0],onChange:l=>d(ls(n,m,l))},{type:"select",label:o("StationSidePanel.branch.firstStation"),options:c(m),value:p[1],onChange:l=>d(cs(n,m,l))},{type:"select",label:o("StationSidePanel.branch.position"),options:f,value:(m===ve.left?s:e)[0]===p[1]?"upper":"lower",onChange:()=>d(ds(n,m))}]:[]};return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("Branches")}),y.jsx(Se,{as:"h6",size:"xs",children:o("Branch on the left")}),y.jsx(Me,{direction:"column",children:s.length===2?y.jsx(be,{fields:v(ve.left)}):y.jsx(lt,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:o("No branches found")})}),y.jsx(Se,{as:"h6",size:"xs",children:o("Branch on the right")}),y.jsx(Me,{direction:"column",children:e.length===2?y.jsx(be,{fields:v(ve.right)}):y.jsx(lt,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:o("No branches found")})})]})}function js(){return y.jsxs(Pt,{children:[y.jsx(vs,{}),y.jsx(Ne,{}),y.jsx(ws,{}),y.jsx(Ne,{}),y.jsx(Cs,{}),y.jsx(Ne,{}),y.jsx(ks,{})]})}function As(){const{t:o}=ce(),d=ue(),{style:n,svgWidth:i,svg_height:s,y_pc:e,branchSpacingPct:t,padding:r,direction_gz_x:c,direction_gz_y:f,loop:v}=Q(p=>p.param),m=[...Tt[n].map(p=>({type:"input",label:o("StyleSidePanel.layout.".concat(p,"Width")),value:i[p].toString(),onChange:l=>d(Ln({width:Number(l),canvas:p}))})),{type:"input",label:o("StyleSidePanel.layout.canvasHeight"),value:s.toString(),onChange:p=>d(Fn(Number(p)))},{type:"slider",label:o("StyleSidePanel.layout.verticalPosition"),value:e,min:0,max:100,onChange:p=>d(Un(p)),leftIcon:y.jsx(kt,{}),rightIcon:y.jsx(Ct,{}),hidden:![J.MTR,J.GZMTR].includes(n)},{type:"slider",label:o(v?"StyleSidePanel.layout.branchSpacingLoop":"Branch spacing"),value:t,min:0,max:v?50:100,onChange:p=>d(Wn(p)),leftIcon:y.jsx(Wt,{}),rightIcon:y.jsx(Ie,{})},{type:"slider",label:o("StyleSidePanel.layout.padding"),value:r,min:0,max:50,onChange:p=>d(Zn(p)),leftIcon:y.jsx(Wt,{}),rightIcon:y.jsx(Ie,{})},{type:"slider",label:o("StyleSidePanel.layout.directionGzX"),value:c,min:0,max:100,onChange:p=>d(Hn(p)),leftIcon:y.jsx(cn,{}),rightIcon:y.jsx(dn,{}),hidden:![J.GZMTR].includes(n)},{type:"slider",label:o("StyleSidePanel.layout.directionGzY"),value:f,min:0,max:100,onChange:p=>d(Gn(p)),leftIcon:y.jsx(kt,{}),rightIcon:y.jsx(Ct,{}),hidden:![J.GZMTR].includes(n)}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StyleSidePanel.layout.title")}),y.jsx(be,{fields:m,minW:130})]})}function Es(){var k;const{t:o}=ce(),d=ue(),{paletteAppClipOutput:n}=Q(O=>O.app),{style:i,theme:s,line_name:e,line_num:t,spanLineNum:r,direction:c,platform_num:f,psd_num:v,coachNum:m,namePosMTR:p,customiseMTRDest:l,info_panel_type:g,stn_list:h,loop:_}=Q(O=>O.param),b=Math.max(...Object.values(h).map(O=>O.services.length)),[x,C]=X.useState(!1);X.useEffect(()=>{x&&n&&(d(Vn(n)),C(!1))},[n==null?void 0:n.toString()]);const j=[{label:o("StyleSidePanel.design.left"),value:dt.left},{label:o("StyleSidePanel.design.right"),value:dt.right}],A=Object.values(bt).reduce((O,u)=>({...O,[u]:o("StyleSidePanel.design."+u)}),{}),N=Object.values(Yn).reduce((O,u)=>({...O,[u]:o("StyleSidePanel.design."+u)}),{}),z=[{type:"custom",label:o("Colour"),component:y.jsx(Bt,{theme:s,onClick:()=>{C(!0),d(zt(s))}}),minW:"40px"},{type:"input",label:o("StyleSidePanel.design.zhLineName"),value:e[0],onChange:O=>d(Zt([O,e[1]])),minW:130},{type:"input",label:o("StyleSidePanel.design.enLineName"),value:e[1],onChange:O=>d(Zt([e[0],O])),minW:130},{type:"input",label:o("StyleSidePanel.design.lineNum"),value:t,onChange:O=>d($n(O)),hidden:![J.GZMTR].includes(i)},{type:"custom",label:o("Span digits over rows"),component:y.jsx(ze,{selections:[{label:o("Yes"),value:!0},{label:o("No"),value:!1}],defaultValue:r!=null?r:!1,onChange:O=>d(qn(O))}),hidden:![J.GZMTR].includes(i)},{type:"input",label:o("StyleSidePanel.design.platformNum"),value:f||"",onChange:O=>d(Kn(O))},{type:"input",label:o("StyleSidePanel.design.psdNum"),value:v,onChange:O=>d(Xn(O)),hidden:![J.GZMTR].includes(i)},{type:"input",label:o("Coach number"),value:m,onChange:O=>d(Jn(O)),hidden:![J.GZMTR].includes(i)},{type:"select",label:o("StyleSidePanel.design.panelType"),value:g,options:i===J.GZMTR?A:N,disabledOptions:[bt.gz11,bt.gz1822],onChange:O=>d(Qn(O)),hidden:![J.GZMTR,J.SHMetro].includes(i)},{type:"custom",label:o("StyleSidePanel.design.direction"),component:y.jsx(ze,{selections:j,defaultValue:c,onChange:O=>d(er(O))}),minW:"full",oneLine:!0}],M=[{label:o("StyleSidePanel.design.upwards"),value:!0},{label:o("StyleSidePanel.design.downward"),value:!1}],R=[{type:"custom",label:o("StyleSidePanel.design.firstStationNameDisplay"),component:y.jsx(Re,{spacing:.5,children:y.jsx(ze,{selections:M,defaultValue:(k=p.isFlip)!=null?k:!0,onChange:O=>d(Ht(O))})}),minW:"full",oneLine:!0,hidden:![J.SHMetro].includes(i)||b>1||_}],L=[{label:o("StyleSidePanel.design.alternatively"),value:!0},{label:o("StyleSidePanel.design.onOneSide"),value:!1}],V=[{type:"custom",label:o("StyleSidePanel.design.nameDisplay"),component:y.jsxs(Re,{spacing:.5,children:[y.jsx(Be,{size:"xs",variant:"ghost","aria-label":o("StyleSidePanel.design.flip"),title:o("StyleSidePanel.design.flip"),icon:y.jsx(tr,{}),onClick:()=>d(Ht())}),y.jsx(ze,{selections:L,defaultValue:p.isStagger,onChange:O=>d(nr(O))})]}),minW:"full",oneLine:!0,hidden:![J.MTR].includes(i)},{type:"switch",label:o("StyleSidePanel.design.legacyDestination"),isChecked:l.isLegacy,onChange:O=>d(rr(O)),hidden:![J.MTR].includes(i),minW:"full",oneLine:!0},{type:"switch",label:o("StyleSidePanel.design.overrideTerminal"),isChecked:l.terminal!==!1,onChange:O=>d(_t(O?["",""]:!1)),hidden:![J.MTR].includes(i),minW:"full",oneLine:!0},{type:"input",label:o("StyleSidePanel.design.terminalZhName"),value:l.terminal?l.terminal[0]:"",placeholder:"機場及博覽館",onChange:O=>d(_t([O,l.terminal?l.terminal[1]:""])),hidden:![J.MTR].includes(i)||l.terminal===!1},{type:"input",label:o("StyleSidePanel.design.terminalEnName"),value:l.terminal?l.terminal[1]:"",placeholder:"Airport and AsiaWorld-Expo",onChange:O=>d(_t([l.terminal?l.terminal[0]:"",O])),hidden:![J.MTR].includes(i)||l.terminal===!1}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StyleSidePanel.design.title")}),y.jsx(be,{fields:[...z,...V,...R],minW:130})]})}function Os(){const{t:o}=ce(),d=ue(),{branches:n}=Q(g=>g.helper),{loop:i,loop_info:s,style:e}=Q(g=>g.param),{bank:t,left_and_right_factor:r,bottom_factor:c,clockwise:f}=s,v=n.flat().filter((g=>h=>(g[h]=(g[h]||0)+1)===2)({})).filter(g=>!["linestart","lineend"].includes(g)),m=Math.abs(n[0].indexOf(v[0])-n[0].indexOf(v[1])),p=n.length>=2?(0,Math.min)(n[0].length-2-m,m):Math.floor((n[0].length-2-c*2)/2),l=[{type:"switch",label:o("StyleSidePanel.loop.isLoop"),isChecked:i,onChange:g=>d(sr(g)),minW:"full",oneLine:!0},{type:"switch",label:o("StyleSidePanel.loop.isBank"),isChecked:t,onChange:g=>d(ir(g)),minW:"full",oneLine:!0,hidden:!i||e!==J.SHMetro},{type:"slider",label:o("StyleSidePanel.loop.leftRightFactor"),value:r,min:0,max:p,onChange:g=>d(ar(Math.floor(g))),hidden:!i||e!==J.SHMetro},{type:"slider",label:o("StyleSidePanel.loop.bottomFactor"),value:c,min:0,max:Math.floor((n[0].length-2-r*2)/2),onChange:g=>d(or(Math.floor(g))),hidden:!i||i&&n.length>2||e!==J.SHMetro},{type:"custom",label:o("Loop direction"),component:y.jsx(ze,{selections:[{label:o("Anticlockwise"),value:!1},{label:o("Clockwise"),value:!0}],defaultValue:f!=null?f:!1,onChange:g=>d(lr(g))}),hidden:!i||![J.GZMTR].includes(e),oneLine:!0}];return y.jsxs(ke,{p:1,children:[y.jsxs(Se,{as:"h5",size:"sm",children:[o("StyleSidePanel.loop.title")," ",e===J.GZMTR?"(Beta)":""]}),y.jsx(be,{fields:l})]})}function zs(o){const{note:d,onUpdate:n,onDelete:i}=o,{t:s}=ce(),e=[{type:"textarea",label:s("StyleSidePanel.note.zhNote"),value:d[0],onChange:r=>n==null?void 0:n([r,d[1],d[2],d[3],d[4]])},{type:"textarea",label:s("StyleSidePanel.note.enNote"),value:d[1],onChange:r=>n==null?void 0:n([d[0],r,d[2],d[3],d[4]])},{type:"switch",label:s("StyleSidePanel.note.border"),isChecked:d[4],onChange:r=>n==null?void 0:n([d[0],d[1],d[2],d[3],r]),oneLine:!0}],t=[{type:"slider",label:s("StyleSidePanel.note.positionX"),value:d[2],min:0,max:100,onChange:r=>n==null?void 0:n([d[0],d[1],r,d[3],d[4]]),leftIcon:y.jsx(cn,{}),rightIcon:y.jsx(dn,{})},{type:"slider",label:s("StyleSidePanel.note.positionY"),value:d[3],min:0,max:100,onChange:r=>n==null?void 0:n([d[0],d[1],d[2],r,d[4]]),leftIcon:y.jsx(kt,{}),rightIcon:y.jsx(Ct,{})}];return y.jsxs(Me,{direction:"column",children:[y.jsx(be,{fields:e,minW:"full"}),y.jsxs(Re,{spacing:.5,sx:{"&>div":{flex:1}},children:[y.jsx(be,{fields:t}),y.jsx(Be,{size:"sm",variant:"ghost","aria-label":s("StyleSidePanel.note.remove"),onClick:()=>i==null?void 0:i(),icon:y.jsx(Rt,{})})]})]})}function Rs(){const{t:o}=ce(),d=ue(),n=Q(i=>i.param.notesGZMTR);return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StyleSidePanel.note.title")}),y.jsxs(Ot,{spacing:.5,children:[n==null?void 0:n.map((i,s)=>y.jsx(zs,{note:i,onUpdate:e=>d(cr({index:s,note:e})),onDelete:()=>d(dr(s))},s)),y.jsx(de,{size:"xs",variant:"ghost",leftIcon:y.jsx(Ie,{}),alignSelf:"flex-end",onClick:()=>d(hr()),children:o("StyleSidePanel.note.add")})]})]})}function Ps(){const{style:o}=Q(d=>d.param);return y.jsxs(Pt,{children:[y.jsx(As,{}),y.jsx(Ne,{}),y.jsx(Es,{}),[J.GZMTR,J.SHMetro].includes(o)&&y.jsxs(y.Fragment,{children:[y.jsx(Ne,{}),y.jsx(Os,{})]}),o===J.GZMTR&&y.jsxs(y.Fragment,{children:[y.jsx(Ne,{}),y.jsx(Rs,{})]})]})}const Nt=(o,d)=>{if(["linestart","lineend"].includes(o)||d[o].parents.length>1||d[o].children.length>1)return 0;const n=d[o].parents[0];return n?d[n].children.length===1?Nt(n,d):d[n].children.indexOf(o)===0?1:-1:0},Ts=o=>(d,n)=>{const{stn_list:i,current_stn_idx:s}=n().param;if(o===s)return console.log("removeStation():: failed as current station cannot be deleted"),!1;const{parents:e,children:t}=i[o];return Object.keys(i).length===4?(console.log("removeStation():: failed as only 2 stations remaining"),!1):e.length===2&&t.length===2?(console.log("removeStation():: failed as branches on both sides cannot be combined"),!1):Object.keys(i).some(c=>![o,"linestart","lineend"].includes(c)&&Nt(c,i)===0)?!0:(console.log("removeStation():: failed as selected station is the only station without siblings"),!1)},Is=o=>(d,n)=>{var r,c;const i=n().param.stn_list,{parents:s,children:e}=i[o];let t=JSON.parse(JSON.stringify(i));s.length===2||e.length===2?(s.forEach(f=>{t[f].children=e}),e.forEach(f=>{t[f].parents=s}),s.length===1&&(t[s[0]].branch={...t[s[0]].branch,right:(r=t[o].branch)==null?void 0:r.right}),e.length===1&&(t[e[0]].branch={...t[e[0]].branch,left:(c=t[o].branch)==null?void 0:c.left})):i[s[0]].children.length===2&&i[e[0]].parents.length===2?t={...i,[s[0]]:{...i[s[0]],children:i[s[0]].children.filter(f=>f!==o),branch:{...i[s[0]].branch,right:void 0}},[e[0]]:{...i[e[0]],parents:i[e[0]].parents.filter(f=>f!==o),branch:{...i[e[0]].branch,left:void 0}}}:(s.forEach(f=>{var m,p,l,g;const v=t[f].children.indexOf(o);e.length?t[f].children[v]=e[0]:t[f].children.splice(v,1),((p=(m=t[f].branch)==null?void 0:m.right)==null?void 0:p[1])===o&&(t[f].branch={...t[f].branch,right:(g=(l=t[f].branch)==null?void 0:l.right)==null?void 0:g.with(1,e[0])})}),e.forEach(f=>{var m,p,l,g;const v=t[f].parents.indexOf(o);s.length?t[f].parents[v]=s[0]:t[f].parents.splice(v,1),((p=(m=t[f].branch)==null?void 0:m.left)==null?void 0:p[1])===o&&(t[f].branch={...t[f].branch,left:(g=(l=t[f].branch)==null?void 0:l.left)==null?void 0:g.with(1,s[0])})})),delete t[o],d(we(t))};function Bs(...o){return o.reduce((d,n)=>d.map(i=>n.map(s=>i.concat([s]))).reduce((i,s)=>i.concat(s),[]),[[]])}const We=(o,d)=>!!d[o[0]].children.indexOf(o[1]),mn=(o,d)=>[o[0][1],o[0][o[0].length-2],...o[0].filter(n=>o.slice(1).filter(i=>We(i,d)).map(i=>i.filter(s=>!["linestart","lineend"].includes(s))).map(i=>[i[0],i[i.length-1]]).flat().includes(n))],Ns=(o,d)=>o.slice(1).filter(n=>We(n,d)).map(n=>n.filter(i=>!["linestart","lineend"].includes(i))).map(n=>[n[0],n[n.length-1]]),Ms=o=>(d,n)=>{const i=n().helper.branches;if(o===0){const s=n().param.stn_list,e=mn(i,s);return Bs(e,e).filter(t=>t[0]!==t[1])}else{const s=i[o];if(s){const e=s.filter(t=>!["linestart","lineend"].includes(t));return[[e[0],e.slice(-1)[0]]]}else return[]}},Bi=(o,d)=>(n,i)=>{const s=i().param.coline,e=i().helper.branches[d];for(const[t,r]of Object.entries(s))if(r.from===o&&e.includes(r.to)){const c=e.indexOf(o),f=e.indexOf(r.to);if(f>c)return[f-c+1,t]}else if(r.to===o&&e.includes(r.to)){const c=e.indexOf(o),f=e.indexOf(r.from);if(f>c)return[f-c+1,t]}return[0,void 0]},gn=(o,d)=>(n,i)=>{const s=i().param.stn_list,e=i().helper.branches;if(o===d)throw new Error("addColine():: failed for same stnId");const t=mn(e,s).filter(c=>[o,d].includes(c)),r=Ns(e,s).filter(c=>[o,d].every(f=>c.includes(f)));if(t.length===2&&r.length>0)throw new Error("addColine():: main check failed for ".concat(o,", ").concat(d));if(t.length!==2&&r.length!==1)throw new Error("addColine():: branch check failed for ".concat(o,", ").concat(d))},Ds=o=>(d,n)=>{const i=n().param.coline,e=n().helper.branches[o];return e?Object.entries(i).reduce((t,r)=>e.includes(r[1].from)&&e.includes(r[1].to)?{...t,[r[0]]:r[1]}:{...t},{}):{}},Ls=o=>(d,n)=>{const i=n().param.coline;if(Object.keys(i).length===0)return;const s=Object.entries(i).reduce((e,t)=>t[1].from!==o&&t[1].to!==o?{...e,[t[0]]:t[1]}:{...e},{});d(Fe(s))},Fs=(o,d,n,i=!0)=>(s,e)=>{const t=e().param.coline;s(gn(o,d)),s(Fe({...t,[qe(4)]:{from:o,to:d,colors:n,display:i}}))},Us=(o,d,n,i=!0)=>(s,e)=>{const t=e().param.coline;if(o in t){s(gn(d,n));const r={...t,[o]:{...t[o],from:d,to:n,display:i}};s(Fe(r))}},Ws=(o,d)=>(n,i)=>{const s=i().param.coline;if(o in s&&s[o].colors.length>d){const e=s[o].colors.filter((t,r)=>r!==d);if(e.length===0){const{[o]:t,...r}=s;n(Fe(r))}else{const t={...s,[o]:{...s[o],colors:e}};n(Fe(t))}}},Zs=(o,d,n)=>(i,s)=>{const e=s().param.coline;if(o in e&&e[o].colors.length>d){const t={...e,[o]:{...e[o],colors:e[o].colors.map((r,c)=>c===d?[0,1,2,3,4,5].map(f=>n[f]===void 0?r[f]:n[f]):r)}};i(Fe(t))}};function Hs(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),e=Q(f=>f.app.selectedStation),[t,r]=X.useState(!1);X.useEffect(()=>{d||r(!1)},[d]);const c=()=>{const f=s(Ts(e));f?(n(),s(Ue(De.CLOSE)),s(hn("linestart")),s(Ls(e)),s(Is(e))):r(!0),le.event(xe.REMOVE_STATION,{success:f})};return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[t&&y.jsxs(ut,{status:"error",variant:"solid",size:"xs",children:[y.jsx(ft,{}),i("Unable to remove this station.")]}),y.jsxs(ke,{position:"relative",children:[y.jsx(Qe,{children:i("Remove station")}),y.jsx(et,{})]}),y.jsx(tt,{children:i("Are you sure to remove station? You cannot undo this action.")}),y.jsxs(nt,{children:[y.jsx(de,{onClick:n,children:i("Cancel")}),y.jsx(de,{colorScheme:"primary",onClick:c,ml:3,children:i("Confirm")})]})]})]})}function Gs(){const{t:o}=ce(),d=ue(),{selectedStation:n}=Q(r=>r.app),{loop:i,style:s}=Q(r=>r.param),[e,t]=X.useState(!1);return y.jsxs(ur,{children:[y.jsxs(Re,{children:[y.jsx(de,{size:"sm",variant:"outline",onClick:()=>d(jt(n)),children:o("StationSidePanel.footer.current")}),s===J.GZMTR&&i&&y.jsx(de,{size:"sm",variant:"outline",onClick:()=>d(fr(n)),children:o("Set as midpoint")}),y.jsx(de,{size:"sm",variant:"outline",onClick:()=>t(!0),children:o("StationSidePanel.footer.remove")})]}),y.jsx(Hs,{isOpen:e,onClose:()=>t(!1)})]})}function Vs(o){const{colineInfo:d,routeOptions:n,onUpdateRoute:i,onUpdateColourInfo:s,onDelete:e}=o,{t}=ce(),r=ue(),{paletteAppClipOutput:c}=Q(l=>l.app),[f,v]=X.useState(!1);X.useEffect(()=>{f&&c&&(s==null||s([...c,d.colors[0][4],d.colors[0][5]]),v(!1))},[c==null?void 0:c.toString()]);const m=[{type:"select",label:"Route",value:[d.from,d.to].join(","),options:n,onChange:l=>i==null?void 0:i(l)}],p=[{type:"custom",label:t("Colour"),component:y.jsx(Bt,{theme:[d.colors[0][0],d.colors[0][1],d.colors[0][2],d.colors[0][3]],onClick:()=>{v(!0),r(zt(d.colors[0].slice(0,4)))}})},{type:"input",label:t("Chinese name"),value:d.colors[0][4],minW:120,onChange:l=>s==null?void 0:s([d.colors[0][0],d.colors[0][1],d.colors[0][2],d.colors[0][3],l,d.colors[0][5]])},{type:"input",label:t("English name"),value:d.colors[0][5],minW:120,onChange:l=>s==null?void 0:s([d.colors[0][0],d.colors[0][1],d.colors[0][2],d.colors[0][3],d.colors[0][4],l])}];return y.jsxs(Me,{direction:"column",children:[y.jsx(be,{fields:m,minW:"full"}),y.jsxs(Re,{spacing:.5,children:[y.jsx(be,{fields:p}),y.jsx(Be,{size:"sm",variant:"ghost","aria-label":"Delete colour for route",onClick:()=>e==null?void 0:e(0),icon:y.jsx(Rt,{})})]})]})}function Ys(){const{t:o}=ce(),d=ue(),n=Q(p=>p.app.selectedBranch),{theme:i,stn_list:s}=Q(p=>p.param),e=d(Ds(n)),t=d(Ms(n)),r=p=>p.map(l=>s[l].localisedName.zh+"/"+s[l].localisedName.en).join(" ~ "),c=t.reduce((p,l)=>({...p,[l.join(",")]:r(l)}),{}),f=()=>{console.log("ColineSection.handleAddTrackSharing():: Adding track sharing to branch ".concat(n," with default combination"),t[0]),d(Fs(t[0][0],t[0][1],[[i[0],"","#AAAAAA",ct.white,"",""]]))},v=p=>l=>{const[g,h]=l.split(",");console.log("ColineSection.handleUpdateRoute():: Updating route, colineId=".concat(p,", from=").concat(g,", to=").concat(h));try{d(Us(p,g,h))}catch(_){d(At({status:"error",message:"Unable to draw this share track."}))}},m=(p,l)=>{d(Ws(p,l))};return y.jsxs(Ot,{align:"flex-start",p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("BranchSidePanel.coline.title")}),Object.entries(e).map(([p,l])=>y.jsx(Vs,{colineInfo:l,routeOptions:c,onUpdateRoute:v(p),onUpdateColourInfo:g=>d(Zs(p,0,g)),onDelete:g=>m(p,g)},p)),(n===0||Object.keys(e).length===0)&&y.jsx(de,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:y.jsx(Ie,{}),onClick:f,children:o("BranchSidePanel.coline.add")})]})}function $s(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),e=Q(j=>j.app.selectedBranch),{style:t,stn_list:r}=Q(j=>j.param),c=Q(j=>j.helper.branches),[f,v]=X.useState(e),[m,p]=X.useState("1"),[l,g]=X.useState("2"),[h,_]=X.useState("asc");X.useEffect(()=>{v(e)},[e]);const b=[{type:"select",label:i("AutoNumModal.where"),value:f,options:{...c.reduce((j,A,N)=>({...j,[N]:N===0?i("AutoNumModal.main"):t!==J.SHMetro||!We(A,r)?i("AutoNumModal.branch")+" "+N:i("AutoNumModal.external")+" "+N}),{})},onChange:j=>v(j)},{type:"input",label:i("AutoNumModal.from"),value:m,validator:j=>!isNaN(Number(j)),onChange:p,debouncedDelay:0},{type:"input",label:i("AutoNumModal.maxLength"),validator:j=>!isNaN(Number(j)),value:l,onChange:g,debouncedDelay:0},{type:"select",label:i("AutoNumModal.sort"),value:h,options:{asc:i("AutoNumModal.asc"),desc:i("AutoNumModal.desc")},onChange:j=>_(j)}],x=()=>{s(ys(f,Number(m),Number(l),h)),n(),le.event(xe.AUTO_NUMBERING,{})},C=!m||!l||isNaN(Number(m))||isNaN(Number(l));return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[y.jsx(Qe,{children:i("AutoNumModal.title")}),y.jsx(et,{}),y.jsx(tt,{children:y.jsx(be,{fields:b})}),y.jsx(nt,{children:y.jsx(de,{colorScheme:"primary",isDisabled:C,onClick:x,children:i("Confirm")})})]})]})}const Mt=o=>(d,n)=>{const s=n().helper.branches[o];return s.includes("linestart")||s.includes("lineend")?1:2},bn=o=>(d,n)=>{const{branches:i}=n().helper,s=i[0],e=i[o];return s.slice(s.indexOf(e[0])+1,s.indexOf(e.slice(-1)[0]))},qs=(o,d)=>n=>n(Mt(d))===2?(console.log("isStationValid2ConnectBranch():: failed as current branch has 2 connected ends"),!1):n(bn(d)).includes(o)?!0:(console.log("isStationValid2ConnectBranch():: failed as the target station is invalid"),!1),Ks=(o,d)=>(n,i)=>{var c,f;if(!n(qs(o,d)))return!1;const{branches:e}=i().helper,t=i().param.stn_list,r=e[d];if(r[0]==="linestart"){const v={...t,[r[1]]:{...t[r[1]],parents:[o]},[o]:{...t[o],children:t.linestart.children.map(m=>m===r[1]?m:t[o].children[0]),branch:{right:(c=t.linestart.branch)==null?void 0:c.right}},linestart:{...t.linestart,children:t.linestart.children.filter(m=>m!==r[1]),branch:{}}};return n(we(v)),!0}else{const v=r.slice(-2)[0],m={...t,[v]:{...t[v],children:[o]},[o]:{...t[o],parents:t.lineend.parents.map(p=>p===v?p:t[o].parents[0]),branch:{left:(f=t.lineend.branch)==null?void 0:f.left}},lineend:{...t.lineend,parents:t.lineend.parents.filter(p=>p!==v),branch:{}}};return n(we(m)),!0}},_n=o=>(d,n)=>{const{branches:i}=n().helper,s=n().param.stn_list,e=i[0],t=i[o];if(d(Mt(o))!==2)return console.log("getPossibleDirection():: failed as there is no possible direction"),[];const c=e.indexOf(t[0]),f=e.slice(0,c),v=e.indexOf(t.slice(-1)[0]),m=e.slice(v+1),p=f.every(g=>s[g].children.length<=1&&s[g].parents.length<=1),l=m.every(g=>s[g].children.length<=1&&s[g].parents.length<=1);return p?l?[ve.left,ve.right]:[ve.left]:l?[ve.right]:[]},Xs=(o,d)=>(n,i)=>{var f,v;if(!n(_n(d)).includes(o))return console.log("disconnectFromMainLine():: failed as the aim direction is not in the possible direction list"),!1;const{branches:e}=i().helper,t=i().param.stn_list,r=e[0],c=e[d];if(o===ve.left){const m=c[0],p={...t,[c[1]]:{...t[c[1]],parents:["linestart"]},[m]:{...t[m],children:t[m].children.filter(l=>l!==c[1]),branch:{}},linestart:{...t.linestart,children:t[m].children.map(l=>l===c[1]?l:r[1]),branch:{right:(f=t[m].branch)==null?void 0:f.right}}};return n(we(p)),!0}else{const m=c.slice(-1)[0],p=c.slice(-2)[0],l={...t,[p]:{...t[p],children:["lineend"]},[m]:{...t[m],parents:t[m].parents.filter(g=>g!==p),branch:{}},lineend:{...t.lineend,parents:t[m].parents.map(g=>g===p?g:r.slice(-2)[0]),branch:{left:(v=t[m].branch)==null?void 0:v.left}}};return n(we(l)),!0}};function en(o){const{direction:d}=o,{t:n}=ce(),i=ue(),{branches:s}=Q(z=>z.helper),e=Q(z=>z.app.selectedBranch),{style:t,stn_list:r}=Q(z=>z.param),[c,f]=X.useState(!1),[v,m]=X.useState(""),p=s[e].filter(z=>!["linestart","lineend"].includes(z)),l=d===ve.left?p[0]:p.slice(-1)[0],g=r[l],h=i(bn(e)),_=i(Mt(e)),b=i(_n(e)),x=_===1&&!s[0].includes(l),C=b.includes(d),j=h.reduce((z,M)=>{var R,L;return{...z,[M]:((R=r[M])==null?void 0:R.localisedName.zh)+"/"+((L=r[M])==null?void 0:L.localisedName.en)}},{"":n("Please select...")}),A=()=>{const z=i(Ks(v,e));z?f(!1):i(At({status:"error",message:n("Unable to connect to main line.")})),le.event(xe.CONNECT_BRANCH,{style:t,success:z})},N=()=>{const z=i(Xs(d,e));z||i(At({status:"error",message:n("Unable to disconnect from main line.")})),le.event(xe.DISCONNECT_BRANCH,{style:t,success:z})};return y.jsxs(Me,{direction:"column",children:[y.jsxs(Te,{alignItems:"center",children:[y.jsx(wt,{label:n("Station name"),flex:1,children:y.jsx(pr,{defaultValue:g.localisedName.zh+"/"+g.localisedName.en,isDisabled:!0})}),c?y.jsx(de,{mx:1,size:"sm",variant:"outline",onClick:()=>f(!1),children:n("Cancel")}):x?y.jsx(de,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>f(!0),children:n("Connect to main line")}):y.jsx(de,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:N,isDisabled:!C,children:n("Disconnect from main line")})]}),c&&y.jsxs(Te,{alignItems:"center",children:[y.jsx(wt,{label:n("Target station"),flex:1,children:y.jsx(mr,{defaultValue:v,options:j,disabledOptions:[""],onChange:({target:{value:z}})=>m(z)})}),y.jsx(de,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:A,isDisabled:!v,children:n("Confirm")})]})]})}function Js(){const{t:o}=ce(),d=ue(),n=Q(r=>r.param.style),i=Q(r=>r.app.selectedBranch),[s,e]=X.useState(!1),t=()=>{d(ts(n===J.SHMetro)),le.event(xe.REVERSE_STATIONS,{style:n})};return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("BranchSidePanel.action.title")}),y.jsxs(Te,{wrap:"wrap",sx:{p:1,"&> *":{flexShrink:0,flexBasis:"100%","&:not(:first-of-type)":{marginTop:2}}},children:[i!==0&&n!==J.SHMetro&&y.jsxs(y.Fragment,{children:[y.jsx(Se,{as:"h6",size:"xs",children:o("Branch left end")}),y.jsx(en,{direction:ve.left}),y.jsx(Se,{as:"h6",size:"xs",children:o("Branch right end")}),y.jsx(en,{direction:ve.right})]}),n===J.GZMTR&&y.jsx(de,{size:"sm",variant:"outline",leftIcon:y.jsx(gr,{}),alignSelf:"flex-end",onClick:()=>e(!0),children:o("BranchSidePanel.action.autoNum")}),y.jsx(de,{size:"sm",variant:"outline",leftIcon:y.jsx(br,{}),alignSelf:"flex-end",onClick:t,children:n===J.SHMetro?o("BranchSidePanel.action.flip"):o("BranchSidePanel.action.reverse")})]}),y.jsx($s,{isOpen:s,onClose:()=>e(!1)})]})}function Qs(){const o=Q(s=>s.app.selectedBranch),{style:d,stn_list:n}=Q(s=>s.param),i=Q(s=>s.helper.branches);return y.jsxs(Pt,{children:[d===J.SHMetro&&(o===0||We(i[o],n))&&y.jsxs(y.Fragment,{children:[y.jsx(Ys,{}),y.jsx(Ne,{})]}),y.jsx(Js,{})]})}const ei="rmg-palette-bridge--",ti={position:"relative",h:460,maxH:"70%","& > button":{position:"absolute",right:1,top:1},"& iframe":{h:"100%",w:"100%"}};function ni(o){const{isOpen:d,onClose:n,defaultTheme:i,onSelect:s}=o,[e]=X.useState(qe()),[t,r]=X.useState(!1),c="/rmg-palette/#/picker?"+new URLSearchParams({parentComponent:le.getAppName(),parentId:e}),f=X.useRef();return X.useEffect(()=>{const v=new BroadcastChannel(ei+e);return f.current=v,v.onmessage=m=>{const{event:p,data:l}=m.data;console.log("[rmg] Received event from Palette app clip:",p),p==="CLOSE"?n():p==="SELECT"?s(l):p==="LOADED"&&r(!0)},()=>{v.close()}},[]),X.useEffect(()=>{var v;i&&((v=f.current)==null||v.postMessage({event:"OPEN",data:i}))},[t,i==null?void 0:i.toString()]),y.jsxs(un,{size:"md",isOpen:d,onClose:n,sx:ti,children:[y.jsx(rn,{onClick:n}),y.jsx("iframe",{src:c,loading:"eager"})]})}const ri=410;function si(){var c,f;const{t:o}=ce(),d=an(),{sidePanelMode:n,selectedStation:i,paletteAppClipInput:s}=Q(v=>v.app),e=Q(v=>{var m;return(m=v.param.stn_list[i])==null?void 0:m.localisedName}),t={STATION:{header:y.jsx(Kr,{text:(e==null?void 0:e.zh)+"/"+(e==null?void 0:e.en)||""}),body:y.jsx(js,{}),footer:y.jsx(Gs,{})},STYLE:{header:o("StyleSidePanel.header"),body:y.jsx(Ps,{})},BRANCH:{header:o("BranchSidePanel.header"),body:y.jsx(Qs,{})},CLOSE:{header:"Close"}},r=()=>{d(Ue(De.CLOSE))};return y.jsxs(_r,{isOpen:n!==De.CLOSE,width:ri,header:"Dummy header",children:[y.jsx(yr,{onClose:r,children:t[n].header}),(c=t[n])==null?void 0:c.body,(f=t[n])==null?void 0:f.footer,y.jsx(ni,{isOpen:!!s,onClose:()=>d(vr()),defaultTheme:s,onSelect:v=>d(Sr(v))})]})}function ot(o){throw new Error('Could not dynamically require "'+o+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var St={exports:{}};/*! + +JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/main/LICENSE +*/var tn;function ii(){return tn||(tn=1,function(o,d){(function(n){o.exports=n()})(function(){return function n(i,s,e){function t(f,v){if(!s[f]){if(!i[f]){var m=typeof ot=="function"&&ot;if(!v&&m)return m(f,!0);if(r)return r(f,!0);var p=new Error("Cannot find module '"+f+"'");throw p.code="MODULE_NOT_FOUND",p}var l=s[f]={exports:{}};i[f][0].call(l.exports,function(g){var h=i[f][1][g];return t(h||g)},l,l.exports,n,i,s,e)}return s[f].exports}for(var r=typeof ot=="function"&&ot,c=0;c>2,l=(3&f)<<4|v>>4,g=1>6:64,h=2>4,v=(15&p)<<4|(l=r.indexOf(c.charAt(h++)))>>2,m=(3&l)<<6|(g=r.indexOf(c.charAt(h++))),x[_++]=f,l!==64&&(x[_++]=v),g!==64&&(x[_++]=m);return x}},{"./support":30,"./utils":32}],2:[function(n,i,s){var e=n("./external"),t=n("./stream/DataWorker"),r=n("./stream/Crc32Probe"),c=n("./stream/DataLengthProbe");function f(v,m,p,l,g){this.compressedSize=v,this.uncompressedSize=m,this.crc32=p,this.compression=l,this.compressedContent=g}f.prototype={getContentWorker:function(){var v=new t(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),m=this;return v.on("end",function(){if(this.streamInfo.data_length!==m.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),v},getCompressedWorker:function(){return new t(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},f.createWorkerFrom=function(v,m,p){return v.pipe(new r).pipe(new c("uncompressedSize")).pipe(m.compressWorker(p)).pipe(new c("compressedSize")).withStreamInfo("compression",m)},i.exports=f},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(n,i,s){var e=n("./stream/GenericWorker");s.STORE={magic:"\0\0",compressWorker:function(){return new e("STORE compression")},uncompressWorker:function(){return new e("STORE decompression")}},s.DEFLATE=n("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(n,i,s){var e=n("./utils"),t=function(){for(var r,c=[],f=0;f<256;f++){r=f;for(var v=0;v<8;v++)r=1&r?3988292384^r>>>1:r>>>1;c[f]=r}return c}();i.exports=function(r,c){return r!==void 0&&r.length?e.getTypeOf(r)!=="string"?function(f,v,m,p){var l=t,g=p+m;f^=-1;for(var h=p;h>>8^l[255&(f^v[h])];return-1^f}(0|c,r,r.length,0):function(f,v,m,p){var l=t,g=p+m;f^=-1;for(var h=p;h>>8^l[255&(f^v.charCodeAt(h))];return-1^f}(0|c,r,r.length,0):0}},{"./utils":32}],5:[function(n,i,s){s.base64=!1,s.binary=!1,s.dir=!1,s.createFolders=!0,s.date=null,s.compression=null,s.compressionOptions=null,s.comment=null,s.unixPermissions=null,s.dosPermissions=null},{}],6:[function(n,i,s){var e=null;e=typeof Promise<"u"?Promise:n("lie"),i.exports={Promise:e}},{lie:37}],7:[function(n,i,s){var e=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",t=n("pako"),r=n("./utils"),c=n("./stream/GenericWorker"),f=e?"uint8array":"array";function v(m,p){c.call(this,"FlateWorker/"+m),this._pako=null,this._pakoAction=m,this._pakoOptions=p,this.meta={}}s.magic="\b\0",r.inherits(v,c),v.prototype.processChunk=function(m){this.meta=m.meta,this._pako===null&&this._createPako(),this._pako.push(r.transformTo(f,m.data),!1)},v.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},v.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},v.prototype._createPako=function(){this._pako=new t[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var m=this;this._pako.onData=function(p){m.push({data:p,meta:m.meta})}},s.compressWorker=function(m){return new v("Deflate",m)},s.uncompressWorker=function(){return new v("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(n,i,s){function e(l,g){var h,_="";for(h=0;h>>=8;return _}function t(l,g,h,_,b,x){var C,j,A=l.file,N=l.compression,z=x!==f.utf8encode,M=r.transformTo("string",x(A.name)),R=r.transformTo("string",f.utf8encode(A.name)),L=A.comment,V=r.transformTo("string",x(L)),k=r.transformTo("string",f.utf8encode(L)),O=R.length!==A.name.length,u=k.length!==L.length,D="",ne="",Z="",se=A.dir,H=A.date,re={crc32:0,compressedSize:0,uncompressedSize:0};g&&!h||(re.crc32=l.crc32,re.compressedSize=l.compressedSize,re.uncompressedSize=l.uncompressedSize);var I=0;g&&(I|=8),z||!O&&!u||(I|=2048);var T=0,te=0;se&&(T|=16),b==="UNIX"?(te=798,T|=function($,fe){var ye=$;return $||(ye=fe?16893:33204),(65535&ye)<<16}(A.unixPermissions,se)):(te=20,T|=function($){return 63&($||0)}(A.dosPermissions)),C=H.getUTCHours(),C<<=6,C|=H.getUTCMinutes(),C<<=5,C|=H.getUTCSeconds()/2,j=H.getUTCFullYear()-1980,j<<=4,j|=H.getUTCMonth()+1,j<<=5,j|=H.getUTCDate(),O&&(ne=e(1,1)+e(v(M),4)+R,D+="up"+e(ne.length,2)+ne),u&&(Z=e(1,1)+e(v(V),4)+k,D+="uc"+e(Z.length,2)+Z);var q="";return q+="\n\0",q+=e(I,2),q+=N.magic,q+=e(C,2),q+=e(j,2),q+=e(re.crc32,4),q+=e(re.compressedSize,4),q+=e(re.uncompressedSize,4),q+=e(M.length,2),q+=e(D.length,2),{fileRecord:m.LOCAL_FILE_HEADER+q+M+D,dirRecord:m.CENTRAL_FILE_HEADER+e(te,2)+q+e(V.length,2)+"\0\0\0\0"+e(T,4)+e(_,4)+M+D+V}}var r=n("../utils"),c=n("../stream/GenericWorker"),f=n("../utf8"),v=n("../crc32"),m=n("../signature");function p(l,g,h,_){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=g,this.zipPlatform=h,this.encodeFileName=_,this.streamFiles=l,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}r.inherits(p,c),p.prototype.push=function(l){var g=l.meta.percent||0,h=this.entriesCount,_=this._sources.length;this.accumulate?this.contentBuffer.push(l):(this.bytesWritten+=l.data.length,c.prototype.push.call(this,{data:l.data,meta:{currentFile:this.currentFile,percent:h?(g+100*(h-_-1))/h:100}}))},p.prototype.openedSource=function(l){this.currentSourceOffset=this.bytesWritten,this.currentFile=l.file.name;var g=this.streamFiles&&!l.file.dir;if(g){var h=t(l,g,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:h.fileRecord,meta:{percent:0}})}else this.accumulate=!0},p.prototype.closedSource=function(l){this.accumulate=!1;var g=this.streamFiles&&!l.file.dir,h=t(l,g,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(h.dirRecord),g)this.push({data:function(_){return m.DATA_DESCRIPTOR+e(_.crc32,4)+e(_.compressedSize,4)+e(_.uncompressedSize,4)}(l),meta:{percent:100}});else for(this.push({data:h.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},p.prototype.flush=function(){for(var l=this.bytesWritten,g=0;g=this.index;c--)f=(f<<8)+this.byteAt(c);return this.index+=r,f},readString:function(r){return e.transformTo("string",this.readData(r))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var r=this.readInt(4);return new Date(Date.UTC(1980+(r>>25&127),(r>>21&15)-1,r>>16&31,r>>11&31,r>>5&63,(31&r)<<1))}},i.exports=t},{"../utils":32}],19:[function(n,i,s){var e=n("./Uint8ArrayReader");function t(r){e.call(this,r)}n("../utils").inherits(t,e),t.prototype.readData=function(r){this.checkOffset(r);var c=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,c},i.exports=t},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(n,i,s){var e=n("./DataReader");function t(r){e.call(this,r)}n("../utils").inherits(t,e),t.prototype.byteAt=function(r){return this.data.charCodeAt(this.zero+r)},t.prototype.lastIndexOfSignature=function(r){return this.data.lastIndexOf(r)-this.zero},t.prototype.readAndCheckSignature=function(r){return r===this.readData(4)},t.prototype.readData=function(r){this.checkOffset(r);var c=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,c},i.exports=t},{"../utils":32,"./DataReader":18}],21:[function(n,i,s){var e=n("./ArrayReader");function t(r){e.call(this,r)}n("../utils").inherits(t,e),t.prototype.readData=function(r){if(this.checkOffset(r),r===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+r);return this.index+=r,c},i.exports=t},{"../utils":32,"./ArrayReader":17}],22:[function(n,i,s){var e=n("../utils"),t=n("../support"),r=n("./ArrayReader"),c=n("./StringReader"),f=n("./NodeBufferReader"),v=n("./Uint8ArrayReader");i.exports=function(m){var p=e.getTypeOf(m);return e.checkSupport(p),p!=="string"||t.uint8array?p==="nodebuffer"?new f(m):t.uint8array?new v(e.transformTo("uint8array",m)):new r(e.transformTo("array",m)):new c(m)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(n,i,s){s.LOCAL_FILE_HEADER="PK",s.CENTRAL_FILE_HEADER="PK",s.CENTRAL_DIRECTORY_END="PK",s.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",s.ZIP64_CENTRAL_DIRECTORY_END="PK",s.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(n,i,s){var e=n("./GenericWorker"),t=n("../utils");function r(c){e.call(this,"ConvertWorker to "+c),this.destType=c}t.inherits(r,e),r.prototype.processChunk=function(c){this.push({data:t.transformTo(this.destType,c.data),meta:c.meta})},i.exports=r},{"../utils":32,"./GenericWorker":28}],25:[function(n,i,s){var e=n("./GenericWorker"),t=n("../crc32");function r(){e.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}n("../utils").inherits(r,e),r.prototype.processChunk=function(c){this.streamInfo.crc32=t(c.data,this.streamInfo.crc32||0),this.push(c)},i.exports=r},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(n,i,s){var e=n("../utils"),t=n("./GenericWorker");function r(c){t.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}e.inherits(r,t),r.prototype.processChunk=function(c){if(c){var f=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=f+c.data.length}t.prototype.processChunk.call(this,c)},i.exports=r},{"../utils":32,"./GenericWorker":28}],27:[function(n,i,s){var e=n("../utils"),t=n("./GenericWorker");function r(c){t.call(this,"DataWorker");var f=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(v){f.dataIsReady=!0,f.data=v,f.max=v&&v.length||0,f.type=e.getTypeOf(v),f.isPaused||f._tickAndRepeat()},function(v){f.error(v)})}e.inherits(r,t),r.prototype.cleanUp=function(){t.prototype.cleanUp.call(this),this.data=null},r.prototype.resume=function(){return!!t.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0)},r.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},r.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,f=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,f);break;case"uint8array":c=this.data.subarray(this.index,f);break;case"array":case"nodebuffer":c=this.data.slice(this.index,f)}return this.index=f,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=r},{"../utils":32,"./GenericWorker":28}],28:[function(n,i,s){function e(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}e.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,r){return this._listeners[t].push(r),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,r){if(this._listeners[t])for(var c=0;c "+t:t}},i.exports=e},{}],29:[function(n,i,s){var e=n("../utils"),t=n("./ConvertWorker"),r=n("./GenericWorker"),c=n("../base64"),f=n("../support"),v=n("../external"),m=null;if(f.nodestream)try{m=n("../nodejs/NodejsStreamOutputAdapter")}catch(g){}function p(g,h){return new v.Promise(function(_,b){var x=[],C=g._internalType,j=g._outputType,A=g._mimeType;g.on("data",function(N,z){x.push(N),h&&h(z)}).on("error",function(N){x=[],b(N)}).on("end",function(){try{var N=function(z,M,R){switch(z){case"blob":return e.newBlob(e.transformTo("arraybuffer",M),R);case"base64":return c.encode(M);default:return e.transformTo(z,M)}}(j,function(z,M){var R,L=0,V=null,k=0;for(R=0;R"u")s.blob=!1;else{var e=new ArrayBuffer(0);try{s.blob=new Blob([e],{type:"application/zip"}).size===0}catch(r){try{var t=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);t.append(e),s.blob=t.getBlob("application/zip").size===0}catch(c){s.blob=!1}}}try{s.nodestream=!!n("readable-stream").Readable}catch(r){s.nodestream=!1}},{"readable-stream":16}],31:[function(n,i,s){for(var e=n("./utils"),t=n("./support"),r=n("./nodejsUtils"),c=n("./stream/GenericWorker"),f=new Array(256),v=0;v<256;v++)f[v]=252<=v?6:248<=v?5:240<=v?4:224<=v?3:192<=v?2:1;f[254]=f[254]=1;function m(){c.call(this,"utf-8 decode"),this.leftOver=null}function p(){c.call(this,"utf-8 encode")}s.utf8encode=function(l){return t.nodebuffer?r.newBufferFrom(l,"utf-8"):function(g){var h,_,b,x,C,j=g.length,A=0;for(x=0;x>>6:(_<65536?h[C++]=224|_>>>12:(h[C++]=240|_>>>18,h[C++]=128|_>>>12&63),h[C++]=128|_>>>6&63),h[C++]=128|63&_);return h}(l)},s.utf8decode=function(l){return t.nodebuffer?e.transformTo("nodebuffer",l).toString("utf-8"):function(g){var h,_,b,x,C=g.length,j=new Array(2*C);for(h=_=0;h>10&1023,j[_++]=56320|1023&b)}return j.length!==_&&(j.subarray?j=j.subarray(0,_):j.length=_),e.applyFromCharCode(j)}(l=e.transformTo(t.uint8array?"uint8array":"array",l))},e.inherits(m,c),m.prototype.processChunk=function(l){var g=e.transformTo(t.uint8array?"uint8array":"array",l.data);if(this.leftOver&&this.leftOver.length){if(t.uint8array){var h=g;(g=new Uint8Array(h.length+this.leftOver.length)).set(this.leftOver,0),g.set(h,this.leftOver.length)}else g=this.leftOver.concat(g);this.leftOver=null}var _=function(x,C){var j;for((C=C||x.length)>x.length&&(C=x.length),j=C-1;0<=j&&(192&x[j])==128;)j--;return j<0||j===0?C:j+f[x[j]]>C?j:C}(g),b=g;_!==g.length&&(t.uint8array?(b=g.subarray(0,_),this.leftOver=g.subarray(_,g.length)):(b=g.slice(0,_),this.leftOver=g.slice(_,g.length))),this.push({data:s.utf8decode(b),meta:l.meta})},m.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=m,e.inherits(p,c),p.prototype.processChunk=function(l){this.push({data:s.utf8encode(l.data),meta:l.meta})},s.Utf8EncodeWorker=p},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(n,i,s){var e=n("./support"),t=n("./base64"),r=n("./nodejsUtils"),c=n("./external");function f(h){return h}function v(h,_){for(var b=0;b>8;this.dir=!!(16&this.externalFileAttributes),l==0&&(this.dosPermissions=63&this.externalFileAttributes),l==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var l=e(this.extraFields[1].value);this.uncompressedSize===t.MAX_VALUE_32BITS&&(this.uncompressedSize=l.readInt(8)),this.compressedSize===t.MAX_VALUE_32BITS&&(this.compressedSize=l.readInt(8)),this.localHeaderOffset===t.MAX_VALUE_32BITS&&(this.localHeaderOffset=l.readInt(8)),this.diskNumberStart===t.MAX_VALUE_32BITS&&(this.diskNumberStart=l.readInt(4))}},readExtraFields:function(l){var g,h,_,b=l.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});l.index+4>>6:(l<65536?p[_++]=224|l>>>12:(p[_++]=240|l>>>18,p[_++]=128|l>>>12&63),p[_++]=128|l>>>6&63),p[_++]=128|63&l);return p},s.buf2binstring=function(m){return v(m,m.length)},s.binstring2buf=function(m){for(var p=new e.Buf8(m.length),l=0,g=p.length;l>10&1023,x[g++]=56320|1023&h)}return v(x,g)},s.utf8border=function(m,p){var l;for((p=p||m.length)>m.length&&(p=m.length),l=p-1;0<=l&&(192&m[l])==128;)l--;return l<0||l===0?p:l+c[m[l]]>p?l:p}},{"./common":41}],43:[function(n,i,s){i.exports=function(e,t,r,c){for(var f=65535&e|0,v=e>>>16&65535|0,m=0;r!==0;){for(r-=m=2e3>>1:t>>>1;r[c]=t}return r}();i.exports=function(t,r,c,f){var v=e,m=f+c;t^=-1;for(var p=f;p>>8^v[255&(t^r[p])];return-1^t}},{}],46:[function(n,i,s){var e,t=n("../utils/common"),r=n("./trees"),c=n("./adler32"),f=n("./crc32"),v=n("./messages"),m=0,p=4,l=0,g=-2,h=-1,_=4,b=2,x=8,C=9,j=286,A=30,N=19,z=2*j+1,M=15,R=3,L=258,V=L+R+1,k=42,O=113,u=1,D=2,ne=3,Z=4;function se(a,F){return a.msg=v[F],F}function H(a){return(a<<1)-(4a.avail_out&&(B=a.avail_out),B!==0&&(t.arraySet(a.output,F.pending_buf,F.pending_out,B,a.next_out),a.next_out+=B,F.pending_out+=B,a.total_out+=B,a.avail_out-=B,F.pending-=B,F.pending===0&&(F.pending_out=0))}function T(a,F){r._tr_flush_block(a,0<=a.block_start?a.block_start:-1,a.strstart-a.block_start,F),a.block_start=a.strstart,I(a.strm)}function te(a,F){a.pending_buf[a.pending++]=F}function q(a,F){a.pending_buf[a.pending++]=F>>>8&255,a.pending_buf[a.pending++]=255&F}function $(a,F){var B,w,S=a.max_chain_length,E=a.strstart,U=a.prev_length,W=a.nice_match,P=a.strstart>a.w_size-V?a.strstart-(a.w_size-V):0,G=a.window,K=a.w_mask,Y=a.prev,ee=a.strstart+L,he=G[E+U-1],ae=G[E+U];a.prev_length>=a.good_match&&(S>>=2),W>a.lookahead&&(W=a.lookahead);do if(G[(B=F)+U]===ae&&G[B+U-1]===he&&G[B]===G[E]&&G[++B]===G[E+1]){E+=2,B++;do;while(G[++E]===G[++B]&&G[++E]===G[++B]&&G[++E]===G[++B]&&G[++E]===G[++B]&&G[++E]===G[++B]&&G[++E]===G[++B]&&G[++E]===G[++B]&&G[++E]===G[++B]&&EP&&--S!=0);return U<=a.lookahead?U:a.lookahead}function fe(a){var F,B,w,S,E,U,W,P,G,K,Y=a.w_size;do{if(S=a.window_size-a.lookahead-a.strstart,a.strstart>=Y+(Y-V)){for(t.arraySet(a.window,a.window,Y,Y,0),a.match_start-=Y,a.strstart-=Y,a.block_start-=Y,F=B=a.hash_size;w=a.head[--F],a.head[F]=Y<=w?w-Y:0,--B;);for(F=B=Y;w=a.prev[--F],a.prev[F]=Y<=w?w-Y:0,--B;);S+=Y}if(a.strm.avail_in===0)break;if(U=a.strm,W=a.window,P=a.strstart+a.lookahead,G=S,K=void 0,K=U.avail_in,G=R)for(E=a.strstart-a.insert,a.ins_h=a.window[E],a.ins_h=(a.ins_h<=R&&(a.ins_h=(a.ins_h<=R)if(w=r._tr_tally(a,a.strstart-a.match_start,a.match_length-R),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=R){for(a.match_length--;a.strstart++,a.ins_h=(a.ins_h<=R&&(a.ins_h=(a.ins_h<=R&&a.match_length<=a.prev_length){for(S=a.strstart+a.lookahead-R,w=r._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-R),a.lookahead-=a.prev_length-1,a.prev_length-=2;++a.strstart<=S&&(a.ins_h=(a.ins_h<a.pending_buf_size-5&&(B=a.pending_buf_size-5);;){if(a.lookahead<=1){if(fe(a),a.lookahead===0&&F===m)return u;if(a.lookahead===0)break}a.strstart+=a.lookahead,a.lookahead=0;var w=a.block_start+B;if((a.strstart===0||a.strstart>=w)&&(a.lookahead=a.strstart-w,a.strstart=w,T(a,!1),a.strm.avail_out===0)||a.strstart-a.block_start>=a.w_size-V&&(T(a,!1),a.strm.avail_out===0))return u}return a.insert=0,F===p?(T(a,!0),a.strm.avail_out===0?ne:Z):(a.strstart>a.block_start&&(T(a,!1),a.strm.avail_out),u)}),new oe(4,4,8,4,ye),new oe(4,5,16,8,ye),new oe(4,6,32,32,ye),new oe(4,4,16,16,ie),new oe(8,16,32,32,ie),new oe(8,16,128,128,ie),new oe(8,32,128,256,ie),new oe(32,128,258,1024,ie),new oe(32,258,258,4096,ie)],s.deflateInit=function(a,F){return je(a,F,x,15,8,0)},s.deflateInit2=je,s.deflateReset=Ae,s.deflateResetKeep=pe,s.deflateSetHeader=function(a,F){return a&&a.state?a.state.wrap!==2?g:(a.state.gzhead=F,l):g},s.deflate=function(a,F){var B,w,S,E;if(!a||!a.state||5>8&255),te(w,w.gzhead.time>>16&255),te(w,w.gzhead.time>>24&255),te(w,w.level===9?2:2<=w.strategy||w.level<2?4:0),te(w,255&w.gzhead.os),w.gzhead.extra&&w.gzhead.extra.length&&(te(w,255&w.gzhead.extra.length),te(w,w.gzhead.extra.length>>8&255)),w.gzhead.hcrc&&(a.adler=f(a.adler,w.pending_buf,w.pending,0)),w.gzindex=0,w.status=69):(te(w,0),te(w,0),te(w,0),te(w,0),te(w,0),te(w,w.level===9?2:2<=w.strategy||w.level<2?4:0),te(w,3),w.status=O);else{var U=x+(w.w_bits-8<<4)<<8;U|=(2<=w.strategy||w.level<2?0:w.level<6?1:w.level===6?2:3)<<6,w.strstart!==0&&(U|=32),U+=31-U%31,w.status=O,q(w,U),w.strstart!==0&&(q(w,a.adler>>>16),q(w,65535&a.adler)),a.adler=1}if(w.status===69)if(w.gzhead.extra){for(S=w.pending;w.gzindex<(65535&w.gzhead.extra.length)&&(w.pending!==w.pending_buf_size||(w.gzhead.hcrc&&w.pending>S&&(a.adler=f(a.adler,w.pending_buf,w.pending-S,S)),I(a),S=w.pending,w.pending!==w.pending_buf_size));)te(w,255&w.gzhead.extra[w.gzindex]),w.gzindex++;w.gzhead.hcrc&&w.pending>S&&(a.adler=f(a.adler,w.pending_buf,w.pending-S,S)),w.gzindex===w.gzhead.extra.length&&(w.gzindex=0,w.status=73)}else w.status=73;if(w.status===73)if(w.gzhead.name){S=w.pending;do{if(w.pending===w.pending_buf_size&&(w.gzhead.hcrc&&w.pending>S&&(a.adler=f(a.adler,w.pending_buf,w.pending-S,S)),I(a),S=w.pending,w.pending===w.pending_buf_size)){E=1;break}E=w.gzindexS&&(a.adler=f(a.adler,w.pending_buf,w.pending-S,S)),E===0&&(w.gzindex=0,w.status=91)}else w.status=91;if(w.status===91)if(w.gzhead.comment){S=w.pending;do{if(w.pending===w.pending_buf_size&&(w.gzhead.hcrc&&w.pending>S&&(a.adler=f(a.adler,w.pending_buf,w.pending-S,S)),I(a),S=w.pending,w.pending===w.pending_buf_size)){E=1;break}E=w.gzindexS&&(a.adler=f(a.adler,w.pending_buf,w.pending-S,S)),E===0&&(w.status=103)}else w.status=103;if(w.status===103&&(w.gzhead.hcrc?(w.pending+2>w.pending_buf_size&&I(a),w.pending+2<=w.pending_buf_size&&(te(w,255&a.adler),te(w,a.adler>>8&255),a.adler=0,w.status=O)):w.status=O),w.pending!==0){if(I(a),a.avail_out===0)return w.last_flush=-1,l}else if(a.avail_in===0&&H(F)<=H(B)&&F!==p)return se(a,-5);if(w.status===666&&a.avail_in!==0)return se(a,-5);if(a.avail_in!==0||w.lookahead!==0||F!==m&&w.status!==666){var W=w.strategy===2?function(P,G){for(var K;;){if(P.lookahead===0&&(fe(P),P.lookahead===0)){if(G===m)return u;break}if(P.match_length=0,K=r._tr_tally(P,0,P.window[P.strstart]),P.lookahead--,P.strstart++,K&&(T(P,!1),P.strm.avail_out===0))return u}return P.insert=0,G===p?(T(P,!0),P.strm.avail_out===0?ne:Z):P.last_lit&&(T(P,!1),P.strm.avail_out===0)?u:D}(w,F):w.strategy===3?function(P,G){for(var K,Y,ee,he,ae=P.window;;){if(P.lookahead<=L){if(fe(P),P.lookahead<=L&&G===m)return u;if(P.lookahead===0)break}if(P.match_length=0,P.lookahead>=R&&0P.lookahead&&(P.match_length=P.lookahead)}if(P.match_length>=R?(K=r._tr_tally(P,1,P.match_length-R),P.lookahead-=P.match_length,P.strstart+=P.match_length,P.match_length=0):(K=r._tr_tally(P,0,P.window[P.strstart]),P.lookahead--,P.strstart++),K&&(T(P,!1),P.strm.avail_out===0))return u}return P.insert=0,G===p?(T(P,!0),P.strm.avail_out===0?ne:Z):P.last_lit&&(T(P,!1),P.strm.avail_out===0)?u:D}(w,F):e[w.level].func(w,F);if(W!==ne&&W!==Z||(w.status=666),W===u||W===ne)return a.avail_out===0&&(w.last_flush=-1),l;if(W===D&&(F===1?r._tr_align(w):F!==5&&(r._tr_stored_block(w,0,0,!1),F===3&&(re(w.head),w.lookahead===0&&(w.strstart=0,w.block_start=0,w.insert=0))),I(a),a.avail_out===0))return w.last_flush=-1,l}return F!==p?l:w.wrap<=0?1:(w.wrap===2?(te(w,255&a.adler),te(w,a.adler>>8&255),te(w,a.adler>>16&255),te(w,a.adler>>24&255),te(w,255&a.total_in),te(w,a.total_in>>8&255),te(w,a.total_in>>16&255),te(w,a.total_in>>24&255)):(q(w,a.adler>>>16),q(w,65535&a.adler)),I(a),0=B.w_size&&(E===0&&(re(B.head),B.strstart=0,B.block_start=0,B.insert=0),G=new t.Buf8(B.w_size),t.arraySet(G,F,K-B.w_size,B.w_size,0),F=G,K=B.w_size),U=a.avail_in,W=a.next_in,P=a.input,a.avail_in=K,a.next_in=0,a.input=F,fe(B);B.lookahead>=R;){for(w=B.strstart,S=B.lookahead-(R-1);B.ins_h=(B.ins_h<>>=R=M>>>24,C-=R,(R=M>>>16&255)===0)D[v++]=65535&M;else{if(!(16&R)){if(!(64&R)){M=j[(65535&M)+(x&(1<>>=R,C-=R),C<15&&(x+=u[c++]<>>=R=M>>>24,C-=R,!(16&(R=M>>>16&255))){if(!(64&R)){M=A[(65535&M)+(x&(1<>>=R,C-=R,(R=v-m)>3,x&=(1<<(C-=L<<3))-1,e.next_in=c,e.next_out=v,e.avail_in=c>>24&255)+(k>>>8&65280)+((65280&k)<<8)+((255&k)<<24)}function x(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new e.Buf16(320),this.work=new e.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function C(k){var O;return k&&k.state?(O=k.state,k.total_in=k.total_out=O.total=0,k.msg="",O.wrap&&(k.adler=1&O.wrap),O.mode=g,O.last=0,O.havedict=0,O.dmax=32768,O.head=null,O.hold=0,O.bits=0,O.lencode=O.lendyn=new e.Buf32(h),O.distcode=O.distdyn=new e.Buf32(_),O.sane=1,O.back=-1,p):l}function j(k){var O;return k&&k.state?((O=k.state).wsize=0,O.whave=0,O.wnext=0,C(k)):l}function A(k,O){var u,D;return k&&k.state?(D=k.state,O<0?(u=0,O=-O):(u=1+(O>>4),O<48&&(O&=15)),O&&(O<8||15=Z.wsize?(e.arraySet(Z.window,O,u-Z.wsize,Z.wsize,0),Z.wnext=0,Z.whave=Z.wsize):(D<(ne=Z.wsize-Z.wnext)&&(ne=D),e.arraySet(Z.window,O,u-D,ne,Z.wnext),(D-=ne)?(e.arraySet(Z.window,O,u-D,D,0),Z.wnext=D,Z.whave=Z.wsize):(Z.wnext+=ne,Z.wnext===Z.wsize&&(Z.wnext=0),Z.whave>>8&255,u.check=r(u.check,E,2,0),T=I=0,u.mode=2;break}if(u.flags=0,u.head&&(u.head.done=!1),!(1&u.wrap)||(((255&I)<<8)+(I>>8))%31){k.msg="incorrect header check",u.mode=30;break}if((15&I)!=8){k.msg="unknown compression method",u.mode=30;break}if(T-=4,a=8+(15&(I>>>=4)),u.wbits===0)u.wbits=a;else if(a>u.wbits){k.msg="invalid window size",u.mode=30;break}u.dmax=1<>8&1),512&u.flags&&(E[0]=255&I,E[1]=I>>>8&255,u.check=r(u.check,E,2,0)),T=I=0,u.mode=3;case 3:for(;T<32;){if(H===0)break e;H--,I+=D[Z++]<>>8&255,E[2]=I>>>16&255,E[3]=I>>>24&255,u.check=r(u.check,E,4,0)),T=I=0,u.mode=4;case 4:for(;T<16;){if(H===0)break e;H--,I+=D[Z++]<>8),512&u.flags&&(E[0]=255&I,E[1]=I>>>8&255,u.check=r(u.check,E,2,0)),T=I=0,u.mode=5;case 5:if(1024&u.flags){for(;T<16;){if(H===0)break e;H--,I+=D[Z++]<>>8&255,u.check=r(u.check,E,2,0)),T=I=0}else u.head&&(u.head.extra=null);u.mode=6;case 6:if(1024&u.flags&&(H<($=u.length)&&($=H),$&&(u.head&&(a=u.head.extra_len-u.length,u.head.extra||(u.head.extra=new Array(u.head.extra_len)),e.arraySet(u.head.extra,D,Z,$,a)),512&u.flags&&(u.check=r(u.check,D,$,Z)),H-=$,Z+=$,u.length-=$),u.length))break e;u.length=0,u.mode=7;case 7:if(2048&u.flags){if(H===0)break e;for($=0;a=D[Z+$++],u.head&&a&&u.length<65536&&(u.head.name+=String.fromCharCode(a)),a&&$>9&1,u.head.done=!0),k.adler=u.check=0,u.mode=12;break;case 10:for(;T<32;){if(H===0)break e;H--,I+=D[Z++]<>>=7&T,T-=7&T,u.mode=27;break}for(;T<3;){if(H===0)break e;H--,I+=D[Z++]<>>=1)){case 0:u.mode=14;break;case 1:if(L(u),u.mode=20,O!==6)break;I>>>=2,T-=2;break e;case 2:u.mode=17;break;case 3:k.msg="invalid block type",u.mode=30}I>>>=2,T-=2;break;case 14:for(I>>>=7&T,T-=7&T;T<32;){if(H===0)break e;H--,I+=D[Z++]<>>16^65535)){k.msg="invalid stored block lengths",u.mode=30;break}if(u.length=65535&I,T=I=0,u.mode=15,O===6)break e;case 15:u.mode=16;case 16:if($=u.length){if(H<$&&($=H),re<$&&($=re),$===0)break e;e.arraySet(ne,D,Z,$,se),H-=$,Z+=$,re-=$,se+=$,u.length-=$;break}u.mode=12;break;case 17:for(;T<14;){if(H===0)break e;H--,I+=D[Z++]<>>=5,T-=5,u.ndist=1+(31&I),I>>>=5,T-=5,u.ncode=4+(15&I),I>>>=4,T-=4,286>>=3,T-=3}for(;u.have<19;)u.lens[U[u.have++]]=0;if(u.lencode=u.lendyn,u.lenbits=7,B={bits:u.lenbits},F=f(0,u.lens,0,19,u.lencode,0,u.work,B),u.lenbits=B.bits,F){k.msg="invalid code lengths set",u.mode=30;break}u.have=0,u.mode=19;case 19:for(;u.have>>16&255,ge=65535&S,!((ie=S>>>24)<=T);){if(H===0)break e;H--,I+=D[Z++]<>>=ie,T-=ie,u.lens[u.have++]=ge;else{if(ge===16){for(w=ie+2;T>>=ie,T-=ie,u.have===0){k.msg="invalid bit length repeat",u.mode=30;break}a=u.lens[u.have-1],$=3+(3&I),I>>>=2,T-=2}else if(ge===17){for(w=ie+3;T>>=ie)),I>>>=3,T-=3}else{for(w=ie+7;T>>=ie)),I>>>=7,T-=7}if(u.have+$>u.nlen+u.ndist){k.msg="invalid bit length repeat",u.mode=30;break}for(;$--;)u.lens[u.have++]=a}}if(u.mode===30)break;if(u.lens[256]===0){k.msg="invalid code -- missing end-of-block",u.mode=30;break}if(u.lenbits=9,B={bits:u.lenbits},F=f(v,u.lens,0,u.nlen,u.lencode,0,u.work,B),u.lenbits=B.bits,F){k.msg="invalid literal/lengths set",u.mode=30;break}if(u.distbits=6,u.distcode=u.distdyn,B={bits:u.distbits},F=f(m,u.lens,u.nlen,u.ndist,u.distcode,0,u.work,B),u.distbits=B.bits,F){k.msg="invalid distances set",u.mode=30;break}if(u.mode=20,O===6)break e;case 20:u.mode=21;case 21:if(6<=H&&258<=re){k.next_out=se,k.avail_out=re,k.next_in=Z,k.avail_in=H,u.hold=I,u.bits=T,c(k,q),se=k.next_out,ne=k.output,re=k.avail_out,Z=k.next_in,D=k.input,H=k.avail_in,I=u.hold,T=u.bits,u.mode===12&&(u.back=-1);break}for(u.back=0;oe=(S=u.lencode[I&(1<>>16&255,ge=65535&S,!((ie=S>>>24)<=T);){if(H===0)break e;H--,I+=D[Z++]<>pe)])>>>16&255,ge=65535&S,!(pe+(ie=S>>>24)<=T);){if(H===0)break e;H--,I+=D[Z++]<>>=pe,T-=pe,u.back+=pe}if(I>>>=ie,T-=ie,u.back+=ie,u.length=ge,oe===0){u.mode=26;break}if(32&oe){u.back=-1,u.mode=12;break}if(64&oe){k.msg="invalid literal/length code",u.mode=30;break}u.extra=15&oe,u.mode=22;case 22:if(u.extra){for(w=u.extra;T>>=u.extra,T-=u.extra,u.back+=u.extra}u.was=u.length,u.mode=23;case 23:for(;oe=(S=u.distcode[I&(1<>>16&255,ge=65535&S,!((ie=S>>>24)<=T);){if(H===0)break e;H--,I+=D[Z++]<>pe)])>>>16&255,ge=65535&S,!(pe+(ie=S>>>24)<=T);){if(H===0)break e;H--,I+=D[Z++]<>>=pe,T-=pe,u.back+=pe}if(I>>>=ie,T-=ie,u.back+=ie,64&oe){k.msg="invalid distance code",u.mode=30;break}u.offset=ge,u.extra=15&oe,u.mode=24;case 24:if(u.extra){for(w=u.extra;T>>=u.extra,T-=u.extra,u.back+=u.extra}if(u.offset>u.dmax){k.msg="invalid distance too far back",u.mode=30;break}u.mode=25;case 25:if(re===0)break e;if($=q-re,u.offset>$){if(($=u.offset-$)>u.whave&&u.sane){k.msg="invalid distance too far back",u.mode=30;break}fe=$>u.wnext?($-=u.wnext,u.wsize-$):u.wnext-$,$>u.length&&($=u.length),ye=u.window}else ye=ne,fe=se-u.offset,$=u.length;for(re<$&&($=re),re-=$,u.length-=$;ne[se++]=ye[fe++],--$;);u.length===0&&(u.mode=21);break;case 26:if(re===0)break e;ne[se++]=u.length,re--,u.mode=21;break;case 27:if(u.wrap){for(;T<32;){if(H===0)break e;H--,I|=D[Z++]<z?(R=fe[ye+_[O]],T[te+_[O]]):(R=96,0),x=1<>se)+(C-=x)]=M<<24|R<<16|L|0,C!==0;);for(x=1<>=1;if(x!==0?(I&=x-1,I+=x):I=0,O++,--q[k]==0){if(k===D)break;k=m[p+_[O]]}if(ne>>7)]}function te(S,E){S.pending_buf[S.pending++]=255&E,S.pending_buf[S.pending++]=E>>>8&255}function q(S,E,U){S.bi_valid>b-U?(S.bi_buf|=E<>b-S.bi_valid,S.bi_valid+=U-b):(S.bi_buf|=E<>>=1,U<<=1,0<--E;);return U>>>1}function ye(S,E,U){var W,P,G=new Array(_+1),K=0;for(W=1;W<=_;W++)G[W]=K=K+U[W-1]<<1;for(P=0;P<=E;P++){var Y=S[2*P+1];Y!==0&&(S[2*P]=fe(G[Y]++,Y))}}function ie(S){var E;for(E=0;E>1;1<=U;U--)pe(S,G,U);for(P=ee;U=S.heap[1],S.heap[1]=S.heap[S.heap_len--],pe(S,G,1),W=S.heap[1],S.heap[--S.heap_max]=U,S.heap[--S.heap_max]=W,G[2*P]=G[2*U]+G[2*W],S.depth[P]=(S.depth[U]>=S.depth[W]?S.depth[U]:S.depth[W])+1,G[2*U+1]=G[2*W+1]=P,S.heap[1]=P++,pe(S,G,1),2<=S.heap_len;);S.heap[--S.heap_max]=S.heap[1],function(ae,Ce){var Ze,Ee,He,me,st,mt,Pe=Ce.dyn_tree,Dt=Ce.max_code,vn=Ce.stat_desc.static_tree,Sn=Ce.stat_desc.has_stree,xn=Ce.stat_desc.extra_bits,Lt=Ce.stat_desc.extra_base,Ge=Ce.stat_desc.max_length,it=0;for(me=0;me<=_;me++)ae.bl_count[me]=0;for(Pe[2*ae.heap[ae.heap_max]+1]=0,Ze=ae.heap_max+1;Ze>=7;P>>=1)if(1&he&&Y.dyn_ltree[2*ee]!==0)return t;if(Y.dyn_ltree[18]!==0||Y.dyn_ltree[20]!==0||Y.dyn_ltree[26]!==0)return r;for(ee=32;ee>>3,(G=S.static_len+3+7>>>3)<=P&&(P=G)):P=G=U+5,U+4<=P&&E!==-1?w(S,E,U,W):S.strategy===4||G===P?(q(S,2+(W?1:0),3),Ae(S,V,k)):(q(S,4+(W?1:0),3),function(Y,ee,he,ae){var Ce;for(q(Y,ee-257,5),q(Y,he-1,5),q(Y,ae-4,4),Ce=0;Ce>>8&255,S.pending_buf[S.d_buf+2*S.last_lit+1]=255&E,S.pending_buf[S.l_buf+S.last_lit]=255&U,S.last_lit++,E===0?S.dyn_ltree[2*U]++:(S.matches++,E--,S.dyn_ltree[2*(u[U]+m+1)]++,S.dyn_dtree[2*T(E)]++),S.last_lit===S.lit_bufsize-1},s._tr_align=function(S){q(S,2,3),$(S,C,V),function(E){E.bi_valid===16?(te(E,E.bi_buf),E.bi_buf=0,E.bi_valid=0):8<=E.bi_valid&&(E.pending_buf[E.pending++]=255&E.bi_buf,E.bi_buf>>=8,E.bi_valid-=8)}(S)}},{"../utils/common":41}],53:[function(n,i,s){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(n,i,s){(function(e){(function(t,r){if(!t.setImmediate){var c,f,v,m,p=1,l={},g=!1,h=t.document,_=Object.getPrototypeOf&&Object.getPrototypeOf(t);_=_&&_.setTimeout?_:t,c={}.toString.call(t.process)==="[object process]"?function(j){process.nextTick(function(){x(j)})}:function(){if(t.postMessage&&!t.importScripts){var j=!0,A=t.onmessage;return t.onmessage=function(){j=!1},t.postMessage("","*"),t.onmessage=A,j}}()?(m="setImmediate$"+Math.random()+"$",t.addEventListener?t.addEventListener("message",C,!1):t.attachEvent("onmessage",C),function(j){t.postMessage(m+j,"*")}):t.MessageChannel?((v=new MessageChannel).port1.onmessage=function(j){x(j.data)},function(j){v.port2.postMessage(j)}):h&&"onreadystatechange"in h.createElement("script")?(f=h.documentElement,function(j){var A=h.createElement("script");A.onreadystatechange=function(){x(j),A.onreadystatechange=null,f.removeChild(A),A=null},f.appendChild(A)}):function(j){setTimeout(x,0,j)},_.setImmediate=function(j){typeof j!="function"&&(j=new Function(""+j));for(var A=new Array(arguments.length-1),N=0;N"u"?e===void 0?this:e:self)}).call(this,typeof at<"u"?at:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})}(St)),St.exports}var ai=ii();const oi=Tn(ai),li=async(o,d,n,i,s)=>{var c,f,v,m,p,l;const e=document.querySelector("svg#".concat(o));if(!e)throw new Error("Requested canvas SVG element not found");const t=Number((c=e.style.getPropertyValue("--rmg-svg-height").match(/\d+/g))==null?void 0:c[0]),r=e.cloneNode(!0);r.setAttribute("height",(t*(s||100)/100).toString()),r.style.setProperty("all","initial"),["share"].map(g=>{var h;return[...((h=[...document.querySelectorAll("link")].filter(_=>_.id==="css_"+g)[0])==null?void 0:h.sheet).cssRules].map(_=>_.cssText).join(" ")}).forEach(g=>{const h=document.createElement("style");h.textContent=g,r.prepend(h)}),(f=r.querySelector("rect#canvas-border"))==null||f.setAttribute("stroke",i?"black":"none"),(v=r.querySelector("rect#canvas-bg"))==null||v.setAttribute("fill",n?"none":"white");try{const g=(l=await((p=(m=It[d]).fonts)==null?void 0:p.call(m)))!=null?l:[],_=(await Promise.allSettled(g.map(le.getFontCSS))).filter(x=>x.status==="fulfilled").map(x=>x.value),b=document.createElement("style");b.textContent=_.join("\n"),r.prepend(b)}catch(g){console.warn("Failed to fonts. Fonts in the exported PNG will be missing.",g)}return r},ci=async(o,d,n)=>{const i=o.viewBox.baseVal.width,s=o.viewBox.baseVal.height,e=document.querySelectorAll("canvas")[0];e.width=Number(i)*window.devicePixelRatio*d,e.height=Number(s)*window.devicePixelRatio*d,o.setAttribute("width",e.width.toString()),o.setAttribute("height",e.height.toString());const t=e.getContext("2d");return t.clearRect(0,0,e.width,e.height),o.querySelectorAll(".rmg-name__en.rmg-name__gzmtr--next2-dest").forEach(r=>r.setAttribute("font-size","8.5px")),o.querySelectorAll("text, tspan").forEach(r=>{const c=window.getComputedStyle(r);r.setAttribute("font-family",c.fontFamily),r.setAttribute("fill",c.fill),r.setAttribute("dominant-baseline",c.dominantBaseline),r.setAttribute("text-anchor",c.textAnchor||"")}),new Promise((r,c)=>{const f=new Image;f.onload=()=>{setTimeout(()=>{t.drawImage(f,0,0,e.width,e.height),e.toBlob(v=>{v?r(v):c("Canvas blob is null")},"image/png")},n?2e3:0)},f.onerror=c,f.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(o.outerHTML)))})};function di(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),[e,t]=X.useState(""),[r,c]=X.useState(!1),[f,v]=X.useState(!1),[m,p]=X.useState(100),[l,g]=X.useState("png"),h=Q(R=>R.app.canvasToShow),{style:_,stn_list:b,current_stn_idx:x,line_name:C}=Q(R=>R.param);X.useEffect(()=>{e!==""&&!h.includes(e)&&t("")},[h]);const j=Tt[_].reduce((R,L)=>h.includes(L)?{...R,[L]:i("CanvasType."+L)}:{...R},{"":i("DownloadModal.pleaseSelect")}),A=[25,33,50,67,75,80,90,100,110,125,150,175,200,250,300,400,500].reduce((R,L)=>({...R,[L]:"".concat(L,"%")}),{}),N={png:i("DownloadModal.png"),svg:i("DownloadModal.svg")},z=[{type:"select",label:i("DownloadModal.canvas"),value:e,options:j,disabledOptions:[""],onChange:R=>t(R),minW:"full"},{type:"switch",label:i("DownloadModal.transparent"),isChecked:r,onChange:c,oneLine:!0,minW:"full"},{type:"switch",label:i("DownloadModal.showBorder"),isChecked:f,onChange:v,oneLine:!0,minW:"full"},{type:"select",label:i("DownloadModal.scale"),value:m,options:A,onChange:R=>p(R)},{type:"select",label:i("DownloadModal.format"),value:l,options:N,onChange:R=>g(R)}],M=async R=>{s(Gt(0));const L=R==="current"?[x]:Object.keys(b).filter(k=>!["linestart","lineend"].includes(k)),V=new oi;for(const k in L){s(Gt((Number(k)+1)/L.length*100));const O=L[k];s(jt(O)),await Fr(500);const u=await li(e,_,r,f,m);document.body.appendChild(u);const D="rmg.".concat(O,".").concat(b[O].localisedName.en).replaceAll(/\\|\/|\||\*|:|\?|<|>|"/g,"_");if(l==="png"){const ne=Ur()&&k==="0",Z=await ci(u,m/100,ne);L.length>1?V.file("".concat(D,".png"),Z):Vt("".concat(D,".png"),Z)}else if(l==="svg"){u.removeAttribute("height");const ne="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(u.outerHTML)));L.length>1?V.file("".concat(D,".svg"),ne.split("base64,")[1],{base64:!0}):pn(D+".svg","image/svg+xml",u.outerHTML)}document.body.removeChild(u)}if(L.length>1){const k=await V.generateAsync({type:"blob"}),O="rmg.".concat(C[0],".").concat(C[1],".zip").replaceAll(" ","_");Vt(O,k)}le.event(xe.DOWNLOAD_IMAGES,{canvasToDownload:e,style:_,option:R,format:l}),s(jt(x)),s(xr()),n()};return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[y.jsx(Qe,{children:i("DownloadModal.title")}),y.jsx(et,{}),y.jsx(tt,{children:y.jsx(be,{fields:z})}),y.jsx(nt,{children:y.jsxs(Re,{children:[y.jsx(de,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>M("current"),isDisabled:!e,children:i("DownloadModal.downloadOne")}),_!==J.GZMTR&&y.jsx(de,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>M("all"),isDisabled:!e,children:i("DownloadModal.downloadAll")})]})})]})]})}function hi(){const{t:o}=ce(),[d,n]=X.useState(!1),{paramConfig:i}=Q(t=>t.app),s=Q(t=>t.param),e=()=>{const t=Wr(s);pn("RMG_".concat(i==null?void 0:i.id,".json"),"application/json",JSON.stringify(t)),le.event(xe.DOWNLOAD_PARAM,{style:s.style})};return y.jsxs(kn,{children:[y.jsx(Cn,{as:de,variant:"ghost",size:"sm",rightIcon:y.jsx(wr,{}),children:o("DownloadActions.downloads")}),y.jsxs(jn,{children:[y.jsx(Ft,{onClick:e,children:o("DownloadActions.configFile")}),y.jsx(Ft,{onClick:()=>n(!0),children:o("DownloadActions.images")})]}),y.jsx(di,{isOpen:d,onClose:()=>n(!1)})]})}function rt(){const[o,d]=In();return[o,i=>{d(i);const e=Object.keys(i).length===0?"/":"/?"+new URLSearchParams(i);le.updateAppMetadata({hash:e})}]}function ui(){const{t:o}=ce(),d=an(),[,n]=rt(),i=()=>{d(Ue(De.CLOSE)),d(Et(void 0)),n({})};return y.jsxs(Re,{ml:"auto",w:"fit-content",children:[y.jsx(de,{variant:"ghost",size:"sm",leftIcon:y.jsx(kr,{}),onClick:i,children:o("All projects")}),y.jsx(hi,{}),y.jsx(de,{variant:"solid",size:"sm",colorScheme:"primary",leftIcon:y.jsx(Cr,{}),onClick:()=>d(Ue(De.STYLE)),children:o("HeaderActions.editStyle")})]})}function fi(){const{t:o}=ce(),d=ue(),{canvasToShow:n,canvasScale:i}=Q(f=>f.app),s=Q(f=>f.param.style),e=Object.values(J).reduce((f,v)=>({...f,[v]:o("RmgStyle."+v)}),{}),t=Tt[s].map(f=>({label:o("CanvasType."+f),value:f})),r=f=>{d(Pr(f))},c=[{type:"select",label:o("Style"),value:s,options:e,onChange:f=>r(f)},{type:"custom",label:o("View"),component:y.jsx(jr,{displayValue:o("Select canvas"),selections:t,defaultValue:n,onChange:f=>d(Ar(f))})},{type:"slider",label:o("Canvas scale"),value:i,min:.1,max:2,step:.01,onChange:f=>d(Er(f)),leftIcon:y.jsx(Or,{}),rightIcon:y.jsx(zr,{})}];return y.jsxs(Rr,{children:[y.jsx(be,{fields:c,minW:160}),y.jsx(ui,{})]})}const $e=(o,d,n,i)=>(s,e)=>{var f,v,m,p,l,g,h,_,b,x,C,j,A,N;const t=e().param.stn_list;let r=qe(6);for(;r in t;)r=qe(6);const c=Tr(r);if(o!=="new"){const z={...t,[d]:{...t[d],children:t[d].children.map(M=>M===n?r:M),branch:{left:(f=t[d].branch)==null?void 0:f.left,right:((m=(v=t[d].branch)==null?void 0:v.right)==null?void 0:m[1])===n?(l=(p=t[d].branch)==null?void 0:p.right)==null?void 0:l.with(1,r):(g=t[d].branch)==null?void 0:g.right}},[n]:{...t[n],parents:t[n].parents.map(M=>M===d?r:M),branch:{left:((_=(h=t[n].branch)==null?void 0:h.left)==null?void 0:_[1])===d?(x=(b=t[n].branch)==null?void 0:b.left)==null?void 0:x.with(1,r):(C=t[n].branch)==null?void 0:C.left,right:(j=t[n].branch)==null?void 0:j.right}},[r]:{...c,parents:[d],children:[n]}};return s(we(z)),r}else{if(!i)return!1;const z={...t,[d]:{...t[d],children:i==="upper"?[r,t[d].children[0]]:[t[d].children[0],r],branch:{left:(A=t[d].branch)==null?void 0:A.left,right:[ht.through,r]}},[n]:{...t[n],parents:i==="upper"?[r,t[n].parents[0]]:[t[n].parents[0],r],branch:{left:[ht.through,r],right:(N=t[n].branch)==null?void 0:N.right}},[r]:{...c,parents:[d],children:[n]}};return s(we(z)),r}},pi=(o,d,n)=>(i,s)=>{const t=s().helper.branches[o];if(t!=null&&t.length)if(d==="before"){const r=t[t.indexOf(n)-1];return i($e(o.toString(),r,n))}else{const r=t[t.indexOf(n)+1];return i($e(o.toString(),n,r))}else return!1},mi=()=>(o,d)=>{const n=d().param.stn_list;return d().helper.branches[0].filter(s=>{const e=n[s].parents.length+n[s].children.length===4,t=Nt(s,n)===0;return!e&&t})},nn=(o,d)=>(n,i)=>{const s=i().param.stn_list,e=i().helper.branches;return!e[0].includes(o)||!e[0].includes(d)?"Branch should end at main line":e[0].indexOf(o)>=e[0].indexOf(d)?"Not in correct ordering":o==="linestart"&&d==="lineend"?"Should not be parallel to main line":o==="linestart"&&e[0].indexOf(d)===1?"Branch should not be open jaw from the first station":d==="lineend"&&e[0].indexOf(o)===e[0].length-2?"Branch should not be open jaw from the last station":s[o].children.length>1||s[d].parents.length>1?"Branch already exist":e.slice(1).some(c=>c.slice(1,-1).includes(o)||c.slice(1,-1).includes(d))?"Cannot branch out from existing branch":e[0].slice(e[0].indexOf(o)+1,e[0].indexOf(d)).every(c=>s[c].parents.length===1&&s[c].children.length===1)?"":"One or more stations between both ends are branching out"};function gi(o){var N,z;const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),e=Q(M=>M.app.selectedBranch),{style:t,stn_list:r}=Q(M=>M.param),c=Q(M=>M.helper.branches),[f,v]=X.useState(e),[m,p]=X.useState("before"),[l,g]=X.useState(""),[h,_]=X.useState(!1);X.useEffect(()=>{v(e)},[e]),X.useEffect(()=>{d||_(!1)},[d]);const b=(z=(N=c[Number(f)])==null?void 0:N.slice(1,-1))!=null?z:[],x=M=>M.reduce((R,L)=>{var V,k;return{...R,[L]:((V=r[L])==null?void 0:V.localisedName.zh)+"/"+((k=r[L])==null?void 0:k.localisedName.en)}},{"":i("AddStationModal.pleaseSelect")}),C=[{type:"select",label:i("AddStationModal.where"),value:f,options:{...c.reduce((M,R,L)=>({...M,[L]:L===0?i("AddStationModal.main"):t!==J.SHMetro||!We(R,r)?i("AddStationModal.branch")+" "+L:i("AddStationModal.external")+" "+L}),{})},onChange:M=>j(M),minW:"full"},{type:"select",label:i("AddStationModal.preposition"),value:m,options:{before:i("AddStationModal.before"),after:i("AddStationModal.after")},onChange:M=>p(M)},{type:"select",label:i("AddStationModal.pivot"),value:l,options:x(b),disabledOptions:[""],onChange:M=>g(M)}],j=M=>{v(M),g("")},A=()=>{const M=s(pi(f,m,l));M?(n(),s(hn(M)),s(Ue(De.STATION))):(console.log("false here"),_(!0)),le.event(xe.ADD_STATION,{style:t,branchIndex:f,success:M})};return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[h&&y.jsxs(ut,{status:"error",variant:"solid",size:"xs",children:[y.jsx(ft,{}),i("AddStationModal.error")]}),y.jsxs(ke,{position:"relative",children:[y.jsx(Qe,{children:i("AddStationModal.title")}),y.jsx(et,{})]}),y.jsx(tt,{children:y.jsx(be,{fields:C})}),y.jsx(nt,{children:y.jsx(de,{colorScheme:"primary",onClick:A,isDisabled:!l,children:i("Confirm")})})]})]})}function bi(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),[e,t]=X.useState("new"),[r,c]=X.useState(""),[f,v]=X.useState(""),[m,p]=X.useState("upper"),[l,g]=X.useState(""),[h,_]=X.useState(""),{style:b,stn_list:x}=Q(V=>V.param);X.useEffect(()=>{d||(t("new"),c(""),v(""))},[d]);const j=(V=>V.reduce((k,O)=>{var u,D;return{...k,[O]:O==="linestart"?"(".concat(i("LEFT END"),")"):O==="lineend"?"(".concat(i("RIGHT END"),")"):((u=x[O])==null?void 0:u.localisedName.zh)+"/"+((D=x[O])==null?void 0:D.localisedName.en)}},{"":i("Please select...")}))(s(mi())),A=[{type:"select",label:i("NewBranchModal.where"),value:e,options:{new:i("NewBranchModal.new"),ext:i("NewBranchModal.ext")},disabledOptions:b===J.SHMetro?[]:["ext"],onChange:V=>N(V),minW:"full"},{type:"select",label:i("NewBranchModal.from"),value:r,options:j,disabledOptions:[""],onChange:V=>z(V),isInvalid:!!l},{type:"select",label:i("NewBranchModal.to"),value:f,options:j,disabledOptions:[""],onChange:V=>M(V),isInvalid:!!h},{type:"select",label:i("NewBranchModal.position"),value:m,options:{upper:i("NewBranchModal.upper"),lower:i("NewBranchModal.lower")},onChange:V=>p(V),minW:"full",hidden:e!=="new"||b===J.SHMetro}],N=V=>{t(V),c(""),v(""),g(""),_("")},z=V=>{c(V),g(""),V&&f&&_(s(nn(V,f)))},M=V=>{v(V),_(""),r&&V&&g(s(nn(r,V)))},R=()=>{let V;e==="ext"?V=s($e("new",r,f,"lower")):b===J.SHMetro?V=s($e("new",r,f,"upper")):V=s($e("new",r,f,m)),V&&(n(),le.event(xe.ADD_BRANCH,{style:b,where:e}))},L=!!(!r||!f||l||h);return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[y.jsx(Qe,{children:i("NewBranchModal.title")}),y.jsx(et,{}),y.jsx(tt,{children:y.jsx(be,{fields:A})}),y.jsx(nt,{children:y.jsx(de,{colorScheme:"primary",title:L?l||h:i("Confirm"),onClick:R,isDisabled:L,children:i("Confirm")})})]})]})}const _i=X.lazy(()=>Le(()=>import("./station-ag-grid-x9FtULEU.js"),__vite__mapDeps([12,1,2,3,4,13,14,9])));function yi(){const{t:o}=ce(),d=ue(),[n,i]=X.useState(!1),[s,e]=X.useState(!1),t=Q(p=>p.app.selectedBranch),{style:r,stn_list:c,loop:f}=Q(p=>p.param),v=Q(p=>p.helper.branches),m=()=>{d(Ue(De.BRANCH))};return y.jsxs(ke,{flex:1,overflow:"hidden",children:[y.jsxs(An,{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",index:t,onChange:p=>d(Ir(p)),children:[y.jsxs(En,{children:[v.map((p,l)=>l===0?y.jsx(gt,{children:o(f?"Loop line":"GridTabs.main")},l):r!==J.SHMetro||!We(p,c)?y.jsx(gt,{children:o("GridTabs.branch")+" "+l},l):y.jsx(gt,{children:o("GridTabs.external")+" "+l},l)),y.jsx(Be,{size:"sm",variant:"ghost",alignSelf:"center","aria-label":"New branch",onClick:()=>e(!0),icon:y.jsx(Ie,{}),isDisabled:f}),y.jsxs(Re,{marginLeft:"auto",marginRight:1,children:[y.jsx(de,{variant:"outline",size:"xs",leftIcon:y.jsx(Ie,{}),onClick:()=>i(!0),children:o("GridTabs.addStation")}),y.jsx(de,{size:"xs",colorScheme:"primary",onClick:m,children:o("GridTabs.editLine")})]})]}),y.jsx(On,{flex:1,overflowY:"auto",children:v.map((p,l)=>y.jsx(zn,{padding:0,h:"100%",position:"relative",children:y.jsx(on,{suspenseFallback:y.jsx(pt,{isIndeterminate:!0}),children:y.jsx(_i,{branchIndex:l})})},l))})]}),y.jsx(gi,{isOpen:n,onClose:()=>i(!1)}),y.jsx(bi,{isOpen:s,onClose:()=>e(!1)})]})}function vi(){const o=ue(),d=Q(i=>i.app.globalAlerts),n=i=>{le.isStandaloneWindow()?window.open("/".concat(i),"_blank"):le.openApp({appId:i})};return y.jsx(y.Fragment,{children:Object.entries(d).map(([i,{message:s,url:e,linkedApp:t}])=>y.jsxs(ut,{status:i,variant:"solid",size:"xs",pl:3,pr:1,py:0,children:[y.jsx(ft,{}),t?y.jsx(Ve,{onClick:()=>n(t),children:s}):e?y.jsx(Ve,{href:e,target:"_blank",children:s}):s,y.jsx(rn,{ml:"auto",onClick:()=>o(Br(i))})]},i))})}const yn=o=>{document.title=o,setTimeout(()=>{le.updateAppMetadata({title:o})},200)};function Si(){const{t:o}=ce(),[d]=rt(),n=d.get("project"),i=Q(t=>t.app.isLoading),[s,e]=X.useState(!1);return X.useEffect(()=>{var t;if(le.isStandaloneWindow()&&!le.storage.get(Ye.DO_NOT_SHOW_RMT_MSG)&&e(!0),n){const r=Zr(n);yn((t=r==null?void 0:r.name)!=null?t:o("Project")+" "+n)}},[]),y.jsxs(fn,{children:[i&&y.jsx(pt,{isIndeterminate:i<0,value:i>=0?i:void 0}),y.jsx(fi,{}),s&&y.jsxs(ut,{status:"info",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[y.jsx(ft,{}),y.jsxs(lt,{sx:{"& a, button":{fontWeight:"bold",textDecoration:"underline"}},children:[o("Try out")," ",y.jsx(Ve,{href:"/?app=rmg",isExternal:!0,children:o("Rail Map Toolkit")})," ",o("now and enjoy an even better rail map design experience!")," ",y.jsx(Ve,{as:"button",ml:"auto",onClick:()=>e(!1),children:o("Close")})," | ",y.jsx(Ve,{as:"button",onClick:()=>{e(!1),le.storage.set(Ye.DO_NOT_SHOW_RMT_MSG,"true")},children:o("Don't show me again")})]})]}),y.jsx(vi,{}),y.jsxs(Te,{flex:1,overflow:"hidden",position:"relative",children:[y.jsxs(Te,{as:"section",direction:"column",flex:1,ml:1,mr:1,overflow:"hidden",children:[y.jsx(ke,{children:y.jsx(es,{})}),y.jsx(yi,{})]}),y.jsx(si,{})]}),y.jsx("canvas",{style:{display:"none"}})]})}const xi="rmg-templates-bridge--",wi={h:800,maxH:"70%","& iframe":{h:"100%",w:"100%"}};function ki(o){const{isOpen:d,onClose:n,onImport:i}=o,[s]=X.useState(qe()),e="/rmg-templates/#/import?"+new URLSearchParams({parentComponent:le.getAppName(),parentId:s});return X.useEffect(()=>{const t=new BroadcastChannel(xi+s);return t.onmessage=r=>{const{event:c,meta:f,data:v}=r.data;console.log("[rmg] Received event from RMG Templates app clip:",c),c==="CLOSE"?n():c==="IMPORT"&&i(v,f.name)},()=>{t.close()}},[]),y.jsx(un,{size:"xl",isOpen:d,onClose:n,sx:wi,children:y.jsx("iframe",{src:e,loading:"eager"})})}const Ci={flexWrap:"wrap",flex:"1 1 0%",minW:120,"& button":{w:"100%",m:1}};function ji(o){const{selectedParam:d,disableNew:n,onError:i}=o,{t:s}=ce(),[,e]=rt(),[t,r]=X.useState(!1),c=X.useRef(null),f=X.useRef(null);X.useEffect(()=>{var g;d&&((g=f.current)==null||g.focus())},[d]);const v=()=>{const g=Lr(J.MTR,le.getLanguage()),h=yt(JSON.stringify(g));e({project:h}),le.event(xe.NEW_PARAM,{})},m=(g,h)=>{const _=yt(JSON.stringify(g),h);e({project:_})},p=async g=>{var _;const h=(_=g.target.files)==null?void 0:_[0];Oe.info("handleImportProject(), received file",h);try{if(!h)i(s("OpenActions.unknownError"));else if(h.type!=="application/json")i(s("OpenActions.invalidType"));else{const b=await Hr(h),x=yt(b);e({project:x}),le.event(xe.UPLOAD_PARAM,{})}}catch(b){i(s("OpenActions.unknownError")),Oe.error("handleImportProject(), Unknown error occurred while parsing the uploaded file",b)}g.target.value=""},l=()=>{d&&(e({project:d}),le.event(xe.OPEN_PARAM,{}))};return y.jsxs(Te,{sx:Ci,children:[y.jsx(de,{leftIcon:y.jsx(Ie,{}),onClick:v,isDisabled:n,children:s("Blank project")}),y.jsx(de,{leftIcon:y.jsx(Nr,{}),onClick:()=>r(!0),isDisabled:n,children:s("Open template")}),y.jsx(de,{leftIcon:y.jsx(Mr,{}),onClick:()=>{var g;return(g=c.current)==null?void 0:g.click()},isDisabled:n,children:s("Import project")}),y.jsx(de,{ref:f,colorScheme:"primary",leftIcon:y.jsx(Dr,{}),onClick:l,isDisabled:d===void 0,children:s("Open selected")}),y.jsx("input",{ref:c,type:"file",accept:".json",hidden:!0,onChange:p,"data-testid":"file-upload"}),y.jsx(ki,{isOpen:t,onClose:()=>r(!1),onImport:m})]})}const Ai={flexDirection:"column",p:2,h3:{m:2},"& > div":{m:2,flexWrap:"wrap",flexDirection:{base:"column",md:"row"}}};function Ei(o){const{downloading:d}=o,{t:n}=ce(),[i]=rt(),s=i.get("project"),[e,t]=X.useState([]),[r,c]=X.useState(),f=X.useRef(null),v=sn();X.useEffect(()=>{yn(n("Manage projects"))},[]),X.useEffect(()=>{t(vt())},[d]),Rn({ref:f,handler:()=>c(void 0)});const m=g=>{const{id:h,name:_,lastModified:b}=g;h&&(le.storage.set(Ye.PARAM_CONFIG_BY_ID+h,JSON.stringify({name:_,lastModified:b})),c(void 0),t(vt()),le.event(xe.UPDATE_PARAM_CONFIG,{}))},p=g=>{le.storage.remove(Ye.PARAM_BY_ID+g),le.storage.remove(Ye.PARAM_CONFIG_BY_ID+g),c(void 0),t(vt()),le.event(xe.REMOVE_PARAM,{})},l=g=>{v({description:g,status:"error",duration:1e4,isClosable:!0})};return y.jsxs(fn,{justifyContent:"center",children:[s&&y.jsx(pt,{isIndeterminate:!0}),y.jsx(Pn,{children:y.jsxs(Me,{sx:Ai,children:[y.jsx(Se,{as:"h3",size:"lg",children:n("Saved projects")}),y.jsxs(Te,{ref:f,children:[y.jsx(Gr,{paramRegistry:e,downloading:d,selectedParam:r,onParamSelect:c,onParamRemove:p,onParamUpdate:m}),y.jsx(ji,{selectedParam:r,disableNew:e.length>=10,onError:l})]})]})})]})}const Oi=o=>async d=>{try{const{config:n,param:i}=Vr(o);if(!i)return!1;const s={id:o,...n!=null?n:{}},e=Yr(i);try{const t=await $r(e);d(Et(s)),d(Yt(t))}catch(t){console.warn("Unable to update themes",t),d(Et(s)),d(Yt(e))}return!0}catch(n){return console.warn("Failed to parse param.",n),!1}};function zi(){const{t:o}=ce(),d=ue(),{paramConfig:n}=Q(p=>p.app),[i,s]=rt(),e=i.get("project"),t=i.get("external"),[r,c]=X.useState(!1),[f,v]=X.useState(),m=sn();return X.useEffect(()=>{if(Oe.info("searchParam: project=".concat(e,", external=").concat(t)),e&&t)Oe.warn(", Both param ID and external URL are provided. External URL will be ignored."),s({project:e});else if(e)m.closeAll(),e===(n==null?void 0:n.id)?(Oe.info(", Store param ID matches URL param ID. Rendering app view..."),c(!0)):(Oe.info(", Loading app view for param (ID=".concat(e,")...")),d(Oi(e)).then(p=>{p?c(!0):(Oe.info(", Failed to read param (ID=".concat(e,"). Rendering param selector view...")),m({description:o("Project selected is invalid or corrupted."),status:"error",duration:1e4,isClosable:!0}),s({}))}));else if(t){Oe.info(", External project URl is provided. Downloading project...");const p=decodeURIComponent(t);v(p),qr(p).then(l=>{l?s({project:l}):(Oe.info(", Failed to download param from ".concat(p,". Rendering param selector view...")),m({description:o("External URL cannot be opened."),status:"error",duration:1e4,isClosable:!0}),s({})),v(void 0)})}else Oe.info(", No URL param ID or external URL provided. Rendering param selector view..."),c(!1)},[e,t]),r?y.jsx(Si,{}):y.jsx(Ei,{downloading:f})}const Ni=Object.freeze(Object.defineProperty({__proto__:null,default:zi},Symbol.toStringTag,{value:"Module"}));export{Kr as R,Ni as a,Bi as g,We as i}; diff --git a/assets/app-router-Dyjxcbfz.js b/assets/app-router-Dyjxcbfz.js deleted file mode 100644 index 3569c01a..00000000 --- a/assets/app-router-Dyjxcbfz.js +++ /dev/null @@ -1,12 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B62t-ZyR.js","assets/chakra-CXrhlirJ.js","assets/react-Caefwd5V.js","assets/index-BqOgmhc6.js","assets/index-BTdBVow0.css","assets/svg-wrapper-DO1Iqw6o.js","assets/share-C4aXWUdL.js","assets/mtr-BmcrcPh6.js","assets/index-DX2OWif3.js","assets/param-selector-B7mXBf6L.js","assets/index-Dcvy1DT7.js","assets/index-DaXT2Y8N.js","assets/station-ag-grid-sUlB4arS.js","assets/ag-grid-react-A6BSx5P9.js","assets/ag-grid-community-TcQKCcyM.js"])))=>i.map(i=>d[i]); -import{j as y,ap as xn,h as Te,B as ke,al as Se,a2 as Be,ao as Re,N as lt,aq as Et,t as de,D as Ne,aj as Ke,M as Xe,ak as Je,U as ut,V as ft,J as Qe,K as et,L as tt,O as nt,ab as nn,ar as wn,as as kn,at as Cn,au as Lt,av as jn,aw as An,ax as gt,ay as En,az as On,R as Ve,aA as rn,a as zn,aB as Rn}from"./chakra-CXrhlirJ.js";import{a as X,u as ce,o as sn,c as at,g as Pn,s as Tn}from"./react-Caefwd5V.js";import{_ as Le,u as Q,r as le,E as xe,R as pt,a as an,s as In,b as on,c as Bn,D as ve,d as ue,e as J,f as ze,M as Nn,F as St,g as Me,h as ct,i as Ie,j as xt,o as Ot,k as Mn,l as zt,S as dt,m as Ft,B as ht,n as Rt,p as Pt,q as Dn,t as Ln,v as Fn,w as wt,x as kt,y as Un,z as Ut,A as Wn,C as Zn,G as ln,H as cn,I as Hn,J as Gn,P as Vn,K as Yn,L as Wt,N as $n,O as qn,Q as Kn,T as Xn,U as Jn,V as Qn,W as Zt,X as er,Y as tr,Z as nr,$ as bt,a0 as rr,a1 as sr,a2 as ir,a3 as ar,a4 as or,a5 as lr,a6 as cr,a7 as dr,a8 as Fe,a9 as qe,aa as Ue,ab as De,ac as dn,ad as hr,ae as Ct,af as ur,ag as jt,ah as fr,ai as pr,aj as mr,ak as gr,al as hn,am as br,an as _r,ao as yr,ap as vr,aq as Ht,ar as Sr,as as xr,at as wr,au as kr,av as At,aw as Cr,ax as jr,ay as Ar,az as Er,aA as Or,aB as zr,aC as Rr,aD as Pr,aE as Tr,aF as Ir,aG as Ye,aH as un,aI as Br,aJ as Nr,aK as Mr,aL as Dr,aM as Oe}from"./index-BqOgmhc6.js";import{R as be,w as Lr,i as Fr,d as Gt,a as fn,s as Ur,g as Wr,b as _t,r as Zr,c as yt,P as Hr,e as Gr,u as Vr,f as Yr,h as $r}from"./param-selector-B7mXBf6L.js";var qr=function(o){var d=o.text,n=o.delimiter;return y.jsx("span",{children:d.split(n||"\\").map(function(i,s){return s?[y.jsx(xn,{children:"⏎"},s),i]:i})})};const Tt={mtr:{components:()=>Le(()=>import("./index-B62t-ZyR.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])),fonts:()=>Le(()=>import("./index-B62t-ZyR.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])).then(o=>o.mtrFonts)},gzmtr:{components:()=>Le(()=>import("./index-DX2OWif3.js"),__vite__mapDeps([8,1,2,3,4,6,5,9]))},shmetro:{components:()=>Le(()=>import("./index-Dcvy1DT7.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,9]))},shsubrwy:{components:()=>Le(()=>import("./index-DaXT2Y8N.js"),__vite__mapDeps([11,1,2,3,4,5]))}};function Kr(o){const[d,n]=X.useState({});return X.useEffect(()=>(Tt[o].components().then(i=>{n(i.default)}).catch(i=>{console.error("Failed to load canvas for style ".concat(o),i),n({})}),()=>{n({})}),[o]),d}const Xr={position:"relative",flexDirection:"row",overflowX:"auto","&::before, &::after":{content:'""',margin:"auto"},"& > svg":{flex:"0 0 auto",border:"1px solid black"}},Jr=async(o,d)=>{var i,s,e,t;const n=(e=await((s=(i=Tt[o]).fonts)==null?void 0:s.call(i)))!=null?e:[];await Promise.all(n.map(r=>le.loadFont(r))),d.aborted||(t=document.querySelector("#css_share"))==null||t.setAttribute("href","/rmg/styles/share_".concat(o,".css"))};function Qr(){const{canvasToShow:o,canvasScale:d}=Q(r=>r.app),{svg_height:n,style:i}=Q(r=>r.param),s=Kr(i);X.useEffect(()=>{const r=new AbortController;return Jr(i,r.signal).then(),le.event(xe.STYLE_CHANGE,{style:i}),()=>{r.abort()}},[i]);const e=Object.keys(s).filter(r=>o.includes(r)),t=n*d;return y.jsx(Te,{minH:t,sx:Xr,children:Object.keys(s).length===0?y.jsx(pt,{isIndeterminate:!0}):e.map(r=>y.jsx(an,{sx:{minWidth:750,height:t},children:s[r]},r+i))})}const Vt=o=>d=>{d(In(o)),d(on(o.stn_list))},_e=(o,d)=>(n,i)=>{const{stn_list:s}=i().param,e={...s,[o]:d};n(we(e))},we=o=>d=>{d(Bn(o)),d(on(o))},es=(o=!1)=>(d,n)=>{const{stn_list:i}=n().param,s=Object.keys(i).reduce((e,t)=>({...e,[t]:(r=>{var c,p,v,m;switch(r){case"linestart":return{...i.lineend,parents:[],children:o?i.lineend.parents:i.lineend.parents.toReversed(),branch:{right:(c=i.lineend.branch)==null?void 0:c.left}};case"lineend":return{...i.linestart,parents:o?i.linestart.children:i.linestart.children.toReversed(),children:[],branch:{left:(p=i.linestart.branch)==null?void 0:p.right}};default:{const f=i[r].children.map(g=>g==="linestart"?"lineend":g==="lineend"?"linestart":g),l=i[r].parents.map(g=>g==="linestart"?"lineend":g==="lineend"?"linestart":g);return{...i[r],parents:o?f:f.reverse(),children:o?l:l.reverse(),branch:{left:(v=i[r].branch)==null?void 0:v.right,right:(m=i[r].branch)==null?void 0:m.left}}}}})(t)}),{});d(we(s))},Yt=(o,d,n)=>(i,s)=>{const e=s().param.stn_list[o];i(_e(o,{...e,localisedName:{...e.localisedName,[d]:n}}))},ts=(o,d)=>(n,i)=>{const{localisedSecondaryName:s,...e}=i().param.stn_list[o];n(d?_e(o,{...e,localisedSecondaryName:{}}):_e(o,e))},$t=(o,d,n)=>(i,s)=>{const e=s().param.stn_list[o];i(_e(o,{...e,localisedSecondaryName:{...e.localisedSecondaryName,[d]:n}}))},ns=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,num:d}))},qt=(o,d,n)=>(i,s)=>{var r,c;const e=s().param.stn_list[o],t=e.transfer.groups.map(p=>({...p}));if(t.length>d)t[d]={...t[d],lines:((r=t[d].lines)!=null?r:[]).concat(n)};else{for(let p=t.length;p(i,s)=>{var t,r;const e=s().param.stn_list[o];if(e.transfer.groups.length>d&&(((t=e.transfer.groups[d].lines)==null?void 0:t.length)||0)>n){const c=e.transfer.groups.map((p,v)=>{var m;return v===d?{...p,lines:(m=p.lines)==null?void 0:m.filter((f,l)=>l!==n)}:p});i(_e(o,{...e,transfer:{...e.transfer,groups:[c[0],...(r=c.slice(1))!=null?r:[]]}}))}},ss=(o,d,n,i)=>(s,e)=>{var r,c;const t=e().param.stn_list[o];if(t.transfer.groups.length>d&&(((r=t.transfer.groups[d].lines)==null?void 0:r.length)||0)>n){const p=t.transfer.groups.map((v,m)=>{var f;return m===d?{...v,lines:(f=v.lines)==null?void 0:f.map((l,g)=>g===n?i:l)}:v});s(_e(o,{...t,transfer:{...t.transfer,groups:[p[0],...(c=p.slice(1))!=null?c:[]]}}))}},Kt=(o,d,n)=>(i,s)=>{var r;const e=s().param.stn_list[o],t=e.transfer.groups.map(c=>({...c}));t.length>d&&(t[d]={...t[d],name:n},i(_e(o,{...e,transfer:{...e.transfer,groups:[t[0],...(r=t.slice(1))!=null?r:[]]}})))},is=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,transfer:{...s.transfer,tick_direc:d}}))},as=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,transfer:{...s.transfer,paid_area:d}}))},os=(o,d,n)=>(i,s)=>{var t,r;const e=s().param.stn_list[o];i(_e(o,{...e,branch:{...e.branch,[d]:(r=(t=e.branch)==null?void 0:t[d])==null?void 0:r.with(0,n)}}))},ls=(o,d,n)=>(i,s)=>{var r,c,p;const e=s().helper.branches,t={stnId:o,direction:d,first:n};if(d===ve.left){const v=(r=e.slice(1).find(m=>m.slice(-1)[0]===o))==null?void 0:r[0];if(v){const m=e[0][e[0].indexOf(v)+1];i(Xt([t,{stnId:v,direction:ve.right,first:m}]))}}else{const v=(p=(c=e.slice(1).find(m=>m[0]===o))==null?void 0:c.slice(-1))==null?void 0:p[0];if(v){const m=e[0][e[0].indexOf(v)-1];i(Xt([t,{stnId:v,direction:ve.left,first:m}]))}}},Xt=o=>(d,n)=>{var s,e,t,r;const{stn_list:i}=n().param;d(we({...i,[o[0].stnId]:{...i[o[0].stnId],branch:{...i[o[0].stnId].branch,[o[0].direction]:(e=(s=i[o[0].stnId].branch)==null?void 0:s[o[0].direction])==null?void 0:e.with(1,o[0].first)}},[o[1].stnId]:{...i[o[1].stnId],branch:{...i[o[1].stnId].branch,[o[1].direction]:(r=(t=i[o[1].stnId].branch)==null?void 0:t[o[1].direction])==null?void 0:r.with(1,o[1].first)}}}))},cs=(o,d)=>(n,i)=>{var e,t,r;const s=i().helper.branches;if(d===ve.left){const c=(e=s.slice(1).find(p=>p.slice(-1)[0]===o))==null?void 0:e[0];c&&n(Jt(o,c))}else{const c=(r=(t=s.slice(1).find(p=>p[0]===o))==null?void 0:t.slice(-1))==null?void 0:r[0];c&&n(Jt(c,o))}},Jt=(o,d)=>(n,i)=>{const{stn_list:s}=i().param;n(we({...s,[o]:{...s[o],parents:s[o].parents.slice().reverse()},[d]:{...s[d],children:s[d].children.slice().reverse()}}))},ds=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,facility:d||void 0}))},hs=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,services:d}))},us=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,loop_pivot:d}))},fs=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,one_line:d}))},ps=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,int_padding:d}))},ms=o=>(d,n)=>{const s=n().param.stn_list[o].int_padding,e=structuredClone(n().param.stn_list);Object.values(e).forEach(t=>{t.int_padding=s}),d(we(e))},gs=(o,d)=>(n,i)=>{const s=i().param.stn_list[o];n(_e(o,{...s,character_spacing:d}))},bs=o=>(d,n)=>{const s=n().param.stn_list[o].character_spacing,e=structuredClone(n().param.stn_list);Object.values(e).forEach(t=>{t.character_spacing=s}),d(we(e))},_s=(o,d,n=2,i="asc")=>(s,e)=>{var p;const t=e().param.stn_list,c=(p=e().helper.branches[o])==null?void 0:p.slice(1,-1);if(c){const v=c.reduce((m,f,l)=>({...m,[f]:{...t[f],num:(d+l*(i==="desc"?-1:1)).toString().padStart(n,"0")}}),t);s(we(v))}};function ys(){var c,p,v,m;const{t:o}=ce(),d=ue(),n=Q(f=>f.app.selectedStation);console.log("InfoSection:: Rendering for",n);const i=Q(f=>f.param.style),{num:s,localisedName:e,localisedSecondaryName:t}=Q(f=>f.param.stn_list[n]),r=[{type:"input",label:o("StationSidePanel.info.num"),value:s,placeholder:"01",onChange:f=>d(ns(n,f)),hidden:![J.GZMTR].includes(i)},{type:"input",label:o("Chinese name"),value:(c=e.zh)!=null?c:"",onChange:f=>d(Yt(n,"zh",f))},{type:"input",label:o("English name"),value:(p=e.en)!=null?p:"",onChange:f=>d(Yt(n,"en",f))},{type:"custom",label:o("Secondary names"),component:y.jsx(ze,{selections:[{label:o("Yes"),value:!0},{label:o("No"),value:!1}],defaultValue:!!t,onChange:f=>d(ts(n,f))}),hidden:![J.GZMTR].includes(i)},{type:"input",label:o("StationSidePanel.info.zhSecondary"),value:(v=t==null?void 0:t.zh)!=null?v:"",placeholder:"1号航站楼",onChange:f=>d($t(n,"zh",f)),hidden:!t||![J.GZMTR].includes(i)},{type:"input",label:o("StationSidePanel.info.enSecondary"),value:(m=t==null?void 0:t.en)!=null?m:"",placeholder:"Terminal 1",onChange:f=>d($t(n,"en",f)),hidden:!t||![J.GZMTR].includes(i)}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StationSidePanel.info.title")}),y.jsx(be,{fields:r,minW:130})]})}class vs{static hexToRgb(d){return[parseInt(d.slice(1,3),16),parseInt(d.slice(3,5),16),parseInt(d.slice(5,7),16)]}static fade(d,n){return"rgba(".concat([...this.hexToRgb(d),n].join(","),")")}static euclideanDistance(d,n){return this.hexToRgb(d).reduce((i,s,e)=>i+Math.pow(s-this.hexToRgb(n)[e],2),0)}}function It(o){var s;const{theme:d,onClick:n}=o,{t:i}=ce();return y.jsx(Be,{size:"xs","aria-label":i("Colour"),mt:"0.45px",color:d==null?void 0:d[3],bg:d==null?void 0:d[2],_hover:{bg:vs.fade((s=d==null?void 0:d[2])!=null?s:"#aaaaaa",.7)},icon:y.jsx(Nn,{}),onClick:n})}function Ss(o){const{interchangeList:d,onAdd:n,onDelete:i,onUpdate:s}=o,{t:e}=ce(),t=ue(),[r,c]=X.useState(),{paletteAppClipOutput:p}=Q(_=>_.app),{style:v,theme:m,stn_list:f}=Q(_=>_.param);X.useEffect(()=>{r!==void 0&&p&&(s==null||s(r,{...d[r],theme:p}),c(void 0))},[p==null?void 0:p.toString()]);const l=Object.values(f).reduce((_,b)=>{const[x,C]=_;return[[...new Set(x.concat(b.transfer.groups.map(j=>{var A,N;return(N=(A=j.lines)==null?void 0:A.map(O=>O.name[0]))!=null?N:[]}).flat()))],[...new Set(C.concat(b.transfer.groups.map(j=>{var A,N;return(N=(A=j.lines)==null?void 0:A.map(O=>O.name[1]))!=null?N:[]}).flat()))]]},[[],[]]),g=Object.fromEntries(Object.entries(St).filter(([_])=>!["railway"].includes(_)).map(([_,b])=>[_,e(b)])),h=d.map((_,b)=>[{type:"input",label:e("Chinese name"),value:_.name[0],onChange:x=>s==null?void 0:s(b,{..._,name:[x,_.name[1]]}),optionList:l[0]},{type:"input",label:e("English name"),value:_.name[1],onChange:x=>s==null?void 0:s(b,{..._,name:[_.name[0],x]}),optionList:l[1]},{type:"select",label:e("Line icon"),value:_.facility,options:g,onChange:x=>s==null?void 0:s(b,{..._,facility:x}),hidden:![J.MTR].includes(v)}]);return y.jsxs(Me,{direction:"column",children:[d.length===0&&y.jsxs(Re,{spacing:.5,"data-testid":"interchange-card-stack",children:[y.jsx(lt,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:e("StationSidePanel.interchange.noInterchanges")}),y.jsx(Be,{size:"sm",variant:"ghost","aria-label":e("StationSidePanel.interchange.add"),onClick:()=>n==null?void 0:n({theme:[m[0],"","#aaaaaa",ct.white],name:["",""]}),icon:y.jsx(Ie,{})})]}),d.map((_,b)=>y.jsxs(Re,{spacing:.5,"data-testid":"interchange-card-stack-".concat(b),children:[y.jsx(xt,{label:e("Colour"),minW:"40px",noLabel:b!==0,children:y.jsx(It,{theme:_.theme,onClick:()=>{var x;c(b),t(Ot((x=_.theme)!=null?x:[m[0],"","#aaaaaa",ct.white]))}})}),y.jsx(be,{fields:h[b],noLabel:b!==0}),n&&b===h.length-1?y.jsx(Be,{size:"sm",variant:"ghost","aria-label":e("StationSidePanel.interchange.copy"),onClick:()=>n==null?void 0:n(d.slice(-1)[0]),icon:y.jsx(Mn,{})}):y.jsx(ke,{minW:8}),i&&y.jsx(Be,{size:"sm",variant:"ghost","aria-label":e("StationSidePanel.interchange.remove"),onClick:()=>i==null?void 0:i(b),icon:y.jsx(zt,{})})]},b))]})}function xs(){const{t:o}=ce(),d=ue(),n=Q(m=>m.app.selectedStation),{theme:i,style:s}=Q(m=>m.param),{transfer:e}=Q(m=>m.param.stn_list[n]),t=m=>{var f,l,g,h;return[{type:"input",label:o("Station Chinese name"),value:(l=(f=e.groups[m].name)==null?void 0:f[0])!=null?l:"",hidden:![J.MTR].includes(s),onChange:_=>{var b,x;return d(Kt(n,m,[_,(x=(b=e.groups[m].name)==null?void 0:b[1])!=null?x:""]))}},{type:"input",label:o("Station English name"),value:(h=(g=e.groups[m].name)==null?void 0:g[1])!=null?h:"",hidden:![J.MTR].includes(s),onChange:_=>{var b,x;return d(Kt(n,m,[(x=(b=e.groups[m].name)==null?void 0:b[0])!=null?x:"",_]))}},{type:"switch",label:o("Paid area"),isChecked:e.paid_area,onChange:_=>d(as(n,_)),hidden:![J.MTR].includes(s)||m===0,oneLine:!0}]},r=m=>f=>{d(qt(n,m,f))},c=m=>f=>{d(rs(n,m,f))},p=m=>(f,l)=>{d(ss(n,m,f,l))},v=()=>{d(qt(n,e.groups.length,{theme:[i[0],"","#AAAAAA",ct.white],name:["",""]}))};return y.jsxs(Et,{align:"flex-start",p:1,children:[y.jsxs(Te,{w:"100%",children:[y.jsx(Se,{as:"h5",size:"sm",mr:"auto",children:o("StationSidePanel.interchange.title")}),s===J.MTR&&y.jsx(ze,{selections:[{label:o("Text on the left"),value:dt.left},{label:o("Text on the right"),value:dt.right}],defaultValue:e.tick_direc,onChange:m=>d(is(n,m))})]}),e.groups.map((m,f)=>{var l;return y.jsxs(X.Fragment,{children:[y.jsx(Se,{as:"h6",size:"xs",children:o(f===0?"StationSidePanel.interchange.within":f===1?"StationSidePanel.interchange.outStation":"StationSidePanel.interchange.outSystem")}),f!==0&&y.jsx(be,{fields:t(f)}),y.jsx(Ss,{interchangeList:(l=m.lines)!=null?l:[],onAdd:r(f),onDelete:c(f),onUpdate:p(f)})]},f)}),e.groups.length<3&&y.jsx(de,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:y.jsx(Ie,{}),onClick:v,children:o("StationSidePanel.interchange.addGroup")})]})}function ws(){const{t:o}=ce(),d=ue(),n=Q(h=>h.app.selectedStation),{style:i,loop:s}=Q(h=>h.param),{services:e,facility:t,loop_pivot:r,one_line:c,int_padding:p,character_spacing:v}=Q(h=>h.param.stn_list[n]),m=Object.values(Ft).map(h=>({label:o("StationSidePanel.more."+h),value:h,disabled:h===Ft.local&&i!==J.SHMetro})),f=Object.fromEntries(Object.entries(St).filter(([h])=>!["railway"].includes(h)).map(([h,_])=>[h,o(_)])),l=Object.fromEntries(Object.entries(St).filter(([h])=>!["np360"].includes(h)).map(([h,_])=>[h,o(_)])),g=[{type:"custom",label:o("StationSidePanel.more.service"),component:y.jsx(ze,{selections:m,defaultValue:e,onChange:h=>d(hs(n,h)),multiSelect:!0}),hidden:![J.GZMTR,J.SHMetro].includes(i)},{type:"select",label:o("StationSidePanel.more.facility"),value:t||"",options:{"":o("None"),...i===J.MTR?f:l},onChange:h=>d(ds(n,h)),hidden:![J.MTR,J.SHMetro].includes(i)},{type:"switch",label:o("StationSidePanel.more.pivot"),isChecked:r,onChange:h=>d(us(n,h)),hidden:![J.SHMetro].includes(i)||!s,minW:"full",oneLine:!0},{type:"switch",label:o("StationSidePanel.more.oneLine"),isChecked:c,onChange:h=>d(fs(n,h)),hidden:![J.SHMetro].includes(i),minW:"full",oneLine:!0},{type:"input",label:o("StationSidePanel.more.intPadding"),value:p.toString(),validator:h=>Number.isInteger(h),onChange:h=>d(ps(n,Number(h))),hidden:![J.SHMetro].includes(i)},{type:"custom",label:o("StationSidePanel.more.intPaddingApplyGlobal"),component:y.jsx(ze,{selections:[{label:o("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>d(ms(n))}),oneLine:!0,hidden:![J.SHMetro].includes(i)},{type:"input",label:o("StationSidePanel.more.characterSpacing"),value:v.toString(),validator:h=>Number.isInteger(h),onChange:h=>d(gs(n,Number(h))),hidden:![J.SHSuburbanRailway].includes(i)},{type:"custom",label:o("StationSidePanel.more.intPaddingApplyGlobal"),component:y.jsx(ze,{selections:[{label:o("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>d(bs(n))}),oneLine:!0,hidden:![J.SHSuburbanRailway].includes(i)}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StationSidePanel.more.title")}),y.jsx(be,{fields:g})]})}function ks(){const{t:o}=ce(),d=ue(),n=Q(m=>m.app.selectedStation),i=Q(m=>m.param.stn_list),{parents:s,children:e,branch:t}=i[n],r={[ht.through]:o("StationSidePanel.branch.through"),[ht.nonThrough]:o("StationSidePanel.branch.nonThrough")},c=m=>(m===ve.left?s:e).reduce((f,l)=>({...f,[l]:i[l].localisedName.zh+"/"+i[l].localisedName.en}),{}),p={upper:o("StationSidePanel.branch.upper"),lower:o("StationSidePanel.branch.lower")},v=m=>{const f=t==null?void 0:t[m];return f?[{type:"select",label:o("StationSidePanel.branch.type"),options:r,value:f[0],onChange:l=>d(os(n,m,l))},{type:"select",label:o("StationSidePanel.branch.firstStation"),options:c(m),value:f[1],onChange:l=>d(ls(n,m,l))},{type:"select",label:o("StationSidePanel.branch.position"),options:p,value:(m===ve.left?s:e)[0]===f[1]?"upper":"lower",onChange:()=>d(cs(n,m))}]:[]};return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("Branches")}),y.jsx(Se,{as:"h6",size:"xs",children:o("Branch on the left")}),y.jsx(Me,{direction:"column",children:s.length===2?y.jsx(be,{fields:v(ve.left)}):y.jsx(lt,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:o("No branches found")})}),y.jsx(Se,{as:"h6",size:"xs",children:o("Branch on the right")}),y.jsx(Me,{direction:"column",children:e.length===2?y.jsx(be,{fields:v(ve.right)}):y.jsx(lt,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:o("No branches found")})})]})}function Cs(){return y.jsxs(Rt,{children:[y.jsx(ys,{}),y.jsx(Ne,{}),y.jsx(xs,{}),y.jsx(Ne,{}),y.jsx(ks,{}),y.jsx(Ne,{}),y.jsx(ws,{})]})}function js(){const{t:o}=ce(),d=ue(),{style:n,svgWidth:i,svg_height:s,y_pc:e,branchSpacingPct:t,padding:r,direction_gz_x:c,direction_gz_y:p,loop:v}=Q(f=>f.param),m=[...Pt[n].map(f=>({type:"input",label:o("StyleSidePanel.layout.".concat(f,"Width")),value:i[f].toString(),onChange:l=>d(Dn({width:Number(l),canvas:f}))})),{type:"input",label:o("StyleSidePanel.layout.canvasHeight"),value:s.toString(),onChange:f=>d(Ln(Number(f)))},{type:"slider",label:o("StyleSidePanel.layout.verticalPosition"),value:e,min:0,max:100,onChange:f=>d(Fn(f)),leftIcon:y.jsx(wt,{}),rightIcon:y.jsx(kt,{}),hidden:![J.MTR,J.GZMTR].includes(n)},{type:"slider",label:o(v?"StyleSidePanel.layout.branchSpacingLoop":"Branch spacing"),value:t,min:0,max:v?50:100,onChange:f=>d(Un(f)),leftIcon:y.jsx(Ut,{}),rightIcon:y.jsx(Ie,{})},{type:"slider",label:o("StyleSidePanel.layout.padding"),value:r,min:0,max:50,onChange:f=>d(Wn(f)),leftIcon:y.jsx(Ut,{}),rightIcon:y.jsx(Ie,{})},{type:"slider",label:o("StyleSidePanel.layout.directionGzX"),value:c,min:0,max:100,onChange:f=>d(Zn(f)),leftIcon:y.jsx(ln,{}),rightIcon:y.jsx(cn,{}),hidden:![J.GZMTR].includes(n)},{type:"slider",label:o("StyleSidePanel.layout.directionGzY"),value:p,min:0,max:100,onChange:f=>d(Hn(f)),leftIcon:y.jsx(wt,{}),rightIcon:y.jsx(kt,{}),hidden:![J.GZMTR].includes(n)}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StyleSidePanel.layout.title")}),y.jsx(be,{fields:m,minW:130})]})}function As(){var G;const{t:o}=ce(),d=ue(),{paletteAppClipOutput:n}=Q(w=>w.app),{style:i,theme:s,line_name:e,line_num:t,spanLineNum:r,direction:c,platform_num:p,psd_num:v,namePosMTR:m,customiseMTRDest:f,info_panel_type:l,stn_list:g,loop:h}=Q(w=>w.param),_=Math.max(...Object.values(g).map(w=>w.services.length)),[b,x]=X.useState(!1);X.useEffect(()=>{b&&n&&(d(Gn(n)),x(!1))},[n==null?void 0:n.toString()]);const C=[{label:o("StyleSidePanel.design.left"),value:dt.left},{label:o("StyleSidePanel.design.right"),value:dt.right}],j=Object.values(Vn).reduce((w,T)=>({...w,[T]:o("StyleSidePanel.design."+T)}),{}),A=Object.values(Yn).reduce((w,T)=>({...w,[T]:o("StyleSidePanel.design."+T)}),{}),N=[{type:"custom",label:o("Colour"),component:y.jsx(It,{theme:s,onClick:()=>{x(!0),d(Ot(s))}}),minW:"40px"},{type:"input",label:o("StyleSidePanel.design.zhLineName"),value:e[0],onChange:w=>d(Wt([w,e[1]])),minW:130},{type:"input",label:o("StyleSidePanel.design.enLineName"),value:e[1],onChange:w=>d(Wt([e[0],w])),minW:130},{type:"input",label:o("StyleSidePanel.design.lineNum"),value:t,onChange:w=>d($n(w)),hidden:![J.GZMTR].includes(i)},{type:"custom",label:o("Span digits over rows"),component:y.jsx(ze,{selections:[{label:o("Yes"),value:!0},{label:o("No"),value:!1}],defaultValue:r!=null?r:!1,onChange:w=>d(qn(w))}),hidden:![J.GZMTR].includes(i)},{type:"input",label:o("StyleSidePanel.design.platformNum"),value:p||"",onChange:w=>d(Kn(w))},{type:"input",label:o("StyleSidePanel.design.psdNum"),value:v,onChange:w=>d(Xn(w)),hidden:![J.GZMTR].includes(i)},{type:"select",label:o("StyleSidePanel.design.panelType"),value:l,options:i===J.GZMTR?j:A,onChange:w=>d(Jn(w)),hidden:![J.GZMTR,J.SHMetro].includes(i)},{type:"custom",label:o("StyleSidePanel.design.direction"),component:y.jsx(ze,{selections:C,defaultValue:c,onChange:w=>d(Qn(w))}),minW:"full",oneLine:!0}],O=[{label:o("StyleSidePanel.design.upwards"),value:!0},{label:o("StyleSidePanel.design.downward"),value:!1}],M=[{type:"custom",label:o("StyleSidePanel.design.firstStationNameDisplay"),component:y.jsx(Re,{spacing:.5,children:y.jsx(ze,{selections:O,defaultValue:(G=m.isFlip)!=null?G:!0,onChange:w=>d(Zt(w))})}),minW:"full",oneLine:!0,hidden:![J.SHMetro].includes(i)||_>1||h}],z=[{label:o("StyleSidePanel.design.alternatively"),value:!0},{label:o("StyleSidePanel.design.onOneSide"),value:!1}],L=[{type:"custom",label:o("StyleSidePanel.design.nameDisplay"),component:y.jsxs(Re,{spacing:.5,children:[y.jsx(Be,{size:"xs",variant:"ghost","aria-label":o("StyleSidePanel.design.flip"),title:o("StyleSidePanel.design.flip"),icon:y.jsx(er,{}),onClick:()=>d(Zt())}),y.jsx(ze,{selections:z,defaultValue:m.isStagger,onChange:w=>d(tr(w))})]}),minW:"full",oneLine:!0,hidden:![J.MTR].includes(i)},{type:"switch",label:o("StyleSidePanel.design.legacyDestination"),isChecked:f.isLegacy,onChange:w=>d(nr(w)),hidden:![J.MTR].includes(i),minW:"full",oneLine:!0},{type:"switch",label:o("StyleSidePanel.design.overrideTerminal"),isChecked:f.terminal!==!1,onChange:w=>d(bt(w?["",""]:!1)),hidden:![J.MTR].includes(i),minW:"full",oneLine:!0},{type:"input",label:o("StyleSidePanel.design.terminalZhName"),value:f.terminal?f.terminal[0]:"",placeholder:"機場及博覽館",onChange:w=>d(bt([w,f.terminal?f.terminal[1]:""])),hidden:![J.MTR].includes(i)||f.terminal===!1},{type:"input",label:o("StyleSidePanel.design.terminalEnName"),value:f.terminal?f.terminal[1]:"",placeholder:"Airport and AsiaWorld-Expo",onChange:w=>d(bt([f.terminal?f.terminal[0]:"",w])),hidden:![J.MTR].includes(i)||f.terminal===!1}];return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StyleSidePanel.design.title")}),y.jsx(be,{fields:[...N,...L,...M],minW:130})]})}function Es(){const{t:o}=ce(),d=ue(),{branches:n}=Q(g=>g.helper),{loop:i,loop_info:s,style:e}=Q(g=>g.param),{bank:t,left_and_right_factor:r,bottom_factor:c,clockwise:p}=s,v=n.flat().filter((g=>h=>(g[h]=(g[h]||0)+1)===2)({})).filter(g=>!["linestart","lineend"].includes(g)),m=Math.abs(n[0].indexOf(v[0])-n[0].indexOf(v[1])),f=n.length>=2?(0,Math.min)(n[0].length-2-m,m):Math.floor((n[0].length-2-c*2)/2),l=[{type:"switch",label:o("StyleSidePanel.loop.isLoop"),isChecked:i,onChange:g=>d(rr(g)),minW:"full",oneLine:!0},{type:"switch",label:o("StyleSidePanel.loop.isBank"),isChecked:t,onChange:g=>d(sr(g)),minW:"full",oneLine:!0,hidden:!i||e!==J.SHMetro},{type:"slider",label:o("StyleSidePanel.loop.leftRightFactor"),value:r,min:0,max:f,onChange:g=>d(ir(Math.floor(g))),hidden:!i||e!==J.SHMetro},{type:"slider",label:o("StyleSidePanel.loop.bottomFactor"),value:c,min:0,max:Math.floor((n[0].length-2-r*2)/2),onChange:g=>d(ar(Math.floor(g))),hidden:!i||i&&n.length>2||e!==J.SHMetro},{type:"custom",label:o("Loop direction"),component:y.jsx(ze,{selections:[{label:o("Anticlockwise"),value:!1},{label:o("Clockwise"),value:!0}],defaultValue:p!=null?p:!1,onChange:g=>d(or(g))}),hidden:!i||![J.GZMTR].includes(e),oneLine:!0}];return y.jsxs(ke,{p:1,children:[y.jsxs(Se,{as:"h5",size:"sm",children:[o("StyleSidePanel.loop.title")," ",e===J.GZMTR?"(Beta)":""]}),y.jsx(be,{fields:l})]})}function Os(o){const{note:d,onUpdate:n,onDelete:i}=o,{t:s}=ce(),e=[{type:"textarea",label:s("StyleSidePanel.note.zhNote"),value:d[0],onChange:r=>n==null?void 0:n([r,d[1],d[2],d[3],d[4]])},{type:"textarea",label:s("StyleSidePanel.note.enNote"),value:d[1],onChange:r=>n==null?void 0:n([d[0],r,d[2],d[3],d[4]])},{type:"switch",label:s("StyleSidePanel.note.border"),isChecked:d[4],onChange:r=>n==null?void 0:n([d[0],d[1],d[2],d[3],r]),oneLine:!0}],t=[{type:"slider",label:s("StyleSidePanel.note.positionX"),value:d[2],min:0,max:100,onChange:r=>n==null?void 0:n([d[0],d[1],r,d[3],d[4]]),leftIcon:y.jsx(ln,{}),rightIcon:y.jsx(cn,{})},{type:"slider",label:s("StyleSidePanel.note.positionY"),value:d[3],min:0,max:100,onChange:r=>n==null?void 0:n([d[0],d[1],d[2],r,d[4]]),leftIcon:y.jsx(wt,{}),rightIcon:y.jsx(kt,{})}];return y.jsxs(Me,{direction:"column",children:[y.jsx(be,{fields:e,minW:"full"}),y.jsxs(Re,{spacing:.5,sx:{"&>div":{flex:1}},children:[y.jsx(be,{fields:t}),y.jsx(Be,{size:"sm",variant:"ghost","aria-label":s("StyleSidePanel.note.remove"),onClick:()=>i==null?void 0:i(),icon:y.jsx(zt,{})})]})]})}function zs(){const{t:o}=ce(),d=ue(),n=Q(i=>i.param.notesGZMTR);return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("StyleSidePanel.note.title")}),y.jsxs(Et,{spacing:.5,children:[n==null?void 0:n.map((i,s)=>y.jsx(Os,{note:i,onUpdate:e=>d(lr({index:s,note:e})),onDelete:()=>d(cr(s))},s)),y.jsx(de,{size:"xs",variant:"ghost",leftIcon:y.jsx(Ie,{}),alignSelf:"flex-end",onClick:()=>d(dr()),children:o("StyleSidePanel.note.add")})]})]})}function Rs(){const{style:o}=Q(d=>d.param);return y.jsxs(Rt,{children:[y.jsx(js,{}),y.jsx(Ne,{}),y.jsx(As,{}),[J.GZMTR,J.SHMetro].includes(o)&&y.jsxs(y.Fragment,{children:[y.jsx(Ne,{}),y.jsx(Es,{})]}),o===J.GZMTR&&y.jsxs(y.Fragment,{children:[y.jsx(Ne,{}),y.jsx(zs,{})]})]})}const Bt=(o,d)=>{if(["linestart","lineend"].includes(o)||d[o].parents.length>1||d[o].children.length>1)return 0;const n=d[o].parents[0];return n?d[n].children.length===1?Bt(n,d):d[n].children.indexOf(o)===0?1:-1:0},Ps=o=>(d,n)=>{const{stn_list:i,current_stn_idx:s}=n().param;if(o===s)return console.log("removeStation():: failed as current station cannot be deleted"),!1;const{parents:e,children:t}=i[o];return Object.keys(i).length===4?(console.log("removeStation():: failed as only 2 stations remaining"),!1):e.length===2&&t.length===2?(console.log("removeStation():: failed as branches on both sides cannot be combined"),!1):Object.keys(i).some(c=>![o,"linestart","lineend"].includes(c)&&Bt(c,i)===0)?!0:(console.log("removeStation():: failed as selected station is the only station without siblings"),!1)},Ts=o=>(d,n)=>{var r,c;const i=n().param.stn_list,{parents:s,children:e}=i[o];let t=JSON.parse(JSON.stringify(i));s.length===2||e.length===2?(s.forEach(p=>{t[p].children=e}),e.forEach(p=>{t[p].parents=s}),s.length===1&&(t[s[0]].branch={...t[s[0]].branch,right:(r=t[o].branch)==null?void 0:r.right}),e.length===1&&(t[e[0]].branch={...t[e[0]].branch,left:(c=t[o].branch)==null?void 0:c.left})):i[s[0]].children.length===2&&i[e[0]].parents.length===2?t={...i,[s[0]]:{...i[s[0]],children:i[s[0]].children.filter(p=>p!==o),branch:{...i[s[0]].branch,right:void 0}},[e[0]]:{...i[e[0]],parents:i[e[0]].parents.filter(p=>p!==o),branch:{...i[e[0]].branch,left:void 0}}}:(s.forEach(p=>{var m,f,l,g;const v=t[p].children.indexOf(o);e.length?t[p].children[v]=e[0]:t[p].children.splice(v,1),((f=(m=t[p].branch)==null?void 0:m.right)==null?void 0:f[1])===o&&(t[p].branch={...t[p].branch,right:(g=(l=t[p].branch)==null?void 0:l.right)==null?void 0:g.with(1,e[0])})}),e.forEach(p=>{var m,f,l,g;const v=t[p].parents.indexOf(o);s.length?t[p].parents[v]=s[0]:t[p].parents.splice(v,1),((f=(m=t[p].branch)==null?void 0:m.left)==null?void 0:f[1])===o&&(t[p].branch={...t[p].branch,left:(g=(l=t[p].branch)==null?void 0:l.left)==null?void 0:g.with(1,s[0])})})),delete t[o],d(we(t))};function Is(...o){return o.reduce((d,n)=>d.map(i=>n.map(s=>i.concat([s]))).reduce((i,s)=>i.concat(s),[]),[[]])}const We=(o,d)=>!!d[o[0]].children.indexOf(o[1]),pn=(o,d)=>[o[0][1],o[0][o[0].length-2],...o[0].filter(n=>o.slice(1).filter(i=>We(i,d)).map(i=>i.filter(s=>!["linestart","lineend"].includes(s))).map(i=>[i[0],i[i.length-1]]).flat().includes(n))],Bs=(o,d)=>o.slice(1).filter(n=>We(n,d)).map(n=>n.filter(i=>!["linestart","lineend"].includes(i))).map(n=>[n[0],n[n.length-1]]),Ns=o=>(d,n)=>{const i=n().helper.branches;if(o===0){const s=n().param.stn_list,e=pn(i,s);return Is(e,e).filter(t=>t[0]!==t[1])}else{const s=i[o];if(s){const e=s.filter(t=>!["linestart","lineend"].includes(t));return[[e[0],e.slice(-1)[0]]]}else return[]}},Ii=(o,d)=>(n,i)=>{const s=i().param.coline,e=i().helper.branches[d];for(const[t,r]of Object.entries(s))if(r.from===o&&e.includes(r.to)){const c=e.indexOf(o),p=e.indexOf(r.to);if(p>c)return[p-c+1,t]}else if(r.to===o&&e.includes(r.to)){const c=e.indexOf(o),p=e.indexOf(r.from);if(p>c)return[p-c+1,t]}return[0,void 0]},mn=(o,d)=>(n,i)=>{const s=i().param.stn_list,e=i().helper.branches;if(o===d)throw new Error("addColine():: failed for same stnId");const t=pn(e,s).filter(c=>[o,d].includes(c)),r=Bs(e,s).filter(c=>[o,d].every(p=>c.includes(p)));if(t.length===2&&r.length>0)throw new Error("addColine():: main check failed for ".concat(o,", ").concat(d));if(t.length!==2&&r.length!==1)throw new Error("addColine():: branch check failed for ".concat(o,", ").concat(d))},Ms=o=>(d,n)=>{const i=n().param.coline,e=n().helper.branches[o];return e?Object.entries(i).reduce((t,r)=>e.includes(r[1].from)&&e.includes(r[1].to)?{...t,[r[0]]:r[1]}:{...t},{}):{}},Ds=o=>(d,n)=>{const i=n().param.coline;if(Object.keys(i).length===0)return;const s=Object.entries(i).reduce((e,t)=>t[1].from!==o&&t[1].to!==o?{...e,[t[0]]:t[1]}:{...e},{});d(Fe(s))},Ls=(o,d,n,i=!0)=>(s,e)=>{const t=e().param.coline;s(mn(o,d)),s(Fe({...t,[qe(4)]:{from:o,to:d,colors:n,display:i}}))},Fs=(o,d,n,i=!0)=>(s,e)=>{const t=e().param.coline;if(o in t){s(mn(d,n));const r={...t,[o]:{...t[o],from:d,to:n,display:i}};s(Fe(r))}},Us=(o,d)=>(n,i)=>{const s=i().param.coline;if(o in s&&s[o].colors.length>d){const e=s[o].colors.filter((t,r)=>r!==d);if(e.length===0){const{[o]:t,...r}=s;n(Fe(r))}else{const t={...s,[o]:{...s[o],colors:e}};n(Fe(t))}}},Ws=(o,d,n)=>(i,s)=>{const e=s().param.coline;if(o in e&&e[o].colors.length>d){const t={...e,[o]:{...e[o],colors:e[o].colors.map((r,c)=>c===d?[0,1,2,3,4,5].map(p=>n[p]===void 0?r[p]:n[p]):r)}};i(Fe(t))}};function Zs(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),e=Q(p=>p.app.selectedStation),[t,r]=X.useState(!1);X.useEffect(()=>{d||r(!1)},[d]);const c=()=>{const p=s(Ps(e));p?(n(),s(Ue(De.CLOSE)),s(dn("linestart")),s(Ds(e)),s(Ts(e))):r(!0),le.event(xe.REMOVE_STATION,{success:p})};return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[t&&y.jsxs(ut,{status:"error",variant:"solid",size:"xs",children:[y.jsx(ft,{}),i("Unable to remove this station.")]}),y.jsxs(ke,{position:"relative",children:[y.jsx(Qe,{children:i("Remove station")}),y.jsx(et,{})]}),y.jsx(tt,{children:i("Are you sure to remove station? You cannot undo this action.")}),y.jsxs(nt,{children:[y.jsx(de,{onClick:n,children:i("Cancel")}),y.jsx(de,{colorScheme:"primary",onClick:c,ml:3,children:i("Confirm")})]})]})]})}function Hs(){const{t:o}=ce(),d=ue(),{selectedStation:n}=Q(r=>r.app),{loop:i,style:s}=Q(r=>r.param),[e,t]=X.useState(!1);return y.jsxs(hr,{children:[y.jsxs(Re,{children:[y.jsx(de,{size:"sm",variant:"outline",onClick:()=>d(Ct(n)),children:o("StationSidePanel.footer.current")}),s===J.GZMTR&&i&&y.jsx(de,{size:"sm",variant:"outline",onClick:()=>d(ur(n)),children:o("Set as midpoint")}),y.jsx(de,{size:"sm",variant:"outline",onClick:()=>t(!0),children:o("StationSidePanel.footer.remove")})]}),y.jsx(Zs,{isOpen:e,onClose:()=>t(!1)})]})}function Gs(o){const{colineInfo:d,routeOptions:n,onUpdateRoute:i,onUpdateColourInfo:s,onDelete:e}=o,{t}=ce(),r=ue(),{paletteAppClipOutput:c}=Q(l=>l.app),[p,v]=X.useState(!1);X.useEffect(()=>{p&&c&&(s==null||s([...c,d.colors[0][4],d.colors[0][5]]),v(!1))},[c==null?void 0:c.toString()]);const m=[{type:"select",label:"Route",value:[d.from,d.to].join(","),options:n,onChange:l=>i==null?void 0:i(l)}],f=[{type:"custom",label:t("Colour"),component:y.jsx(It,{theme:[d.colors[0][0],d.colors[0][1],d.colors[0][2],d.colors[0][3]],onClick:()=>{v(!0),r(Ot(d.colors[0].slice(0,4)))}})},{type:"input",label:t("Chinese name"),value:d.colors[0][4],minW:120,onChange:l=>s==null?void 0:s([d.colors[0][0],d.colors[0][1],d.colors[0][2],d.colors[0][3],l,d.colors[0][5]])},{type:"input",label:t("English name"),value:d.colors[0][5],minW:120,onChange:l=>s==null?void 0:s([d.colors[0][0],d.colors[0][1],d.colors[0][2],d.colors[0][3],d.colors[0][4],l])}];return y.jsxs(Me,{direction:"column",children:[y.jsx(be,{fields:m,minW:"full"}),y.jsxs(Re,{spacing:.5,children:[y.jsx(be,{fields:f}),y.jsx(Be,{size:"sm",variant:"ghost","aria-label":"Delete colour for route",onClick:()=>e==null?void 0:e(0),icon:y.jsx(zt,{})})]})]})}function Vs(){const{t:o}=ce(),d=ue(),n=Q(f=>f.app.selectedBranch),{theme:i,stn_list:s}=Q(f=>f.param),e=d(Ms(n)),t=d(Ns(n)),r=f=>f.map(l=>s[l].localisedName.zh+"/"+s[l].localisedName.en).join(" ~ "),c=t.reduce((f,l)=>({...f,[l.join(",")]:r(l)}),{}),p=()=>{console.log("ColineSection.handleAddTrackSharing():: Adding track sharing to branch ".concat(n," with default combination"),t[0]),d(Ls(t[0][0],t[0][1],[[i[0],"","#AAAAAA",ct.white,"",""]]))},v=f=>l=>{const[g,h]=l.split(",");console.log("ColineSection.handleUpdateRoute():: Updating route, colineId=".concat(f,", from=").concat(g,", to=").concat(h));try{d(Fs(f,g,h))}catch(_){d(jt({status:"error",message:"Unable to draw this share track."}))}},m=(f,l)=>{d(Us(f,l))};return y.jsxs(Et,{align:"flex-start",p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("BranchSidePanel.coline.title")}),Object.entries(e).map(([f,l])=>y.jsx(Gs,{colineInfo:l,routeOptions:c,onUpdateRoute:v(f),onUpdateColourInfo:g=>d(Ws(f,0,g)),onDelete:g=>m(f,g)},f)),(n===0||Object.keys(e).length===0)&&y.jsx(de,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:y.jsx(Ie,{}),onClick:p,children:o("BranchSidePanel.coline.add")})]})}function Ys(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),e=Q(j=>j.app.selectedBranch),{style:t,stn_list:r}=Q(j=>j.param),c=Q(j=>j.helper.branches),[p,v]=X.useState(e),[m,f]=X.useState("1"),[l,g]=X.useState("2"),[h,_]=X.useState("asc");X.useEffect(()=>{v(e)},[e]);const b=[{type:"select",label:i("AutoNumModal.where"),value:p,options:{...c.reduce((j,A,N)=>({...j,[N]:N===0?i("AutoNumModal.main"):t!==J.SHMetro||!We(A,r)?i("AutoNumModal.branch")+" "+N:i("AutoNumModal.external")+" "+N}),{})},onChange:j=>v(j)},{type:"input",label:i("AutoNumModal.from"),value:m,validator:j=>!isNaN(Number(j)),onChange:f,debouncedDelay:0},{type:"input",label:i("AutoNumModal.maxLength"),validator:j=>!isNaN(Number(j)),value:l,onChange:g,debouncedDelay:0},{type:"select",label:i("AutoNumModal.sort"),value:h,options:{asc:i("AutoNumModal.asc"),desc:i("AutoNumModal.desc")},onChange:j=>_(j)}],x=()=>{s(_s(p,Number(m),Number(l),h)),n(),le.event(xe.AUTO_NUMBERING,{})},C=!m||!l||isNaN(Number(m))||isNaN(Number(l));return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[y.jsx(Qe,{children:i("AutoNumModal.title")}),y.jsx(et,{}),y.jsx(tt,{children:y.jsx(be,{fields:b})}),y.jsx(nt,{children:y.jsx(de,{colorScheme:"primary",isDisabled:C,onClick:x,children:i("Confirm")})})]})]})}const Nt=o=>(d,n)=>{const s=n().helper.branches[o];return s.includes("linestart")||s.includes("lineend")?1:2},gn=o=>(d,n)=>{const{branches:i}=n().helper,s=i[0],e=i[o];return s.slice(s.indexOf(e[0])+1,s.indexOf(e.slice(-1)[0]))},$s=(o,d)=>n=>n(Nt(d))===2?(console.log("isStationValid2ConnectBranch():: failed as current branch has 2 connected ends"),!1):n(gn(d)).includes(o)?!0:(console.log("isStationValid2ConnectBranch():: failed as the target station is invalid"),!1),qs=(o,d)=>(n,i)=>{var c,p;if(!n($s(o,d)))return!1;const{branches:e}=i().helper,t=i().param.stn_list,r=e[d];if(r[0]==="linestart"){const v={...t,[r[1]]:{...t[r[1]],parents:[o]},[o]:{...t[o],children:t.linestart.children.map(m=>m===r[1]?m:t[o].children[0]),branch:{right:(c=t.linestart.branch)==null?void 0:c.right}},linestart:{...t.linestart,children:t.linestart.children.filter(m=>m!==r[1]),branch:{}}};return n(we(v)),!0}else{const v=r.slice(-2)[0],m={...t,[v]:{...t[v],children:[o]},[o]:{...t[o],parents:t.lineend.parents.map(f=>f===v?f:t[o].parents[0]),branch:{left:(p=t.lineend.branch)==null?void 0:p.left}},lineend:{...t.lineend,parents:t.lineend.parents.filter(f=>f!==v),branch:{}}};return n(we(m)),!0}},bn=o=>(d,n)=>{const{branches:i}=n().helper,s=n().param.stn_list,e=i[0],t=i[o];if(d(Nt(o))!==2)return console.log("getPossibleDirection():: failed as there is no possible direction"),[];const c=e.indexOf(t[0]),p=e.slice(0,c),v=e.indexOf(t.slice(-1)[0]),m=e.slice(v+1),f=p.every(g=>s[g].children.length<=1&&s[g].parents.length<=1),l=m.every(g=>s[g].children.length<=1&&s[g].parents.length<=1);return f?l?[ve.left,ve.right]:[ve.left]:l?[ve.right]:[]},Ks=(o,d)=>(n,i)=>{var p,v;if(!n(bn(d)).includes(o))return console.log("disconnectFromMainLine():: failed as the aim direction is not in the possible direction list"),!1;const{branches:e}=i().helper,t=i().param.stn_list,r=e[0],c=e[d];if(o===ve.left){const m=c[0],f={...t,[c[1]]:{...t[c[1]],parents:["linestart"]},[m]:{...t[m],children:t[m].children.filter(l=>l!==c[1]),branch:{}},linestart:{...t.linestart,children:t[m].children.map(l=>l===c[1]?l:r[1]),branch:{right:(p=t[m].branch)==null?void 0:p.right}}};return n(we(f)),!0}else{const m=c.slice(-1)[0],f=c.slice(-2)[0],l={...t,[f]:{...t[f],children:["lineend"]},[m]:{...t[m],parents:t[m].parents.filter(g=>g!==f),branch:{}},lineend:{...t.lineend,parents:t[m].parents.map(g=>g===f?g:r.slice(-2)[0]),branch:{left:(v=t[m].branch)==null?void 0:v.left}}};return n(we(l)),!0}};function Qt(o){const{direction:d}=o,{t:n}=ce(),i=ue(),{branches:s}=Q(O=>O.helper),e=Q(O=>O.app.selectedBranch),{style:t,stn_list:r}=Q(O=>O.param),[c,p]=X.useState(!1),[v,m]=X.useState(""),f=s[e].filter(O=>!["linestart","lineend"].includes(O)),l=d===ve.left?f[0]:f.slice(-1)[0],g=r[l],h=i(gn(e)),_=i(Nt(e)),b=i(bn(e)),x=_===1&&!s[0].includes(l),C=b.includes(d),j=h.reduce((O,M)=>{var z,L;return{...O,[M]:((z=r[M])==null?void 0:z.localisedName.zh)+"/"+((L=r[M])==null?void 0:L.localisedName.en)}},{"":n("Please select...")}),A=()=>{const O=i(qs(v,e));O?p(!1):i(jt({status:"error",message:n("Unable to connect to main line.")})),le.event(xe.CONNECT_BRANCH,{style:t,success:O})},N=()=>{const O=i(Ks(d,e));O||i(jt({status:"error",message:n("Unable to disconnect from main line.")})),le.event(xe.DISCONNECT_BRANCH,{style:t,success:O})};return y.jsxs(Me,{direction:"column",children:[y.jsxs(Te,{alignItems:"center",children:[y.jsx(xt,{label:n("Station name"),flex:1,children:y.jsx(fr,{defaultValue:g.localisedName.zh+"/"+g.localisedName.en,isDisabled:!0})}),c?y.jsx(de,{mx:1,size:"sm",variant:"outline",onClick:()=>p(!1),children:n("Cancel")}):x?y.jsx(de,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>p(!0),children:n("Connect to main line")}):y.jsx(de,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:N,isDisabled:!C,children:n("Disconnect from main line")})]}),c&&y.jsxs(Te,{alignItems:"center",children:[y.jsx(xt,{label:n("Target station"),flex:1,children:y.jsx(pr,{defaultValue:v,options:j,disabledOptions:[""],onChange:({target:{value:O}})=>m(O)})}),y.jsx(de,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:A,isDisabled:!v,children:n("Confirm")})]})]})}function Xs(){const{t:o}=ce(),d=ue(),n=Q(r=>r.param.style),i=Q(r=>r.app.selectedBranch),[s,e]=X.useState(!1),t=()=>{d(es(n===J.SHMetro)),le.event(xe.REVERSE_STATIONS,{style:n})};return y.jsxs(ke,{p:1,children:[y.jsx(Se,{as:"h5",size:"sm",children:o("BranchSidePanel.action.title")}),y.jsxs(Te,{wrap:"wrap",sx:{p:1,"&> *":{flexShrink:0,flexBasis:"100%","&:not(:first-of-type)":{marginTop:2}}},children:[i!==0&&n!==J.SHMetro&&y.jsxs(y.Fragment,{children:[y.jsx(Se,{as:"h6",size:"xs",children:o("Branch left end")}),y.jsx(Qt,{direction:ve.left}),y.jsx(Se,{as:"h6",size:"xs",children:o("Branch right end")}),y.jsx(Qt,{direction:ve.right})]}),n===J.GZMTR&&y.jsx(de,{size:"sm",variant:"outline",leftIcon:y.jsx(mr,{}),alignSelf:"flex-end",onClick:()=>e(!0),children:o("BranchSidePanel.action.autoNum")}),y.jsx(de,{size:"sm",variant:"outline",leftIcon:y.jsx(gr,{}),alignSelf:"flex-end",onClick:t,children:n===J.SHMetro?o("BranchSidePanel.action.flip"):o("BranchSidePanel.action.reverse")})]}),y.jsx(Ys,{isOpen:s,onClose:()=>e(!1)})]})}function Js(){const o=Q(s=>s.app.selectedBranch),{style:d,stn_list:n}=Q(s=>s.param),i=Q(s=>s.helper.branches);return y.jsxs(Rt,{children:[d===J.SHMetro&&(o===0||We(i[o],n))&&y.jsxs(y.Fragment,{children:[y.jsx(Vs,{}),y.jsx(Ne,{})]}),y.jsx(Xs,{})]})}const Qs="rmg-palette-bridge--",ei={position:"relative",h:460,maxH:"70%","& > button":{position:"absolute",right:1,top:1},"& iframe":{h:"100%",w:"100%"}};function ti(o){const{isOpen:d,onClose:n,defaultTheme:i,onSelect:s}=o,[e]=X.useState(qe()),[t,r]=X.useState(!1),c="/rmg-palette/#/picker?"+new URLSearchParams({parentComponent:le.getAppName(),parentId:e}),p=X.useRef();return X.useEffect(()=>{const v=new BroadcastChannel(Qs+e);return p.current=v,v.onmessage=m=>{const{event:f,data:l}=m.data;console.log("[rmg] Received event from Palette app clip:",f),f==="CLOSE"?n():f==="SELECT"?s(l):f==="LOADED"&&r(!0)},()=>{v.close()}},[]),X.useEffect(()=>{var v;i&&((v=p.current)==null||v.postMessage({event:"OPEN",data:i}))},[t,i==null?void 0:i.toString()]),y.jsxs(hn,{size:"md",isOpen:d,onClose:n,sx:ei,children:[y.jsx(nn,{onClick:n}),y.jsx("iframe",{src:c,loading:"eager"})]})}const ni=410;function ri(){var c,p;const{t:o}=ce(),d=sn(),{sidePanelMode:n,selectedStation:i,paletteAppClipInput:s}=Q(v=>v.app),e=Q(v=>{var m;return(m=v.param.stn_list[i])==null?void 0:m.localisedName}),t={STATION:{header:y.jsx(qr,{text:(e==null?void 0:e.zh)+"/"+(e==null?void 0:e.en)||""}),body:y.jsx(Cs,{}),footer:y.jsx(Hs,{})},STYLE:{header:o("StyleSidePanel.header"),body:y.jsx(Rs,{})},BRANCH:{header:o("BranchSidePanel.header"),body:y.jsx(Js,{})},CLOSE:{header:"Close"}},r=()=>{d(Ue(De.CLOSE))};return y.jsxs(br,{isOpen:n!==De.CLOSE,width:ni,header:"Dummy header",children:[y.jsx(_r,{onClose:r,children:t[n].header}),(c=t[n])==null?void 0:c.body,(p=t[n])==null?void 0:p.footer,y.jsx(ti,{isOpen:!!s,onClose:()=>d(yr()),defaultTheme:s,onSelect:v=>d(vr(v))})]})}function ot(o){throw new Error('Could not dynamically require "'+o+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var vt={exports:{}};/*! - -JSZip v3.10.1 - A JavaScript class for generating and reading zip files - - -(c) 2009-2016 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/main/LICENSE -*/var en;function si(){return en||(en=1,function(o,d){(function(n){o.exports=n()})(function(){return function n(i,s,e){function t(p,v){if(!s[p]){if(!i[p]){var m=typeof ot=="function"&&ot;if(!v&&m)return m(p,!0);if(r)return r(p,!0);var f=new Error("Cannot find module '"+p+"'");throw f.code="MODULE_NOT_FOUND",f}var l=s[p]={exports:{}};i[p][0].call(l.exports,function(g){var h=i[p][1][g];return t(h||g)},l,l.exports,n,i,s,e)}return s[p].exports}for(var r=typeof ot=="function"&&ot,c=0;c>2,l=(3&p)<<4|v>>4,g=1>6:64,h=2>4,v=(15&f)<<4|(l=r.indexOf(c.charAt(h++)))>>2,m=(3&l)<<6|(g=r.indexOf(c.charAt(h++))),x[_++]=p,l!==64&&(x[_++]=v),g!==64&&(x[_++]=m);return x}},{"./support":30,"./utils":32}],2:[function(n,i,s){var e=n("./external"),t=n("./stream/DataWorker"),r=n("./stream/Crc32Probe"),c=n("./stream/DataLengthProbe");function p(v,m,f,l,g){this.compressedSize=v,this.uncompressedSize=m,this.crc32=f,this.compression=l,this.compressedContent=g}p.prototype={getContentWorker:function(){var v=new t(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),m=this;return v.on("end",function(){if(this.streamInfo.data_length!==m.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),v},getCompressedWorker:function(){return new t(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},p.createWorkerFrom=function(v,m,f){return v.pipe(new r).pipe(new c("uncompressedSize")).pipe(m.compressWorker(f)).pipe(new c("compressedSize")).withStreamInfo("compression",m)},i.exports=p},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(n,i,s){var e=n("./stream/GenericWorker");s.STORE={magic:"\0\0",compressWorker:function(){return new e("STORE compression")},uncompressWorker:function(){return new e("STORE decompression")}},s.DEFLATE=n("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(n,i,s){var e=n("./utils"),t=function(){for(var r,c=[],p=0;p<256;p++){r=p;for(var v=0;v<8;v++)r=1&r?3988292384^r>>>1:r>>>1;c[p]=r}return c}();i.exports=function(r,c){return r!==void 0&&r.length?e.getTypeOf(r)!=="string"?function(p,v,m,f){var l=t,g=f+m;p^=-1;for(var h=f;h>>8^l[255&(p^v[h])];return-1^p}(0|c,r,r.length,0):function(p,v,m,f){var l=t,g=f+m;p^=-1;for(var h=f;h>>8^l[255&(p^v.charCodeAt(h))];return-1^p}(0|c,r,r.length,0):0}},{"./utils":32}],5:[function(n,i,s){s.base64=!1,s.binary=!1,s.dir=!1,s.createFolders=!0,s.date=null,s.compression=null,s.compressionOptions=null,s.comment=null,s.unixPermissions=null,s.dosPermissions=null},{}],6:[function(n,i,s){var e=null;e=typeof Promise<"u"?Promise:n("lie"),i.exports={Promise:e}},{lie:37}],7:[function(n,i,s){var e=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",t=n("pako"),r=n("./utils"),c=n("./stream/GenericWorker"),p=e?"uint8array":"array";function v(m,f){c.call(this,"FlateWorker/"+m),this._pako=null,this._pakoAction=m,this._pakoOptions=f,this.meta={}}s.magic="\b\0",r.inherits(v,c),v.prototype.processChunk=function(m){this.meta=m.meta,this._pako===null&&this._createPako(),this._pako.push(r.transformTo(p,m.data),!1)},v.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},v.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},v.prototype._createPako=function(){this._pako=new t[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var m=this;this._pako.onData=function(f){m.push({data:f,meta:m.meta})}},s.compressWorker=function(m){return new v("Deflate",m)},s.uncompressWorker=function(){return new v("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(n,i,s){function e(l,g){var h,_="";for(h=0;h>>=8;return _}function t(l,g,h,_,b,x){var C,j,A=l.file,N=l.compression,O=x!==p.utf8encode,M=r.transformTo("string",x(A.name)),z=r.transformTo("string",p.utf8encode(A.name)),L=A.comment,G=r.transformTo("string",x(L)),w=r.transformTo("string",p.utf8encode(L)),T=z.length!==A.name.length,u=w.length!==L.length,D="",ne="",Z="",se=A.dir,H=A.date,re={crc32:0,compressedSize:0,uncompressedSize:0};g&&!h||(re.crc32=l.crc32,re.compressedSize=l.compressedSize,re.uncompressedSize=l.uncompressedSize);var I=0;g&&(I|=8),O||!T&&!u||(I|=2048);var P=0,te=0;se&&(P|=16),b==="UNIX"?(te=798,P|=function($,fe){var ye=$;return $||(ye=fe?16893:33204),(65535&ye)<<16}(A.unixPermissions,se)):(te=20,P|=function($){return 63&($||0)}(A.dosPermissions)),C=H.getUTCHours(),C<<=6,C|=H.getUTCMinutes(),C<<=5,C|=H.getUTCSeconds()/2,j=H.getUTCFullYear()-1980,j<<=4,j|=H.getUTCMonth()+1,j<<=5,j|=H.getUTCDate(),T&&(ne=e(1,1)+e(v(M),4)+z,D+="up"+e(ne.length,2)+ne),u&&(Z=e(1,1)+e(v(G),4)+w,D+="uc"+e(Z.length,2)+Z);var q="";return q+="\n\0",q+=e(I,2),q+=N.magic,q+=e(C,2),q+=e(j,2),q+=e(re.crc32,4),q+=e(re.compressedSize,4),q+=e(re.uncompressedSize,4),q+=e(M.length,2),q+=e(D.length,2),{fileRecord:m.LOCAL_FILE_HEADER+q+M+D,dirRecord:m.CENTRAL_FILE_HEADER+e(te,2)+q+e(G.length,2)+"\0\0\0\0"+e(P,4)+e(_,4)+M+D+G}}var r=n("../utils"),c=n("../stream/GenericWorker"),p=n("../utf8"),v=n("../crc32"),m=n("../signature");function f(l,g,h,_){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=g,this.zipPlatform=h,this.encodeFileName=_,this.streamFiles=l,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}r.inherits(f,c),f.prototype.push=function(l){var g=l.meta.percent||0,h=this.entriesCount,_=this._sources.length;this.accumulate?this.contentBuffer.push(l):(this.bytesWritten+=l.data.length,c.prototype.push.call(this,{data:l.data,meta:{currentFile:this.currentFile,percent:h?(g+100*(h-_-1))/h:100}}))},f.prototype.openedSource=function(l){this.currentSourceOffset=this.bytesWritten,this.currentFile=l.file.name;var g=this.streamFiles&&!l.file.dir;if(g){var h=t(l,g,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:h.fileRecord,meta:{percent:0}})}else this.accumulate=!0},f.prototype.closedSource=function(l){this.accumulate=!1;var g=this.streamFiles&&!l.file.dir,h=t(l,g,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(h.dirRecord),g)this.push({data:function(_){return m.DATA_DESCRIPTOR+e(_.crc32,4)+e(_.compressedSize,4)+e(_.uncompressedSize,4)}(l),meta:{percent:100}});else for(this.push({data:h.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},f.prototype.flush=function(){for(var l=this.bytesWritten,g=0;g=this.index;c--)p=(p<<8)+this.byteAt(c);return this.index+=r,p},readString:function(r){return e.transformTo("string",this.readData(r))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var r=this.readInt(4);return new Date(Date.UTC(1980+(r>>25&127),(r>>21&15)-1,r>>16&31,r>>11&31,r>>5&63,(31&r)<<1))}},i.exports=t},{"../utils":32}],19:[function(n,i,s){var e=n("./Uint8ArrayReader");function t(r){e.call(this,r)}n("../utils").inherits(t,e),t.prototype.readData=function(r){this.checkOffset(r);var c=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,c},i.exports=t},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(n,i,s){var e=n("./DataReader");function t(r){e.call(this,r)}n("../utils").inherits(t,e),t.prototype.byteAt=function(r){return this.data.charCodeAt(this.zero+r)},t.prototype.lastIndexOfSignature=function(r){return this.data.lastIndexOf(r)-this.zero},t.prototype.readAndCheckSignature=function(r){return r===this.readData(4)},t.prototype.readData=function(r){this.checkOffset(r);var c=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,c},i.exports=t},{"../utils":32,"./DataReader":18}],21:[function(n,i,s){var e=n("./ArrayReader");function t(r){e.call(this,r)}n("../utils").inherits(t,e),t.prototype.readData=function(r){if(this.checkOffset(r),r===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+r);return this.index+=r,c},i.exports=t},{"../utils":32,"./ArrayReader":17}],22:[function(n,i,s){var e=n("../utils"),t=n("../support"),r=n("./ArrayReader"),c=n("./StringReader"),p=n("./NodeBufferReader"),v=n("./Uint8ArrayReader");i.exports=function(m){var f=e.getTypeOf(m);return e.checkSupport(f),f!=="string"||t.uint8array?f==="nodebuffer"?new p(m):t.uint8array?new v(e.transformTo("uint8array",m)):new r(e.transformTo("array",m)):new c(m)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(n,i,s){s.LOCAL_FILE_HEADER="PK",s.CENTRAL_FILE_HEADER="PK",s.CENTRAL_DIRECTORY_END="PK",s.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",s.ZIP64_CENTRAL_DIRECTORY_END="PK",s.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(n,i,s){var e=n("./GenericWorker"),t=n("../utils");function r(c){e.call(this,"ConvertWorker to "+c),this.destType=c}t.inherits(r,e),r.prototype.processChunk=function(c){this.push({data:t.transformTo(this.destType,c.data),meta:c.meta})},i.exports=r},{"../utils":32,"./GenericWorker":28}],25:[function(n,i,s){var e=n("./GenericWorker"),t=n("../crc32");function r(){e.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}n("../utils").inherits(r,e),r.prototype.processChunk=function(c){this.streamInfo.crc32=t(c.data,this.streamInfo.crc32||0),this.push(c)},i.exports=r},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(n,i,s){var e=n("../utils"),t=n("./GenericWorker");function r(c){t.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}e.inherits(r,t),r.prototype.processChunk=function(c){if(c){var p=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=p+c.data.length}t.prototype.processChunk.call(this,c)},i.exports=r},{"../utils":32,"./GenericWorker":28}],27:[function(n,i,s){var e=n("../utils"),t=n("./GenericWorker");function r(c){t.call(this,"DataWorker");var p=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(v){p.dataIsReady=!0,p.data=v,p.max=v&&v.length||0,p.type=e.getTypeOf(v),p.isPaused||p._tickAndRepeat()},function(v){p.error(v)})}e.inherits(r,t),r.prototype.cleanUp=function(){t.prototype.cleanUp.call(this),this.data=null},r.prototype.resume=function(){return!!t.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0)},r.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},r.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,p=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,p);break;case"uint8array":c=this.data.subarray(this.index,p);break;case"array":case"nodebuffer":c=this.data.slice(this.index,p)}return this.index=p,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=r},{"../utils":32,"./GenericWorker":28}],28:[function(n,i,s){function e(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}e.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,r){return this._listeners[t].push(r),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,r){if(this._listeners[t])for(var c=0;c "+t:t}},i.exports=e},{}],29:[function(n,i,s){var e=n("../utils"),t=n("./ConvertWorker"),r=n("./GenericWorker"),c=n("../base64"),p=n("../support"),v=n("../external"),m=null;if(p.nodestream)try{m=n("../nodejs/NodejsStreamOutputAdapter")}catch(g){}function f(g,h){return new v.Promise(function(_,b){var x=[],C=g._internalType,j=g._outputType,A=g._mimeType;g.on("data",function(N,O){x.push(N),h&&h(O)}).on("error",function(N){x=[],b(N)}).on("end",function(){try{var N=function(O,M,z){switch(O){case"blob":return e.newBlob(e.transformTo("arraybuffer",M),z);case"base64":return c.encode(M);default:return e.transformTo(O,M)}}(j,function(O,M){var z,L=0,G=null,w=0;for(z=0;z"u")s.blob=!1;else{var e=new ArrayBuffer(0);try{s.blob=new Blob([e],{type:"application/zip"}).size===0}catch(r){try{var t=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);t.append(e),s.blob=t.getBlob("application/zip").size===0}catch(c){s.blob=!1}}}try{s.nodestream=!!n("readable-stream").Readable}catch(r){s.nodestream=!1}},{"readable-stream":16}],31:[function(n,i,s){for(var e=n("./utils"),t=n("./support"),r=n("./nodejsUtils"),c=n("./stream/GenericWorker"),p=new Array(256),v=0;v<256;v++)p[v]=252<=v?6:248<=v?5:240<=v?4:224<=v?3:192<=v?2:1;p[254]=p[254]=1;function m(){c.call(this,"utf-8 decode"),this.leftOver=null}function f(){c.call(this,"utf-8 encode")}s.utf8encode=function(l){return t.nodebuffer?r.newBufferFrom(l,"utf-8"):function(g){var h,_,b,x,C,j=g.length,A=0;for(x=0;x>>6:(_<65536?h[C++]=224|_>>>12:(h[C++]=240|_>>>18,h[C++]=128|_>>>12&63),h[C++]=128|_>>>6&63),h[C++]=128|63&_);return h}(l)},s.utf8decode=function(l){return t.nodebuffer?e.transformTo("nodebuffer",l).toString("utf-8"):function(g){var h,_,b,x,C=g.length,j=new Array(2*C);for(h=_=0;h>10&1023,j[_++]=56320|1023&b)}return j.length!==_&&(j.subarray?j=j.subarray(0,_):j.length=_),e.applyFromCharCode(j)}(l=e.transformTo(t.uint8array?"uint8array":"array",l))},e.inherits(m,c),m.prototype.processChunk=function(l){var g=e.transformTo(t.uint8array?"uint8array":"array",l.data);if(this.leftOver&&this.leftOver.length){if(t.uint8array){var h=g;(g=new Uint8Array(h.length+this.leftOver.length)).set(this.leftOver,0),g.set(h,this.leftOver.length)}else g=this.leftOver.concat(g);this.leftOver=null}var _=function(x,C){var j;for((C=C||x.length)>x.length&&(C=x.length),j=C-1;0<=j&&(192&x[j])==128;)j--;return j<0||j===0?C:j+p[x[j]]>C?j:C}(g),b=g;_!==g.length&&(t.uint8array?(b=g.subarray(0,_),this.leftOver=g.subarray(_,g.length)):(b=g.slice(0,_),this.leftOver=g.slice(_,g.length))),this.push({data:s.utf8decode(b),meta:l.meta})},m.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=m,e.inherits(f,c),f.prototype.processChunk=function(l){this.push({data:s.utf8encode(l.data),meta:l.meta})},s.Utf8EncodeWorker=f},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(n,i,s){var e=n("./support"),t=n("./base64"),r=n("./nodejsUtils"),c=n("./external");function p(h){return h}function v(h,_){for(var b=0;b>8;this.dir=!!(16&this.externalFileAttributes),l==0&&(this.dosPermissions=63&this.externalFileAttributes),l==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var l=e(this.extraFields[1].value);this.uncompressedSize===t.MAX_VALUE_32BITS&&(this.uncompressedSize=l.readInt(8)),this.compressedSize===t.MAX_VALUE_32BITS&&(this.compressedSize=l.readInt(8)),this.localHeaderOffset===t.MAX_VALUE_32BITS&&(this.localHeaderOffset=l.readInt(8)),this.diskNumberStart===t.MAX_VALUE_32BITS&&(this.diskNumberStart=l.readInt(4))}},readExtraFields:function(l){var g,h,_,b=l.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});l.index+4>>6:(l<65536?f[_++]=224|l>>>12:(f[_++]=240|l>>>18,f[_++]=128|l>>>12&63),f[_++]=128|l>>>6&63),f[_++]=128|63&l);return f},s.buf2binstring=function(m){return v(m,m.length)},s.binstring2buf=function(m){for(var f=new e.Buf8(m.length),l=0,g=f.length;l>10&1023,x[g++]=56320|1023&h)}return v(x,g)},s.utf8border=function(m,f){var l;for((f=f||m.length)>m.length&&(f=m.length),l=f-1;0<=l&&(192&m[l])==128;)l--;return l<0||l===0?f:l+c[m[l]]>f?l:f}},{"./common":41}],43:[function(n,i,s){i.exports=function(e,t,r,c){for(var p=65535&e|0,v=e>>>16&65535|0,m=0;r!==0;){for(r-=m=2e3>>1:t>>>1;r[c]=t}return r}();i.exports=function(t,r,c,p){var v=e,m=p+c;t^=-1;for(var f=p;f>>8^v[255&(t^r[f])];return-1^t}},{}],46:[function(n,i,s){var e,t=n("../utils/common"),r=n("./trees"),c=n("./adler32"),p=n("./crc32"),v=n("./messages"),m=0,f=4,l=0,g=-2,h=-1,_=4,b=2,x=8,C=9,j=286,A=30,N=19,O=2*j+1,M=15,z=3,L=258,G=L+z+1,w=42,T=113,u=1,D=2,ne=3,Z=4;function se(a,F){return a.msg=v[F],F}function H(a){return(a<<1)-(4a.avail_out&&(B=a.avail_out),B!==0&&(t.arraySet(a.output,F.pending_buf,F.pending_out,B,a.next_out),a.next_out+=B,F.pending_out+=B,a.total_out+=B,a.avail_out-=B,F.pending-=B,F.pending===0&&(F.pending_out=0))}function P(a,F){r._tr_flush_block(a,0<=a.block_start?a.block_start:-1,a.strstart-a.block_start,F),a.block_start=a.strstart,I(a.strm)}function te(a,F){a.pending_buf[a.pending++]=F}function q(a,F){a.pending_buf[a.pending++]=F>>>8&255,a.pending_buf[a.pending++]=255&F}function $(a,F){var B,k,S=a.max_chain_length,E=a.strstart,U=a.prev_length,W=a.nice_match,R=a.strstart>a.w_size-G?a.strstart-(a.w_size-G):0,V=a.window,K=a.w_mask,Y=a.prev,ee=a.strstart+L,he=V[E+U-1],ae=V[E+U];a.prev_length>=a.good_match&&(S>>=2),W>a.lookahead&&(W=a.lookahead);do if(V[(B=F)+U]===ae&&V[B+U-1]===he&&V[B]===V[E]&&V[++B]===V[E+1]){E+=2,B++;do;while(V[++E]===V[++B]&&V[++E]===V[++B]&&V[++E]===V[++B]&&V[++E]===V[++B]&&V[++E]===V[++B]&&V[++E]===V[++B]&&V[++E]===V[++B]&&V[++E]===V[++B]&&ER&&--S!=0);return U<=a.lookahead?U:a.lookahead}function fe(a){var F,B,k,S,E,U,W,R,V,K,Y=a.w_size;do{if(S=a.window_size-a.lookahead-a.strstart,a.strstart>=Y+(Y-G)){for(t.arraySet(a.window,a.window,Y,Y,0),a.match_start-=Y,a.strstart-=Y,a.block_start-=Y,F=B=a.hash_size;k=a.head[--F],a.head[F]=Y<=k?k-Y:0,--B;);for(F=B=Y;k=a.prev[--F],a.prev[F]=Y<=k?k-Y:0,--B;);S+=Y}if(a.strm.avail_in===0)break;if(U=a.strm,W=a.window,R=a.strstart+a.lookahead,V=S,K=void 0,K=U.avail_in,V=z)for(E=a.strstart-a.insert,a.ins_h=a.window[E],a.ins_h=(a.ins_h<=z&&(a.ins_h=(a.ins_h<=z)if(k=r._tr_tally(a,a.strstart-a.match_start,a.match_length-z),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=z){for(a.match_length--;a.strstart++,a.ins_h=(a.ins_h<=z&&(a.ins_h=(a.ins_h<=z&&a.match_length<=a.prev_length){for(S=a.strstart+a.lookahead-z,k=r._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-z),a.lookahead-=a.prev_length-1,a.prev_length-=2;++a.strstart<=S&&(a.ins_h=(a.ins_h<a.pending_buf_size-5&&(B=a.pending_buf_size-5);;){if(a.lookahead<=1){if(fe(a),a.lookahead===0&&F===m)return u;if(a.lookahead===0)break}a.strstart+=a.lookahead,a.lookahead=0;var k=a.block_start+B;if((a.strstart===0||a.strstart>=k)&&(a.lookahead=a.strstart-k,a.strstart=k,P(a,!1),a.strm.avail_out===0)||a.strstart-a.block_start>=a.w_size-G&&(P(a,!1),a.strm.avail_out===0))return u}return a.insert=0,F===f?(P(a,!0),a.strm.avail_out===0?ne:Z):(a.strstart>a.block_start&&(P(a,!1),a.strm.avail_out),u)}),new oe(4,4,8,4,ye),new oe(4,5,16,8,ye),new oe(4,6,32,32,ye),new oe(4,4,16,16,ie),new oe(8,16,32,32,ie),new oe(8,16,128,128,ie),new oe(8,32,128,256,ie),new oe(32,128,258,1024,ie),new oe(32,258,258,4096,ie)],s.deflateInit=function(a,F){return je(a,F,x,15,8,0)},s.deflateInit2=je,s.deflateReset=Ae,s.deflateResetKeep=pe,s.deflateSetHeader=function(a,F){return a&&a.state?a.state.wrap!==2?g:(a.state.gzhead=F,l):g},s.deflate=function(a,F){var B,k,S,E;if(!a||!a.state||5>8&255),te(k,k.gzhead.time>>16&255),te(k,k.gzhead.time>>24&255),te(k,k.level===9?2:2<=k.strategy||k.level<2?4:0),te(k,255&k.gzhead.os),k.gzhead.extra&&k.gzhead.extra.length&&(te(k,255&k.gzhead.extra.length),te(k,k.gzhead.extra.length>>8&255)),k.gzhead.hcrc&&(a.adler=p(a.adler,k.pending_buf,k.pending,0)),k.gzindex=0,k.status=69):(te(k,0),te(k,0),te(k,0),te(k,0),te(k,0),te(k,k.level===9?2:2<=k.strategy||k.level<2?4:0),te(k,3),k.status=T);else{var U=x+(k.w_bits-8<<4)<<8;U|=(2<=k.strategy||k.level<2?0:k.level<6?1:k.level===6?2:3)<<6,k.strstart!==0&&(U|=32),U+=31-U%31,k.status=T,q(k,U),k.strstart!==0&&(q(k,a.adler>>>16),q(k,65535&a.adler)),a.adler=1}if(k.status===69)if(k.gzhead.extra){for(S=k.pending;k.gzindex<(65535&k.gzhead.extra.length)&&(k.pending!==k.pending_buf_size||(k.gzhead.hcrc&&k.pending>S&&(a.adler=p(a.adler,k.pending_buf,k.pending-S,S)),I(a),S=k.pending,k.pending!==k.pending_buf_size));)te(k,255&k.gzhead.extra[k.gzindex]),k.gzindex++;k.gzhead.hcrc&&k.pending>S&&(a.adler=p(a.adler,k.pending_buf,k.pending-S,S)),k.gzindex===k.gzhead.extra.length&&(k.gzindex=0,k.status=73)}else k.status=73;if(k.status===73)if(k.gzhead.name){S=k.pending;do{if(k.pending===k.pending_buf_size&&(k.gzhead.hcrc&&k.pending>S&&(a.adler=p(a.adler,k.pending_buf,k.pending-S,S)),I(a),S=k.pending,k.pending===k.pending_buf_size)){E=1;break}E=k.gzindexS&&(a.adler=p(a.adler,k.pending_buf,k.pending-S,S)),E===0&&(k.gzindex=0,k.status=91)}else k.status=91;if(k.status===91)if(k.gzhead.comment){S=k.pending;do{if(k.pending===k.pending_buf_size&&(k.gzhead.hcrc&&k.pending>S&&(a.adler=p(a.adler,k.pending_buf,k.pending-S,S)),I(a),S=k.pending,k.pending===k.pending_buf_size)){E=1;break}E=k.gzindexS&&(a.adler=p(a.adler,k.pending_buf,k.pending-S,S)),E===0&&(k.status=103)}else k.status=103;if(k.status===103&&(k.gzhead.hcrc?(k.pending+2>k.pending_buf_size&&I(a),k.pending+2<=k.pending_buf_size&&(te(k,255&a.adler),te(k,a.adler>>8&255),a.adler=0,k.status=T)):k.status=T),k.pending!==0){if(I(a),a.avail_out===0)return k.last_flush=-1,l}else if(a.avail_in===0&&H(F)<=H(B)&&F!==f)return se(a,-5);if(k.status===666&&a.avail_in!==0)return se(a,-5);if(a.avail_in!==0||k.lookahead!==0||F!==m&&k.status!==666){var W=k.strategy===2?function(R,V){for(var K;;){if(R.lookahead===0&&(fe(R),R.lookahead===0)){if(V===m)return u;break}if(R.match_length=0,K=r._tr_tally(R,0,R.window[R.strstart]),R.lookahead--,R.strstart++,K&&(P(R,!1),R.strm.avail_out===0))return u}return R.insert=0,V===f?(P(R,!0),R.strm.avail_out===0?ne:Z):R.last_lit&&(P(R,!1),R.strm.avail_out===0)?u:D}(k,F):k.strategy===3?function(R,V){for(var K,Y,ee,he,ae=R.window;;){if(R.lookahead<=L){if(fe(R),R.lookahead<=L&&V===m)return u;if(R.lookahead===0)break}if(R.match_length=0,R.lookahead>=z&&0R.lookahead&&(R.match_length=R.lookahead)}if(R.match_length>=z?(K=r._tr_tally(R,1,R.match_length-z),R.lookahead-=R.match_length,R.strstart+=R.match_length,R.match_length=0):(K=r._tr_tally(R,0,R.window[R.strstart]),R.lookahead--,R.strstart++),K&&(P(R,!1),R.strm.avail_out===0))return u}return R.insert=0,V===f?(P(R,!0),R.strm.avail_out===0?ne:Z):R.last_lit&&(P(R,!1),R.strm.avail_out===0)?u:D}(k,F):e[k.level].func(k,F);if(W!==ne&&W!==Z||(k.status=666),W===u||W===ne)return a.avail_out===0&&(k.last_flush=-1),l;if(W===D&&(F===1?r._tr_align(k):F!==5&&(r._tr_stored_block(k,0,0,!1),F===3&&(re(k.head),k.lookahead===0&&(k.strstart=0,k.block_start=0,k.insert=0))),I(a),a.avail_out===0))return k.last_flush=-1,l}return F!==f?l:k.wrap<=0?1:(k.wrap===2?(te(k,255&a.adler),te(k,a.adler>>8&255),te(k,a.adler>>16&255),te(k,a.adler>>24&255),te(k,255&a.total_in),te(k,a.total_in>>8&255),te(k,a.total_in>>16&255),te(k,a.total_in>>24&255)):(q(k,a.adler>>>16),q(k,65535&a.adler)),I(a),0=B.w_size&&(E===0&&(re(B.head),B.strstart=0,B.block_start=0,B.insert=0),V=new t.Buf8(B.w_size),t.arraySet(V,F,K-B.w_size,B.w_size,0),F=V,K=B.w_size),U=a.avail_in,W=a.next_in,R=a.input,a.avail_in=K,a.next_in=0,a.input=F,fe(B);B.lookahead>=z;){for(k=B.strstart,S=B.lookahead-(z-1);B.ins_h=(B.ins_h<>>=z=M>>>24,C-=z,(z=M>>>16&255)===0)D[v++]=65535&M;else{if(!(16&z)){if(!(64&z)){M=j[(65535&M)+(x&(1<>>=z,C-=z),C<15&&(x+=u[c++]<>>=z=M>>>24,C-=z,!(16&(z=M>>>16&255))){if(!(64&z)){M=A[(65535&M)+(x&(1<>>=z,C-=z,(z=v-m)>3,x&=(1<<(C-=L<<3))-1,e.next_in=c,e.next_out=v,e.avail_in=c>>24&255)+(w>>>8&65280)+((65280&w)<<8)+((255&w)<<24)}function x(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new e.Buf16(320),this.work=new e.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function C(w){var T;return w&&w.state?(T=w.state,w.total_in=w.total_out=T.total=0,w.msg="",T.wrap&&(w.adler=1&T.wrap),T.mode=g,T.last=0,T.havedict=0,T.dmax=32768,T.head=null,T.hold=0,T.bits=0,T.lencode=T.lendyn=new e.Buf32(h),T.distcode=T.distdyn=new e.Buf32(_),T.sane=1,T.back=-1,f):l}function j(w){var T;return w&&w.state?((T=w.state).wsize=0,T.whave=0,T.wnext=0,C(w)):l}function A(w,T){var u,D;return w&&w.state?(D=w.state,T<0?(u=0,T=-T):(u=1+(T>>4),T<48&&(T&=15)),T&&(T<8||15=Z.wsize?(e.arraySet(Z.window,T,u-Z.wsize,Z.wsize,0),Z.wnext=0,Z.whave=Z.wsize):(D<(ne=Z.wsize-Z.wnext)&&(ne=D),e.arraySet(Z.window,T,u-D,ne,Z.wnext),(D-=ne)?(e.arraySet(Z.window,T,u-D,D,0),Z.wnext=D,Z.whave=Z.wsize):(Z.wnext+=ne,Z.wnext===Z.wsize&&(Z.wnext=0),Z.whave>>8&255,u.check=r(u.check,E,2,0),P=I=0,u.mode=2;break}if(u.flags=0,u.head&&(u.head.done=!1),!(1&u.wrap)||(((255&I)<<8)+(I>>8))%31){w.msg="incorrect header check",u.mode=30;break}if((15&I)!=8){w.msg="unknown compression method",u.mode=30;break}if(P-=4,a=8+(15&(I>>>=4)),u.wbits===0)u.wbits=a;else if(a>u.wbits){w.msg="invalid window size",u.mode=30;break}u.dmax=1<>8&1),512&u.flags&&(E[0]=255&I,E[1]=I>>>8&255,u.check=r(u.check,E,2,0)),P=I=0,u.mode=3;case 3:for(;P<32;){if(H===0)break e;H--,I+=D[Z++]<>>8&255,E[2]=I>>>16&255,E[3]=I>>>24&255,u.check=r(u.check,E,4,0)),P=I=0,u.mode=4;case 4:for(;P<16;){if(H===0)break e;H--,I+=D[Z++]<>8),512&u.flags&&(E[0]=255&I,E[1]=I>>>8&255,u.check=r(u.check,E,2,0)),P=I=0,u.mode=5;case 5:if(1024&u.flags){for(;P<16;){if(H===0)break e;H--,I+=D[Z++]<>>8&255,u.check=r(u.check,E,2,0)),P=I=0}else u.head&&(u.head.extra=null);u.mode=6;case 6:if(1024&u.flags&&(H<($=u.length)&&($=H),$&&(u.head&&(a=u.head.extra_len-u.length,u.head.extra||(u.head.extra=new Array(u.head.extra_len)),e.arraySet(u.head.extra,D,Z,$,a)),512&u.flags&&(u.check=r(u.check,D,$,Z)),H-=$,Z+=$,u.length-=$),u.length))break e;u.length=0,u.mode=7;case 7:if(2048&u.flags){if(H===0)break e;for($=0;a=D[Z+$++],u.head&&a&&u.length<65536&&(u.head.name+=String.fromCharCode(a)),a&&$>9&1,u.head.done=!0),w.adler=u.check=0,u.mode=12;break;case 10:for(;P<32;){if(H===0)break e;H--,I+=D[Z++]<>>=7&P,P-=7&P,u.mode=27;break}for(;P<3;){if(H===0)break e;H--,I+=D[Z++]<>>=1)){case 0:u.mode=14;break;case 1:if(L(u),u.mode=20,T!==6)break;I>>>=2,P-=2;break e;case 2:u.mode=17;break;case 3:w.msg="invalid block type",u.mode=30}I>>>=2,P-=2;break;case 14:for(I>>>=7&P,P-=7&P;P<32;){if(H===0)break e;H--,I+=D[Z++]<>>16^65535)){w.msg="invalid stored block lengths",u.mode=30;break}if(u.length=65535&I,P=I=0,u.mode=15,T===6)break e;case 15:u.mode=16;case 16:if($=u.length){if(H<$&&($=H),re<$&&($=re),$===0)break e;e.arraySet(ne,D,Z,$,se),H-=$,Z+=$,re-=$,se+=$,u.length-=$;break}u.mode=12;break;case 17:for(;P<14;){if(H===0)break e;H--,I+=D[Z++]<>>=5,P-=5,u.ndist=1+(31&I),I>>>=5,P-=5,u.ncode=4+(15&I),I>>>=4,P-=4,286>>=3,P-=3}for(;u.have<19;)u.lens[U[u.have++]]=0;if(u.lencode=u.lendyn,u.lenbits=7,B={bits:u.lenbits},F=p(0,u.lens,0,19,u.lencode,0,u.work,B),u.lenbits=B.bits,F){w.msg="invalid code lengths set",u.mode=30;break}u.have=0,u.mode=19;case 19:for(;u.have>>16&255,ge=65535&S,!((ie=S>>>24)<=P);){if(H===0)break e;H--,I+=D[Z++]<>>=ie,P-=ie,u.lens[u.have++]=ge;else{if(ge===16){for(k=ie+2;P>>=ie,P-=ie,u.have===0){w.msg="invalid bit length repeat",u.mode=30;break}a=u.lens[u.have-1],$=3+(3&I),I>>>=2,P-=2}else if(ge===17){for(k=ie+3;P>>=ie)),I>>>=3,P-=3}else{for(k=ie+7;P>>=ie)),I>>>=7,P-=7}if(u.have+$>u.nlen+u.ndist){w.msg="invalid bit length repeat",u.mode=30;break}for(;$--;)u.lens[u.have++]=a}}if(u.mode===30)break;if(u.lens[256]===0){w.msg="invalid code -- missing end-of-block",u.mode=30;break}if(u.lenbits=9,B={bits:u.lenbits},F=p(v,u.lens,0,u.nlen,u.lencode,0,u.work,B),u.lenbits=B.bits,F){w.msg="invalid literal/lengths set",u.mode=30;break}if(u.distbits=6,u.distcode=u.distdyn,B={bits:u.distbits},F=p(m,u.lens,u.nlen,u.ndist,u.distcode,0,u.work,B),u.distbits=B.bits,F){w.msg="invalid distances set",u.mode=30;break}if(u.mode=20,T===6)break e;case 20:u.mode=21;case 21:if(6<=H&&258<=re){w.next_out=se,w.avail_out=re,w.next_in=Z,w.avail_in=H,u.hold=I,u.bits=P,c(w,q),se=w.next_out,ne=w.output,re=w.avail_out,Z=w.next_in,D=w.input,H=w.avail_in,I=u.hold,P=u.bits,u.mode===12&&(u.back=-1);break}for(u.back=0;oe=(S=u.lencode[I&(1<>>16&255,ge=65535&S,!((ie=S>>>24)<=P);){if(H===0)break e;H--,I+=D[Z++]<>pe)])>>>16&255,ge=65535&S,!(pe+(ie=S>>>24)<=P);){if(H===0)break e;H--,I+=D[Z++]<>>=pe,P-=pe,u.back+=pe}if(I>>>=ie,P-=ie,u.back+=ie,u.length=ge,oe===0){u.mode=26;break}if(32&oe){u.back=-1,u.mode=12;break}if(64&oe){w.msg="invalid literal/length code",u.mode=30;break}u.extra=15&oe,u.mode=22;case 22:if(u.extra){for(k=u.extra;P>>=u.extra,P-=u.extra,u.back+=u.extra}u.was=u.length,u.mode=23;case 23:for(;oe=(S=u.distcode[I&(1<>>16&255,ge=65535&S,!((ie=S>>>24)<=P);){if(H===0)break e;H--,I+=D[Z++]<>pe)])>>>16&255,ge=65535&S,!(pe+(ie=S>>>24)<=P);){if(H===0)break e;H--,I+=D[Z++]<>>=pe,P-=pe,u.back+=pe}if(I>>>=ie,P-=ie,u.back+=ie,64&oe){w.msg="invalid distance code",u.mode=30;break}u.offset=ge,u.extra=15&oe,u.mode=24;case 24:if(u.extra){for(k=u.extra;P>>=u.extra,P-=u.extra,u.back+=u.extra}if(u.offset>u.dmax){w.msg="invalid distance too far back",u.mode=30;break}u.mode=25;case 25:if(re===0)break e;if($=q-re,u.offset>$){if(($=u.offset-$)>u.whave&&u.sane){w.msg="invalid distance too far back",u.mode=30;break}fe=$>u.wnext?($-=u.wnext,u.wsize-$):u.wnext-$,$>u.length&&($=u.length),ye=u.window}else ye=ne,fe=se-u.offset,$=u.length;for(re<$&&($=re),re-=$,u.length-=$;ne[se++]=ye[fe++],--$;);u.length===0&&(u.mode=21);break;case 26:if(re===0)break e;ne[se++]=u.length,re--,u.mode=21;break;case 27:if(u.wrap){for(;P<32;){if(H===0)break e;H--,I|=D[Z++]<O?(z=fe[ye+_[T]],P[te+_[T]]):(z=96,0),x=1<>se)+(C-=x)]=M<<24|z<<16|L|0,C!==0;);for(x=1<>=1;if(x!==0?(I&=x-1,I+=x):I=0,T++,--q[w]==0){if(w===D)break;w=m[f+_[T]]}if(ne>>7)]}function te(S,E){S.pending_buf[S.pending++]=255&E,S.pending_buf[S.pending++]=E>>>8&255}function q(S,E,U){S.bi_valid>b-U?(S.bi_buf|=E<>b-S.bi_valid,S.bi_valid+=U-b):(S.bi_buf|=E<>>=1,U<<=1,0<--E;);return U>>>1}function ye(S,E,U){var W,R,V=new Array(_+1),K=0;for(W=1;W<=_;W++)V[W]=K=K+U[W-1]<<1;for(R=0;R<=E;R++){var Y=S[2*R+1];Y!==0&&(S[2*R]=fe(V[Y]++,Y))}}function ie(S){var E;for(E=0;E>1;1<=U;U--)pe(S,V,U);for(R=ee;U=S.heap[1],S.heap[1]=S.heap[S.heap_len--],pe(S,V,1),W=S.heap[1],S.heap[--S.heap_max]=U,S.heap[--S.heap_max]=W,V[2*R]=V[2*U]+V[2*W],S.depth[R]=(S.depth[U]>=S.depth[W]?S.depth[U]:S.depth[W])+1,V[2*U+1]=V[2*W+1]=R,S.heap[1]=R++,pe(S,V,1),2<=S.heap_len;);S.heap[--S.heap_max]=S.heap[1],function(ae,Ce){var Ze,Ee,He,me,st,mt,Pe=Ce.dyn_tree,Mt=Ce.max_code,yn=Ce.stat_desc.static_tree,vn=Ce.stat_desc.has_stree,Sn=Ce.stat_desc.extra_bits,Dt=Ce.stat_desc.extra_base,Ge=Ce.stat_desc.max_length,it=0;for(me=0;me<=_;me++)ae.bl_count[me]=0;for(Pe[2*ae.heap[ae.heap_max]+1]=0,Ze=ae.heap_max+1;Ze>=7;R>>=1)if(1&he&&Y.dyn_ltree[2*ee]!==0)return t;if(Y.dyn_ltree[18]!==0||Y.dyn_ltree[20]!==0||Y.dyn_ltree[26]!==0)return r;for(ee=32;ee>>3,(V=S.static_len+3+7>>>3)<=R&&(R=V)):R=V=U+5,U+4<=R&&E!==-1?k(S,E,U,W):S.strategy===4||V===R?(q(S,2+(W?1:0),3),Ae(S,G,w)):(q(S,4+(W?1:0),3),function(Y,ee,he,ae){var Ce;for(q(Y,ee-257,5),q(Y,he-1,5),q(Y,ae-4,4),Ce=0;Ce>>8&255,S.pending_buf[S.d_buf+2*S.last_lit+1]=255&E,S.pending_buf[S.l_buf+S.last_lit]=255&U,S.last_lit++,E===0?S.dyn_ltree[2*U]++:(S.matches++,E--,S.dyn_ltree[2*(u[U]+m+1)]++,S.dyn_dtree[2*P(E)]++),S.last_lit===S.lit_bufsize-1},s._tr_align=function(S){q(S,2,3),$(S,C,G),function(E){E.bi_valid===16?(te(E,E.bi_buf),E.bi_buf=0,E.bi_valid=0):8<=E.bi_valid&&(E.pending_buf[E.pending++]=255&E.bi_buf,E.bi_buf>>=8,E.bi_valid-=8)}(S)}},{"../utils/common":41}],53:[function(n,i,s){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(n,i,s){(function(e){(function(t,r){if(!t.setImmediate){var c,p,v,m,f=1,l={},g=!1,h=t.document,_=Object.getPrototypeOf&&Object.getPrototypeOf(t);_=_&&_.setTimeout?_:t,c={}.toString.call(t.process)==="[object process]"?function(j){process.nextTick(function(){x(j)})}:function(){if(t.postMessage&&!t.importScripts){var j=!0,A=t.onmessage;return t.onmessage=function(){j=!1},t.postMessage("","*"),t.onmessage=A,j}}()?(m="setImmediate$"+Math.random()+"$",t.addEventListener?t.addEventListener("message",C,!1):t.attachEvent("onmessage",C),function(j){t.postMessage(m+j,"*")}):t.MessageChannel?((v=new MessageChannel).port1.onmessage=function(j){x(j.data)},function(j){v.port2.postMessage(j)}):h&&"onreadystatechange"in h.createElement("script")?(p=h.documentElement,function(j){var A=h.createElement("script");A.onreadystatechange=function(){x(j),A.onreadystatechange=null,p.removeChild(A),A=null},p.appendChild(A)}):function(j){setTimeout(x,0,j)},_.setImmediate=function(j){typeof j!="function"&&(j=new Function(""+j));for(var A=new Array(arguments.length-1),N=0;N"u"?e===void 0?this:e:self)}).call(this,typeof at<"u"?at:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})}(vt)),vt.exports}var ii=si();const ai=Pn(ii),oi=async(o,d,n,i,s)=>{var c,p,v,m,f,l;const e=document.querySelector("svg#".concat(o));if(!e)throw new Error("Requested canvas SVG element not found");const t=Number((c=e.style.getPropertyValue("--rmg-svg-height").match(/\d+/g))==null?void 0:c[0]),r=e.cloneNode(!0);r.setAttribute("height",(t*(s||100)/100).toString()),r.style.setProperty("all","initial"),["share"].map(g=>{var h;return[...((h=[...document.querySelectorAll("link")].filter(_=>_.id==="css_"+g)[0])==null?void 0:h.sheet).cssRules].map(_=>_.cssText).join(" ")}).forEach(g=>{const h=document.createElement("style");h.textContent=g,r.prepend(h)}),(p=r.querySelector("rect#canvas-border"))==null||p.setAttribute("stroke",i?"black":"none"),(v=r.querySelector("rect#canvas-bg"))==null||v.setAttribute("fill",n?"none":"white");try{const g=(l=await((f=(m=Tt[d]).fonts)==null?void 0:f.call(m)))!=null?l:[],_=(await Promise.allSettled(g.map(le.getFontCSS))).filter(x=>x.status==="fulfilled").map(x=>x.value),b=document.createElement("style");b.textContent=_.join("\n"),r.prepend(b)}catch(g){console.warn("Failed to fonts. Fonts in the exported PNG will be missing.",g)}return r},li=async(o,d,n)=>{const i=o.viewBox.baseVal.width,s=o.viewBox.baseVal.height,e=document.querySelectorAll("canvas")[0];e.width=Number(i)*window.devicePixelRatio*d,e.height=Number(s)*window.devicePixelRatio*d,o.setAttribute("width",e.width.toString()),o.setAttribute("height",e.height.toString());const t=e.getContext("2d");return t.clearRect(0,0,e.width,e.height),o.querySelectorAll(".rmg-name__en.rmg-name__gzmtr--next2-dest").forEach(r=>r.setAttribute("font-size","8.5px")),o.querySelectorAll("text, tspan").forEach(r=>{const c=window.getComputedStyle(r);r.setAttribute("font-family",c.fontFamily),r.setAttribute("fill",c.fill),r.setAttribute("dominant-baseline",c.dominantBaseline),r.setAttribute("text-anchor",c.textAnchor||"")}),new Promise((r,c)=>{const p=new Image;p.onload=()=>{setTimeout(()=>{t.drawImage(p,0,0,e.width,e.height),e.toBlob(v=>{v?r(v):c("Canvas blob is null")},"image/png")},n?2e3:0)},p.onerror=c,p.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(o.outerHTML)))})};function ci(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),[e,t]=X.useState(""),[r,c]=X.useState(!1),[p,v]=X.useState(!1),[m,f]=X.useState(100),[l,g]=X.useState("png"),h=Q(z=>z.app.canvasToShow),{style:_,stn_list:b,current_stn_idx:x,line_name:C}=Q(z=>z.param);X.useEffect(()=>{e!==""&&!h.includes(e)&&t("")},[h]);const j=Pt[_].reduce((z,L)=>h.includes(L)?{...z,[L]:i("CanvasType."+L)}:{...z},{"":i("DownloadModal.pleaseSelect")}),A=[25,33,50,67,75,80,90,100,110,125,150,175,200,250,300,400,500].reduce((z,L)=>({...z,[L]:"".concat(L,"%")}),{}),N={png:i("DownloadModal.png"),svg:i("DownloadModal.svg")},O=[{type:"select",label:i("DownloadModal.canvas"),value:e,options:j,disabledOptions:[""],onChange:z=>t(z),minW:"full"},{type:"switch",label:i("DownloadModal.transparent"),isChecked:r,onChange:c,oneLine:!0,minW:"full"},{type:"switch",label:i("DownloadModal.showBorder"),isChecked:p,onChange:v,oneLine:!0,minW:"full"},{type:"select",label:i("DownloadModal.scale"),value:m,options:A,onChange:z=>f(z)},{type:"select",label:i("DownloadModal.format"),value:l,options:N,onChange:z=>g(z)}],M=async z=>{s(Ht(0));const L=z==="current"?[x]:Object.keys(b).filter(w=>!["linestart","lineend"].includes(w)),G=new ai;for(const w in L){s(Ht((Number(w)+1)/L.length*100));const T=L[w];s(Ct(T)),await Lr(500);const u=await oi(e,_,r,p,m);document.body.appendChild(u);const D="rmg.".concat(T,".").concat(b[T].localisedName.en).replaceAll(/\\|\/|\||\*|:|\?|<|>|"/g,"_");if(l==="png"){const ne=Fr()&&w==="0",Z=await li(u,m/100,ne);L.length>1?G.file("".concat(D,".png"),Z):Gt("".concat(D,".png"),Z)}else if(l==="svg"){u.removeAttribute("height");const ne="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(u.outerHTML)));L.length>1?G.file("".concat(D,".svg"),ne.split("base64,")[1],{base64:!0}):fn(D+".svg","image/svg+xml",u.outerHTML)}document.body.removeChild(u)}if(L.length>1){const w=await G.generateAsync({type:"blob"}),T="rmg.".concat(C[0],".").concat(C[1],".zip").replaceAll(" ","_");Gt(T,w)}le.event(xe.DOWNLOAD_IMAGES,{canvasToDownload:e,style:_,option:z,format:l}),s(Ct(x)),s(Sr()),n()};return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[y.jsx(Qe,{children:i("DownloadModal.title")}),y.jsx(et,{}),y.jsx(tt,{children:y.jsx(be,{fields:O})}),y.jsx(nt,{children:y.jsxs(Re,{children:[y.jsx(de,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>M("current"),isDisabled:!e,children:i("DownloadModal.downloadOne")}),_!==J.GZMTR&&y.jsx(de,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>M("all"),isDisabled:!e,children:i("DownloadModal.downloadAll")})]})})]})]})}function di(){const{t:o}=ce(),[d,n]=X.useState(!1),{paramConfig:i}=Q(t=>t.app),s=Q(t=>t.param),e=()=>{const t=Ur(s);fn("RMG_".concat(i==null?void 0:i.id,".json"),"application/json",JSON.stringify(t)),le.event(xe.DOWNLOAD_PARAM,{style:s.style})};return y.jsxs(wn,{children:[y.jsx(kn,{as:de,variant:"ghost",size:"sm",rightIcon:y.jsx(xr,{}),children:o("DownloadActions.downloads")}),y.jsxs(Cn,{children:[y.jsx(Lt,{onClick:e,children:o("DownloadActions.configFile")}),y.jsx(Lt,{onClick:()=>n(!0),children:o("DownloadActions.images")})]}),y.jsx(ci,{isOpen:d,onClose:()=>n(!1)})]})}function rt(){const[o,d]=Tn();return[o,i=>{d(i);const e=Object.keys(i).length===0?"/":"/?"+new URLSearchParams(i);le.updateAppMetadata({hash:e})}]}function hi(){const{t:o}=ce(),d=sn(),[,n]=rt(),i=()=>{d(Ue(De.CLOSE)),d(At(void 0)),n({})};return y.jsxs(Re,{ml:"auto",w:"fit-content",children:[y.jsx(de,{variant:"ghost",size:"sm",leftIcon:y.jsx(wr,{}),onClick:i,children:o("All projects")}),y.jsx(di,{}),y.jsx(de,{variant:"solid",size:"sm",colorScheme:"primary",leftIcon:y.jsx(kr,{}),onClick:()=>d(Ue(De.STYLE)),children:o("HeaderActions.editStyle")})]})}function ui(){const{t:o}=ce(),d=ue(),{canvasToShow:n,canvasScale:i}=Q(p=>p.app),s=Q(p=>p.param.style),e=Object.values(J).reduce((p,v)=>({...p,[v]:o("RmgStyle."+v)}),{}),t=Pt[s].map(p=>({label:o("CanvasType."+p),value:p})),r=p=>{d(Rr(p))},c=[{type:"select",label:o("Style"),value:s,options:e,onChange:p=>r(p)},{type:"custom",label:o("View"),component:y.jsx(Cr,{displayValue:o("Select canvas"),selections:t,defaultValue:n,onChange:p=>d(jr(p))})},{type:"slider",label:o("Canvas scale"),value:i,min:.1,max:2,step:.01,onChange:p=>d(Ar(p)),leftIcon:y.jsx(Er,{}),rightIcon:y.jsx(Or,{})}];return y.jsxs(zr,{children:[y.jsx(be,{fields:c,minW:160}),y.jsx(hi,{})]})}const $e=(o,d,n,i)=>(s,e)=>{var p,v,m,f,l,g,h,_,b,x,C,j,A,N;const t=e().param.stn_list;let r=qe(6);for(;r in t;)r=qe(6);const c=Pr(r);if(o!=="new"){const O={...t,[d]:{...t[d],children:t[d].children.map(M=>M===n?r:M),branch:{left:(p=t[d].branch)==null?void 0:p.left,right:((m=(v=t[d].branch)==null?void 0:v.right)==null?void 0:m[1])===n?(l=(f=t[d].branch)==null?void 0:f.right)==null?void 0:l.with(1,r):(g=t[d].branch)==null?void 0:g.right}},[n]:{...t[n],parents:t[n].parents.map(M=>M===d?r:M),branch:{left:((_=(h=t[n].branch)==null?void 0:h.left)==null?void 0:_[1])===d?(x=(b=t[n].branch)==null?void 0:b.left)==null?void 0:x.with(1,r):(C=t[n].branch)==null?void 0:C.left,right:(j=t[n].branch)==null?void 0:j.right}},[r]:{...c,parents:[d],children:[n]}};return s(we(O)),r}else{if(!i)return!1;const O={...t,[d]:{...t[d],children:i==="upper"?[r,t[d].children[0]]:[t[d].children[0],r],branch:{left:(A=t[d].branch)==null?void 0:A.left,right:[ht.through,r]}},[n]:{...t[n],parents:i==="upper"?[r,t[n].parents[0]]:[t[n].parents[0],r],branch:{left:[ht.through,r],right:(N=t[n].branch)==null?void 0:N.right}},[r]:{...c,parents:[d],children:[n]}};return s(we(O)),r}},fi=(o,d,n)=>(i,s)=>{const t=s().helper.branches[o];if(t!=null&&t.length)if(d==="before"){const r=t[t.indexOf(n)-1];return i($e(o.toString(),r,n))}else{const r=t[t.indexOf(n)+1];return i($e(o.toString(),n,r))}else return!1},pi=()=>(o,d)=>{const n=d().param.stn_list;return d().helper.branches[0].filter(s=>{const e=n[s].parents.length+n[s].children.length===4,t=Bt(s,n)===0;return!e&&t})},tn=(o,d)=>(n,i)=>{const s=i().param.stn_list,e=i().helper.branches;return!e[0].includes(o)||!e[0].includes(d)?"Branch should end at main line":e[0].indexOf(o)>=e[0].indexOf(d)?"Not in correct ordering":o==="linestart"&&d==="lineend"?"Should not be parallel to main line":o==="linestart"&&e[0].indexOf(d)===1?"Branch should not be open jaw from the first station":d==="lineend"&&e[0].indexOf(o)===e[0].length-2?"Branch should not be open jaw from the last station":s[o].children.length>1||s[d].parents.length>1?"Branch already exist":e.slice(1).some(c=>c.slice(1,-1).includes(o)||c.slice(1,-1).includes(d))?"Cannot branch out from existing branch":e[0].slice(e[0].indexOf(o)+1,e[0].indexOf(d)).every(c=>s[c].parents.length===1&&s[c].children.length===1)?"":"One or more stations between both ends are branching out"};function mi(o){var N,O;const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),e=Q(M=>M.app.selectedBranch),{style:t,stn_list:r}=Q(M=>M.param),c=Q(M=>M.helper.branches),[p,v]=X.useState(e),[m,f]=X.useState("before"),[l,g]=X.useState(""),[h,_]=X.useState(!1);X.useEffect(()=>{v(e)},[e]),X.useEffect(()=>{d||_(!1)},[d]);const b=(O=(N=c[Number(p)])==null?void 0:N.slice(1,-1))!=null?O:[],x=M=>M.reduce((z,L)=>{var G,w;return{...z,[L]:((G=r[L])==null?void 0:G.localisedName.zh)+"/"+((w=r[L])==null?void 0:w.localisedName.en)}},{"":i("AddStationModal.pleaseSelect")}),C=[{type:"select",label:i("AddStationModal.where"),value:p,options:{...c.reduce((M,z,L)=>({...M,[L]:L===0?i("AddStationModal.main"):t!==J.SHMetro||!We(z,r)?i("AddStationModal.branch")+" "+L:i("AddStationModal.external")+" "+L}),{})},onChange:M=>j(M),minW:"full"},{type:"select",label:i("AddStationModal.preposition"),value:m,options:{before:i("AddStationModal.before"),after:i("AddStationModal.after")},onChange:M=>f(M)},{type:"select",label:i("AddStationModal.pivot"),value:l,options:x(b),disabledOptions:[""],onChange:M=>g(M)}],j=M=>{v(M),g("")},A=()=>{const M=s(fi(p,m,l));M?(n(),s(dn(M)),s(Ue(De.STATION))):(console.log("false here"),_(!0)),le.event(xe.ADD_STATION,{style:t,branchIndex:p,success:M})};return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[h&&y.jsxs(ut,{status:"error",variant:"solid",size:"xs",children:[y.jsx(ft,{}),i("AddStationModal.error")]}),y.jsxs(ke,{position:"relative",children:[y.jsx(Qe,{children:i("AddStationModal.title")}),y.jsx(et,{})]}),y.jsx(tt,{children:y.jsx(be,{fields:C})}),y.jsx(nt,{children:y.jsx(de,{colorScheme:"primary",onClick:A,isDisabled:!l,children:i("Confirm")})})]})]})}function gi(o){const{isOpen:d,onClose:n}=o,{t:i}=ce(),s=ue(),[e,t]=X.useState("new"),[r,c]=X.useState(""),[p,v]=X.useState(""),[m,f]=X.useState("upper"),[l,g]=X.useState(""),[h,_]=X.useState(""),{style:b,stn_list:x}=Q(G=>G.param);X.useEffect(()=>{d||(t("new"),c(""),v(""))},[d]);const j=(G=>G.reduce((w,T)=>{var u,D;return{...w,[T]:T==="linestart"?"(".concat(i("LEFT END"),")"):T==="lineend"?"(".concat(i("RIGHT END"),")"):((u=x[T])==null?void 0:u.localisedName.zh)+"/"+((D=x[T])==null?void 0:D.localisedName.en)}},{"":i("Please select...")}))(s(pi())),A=[{type:"select",label:i("NewBranchModal.where"),value:e,options:{new:i("NewBranchModal.new"),ext:i("NewBranchModal.ext")},disabledOptions:b===J.SHMetro?[]:["ext"],onChange:G=>N(G),minW:"full"},{type:"select",label:i("NewBranchModal.from"),value:r,options:j,disabledOptions:[""],onChange:G=>O(G),isInvalid:!!l},{type:"select",label:i("NewBranchModal.to"),value:p,options:j,disabledOptions:[""],onChange:G=>M(G),isInvalid:!!h},{type:"select",label:i("NewBranchModal.position"),value:m,options:{upper:i("NewBranchModal.upper"),lower:i("NewBranchModal.lower")},onChange:G=>f(G),minW:"full",hidden:e!=="new"||b===J.SHMetro}],N=G=>{t(G),c(""),v(""),g(""),_("")},O=G=>{c(G),g(""),G&&p&&_(s(tn(G,p)))},M=G=>{v(G),_(""),r&&G&&g(s(tn(r,G)))},z=()=>{let G;e==="ext"?G=s($e("new",r,p,"lower")):b===J.SHMetro?G=s($e("new",r,p,"upper")):G=s($e("new",r,p,m)),G&&(n(),le.event(xe.ADD_BRANCH,{style:b,where:e}))},L=!!(!r||!p||l||h);return y.jsxs(Ke,{isOpen:d,onClose:n,children:[y.jsx(Xe,{}),y.jsxs(Je,{children:[y.jsx(Qe,{children:i("NewBranchModal.title")}),y.jsx(et,{}),y.jsx(tt,{children:y.jsx(be,{fields:A})}),y.jsx(nt,{children:y.jsx(de,{colorScheme:"primary",title:L?l||h:i("Confirm"),onClick:z,isDisabled:L,children:i("Confirm")})})]})]})}const bi=X.lazy(()=>Le(()=>import("./station-ag-grid-sUlB4arS.js"),__vite__mapDeps([12,1,2,3,4,13,14,9])));function _i(){const{t:o}=ce(),d=ue(),[n,i]=X.useState(!1),[s,e]=X.useState(!1),t=Q(f=>f.app.selectedBranch),{style:r,stn_list:c,loop:p}=Q(f=>f.param),v=Q(f=>f.helper.branches),m=()=>{d(Ue(De.BRANCH))};return y.jsxs(ke,{flex:1,overflow:"hidden",children:[y.jsxs(jn,{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",index:t,onChange:f=>d(Tr(f)),children:[y.jsxs(An,{children:[v.map((f,l)=>l===0?y.jsx(gt,{children:o(p?"Loop line":"GridTabs.main")},l):r!==J.SHMetro||!We(f,c)?y.jsx(gt,{children:o("GridTabs.branch")+" "+l},l):y.jsx(gt,{children:o("GridTabs.external")+" "+l},l)),y.jsx(Be,{size:"sm",variant:"ghost",alignSelf:"center","aria-label":"New branch",onClick:()=>e(!0),icon:y.jsx(Ie,{}),isDisabled:p}),y.jsxs(Re,{marginLeft:"auto",marginRight:1,children:[y.jsx(de,{variant:"outline",size:"xs",leftIcon:y.jsx(Ie,{}),onClick:()=>i(!0),children:o("GridTabs.addStation")}),y.jsx(de,{size:"xs",colorScheme:"primary",onClick:m,children:o("GridTabs.editLine")})]})]}),y.jsx(En,{flex:1,overflowY:"auto",children:v.map((f,l)=>y.jsx(On,{padding:0,h:"100%",position:"relative",children:y.jsx(an,{suspenseFallback:y.jsx(pt,{isIndeterminate:!0}),children:y.jsx(bi,{branchIndex:l})})},l))})]}),y.jsx(mi,{isOpen:n,onClose:()=>i(!1)}),y.jsx(gi,{isOpen:s,onClose:()=>e(!1)})]})}function yi(){const o=ue(),d=Q(i=>i.app.globalAlerts),n=i=>{le.isStandaloneWindow()?window.open("/".concat(i),"_blank"):le.openApp({appId:i})};return y.jsx(y.Fragment,{children:Object.entries(d).map(([i,{message:s,url:e,linkedApp:t}])=>y.jsxs(ut,{status:i,variant:"solid",size:"xs",pl:3,pr:1,py:0,children:[y.jsx(ft,{}),t?y.jsx(Ve,{onClick:()=>n(t),children:s}):e?y.jsx(Ve,{href:e,target:"_blank",children:s}):s,y.jsx(nn,{ml:"auto",onClick:()=>o(Ir(i))})]},i))})}const _n=o=>{document.title=o,setTimeout(()=>{le.updateAppMetadata({title:o})},200)};function vi(){const{t:o}=ce(),[d]=rt(),n=d.get("project"),i=Q(t=>t.app.isLoading),[s,e]=X.useState(!1);return X.useEffect(()=>{var t;if(le.isStandaloneWindow()&&!le.storage.get(Ye.DO_NOT_SHOW_RMT_MSG)&&e(!0),n){const r=Wr(n);_n((t=r==null?void 0:r.name)!=null?t:o("Project")+" "+n)}},[]),y.jsxs(un,{children:[i&&y.jsx(pt,{isIndeterminate:i<0,value:i>=0?i:void 0}),y.jsx(ui,{}),s&&y.jsxs(ut,{status:"info",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[y.jsx(ft,{}),y.jsxs(lt,{sx:{"& a, button":{fontWeight:"bold",textDecoration:"underline"}},children:[o("Try out")," ",y.jsx(Ve,{href:"/?app=rmg",isExternal:!0,children:o("Rail Map Toolkit")})," ",o("now and enjoy an even better rail map design experience!")," ",y.jsx(Ve,{as:"button",ml:"auto",onClick:()=>e(!1),children:o("Close")})," | ",y.jsx(Ve,{as:"button",onClick:()=>{e(!1),le.storage.set(Ye.DO_NOT_SHOW_RMT_MSG,"true")},children:o("Don't show me again")})]})]}),y.jsx(yi,{}),y.jsxs(Te,{flex:1,overflow:"hidden",position:"relative",children:[y.jsxs(Te,{as:"section",direction:"column",flex:1,ml:1,mr:1,overflow:"hidden",children:[y.jsx(ke,{children:y.jsx(Qr,{})}),y.jsx(_i,{})]}),y.jsx(ri,{})]}),y.jsx("canvas",{style:{display:"none"}})]})}const Si="rmg-templates-bridge--",xi={h:800,maxH:"70%","& iframe":{h:"100%",w:"100%"}};function wi(o){const{isOpen:d,onClose:n,onImport:i}=o,[s]=X.useState(qe()),e="/rmg-templates/#/import?"+new URLSearchParams({parentComponent:le.getAppName(),parentId:s});return X.useEffect(()=>{const t=new BroadcastChannel(Si+s);return t.onmessage=r=>{const{event:c,meta:p,data:v}=r.data;console.log("[rmg] Received event from RMG Templates app clip:",c),c==="CLOSE"?n():c==="IMPORT"&&i(v,p.name)},()=>{t.close()}},[]),y.jsx(hn,{size:"xl",isOpen:d,onClose:n,sx:xi,children:y.jsx("iframe",{src:e,loading:"eager"})})}const ki={flexWrap:"wrap",flex:"1 1 0%",minW:120,"& button":{w:"100%",m:1}};function Ci(o){const{selectedParam:d,disableNew:n,onError:i}=o,{t:s}=ce(),[,e]=rt(),[t,r]=X.useState(!1),c=X.useRef(null),p=X.useRef(null);X.useEffect(()=>{var g;d&&((g=p.current)==null||g.focus())},[d]);const v=()=>{const g=Dr(J.MTR,le.getLanguage()),h=_t(JSON.stringify(g));e({project:h}),le.event(xe.NEW_PARAM,{})},m=(g,h)=>{const _=_t(JSON.stringify(g),h);e({project:_})},f=async g=>{var _;const h=(_=g.target.files)==null?void 0:_[0];Oe.info("handleImportProject(), received file",h);try{if(!h)i(s("OpenActions.unknownError"));else if(h.type!=="application/json")i(s("OpenActions.invalidType"));else{const b=await Zr(h),x=_t(b);e({project:x}),le.event(xe.UPLOAD_PARAM,{})}}catch(b){i(s("OpenActions.unknownError")),Oe.error("handleImportProject(), Unknown error occurred while parsing the uploaded file",b)}g.target.value=""},l=()=>{d&&(e({project:d}),le.event(xe.OPEN_PARAM,{}))};return y.jsxs(Te,{sx:ki,children:[y.jsx(de,{leftIcon:y.jsx(Ie,{}),onClick:v,isDisabled:n,children:s("Blank project")}),y.jsx(de,{leftIcon:y.jsx(Br,{}),onClick:()=>r(!0),isDisabled:n,children:s("Open template")}),y.jsx(de,{leftIcon:y.jsx(Nr,{}),onClick:()=>{var g;return(g=c.current)==null?void 0:g.click()},isDisabled:n,children:s("Import project")}),y.jsx(de,{ref:p,colorScheme:"primary",leftIcon:y.jsx(Mr,{}),onClick:l,isDisabled:d===void 0,children:s("Open selected")}),y.jsx("input",{ref:c,type:"file",accept:".json",hidden:!0,onChange:f,"data-testid":"file-upload"}),y.jsx(wi,{isOpen:t,onClose:()=>r(!1),onImport:m})]})}const ji={flexDirection:"column",p:2,h3:{m:2},"& > div":{m:2,flexWrap:"wrap",flexDirection:{base:"column",md:"row"}}};function Ai(o){const{downloading:d}=o,{t:n}=ce(),[i]=rt(),s=i.get("project"),[e,t]=X.useState([]),[r,c]=X.useState(),p=X.useRef(null),v=rn();X.useEffect(()=>{_n(n("Manage projects"))},[]),X.useEffect(()=>{t(yt())},[d]),zn({ref:p,handler:()=>c(void 0)});const m=g=>{const{id:h,name:_,lastModified:b}=g;h&&(le.storage.set(Ye.PARAM_CONFIG_BY_ID+h,JSON.stringify({name:_,lastModified:b})),c(void 0),t(yt()),le.event(xe.UPDATE_PARAM_CONFIG,{}))},f=g=>{le.storage.remove(Ye.PARAM_BY_ID+g),le.storage.remove(Ye.PARAM_CONFIG_BY_ID+g),c(void 0),t(yt()),le.event(xe.REMOVE_PARAM,{})},l=g=>{v({description:g,status:"error",duration:1e4,isClosable:!0})};return y.jsxs(un,{justifyContent:"center",children:[s&&y.jsx(pt,{isIndeterminate:!0}),y.jsx(Rn,{children:y.jsxs(Me,{sx:ji,children:[y.jsx(Se,{as:"h3",size:"lg",children:n("Saved projects")}),y.jsxs(Te,{ref:p,children:[y.jsx(Hr,{paramRegistry:e,downloading:d,selectedParam:r,onParamSelect:c,onParamRemove:f,onParamUpdate:m}),y.jsx(Ci,{selectedParam:r,disableNew:e.length>=10,onError:l})]})]})})]})}const Ei=o=>async d=>{try{const{config:n,param:i}=Gr(o);if(!i)return!1;const s={id:o,...n!=null?n:{}},e=Vr(i);try{const t=await Yr(e);d(At(s)),d(Vt(t))}catch(t){console.warn("Unable to update themes",t),d(At(s)),d(Vt(e))}return!0}catch(n){return console.warn("Failed to parse param.",n),!1}};function Oi(){const{t:o}=ce(),d=ue(),{paramConfig:n}=Q(f=>f.app),[i,s]=rt(),e=i.get("project"),t=i.get("external"),[r,c]=X.useState(!1),[p,v]=X.useState(),m=rn();return X.useEffect(()=>{if(Oe.info("searchParam: project=".concat(e,", external=").concat(t)),e&&t)Oe.warn(", Both param ID and external URL are provided. External URL will be ignored."),s({project:e});else if(e)m.closeAll(),e===(n==null?void 0:n.id)?(Oe.info(", Store param ID matches URL param ID. Rendering app view..."),c(!0)):(Oe.info(", Loading app view for param (ID=".concat(e,")...")),d(Ei(e)).then(f=>{f?c(!0):(Oe.info(", Failed to read param (ID=".concat(e,"). Rendering param selector view...")),m({description:o("Project selected is invalid or corrupted."),status:"error",duration:1e4,isClosable:!0}),s({}))}));else if(t){Oe.info(", External project URl is provided. Downloading project...");const f=decodeURIComponent(t);v(f),$r(f).then(l=>{l?s({project:l}):(Oe.info(", Failed to download param from ".concat(f,". Rendering param selector view...")),m({description:o("External URL cannot be opened."),status:"error",duration:1e4,isClosable:!0}),s({})),v(void 0)})}else Oe.info(", No URL param ID or external URL provided. Rendering param selector view..."),c(!1)},[e,t]),r?y.jsx(vi,{}):y.jsx(Ai,{downloading:p})}const Bi=Object.freeze(Object.defineProperty({__proto__:null,default:Oi},Symbol.toStringTag,{value:"Module"}));export{qr as R,Bi as a,Ii as g,We as i}; diff --git a/assets/app-router-legacy-CLPbLjMe.js b/assets/app-router-legacy-CLPbLjMe.js new file mode 100644 index 00000000..cc7fab44 --- /dev/null +++ b/assets/app-router-legacy-CLPbLjMe.js @@ -0,0 +1,12 @@ +System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-Dwehuq_g.js","./param-selector-legacy-DN0AGkfT.js"],(function(e,t){"use strict";var n,r,i,a,s,o,l,c,d,h,u,f,p,m,g,b,_,v,y,x,w,S,k,C,j,A,z,E,O,I,R,T,N,P,B,D,M,L,F,U,W,Z,H,G,V,$,Y,K,q,X,J,Q,ee,te,ne,re,ie,ae,se,oe,le,ce,de,he,ue,fe,pe,me,ge,be,_e,ve,ye,xe,we,Se,ke,Ce,je,Ae,ze,Ee,Oe,Ie,Re,Te,Ne,Pe,Be,De,Me,Le,Fe,Ue,We,Ze,He,Ge,Ve,$e,Ye,Ke,qe,Xe,Je,Qe,et,tt,nt,rt,it,at,st,ot,lt,ct,dt,ht,ut,ft,pt,mt,gt,bt,_t,vt,yt,xt,wt,St,kt,Ct,jt,At,zt,Et,Ot,It,Rt,Tt,Nt,Pt,Bt,Dt,Mt,Lt,Ft,Ut,Wt,Zt,Ht,Gt,Vt,$t,Yt,Kt,qt,Xt,Jt;return{setters:[e=>{n=e.j,r=e.ap,i=e.h,a=e.B,s=e.al,o=e.a2,l=e.ao,c=e.N,d=e.aq,h=e.t,u=e.D,f=e.aj,p=e.M,m=e.ak,g=e.U,b=e.V,_=e.J,v=e.K,y=e.L,x=e.O,w=e.ab,S=e.ar,k=e.as,C=e.at,j=e.au,A=e.av,z=e.aw,E=e.ax,O=e.ay,I=e.az,R=e.R,T=e.aA,N=e.a,P=e.aB},e=>{B=e.a,D=e.u,M=e.o,L=e.c,F=e.g,U=e.s},e=>{W=e._,Z=e.u,H=e.r,G=e.E,V=e.R,$=e.a,Y=e.s,K=e.b,q=e.c,X=e.D,J=e.d,Q=e.e,ee=e.f,te=e.M,ne=e.F,re=e.g,ie=e.h,ae=e.i,se=e.j,oe=e.o,le=e.k,ce=e.l,de=e.S,he=e.m,ue=e.B,fe=e.n,pe=e.p,me=e.q,ge=e.t,be=e.v,_e=e.w,ve=e.x,ye=e.y,xe=e.z,we=e.A,Se=e.C,ke=e.G,Ce=e.H,je=e.I,Ae=e.J,ze=e.P,Ee=e.K,Oe=e.L,Ie=e.N,Re=e.O,Te=e.Q,Ne=e.T,Pe=e.U,Be=e.V,De=e.W,Me=e.X,Le=e.Y,Fe=e.Z,Ue=e.$,We=e.a0,Ze=e.a1,He=e.a2,Ge=e.a3,Ve=e.a4,$e=e.a5,Ye=e.a6,Ke=e.a7,qe=e.a8,Xe=e.a9,Je=e.aa,Qe=e.ab,et=e.ac,tt=e.ad,nt=e.ae,rt=e.af,it=e.ag,at=e.ah,st=e.ai,ot=e.aj,lt=e.ak,ct=e.al,dt=e.am,ht=e.an,ut=e.ao,ft=e.ap,pt=e.aq,mt=e.ar,gt=e.as,bt=e.at,_t=e.au,vt=e.av,yt=e.aw,xt=e.ax,wt=e.ay,St=e.az,kt=e.aA,Ct=e.aB,jt=e.aC,At=e.aD,zt=e.aE,Et=e.aF,Ot=e.aG,It=e.aH,Rt=e.aI,Tt=e.aJ,Nt=e.aK,Pt=e.aL,Bt=e.aM,Dt=e.aN},e=>{Mt=e.R,Lt=e.w,Ft=e.i,Ut=e.d,Wt=e.a,Zt=e.s,Ht=e.g,Gt=e.b,Vt=e.r,$t=e.c,Yt=e.P,Kt=e.e,qt=e.u,Xt=e.f,Jt=e.h}],execute:function(){var Qt=e("R",(function(e){var t=e.text,i=e.delimiter;return n.jsx("span",{children:t.split(i||"\\").map((function(e,t){return t?[n.jsx(r,{children:"⏎"},t),e]:e}))})}));const en={mtr:{components:()=>W((()=>t.import("./index-legacy-CMOYAw6J.js")),void 0),fonts:()=>W((()=>t.import("./index-legacy-CMOYAw6J.js")),void 0).then((e=>e.mtrFonts))},gzmtr:{components:()=>W((()=>t.import("./index-legacy-CYGL5-gX.js")),void 0)},shmetro:{components:()=>W((()=>t.import("./index-legacy-CEB8kupO.js")),void 0)},shsubrwy:{components:()=>W((()=>t.import("./index-legacy-DgYeI7we.js")),void 0)}},tn={position:"relative",flexDirection:"row",overflowX:"auto","&::before, &::after":{content:'""',margin:"auto"},"& > svg":{flex:"0 0 auto",border:"1px solid black"}};function nn(){const{canvasToShow:e,canvasScale:t}=Z((e=>e.app)),{svg_height:r,style:a}=Z((e=>e.param)),s=function(e){const[t,n]=B.useState({});return B.useEffect((()=>(en[e].components().then((e=>{n(e.default)})).catch((t=>{console.error(`Failed to load canvas for style ${e}`,t),n({})})),()=>{n({})})),[e]),t}(a);B.useEffect((()=>{const e=new AbortController;return(async(e,t)=>{const n=await(en[e].fonts?.())??[];await Promise.all(n.map((e=>H.loadFont(e)))),t.aborted||document.querySelector("#css_share")?.setAttribute("href",`/rmg/styles/share_${e}.css`)})(a,e.signal).then(),H.event(G.STYLE_CHANGE,{style:a}),()=>{e.abort()}}),[a]);const o=Object.keys(s).filter((t=>e.includes(t))),l=r*t;return n.jsx(i,{minH:l,sx:tn,children:0===Object.keys(s).length?n.jsx(V,{isIndeterminate:!0}):o.map((e=>n.jsx($,{sx:{minWidth:750,height:l},children:s[e]},e+a)))})}const rn=e=>t=>{t(Y(e)),t(K(e.stn_list))},an=(e,t)=>(n,r)=>{const{stn_list:i}=r().param,a={...i,[e]:t};n(sn(a))},sn=e=>t=>{t(q(e)),t(K(e))},on=(e,t,n)=>(r,i)=>{const a=i().param.stn_list[e];r(an(e,{...a,localisedName:{...a.localisedName,[t]:n}}))},ln=(e,t,n)=>(r,i)=>{const a=i().param.stn_list[e];r(an(e,{...a,localisedSecondaryName:{...a.localisedSecondaryName,[t]:n}}))},cn=(e,t,n)=>(r,i)=>{const a=i().param.stn_list[e],s=a.transfer.groups.map((e=>({...e})));if(s.length>t)s[t]={...s[t],lines:(s[t].lines??[]).concat(n)};else{for(let e=s.length;e(r,i)=>{const a=i().param.stn_list[e],s=a.transfer.groups.map((e=>({...e})));s.length>t&&(s[t]={...s[t],name:n},r(an(e,{...a,transfer:{...a.transfer,groups:[s[0],...s.slice(1)??[]]}})))},hn=e=>(t,n)=>{const{stn_list:r}=n().param;t(sn({...r,[e[0].stnId]:{...r[e[0].stnId],branch:{...r[e[0].stnId].branch,[e[0].direction]:r[e[0].stnId].branch?.[e[0].direction]?.with(1,e[0].first)}},[e[1].stnId]:{...r[e[1].stnId],branch:{...r[e[1].stnId].branch,[e[1].direction]:r[e[1].stnId].branch?.[e[1].direction]?.with(1,e[1].first)}}}))},un=(e,t)=>(n,r)=>{const{stn_list:i}=r().param;n(sn({...i,[e]:{...i[e],parents:i[e].parents.slice().reverse()},[t]:{...i[t],children:i[t].children.slice().reverse()}}))};function fn(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation));console.log("InfoSection:: Rendering for",r);const i=Z((e=>e.param.style)),{num:o,localisedName:l,localisedSecondaryName:c}=Z((e=>e.param.stn_list[r])),d=[{type:"input",label:e("StationSidePanel.info.num"),value:o,placeholder:"01",onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(an(e,{...i,num:t}))})(r,e)),hidden:![Q.GZMTR].includes(i)},{type:"input",label:e("Chinese name"),value:l.zh??"",onChange:e=>t(on(r,"zh",e))},{type:"input",label:e("English name"),value:l.en??"",onChange:e=>t(on(r,"en",e))},{type:"custom",label:e("Secondary names"),component:n.jsx(ee,{selections:[{label:e("Yes"),value:!0},{label:e("No"),value:!1}],defaultValue:!!c,onChange:e=>t(((e,t)=>(n,r)=>{const{localisedSecondaryName:i,...a}=r().param.stn_list[e];n(an(e,t?{...a,localisedSecondaryName:{}}:a))})(r,e))}),hidden:![Q.GZMTR].includes(i)},{type:"input",label:e("StationSidePanel.info.zhSecondary"),value:c?.zh??"",placeholder:"1号航站楼",onChange:e=>t(ln(r,"zh",e)),hidden:!c||![Q.GZMTR].includes(i)},{type:"input",label:e("StationSidePanel.info.enSecondary"),value:c?.en??"",placeholder:"Terminal 1",onChange:e=>t(ln(r,"en",e)),hidden:!c||![Q.GZMTR].includes(i)}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StationSidePanel.info.title")}),n.jsx(Mt,{fields:d,minW:130})]})}class pn{static hexToRgb(e){return[parseInt(e.slice(1,3),16),parseInt(e.slice(3,5),16),parseInt(e.slice(5,7),16)]}static fade(e,t){return`rgba(${[...this.hexToRgb(e),t].join(",")})`}static euclideanDistance(e,t){return this.hexToRgb(e).reduce(((e,n,r)=>e+Math.pow(n-this.hexToRgb(t)[r],2)),0)}}function mn(e){const{theme:t,onClick:r}=e,{t:i}=D();return n.jsx(o,{size:"xs","aria-label":i("Colour"),mt:"0.45px",color:t?.[3],bg:t?.[2],_hover:{bg:pn.fade(t?.[2]??"#aaaaaa",.7)},icon:n.jsx(te,{}),onClick:r})}function gn(e){const{interchangeList:t,onAdd:r,onDelete:i,onUpdate:s}=e,{t:d}=D(),h=J(),[u,f]=B.useState(),{paletteAppClipOutput:p}=Z((e=>e.app)),{style:m,theme:g,stn_list:b}=Z((e=>e.param));B.useEffect((()=>{void 0!==u&&p&&(s?.(u,{...t[u],theme:p}),f(void 0))}),[p?.toString()]);const _=Object.values(b).reduce(((e,t)=>{const[n,r]=e;return[[...new Set(n.concat(t.transfer.groups.map((e=>e.lines?.map((e=>e.name[0]))??[])).flat()))],[...new Set(r.concat(t.transfer.groups.map((e=>e.lines?.map((e=>e.name[1]))??[])).flat()))]]}),[[],[]]),v=Object.fromEntries(Object.entries(ne).filter((([e])=>!["railway"].includes(e))).map((([e,t])=>[e,d(t)]))),y=t.map(((e,t)=>[{type:"input",label:d("Chinese name"),value:e.name[0],onChange:n=>s?.(t,{...e,name:[n,e.name[1]]}),optionList:_[0]},{type:"input",label:d("English name"),value:e.name[1],onChange:n=>s?.(t,{...e,name:[e.name[0],n]}),optionList:_[1]},{type:"select",label:d("Line icon"),value:e.facility,options:v,onChange:n=>s?.(t,{...e,facility:n}),hidden:![Q.MTR].includes(m)}]));return n.jsxs(re,{direction:"column",children:[0===t.length&&n.jsxs(l,{spacing:.5,"data-testid":"interchange-card-stack",children:[n.jsx(c,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:d("StationSidePanel.interchange.noInterchanges")}),n.jsx(o,{size:"sm",variant:"ghost","aria-label":d("StationSidePanel.interchange.add"),onClick:()=>r?.({theme:[g[0],"","#aaaaaa",ie.white],name:["",""]}),icon:n.jsx(ae,{})})]}),t.map(((e,s)=>n.jsxs(l,{spacing:.5,"data-testid":`interchange-card-stack-${s}`,children:[n.jsx(se,{label:d("Colour"),minW:"40px",noLabel:0!==s,children:n.jsx(mn,{theme:e.theme,onClick:()=>{f(s),h(oe(e.theme??[g[0],"","#aaaaaa",ie.white]))}})}),n.jsx(Mt,{fields:y[s],noLabel:0!==s}),r&&s===y.length-1?n.jsx(o,{size:"sm",variant:"ghost","aria-label":d("StationSidePanel.interchange.copy"),onClick:()=>r?.(t.slice(-1)[0]),icon:n.jsx(le,{})}):n.jsx(a,{minW:8}),i&&n.jsx(o,{size:"sm",variant:"ghost","aria-label":d("StationSidePanel.interchange.remove"),onClick:()=>i?.(s),icon:n.jsx(ce,{})})]},s)))]})}function bn(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation)),{theme:a,style:o}=Z((e=>e.param)),{transfer:l}=Z((e=>e.param.stn_list[r])),c=n=>[{type:"input",label:e("Station Chinese name"),value:l.groups[n].name?.[0]??"",hidden:![Q.MTR].includes(o),onChange:e=>t(dn(r,n,[e,l.groups[n].name?.[1]??""]))},{type:"input",label:e("Station English name"),value:l.groups[n].name?.[1]??"",hidden:![Q.MTR].includes(o),onChange:e=>t(dn(r,n,[l.groups[n].name?.[0]??"",e]))},{type:"switch",label:e("Paid area"),isChecked:l.paid_area,onChange:e=>{return t((n=r,i=e,(e,t)=>{const r=t().param.stn_list[n];e(an(n,{...r,transfer:{...r.transfer,paid_area:i}}))}));var n,i},hidden:![Q.MTR].includes(o)||0===n,oneLine:!0}],u=e=>n=>{t(cn(r,e,n))},f=e=>n=>{var i,a,s;t((i=r,a=e,s=n,(e,t)=>{const n=t().param.stn_list[i];if(n.transfer.groups.length>a&&(n.transfer.groups[a].lines?.length||0)>s){const t=n.transfer.groups.map(((e,t)=>t===a?{...e,lines:e.lines?.filter(((e,t)=>t!==s))}:e));e(an(i,{...n,transfer:{...n.transfer,groups:[t[0],...t.slice(1)??[]]}}))}}))},p=e=>(n,i)=>{var a,s,o,l;t((a=r,s=e,o=n,l=i,(e,t)=>{const n=t().param.stn_list[a];if(n.transfer.groups.length>s&&(n.transfer.groups[s].lines?.length||0)>o){const t=n.transfer.groups.map(((e,t)=>t===s?{...e,lines:e.lines?.map(((e,t)=>t===o?l:e))}:e));e(an(a,{...n,transfer:{...n.transfer,groups:[t[0],...t.slice(1)??[]]}}))}}))};return n.jsxs(d,{align:"flex-start",p:1,children:[n.jsxs(i,{w:"100%",children:[n.jsx(s,{as:"h5",size:"sm",mr:"auto",children:e("StationSidePanel.interchange.title")}),o===Q.MTR&&n.jsx(ee,{selections:[{label:e("Text on the left"),value:de.left},{label:e("Text on the right"),value:de.right}],defaultValue:l.tick_direc,onChange:e=>{return t((n=r,i=e,(e,t)=>{const r=t().param.stn_list[n];e(an(n,{...r,transfer:{...r.transfer,tick_direc:i}}))}));var n,i}})]}),l.groups.map(((t,r)=>n.jsxs(B.Fragment,{children:[n.jsx(s,{as:"h6",size:"xs",children:e(0===r?"StationSidePanel.interchange.within":1===r?"StationSidePanel.interchange.outStation":"StationSidePanel.interchange.outSystem")}),0!==r&&n.jsx(Mt,{fields:c(r)}),n.jsx(gn,{interchangeList:t.lines??[],onAdd:u(r),onDelete:f(r),onUpdate:p(r)})]},r))),l.groups.length<3&&n.jsx(h,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:n.jsx(ae,{}),onClick:()=>{t(cn(r,l.groups.length,{theme:[a[0],"","#AAAAAA",ie.white],name:["",""]}))},children:e("StationSidePanel.interchange.addGroup")})]})}function _n(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation)),{style:i,loop:o}=Z((e=>e.param)),{services:l,facility:c,loop_pivot:d,one_line:h,int_padding:u,character_spacing:f}=Z((e=>e.param.stn_list[r])),p=Object.values(he).map((t=>({label:e("StationSidePanel.more."+t),value:t,disabled:t===he.local&&i!==Q.SHMetro}))),m=Object.fromEntries(Object.entries(ne).filter((([e])=>!["railway"].includes(e))).map((([t,n])=>[t,e(n)]))),g=Object.fromEntries(Object.entries(ne).filter((([e])=>!["np360"].includes(e))).map((([t,n])=>[t,e(n)]))),b=[{type:"custom",label:e("StationSidePanel.more.service"),component:n.jsx(ee,{selections:p,defaultValue:l,onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(an(e,{...i,services:t}))})(r,e)),multiSelect:!0}),hidden:![Q.GZMTR,Q.SHMetro].includes(i)},{type:"select",label:e("StationSidePanel.more.facility"),value:c||"",options:{"":e("None"),...i===Q.MTR?m:g},onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(an(e,{...i,facility:t||void 0}))})(r,e)),hidden:![Q.MTR,Q.SHMetro].includes(i)},{type:"switch",label:e("StationSidePanel.more.pivot"),isChecked:d,onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(an(e,{...i,loop_pivot:t}))})(r,e)),hidden:![Q.SHMetro].includes(i)||!o,minW:"full",oneLine:!0},{type:"switch",label:e("StationSidePanel.more.oneLine"),isChecked:h,onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(an(e,{...i,one_line:t}))})(r,e)),hidden:![Q.SHMetro].includes(i),minW:"full",oneLine:!0},{type:"input",label:e("StationSidePanel.more.intPadding"),value:u.toString(),validator:e=>Number.isInteger(e),onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(an(e,{...i,int_padding:t}))})(r,Number(e))),hidden:![Q.SHMetro].includes(i)},{type:"custom",label:e("StationSidePanel.more.intPaddingApplyGlobal"),component:n.jsx(ee,{selections:[{label:e("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>{return t((e=r,(t,n)=>{const r=n().param.stn_list[e].int_padding,i=structuredClone(n().param.stn_list);Object.values(i).forEach((e=>{e.int_padding=r})),t(sn(i))}));var e}}),oneLine:!0,hidden:![Q.SHMetro].includes(i)},{type:"input",label:e("StationSidePanel.more.characterSpacing"),value:f.toString(),validator:e=>Number.isInteger(e),onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(an(e,{...i,character_spacing:t}))})(r,Number(e))),hidden:![Q.SHSuburbanRailway].includes(i)},{type:"custom",label:e("StationSidePanel.more.intPaddingApplyGlobal"),component:n.jsx(ee,{selections:[{label:e("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>{return t((e=r,(t,n)=>{const r=n().param.stn_list[e].character_spacing,i=structuredClone(n().param.stn_list);Object.values(i).forEach((e=>{e.character_spacing=r})),t(sn(i))}));var e}}),oneLine:!0,hidden:![Q.SHSuburbanRailway].includes(i)}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StationSidePanel.more.title")}),n.jsx(Mt,{fields:b})]})}function vn(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation)),i=Z((e=>e.param.stn_list)),{parents:o,children:l,branch:d}=i[r],h={[ue.through]:e("StationSidePanel.branch.through"),[ue.nonThrough]:e("StationSidePanel.branch.nonThrough")},u=e=>(e===X.left?o:l).reduce(((e,t)=>({...e,[t]:i[t].localisedName.zh+"/"+i[t].localisedName.en})),{}),f={upper:e("StationSidePanel.branch.upper"),lower:e("StationSidePanel.branch.lower")},p=n=>{const i=d?.[n];return i?[{type:"select",label:e("StationSidePanel.branch.type"),options:h,value:i[0],onChange:e=>t(((e,t,n)=>(r,i)=>{const a=i().param.stn_list[e];r(an(e,{...a,branch:{...a.branch,[t]:a.branch?.[t]?.with(0,n)}}))})(r,n,e))},{type:"select",label:e("StationSidePanel.branch.firstStation"),options:u(n),value:i[1],onChange:e=>t(((e,t,n)=>(r,i)=>{const a=i().helper.branches,s={stnId:e,direction:t,first:n};if(t===X.left){const t=a.slice(1).find((t=>t.slice(-1)[0]===e))?.[0];if(t){const e=a[0][a[0].indexOf(t)+1];r(hn([s,{stnId:t,direction:X.right,first:e}]))}}else{const t=a.slice(1).find((t=>t[0]===e))?.slice(-1)?.[0];if(t){const e=a[0][a[0].indexOf(t)-1];r(hn([s,{stnId:t,direction:X.left,first:e}]))}}})(r,n,e))},{type:"select",label:e("StationSidePanel.branch.position"),options:f,value:(n===X.left?o:l)[0]===i[1]?"upper":"lower",onChange:()=>t(((e,t)=>(n,r)=>{const i=r().helper.branches;if(t===X.left){const t=i.slice(1).find((t=>t.slice(-1)[0]===e))?.[0];t&&n(un(e,t))}else{const t=i.slice(1).find((t=>t[0]===e))?.slice(-1)?.[0];t&&n(un(t,e))}})(r,n))}]:[]};return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("Branches")}),n.jsx(s,{as:"h6",size:"xs",children:e("Branch on the left")}),n.jsx(re,{direction:"column",children:2===o.length?n.jsx(Mt,{fields:p(X.left)}):n.jsx(c,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:e("No branches found")})}),n.jsx(s,{as:"h6",size:"xs",children:e("Branch on the right")}),n.jsx(re,{direction:"column",children:2===l.length?n.jsx(Mt,{fields:p(X.right)}):n.jsx(c,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:e("No branches found")})})]})}function yn(){return n.jsxs(fe,{children:[n.jsx(fn,{}),n.jsx(u,{}),n.jsx(bn,{}),n.jsx(u,{}),n.jsx(vn,{}),n.jsx(u,{}),n.jsx(_n,{})]})}function xn(){const{t:e}=D(),t=J(),{style:r,svgWidth:i,svg_height:o,y_pc:l,branchSpacingPct:c,padding:d,direction_gz_x:h,direction_gz_y:u,loop:f}=Z((e=>e.param)),p=[...pe[r].map((n=>({type:"input",label:e(`StyleSidePanel.layout.${n}Width`),value:i[n].toString(),onChange:e=>t(me({width:Number(e),canvas:n}))}))),{type:"input",label:e("StyleSidePanel.layout.canvasHeight"),value:o.toString(),onChange:e=>t(ge(Number(e)))},{type:"slider",label:e("StyleSidePanel.layout.verticalPosition"),value:l,min:0,max:100,onChange:e=>t(be(e)),leftIcon:n.jsx(_e,{}),rightIcon:n.jsx(ve,{}),hidden:![Q.MTR,Q.GZMTR].includes(r)},{type:"slider",label:e(f?"StyleSidePanel.layout.branchSpacingLoop":"Branch spacing"),value:c,min:0,max:f?50:100,onChange:e=>t(ye(e)),leftIcon:n.jsx(xe,{}),rightIcon:n.jsx(ae,{})},{type:"slider",label:e("StyleSidePanel.layout.padding"),value:d,min:0,max:50,onChange:e=>t(we(e)),leftIcon:n.jsx(xe,{}),rightIcon:n.jsx(ae,{})},{type:"slider",label:e("StyleSidePanel.layout.directionGzX"),value:h,min:0,max:100,onChange:e=>t(Se(e)),leftIcon:n.jsx(ke,{}),rightIcon:n.jsx(Ce,{}),hidden:![Q.GZMTR].includes(r)},{type:"slider",label:e("StyleSidePanel.layout.directionGzY"),value:u,min:0,max:100,onChange:e=>t(je(e)),leftIcon:n.jsx(_e,{}),rightIcon:n.jsx(ve,{}),hidden:![Q.GZMTR].includes(r)}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StyleSidePanel.layout.title")}),n.jsx(Mt,{fields:p,minW:130})]})}function wn(){const{t:e}=D(),t=J(),{paletteAppClipOutput:r}=Z((e=>e.app)),{style:i,theme:c,line_name:d,line_num:h,spanLineNum:u,direction:f,platform_num:p,psd_num:m,coachNum:g,namePosMTR:b,customiseMTRDest:_,info_panel_type:v,stn_list:y,loop:x}=Z((e=>e.param)),w=Math.max(...Object.values(y).map((e=>e.services.length))),[S,k]=B.useState(!1);B.useEffect((()=>{S&&r&&(t(Ae(r)),k(!1))}),[r?.toString()]);const C=[{label:e("StyleSidePanel.design.left"),value:de.left},{label:e("StyleSidePanel.design.right"),value:de.right}],j=Object.values(ze).reduce(((t,n)=>({...t,[n]:e("StyleSidePanel.design."+n)})),{}),A=Object.values(Ee).reduce(((t,n)=>({...t,[n]:e("StyleSidePanel.design."+n)})),{}),z=[{type:"custom",label:e("Colour"),component:n.jsx(mn,{theme:c,onClick:()=>{k(!0),t(oe(c))}}),minW:"40px"},{type:"input",label:e("StyleSidePanel.design.zhLineName"),value:d[0],onChange:e=>t(Oe([e,d[1]])),minW:130},{type:"input",label:e("StyleSidePanel.design.enLineName"),value:d[1],onChange:e=>t(Oe([d[0],e])),minW:130},{type:"input",label:e("StyleSidePanel.design.lineNum"),value:h,onChange:e=>t(Ie(e)),hidden:![Q.GZMTR].includes(i)},{type:"custom",label:e("Span digits over rows"),component:n.jsx(ee,{selections:[{label:e("Yes"),value:!0},{label:e("No"),value:!1}],defaultValue:u??!1,onChange:e=>t(Re(e))}),hidden:![Q.GZMTR].includes(i)},{type:"input",label:e("StyleSidePanel.design.platformNum"),value:p||"",onChange:e=>t(Te(e))},{type:"input",label:e("StyleSidePanel.design.psdNum"),value:m,onChange:e=>t(Ne(e)),hidden:![Q.GZMTR].includes(i)},{type:"input",label:e("Coach number"),value:g,onChange:e=>t(Pe(e)),hidden:![Q.GZMTR].includes(i)},{type:"select",label:e("StyleSidePanel.design.panelType"),value:v,options:i===Q.GZMTR?j:A,disabledOptions:[ze.gz11,ze.gz1822],onChange:e=>t(Be(e)),hidden:![Q.GZMTR,Q.SHMetro].includes(i)},{type:"custom",label:e("StyleSidePanel.design.direction"),component:n.jsx(ee,{selections:C,defaultValue:f,onChange:e=>t(De(e))}),minW:"full",oneLine:!0}],E=[{label:e("StyleSidePanel.design.upwards"),value:!0},{label:e("StyleSidePanel.design.downward"),value:!1}],O=[{type:"custom",label:e("StyleSidePanel.design.firstStationNameDisplay"),component:n.jsx(l,{spacing:.5,children:n.jsx(ee,{selections:E,defaultValue:b.isFlip??!0,onChange:e=>t(Me(e))})}),minW:"full",oneLine:!0,hidden:![Q.SHMetro].includes(i)||w>1||x}],I=[{label:e("StyleSidePanel.design.alternatively"),value:!0},{label:e("StyleSidePanel.design.onOneSide"),value:!1}],R=[{type:"custom",label:e("StyleSidePanel.design.nameDisplay"),component:n.jsxs(l,{spacing:.5,children:[n.jsx(o,{size:"xs",variant:"ghost","aria-label":e("StyleSidePanel.design.flip"),title:e("StyleSidePanel.design.flip"),icon:n.jsx(Le,{}),onClick:()=>t(Me())}),n.jsx(ee,{selections:I,defaultValue:b.isStagger,onChange:e=>t(Fe(e))})]}),minW:"full",oneLine:!0,hidden:![Q.MTR].includes(i)},{type:"switch",label:e("StyleSidePanel.design.legacyDestination"),isChecked:_.isLegacy,onChange:e=>t(Ue(e)),hidden:![Q.MTR].includes(i),minW:"full",oneLine:!0},{type:"switch",label:e("StyleSidePanel.design.overrideTerminal"),isChecked:!1!==_.terminal,onChange:e=>t(We(!!e&&["",""])),hidden:![Q.MTR].includes(i),minW:"full",oneLine:!0},{type:"input",label:e("StyleSidePanel.design.terminalZhName"),value:_.terminal?_.terminal[0]:"",placeholder:"機場及博覽館",onChange:e=>t(We([e,_.terminal?_.terminal[1]:""])),hidden:![Q.MTR].includes(i)||!1===_.terminal},{type:"input",label:e("StyleSidePanel.design.terminalEnName"),value:_.terminal?_.terminal[1]:"",placeholder:"Airport and AsiaWorld-Expo",onChange:e=>t(We([_.terminal?_.terminal[0]:"",e])),hidden:![Q.MTR].includes(i)||!1===_.terminal}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StyleSidePanel.design.title")}),n.jsx(Mt,{fields:[...z,...R,...O],minW:130})]})}function Sn(){const{t:e}=D(),t=J(),{branches:r}=Z((e=>e.helper)),{loop:i,loop_info:o,style:l}=Z((e=>e.param)),{bank:c,left_and_right_factor:d,bottom_factor:h,clockwise:u}=o,f=r.flat().filter((e=>t=>2===(e[t]=(e[t]||0)+1))({})).filter((e=>!["linestart","lineend"].includes(e))),p=Math.abs(r[0].indexOf(f[0])-r[0].indexOf(f[1])),m=r.length>=2?(0,Math.min)(r[0].length-2-p,p):Math.floor((r[0].length-2-2*h)/2),g=[{type:"switch",label:e("StyleSidePanel.loop.isLoop"),isChecked:i,onChange:e=>t(Ze(e)),minW:"full",oneLine:!0},{type:"switch",label:e("StyleSidePanel.loop.isBank"),isChecked:c,onChange:e=>t(He(e)),minW:"full",oneLine:!0,hidden:!i||l!==Q.SHMetro},{type:"slider",label:e("StyleSidePanel.loop.leftRightFactor"),value:d,min:0,max:m,onChange:e=>t(Ge(Math.floor(e))),hidden:!i||l!==Q.SHMetro},{type:"slider",label:e("StyleSidePanel.loop.bottomFactor"),value:h,min:0,max:Math.floor((r[0].length-2-2*d)/2),onChange:e=>t(Ve(Math.floor(e))),hidden:!i||i&&r.length>2||l!==Q.SHMetro},{type:"custom",label:e("Loop direction"),component:n.jsx(ee,{selections:[{label:e("Anticlockwise"),value:!1},{label:e("Clockwise"),value:!0}],defaultValue:u??!1,onChange:e=>t($e(e))}),hidden:!i||![Q.GZMTR].includes(l),oneLine:!0}];return n.jsxs(a,{p:1,children:[n.jsxs(s,{as:"h5",size:"sm",children:[e("StyleSidePanel.loop.title")," ",l===Q.GZMTR?"(Beta)":""]}),n.jsx(Mt,{fields:g})]})}function kn(e){const{note:t,onUpdate:r,onDelete:i}=e,{t:a}=D(),s=[{type:"textarea",label:a("StyleSidePanel.note.zhNote"),value:t[0],onChange:e=>r?.([e,t[1],t[2],t[3],t[4]])},{type:"textarea",label:a("StyleSidePanel.note.enNote"),value:t[1],onChange:e=>r?.([t[0],e,t[2],t[3],t[4]])},{type:"switch",label:a("StyleSidePanel.note.border"),isChecked:t[4],onChange:e=>r?.([t[0],t[1],t[2],t[3],e]),oneLine:!0}],c=[{type:"slider",label:a("StyleSidePanel.note.positionX"),value:t[2],min:0,max:100,onChange:e=>r?.([t[0],t[1],e,t[3],t[4]]),leftIcon:n.jsx(ke,{}),rightIcon:n.jsx(Ce,{})},{type:"slider",label:a("StyleSidePanel.note.positionY"),value:t[3],min:0,max:100,onChange:e=>r?.([t[0],t[1],t[2],e,t[4]]),leftIcon:n.jsx(_e,{}),rightIcon:n.jsx(ve,{})}];return n.jsxs(re,{direction:"column",children:[n.jsx(Mt,{fields:s,minW:"full"}),n.jsxs(l,{spacing:.5,sx:{"&>div":{flex:1}},children:[n.jsx(Mt,{fields:c}),n.jsx(o,{size:"sm",variant:"ghost","aria-label":a("StyleSidePanel.note.remove"),onClick:()=>i?.(),icon:n.jsx(ce,{})})]})]})}function Cn(){const{t:e}=D(),t=J(),r=Z((e=>e.param.notesGZMTR));return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StyleSidePanel.note.title")}),n.jsxs(d,{spacing:.5,children:[r?.map(((e,r)=>n.jsx(kn,{note:e,onUpdate:e=>t(Ye({index:r,note:e})),onDelete:()=>t(Ke(r))},r))),n.jsx(h,{size:"xs",variant:"ghost",leftIcon:n.jsx(ae,{}),alignSelf:"flex-end",onClick:()=>t(qe()),children:e("StyleSidePanel.note.add")})]})]})}function jn(){const{style:e}=Z((e=>e.param));return n.jsxs(fe,{children:[n.jsx(xn,{}),n.jsx(u,{}),n.jsx(wn,{}),[Q.GZMTR,Q.SHMetro].includes(e)&&n.jsxs(n.Fragment,{children:[n.jsx(u,{}),n.jsx(Sn,{})]}),e===Q.GZMTR&&n.jsxs(n.Fragment,{children:[n.jsx(u,{}),n.jsx(Cn,{})]})]})}const An=(e,t)=>{if(["linestart","lineend"].includes(e)||t[e].parents.length>1||t[e].children.length>1)return 0;const n=t[e].parents[0];return n?1===t[n].children.length?An(n,t):0===t[n].children.indexOf(e)?1:-1:0},zn=e("i",((e,t)=>!!t[e[0]].children.indexOf(e[1]))),En=(e,t)=>[e[0][1],e[0][e[0].length-2],...e[0].filter((n=>e.slice(1).filter((e=>zn(e,t))).map((e=>e.filter((e=>!["linestart","lineend"].includes(e))))).map((e=>[e[0],e[e.length-1]])).flat().includes(n)))],On=(e("g",((e,t)=>(n,r)=>{const i=r().param.coline,a=r().helper.branches[t];for(const[t,s]of Object.entries(i))if(s.from===e&&a.includes(s.to)){const n=a.indexOf(e),r=a.indexOf(s.to);if(r>n)return[r-n+1,t]}else if(s.to===e&&a.includes(s.to)){const n=a.indexOf(e),r=a.indexOf(s.from);if(r>n)return[r-n+1,t]}return[0,void 0]})),(e,t)=>(n,r)=>{const i=r().param.stn_list,a=r().helper.branches;if(e===t)throw new Error("addColine():: failed for same stnId");const s=En(a,i).filter((n=>[e,t].includes(n))),o=((e,t)=>e.slice(1).filter((e=>zn(e,t))).map((e=>e.filter((e=>!["linestart","lineend"].includes(e))))).map((e=>[e[0],e[e.length-1]])))(a,i).filter((n=>[e,t].every((e=>n.includes(e)))));if(2===s.length&&o.length>0)throw new Error(`addColine():: main check failed for ${e}, ${t}`);if(2!==s.length&&1!==o.length)throw new Error(`addColine():: branch check failed for ${e}, ${t}`)});function In(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),s=J(),o=Z((e=>e.app.selectedStation)),[l,c]=B.useState(!1);return B.useEffect((()=>{t||c(!1)}),[t]),n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[l&&n.jsxs(g,{status:"error",variant:"solid",size:"xs",children:[n.jsx(b,{}),i("Unable to remove this station.")]}),n.jsxs(a,{position:"relative",children:[n.jsx(_,{children:i("Remove station")}),n.jsx(v,{})]}),n.jsx(y,{children:i("Are you sure to remove station? You cannot undo this action.")}),n.jsxs(x,{children:[n.jsx(h,{onClick:r,children:i("Cancel")}),n.jsx(h,{colorScheme:"primary",onClick:()=>{const e=s((t=o,(e,n)=>{const{stn_list:r,current_stn_idx:i}=n().param;if(t===i)return console.log("removeStation():: failed as current station cannot be deleted"),!1;const{parents:a,children:s}=r[t];return 4===Object.keys(r).length?(console.log("removeStation():: failed as only 2 stations remaining"),!1):2===a.length&&2===s.length?(console.log("removeStation():: failed as branches on both sides cannot be combined"),!1):!!Object.keys(r).some((e=>![t,"linestart","lineend"].includes(e)&&0===An(e,r)))||(console.log("removeStation():: failed as selected station is the only station without siblings"),!1)}));var t,n;e?(r(),s(Qe(et.CLOSE)),s(tt("linestart")),s((n=o,(e,t)=>{const r=t().param.coline;if(0===Object.keys(r).length)return;const i=Object.entries(r).reduce(((e,t)=>t[1].from!==n&&t[1].to!==n?{...e,[t[0]]:t[1]}:{...e}),{});e(Xe(i))})),s((e=>(t,n)=>{const r=n().param.stn_list,{parents:i,children:a}=r[e];let s=JSON.parse(JSON.stringify(r));2===i.length||2===a.length?(i.forEach((e=>{s[e].children=a})),a.forEach((e=>{s[e].parents=i})),1===i.length&&(s[i[0]].branch={...s[i[0]].branch,right:s[e].branch?.right}),1===a.length&&(s[a[0]].branch={...s[a[0]].branch,left:s[e].branch?.left})):2===r[i[0]].children.length&&2===r[a[0]].parents.length?s={...r,[i[0]]:{...r[i[0]],children:r[i[0]].children.filter((t=>t!==e)),branch:{...r[i[0]].branch,right:void 0}},[a[0]]:{...r[a[0]],parents:r[a[0]].parents.filter((t=>t!==e)),branch:{...r[a[0]].branch,left:void 0}}}:(i.forEach((t=>{const n=s[t].children.indexOf(e);a.length?s[t].children[n]=a[0]:s[t].children.splice(n,1),s[t].branch?.right?.[1]===e&&(s[t].branch={...s[t].branch,right:s[t].branch?.right?.with(1,a[0])})})),a.forEach((t=>{const n=s[t].parents.indexOf(e);i.length?s[t].parents[n]=i[0]:s[t].parents.splice(n,1),s[t].branch?.left?.[1]===e&&(s[t].branch={...s[t].branch,left:s[t].branch?.left?.with(1,i[0])})}))),delete s[e],t(sn(s))})(o))):c(!0),H.event(G.REMOVE_STATION,{success:e})},ml:3,children:i("Confirm")})]})]})]})}function Rn(){const{t:e}=D(),t=J(),{selectedStation:r}=Z((e=>e.app)),{loop:i,style:a}=Z((e=>e.param)),[s,o]=B.useState(!1);return n.jsxs(nt,{children:[n.jsxs(l,{children:[n.jsx(h,{size:"sm",variant:"outline",onClick:()=>t(rt(r)),children:e("StationSidePanel.footer.current")}),a===Q.GZMTR&&i&&n.jsx(h,{size:"sm",variant:"outline",onClick:()=>t(it(r)),children:e("Set as midpoint")}),n.jsx(h,{size:"sm",variant:"outline",onClick:()=>o(!0),children:e("StationSidePanel.footer.remove")})]}),n.jsx(In,{isOpen:s,onClose:()=>o(!1)})]})}function Tn(e){const{colineInfo:t,routeOptions:r,onUpdateRoute:i,onUpdateColourInfo:a,onDelete:s}=e,{t:c}=D(),d=J(),{paletteAppClipOutput:h}=Z((e=>e.app)),[u,f]=B.useState(!1);B.useEffect((()=>{u&&h&&(a?.([...h,t.colors[0][4],t.colors[0][5]]),f(!1))}),[h?.toString()]);const p=[{type:"select",label:"Route",value:[t.from,t.to].join(","),options:r,onChange:e=>i?.(e)}],m=[{type:"custom",label:c("Colour"),component:n.jsx(mn,{theme:[t.colors[0][0],t.colors[0][1],t.colors[0][2],t.colors[0][3]],onClick:()=>{f(!0),d(oe(t.colors[0].slice(0,4)))}})},{type:"input",label:c("Chinese name"),value:t.colors[0][4],minW:120,onChange:e=>a?.([t.colors[0][0],t.colors[0][1],t.colors[0][2],t.colors[0][3],e,t.colors[0][5]])},{type:"input",label:c("English name"),value:t.colors[0][5],minW:120,onChange:e=>a?.([t.colors[0][0],t.colors[0][1],t.colors[0][2],t.colors[0][3],t.colors[0][4],e])}];return n.jsxs(re,{direction:"column",children:[n.jsx(Mt,{fields:p,minW:"full"}),n.jsxs(l,{spacing:.5,children:[n.jsx(Mt,{fields:m}),n.jsx(o,{size:"sm",variant:"ghost","aria-label":"Delete colour for route",onClick:()=>s?.(0),icon:n.jsx(ce,{})})]})]})}function Nn(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedBranch)),{theme:i,stn_list:a}=Z((e=>e.param)),o=t((l=r,(e,t)=>{const n=t().param.coline,r=t().helper.branches[l];return r?Object.entries(n).reduce(((e,t)=>r.includes(t[1].from)&&r.includes(t[1].to)?{...e,[t[0]]:t[1]}:{...e}),{}):{}}));var l;const c=t((e=>(t,n)=>{const r=n().helper.branches;if(0===e){const e=n().param.stn_list,t=En(r,e);return function(...e){return e.reduce(((e,t)=>e.map((e=>t.map((t=>e.concat([t]))))).reduce(((e,t)=>e.concat(t)),[])),[[]])}(t,t).filter((e=>e[0]!==e[1]))}{const t=r[e];if(t){const e=t.filter((e=>!["linestart","lineend"].includes(e)));return[[e[0],e.slice(-1)[0]]]}return[]}})(r)),u=c.reduce(((e,t)=>{return{...e,[t.join(",")]:(n=t,n.map((e=>a[e].localisedName.zh+"/"+a[e].localisedName.en)).join(" ~ "))};var n}),{}),f=e=>n=>{const[r,i]=n.split(",");console.log(`ColineSection.handleUpdateRoute():: Updating route, colineId=${e}, from=${r}, to=${i}`);try{t(((e,t,n,r=!0)=>(i,a)=>{const s=a().param.coline;if(e in s){i(On(t,n));const a={...s,[e]:{...s[e],from:t,to:n,display:r}};i(Xe(a))}})(e,r,i))}catch{t(at({status:"error",message:"Unable to draw this share track."}))}},p=(e,n)=>{t(((e,t)=>(n,r)=>{const i=r().param.coline;if(e in i&&i[e].colors.length>t){const r=i[e].colors.filter(((e,n)=>n!==t));if(0===r.length){const{[e]:t,...r}=i;n(Xe(r))}else{const t={...i,[e]:{...i[e],colors:r}};n(Xe(t))}}})(e,n))};return n.jsxs(d,{align:"flex-start",p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("BranchSidePanel.coline.title")}),Object.entries(o).map((([e,r])=>n.jsx(Tn,{colineInfo:r,routeOptions:u,onUpdateRoute:f(e),onUpdateColourInfo:n=>{return t((r=e,i=0,a=n,(e,t)=>{const n=t().param.coline;if(r in n&&n[r].colors.length>i){const t={...n,[r]:{...n[r],colors:n[r].colors.map(((e,t)=>t===i?[0,1,2,3,4,5].map((t=>void 0===a[t]?e[t]:a[t])):e))}};e(Xe(t))}}));var r,i,a},onDelete:t=>p(e,t)},e))),(0===r||0===Object.keys(o).length)&&n.jsx(h,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:n.jsx(ae,{}),onClick:()=>{console.log(`ColineSection.handleAddTrackSharing():: Adding track sharing to branch ${r} with default combination`,c[0]),t(((e,t,n,r=!0)=>(i,a)=>{const s=a().param.coline;i(On(e,t)),i(Xe({...s,[Je(4)]:{from:e,to:t,colors:n,display:r}}))})(c[0][0],c[0][1],[[i[0],"","#AAAAAA",ie.white,"",""]]))},children:e("BranchSidePanel.coline.add")})]})}function Pn(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),a=J(),s=Z((e=>e.app.selectedBranch)),{style:o,stn_list:l}=Z((e=>e.param)),c=Z((e=>e.helper.branches)),[d,u]=B.useState(s),[g,b]=B.useState("1"),[w,S]=B.useState("2"),[k,C]=B.useState("asc");B.useEffect((()=>{u(s)}),[s]);const j=[{type:"select",label:i("AutoNumModal.where"),value:d,options:{...c.reduce(((e,t,n)=>({...e,[n]:0===n?i("AutoNumModal.main"):o===Q.SHMetro&&zn(t,l)?i("AutoNumModal.external")+" "+n:i("AutoNumModal.branch")+" "+n})),{})},onChange:e=>u(e)},{type:"input",label:i("AutoNumModal.from"),value:g,validator:e=>!isNaN(Number(e)),onChange:b,debouncedDelay:0},{type:"input",label:i("AutoNumModal.maxLength"),validator:e=>!isNaN(Number(e)),value:w,onChange:S,debouncedDelay:0},{type:"select",label:i("AutoNumModal.sort"),value:k,options:{asc:i("AutoNumModal.asc"),desc:i("AutoNumModal.desc")},onChange:e=>C(e)}],A=!g||!w||isNaN(Number(g))||isNaN(Number(w));return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[n.jsx(_,{children:i("AutoNumModal.title")}),n.jsx(v,{}),n.jsx(y,{children:n.jsx(Mt,{fields:j})}),n.jsx(x,{children:n.jsx(h,{colorScheme:"primary",isDisabled:A,onClick:()=>{a(((e,t,n=2,r="asc")=>(i,a)=>{const s=a().param.stn_list,o=a().helper.branches,l=o[e]?.slice(1,-1);if(l){const e=l.reduce(((e,i,a)=>({...e,[i]:{...s[i],num:(t+a*("desc"===r?-1:1)).toString().padStart(n,"0")}})),s);i(sn(e))}})(d,Number(g),Number(w),k)),r(),H.event(G.AUTO_NUMBERING,{})},children:i("Confirm")})})]})]})}const Bn=e=>(t,n)=>{const r=n().helper.branches[e];return r.includes("linestart")||r.includes("lineend")?1:2},Dn=e=>(t,n)=>{const{branches:r}=n().helper,i=r[0],a=r[e];return i.slice(i.indexOf(a[0])+1,i.indexOf(a.slice(-1)[0]))},Mn=(e,t)=>(n,r)=>{const i=n(((e,t)=>n=>2===n(Bn(t))?(console.log("isStationValid2ConnectBranch():: failed as current branch has 2 connected ends"),!1):!!n(Dn(t)).includes(e)||(console.log("isStationValid2ConnectBranch():: failed as the target station is invalid"),!1))(e,t));if(!i)return!1;const{branches:a}=r().helper,s=r().param.stn_list,o=a[t];if("linestart"===o[0]){const t={...s,[o[1]]:{...s[o[1]],parents:[e]},[e]:{...s[e],children:s.linestart.children.map((t=>t===o[1]?t:s[e].children[0])),branch:{right:s.linestart.branch?.right}},linestart:{...s.linestart,children:s.linestart.children.filter((e=>e!==o[1])),branch:{}}};return n(sn(t)),!0}{const t=o.slice(-2)[0],r={...s,[t]:{...s[t],children:[e]},[e]:{...s[e],parents:s.lineend.parents.map((n=>n===t?n:s[e].parents[0])),branch:{left:s.lineend.branch?.left}},lineend:{...s.lineend,parents:s.lineend.parents.filter((e=>e!==t)),branch:{}}};return n(sn(r)),!0}},Ln=e=>(t,n)=>{const{branches:r}=n().helper,i=n().param.stn_list,a=r[0],s=r[e];if(2!==t(Bn(e)))return console.log("getPossibleDirection():: failed as there is no possible direction"),[];const o=a.indexOf(s[0]),l=a.slice(0,o),c=a.indexOf(s.slice(-1)[0]),d=a.slice(c+1),h=l.every((e=>i[e].children.length<=1&&i[e].parents.length<=1)),u=d.every((e=>i[e].children.length<=1&&i[e].parents.length<=1));return h?u?[X.left,X.right]:[X.left]:u?[X.right]:[]};function Fn(e){const{direction:t}=e,{t:r}=D(),a=J(),{branches:s}=Z((e=>e.helper)),o=Z((e=>e.app.selectedBranch)),{style:l,stn_list:c}=Z((e=>e.param)),[d,u]=B.useState(!1),[f,p]=B.useState(""),m=s[o].filter((e=>!["linestart","lineend"].includes(e))),g=t===X.left?m[0]:m.slice(-1)[0],b=c[g],_=a(Dn(o)),v=a(Bn(o)),y=a(Ln(o)),x=1===v&&!s[0].includes(g),w=y.includes(t),S=_.reduce(((e,t)=>({...e,[t]:c[t]?.localisedName.zh+"/"+c[t]?.localisedName.en})),{"":r("Please select...")});return n.jsxs(re,{direction:"column",children:[n.jsxs(i,{alignItems:"center",children:[n.jsx(se,{label:r("Station name"),flex:1,children:n.jsx(st,{defaultValue:b.localisedName.zh+"/"+b.localisedName.en,isDisabled:!0})}),d?n.jsx(h,{mx:1,size:"sm",variant:"outline",onClick:()=>u(!1),children:r("Cancel")}):x?n.jsx(h,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>u(!0),children:r("Connect to main line")}):n.jsx(h,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>{const e=a(((e,t)=>(n,r)=>{if(!n(Ln(t)).includes(e))return console.log("disconnectFromMainLine():: failed as the aim direction is not in the possible direction list"),!1;const{branches:i}=r().helper,a=r().param.stn_list,s=i[0],o=i[t];if(e===X.left){const e=o[0],t={...a,[o[1]]:{...a[o[1]],parents:["linestart"]},[e]:{...a[e],children:a[e].children.filter((e=>e!==o[1])),branch:{}},linestart:{...a.linestart,children:a[e].children.map((e=>e===o[1]?e:s[1])),branch:{right:a[e].branch?.right}}};return n(sn(t)),!0}{const e=o.slice(-1)[0],t=o.slice(-2)[0],r={...a,[t]:{...a[t],children:["lineend"]},[e]:{...a[e],parents:a[e].parents.filter((e=>e!==t)),branch:{}},lineend:{...a.lineend,parents:a[e].parents.map((e=>e===t?e:s.slice(-2)[0])),branch:{left:a[e].branch?.left}}};return n(sn(r)),!0}})(t,o));e||a(at({status:"error",message:r("Unable to disconnect from main line.")})),H.event(G.DISCONNECT_BRANCH,{style:l,success:e})},isDisabled:!w,children:r("Disconnect from main line")})]}),d&&n.jsxs(i,{alignItems:"center",children:[n.jsx(se,{label:r("Target station"),flex:1,children:n.jsx(ot,{defaultValue:f,options:S,disabledOptions:[""],onChange:({target:{value:e}})=>p(e)})}),n.jsx(h,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>{const e=a(Mn(f,o));e?u(!1):a(at({status:"error",message:r("Unable to connect to main line.")})),H.event(G.CONNECT_BRANCH,{style:l,success:e})},isDisabled:!f,children:r("Confirm")})]})]})}function Un(){const{t:e}=D(),t=J(),r=Z((e=>e.param.style)),o=Z((e=>e.app.selectedBranch)),[l,c]=B.useState(!1);return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("BranchSidePanel.action.title")}),n.jsxs(i,{wrap:"wrap",sx:{p:1,"&> *":{flexShrink:0,flexBasis:"100%","&:not(:first-of-type)":{marginTop:2}}},children:[0!==o&&r!==Q.SHMetro&&n.jsxs(n.Fragment,{children:[n.jsx(s,{as:"h6",size:"xs",children:e("Branch left end")}),n.jsx(Fn,{direction:X.left}),n.jsx(s,{as:"h6",size:"xs",children:e("Branch right end")}),n.jsx(Fn,{direction:X.right})]}),r===Q.GZMTR&&n.jsx(h,{size:"sm",variant:"outline",leftIcon:n.jsx(lt,{}),alignSelf:"flex-end",onClick:()=>c(!0),children:e("BranchSidePanel.action.autoNum")}),n.jsx(h,{size:"sm",variant:"outline",leftIcon:n.jsx(ct,{}),alignSelf:"flex-end",onClick:()=>{t(((e=!1)=>(t,n)=>{const{stn_list:r}=n().param,i=Object.keys(r).reduce(((t,n)=>({...t,[n]:(t=>{switch(t){case"linestart":return{...r.lineend,parents:[],children:e?r.lineend.parents:r.lineend.parents.toReversed(),branch:{right:r.lineend.branch?.left}};case"lineend":return{...r.linestart,parents:e?r.linestart.children:r.linestart.children.toReversed(),children:[],branch:{left:r.linestart.branch?.right}};default:{const n=r[t].children.map((e=>"linestart"===e?"lineend":"lineend"===e?"linestart":e)),i=r[t].parents.map((e=>"linestart"===e?"lineend":"lineend"===e?"linestart":e));return{...r[t],parents:e?n:n.reverse(),children:e?i:i.reverse(),branch:{left:r[t].branch?.right,right:r[t].branch?.left}}}}})(n)})),{});t(sn(i))})(r===Q.SHMetro)),H.event(G.REVERSE_STATIONS,{style:r})},children:r===Q.SHMetro?e("BranchSidePanel.action.flip"):e("BranchSidePanel.action.reverse")})]}),n.jsx(Pn,{isOpen:l,onClose:()=>c(!1)})]})}function Wn(){const e=Z((e=>e.app.selectedBranch)),{style:t,stn_list:r}=Z((e=>e.param)),i=Z((e=>e.helper.branches));return n.jsxs(fe,{children:[t===Q.SHMetro&&(0===e||zn(i[e],r))&&n.jsxs(n.Fragment,{children:[n.jsx(Nn,{}),n.jsx(u,{})]}),n.jsx(Un,{})]})}const Zn={position:"relative",h:460,maxH:"70%","& > button":{position:"absolute",right:1,top:1},"& iframe":{h:"100%",w:"100%"}};function Hn(e){const{isOpen:t,onClose:r,defaultTheme:i,onSelect:a}=e,[s]=B.useState(Je()),[o,l]=B.useState(!1),c="/rmg-palette/#/picker?"+new URLSearchParams({parentComponent:H.getAppName(),parentId:s}),d=B.useRef();return B.useEffect((()=>{const e=new BroadcastChannel("rmg-palette-bridge--"+s);return d.current=e,e.onmessage=e=>{const{event:t,data:n}=e.data;console.log("[rmg] Received event from Palette app clip:",t),"CLOSE"===t?r():"SELECT"===t?a(n):"LOADED"===t&&l(!0)},()=>{e.close()}}),[]),B.useEffect((()=>{i&&d.current?.postMessage({event:"OPEN",data:i})}),[o,i?.toString()]),n.jsxs(dt,{size:"md",isOpen:t,onClose:r,sx:Zn,children:[n.jsx(w,{onClick:r}),n.jsx("iframe",{src:c,loading:"eager"})]})}function Gn(){const{t:e}=D(),t=M(),{sidePanelMode:r,selectedStation:i,paletteAppClipInput:a}=Z((e=>e.app)),s=Z((e=>e.param.stn_list[i]?.localisedName)),o={STATION:{header:n.jsx(Qt,{text:s?.zh+"/"+s?.en||""}),body:n.jsx(yn,{}),footer:n.jsx(Rn,{})},STYLE:{header:e("StyleSidePanel.header"),body:n.jsx(jn,{})},BRANCH:{header:e("BranchSidePanel.header"),body:n.jsx(Wn,{})},CLOSE:{header:"Close"}};return n.jsxs(ht,{isOpen:r!==et.CLOSE,width:410,header:"Dummy header",children:[n.jsx(ut,{onClose:()=>{t(Qe(et.CLOSE))},children:o[r].header}),o[r]?.body,o[r]?.footer,n.jsx(Hn,{isOpen:!!a,onClose:()=>t(ft()),defaultTheme:a,onSelect:e=>t(pt(e))})]})}function Vn(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var $n,Yn={exports:{}},Kn=($n||($n=1,function(e){e.exports=function e(t,n,r){function i(s,o){if(!n[s]){if(!t[s]){if(!o&&Vn)return Vn(s);if(a)return a(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,(function(e){return i(t[s][1][e]||e)}),c,c.exports,e,t,n,r)}return n[s].exports}for(var a=Vn,s=0;s>2,o=(3&t)<<4|n>>4,l=1>6:64,c=2>4,n=(15&s)<<4|(o=a.indexOf(e.charAt(c++)))>>2,r=(3&o)<<6|(l=a.indexOf(e.charAt(c++))),u[d++]=t,64!==o&&(u[d++]=n),64!==l&&(u[d++]=r);return u}},{"./support":30,"./utils":32}],2:[function(e,t,n){var r=e("./external"),i=e("./stream/DataWorker"),a=e("./stream/Crc32Probe"),s=e("./stream/DataLengthProbe");function o(e,t,n,r,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new s("data_length")),t=this;return e.on("end",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),e},getCompressedWorker:function(){return new i(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,n){return e.pipe(new a).pipe(new s("uncompressedSize")).pipe(t.compressWorker(n)).pipe(new s("compressedSize")).withStreamInfo("compression",t)},t.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){var r=e("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},n.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){var r=e("./utils"),i=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==r.getTypeOf(e)?function(e,t,n,r){var a=i,s=r+n;e^=-1;for(var o=r;o>>8^a[255&(e^t[o])];return~e}(0|t,e,e.length,0):function(e,t,n,r){var a=i,s=r+n;e^=-1;for(var o=r;o>>8^a[255&(e^t.charCodeAt(o))];return~e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,n){n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){var r=null;r="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),a=e("./utils"),s=e("./stream/GenericWorker"),o=r?"uint8array":"array";function l(e,t){s.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}n.magic="\b\0",a.inherits(l,s),l.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(a.transformTo(o,e.data),!1)},l.prototype.flush=function(){s.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){s.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},n.compressWorker=function(e){return new l("Deflate",e)},n.uncompressWorker=function(){return new l("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){function r(e,t){var n,r="";for(n=0;n>>=8;return r}function i(e,t,n,i,s,d){var h,u,f=e.file,p=e.compression,m=d!==o.utf8encode,g=a.transformTo("string",d(f.name)),b=a.transformTo("string",o.utf8encode(f.name)),_=f.comment,v=a.transformTo("string",d(_)),y=a.transformTo("string",o.utf8encode(_)),x=b.length!==f.name.length,w=y.length!==_.length,S="",k="",C="",j=f.dir,A=f.date,z={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(z.crc32=e.crc32,z.compressedSize=e.compressedSize,z.uncompressedSize=e.uncompressedSize);var E=0;t&&(E|=8),m||!x&&!w||(E|=2048);var O=0,I=0;j&&(O|=16),"UNIX"===s?(I=798,O|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(f.unixPermissions,j)):(I=20,O|=function(e){return 63&(e||0)}(f.dosPermissions)),h=A.getUTCHours(),h<<=6,h|=A.getUTCMinutes(),h<<=5,h|=A.getUTCSeconds()/2,u=A.getUTCFullYear()-1980,u<<=4,u|=A.getUTCMonth()+1,u<<=5,u|=A.getUTCDate(),x&&(k=r(1,1)+r(l(g),4)+b,S+="up"+r(k.length,2)+k),w&&(C=r(1,1)+r(l(v),4)+y,S+="uc"+r(C.length,2)+C);var R="";return R+="\n\0",R+=r(E,2),R+=p.magic,R+=r(h,2),R+=r(u,2),R+=r(z.crc32,4),R+=r(z.compressedSize,4),R+=r(z.uncompressedSize,4),R+=r(g.length,2),R+=r(S.length,2),{fileRecord:c.LOCAL_FILE_HEADER+R+g+S,dirRecord:c.CENTRAL_FILE_HEADER+r(I,2)+R+r(v.length,2)+"\0\0\0\0"+r(O,4)+r(i,4)+g+S+v}}var a=e("../utils"),s=e("../stream/GenericWorker"),o=e("../utf8"),l=e("../crc32"),c=e("../signature");function d(e,t,n,r){s.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}a.inherits(d,s),d.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,s.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},d.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:function(e){return c.DATA_DESCRIPTOR+r(e.crc32,4)+r(e.compressedSize,4)+r(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,n){var r=e("./Uint8ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){var r=e("./DataReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){var r=e("./ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,n){var r=e("../utils"),i=e("../support"),a=e("./ArrayReader"),s=e("./StringReader"),o=e("./NodeBufferReader"),l=e("./Uint8ArrayReader");t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new l(r.transformTo("uint8array",e)):new a(r.transformTo("array",e)):new s(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,n){var r=e("./GenericWorker"),i=e("../utils");function a(e){r.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(a,r),a.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){var r=e("./GenericWorker"),i=e("../crc32");function a(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(a,r),a.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=a},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){var r=e("../utils"),i=e("./GenericWorker");function a(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(a,i),a.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){var r=e("../utils"),i=e("./GenericWorker");function a(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}r.inherits(a,i),a.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},a.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},a.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},a.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=a},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){function r(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n "+e:e}},t.exports=r},{}],29:[function(e,t,n){var r=e("../utils"),i=e("./ConvertWorker"),a=e("./GenericWorker"),s=e("../base64"),o=e("../support"),l=e("../external"),c=null;if(o.nodestream)try{c=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function d(e,t){return new l.Promise((function(n,i){var a=[],o=e._internalType,l=e._outputType,c=e._mimeType;e.on("data",(function(e,n){a.push(e),t&&t(n)})).on("error",(function(e){a=[],i(e)})).on("end",(function(){try{var e=function(e,t,n){switch(e){case"blob":return r.newBlob(r.transformTo("arraybuffer",t),n);case"base64":return s.encode(t);default:return r.transformTo(e,t)}}(l,function(e,t){var n,r=0,i=null,a=0;for(n=0;n>>6:(n<65536?t[s++]=224|n>>>12:(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63),t[s++]=128|n>>>6&63),t[s++]=128|63&n);return t}(e)},n.utf8decode=function(e){return i.nodebuffer?r.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,n,i,a,s=e.length,l=new Array(2*s);for(t=n=0;t>10&1023,l[n++]=56320|1023&i)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)}(e=r.transformTo(i.uint8array?"uint8array":"array",e))},r.inherits(c,s),c.prototype.processChunk=function(e){var t=r.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var a=t;(t=new Uint8Array(a.length+this.leftOver.length)).set(this.leftOver,0),t.set(a,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var s=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+o[e[n]]>t?n:t}(t),l=t;s!==t.length&&(i.uint8array?(l=t.subarray(0,s),this.leftOver=t.subarray(s,t.length)):(l=t.slice(0,s),this.leftOver=t.slice(s,t.length))),this.push({data:n.utf8decode(l),meta:e.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=c,r.inherits(d,s),d.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=d},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,n){var r=e("./support"),i=e("./base64"),a=e("./nodejsUtils"),s=e("./external");function o(e){return e}function l(e,t){for(var n=0;n>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=r(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,n,r,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(n<65536?t[s++]=224|n>>>12:(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63),t[s++]=128|n>>>6&63),t[s++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,i=t.length;n>10&1023,c[r++]=56320|1023&i)}return l(c,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+s[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){t.exports=function(e,t,n,r){for(var i=65535&e,a=e>>>16&65535,s=0;0!==n;){for(n-=s=2e3>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,i){var a=r,s=i+n;e^=-1;for(var o=i;o>>8^a[255&(e^t[o])];return~e}},{}],46:[function(e,t,n){var r,i=e("../utils/common"),a=e("./trees"),s=e("./adler32"),o=e("./crc32"),l=e("./messages"),c=0,d=4,h=0,u=-2,f=-1,p=4,m=2,g=8,b=9,_=286,v=30,y=19,x=2*_+1,w=15,S=3,k=258,C=k+S+1,j=42,A=113,z=1,E=2,O=3,I=4;function R(e,t){return e.msg=l[t],t}function T(e){return(e<<1)-(4e.avail_out&&(n=e.avail_out),0!==n&&(i.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function B(e,t){a._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,P(e.strm)}function D(e,t){e.pending_buf[e.pending++]=t}function M(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var n,r,i=e.max_chain_length,a=e.strstart,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-C?e.strstart-(e.w_size-C):0,c=e.window,d=e.w_mask,h=e.prev,u=e.strstart+k,f=c[a+s-1],p=c[a+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(c[(n=t)+s]===p&&c[n+s-1]===f&&c[n]===c[a]&&c[++n]===c[a+1]){a+=2,n++;do{}while(c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&al&&0!=--i);return s<=e.lookahead?s:e.lookahead}function F(e){var t,n,r,a,l,c,d,h,u,f,p=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=p+(p-C)){for(i.arraySet(e.window,e.window,p,p,0),e.match_start-=p,e.strstart-=p,e.block_start-=p,t=n=e.hash_size;r=e.head[--t],e.head[t]=p<=r?r-p:0,--n;);for(t=n=p;r=e.prev[--t],e.prev[t]=p<=r?r-p:0,--n;);a+=p}if(0===e.strm.avail_in)break;if(c=e.strm,d=e.window,h=e.strstart+e.lookahead,f=void 0,(u=a)<(f=c.avail_in)&&(f=u),n=0===f?0:(c.avail_in-=f,i.arraySet(d,c.input,c.next_in,f,h),1===c.state.wrap?c.adler=s(c.adler,d,f,h):2===c.state.wrap&&(c.adler=o(c.adler,d,f,h)),c.next_in+=f,c.total_in+=f,f),e.lookahead+=n,e.lookahead+e.insert>=S)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=S&&(e.ins_h=(e.ins_h<=S)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-S),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=S){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=S&&(e.ins_h=(e.ins_h<=S&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-S,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-S),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(F(e),0===e.lookahead&&t===c)return z;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,B(e,!1),0===e.strm.avail_out))return z;if(e.strstart-e.block_start>=e.w_size-C&&(B(e,!1),0===e.strm.avail_out))return z}return e.insert=0,t===d?(B(e,!0),0===e.strm.avail_out?O:I):(e.strstart>e.block_start&&(B(e,!1),e.strm.avail_out),z)})),new Z(4,4,8,4,U),new Z(4,5,16,8,U),new Z(4,6,32,32,U),new Z(4,4,16,16,W),new Z(8,16,32,32,W),new Z(8,16,128,128,W),new Z(8,32,128,256,W),new Z(32,128,258,1024,W),new Z(32,258,258,4096,W)],n.deflateInit=function(e,t){return $(e,t,g,15,8,0)},n.deflateInit2=$,n.deflateReset=V,n.deflateResetKeep=G,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?u:(e.state.gzhead=t,h):u},n.deflate=function(e,t){var n,i,s,l;if(!e||!e.state||5>8&255),D(i,i.gzhead.time>>16&255),D(i,i.gzhead.time>>24&255),D(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),D(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(D(i,255&i.gzhead.extra.length),D(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=o(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(D(i,0),D(i,0),D(i,0),D(i,0),D(i,0),D(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),D(i,3),i.status=A);else{var f=g+(i.w_bits-8<<4)<<8;f|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(f|=32),f+=31-f%31,i.status=A,M(i,f),0!==i.strstart&&(M(i,e.adler>>>16),M(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(s=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),P(e),s=i.pending,i.pending!==i.pending_buf_size));)D(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),P(e),s=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexs&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),0===l&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),P(e),s=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexs&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),0===l&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&P(e),i.pending+2<=i.pending_buf_size&&(D(i,255&e.adler),D(i,e.adler>>8&255),e.adler=0,i.status=A)):i.status=A),0!==i.pending){if(P(e),0===e.avail_out)return i.last_flush=-1,h}else if(0===e.avail_in&&T(t)<=T(n)&&t!==d)return R(e,-5);if(666===i.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==i.lookahead||t!==c&&666!==i.status){var p=2===i.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(F(e),0===e.lookahead)){if(t===c)return z;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(B(e,!1),0===e.strm.avail_out))return z}return e.insert=0,t===d?(B(e,!0),0===e.strm.avail_out?O:I):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?z:E}(i,t):3===i.strategy?function(e,t){for(var n,r,i,s,o=e.window;;){if(e.lookahead<=k){if(F(e),e.lookahead<=k&&t===c)return z;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=S&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=S?(n=a._tr_tally(e,1,e.match_length-S),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(B(e,!1),0===e.strm.avail_out))return z}return e.insert=0,t===d?(B(e,!0),0===e.strm.avail_out?O:I):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?z:E}(i,t):r[i.level].func(i,t);if(p!==O&&p!==I||(i.status=666),p===z||p===O)return 0===e.avail_out&&(i.last_flush=-1),h;if(p===E&&(1===t?a._tr_align(i):5!==t&&(a._tr_stored_block(i,0,0,!1),3===t&&(N(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),P(e),0===e.avail_out))return i.last_flush=-1,h}return t!==d?h:i.wrap<=0?1:(2===i.wrap?(D(i,255&e.adler),D(i,e.adler>>8&255),D(i,e.adler>>16&255),D(i,e.adler>>24&255),D(i,255&e.total_in),D(i,e.total_in>>8&255),D(i,e.total_in>>16&255),D(i,e.total_in>>24&255)):(M(i,e.adler>>>16),M(i,65535&e.adler)),P(e),0=n.w_size&&(0===o&&(N(n.head),n.strstart=0,n.block_start=0,n.insert=0),f=new i.Buf8(n.w_size),i.arraySet(f,t,p-n.w_size,n.w_size,0),t=f,p=n.w_size),l=e.avail_in,c=e.next_in,d=e.input,e.avail_in=p,e.next_in=0,e.input=t,F(n);n.lookahead>=S;){for(r=n.strstart,a=n.lookahead-(S-1);n.ins_h=(n.ins_h<>>=y=v>>>24,p-=y,0==(y=v>>>16&255))j[a++]=65535&v;else{if(!(16&y)){if(!(64&y)){v=m[(65535&v)+(f&(1<>>=y,p-=y),p<15&&(f+=C[r++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(!(64&y)){v=g[(65535&v)+(f&(1<>>=y,p-=y,(y=a-s)>3,f&=(1<<(p-=x<<3))-1,e.next_in=r,e.next_out=a,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function b(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=u,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(f),t.distcode=t.distdyn=new r.Buf32(p),t.sane=1,t.back=-1,d):h}function _(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,b(e)):h}function v(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(r.arraySet(s.window,t,n-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(a=s.wsize-s.wnext)&&(a=i),r.arraySet(s.window,t,n-i,a,s.wnext),(i-=a)?(r.arraySet(s.window,t,n-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=a,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,n.check=a(n.check,F,2,0),x=y=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&y)<<8)+(y>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&y)){e.msg="unknown compression method",n.mode=30;break}if(x-=4,P=8+(15&(y>>>=4)),0===n.wbits)n.wbits=P;else if(P>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<>8&1),512&n.flags&&(F[0]=255&y,F[1]=y>>>8&255,n.check=a(n.check,F,2,0)),x=y=0,n.mode=3;case 3:for(;x<32;){if(0===_)break e;_--,y+=f[g++]<>>8&255,F[2]=y>>>16&255,F[3]=y>>>24&255,n.check=a(n.check,F,4,0)),x=y=0,n.mode=4;case 4:for(;x<16;){if(0===_)break e;_--,y+=f[g++]<>8),512&n.flags&&(F[0]=255&y,F[1]=y>>>8&255,n.check=a(n.check,F,2,0)),x=y=0,n.mode=5;case 5:if(1024&n.flags){for(;x<16;){if(0===_)break e;_--,y+=f[g++]<>>8&255,n.check=a(n.check,F,2,0)),x=y=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(_<(j=n.length)&&(j=_),j&&(n.head&&(P=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,f,g,j,P)),512&n.flags&&(n.check=a(n.check,f,j,g)),_-=j,g+=j,n.length-=j),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===_)break e;for(j=0;P=f[g+j++],n.head&&P&&n.length<65536&&(n.head.name+=String.fromCharCode(P)),P&&j<_;);if(512&n.flags&&(n.check=a(n.check,f,j,g)),_-=j,g+=j,P)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===_)break e;for(j=0;P=f[g+j++],n.head&&P&&n.length<65536&&(n.head.comment+=String.fromCharCode(P)),P&&j<_;);if(512&n.flags&&(n.check=a(n.check,f,j,g)),_-=j,g+=j,P)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;x<16;){if(0===_)break e;_--,y+=f[g++]<>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;x<32;){if(0===_)break e;_--,y+=f[g++]<>>=7&x,x-=7&x,n.mode=27;break}for(;x<3;){if(0===_)break e;_--,y+=f[g++]<>>=1)){case 0:n.mode=14;break;case 1:if(k(n),n.mode=20,6!==t)break;y>>>=2,x-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}y>>>=2,x-=2;break;case 14:for(y>>>=7&x,x-=7&x;x<32;){if(0===_)break e;_--,y+=f[g++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&y,x=y=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(j=n.length){if(_>>=5,x-=5,n.ndist=1+(31&y),y>>>=5,x-=5,n.ncode=4+(15&y),y>>>=4,x-=4,286>>=3,x-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,D={bits:n.lenbits},B=o(0,n.lens,0,19,n.lencode,0,n.work,D),n.lenbits=D.bits,B){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,I=65535&L,!((E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>>=E,x-=E,n.lens[n.have++]=I;else{if(16===I){for(M=E+2;x>>=E,x-=E,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}P=n.lens[n.have-1],j=3+(3&y),y>>>=2,x-=2}else if(17===I){for(M=E+3;x>>=E)),y>>>=3,x-=3}else{for(M=E+7;x>>=E)),y>>>=7,x-=7}if(n.have+j>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;j--;)n.lens[n.have++]=P}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,D={bits:n.lenbits},B=o(l,n.lens,0,n.nlen,n.lencode,0,n.work,D),n.lenbits=D.bits,B){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,D={bits:n.distbits},B=o(c,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,D),n.distbits=D.bits,B){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(6<=_&&258<=v){e.next_out=b,e.avail_out=v,e.next_in=g,e.avail_in=_,n.hold=y,n.bits=x,s(e,S),b=e.next_out,p=e.output,v=e.avail_out,g=e.next_in,f=e.input,_=e.avail_in,y=n.hold,x=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;O=(L=n.lencode[y&(1<>>16&255,I=65535&L,!((E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>R)])>>>16&255,I=65535&L,!(R+(E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>>=R,x-=R,n.back+=R}if(y>>>=E,x-=E,n.back+=E,n.length=I,0===O){n.mode=26;break}if(32&O){n.back=-1,n.mode=12;break}if(64&O){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&O,n.mode=22;case 22:if(n.extra){for(M=n.extra;x>>=n.extra,x-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;O=(L=n.distcode[y&(1<>>16&255,I=65535&L,!((E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>R)])>>>16&255,I=65535&L,!(R+(E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>>=R,x-=R,n.back+=R}if(y>>>=E,x-=E,n.back+=E,64&O){e.msg="invalid distance code",n.mode=30;break}n.offset=I,n.extra=15&O,n.mode=24;case 24:if(n.extra){for(M=n.extra;x>>=n.extra,x-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===v)break e;if(j=S-v,n.offset>j){if((j=n.offset-j)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}A=j>n.wnext?(j-=n.wnext,n.wsize-j):n.wnext-j,j>n.length&&(j=n.length),z=n.window}else z=p,A=b-n.offset,j=n.length;for(v_?(y=D[M+h[k]],T[N+h[k]]):(y=96,0),f=1<>E)+(p-=f)]=v<<24|y<<16|x,0!==p;);for(f=1<>=1;if(0!==f?(R&=f-1,R+=f):R=0,k++,0==--P[S]){if(S===j)break;S=t[n+h[k]]}if(A>>7)]}function D(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function M(e,t,n){e.bi_valid>m-n?(e.bi_buf|=t<>m-e.bi_valid,e.bi_valid+=n-m):(e.bi_buf|=t<>>=1,n<<=1,0<--t;);return n>>>1}function U(e,t,n){var r,i,a=new Array(p+1),s=0;for(r=1;r<=p;r++)a[r]=s=s+n[r-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=F(a[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=n;n--)G(e,a,n);for(i=l;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,a,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,a[2*i]=a[2*n]+a[2*r],e.depth[i]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,a[2*n+1]=a[2*r+1]=i,e.heap[1]=i++,G(e,a,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,i,a,s,o,l=t.dyn_tree,c=t.max_code,d=t.stat_desc.static_tree,h=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,m=t.stat_desc.extra_base,g=t.stat_desc.max_length,b=0;for(a=0;a<=p;a++)e.bl_count[a]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n>=7;r>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return i;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return a;for(t=32;t>>3,(o=e.static_len+3+7>>>3)<=s&&(s=o)):s=o=n+5,n+4<=s&&-1!==t?X(e,t,n,r):4===e.strategy||o===s?(M(e,2+(r?1:0),3),V(e,C,j)):(M(e,4+(r?1:0),3),function(e,t,n,r){var i;for(M(e,t-257,5),M(e,n-1,5),M(e,r-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(z[n]+c+1)]++,e.dyn_dtree[2*B(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){M(e,2,3),L(e,b,C),function(e){16===e.bi_valid?(D(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,n){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,n){(function(e){!function(e,t){if(!e.setImmediate){var n,r,i,a,s=1,o={},l=!1,c=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,n="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick((function(){u(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(a="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",f,!1):e.attachEvent("onmessage",f),function(t){e.postMessage(a+t,"*")}):e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){u(e.data)},function(e){i.port2.postMessage(e)}):c&&"onreadystatechange"in c.createElement("script")?(r=c.documentElement,function(e){var t=c.createElement("script");t.onreadystatechange=function(){u(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):function(e){setTimeout(u,0,e)},d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r + + (c) 2009-2016 Stuart Knightley + Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + + JSZip uses the library pako released under the MIT license : + https://github.com/nodeca/pako/blob/main/LICENSE + */const qn=F(Kn),Xn=async(e,t,n,r,i)=>{const a=document.querySelector(`svg#${e}`);if(!a)throw new Error("Requested canvas SVG element not found");const s=Number(a.style.getPropertyValue("--rmg-svg-height").match(/\d+/g)?.[0]),o=a.cloneNode(!0);o.setAttribute("height",(s*(i||100)/100).toString()),o.style.setProperty("all","initial"),["share"].map((e=>[...([...document.querySelectorAll("link")].filter((t=>t.id==="css_"+e))[0]?.sheet).cssRules].map((e=>e.cssText)).join(" "))).forEach((e=>{const t=document.createElement("style");t.textContent=e,o.prepend(t)})),o.querySelector("rect#canvas-border")?.setAttribute("stroke",r?"black":"none"),o.querySelector("rect#canvas-bg")?.setAttribute("fill",n?"none":"white");try{const e=await(en[t].fonts?.())??[],n=(await Promise.allSettled(e.map(H.getFontCSS))).filter((e=>"fulfilled"===e.status)).map((e=>e.value)),r=document.createElement("style");r.textContent=n.join("\n"),o.prepend(r)}catch(l){console.warn("Failed to fonts. Fonts in the exported PNG will be missing.",l)}return o},Jn=async(e,t,n)=>{const r=e.viewBox.baseVal.width,i=e.viewBox.baseVal.height,a=document.querySelectorAll("canvas")[0];a.width=Number(r)*window.devicePixelRatio*t,a.height=Number(i)*window.devicePixelRatio*t,e.setAttribute("width",a.width.toString()),e.setAttribute("height",a.height.toString());const s=a.getContext("2d");return s.clearRect(0,0,a.width,a.height),e.querySelectorAll(".rmg-name__en.rmg-name__gzmtr--next2-dest").forEach((e=>e.setAttribute("font-size","8.5px"))),e.querySelectorAll("text, tspan").forEach((e=>{const t=window.getComputedStyle(e);e.setAttribute("font-family",t.fontFamily),e.setAttribute("fill",t.fill),e.setAttribute("dominant-baseline",t.dominantBaseline),e.setAttribute("text-anchor",t.textAnchor||"")})),new Promise(((t,r)=>{const i=new Image;i.onload=()=>{setTimeout((()=>{s.drawImage(i,0,0,a.width,a.height),a.toBlob((e=>{e?t(e):r("Canvas blob is null")}),"image/png")}),n?2e3:0)},i.onerror=r,i.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(e.outerHTML)))}))};function Qn(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),a=J(),[s,o]=B.useState(""),[c,d]=B.useState(!1),[u,g]=B.useState(!1),[b,w]=B.useState(100),[S,k]=B.useState("png"),C=Z((e=>e.app.canvasToShow)),{style:j,stn_list:A,current_stn_idx:z,line_name:E}=Z((e=>e.param));B.useEffect((()=>{""===s||C.includes(s)||o("")}),[C]);const O=pe[j].reduce(((e,t)=>C.includes(t)?{...e,[t]:i("CanvasType."+t)}:{...e}),{"":i("DownloadModal.pleaseSelect")}),I=[25,33,50,67,75,80,90,100,110,125,150,175,200,250,300,400,500].reduce(((e,t)=>({...e,[t]:`${t}%`})),{}),R={png:i("DownloadModal.png"),svg:i("DownloadModal.svg")},T=[{type:"select",label:i("DownloadModal.canvas"),value:s,options:O,disabledOptions:[""],onChange:e=>o(e),minW:"full"},{type:"switch",label:i("DownloadModal.transparent"),isChecked:c,onChange:d,oneLine:!0,minW:"full"},{type:"switch",label:i("DownloadModal.showBorder"),isChecked:u,onChange:g,oneLine:!0,minW:"full"},{type:"select",label:i("DownloadModal.scale"),value:b,options:I,onChange:e=>w(e)},{type:"select",label:i("DownloadModal.format"),value:S,options:R,onChange:e=>k(e)}],N=async e=>{a(mt(0));const t="current"===e?[z]:Object.keys(A).filter((e=>!["linestart","lineend"].includes(e))),n=new qn;for(const r in t){a(mt((Number(r)+1)/t.length*100));const e=t[r];a(rt(e)),await Lt(500);const i=await Xn(s,j,c,u,b);document.body.appendChild(i);const o=`rmg.${e}.${A[e].localisedName.en}`.replaceAll(/\\|\/|\||\*|:|\?|<|>|"/g,"_");if("png"===S){const e=Ft()&&"0"===r,a=await Jn(i,b/100,e);t.length>1?n.file(`${o}.png`,a):Ut(`${o}.png`,a)}else if("svg"===S){i.removeAttribute("height");const e="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(i.outerHTML)));t.length>1?n.file(`${o}.svg`,e.split("base64,")[1],{base64:!0}):Wt(o+".svg","image/svg+xml",i.outerHTML)}document.body.removeChild(i)}if(t.length>1){const e=await n.generateAsync({type:"blob"}),t=`rmg.${E[0]}.${E[1]}.zip`.replaceAll(" ","_");Ut(t,e)}H.event(G.DOWNLOAD_IMAGES,{canvasToDownload:s,style:j,option:e,format:S}),a(rt(z)),a(gt()),r()};return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[n.jsx(_,{children:i("DownloadModal.title")}),n.jsx(v,{}),n.jsx(y,{children:n.jsx(Mt,{fields:T})}),n.jsx(x,{children:n.jsxs(l,{children:[n.jsx(h,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>N("current"),isDisabled:!s,children:i("DownloadModal.downloadOne")}),j!==Q.GZMTR&&n.jsx(h,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>N("all"),isDisabled:!s,children:i("DownloadModal.downloadAll")})]})})]})]})}function er(){const{t:e}=D(),[t,r]=B.useState(!1),{paramConfig:i}=Z((e=>e.app)),a=Z((e=>e.param));return n.jsxs(S,{children:[n.jsx(k,{as:h,variant:"ghost",size:"sm",rightIcon:n.jsx(bt,{}),children:e("DownloadActions.downloads")}),n.jsxs(C,{children:[n.jsx(j,{onClick:()=>{const e=Zt(a);Wt(`RMG_${i?.id}.json`,"application/json",JSON.stringify(e)),H.event(G.DOWNLOAD_PARAM,{style:a.style})},children:e("DownloadActions.configFile")}),n.jsx(j,{onClick:()=>r(!0),children:e("DownloadActions.images")})]}),n.jsx(Qn,{isOpen:t,onClose:()=>r(!1)})]})}function tr(){const[e,t]=U();return[e,e=>{t(e);const n=0===Object.keys(e).length?"/":"/?"+new URLSearchParams(e);H.updateAppMetadata({hash:n})}]}function nr(){const{t:e}=D(),t=M(),[,r]=tr();return n.jsxs(l,{ml:"auto",w:"fit-content",children:[n.jsx(h,{variant:"ghost",size:"sm",leftIcon:n.jsx(_t,{}),onClick:()=>{t(Qe(et.CLOSE)),t(yt(void 0)),r({})},children:e("All projects")}),n.jsx(er,{}),n.jsx(h,{variant:"solid",size:"sm",colorScheme:"primary",leftIcon:n.jsx(vt,{}),onClick:()=>t(Qe(et.STYLE)),children:e("HeaderActions.editStyle")})]})}function rr(){const{t:e}=D(),t=J(),{canvasToShow:r,canvasScale:i}=Z((e=>e.app)),a=Z((e=>e.param.style)),s=Object.values(Q).reduce(((t,n)=>({...t,[n]:e("RmgStyle."+n)})),{}),o=pe[a].map((t=>({label:e("CanvasType."+t),value:t}))),l=[{type:"select",label:e("Style"),value:a,options:s,onChange:e=>(e=>{t(At(e))})(e)},{type:"custom",label:e("View"),component:n.jsx(xt,{displayValue:e("Select canvas"),selections:o,defaultValue:r,onChange:e=>t(wt(e))})},{type:"slider",label:e("Canvas scale"),value:i,min:.1,max:2,step:.01,onChange:e=>t(St(e)),leftIcon:n.jsx(kt,{}),rightIcon:n.jsx(Ct,{})}];return n.jsxs(jt,{children:[n.jsx(Mt,{fields:l,minW:160}),n.jsx(nr,{})]})}const ir=(e,t,n,r)=>(i,a)=>{const s=a().param.stn_list;let o=Je(6);for(;o in s;)o=Je(6);const l=zt(o);if("new"!==e){const e={...s,[t]:{...s[t],children:s[t].children.map((e=>e===n?o:e)),branch:{left:s[t].branch?.left,right:s[t].branch?.right?.[1]===n?s[t].branch?.right?.with(1,o):s[t].branch?.right}},[n]:{...s[n],parents:s[n].parents.map((e=>e===t?o:e)),branch:{left:s[n].branch?.left?.[1]===t?s[n].branch?.left?.with(1,o):s[n].branch?.left,right:s[n].branch?.right}},[o]:{...l,parents:[t],children:[n]}};return i(sn(e)),o}{if(!r)return!1;const e={...s,[t]:{...s[t],children:"upper"===r?[o,s[t].children[0]]:[s[t].children[0],o],branch:{left:s[t].branch?.left,right:[ue.through,o]}},[n]:{...s[n],parents:"upper"===r?[o,s[n].parents[0]]:[s[n].parents[0],o],branch:{left:[ue.through,o],right:s[n].branch?.right}},[o]:{...l,parents:[t],children:[n]}};return i(sn(e)),o}},ar=(e,t)=>(n,r)=>{const i=r().param.stn_list,a=r().helper.branches;return a[0].includes(e)&&a[0].includes(t)?a[0].indexOf(e)>=a[0].indexOf(t)?"Not in correct ordering":"linestart"===e&&"lineend"===t?"Should not be parallel to main line":"linestart"===e&&1===a[0].indexOf(t)?"Branch should not be open jaw from the first station":"lineend"===t&&a[0].indexOf(e)===a[0].length-2?"Branch should not be open jaw from the last station":i[e].children.length>1||i[t].parents.length>1?"Branch already exist":a.slice(1).some((n=>n.slice(1,-1).includes(e)||n.slice(1,-1).includes(t)))?"Cannot branch out from existing branch":a[0].slice(a[0].indexOf(e)+1,a[0].indexOf(t)).every((e=>1===i[e].parents.length&&1===i[e].children.length))?"":"One or more stations between both ends are branching out":"Branch should end at main line"};function sr(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),s=J(),o=Z((e=>e.app.selectedBranch)),{style:l,stn_list:c}=Z((e=>e.param)),d=Z((e=>e.helper.branches)),[u,w]=B.useState(o),[S,k]=B.useState("before"),[C,j]=B.useState(""),[A,z]=B.useState(!1);B.useEffect((()=>{w(o)}),[o]),B.useEffect((()=>{t||z(!1)}),[t]);const E=d[Number(u)]?.slice(1,-1)??[],O=[{type:"select",label:i("AddStationModal.where"),value:u,options:{...d.reduce(((e,t,n)=>({...e,[n]:0===n?i("AddStationModal.main"):l===Q.SHMetro&&zn(t,c)?i("AddStationModal.external")+" "+n:i("AddStationModal.branch")+" "+n})),{})},onChange:e=>R(e),minW:"full"},{type:"select",label:i("AddStationModal.preposition"),value:S,options:{before:i("AddStationModal.before"),after:i("AddStationModal.after")},onChange:e=>k(e)},{type:"select",label:i("AddStationModal.pivot"),value:C,options:(I=E,I.reduce(((e,t)=>({...e,[t]:c[t]?.localisedName.zh+"/"+c[t]?.localisedName.en})),{"":i("AddStationModal.pleaseSelect")})),disabledOptions:[""],onChange:e=>j(e)}];var I;const R=e=>{w(e),j("")};return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[A&&n.jsxs(g,{status:"error",variant:"solid",size:"xs",children:[n.jsx(b,{}),i("AddStationModal.error")]}),n.jsxs(a,{position:"relative",children:[n.jsx(_,{children:i("AddStationModal.title")}),n.jsx(v,{})]}),n.jsx(y,{children:n.jsx(Mt,{fields:O})}),n.jsx(x,{children:n.jsx(h,{colorScheme:"primary",onClick:()=>{const e=s(((e,t,n)=>(r,i)=>{const a=i().helper.branches[e];if(a?.length){if("before"===t){const t=a[a.indexOf(n)-1];return r(ir(e.toString(),t,n))}{const t=a[a.indexOf(n)+1];return r(ir(e.toString(),n,t))}}return!1})(u,S,C));e?(r(),s(tt(e)),s(Qe(et.STATION))):(console.log("false here"),z(!0)),H.event(G.ADD_STATION,{style:l,branchIndex:u,success:e})},isDisabled:!C,children:i("Confirm")})})]})]})}function or(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),a=J(),[s,o]=B.useState("new"),[l,c]=B.useState(""),[d,u]=B.useState(""),[g,b]=B.useState("upper"),[w,S]=B.useState(""),[k,C]=B.useState(""),{style:j,stn_list:A}=Z((e=>e.param));B.useEffect((()=>{t||(o("new"),c(""),u(""))}),[t]);const z=(E=a(((e,t)=>{const n=t().param.stn_list;return t().helper.branches[0].filter((e=>{const t=n[e].parents.length+n[e].children.length===4,r=0===An(e,n);return!t&&r}))})),E.reduce(((e,t)=>({...e,[t]:"linestart"===t?`(${i("LEFT END")})`:"lineend"===t?`(${i("RIGHT END")})`:A[t]?.localisedName.zh+"/"+A[t]?.localisedName.en})),{"":i("Please select...")}));var E;const O=[{type:"select",label:i("NewBranchModal.where"),value:s,options:{new:i("NewBranchModal.new"),ext:i("NewBranchModal.ext")},disabledOptions:j===Q.SHMetro?[]:["ext"],onChange:e=>I(e),minW:"full"},{type:"select",label:i("NewBranchModal.from"),value:l,options:z,disabledOptions:[""],onChange:e=>R(e),isInvalid:Boolean(w)},{type:"select",label:i("NewBranchModal.to"),value:d,options:z,disabledOptions:[""],onChange:e=>T(e),isInvalid:Boolean(k)},{type:"select",label:i("NewBranchModal.position"),value:g,options:{upper:i("NewBranchModal.upper"),lower:i("NewBranchModal.lower")},onChange:e=>b(e),minW:"full",hidden:"new"!==s||j===Q.SHMetro}],I=e=>{o(e),c(""),u(""),S(""),C("")},R=e=>{c(e),S(""),e&&d&&C(a(ar(e,d)))},T=e=>{u(e),C(""),l&&e&&S(a(ar(l,e)))},N=Boolean(!l||!d||w||k);return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[n.jsx(_,{children:i("NewBranchModal.title")}),n.jsx(v,{}),n.jsx(y,{children:n.jsx(Mt,{fields:O})}),n.jsx(x,{children:n.jsx(h,{colorScheme:"primary",title:N?w||k:i("Confirm"),onClick:()=>{let e;e="ext"===s?a(ir("new",l,d,"lower")):j===Q.SHMetro?a(ir("new",l,d,"upper")):a(ir("new",l,d,g)),e&&(r(),H.event(G.ADD_BRANCH,{style:j,where:s}))},isDisabled:N,children:i("Confirm")})})]})]})}const lr=B.lazy((()=>W((()=>t.import("./station-ag-grid-legacy-Ck2FW_Yo.js")),void 0)));function cr(){const{t:e}=D(),t=J(),[r,i]=B.useState(!1),[s,c]=B.useState(!1),d=Z((e=>e.app.selectedBranch)),{style:u,stn_list:f,loop:p}=Z((e=>e.param)),m=Z((e=>e.helper.branches));return n.jsxs(a,{flex:1,overflow:"hidden",children:[n.jsxs(A,{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",index:d,onChange:e=>t(Et(e)),children:[n.jsxs(z,{children:[m.map(((t,r)=>0===r?n.jsx(E,{children:e(p?"Loop line":"GridTabs.main")},r):u===Q.SHMetro&&zn(t,f)?n.jsx(E,{children:e("GridTabs.external")+" "+r},r):n.jsx(E,{children:e("GridTabs.branch")+" "+r},r))),n.jsx(o,{size:"sm",variant:"ghost",alignSelf:"center","aria-label":"New branch",onClick:()=>c(!0),icon:n.jsx(ae,{}),isDisabled:p}),n.jsxs(l,{marginLeft:"auto",marginRight:1,children:[n.jsx(h,{variant:"outline",size:"xs",leftIcon:n.jsx(ae,{}),onClick:()=>i(!0),children:e("GridTabs.addStation")}),n.jsx(h,{size:"xs",colorScheme:"primary",onClick:()=>{t(Qe(et.BRANCH))},children:e("GridTabs.editLine")})]})]}),n.jsx(O,{flex:1,overflowY:"auto",children:m.map(((e,t)=>n.jsx(I,{padding:0,h:"100%",position:"relative",children:n.jsx($,{suspenseFallback:n.jsx(V,{isIndeterminate:!0}),children:n.jsx(lr,{branchIndex:t})})},t)))})]}),n.jsx(sr,{isOpen:r,onClose:()=>i(!1)}),n.jsx(or,{isOpen:s,onClose:()=>c(!1)})]})}function dr(){const e=J(),t=Z((e=>e.app.globalAlerts));return n.jsx(n.Fragment,{children:Object.entries(t).map((([t,{message:r,url:i,linkedApp:a}])=>n.jsxs(g,{status:t,variant:"solid",size:"xs",pl:3,pr:1,py:0,children:[n.jsx(b,{}),a?n.jsx(R,{onClick:()=>(e=>{H.isStandaloneWindow()?window.open(`/${e}`,"_blank"):H.openApp({appId:e})})(a),children:r}):i?n.jsx(R,{href:i,target:"_blank",children:r}):r,n.jsx(w,{ml:"auto",onClick:()=>e(Ot(t))})]},t)))})}const hr=e=>{document.title=e,setTimeout((()=>{H.updateAppMetadata({title:e})}),200)};function ur(){const{t:e}=D(),[t]=tr(),r=t.get("project"),s=Z((e=>e.app.isLoading)),[o,l]=B.useState(!1);return B.useEffect((()=>{if(H.isStandaloneWindow()&&!H.storage.get(It.DO_NOT_SHOW_RMT_MSG)&&l(!0),r){const t=Ht(r);hr(t?.name??e("Project")+" "+r)}}),[]),n.jsxs(Rt,{children:[s&&n.jsx(V,{isIndeterminate:s<0,value:s>=0?s:void 0}),n.jsx(rr,{}),o&&n.jsxs(g,{status:"info",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[n.jsx(b,{}),n.jsxs(c,{sx:{"& a, button":{fontWeight:"bold",textDecoration:"underline"}},children:[e("Try out")," ",n.jsx(R,{href:"/?app=rmg",isExternal:!0,children:e("Rail Map Toolkit")})," ",e("now and enjoy an even better rail map design experience!")," ",n.jsx(R,{as:"button",ml:"auto",onClick:()=>l(!1),children:e("Close")})," | ",n.jsx(R,{as:"button",onClick:()=>{l(!1),H.storage.set(It.DO_NOT_SHOW_RMT_MSG,"true")},children:e("Don't show me again")})]})]}),n.jsx(dr,{}),n.jsxs(i,{flex:1,overflow:"hidden",position:"relative",children:[n.jsxs(i,{as:"section",direction:"column",flex:1,ml:1,mr:1,overflow:"hidden",children:[n.jsx(a,{children:n.jsx(nn,{})}),n.jsx(cr,{})]}),n.jsx(Gn,{})]}),n.jsx("canvas",{style:{display:"none"}})]})}const fr={h:800,maxH:"70%","& iframe":{h:"100%",w:"100%"}};function pr(e){const{isOpen:t,onClose:r,onImport:i}=e,[a]=B.useState(Je()),s="/rmg-templates/#/import?"+new URLSearchParams({parentComponent:H.getAppName(),parentId:a});return B.useEffect((()=>{const e=new BroadcastChannel("rmg-templates-bridge--"+a);return e.onmessage=e=>{const{event:t,meta:n,data:a}=e.data;console.log("[rmg] Received event from RMG Templates app clip:",t),"CLOSE"===t?r():"IMPORT"===t&&i(a,n.name)},()=>{e.close()}}),[]),n.jsx(dt,{size:"xl",isOpen:t,onClose:r,sx:fr,children:n.jsx("iframe",{src:s,loading:"eager"})})}const mr={flexWrap:"wrap",flex:"1 1 0%",minW:120,"& button":{w:"100%",m:1}};function gr(e){const{selectedParam:t,disableNew:r,onError:a}=e,{t:s}=D(),[,o]=tr(),[l,c]=B.useState(!1),d=B.useRef(null),u=B.useRef(null);return B.useEffect((()=>{t&&u.current?.focus()}),[t]),n.jsxs(i,{sx:mr,children:[n.jsx(h,{leftIcon:n.jsx(ae,{}),onClick:()=>{const e=Bt(Q.MTR,H.getLanguage()),t=Gt(JSON.stringify(e));o({project:t}),H.event(G.NEW_PARAM,{})},isDisabled:r,children:s("Blank project")}),n.jsx(h,{leftIcon:n.jsx(Tt,{}),onClick:()=>c(!0),isDisabled:r,children:s("Open template")}),n.jsx(h,{leftIcon:n.jsx(Nt,{}),onClick:()=>d.current?.click(),isDisabled:r,children:s("Import project")}),n.jsx(h,{ref:u,colorScheme:"primary",leftIcon:n.jsx(Pt,{}),onClick:()=>{t&&(o({project:t}),H.event(G.OPEN_PARAM,{}))},isDisabled:void 0===t,children:s("Open selected")}),n.jsx("input",{ref:d,type:"file",accept:".json",hidden:!0,onChange:async e=>{const t=e.target.files?.[0];Dt.info("handleImportProject(), received file",t);try{if(t)if("application/json"!==t.type)a(s("OpenActions.invalidType"));else{const e=await Vt(t),n=Gt(e);o({project:n}),H.event(G.UPLOAD_PARAM,{})}else a(s("OpenActions.unknownError"))}catch(n){a(s("OpenActions.unknownError")),Dt.error("handleImportProject(), Unknown error occurred while parsing the uploaded file",n)}e.target.value=""},"data-testid":"file-upload"}),n.jsx(pr,{isOpen:l,onClose:()=>c(!1),onImport:(e,t)=>{const n=Gt(JSON.stringify(e),t);o({project:n})}})]})}const br={flexDirection:"column",p:2,h3:{m:2},"& > div":{m:2,flexWrap:"wrap",flexDirection:{base:"column",md:"row"}}};function _r(e){const{downloading:t}=e,{t:r}=D(),[a]=tr(),o=a.get("project"),[l,c]=B.useState([]),[d,h]=B.useState(),u=B.useRef(null),f=T();return B.useEffect((()=>{hr(r("Manage projects"))}),[]),B.useEffect((()=>{c($t())}),[t]),N({ref:u,handler:()=>h(void 0)}),n.jsxs(Rt,{justifyContent:"center",children:[o&&n.jsx(V,{isIndeterminate:!0}),n.jsx(P,{children:n.jsxs(re,{sx:br,children:[n.jsx(s,{as:"h3",size:"lg",children:r("Saved projects")}),n.jsxs(i,{ref:u,children:[n.jsx(Yt,{paramRegistry:l,downloading:t,selectedParam:d,onParamSelect:h,onParamRemove:e=>{H.storage.remove(It.PARAM_BY_ID+e),H.storage.remove(It.PARAM_CONFIG_BY_ID+e),h(void 0),c($t()),H.event(G.REMOVE_PARAM,{})},onParamUpdate:e=>{const{id:t,name:n,lastModified:r}=e;t&&(H.storage.set(It.PARAM_CONFIG_BY_ID+t,JSON.stringify({name:n,lastModified:r})),h(void 0),c($t()),H.event(G.UPDATE_PARAM_CONFIG,{}))}}),n.jsx(gr,{selectedParam:d,disableNew:l.length>=10,onError:e=>{f({description:e,status:"error",duration:1e4,isClosable:!0})}})]})]})})]})}const vr=Object.freeze(Object.defineProperty({__proto__:null,default:function(){const{t:e}=D(),t=J(),{paramConfig:r}=Z((e=>e.app)),[i,a]=tr(),s=i.get("project"),o=i.get("external"),[l,c]=B.useState(!1),[d,h]=B.useState(),u=T();return B.useEffect((()=>{if(Dt.info(`searchParam: project=${s}, external=${o}`),s&&o)Dt.warn(", Both param ID and external URL are provided. External URL will be ignored."),a({project:s});else if(s)u.closeAll(),s===r?.id?(Dt.info(", Store param ID matches URL param ID. Rendering app view..."),c(!0)):(Dt.info(`, Loading app view for param (ID=${s})...`),t((e=>async t=>{try{const{config:r,param:i}=Kt(e);if(!i)return!1;const a={id:e,...r??{}},s=qt(i);try{const e=await Xt(s);t(yt(a)),t(rn(e))}catch(n){console.warn("Unable to update themes",n),t(yt(a)),t(rn(s))}return!0}catch(r){return console.warn("Failed to parse param.",r),!1}})(s)).then((t=>{t?c(!0):(Dt.info(`, Failed to read param (ID=${s}). Rendering param selector view...`),u({description:e("Project selected is invalid or corrupted."),status:"error",duration:1e4,isClosable:!0}),a({}))})));else if(o){Dt.info(", External project URl is provided. Downloading project...");const t=decodeURIComponent(o);h(t),Jt(t).then((n=>{n?a({project:n}):(Dt.info(`, Failed to download param from ${t}. Rendering param selector view...`),u({description:e("External URL cannot be opened."),status:"error",duration:1e4,isClosable:!0}),a({})),h(void 0)}))}else Dt.info(", No URL param ID or external URL provided. Rendering param selector view..."),c(!1)}),[s,o]),l?n.jsx(ur,{}):n.jsx(_r,{downloading:d})}},Symbol.toStringTag,{value:"Module"}));e("a",vr)}}})); diff --git a/assets/app-router-legacy-ilk_ckFL.js b/assets/app-router-legacy-ilk_ckFL.js deleted file mode 100644 index 3a6eae88..00000000 --- a/assets/app-router-legacy-ilk_ckFL.js +++ /dev/null @@ -1,12 +0,0 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-CCR6yT8f.js","./param-selector-legacy-C3ApLQi1.js"],(function(e,t){"use strict";var n,r,i,a,s,o,l,c,d,h,u,f,p,m,g,b,_,v,y,x,w,S,k,C,j,A,z,E,O,I,R,T,P,N,B,D,M,L,F,U,W,Z,H,G,V,$,Y,K,q,X,J,Q,ee,te,ne,re,ie,ae,se,oe,le,ce,de,he,ue,fe,pe,me,ge,be,_e,ve,ye,xe,we,Se,ke,Ce,je,Ae,ze,Ee,Oe,Ie,Re,Te,Pe,Ne,Be,De,Me,Le,Fe,Ue,We,Ze,He,Ge,Ve,$e,Ye,Ke,qe,Xe,Je,Qe,et,tt,nt,rt,it,at,st,ot,lt,ct,dt,ht,ut,ft,pt,mt,gt,bt,_t,vt,yt,xt,wt,St,kt,Ct,jt,At,zt,Et,Ot,It,Rt,Tt,Pt,Nt,Bt,Dt,Mt,Lt,Ft,Ut,Wt,Zt,Ht,Gt,Vt,$t,Yt,Kt,qt,Xt;return{setters:[e=>{n=e.j,r=e.ap,i=e.h,a=e.B,s=e.al,o=e.a2,l=e.ao,c=e.N,d=e.aq,h=e.t,u=e.D,f=e.aj,p=e.M,m=e.ak,g=e.U,b=e.V,_=e.J,v=e.K,y=e.L,x=e.O,w=e.ab,S=e.ar,k=e.as,C=e.at,j=e.au,A=e.av,z=e.aw,E=e.ax,O=e.ay,I=e.az,R=e.R,T=e.aA,P=e.a,N=e.aB},e=>{B=e.a,D=e.u,M=e.o,L=e.c,F=e.g,U=e.s},e=>{W=e._,Z=e.u,H=e.r,G=e.E,V=e.R,$=e.a,Y=e.s,K=e.b,q=e.c,X=e.D,J=e.d,Q=e.e,ee=e.f,te=e.M,ne=e.F,re=e.g,ie=e.h,ae=e.i,se=e.j,oe=e.o,le=e.k,ce=e.l,de=e.S,he=e.m,ue=e.B,fe=e.n,pe=e.p,me=e.q,ge=e.t,be=e.v,_e=e.w,ve=e.x,ye=e.y,xe=e.z,we=e.A,Se=e.C,ke=e.G,Ce=e.H,je=e.I,Ae=e.J,ze=e.P,Ee=e.K,Oe=e.L,Ie=e.N,Re=e.O,Te=e.Q,Pe=e.T,Ne=e.U,Be=e.V,De=e.W,Me=e.X,Le=e.Y,Fe=e.Z,Ue=e.$,We=e.a0,Ze=e.a1,He=e.a2,Ge=e.a3,Ve=e.a4,$e=e.a5,Ye=e.a6,Ke=e.a7,qe=e.a8,Xe=e.a9,Je=e.aa,Qe=e.ab,et=e.ac,tt=e.ad,nt=e.ae,rt=e.af,it=e.ag,at=e.ah,st=e.ai,ot=e.aj,lt=e.ak,ct=e.al,dt=e.am,ht=e.an,ut=e.ao,ft=e.ap,pt=e.aq,mt=e.ar,gt=e.as,bt=e.at,_t=e.au,vt=e.av,yt=e.aw,xt=e.ax,wt=e.ay,St=e.az,kt=e.aA,Ct=e.aB,jt=e.aC,At=e.aD,zt=e.aE,Et=e.aF,Ot=e.aG,It=e.aH,Rt=e.aI,Tt=e.aJ,Pt=e.aK,Nt=e.aL,Bt=e.aM},e=>{Dt=e.R,Mt=e.w,Lt=e.i,Ft=e.d,Ut=e.a,Wt=e.s,Zt=e.g,Ht=e.b,Gt=e.r,Vt=e.c,$t=e.P,Yt=e.e,Kt=e.u,qt=e.f,Xt=e.h}],execute:function(){var Jt=e("R",(function(e){var t=e.text,i=e.delimiter;return n.jsx("span",{children:t.split(i||"\\").map((function(e,t){return t?[n.jsx(r,{children:"⏎"},t),e]:e}))})}));const Qt={mtr:{components:()=>W((()=>t.import("./index-legacy-BAb-72zM.js")),void 0),fonts:()=>W((()=>t.import("./index-legacy-BAb-72zM.js")),void 0).then((e=>e.mtrFonts))},gzmtr:{components:()=>W((()=>t.import("./index-legacy-BrmVktaQ.js")),void 0)},shmetro:{components:()=>W((()=>t.import("./index-legacy-DXjvm-_x.js")),void 0)},shsubrwy:{components:()=>W((()=>t.import("./index-legacy-DeqkMXhX.js")),void 0)}},en={position:"relative",flexDirection:"row",overflowX:"auto","&::before, &::after":{content:'""',margin:"auto"},"& > svg":{flex:"0 0 auto",border:"1px solid black"}};function tn(){const{canvasToShow:e,canvasScale:t}=Z((e=>e.app)),{svg_height:r,style:a}=Z((e=>e.param)),s=function(e){const[t,n]=B.useState({});return B.useEffect((()=>(Qt[e].components().then((e=>{n(e.default)})).catch((t=>{console.error(`Failed to load canvas for style ${e}`,t),n({})})),()=>{n({})})),[e]),t}(a);B.useEffect((()=>{const e=new AbortController;return(async(e,t)=>{const n=await(Qt[e].fonts?.())??[];await Promise.all(n.map((e=>H.loadFont(e)))),t.aborted||document.querySelector("#css_share")?.setAttribute("href",`/rmg/styles/share_${e}.css`)})(a,e.signal).then(),H.event(G.STYLE_CHANGE,{style:a}),()=>{e.abort()}}),[a]);const o=Object.keys(s).filter((t=>e.includes(t))),l=r*t;return n.jsx(i,{minH:l,sx:en,children:0===Object.keys(s).length?n.jsx(V,{isIndeterminate:!0}):o.map((e=>n.jsx($,{sx:{minWidth:750,height:l},children:s[e]},e+a)))})}const nn=e=>t=>{t(Y(e)),t(K(e.stn_list))},rn=(e,t)=>(n,r)=>{const{stn_list:i}=r().param,a={...i,[e]:t};n(an(a))},an=e=>t=>{t(q(e)),t(K(e))},sn=(e,t,n)=>(r,i)=>{const a=i().param.stn_list[e];r(rn(e,{...a,localisedName:{...a.localisedName,[t]:n}}))},on=(e,t,n)=>(r,i)=>{const a=i().param.stn_list[e];r(rn(e,{...a,localisedSecondaryName:{...a.localisedSecondaryName,[t]:n}}))},ln=(e,t,n)=>(r,i)=>{const a=i().param.stn_list[e],s=a.transfer.groups.map((e=>({...e})));if(s.length>t)s[t]={...s[t],lines:(s[t].lines??[]).concat(n)};else{for(let e=s.length;e(r,i)=>{const a=i().param.stn_list[e],s=a.transfer.groups.map((e=>({...e})));s.length>t&&(s[t]={...s[t],name:n},r(rn(e,{...a,transfer:{...a.transfer,groups:[s[0],...s.slice(1)??[]]}})))},dn=e=>(t,n)=>{const{stn_list:r}=n().param;t(an({...r,[e[0].stnId]:{...r[e[0].stnId],branch:{...r[e[0].stnId].branch,[e[0].direction]:r[e[0].stnId].branch?.[e[0].direction]?.with(1,e[0].first)}},[e[1].stnId]:{...r[e[1].stnId],branch:{...r[e[1].stnId].branch,[e[1].direction]:r[e[1].stnId].branch?.[e[1].direction]?.with(1,e[1].first)}}}))},hn=(e,t)=>(n,r)=>{const{stn_list:i}=r().param;n(an({...i,[e]:{...i[e],parents:i[e].parents.slice().reverse()},[t]:{...i[t],children:i[t].children.slice().reverse()}}))};function un(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation));console.log("InfoSection:: Rendering for",r);const i=Z((e=>e.param.style)),{num:o,localisedName:l,localisedSecondaryName:c}=Z((e=>e.param.stn_list[r])),d=[{type:"input",label:e("StationSidePanel.info.num"),value:o,placeholder:"01",onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(rn(e,{...i,num:t}))})(r,e)),hidden:![Q.GZMTR].includes(i)},{type:"input",label:e("Chinese name"),value:l.zh??"",onChange:e=>t(sn(r,"zh",e))},{type:"input",label:e("English name"),value:l.en??"",onChange:e=>t(sn(r,"en",e))},{type:"custom",label:e("Secondary names"),component:n.jsx(ee,{selections:[{label:e("Yes"),value:!0},{label:e("No"),value:!1}],defaultValue:!!c,onChange:e=>t(((e,t)=>(n,r)=>{const{localisedSecondaryName:i,...a}=r().param.stn_list[e];n(rn(e,t?{...a,localisedSecondaryName:{}}:a))})(r,e))}),hidden:![Q.GZMTR].includes(i)},{type:"input",label:e("StationSidePanel.info.zhSecondary"),value:c?.zh??"",placeholder:"1号航站楼",onChange:e=>t(on(r,"zh",e)),hidden:!c||![Q.GZMTR].includes(i)},{type:"input",label:e("StationSidePanel.info.enSecondary"),value:c?.en??"",placeholder:"Terminal 1",onChange:e=>t(on(r,"en",e)),hidden:!c||![Q.GZMTR].includes(i)}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StationSidePanel.info.title")}),n.jsx(Dt,{fields:d,minW:130})]})}class fn{static hexToRgb(e){return[parseInt(e.slice(1,3),16),parseInt(e.slice(3,5),16),parseInt(e.slice(5,7),16)]}static fade(e,t){return`rgba(${[...this.hexToRgb(e),t].join(",")})`}static euclideanDistance(e,t){return this.hexToRgb(e).reduce(((e,n,r)=>e+Math.pow(n-this.hexToRgb(t)[r],2)),0)}}function pn(e){const{theme:t,onClick:r}=e,{t:i}=D();return n.jsx(o,{size:"xs","aria-label":i("Colour"),mt:"0.45px",color:t?.[3],bg:t?.[2],_hover:{bg:fn.fade(t?.[2]??"#aaaaaa",.7)},icon:n.jsx(te,{}),onClick:r})}function mn(e){const{interchangeList:t,onAdd:r,onDelete:i,onUpdate:s}=e,{t:d}=D(),h=J(),[u,f]=B.useState(),{paletteAppClipOutput:p}=Z((e=>e.app)),{style:m,theme:g,stn_list:b}=Z((e=>e.param));B.useEffect((()=>{void 0!==u&&p&&(s?.(u,{...t[u],theme:p}),f(void 0))}),[p?.toString()]);const _=Object.values(b).reduce(((e,t)=>{const[n,r]=e;return[[...new Set(n.concat(t.transfer.groups.map((e=>e.lines?.map((e=>e.name[0]))??[])).flat()))],[...new Set(r.concat(t.transfer.groups.map((e=>e.lines?.map((e=>e.name[1]))??[])).flat()))]]}),[[],[]]),v=Object.fromEntries(Object.entries(ne).filter((([e])=>!["railway"].includes(e))).map((([e,t])=>[e,d(t)]))),y=t.map(((e,t)=>[{type:"input",label:d("Chinese name"),value:e.name[0],onChange:n=>s?.(t,{...e,name:[n,e.name[1]]}),optionList:_[0]},{type:"input",label:d("English name"),value:e.name[1],onChange:n=>s?.(t,{...e,name:[e.name[0],n]}),optionList:_[1]},{type:"select",label:d("Line icon"),value:e.facility,options:v,onChange:n=>s?.(t,{...e,facility:n}),hidden:![Q.MTR].includes(m)}]));return n.jsxs(re,{direction:"column",children:[0===t.length&&n.jsxs(l,{spacing:.5,"data-testid":"interchange-card-stack",children:[n.jsx(c,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:d("StationSidePanel.interchange.noInterchanges")}),n.jsx(o,{size:"sm",variant:"ghost","aria-label":d("StationSidePanel.interchange.add"),onClick:()=>r?.({theme:[g[0],"","#aaaaaa",ie.white],name:["",""]}),icon:n.jsx(ae,{})})]}),t.map(((e,s)=>n.jsxs(l,{spacing:.5,"data-testid":`interchange-card-stack-${s}`,children:[n.jsx(se,{label:d("Colour"),minW:"40px",noLabel:0!==s,children:n.jsx(pn,{theme:e.theme,onClick:()=>{f(s),h(oe(e.theme??[g[0],"","#aaaaaa",ie.white]))}})}),n.jsx(Dt,{fields:y[s],noLabel:0!==s}),r&&s===y.length-1?n.jsx(o,{size:"sm",variant:"ghost","aria-label":d("StationSidePanel.interchange.copy"),onClick:()=>r?.(t.slice(-1)[0]),icon:n.jsx(le,{})}):n.jsx(a,{minW:8}),i&&n.jsx(o,{size:"sm",variant:"ghost","aria-label":d("StationSidePanel.interchange.remove"),onClick:()=>i?.(s),icon:n.jsx(ce,{})})]},s)))]})}function gn(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation)),{theme:a,style:o}=Z((e=>e.param)),{transfer:l}=Z((e=>e.param.stn_list[r])),c=n=>[{type:"input",label:e("Station Chinese name"),value:l.groups[n].name?.[0]??"",hidden:![Q.MTR].includes(o),onChange:e=>t(cn(r,n,[e,l.groups[n].name?.[1]??""]))},{type:"input",label:e("Station English name"),value:l.groups[n].name?.[1]??"",hidden:![Q.MTR].includes(o),onChange:e=>t(cn(r,n,[l.groups[n].name?.[0]??"",e]))},{type:"switch",label:e("Paid area"),isChecked:l.paid_area,onChange:e=>{return t((n=r,i=e,(e,t)=>{const r=t().param.stn_list[n];e(rn(n,{...r,transfer:{...r.transfer,paid_area:i}}))}));var n,i},hidden:![Q.MTR].includes(o)||0===n,oneLine:!0}],u=e=>n=>{t(ln(r,e,n))},f=e=>n=>{var i,a,s;t((i=r,a=e,s=n,(e,t)=>{const n=t().param.stn_list[i];if(n.transfer.groups.length>a&&(n.transfer.groups[a].lines?.length||0)>s){const t=n.transfer.groups.map(((e,t)=>t===a?{...e,lines:e.lines?.filter(((e,t)=>t!==s))}:e));e(rn(i,{...n,transfer:{...n.transfer,groups:[t[0],...t.slice(1)??[]]}}))}}))},p=e=>(n,i)=>{var a,s,o,l;t((a=r,s=e,o=n,l=i,(e,t)=>{const n=t().param.stn_list[a];if(n.transfer.groups.length>s&&(n.transfer.groups[s].lines?.length||0)>o){const t=n.transfer.groups.map(((e,t)=>t===s?{...e,lines:e.lines?.map(((e,t)=>t===o?l:e))}:e));e(rn(a,{...n,transfer:{...n.transfer,groups:[t[0],...t.slice(1)??[]]}}))}}))};return n.jsxs(d,{align:"flex-start",p:1,children:[n.jsxs(i,{w:"100%",children:[n.jsx(s,{as:"h5",size:"sm",mr:"auto",children:e("StationSidePanel.interchange.title")}),o===Q.MTR&&n.jsx(ee,{selections:[{label:e("Text on the left"),value:de.left},{label:e("Text on the right"),value:de.right}],defaultValue:l.tick_direc,onChange:e=>{return t((n=r,i=e,(e,t)=>{const r=t().param.stn_list[n];e(rn(n,{...r,transfer:{...r.transfer,tick_direc:i}}))}));var n,i}})]}),l.groups.map(((t,r)=>n.jsxs(B.Fragment,{children:[n.jsx(s,{as:"h6",size:"xs",children:e(0===r?"StationSidePanel.interchange.within":1===r?"StationSidePanel.interchange.outStation":"StationSidePanel.interchange.outSystem")}),0!==r&&n.jsx(Dt,{fields:c(r)}),n.jsx(mn,{interchangeList:t.lines??[],onAdd:u(r),onDelete:f(r),onUpdate:p(r)})]},r))),l.groups.length<3&&n.jsx(h,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:n.jsx(ae,{}),onClick:()=>{t(ln(r,l.groups.length,{theme:[a[0],"","#AAAAAA",ie.white],name:["",""]}))},children:e("StationSidePanel.interchange.addGroup")})]})}function bn(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation)),{style:i,loop:o}=Z((e=>e.param)),{services:l,facility:c,loop_pivot:d,one_line:h,int_padding:u,character_spacing:f}=Z((e=>e.param.stn_list[r])),p=Object.values(he).map((t=>({label:e("StationSidePanel.more."+t),value:t,disabled:t===he.local&&i!==Q.SHMetro}))),m=Object.fromEntries(Object.entries(ne).filter((([e])=>!["railway"].includes(e))).map((([t,n])=>[t,e(n)]))),g=Object.fromEntries(Object.entries(ne).filter((([e])=>!["np360"].includes(e))).map((([t,n])=>[t,e(n)]))),b=[{type:"custom",label:e("StationSidePanel.more.service"),component:n.jsx(ee,{selections:p,defaultValue:l,onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(rn(e,{...i,services:t}))})(r,e)),multiSelect:!0}),hidden:![Q.GZMTR,Q.SHMetro].includes(i)},{type:"select",label:e("StationSidePanel.more.facility"),value:c||"",options:{"":e("None"),...i===Q.MTR?m:g},onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(rn(e,{...i,facility:t||void 0}))})(r,e)),hidden:![Q.MTR,Q.SHMetro].includes(i)},{type:"switch",label:e("StationSidePanel.more.pivot"),isChecked:d,onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(rn(e,{...i,loop_pivot:t}))})(r,e)),hidden:![Q.SHMetro].includes(i)||!o,minW:"full",oneLine:!0},{type:"switch",label:e("StationSidePanel.more.oneLine"),isChecked:h,onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(rn(e,{...i,one_line:t}))})(r,e)),hidden:![Q.SHMetro].includes(i),minW:"full",oneLine:!0},{type:"input",label:e("StationSidePanel.more.intPadding"),value:u.toString(),validator:e=>Number.isInteger(e),onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(rn(e,{...i,int_padding:t}))})(r,Number(e))),hidden:![Q.SHMetro].includes(i)},{type:"custom",label:e("StationSidePanel.more.intPaddingApplyGlobal"),component:n.jsx(ee,{selections:[{label:e("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>{return t((e=r,(t,n)=>{const r=n().param.stn_list[e].int_padding,i=structuredClone(n().param.stn_list);Object.values(i).forEach((e=>{e.int_padding=r})),t(an(i))}));var e}}),oneLine:!0,hidden:![Q.SHMetro].includes(i)},{type:"input",label:e("StationSidePanel.more.characterSpacing"),value:f.toString(),validator:e=>Number.isInteger(e),onChange:e=>t(((e,t)=>(n,r)=>{const i=r().param.stn_list[e];n(rn(e,{...i,character_spacing:t}))})(r,Number(e))),hidden:![Q.SHSuburbanRailway].includes(i)},{type:"custom",label:e("StationSidePanel.more.intPaddingApplyGlobal"),component:n.jsx(ee,{selections:[{label:e("StationSidePanel.more.apply"),value:"",disabled:!1}],defaultValue:"",onChange:()=>{return t((e=r,(t,n)=>{const r=n().param.stn_list[e].character_spacing,i=structuredClone(n().param.stn_list);Object.values(i).forEach((e=>{e.character_spacing=r})),t(an(i))}));var e}}),oneLine:!0,hidden:![Q.SHSuburbanRailway].includes(i)}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StationSidePanel.more.title")}),n.jsx(Dt,{fields:b})]})}function _n(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedStation)),i=Z((e=>e.param.stn_list)),{parents:o,children:l,branch:d}=i[r],h={[ue.through]:e("StationSidePanel.branch.through"),[ue.nonThrough]:e("StationSidePanel.branch.nonThrough")},u=e=>(e===X.left?o:l).reduce(((e,t)=>({...e,[t]:i[t].localisedName.zh+"/"+i[t].localisedName.en})),{}),f={upper:e("StationSidePanel.branch.upper"),lower:e("StationSidePanel.branch.lower")},p=n=>{const i=d?.[n];return i?[{type:"select",label:e("StationSidePanel.branch.type"),options:h,value:i[0],onChange:e=>t(((e,t,n)=>(r,i)=>{const a=i().param.stn_list[e];r(rn(e,{...a,branch:{...a.branch,[t]:a.branch?.[t]?.with(0,n)}}))})(r,n,e))},{type:"select",label:e("StationSidePanel.branch.firstStation"),options:u(n),value:i[1],onChange:e=>t(((e,t,n)=>(r,i)=>{const a=i().helper.branches,s={stnId:e,direction:t,first:n};if(t===X.left){const t=a.slice(1).find((t=>t.slice(-1)[0]===e))?.[0];if(t){const e=a[0][a[0].indexOf(t)+1];r(dn([s,{stnId:t,direction:X.right,first:e}]))}}else{const t=a.slice(1).find((t=>t[0]===e))?.slice(-1)?.[0];if(t){const e=a[0][a[0].indexOf(t)-1];r(dn([s,{stnId:t,direction:X.left,first:e}]))}}})(r,n,e))},{type:"select",label:e("StationSidePanel.branch.position"),options:f,value:(n===X.left?o:l)[0]===i[1]?"upper":"lower",onChange:()=>t(((e,t)=>(n,r)=>{const i=r().helper.branches;if(t===X.left){const t=i.slice(1).find((t=>t.slice(-1)[0]===e))?.[0];t&&n(hn(e,t))}else{const t=i.slice(1).find((t=>t[0]===e))?.slice(-1)?.[0];t&&n(hn(t,e))}})(r,n))}]:[]};return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("Branches")}),n.jsx(s,{as:"h6",size:"xs",children:e("Branch on the left")}),n.jsx(re,{direction:"column",children:2===o.length?n.jsx(Dt,{fields:p(X.left)}):n.jsx(c,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:e("No branches found")})}),n.jsx(s,{as:"h6",size:"xs",children:e("Branch on the right")}),n.jsx(re,{direction:"column",children:2===l.length?n.jsx(Dt,{fields:p(X.right)}):n.jsx(c,{as:"i",flex:1,align:"center",fontSize:"md",colorScheme:"gray",children:e("No branches found")})})]})}function vn(){return n.jsxs(fe,{children:[n.jsx(un,{}),n.jsx(u,{}),n.jsx(gn,{}),n.jsx(u,{}),n.jsx(_n,{}),n.jsx(u,{}),n.jsx(bn,{})]})}function yn(){const{t:e}=D(),t=J(),{style:r,svgWidth:i,svg_height:o,y_pc:l,branchSpacingPct:c,padding:d,direction_gz_x:h,direction_gz_y:u,loop:f}=Z((e=>e.param)),p=[...pe[r].map((n=>({type:"input",label:e(`StyleSidePanel.layout.${n}Width`),value:i[n].toString(),onChange:e=>t(me({width:Number(e),canvas:n}))}))),{type:"input",label:e("StyleSidePanel.layout.canvasHeight"),value:o.toString(),onChange:e=>t(ge(Number(e)))},{type:"slider",label:e("StyleSidePanel.layout.verticalPosition"),value:l,min:0,max:100,onChange:e=>t(be(e)),leftIcon:n.jsx(_e,{}),rightIcon:n.jsx(ve,{}),hidden:![Q.MTR,Q.GZMTR].includes(r)},{type:"slider",label:e(f?"StyleSidePanel.layout.branchSpacingLoop":"Branch spacing"),value:c,min:0,max:f?50:100,onChange:e=>t(ye(e)),leftIcon:n.jsx(xe,{}),rightIcon:n.jsx(ae,{})},{type:"slider",label:e("StyleSidePanel.layout.padding"),value:d,min:0,max:50,onChange:e=>t(we(e)),leftIcon:n.jsx(xe,{}),rightIcon:n.jsx(ae,{})},{type:"slider",label:e("StyleSidePanel.layout.directionGzX"),value:h,min:0,max:100,onChange:e=>t(Se(e)),leftIcon:n.jsx(ke,{}),rightIcon:n.jsx(Ce,{}),hidden:![Q.GZMTR].includes(r)},{type:"slider",label:e("StyleSidePanel.layout.directionGzY"),value:u,min:0,max:100,onChange:e=>t(je(e)),leftIcon:n.jsx(_e,{}),rightIcon:n.jsx(ve,{}),hidden:![Q.GZMTR].includes(r)}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StyleSidePanel.layout.title")}),n.jsx(Dt,{fields:p,minW:130})]})}function xn(){const{t:e}=D(),t=J(),{paletteAppClipOutput:r}=Z((e=>e.app)),{style:i,theme:c,line_name:d,line_num:h,spanLineNum:u,direction:f,platform_num:p,psd_num:m,namePosMTR:g,customiseMTRDest:b,info_panel_type:_,stn_list:v,loop:y}=Z((e=>e.param)),x=Math.max(...Object.values(v).map((e=>e.services.length))),[w,S]=B.useState(!1);B.useEffect((()=>{w&&r&&(t(Ae(r)),S(!1))}),[r?.toString()]);const k=[{label:e("StyleSidePanel.design.left"),value:de.left},{label:e("StyleSidePanel.design.right"),value:de.right}],C=Object.values(ze).reduce(((t,n)=>({...t,[n]:e("StyleSidePanel.design."+n)})),{}),j=Object.values(Ee).reduce(((t,n)=>({...t,[n]:e("StyleSidePanel.design."+n)})),{}),A=[{type:"custom",label:e("Colour"),component:n.jsx(pn,{theme:c,onClick:()=>{S(!0),t(oe(c))}}),minW:"40px"},{type:"input",label:e("StyleSidePanel.design.zhLineName"),value:d[0],onChange:e=>t(Oe([e,d[1]])),minW:130},{type:"input",label:e("StyleSidePanel.design.enLineName"),value:d[1],onChange:e=>t(Oe([d[0],e])),minW:130},{type:"input",label:e("StyleSidePanel.design.lineNum"),value:h,onChange:e=>t(Ie(e)),hidden:![Q.GZMTR].includes(i)},{type:"custom",label:e("Span digits over rows"),component:n.jsx(ee,{selections:[{label:e("Yes"),value:!0},{label:e("No"),value:!1}],defaultValue:u??!1,onChange:e=>t(Re(e))}),hidden:![Q.GZMTR].includes(i)},{type:"input",label:e("StyleSidePanel.design.platformNum"),value:p||"",onChange:e=>t(Te(e))},{type:"input",label:e("StyleSidePanel.design.psdNum"),value:m,onChange:e=>t(Pe(e)),hidden:![Q.GZMTR].includes(i)},{type:"select",label:e("StyleSidePanel.design.panelType"),value:_,options:i===Q.GZMTR?C:j,onChange:e=>t(Ne(e)),hidden:![Q.GZMTR,Q.SHMetro].includes(i)},{type:"custom",label:e("StyleSidePanel.design.direction"),component:n.jsx(ee,{selections:k,defaultValue:f,onChange:e=>t(Be(e))}),minW:"full",oneLine:!0}],z=[{label:e("StyleSidePanel.design.upwards"),value:!0},{label:e("StyleSidePanel.design.downward"),value:!1}],E=[{type:"custom",label:e("StyleSidePanel.design.firstStationNameDisplay"),component:n.jsx(l,{spacing:.5,children:n.jsx(ee,{selections:z,defaultValue:g.isFlip??!0,onChange:e=>t(De(e))})}),minW:"full",oneLine:!0,hidden:![Q.SHMetro].includes(i)||x>1||y}],O=[{label:e("StyleSidePanel.design.alternatively"),value:!0},{label:e("StyleSidePanel.design.onOneSide"),value:!1}],I=[{type:"custom",label:e("StyleSidePanel.design.nameDisplay"),component:n.jsxs(l,{spacing:.5,children:[n.jsx(o,{size:"xs",variant:"ghost","aria-label":e("StyleSidePanel.design.flip"),title:e("StyleSidePanel.design.flip"),icon:n.jsx(Me,{}),onClick:()=>t(De())}),n.jsx(ee,{selections:O,defaultValue:g.isStagger,onChange:e=>t(Le(e))})]}),minW:"full",oneLine:!0,hidden:![Q.MTR].includes(i)},{type:"switch",label:e("StyleSidePanel.design.legacyDestination"),isChecked:b.isLegacy,onChange:e=>t(Fe(e)),hidden:![Q.MTR].includes(i),minW:"full",oneLine:!0},{type:"switch",label:e("StyleSidePanel.design.overrideTerminal"),isChecked:!1!==b.terminal,onChange:e=>t(Ue(!!e&&["",""])),hidden:![Q.MTR].includes(i),minW:"full",oneLine:!0},{type:"input",label:e("StyleSidePanel.design.terminalZhName"),value:b.terminal?b.terminal[0]:"",placeholder:"機場及博覽館",onChange:e=>t(Ue([e,b.terminal?b.terminal[1]:""])),hidden:![Q.MTR].includes(i)||!1===b.terminal},{type:"input",label:e("StyleSidePanel.design.terminalEnName"),value:b.terminal?b.terminal[1]:"",placeholder:"Airport and AsiaWorld-Expo",onChange:e=>t(Ue([b.terminal?b.terminal[0]:"",e])),hidden:![Q.MTR].includes(i)||!1===b.terminal}];return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StyleSidePanel.design.title")}),n.jsx(Dt,{fields:[...A,...I,...E],minW:130})]})}function wn(){const{t:e}=D(),t=J(),{branches:r}=Z((e=>e.helper)),{loop:i,loop_info:o,style:l}=Z((e=>e.param)),{bank:c,left_and_right_factor:d,bottom_factor:h,clockwise:u}=o,f=r.flat().filter((e=>t=>2===(e[t]=(e[t]||0)+1))({})).filter((e=>!["linestart","lineend"].includes(e))),p=Math.abs(r[0].indexOf(f[0])-r[0].indexOf(f[1])),m=r.length>=2?(0,Math.min)(r[0].length-2-p,p):Math.floor((r[0].length-2-2*h)/2),g=[{type:"switch",label:e("StyleSidePanel.loop.isLoop"),isChecked:i,onChange:e=>t(We(e)),minW:"full",oneLine:!0},{type:"switch",label:e("StyleSidePanel.loop.isBank"),isChecked:c,onChange:e=>t(Ze(e)),minW:"full",oneLine:!0,hidden:!i||l!==Q.SHMetro},{type:"slider",label:e("StyleSidePanel.loop.leftRightFactor"),value:d,min:0,max:m,onChange:e=>t(He(Math.floor(e))),hidden:!i||l!==Q.SHMetro},{type:"slider",label:e("StyleSidePanel.loop.bottomFactor"),value:h,min:0,max:Math.floor((r[0].length-2-2*d)/2),onChange:e=>t(Ge(Math.floor(e))),hidden:!i||i&&r.length>2||l!==Q.SHMetro},{type:"custom",label:e("Loop direction"),component:n.jsx(ee,{selections:[{label:e("Anticlockwise"),value:!1},{label:e("Clockwise"),value:!0}],defaultValue:u??!1,onChange:e=>t(Ve(e))}),hidden:!i||![Q.GZMTR].includes(l),oneLine:!0}];return n.jsxs(a,{p:1,children:[n.jsxs(s,{as:"h5",size:"sm",children:[e("StyleSidePanel.loop.title")," ",l===Q.GZMTR?"(Beta)":""]}),n.jsx(Dt,{fields:g})]})}function Sn(e){const{note:t,onUpdate:r,onDelete:i}=e,{t:a}=D(),s=[{type:"textarea",label:a("StyleSidePanel.note.zhNote"),value:t[0],onChange:e=>r?.([e,t[1],t[2],t[3],t[4]])},{type:"textarea",label:a("StyleSidePanel.note.enNote"),value:t[1],onChange:e=>r?.([t[0],e,t[2],t[3],t[4]])},{type:"switch",label:a("StyleSidePanel.note.border"),isChecked:t[4],onChange:e=>r?.([t[0],t[1],t[2],t[3],e]),oneLine:!0}],c=[{type:"slider",label:a("StyleSidePanel.note.positionX"),value:t[2],min:0,max:100,onChange:e=>r?.([t[0],t[1],e,t[3],t[4]]),leftIcon:n.jsx(ke,{}),rightIcon:n.jsx(Ce,{})},{type:"slider",label:a("StyleSidePanel.note.positionY"),value:t[3],min:0,max:100,onChange:e=>r?.([t[0],t[1],t[2],e,t[4]]),leftIcon:n.jsx(_e,{}),rightIcon:n.jsx(ve,{})}];return n.jsxs(re,{direction:"column",children:[n.jsx(Dt,{fields:s,minW:"full"}),n.jsxs(l,{spacing:.5,sx:{"&>div":{flex:1}},children:[n.jsx(Dt,{fields:c}),n.jsx(o,{size:"sm",variant:"ghost","aria-label":a("StyleSidePanel.note.remove"),onClick:()=>i?.(),icon:n.jsx(ce,{})})]})]})}function kn(){const{t:e}=D(),t=J(),r=Z((e=>e.param.notesGZMTR));return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("StyleSidePanel.note.title")}),n.jsxs(d,{spacing:.5,children:[r?.map(((e,r)=>n.jsx(Sn,{note:e,onUpdate:e=>t($e({index:r,note:e})),onDelete:()=>t(Ye(r))},r))),n.jsx(h,{size:"xs",variant:"ghost",leftIcon:n.jsx(ae,{}),alignSelf:"flex-end",onClick:()=>t(Ke()),children:e("StyleSidePanel.note.add")})]})]})}function Cn(){const{style:e}=Z((e=>e.param));return n.jsxs(fe,{children:[n.jsx(yn,{}),n.jsx(u,{}),n.jsx(xn,{}),[Q.GZMTR,Q.SHMetro].includes(e)&&n.jsxs(n.Fragment,{children:[n.jsx(u,{}),n.jsx(wn,{})]}),e===Q.GZMTR&&n.jsxs(n.Fragment,{children:[n.jsx(u,{}),n.jsx(kn,{})]})]})}const jn=(e,t)=>{if(["linestart","lineend"].includes(e)||t[e].parents.length>1||t[e].children.length>1)return 0;const n=t[e].parents[0];return n?1===t[n].children.length?jn(n,t):0===t[n].children.indexOf(e)?1:-1:0},An=e("i",((e,t)=>!!t[e[0]].children.indexOf(e[1]))),zn=(e,t)=>[e[0][1],e[0][e[0].length-2],...e[0].filter((n=>e.slice(1).filter((e=>An(e,t))).map((e=>e.filter((e=>!["linestart","lineend"].includes(e))))).map((e=>[e[0],e[e.length-1]])).flat().includes(n)))],En=(e("g",((e,t)=>(n,r)=>{const i=r().param.coline,a=r().helper.branches[t];for(const[t,s]of Object.entries(i))if(s.from===e&&a.includes(s.to)){const n=a.indexOf(e),r=a.indexOf(s.to);if(r>n)return[r-n+1,t]}else if(s.to===e&&a.includes(s.to)){const n=a.indexOf(e),r=a.indexOf(s.from);if(r>n)return[r-n+1,t]}return[0,void 0]})),(e,t)=>(n,r)=>{const i=r().param.stn_list,a=r().helper.branches;if(e===t)throw new Error("addColine():: failed for same stnId");const s=zn(a,i).filter((n=>[e,t].includes(n))),o=((e,t)=>e.slice(1).filter((e=>An(e,t))).map((e=>e.filter((e=>!["linestart","lineend"].includes(e))))).map((e=>[e[0],e[e.length-1]])))(a,i).filter((n=>[e,t].every((e=>n.includes(e)))));if(2===s.length&&o.length>0)throw new Error(`addColine():: main check failed for ${e}, ${t}`);if(2!==s.length&&1!==o.length)throw new Error(`addColine():: branch check failed for ${e}, ${t}`)});function On(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),s=J(),o=Z((e=>e.app.selectedStation)),[l,c]=B.useState(!1);return B.useEffect((()=>{t||c(!1)}),[t]),n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[l&&n.jsxs(g,{status:"error",variant:"solid",size:"xs",children:[n.jsx(b,{}),i("Unable to remove this station.")]}),n.jsxs(a,{position:"relative",children:[n.jsx(_,{children:i("Remove station")}),n.jsx(v,{})]}),n.jsx(y,{children:i("Are you sure to remove station? You cannot undo this action.")}),n.jsxs(x,{children:[n.jsx(h,{onClick:r,children:i("Cancel")}),n.jsx(h,{colorScheme:"primary",onClick:()=>{const e=s((t=o,(e,n)=>{const{stn_list:r,current_stn_idx:i}=n().param;if(t===i)return console.log("removeStation():: failed as current station cannot be deleted"),!1;const{parents:a,children:s}=r[t];return 4===Object.keys(r).length?(console.log("removeStation():: failed as only 2 stations remaining"),!1):2===a.length&&2===s.length?(console.log("removeStation():: failed as branches on both sides cannot be combined"),!1):!!Object.keys(r).some((e=>![t,"linestart","lineend"].includes(e)&&0===jn(e,r)))||(console.log("removeStation():: failed as selected station is the only station without siblings"),!1)}));var t,n;e?(r(),s(Je(Qe.CLOSE)),s(et("linestart")),s((n=o,(e,t)=>{const r=t().param.coline;if(0===Object.keys(r).length)return;const i=Object.entries(r).reduce(((e,t)=>t[1].from!==n&&t[1].to!==n?{...e,[t[0]]:t[1]}:{...e}),{});e(qe(i))})),s((e=>(t,n)=>{const r=n().param.stn_list,{parents:i,children:a}=r[e];let s=JSON.parse(JSON.stringify(r));2===i.length||2===a.length?(i.forEach((e=>{s[e].children=a})),a.forEach((e=>{s[e].parents=i})),1===i.length&&(s[i[0]].branch={...s[i[0]].branch,right:s[e].branch?.right}),1===a.length&&(s[a[0]].branch={...s[a[0]].branch,left:s[e].branch?.left})):2===r[i[0]].children.length&&2===r[a[0]].parents.length?s={...r,[i[0]]:{...r[i[0]],children:r[i[0]].children.filter((t=>t!==e)),branch:{...r[i[0]].branch,right:void 0}},[a[0]]:{...r[a[0]],parents:r[a[0]].parents.filter((t=>t!==e)),branch:{...r[a[0]].branch,left:void 0}}}:(i.forEach((t=>{const n=s[t].children.indexOf(e);a.length?s[t].children[n]=a[0]:s[t].children.splice(n,1),s[t].branch?.right?.[1]===e&&(s[t].branch={...s[t].branch,right:s[t].branch?.right?.with(1,a[0])})})),a.forEach((t=>{const n=s[t].parents.indexOf(e);i.length?s[t].parents[n]=i[0]:s[t].parents.splice(n,1),s[t].branch?.left?.[1]===e&&(s[t].branch={...s[t].branch,left:s[t].branch?.left?.with(1,i[0])})}))),delete s[e],t(an(s))})(o))):c(!0),H.event(G.REMOVE_STATION,{success:e})},ml:3,children:i("Confirm")})]})]})]})}function In(){const{t:e}=D(),t=J(),{selectedStation:r}=Z((e=>e.app)),{loop:i,style:a}=Z((e=>e.param)),[s,o]=B.useState(!1);return n.jsxs(tt,{children:[n.jsxs(l,{children:[n.jsx(h,{size:"sm",variant:"outline",onClick:()=>t(nt(r)),children:e("StationSidePanel.footer.current")}),a===Q.GZMTR&&i&&n.jsx(h,{size:"sm",variant:"outline",onClick:()=>t(rt(r)),children:e("Set as midpoint")}),n.jsx(h,{size:"sm",variant:"outline",onClick:()=>o(!0),children:e("StationSidePanel.footer.remove")})]}),n.jsx(On,{isOpen:s,onClose:()=>o(!1)})]})}function Rn(e){const{colineInfo:t,routeOptions:r,onUpdateRoute:i,onUpdateColourInfo:a,onDelete:s}=e,{t:c}=D(),d=J(),{paletteAppClipOutput:h}=Z((e=>e.app)),[u,f]=B.useState(!1);B.useEffect((()=>{u&&h&&(a?.([...h,t.colors[0][4],t.colors[0][5]]),f(!1))}),[h?.toString()]);const p=[{type:"select",label:"Route",value:[t.from,t.to].join(","),options:r,onChange:e=>i?.(e)}],m=[{type:"custom",label:c("Colour"),component:n.jsx(pn,{theme:[t.colors[0][0],t.colors[0][1],t.colors[0][2],t.colors[0][3]],onClick:()=>{f(!0),d(oe(t.colors[0].slice(0,4)))}})},{type:"input",label:c("Chinese name"),value:t.colors[0][4],minW:120,onChange:e=>a?.([t.colors[0][0],t.colors[0][1],t.colors[0][2],t.colors[0][3],e,t.colors[0][5]])},{type:"input",label:c("English name"),value:t.colors[0][5],minW:120,onChange:e=>a?.([t.colors[0][0],t.colors[0][1],t.colors[0][2],t.colors[0][3],t.colors[0][4],e])}];return n.jsxs(re,{direction:"column",children:[n.jsx(Dt,{fields:p,minW:"full"}),n.jsxs(l,{spacing:.5,children:[n.jsx(Dt,{fields:m}),n.jsx(o,{size:"sm",variant:"ghost","aria-label":"Delete colour for route",onClick:()=>s?.(0),icon:n.jsx(ce,{})})]})]})}function Tn(){const{t:e}=D(),t=J(),r=Z((e=>e.app.selectedBranch)),{theme:i,stn_list:a}=Z((e=>e.param)),o=t((l=r,(e,t)=>{const n=t().param.coline,r=t().helper.branches[l];return r?Object.entries(n).reduce(((e,t)=>r.includes(t[1].from)&&r.includes(t[1].to)?{...e,[t[0]]:t[1]}:{...e}),{}):{}}));var l;const c=t((e=>(t,n)=>{const r=n().helper.branches;if(0===e){const e=n().param.stn_list,t=zn(r,e);return function(...e){return e.reduce(((e,t)=>e.map((e=>t.map((t=>e.concat([t]))))).reduce(((e,t)=>e.concat(t)),[])),[[]])}(t,t).filter((e=>e[0]!==e[1]))}{const t=r[e];if(t){const e=t.filter((e=>!["linestart","lineend"].includes(e)));return[[e[0],e.slice(-1)[0]]]}return[]}})(r)),u=c.reduce(((e,t)=>{return{...e,[t.join(",")]:(n=t,n.map((e=>a[e].localisedName.zh+"/"+a[e].localisedName.en)).join(" ~ "))};var n}),{}),f=e=>n=>{const[r,i]=n.split(",");console.log(`ColineSection.handleUpdateRoute():: Updating route, colineId=${e}, from=${r}, to=${i}`);try{t(((e,t,n,r=!0)=>(i,a)=>{const s=a().param.coline;if(e in s){i(En(t,n));const a={...s,[e]:{...s[e],from:t,to:n,display:r}};i(qe(a))}})(e,r,i))}catch{t(it({status:"error",message:"Unable to draw this share track."}))}},p=(e,n)=>{t(((e,t)=>(n,r)=>{const i=r().param.coline;if(e in i&&i[e].colors.length>t){const r=i[e].colors.filter(((e,n)=>n!==t));if(0===r.length){const{[e]:t,...r}=i;n(qe(r))}else{const t={...i,[e]:{...i[e],colors:r}};n(qe(t))}}})(e,n))};return n.jsxs(d,{align:"flex-start",p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("BranchSidePanel.coline.title")}),Object.entries(o).map((([e,r])=>n.jsx(Rn,{colineInfo:r,routeOptions:u,onUpdateRoute:f(e),onUpdateColourInfo:n=>{return t((r=e,i=0,a=n,(e,t)=>{const n=t().param.coline;if(r in n&&n[r].colors.length>i){const t={...n,[r]:{...n[r],colors:n[r].colors.map(((e,t)=>t===i?[0,1,2,3,4,5].map((t=>void 0===a[t]?e[t]:a[t])):e))}};e(qe(t))}}));var r,i,a},onDelete:t=>p(e,t)},e))),(0===r||0===Object.keys(o).length)&&n.jsx(h,{size:"xs",variant:"ghost",alignSelf:"flex-end",leftIcon:n.jsx(ae,{}),onClick:()=>{console.log(`ColineSection.handleAddTrackSharing():: Adding track sharing to branch ${r} with default combination`,c[0]),t(((e,t,n,r=!0)=>(i,a)=>{const s=a().param.coline;i(En(e,t)),i(qe({...s,[Xe(4)]:{from:e,to:t,colors:n,display:r}}))})(c[0][0],c[0][1],[[i[0],"","#AAAAAA",ie.white,"",""]]))},children:e("BranchSidePanel.coline.add")})]})}function Pn(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),a=J(),s=Z((e=>e.app.selectedBranch)),{style:o,stn_list:l}=Z((e=>e.param)),c=Z((e=>e.helper.branches)),[d,u]=B.useState(s),[g,b]=B.useState("1"),[w,S]=B.useState("2"),[k,C]=B.useState("asc");B.useEffect((()=>{u(s)}),[s]);const j=[{type:"select",label:i("AutoNumModal.where"),value:d,options:{...c.reduce(((e,t,n)=>({...e,[n]:0===n?i("AutoNumModal.main"):o===Q.SHMetro&&An(t,l)?i("AutoNumModal.external")+" "+n:i("AutoNumModal.branch")+" "+n})),{})},onChange:e=>u(e)},{type:"input",label:i("AutoNumModal.from"),value:g,validator:e=>!isNaN(Number(e)),onChange:b,debouncedDelay:0},{type:"input",label:i("AutoNumModal.maxLength"),validator:e=>!isNaN(Number(e)),value:w,onChange:S,debouncedDelay:0},{type:"select",label:i("AutoNumModal.sort"),value:k,options:{asc:i("AutoNumModal.asc"),desc:i("AutoNumModal.desc")},onChange:e=>C(e)}],A=!g||!w||isNaN(Number(g))||isNaN(Number(w));return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[n.jsx(_,{children:i("AutoNumModal.title")}),n.jsx(v,{}),n.jsx(y,{children:n.jsx(Dt,{fields:j})}),n.jsx(x,{children:n.jsx(h,{colorScheme:"primary",isDisabled:A,onClick:()=>{a(((e,t,n=2,r="asc")=>(i,a)=>{const s=a().param.stn_list,o=a().helper.branches,l=o[e]?.slice(1,-1);if(l){const e=l.reduce(((e,i,a)=>({...e,[i]:{...s[i],num:(t+a*("desc"===r?-1:1)).toString().padStart(n,"0")}})),s);i(an(e))}})(d,Number(g),Number(w),k)),r(),H.event(G.AUTO_NUMBERING,{})},children:i("Confirm")})})]})]})}const Nn=e=>(t,n)=>{const r=n().helper.branches[e];return r.includes("linestart")||r.includes("lineend")?1:2},Bn=e=>(t,n)=>{const{branches:r}=n().helper,i=r[0],a=r[e];return i.slice(i.indexOf(a[0])+1,i.indexOf(a.slice(-1)[0]))},Dn=(e,t)=>(n,r)=>{const i=n(((e,t)=>n=>2===n(Nn(t))?(console.log("isStationValid2ConnectBranch():: failed as current branch has 2 connected ends"),!1):!!n(Bn(t)).includes(e)||(console.log("isStationValid2ConnectBranch():: failed as the target station is invalid"),!1))(e,t));if(!i)return!1;const{branches:a}=r().helper,s=r().param.stn_list,o=a[t];if("linestart"===o[0]){const t={...s,[o[1]]:{...s[o[1]],parents:[e]},[e]:{...s[e],children:s.linestart.children.map((t=>t===o[1]?t:s[e].children[0])),branch:{right:s.linestart.branch?.right}},linestart:{...s.linestart,children:s.linestart.children.filter((e=>e!==o[1])),branch:{}}};return n(an(t)),!0}{const t=o.slice(-2)[0],r={...s,[t]:{...s[t],children:[e]},[e]:{...s[e],parents:s.lineend.parents.map((n=>n===t?n:s[e].parents[0])),branch:{left:s.lineend.branch?.left}},lineend:{...s.lineend,parents:s.lineend.parents.filter((e=>e!==t)),branch:{}}};return n(an(r)),!0}},Mn=e=>(t,n)=>{const{branches:r}=n().helper,i=n().param.stn_list,a=r[0],s=r[e];if(2!==t(Nn(e)))return console.log("getPossibleDirection():: failed as there is no possible direction"),[];const o=a.indexOf(s[0]),l=a.slice(0,o),c=a.indexOf(s.slice(-1)[0]),d=a.slice(c+1),h=l.every((e=>i[e].children.length<=1&&i[e].parents.length<=1)),u=d.every((e=>i[e].children.length<=1&&i[e].parents.length<=1));return h?u?[X.left,X.right]:[X.left]:u?[X.right]:[]};function Ln(e){const{direction:t}=e,{t:r}=D(),a=J(),{branches:s}=Z((e=>e.helper)),o=Z((e=>e.app.selectedBranch)),{style:l,stn_list:c}=Z((e=>e.param)),[d,u]=B.useState(!1),[f,p]=B.useState(""),m=s[o].filter((e=>!["linestart","lineend"].includes(e))),g=t===X.left?m[0]:m.slice(-1)[0],b=c[g],_=a(Bn(o)),v=a(Nn(o)),y=a(Mn(o)),x=1===v&&!s[0].includes(g),w=y.includes(t),S=_.reduce(((e,t)=>({...e,[t]:c[t]?.localisedName.zh+"/"+c[t]?.localisedName.en})),{"":r("Please select...")});return n.jsxs(re,{direction:"column",children:[n.jsxs(i,{alignItems:"center",children:[n.jsx(se,{label:r("Station name"),flex:1,children:n.jsx(at,{defaultValue:b.localisedName.zh+"/"+b.localisedName.en,isDisabled:!0})}),d?n.jsx(h,{mx:1,size:"sm",variant:"outline",onClick:()=>u(!1),children:r("Cancel")}):x?n.jsx(h,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>u(!0),children:r("Connect to main line")}):n.jsx(h,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>{const e=a(((e,t)=>(n,r)=>{if(!n(Mn(t)).includes(e))return console.log("disconnectFromMainLine():: failed as the aim direction is not in the possible direction list"),!1;const{branches:i}=r().helper,a=r().param.stn_list,s=i[0],o=i[t];if(e===X.left){const e=o[0],t={...a,[o[1]]:{...a[o[1]],parents:["linestart"]},[e]:{...a[e],children:a[e].children.filter((e=>e!==o[1])),branch:{}},linestart:{...a.linestart,children:a[e].children.map((e=>e===o[1]?e:s[1])),branch:{right:a[e].branch?.right}}};return n(an(t)),!0}{const e=o.slice(-1)[0],t=o.slice(-2)[0],r={...a,[t]:{...a[t],children:["lineend"]},[e]:{...a[e],parents:a[e].parents.filter((e=>e!==t)),branch:{}},lineend:{...a.lineend,parents:a[e].parents.map((e=>e===t?e:s.slice(-2)[0])),branch:{left:a[e].branch?.left}}};return n(an(r)),!0}})(t,o));e||a(it({status:"error",message:r("Unable to disconnect from main line.")})),H.event(G.DISCONNECT_BRANCH,{style:l,success:e})},isDisabled:!w,children:r("Disconnect from main line")})]}),d&&n.jsxs(i,{alignItems:"center",children:[n.jsx(se,{label:r("Target station"),flex:1,children:n.jsx(st,{defaultValue:f,options:S,disabledOptions:[""],onChange:({target:{value:e}})=>p(e)})}),n.jsx(h,{mx:1,size:"sm",variant:"solid",colorScheme:"primary",onClick:()=>{const e=a(Dn(f,o));e?u(!1):a(it({status:"error",message:r("Unable to connect to main line.")})),H.event(G.CONNECT_BRANCH,{style:l,success:e})},isDisabled:!f,children:r("Confirm")})]})]})}function Fn(){const{t:e}=D(),t=J(),r=Z((e=>e.param.style)),o=Z((e=>e.app.selectedBranch)),[l,c]=B.useState(!1);return n.jsxs(a,{p:1,children:[n.jsx(s,{as:"h5",size:"sm",children:e("BranchSidePanel.action.title")}),n.jsxs(i,{wrap:"wrap",sx:{p:1,"&> *":{flexShrink:0,flexBasis:"100%","&:not(:first-of-type)":{marginTop:2}}},children:[0!==o&&r!==Q.SHMetro&&n.jsxs(n.Fragment,{children:[n.jsx(s,{as:"h6",size:"xs",children:e("Branch left end")}),n.jsx(Ln,{direction:X.left}),n.jsx(s,{as:"h6",size:"xs",children:e("Branch right end")}),n.jsx(Ln,{direction:X.right})]}),r===Q.GZMTR&&n.jsx(h,{size:"sm",variant:"outline",leftIcon:n.jsx(ot,{}),alignSelf:"flex-end",onClick:()=>c(!0),children:e("BranchSidePanel.action.autoNum")}),n.jsx(h,{size:"sm",variant:"outline",leftIcon:n.jsx(lt,{}),alignSelf:"flex-end",onClick:()=>{t(((e=!1)=>(t,n)=>{const{stn_list:r}=n().param,i=Object.keys(r).reduce(((t,n)=>({...t,[n]:(t=>{switch(t){case"linestart":return{...r.lineend,parents:[],children:e?r.lineend.parents:r.lineend.parents.toReversed(),branch:{right:r.lineend.branch?.left}};case"lineend":return{...r.linestart,parents:e?r.linestart.children:r.linestart.children.toReversed(),children:[],branch:{left:r.linestart.branch?.right}};default:{const n=r[t].children.map((e=>"linestart"===e?"lineend":"lineend"===e?"linestart":e)),i=r[t].parents.map((e=>"linestart"===e?"lineend":"lineend"===e?"linestart":e));return{...r[t],parents:e?n:n.reverse(),children:e?i:i.reverse(),branch:{left:r[t].branch?.right,right:r[t].branch?.left}}}}})(n)})),{});t(an(i))})(r===Q.SHMetro)),H.event(G.REVERSE_STATIONS,{style:r})},children:r===Q.SHMetro?e("BranchSidePanel.action.flip"):e("BranchSidePanel.action.reverse")})]}),n.jsx(Pn,{isOpen:l,onClose:()=>c(!1)})]})}function Un(){const e=Z((e=>e.app.selectedBranch)),{style:t,stn_list:r}=Z((e=>e.param)),i=Z((e=>e.helper.branches));return n.jsxs(fe,{children:[t===Q.SHMetro&&(0===e||An(i[e],r))&&n.jsxs(n.Fragment,{children:[n.jsx(Tn,{}),n.jsx(u,{})]}),n.jsx(Fn,{})]})}const Wn={position:"relative",h:460,maxH:"70%","& > button":{position:"absolute",right:1,top:1},"& iframe":{h:"100%",w:"100%"}};function Zn(e){const{isOpen:t,onClose:r,defaultTheme:i,onSelect:a}=e,[s]=B.useState(Xe()),[o,l]=B.useState(!1),c="/rmg-palette/#/picker?"+new URLSearchParams({parentComponent:H.getAppName(),parentId:s}),d=B.useRef();return B.useEffect((()=>{const e=new BroadcastChannel("rmg-palette-bridge--"+s);return d.current=e,e.onmessage=e=>{const{event:t,data:n}=e.data;console.log("[rmg] Received event from Palette app clip:",t),"CLOSE"===t?r():"SELECT"===t?a(n):"LOADED"===t&&l(!0)},()=>{e.close()}}),[]),B.useEffect((()=>{i&&d.current?.postMessage({event:"OPEN",data:i})}),[o,i?.toString()]),n.jsxs(ct,{size:"md",isOpen:t,onClose:r,sx:Wn,children:[n.jsx(w,{onClick:r}),n.jsx("iframe",{src:c,loading:"eager"})]})}function Hn(){const{t:e}=D(),t=M(),{sidePanelMode:r,selectedStation:i,paletteAppClipInput:a}=Z((e=>e.app)),s=Z((e=>e.param.stn_list[i]?.localisedName)),o={STATION:{header:n.jsx(Jt,{text:s?.zh+"/"+s?.en||""}),body:n.jsx(vn,{}),footer:n.jsx(In,{})},STYLE:{header:e("StyleSidePanel.header"),body:n.jsx(Cn,{})},BRANCH:{header:e("BranchSidePanel.header"),body:n.jsx(Un,{})},CLOSE:{header:"Close"}};return n.jsxs(dt,{isOpen:r!==Qe.CLOSE,width:410,header:"Dummy header",children:[n.jsx(ht,{onClose:()=>{t(Je(Qe.CLOSE))},children:o[r].header}),o[r]?.body,o[r]?.footer,n.jsx(Zn,{isOpen:!!a,onClose:()=>t(ut()),defaultTheme:a,onSelect:e=>t(ft(e))})]})}function Gn(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Vn,$n={exports:{}},Yn=(Vn||(Vn=1,function(e){e.exports=function e(t,n,r){function i(s,o){if(!n[s]){if(!t[s]){if(!o&&Gn)return Gn(s);if(a)return a(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,(function(e){return i(t[s][1][e]||e)}),c,c.exports,e,t,n,r)}return n[s].exports}for(var a=Gn,s=0;s>2,o=(3&t)<<4|n>>4,l=1>6:64,c=2>4,n=(15&s)<<4|(o=a.indexOf(e.charAt(c++)))>>2,r=(3&o)<<6|(l=a.indexOf(e.charAt(c++))),u[d++]=t,64!==o&&(u[d++]=n),64!==l&&(u[d++]=r);return u}},{"./support":30,"./utils":32}],2:[function(e,t,n){var r=e("./external"),i=e("./stream/DataWorker"),a=e("./stream/Crc32Probe"),s=e("./stream/DataLengthProbe");function o(e,t,n,r,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new s("data_length")),t=this;return e.on("end",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),e},getCompressedWorker:function(){return new i(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,n){return e.pipe(new a).pipe(new s("uncompressedSize")).pipe(t.compressWorker(n)).pipe(new s("compressedSize")).withStreamInfo("compression",t)},t.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){var r=e("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},n.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){var r=e("./utils"),i=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==r.getTypeOf(e)?function(e,t,n,r){var a=i,s=r+n;e^=-1;for(var o=r;o>>8^a[255&(e^t[o])];return~e}(0|t,e,e.length,0):function(e,t,n,r){var a=i,s=r+n;e^=-1;for(var o=r;o>>8^a[255&(e^t.charCodeAt(o))];return~e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,n){n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){var r=null;r="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),a=e("./utils"),s=e("./stream/GenericWorker"),o=r?"uint8array":"array";function l(e,t){s.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}n.magic="\b\0",a.inherits(l,s),l.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(a.transformTo(o,e.data),!1)},l.prototype.flush=function(){s.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){s.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},n.compressWorker=function(e){return new l("Deflate",e)},n.uncompressWorker=function(){return new l("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){function r(e,t){var n,r="";for(n=0;n>>=8;return r}function i(e,t,n,i,s,d){var h,u,f=e.file,p=e.compression,m=d!==o.utf8encode,g=a.transformTo("string",d(f.name)),b=a.transformTo("string",o.utf8encode(f.name)),_=f.comment,v=a.transformTo("string",d(_)),y=a.transformTo("string",o.utf8encode(_)),x=b.length!==f.name.length,w=y.length!==_.length,S="",k="",C="",j=f.dir,A=f.date,z={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(z.crc32=e.crc32,z.compressedSize=e.compressedSize,z.uncompressedSize=e.uncompressedSize);var E=0;t&&(E|=8),m||!x&&!w||(E|=2048);var O=0,I=0;j&&(O|=16),"UNIX"===s?(I=798,O|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(f.unixPermissions,j)):(I=20,O|=function(e){return 63&(e||0)}(f.dosPermissions)),h=A.getUTCHours(),h<<=6,h|=A.getUTCMinutes(),h<<=5,h|=A.getUTCSeconds()/2,u=A.getUTCFullYear()-1980,u<<=4,u|=A.getUTCMonth()+1,u<<=5,u|=A.getUTCDate(),x&&(k=r(1,1)+r(l(g),4)+b,S+="up"+r(k.length,2)+k),w&&(C=r(1,1)+r(l(v),4)+y,S+="uc"+r(C.length,2)+C);var R="";return R+="\n\0",R+=r(E,2),R+=p.magic,R+=r(h,2),R+=r(u,2),R+=r(z.crc32,4),R+=r(z.compressedSize,4),R+=r(z.uncompressedSize,4),R+=r(g.length,2),R+=r(S.length,2),{fileRecord:c.LOCAL_FILE_HEADER+R+g+S,dirRecord:c.CENTRAL_FILE_HEADER+r(I,2)+R+r(v.length,2)+"\0\0\0\0"+r(O,4)+r(i,4)+g+S+v}}var a=e("../utils"),s=e("../stream/GenericWorker"),o=e("../utf8"),l=e("../crc32"),c=e("../signature");function d(e,t,n,r){s.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}a.inherits(d,s),d.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,s.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},d.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:function(e){return c.DATA_DESCRIPTOR+r(e.crc32,4)+r(e.compressedSize,4)+r(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,n){var r=e("./Uint8ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){var r=e("./DataReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){var r=e("./ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,n){var r=e("../utils"),i=e("../support"),a=e("./ArrayReader"),s=e("./StringReader"),o=e("./NodeBufferReader"),l=e("./Uint8ArrayReader");t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new l(r.transformTo("uint8array",e)):new a(r.transformTo("array",e)):new s(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,n){var r=e("./GenericWorker"),i=e("../utils");function a(e){r.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(a,r),a.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){var r=e("./GenericWorker"),i=e("../crc32");function a(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(a,r),a.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=a},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){var r=e("../utils"),i=e("./GenericWorker");function a(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(a,i),a.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){var r=e("../utils"),i=e("./GenericWorker");function a(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}r.inherits(a,i),a.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},a.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},a.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},a.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=a},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){function r(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n "+e:e}},t.exports=r},{}],29:[function(e,t,n){var r=e("../utils"),i=e("./ConvertWorker"),a=e("./GenericWorker"),s=e("../base64"),o=e("../support"),l=e("../external"),c=null;if(o.nodestream)try{c=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function d(e,t){return new l.Promise((function(n,i){var a=[],o=e._internalType,l=e._outputType,c=e._mimeType;e.on("data",(function(e,n){a.push(e),t&&t(n)})).on("error",(function(e){a=[],i(e)})).on("end",(function(){try{var e=function(e,t,n){switch(e){case"blob":return r.newBlob(r.transformTo("arraybuffer",t),n);case"base64":return s.encode(t);default:return r.transformTo(e,t)}}(l,function(e,t){var n,r=0,i=null,a=0;for(n=0;n>>6:(n<65536?t[s++]=224|n>>>12:(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63),t[s++]=128|n>>>6&63),t[s++]=128|63&n);return t}(e)},n.utf8decode=function(e){return i.nodebuffer?r.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,n,i,a,s=e.length,l=new Array(2*s);for(t=n=0;t>10&1023,l[n++]=56320|1023&i)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)}(e=r.transformTo(i.uint8array?"uint8array":"array",e))},r.inherits(c,s),c.prototype.processChunk=function(e){var t=r.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var a=t;(t=new Uint8Array(a.length+this.leftOver.length)).set(this.leftOver,0),t.set(a,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var s=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+o[e[n]]>t?n:t}(t),l=t;s!==t.length&&(i.uint8array?(l=t.subarray(0,s),this.leftOver=t.subarray(s,t.length)):(l=t.slice(0,s),this.leftOver=t.slice(s,t.length))),this.push({data:n.utf8decode(l),meta:e.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=c,r.inherits(d,s),d.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=d},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,n){var r=e("./support"),i=e("./base64"),a=e("./nodejsUtils"),s=e("./external");function o(e){return e}function l(e,t){for(var n=0;n>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=r(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,n,r,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(n<65536?t[s++]=224|n>>>12:(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63),t[s++]=128|n>>>6&63),t[s++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,i=t.length;n>10&1023,c[r++]=56320|1023&i)}return l(c,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+s[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){t.exports=function(e,t,n,r){for(var i=65535&e,a=e>>>16&65535,s=0;0!==n;){for(n-=s=2e3>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,i){var a=r,s=i+n;e^=-1;for(var o=i;o>>8^a[255&(e^t[o])];return~e}},{}],46:[function(e,t,n){var r,i=e("../utils/common"),a=e("./trees"),s=e("./adler32"),o=e("./crc32"),l=e("./messages"),c=0,d=4,h=0,u=-2,f=-1,p=4,m=2,g=8,b=9,_=286,v=30,y=19,x=2*_+1,w=15,S=3,k=258,C=k+S+1,j=42,A=113,z=1,E=2,O=3,I=4;function R(e,t){return e.msg=l[t],t}function T(e){return(e<<1)-(4e.avail_out&&(n=e.avail_out),0!==n&&(i.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function B(e,t){a._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,N(e.strm)}function D(e,t){e.pending_buf[e.pending++]=t}function M(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var n,r,i=e.max_chain_length,a=e.strstart,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-C?e.strstart-(e.w_size-C):0,c=e.window,d=e.w_mask,h=e.prev,u=e.strstart+k,f=c[a+s-1],p=c[a+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(c[(n=t)+s]===p&&c[n+s-1]===f&&c[n]===c[a]&&c[++n]===c[a+1]){a+=2,n++;do{}while(c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&al&&0!=--i);return s<=e.lookahead?s:e.lookahead}function F(e){var t,n,r,a,l,c,d,h,u,f,p=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=p+(p-C)){for(i.arraySet(e.window,e.window,p,p,0),e.match_start-=p,e.strstart-=p,e.block_start-=p,t=n=e.hash_size;r=e.head[--t],e.head[t]=p<=r?r-p:0,--n;);for(t=n=p;r=e.prev[--t],e.prev[t]=p<=r?r-p:0,--n;);a+=p}if(0===e.strm.avail_in)break;if(c=e.strm,d=e.window,h=e.strstart+e.lookahead,f=void 0,(u=a)<(f=c.avail_in)&&(f=u),n=0===f?0:(c.avail_in-=f,i.arraySet(d,c.input,c.next_in,f,h),1===c.state.wrap?c.adler=s(c.adler,d,f,h):2===c.state.wrap&&(c.adler=o(c.adler,d,f,h)),c.next_in+=f,c.total_in+=f,f),e.lookahead+=n,e.lookahead+e.insert>=S)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=S&&(e.ins_h=(e.ins_h<=S)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-S),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=S){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=S&&(e.ins_h=(e.ins_h<=S&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-S,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-S),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(F(e),0===e.lookahead&&t===c)return z;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,B(e,!1),0===e.strm.avail_out))return z;if(e.strstart-e.block_start>=e.w_size-C&&(B(e,!1),0===e.strm.avail_out))return z}return e.insert=0,t===d?(B(e,!0),0===e.strm.avail_out?O:I):(e.strstart>e.block_start&&(B(e,!1),e.strm.avail_out),z)})),new Z(4,4,8,4,U),new Z(4,5,16,8,U),new Z(4,6,32,32,U),new Z(4,4,16,16,W),new Z(8,16,32,32,W),new Z(8,16,128,128,W),new Z(8,32,128,256,W),new Z(32,128,258,1024,W),new Z(32,258,258,4096,W)],n.deflateInit=function(e,t){return $(e,t,g,15,8,0)},n.deflateInit2=$,n.deflateReset=V,n.deflateResetKeep=G,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?u:(e.state.gzhead=t,h):u},n.deflate=function(e,t){var n,i,s,l;if(!e||!e.state||5>8&255),D(i,i.gzhead.time>>16&255),D(i,i.gzhead.time>>24&255),D(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),D(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(D(i,255&i.gzhead.extra.length),D(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=o(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(D(i,0),D(i,0),D(i,0),D(i,0),D(i,0),D(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),D(i,3),i.status=A);else{var f=g+(i.w_bits-8<<4)<<8;f|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(f|=32),f+=31-f%31,i.status=A,M(i,f),0!==i.strstart&&(M(i,e.adler>>>16),M(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(s=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),N(e),s=i.pending,i.pending!==i.pending_buf_size));)D(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),N(e),s=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexs&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),0===l&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),N(e),s=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexs&&(e.adler=o(e.adler,i.pending_buf,i.pending-s,s)),0===l&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&N(e),i.pending+2<=i.pending_buf_size&&(D(i,255&e.adler),D(i,e.adler>>8&255),e.adler=0,i.status=A)):i.status=A),0!==i.pending){if(N(e),0===e.avail_out)return i.last_flush=-1,h}else if(0===e.avail_in&&T(t)<=T(n)&&t!==d)return R(e,-5);if(666===i.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==i.lookahead||t!==c&&666!==i.status){var p=2===i.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(F(e),0===e.lookahead)){if(t===c)return z;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(B(e,!1),0===e.strm.avail_out))return z}return e.insert=0,t===d?(B(e,!0),0===e.strm.avail_out?O:I):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?z:E}(i,t):3===i.strategy?function(e,t){for(var n,r,i,s,o=e.window;;){if(e.lookahead<=k){if(F(e),e.lookahead<=k&&t===c)return z;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=S&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=S?(n=a._tr_tally(e,1,e.match_length-S),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(B(e,!1),0===e.strm.avail_out))return z}return e.insert=0,t===d?(B(e,!0),0===e.strm.avail_out?O:I):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?z:E}(i,t):r[i.level].func(i,t);if(p!==O&&p!==I||(i.status=666),p===z||p===O)return 0===e.avail_out&&(i.last_flush=-1),h;if(p===E&&(1===t?a._tr_align(i):5!==t&&(a._tr_stored_block(i,0,0,!1),3===t&&(P(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),N(e),0===e.avail_out))return i.last_flush=-1,h}return t!==d?h:i.wrap<=0?1:(2===i.wrap?(D(i,255&e.adler),D(i,e.adler>>8&255),D(i,e.adler>>16&255),D(i,e.adler>>24&255),D(i,255&e.total_in),D(i,e.total_in>>8&255),D(i,e.total_in>>16&255),D(i,e.total_in>>24&255)):(M(i,e.adler>>>16),M(i,65535&e.adler)),N(e),0=n.w_size&&(0===o&&(P(n.head),n.strstart=0,n.block_start=0,n.insert=0),f=new i.Buf8(n.w_size),i.arraySet(f,t,p-n.w_size,n.w_size,0),t=f,p=n.w_size),l=e.avail_in,c=e.next_in,d=e.input,e.avail_in=p,e.next_in=0,e.input=t,F(n);n.lookahead>=S;){for(r=n.strstart,a=n.lookahead-(S-1);n.ins_h=(n.ins_h<>>=y=v>>>24,p-=y,0==(y=v>>>16&255))j[a++]=65535&v;else{if(!(16&y)){if(!(64&y)){v=m[(65535&v)+(f&(1<>>=y,p-=y),p<15&&(f+=C[r++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(!(64&y)){v=g[(65535&v)+(f&(1<>>=y,p-=y,(y=a-s)>3,f&=(1<<(p-=x<<3))-1,e.next_in=r,e.next_out=a,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function b(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=u,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(f),t.distcode=t.distdyn=new r.Buf32(p),t.sane=1,t.back=-1,d):h}function _(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,b(e)):h}function v(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(r.arraySet(s.window,t,n-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(a=s.wsize-s.wnext)&&(a=i),r.arraySet(s.window,t,n-i,a,s.wnext),(i-=a)?(r.arraySet(s.window,t,n-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=a,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,n.check=a(n.check,F,2,0),x=y=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&y)<<8)+(y>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&y)){e.msg="unknown compression method",n.mode=30;break}if(x-=4,N=8+(15&(y>>>=4)),0===n.wbits)n.wbits=N;else if(N>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<>8&1),512&n.flags&&(F[0]=255&y,F[1]=y>>>8&255,n.check=a(n.check,F,2,0)),x=y=0,n.mode=3;case 3:for(;x<32;){if(0===_)break e;_--,y+=f[g++]<>>8&255,F[2]=y>>>16&255,F[3]=y>>>24&255,n.check=a(n.check,F,4,0)),x=y=0,n.mode=4;case 4:for(;x<16;){if(0===_)break e;_--,y+=f[g++]<>8),512&n.flags&&(F[0]=255&y,F[1]=y>>>8&255,n.check=a(n.check,F,2,0)),x=y=0,n.mode=5;case 5:if(1024&n.flags){for(;x<16;){if(0===_)break e;_--,y+=f[g++]<>>8&255,n.check=a(n.check,F,2,0)),x=y=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(_<(j=n.length)&&(j=_),j&&(n.head&&(N=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,f,g,j,N)),512&n.flags&&(n.check=a(n.check,f,j,g)),_-=j,g+=j,n.length-=j),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===_)break e;for(j=0;N=f[g+j++],n.head&&N&&n.length<65536&&(n.head.name+=String.fromCharCode(N)),N&&j<_;);if(512&n.flags&&(n.check=a(n.check,f,j,g)),_-=j,g+=j,N)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===_)break e;for(j=0;N=f[g+j++],n.head&&N&&n.length<65536&&(n.head.comment+=String.fromCharCode(N)),N&&j<_;);if(512&n.flags&&(n.check=a(n.check,f,j,g)),_-=j,g+=j,N)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;x<16;){if(0===_)break e;_--,y+=f[g++]<>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;x<32;){if(0===_)break e;_--,y+=f[g++]<>>=7&x,x-=7&x,n.mode=27;break}for(;x<3;){if(0===_)break e;_--,y+=f[g++]<>>=1)){case 0:n.mode=14;break;case 1:if(k(n),n.mode=20,6!==t)break;y>>>=2,x-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}y>>>=2,x-=2;break;case 14:for(y>>>=7&x,x-=7&x;x<32;){if(0===_)break e;_--,y+=f[g++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&y,x=y=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(j=n.length){if(_>>=5,x-=5,n.ndist=1+(31&y),y>>>=5,x-=5,n.ncode=4+(15&y),y>>>=4,x-=4,286>>=3,x-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,D={bits:n.lenbits},B=o(0,n.lens,0,19,n.lencode,0,n.work,D),n.lenbits=D.bits,B){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,I=65535&L,!((E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>>=E,x-=E,n.lens[n.have++]=I;else{if(16===I){for(M=E+2;x>>=E,x-=E,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}N=n.lens[n.have-1],j=3+(3&y),y>>>=2,x-=2}else if(17===I){for(M=E+3;x>>=E)),y>>>=3,x-=3}else{for(M=E+7;x>>=E)),y>>>=7,x-=7}if(n.have+j>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;j--;)n.lens[n.have++]=N}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,D={bits:n.lenbits},B=o(l,n.lens,0,n.nlen,n.lencode,0,n.work,D),n.lenbits=D.bits,B){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,D={bits:n.distbits},B=o(c,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,D),n.distbits=D.bits,B){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(6<=_&&258<=v){e.next_out=b,e.avail_out=v,e.next_in=g,e.avail_in=_,n.hold=y,n.bits=x,s(e,S),b=e.next_out,p=e.output,v=e.avail_out,g=e.next_in,f=e.input,_=e.avail_in,y=n.hold,x=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;O=(L=n.lencode[y&(1<>>16&255,I=65535&L,!((E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>R)])>>>16&255,I=65535&L,!(R+(E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>>=R,x-=R,n.back+=R}if(y>>>=E,x-=E,n.back+=E,n.length=I,0===O){n.mode=26;break}if(32&O){n.back=-1,n.mode=12;break}if(64&O){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&O,n.mode=22;case 22:if(n.extra){for(M=n.extra;x>>=n.extra,x-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;O=(L=n.distcode[y&(1<>>16&255,I=65535&L,!((E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>R)])>>>16&255,I=65535&L,!(R+(E=L>>>24)<=x);){if(0===_)break e;_--,y+=f[g++]<>>=R,x-=R,n.back+=R}if(y>>>=E,x-=E,n.back+=E,64&O){e.msg="invalid distance code",n.mode=30;break}n.offset=I,n.extra=15&O,n.mode=24;case 24:if(n.extra){for(M=n.extra;x>>=n.extra,x-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===v)break e;if(j=S-v,n.offset>j){if((j=n.offset-j)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}A=j>n.wnext?(j-=n.wnext,n.wsize-j):n.wnext-j,j>n.length&&(j=n.length),z=n.window}else z=p,A=b-n.offset,j=n.length;for(v_?(y=D[M+h[k]],T[P+h[k]]):(y=96,0),f=1<>E)+(p-=f)]=v<<24|y<<16|x,0!==p;);for(f=1<>=1;if(0!==f?(R&=f-1,R+=f):R=0,k++,0==--N[S]){if(S===j)break;S=t[n+h[k]]}if(A>>7)]}function D(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function M(e,t,n){e.bi_valid>m-n?(e.bi_buf|=t<>m-e.bi_valid,e.bi_valid+=n-m):(e.bi_buf|=t<>>=1,n<<=1,0<--t;);return n>>>1}function U(e,t,n){var r,i,a=new Array(p+1),s=0;for(r=1;r<=p;r++)a[r]=s=s+n[r-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=F(a[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=n;n--)G(e,a,n);for(i=l;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,a,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,a[2*i]=a[2*n]+a[2*r],e.depth[i]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,a[2*n+1]=a[2*r+1]=i,e.heap[1]=i++,G(e,a,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,i,a,s,o,l=t.dyn_tree,c=t.max_code,d=t.stat_desc.static_tree,h=t.stat_desc.has_stree,u=t.stat_desc.extra_bits,m=t.stat_desc.extra_base,g=t.stat_desc.max_length,b=0;for(a=0;a<=p;a++)e.bl_count[a]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n>=7;r>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return i;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return a;for(t=32;t>>3,(o=e.static_len+3+7>>>3)<=s&&(s=o)):s=o=n+5,n+4<=s&&-1!==t?X(e,t,n,r):4===e.strategy||o===s?(M(e,2+(r?1:0),3),V(e,C,j)):(M(e,4+(r?1:0),3),function(e,t,n,r){var i;for(M(e,t-257,5),M(e,n-1,5),M(e,r-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(z[n]+c+1)]++,e.dyn_dtree[2*B(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){M(e,2,3),L(e,b,C),function(e){16===e.bi_valid?(D(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,n){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,n){(function(e){!function(e,t){if(!e.setImmediate){var n,r,i,a,s=1,o={},l=!1,c=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,n="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick((function(){u(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(a="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",f,!1):e.attachEvent("onmessage",f),function(t){e.postMessage(a+t,"*")}):e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){u(e.data)},function(e){i.port2.postMessage(e)}):c&&"onreadystatechange"in c.createElement("script")?(r=c.documentElement,function(e){var t=c.createElement("script");t.onreadystatechange=function(){u(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):function(e){setTimeout(u,0,e)},d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r - - (c) 2009-2016 Stuart Knightley - Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - - JSZip uses the library pako released under the MIT license : - https://github.com/nodeca/pako/blob/main/LICENSE - */const Kn=F(Yn),qn=async(e,t,n,r,i)=>{const a=document.querySelector(`svg#${e}`);if(!a)throw new Error("Requested canvas SVG element not found");const s=Number(a.style.getPropertyValue("--rmg-svg-height").match(/\d+/g)?.[0]),o=a.cloneNode(!0);o.setAttribute("height",(s*(i||100)/100).toString()),o.style.setProperty("all","initial"),["share"].map((e=>[...([...document.querySelectorAll("link")].filter((t=>t.id==="css_"+e))[0]?.sheet).cssRules].map((e=>e.cssText)).join(" "))).forEach((e=>{const t=document.createElement("style");t.textContent=e,o.prepend(t)})),o.querySelector("rect#canvas-border")?.setAttribute("stroke",r?"black":"none"),o.querySelector("rect#canvas-bg")?.setAttribute("fill",n?"none":"white");try{const e=await(Qt[t].fonts?.())??[],n=(await Promise.allSettled(e.map(H.getFontCSS))).filter((e=>"fulfilled"===e.status)).map((e=>e.value)),r=document.createElement("style");r.textContent=n.join("\n"),o.prepend(r)}catch(l){console.warn("Failed to fonts. Fonts in the exported PNG will be missing.",l)}return o},Xn=async(e,t,n)=>{const r=e.viewBox.baseVal.width,i=e.viewBox.baseVal.height,a=document.querySelectorAll("canvas")[0];a.width=Number(r)*window.devicePixelRatio*t,a.height=Number(i)*window.devicePixelRatio*t,e.setAttribute("width",a.width.toString()),e.setAttribute("height",a.height.toString());const s=a.getContext("2d");return s.clearRect(0,0,a.width,a.height),e.querySelectorAll(".rmg-name__en.rmg-name__gzmtr--next2-dest").forEach((e=>e.setAttribute("font-size","8.5px"))),e.querySelectorAll("text, tspan").forEach((e=>{const t=window.getComputedStyle(e);e.setAttribute("font-family",t.fontFamily),e.setAttribute("fill",t.fill),e.setAttribute("dominant-baseline",t.dominantBaseline),e.setAttribute("text-anchor",t.textAnchor||"")})),new Promise(((t,r)=>{const i=new Image;i.onload=()=>{setTimeout((()=>{s.drawImage(i,0,0,a.width,a.height),a.toBlob((e=>{e?t(e):r("Canvas blob is null")}),"image/png")}),n?2e3:0)},i.onerror=r,i.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(e.outerHTML)))}))};function Jn(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),a=J(),[s,o]=B.useState(""),[c,d]=B.useState(!1),[u,g]=B.useState(!1),[b,w]=B.useState(100),[S,k]=B.useState("png"),C=Z((e=>e.app.canvasToShow)),{style:j,stn_list:A,current_stn_idx:z,line_name:E}=Z((e=>e.param));B.useEffect((()=>{""===s||C.includes(s)||o("")}),[C]);const O=pe[j].reduce(((e,t)=>C.includes(t)?{...e,[t]:i("CanvasType."+t)}:{...e}),{"":i("DownloadModal.pleaseSelect")}),I=[25,33,50,67,75,80,90,100,110,125,150,175,200,250,300,400,500].reduce(((e,t)=>({...e,[t]:`${t}%`})),{}),R={png:i("DownloadModal.png"),svg:i("DownloadModal.svg")},T=[{type:"select",label:i("DownloadModal.canvas"),value:s,options:O,disabledOptions:[""],onChange:e=>o(e),minW:"full"},{type:"switch",label:i("DownloadModal.transparent"),isChecked:c,onChange:d,oneLine:!0,minW:"full"},{type:"switch",label:i("DownloadModal.showBorder"),isChecked:u,onChange:g,oneLine:!0,minW:"full"},{type:"select",label:i("DownloadModal.scale"),value:b,options:I,onChange:e=>w(e)},{type:"select",label:i("DownloadModal.format"),value:S,options:R,onChange:e=>k(e)}],P=async e=>{a(pt(0));const t="current"===e?[z]:Object.keys(A).filter((e=>!["linestart","lineend"].includes(e))),n=new Kn;for(const r in t){a(pt((Number(r)+1)/t.length*100));const e=t[r];a(nt(e)),await Mt(500);const i=await qn(s,j,c,u,b);document.body.appendChild(i);const o=`rmg.${e}.${A[e].localisedName.en}`.replaceAll(/\\|\/|\||\*|:|\?|<|>|"/g,"_");if("png"===S){const e=Lt()&&"0"===r,a=await Xn(i,b/100,e);t.length>1?n.file(`${o}.png`,a):Ft(`${o}.png`,a)}else if("svg"===S){i.removeAttribute("height");const e="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(i.outerHTML)));t.length>1?n.file(`${o}.svg`,e.split("base64,")[1],{base64:!0}):Ut(o+".svg","image/svg+xml",i.outerHTML)}document.body.removeChild(i)}if(t.length>1){const e=await n.generateAsync({type:"blob"}),t=`rmg.${E[0]}.${E[1]}.zip`.replaceAll(" ","_");Ft(t,e)}H.event(G.DOWNLOAD_IMAGES,{canvasToDownload:s,style:j,option:e,format:S}),a(nt(z)),a(mt()),r()};return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[n.jsx(_,{children:i("DownloadModal.title")}),n.jsx(v,{}),n.jsx(y,{children:n.jsx(Dt,{fields:T})}),n.jsx(x,{children:n.jsxs(l,{children:[n.jsx(h,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>P("current"),isDisabled:!s,children:i("DownloadModal.downloadOne")}),j!==Q.GZMTR&&n.jsx(h,{colorScheme:"primary",variant:"outline",size:"sm",onClick:()=>P("all"),isDisabled:!s,children:i("DownloadModal.downloadAll")})]})})]})]})}function Qn(){const{t:e}=D(),[t,r]=B.useState(!1),{paramConfig:i}=Z((e=>e.app)),a=Z((e=>e.param));return n.jsxs(S,{children:[n.jsx(k,{as:h,variant:"ghost",size:"sm",rightIcon:n.jsx(gt,{}),children:e("DownloadActions.downloads")}),n.jsxs(C,{children:[n.jsx(j,{onClick:()=>{const e=Wt(a);Ut(`RMG_${i?.id}.json`,"application/json",JSON.stringify(e)),H.event(G.DOWNLOAD_PARAM,{style:a.style})},children:e("DownloadActions.configFile")}),n.jsx(j,{onClick:()=>r(!0),children:e("DownloadActions.images")})]}),n.jsx(Jn,{isOpen:t,onClose:()=>r(!1)})]})}function er(){const[e,t]=U();return[e,e=>{t(e);const n=0===Object.keys(e).length?"/":"/?"+new URLSearchParams(e);H.updateAppMetadata({hash:n})}]}function tr(){const{t:e}=D(),t=M(),[,r]=er();return n.jsxs(l,{ml:"auto",w:"fit-content",children:[n.jsx(h,{variant:"ghost",size:"sm",leftIcon:n.jsx(bt,{}),onClick:()=>{t(Je(Qe.CLOSE)),t(vt(void 0)),r({})},children:e("All projects")}),n.jsx(Qn,{}),n.jsx(h,{variant:"solid",size:"sm",colorScheme:"primary",leftIcon:n.jsx(_t,{}),onClick:()=>t(Je(Qe.STYLE)),children:e("HeaderActions.editStyle")})]})}function nr(){const{t:e}=D(),t=J(),{canvasToShow:r,canvasScale:i}=Z((e=>e.app)),a=Z((e=>e.param.style)),s=Object.values(Q).reduce(((t,n)=>({...t,[n]:e("RmgStyle."+n)})),{}),o=pe[a].map((t=>({label:e("CanvasType."+t),value:t}))),l=[{type:"select",label:e("Style"),value:a,options:s,onChange:e=>(e=>{t(jt(e))})(e)},{type:"custom",label:e("View"),component:n.jsx(yt,{displayValue:e("Select canvas"),selections:o,defaultValue:r,onChange:e=>t(xt(e))})},{type:"slider",label:e("Canvas scale"),value:i,min:.1,max:2,step:.01,onChange:e=>t(wt(e)),leftIcon:n.jsx(St,{}),rightIcon:n.jsx(kt,{})}];return n.jsxs(Ct,{children:[n.jsx(Dt,{fields:l,minW:160}),n.jsx(tr,{})]})}const rr=(e,t,n,r)=>(i,a)=>{const s=a().param.stn_list;let o=Xe(6);for(;o in s;)o=Xe(6);const l=At(o);if("new"!==e){const e={...s,[t]:{...s[t],children:s[t].children.map((e=>e===n?o:e)),branch:{left:s[t].branch?.left,right:s[t].branch?.right?.[1]===n?s[t].branch?.right?.with(1,o):s[t].branch?.right}},[n]:{...s[n],parents:s[n].parents.map((e=>e===t?o:e)),branch:{left:s[n].branch?.left?.[1]===t?s[n].branch?.left?.with(1,o):s[n].branch?.left,right:s[n].branch?.right}},[o]:{...l,parents:[t],children:[n]}};return i(an(e)),o}{if(!r)return!1;const e={...s,[t]:{...s[t],children:"upper"===r?[o,s[t].children[0]]:[s[t].children[0],o],branch:{left:s[t].branch?.left,right:[ue.through,o]}},[n]:{...s[n],parents:"upper"===r?[o,s[n].parents[0]]:[s[n].parents[0],o],branch:{left:[ue.through,o],right:s[n].branch?.right}},[o]:{...l,parents:[t],children:[n]}};return i(an(e)),o}},ir=(e,t)=>(n,r)=>{const i=r().param.stn_list,a=r().helper.branches;return a[0].includes(e)&&a[0].includes(t)?a[0].indexOf(e)>=a[0].indexOf(t)?"Not in correct ordering":"linestart"===e&&"lineend"===t?"Should not be parallel to main line":"linestart"===e&&1===a[0].indexOf(t)?"Branch should not be open jaw from the first station":"lineend"===t&&a[0].indexOf(e)===a[0].length-2?"Branch should not be open jaw from the last station":i[e].children.length>1||i[t].parents.length>1?"Branch already exist":a.slice(1).some((n=>n.slice(1,-1).includes(e)||n.slice(1,-1).includes(t)))?"Cannot branch out from existing branch":a[0].slice(a[0].indexOf(e)+1,a[0].indexOf(t)).every((e=>1===i[e].parents.length&&1===i[e].children.length))?"":"One or more stations between both ends are branching out":"Branch should end at main line"};function ar(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),s=J(),o=Z((e=>e.app.selectedBranch)),{style:l,stn_list:c}=Z((e=>e.param)),d=Z((e=>e.helper.branches)),[u,w]=B.useState(o),[S,k]=B.useState("before"),[C,j]=B.useState(""),[A,z]=B.useState(!1);B.useEffect((()=>{w(o)}),[o]),B.useEffect((()=>{t||z(!1)}),[t]);const E=d[Number(u)]?.slice(1,-1)??[],O=[{type:"select",label:i("AddStationModal.where"),value:u,options:{...d.reduce(((e,t,n)=>({...e,[n]:0===n?i("AddStationModal.main"):l===Q.SHMetro&&An(t,c)?i("AddStationModal.external")+" "+n:i("AddStationModal.branch")+" "+n})),{})},onChange:e=>R(e),minW:"full"},{type:"select",label:i("AddStationModal.preposition"),value:S,options:{before:i("AddStationModal.before"),after:i("AddStationModal.after")},onChange:e=>k(e)},{type:"select",label:i("AddStationModal.pivot"),value:C,options:(I=E,I.reduce(((e,t)=>({...e,[t]:c[t]?.localisedName.zh+"/"+c[t]?.localisedName.en})),{"":i("AddStationModal.pleaseSelect")})),disabledOptions:[""],onChange:e=>j(e)}];var I;const R=e=>{w(e),j("")};return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[A&&n.jsxs(g,{status:"error",variant:"solid",size:"xs",children:[n.jsx(b,{}),i("AddStationModal.error")]}),n.jsxs(a,{position:"relative",children:[n.jsx(_,{children:i("AddStationModal.title")}),n.jsx(v,{})]}),n.jsx(y,{children:n.jsx(Dt,{fields:O})}),n.jsx(x,{children:n.jsx(h,{colorScheme:"primary",onClick:()=>{const e=s(((e,t,n)=>(r,i)=>{const a=i().helper.branches[e];if(a?.length){if("before"===t){const t=a[a.indexOf(n)-1];return r(rr(e.toString(),t,n))}{const t=a[a.indexOf(n)+1];return r(rr(e.toString(),n,t))}}return!1})(u,S,C));e?(r(),s(et(e)),s(Je(Qe.STATION))):(console.log("false here"),z(!0)),H.event(G.ADD_STATION,{style:l,branchIndex:u,success:e})},isDisabled:!C,children:i("Confirm")})})]})]})}function sr(e){const{isOpen:t,onClose:r}=e,{t:i}=D(),a=J(),[s,o]=B.useState("new"),[l,c]=B.useState(""),[d,u]=B.useState(""),[g,b]=B.useState("upper"),[w,S]=B.useState(""),[k,C]=B.useState(""),{style:j,stn_list:A}=Z((e=>e.param));B.useEffect((()=>{t||(o("new"),c(""),u(""))}),[t]);const z=(E=a(((e,t)=>{const n=t().param.stn_list;return t().helper.branches[0].filter((e=>{const t=n[e].parents.length+n[e].children.length===4,r=0===jn(e,n);return!t&&r}))})),E.reduce(((e,t)=>({...e,[t]:"linestart"===t?`(${i("LEFT END")})`:"lineend"===t?`(${i("RIGHT END")})`:A[t]?.localisedName.zh+"/"+A[t]?.localisedName.en})),{"":i("Please select...")}));var E;const O=[{type:"select",label:i("NewBranchModal.where"),value:s,options:{new:i("NewBranchModal.new"),ext:i("NewBranchModal.ext")},disabledOptions:j===Q.SHMetro?[]:["ext"],onChange:e=>I(e),minW:"full"},{type:"select",label:i("NewBranchModal.from"),value:l,options:z,disabledOptions:[""],onChange:e=>R(e),isInvalid:Boolean(w)},{type:"select",label:i("NewBranchModal.to"),value:d,options:z,disabledOptions:[""],onChange:e=>T(e),isInvalid:Boolean(k)},{type:"select",label:i("NewBranchModal.position"),value:g,options:{upper:i("NewBranchModal.upper"),lower:i("NewBranchModal.lower")},onChange:e=>b(e),minW:"full",hidden:"new"!==s||j===Q.SHMetro}],I=e=>{o(e),c(""),u(""),S(""),C("")},R=e=>{c(e),S(""),e&&d&&C(a(ir(e,d)))},T=e=>{u(e),C(""),l&&e&&S(a(ir(l,e)))},P=Boolean(!l||!d||w||k);return n.jsxs(f,{isOpen:t,onClose:r,children:[n.jsx(p,{}),n.jsxs(m,{children:[n.jsx(_,{children:i("NewBranchModal.title")}),n.jsx(v,{}),n.jsx(y,{children:n.jsx(Dt,{fields:O})}),n.jsx(x,{children:n.jsx(h,{colorScheme:"primary",title:P?w||k:i("Confirm"),onClick:()=>{let e;e="ext"===s?a(rr("new",l,d,"lower")):j===Q.SHMetro?a(rr("new",l,d,"upper")):a(rr("new",l,d,g)),e&&(r(),H.event(G.ADD_BRANCH,{style:j,where:s}))},isDisabled:P,children:i("Confirm")})})]})]})}const or=B.lazy((()=>W((()=>t.import("./station-ag-grid-legacy-CvU28TzN.js")),void 0)));function lr(){const{t:e}=D(),t=J(),[r,i]=B.useState(!1),[s,c]=B.useState(!1),d=Z((e=>e.app.selectedBranch)),{style:u,stn_list:f,loop:p}=Z((e=>e.param)),m=Z((e=>e.helper.branches));return n.jsxs(a,{flex:1,overflow:"hidden",children:[n.jsxs(A,{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",index:d,onChange:e=>t(zt(e)),children:[n.jsxs(z,{children:[m.map(((t,r)=>0===r?n.jsx(E,{children:e(p?"Loop line":"GridTabs.main")},r):u===Q.SHMetro&&An(t,f)?n.jsx(E,{children:e("GridTabs.external")+" "+r},r):n.jsx(E,{children:e("GridTabs.branch")+" "+r},r))),n.jsx(o,{size:"sm",variant:"ghost",alignSelf:"center","aria-label":"New branch",onClick:()=>c(!0),icon:n.jsx(ae,{}),isDisabled:p}),n.jsxs(l,{marginLeft:"auto",marginRight:1,children:[n.jsx(h,{variant:"outline",size:"xs",leftIcon:n.jsx(ae,{}),onClick:()=>i(!0),children:e("GridTabs.addStation")}),n.jsx(h,{size:"xs",colorScheme:"primary",onClick:()=>{t(Je(Qe.BRANCH))},children:e("GridTabs.editLine")})]})]}),n.jsx(O,{flex:1,overflowY:"auto",children:m.map(((e,t)=>n.jsx(I,{padding:0,h:"100%",position:"relative",children:n.jsx($,{suspenseFallback:n.jsx(V,{isIndeterminate:!0}),children:n.jsx(or,{branchIndex:t})})},t)))})]}),n.jsx(ar,{isOpen:r,onClose:()=>i(!1)}),n.jsx(sr,{isOpen:s,onClose:()=>c(!1)})]})}function cr(){const e=J(),t=Z((e=>e.app.globalAlerts));return n.jsx(n.Fragment,{children:Object.entries(t).map((([t,{message:r,url:i,linkedApp:a}])=>n.jsxs(g,{status:t,variant:"solid",size:"xs",pl:3,pr:1,py:0,children:[n.jsx(b,{}),a?n.jsx(R,{onClick:()=>(e=>{H.isStandaloneWindow()?window.open(`/${e}`,"_blank"):H.openApp({appId:e})})(a),children:r}):i?n.jsx(R,{href:i,target:"_blank",children:r}):r,n.jsx(w,{ml:"auto",onClick:()=>e(Et(t))})]},t)))})}const dr=e=>{document.title=e,setTimeout((()=>{H.updateAppMetadata({title:e})}),200)};function hr(){const{t:e}=D(),[t]=er(),r=t.get("project"),s=Z((e=>e.app.isLoading)),[o,l]=B.useState(!1);return B.useEffect((()=>{if(H.isStandaloneWindow()&&!H.storage.get(Ot.DO_NOT_SHOW_RMT_MSG)&&l(!0),r){const t=Zt(r);dr(t?.name??e("Project")+" "+r)}}),[]),n.jsxs(It,{children:[s&&n.jsx(V,{isIndeterminate:s<0,value:s>=0?s:void 0}),n.jsx(nr,{}),o&&n.jsxs(g,{status:"info",variant:"solid",size:"xs",pl:3,pr:1,py:1,children:[n.jsx(b,{}),n.jsxs(c,{sx:{"& a, button":{fontWeight:"bold",textDecoration:"underline"}},children:[e("Try out")," ",n.jsx(R,{href:"/?app=rmg",isExternal:!0,children:e("Rail Map Toolkit")})," ",e("now and enjoy an even better rail map design experience!")," ",n.jsx(R,{as:"button",ml:"auto",onClick:()=>l(!1),children:e("Close")})," | ",n.jsx(R,{as:"button",onClick:()=>{l(!1),H.storage.set(Ot.DO_NOT_SHOW_RMT_MSG,"true")},children:e("Don't show me again")})]})]}),n.jsx(cr,{}),n.jsxs(i,{flex:1,overflow:"hidden",position:"relative",children:[n.jsxs(i,{as:"section",direction:"column",flex:1,ml:1,mr:1,overflow:"hidden",children:[n.jsx(a,{children:n.jsx(tn,{})}),n.jsx(lr,{})]}),n.jsx(Hn,{})]}),n.jsx("canvas",{style:{display:"none"}})]})}const ur={h:800,maxH:"70%","& iframe":{h:"100%",w:"100%"}};function fr(e){const{isOpen:t,onClose:r,onImport:i}=e,[a]=B.useState(Xe()),s="/rmg-templates/#/import?"+new URLSearchParams({parentComponent:H.getAppName(),parentId:a});return B.useEffect((()=>{const e=new BroadcastChannel("rmg-templates-bridge--"+a);return e.onmessage=e=>{const{event:t,meta:n,data:a}=e.data;console.log("[rmg] Received event from RMG Templates app clip:",t),"CLOSE"===t?r():"IMPORT"===t&&i(a,n.name)},()=>{e.close()}}),[]),n.jsx(ct,{size:"xl",isOpen:t,onClose:r,sx:ur,children:n.jsx("iframe",{src:s,loading:"eager"})})}const pr={flexWrap:"wrap",flex:"1 1 0%",minW:120,"& button":{w:"100%",m:1}};function mr(e){const{selectedParam:t,disableNew:r,onError:a}=e,{t:s}=D(),[,o]=er(),[l,c]=B.useState(!1),d=B.useRef(null),u=B.useRef(null);return B.useEffect((()=>{t&&u.current?.focus()}),[t]),n.jsxs(i,{sx:pr,children:[n.jsx(h,{leftIcon:n.jsx(ae,{}),onClick:()=>{const e=Nt(Q.MTR,H.getLanguage()),t=Ht(JSON.stringify(e));o({project:t}),H.event(G.NEW_PARAM,{})},isDisabled:r,children:s("Blank project")}),n.jsx(h,{leftIcon:n.jsx(Rt,{}),onClick:()=>c(!0),isDisabled:r,children:s("Open template")}),n.jsx(h,{leftIcon:n.jsx(Tt,{}),onClick:()=>d.current?.click(),isDisabled:r,children:s("Import project")}),n.jsx(h,{ref:u,colorScheme:"primary",leftIcon:n.jsx(Pt,{}),onClick:()=>{t&&(o({project:t}),H.event(G.OPEN_PARAM,{}))},isDisabled:void 0===t,children:s("Open selected")}),n.jsx("input",{ref:d,type:"file",accept:".json",hidden:!0,onChange:async e=>{const t=e.target.files?.[0];Bt.info("handleImportProject(), received file",t);try{if(t)if("application/json"!==t.type)a(s("OpenActions.invalidType"));else{const e=await Gt(t),n=Ht(e);o({project:n}),H.event(G.UPLOAD_PARAM,{})}else a(s("OpenActions.unknownError"))}catch(n){a(s("OpenActions.unknownError")),Bt.error("handleImportProject(), Unknown error occurred while parsing the uploaded file",n)}e.target.value=""},"data-testid":"file-upload"}),n.jsx(fr,{isOpen:l,onClose:()=>c(!1),onImport:(e,t)=>{const n=Ht(JSON.stringify(e),t);o({project:n})}})]})}const gr={flexDirection:"column",p:2,h3:{m:2},"& > div":{m:2,flexWrap:"wrap",flexDirection:{base:"column",md:"row"}}};function br(e){const{downloading:t}=e,{t:r}=D(),[a]=er(),o=a.get("project"),[l,c]=B.useState([]),[d,h]=B.useState(),u=B.useRef(null),f=T();return B.useEffect((()=>{dr(r("Manage projects"))}),[]),B.useEffect((()=>{c(Vt())}),[t]),P({ref:u,handler:()=>h(void 0)}),n.jsxs(It,{justifyContent:"center",children:[o&&n.jsx(V,{isIndeterminate:!0}),n.jsx(N,{children:n.jsxs(re,{sx:gr,children:[n.jsx(s,{as:"h3",size:"lg",children:r("Saved projects")}),n.jsxs(i,{ref:u,children:[n.jsx($t,{paramRegistry:l,downloading:t,selectedParam:d,onParamSelect:h,onParamRemove:e=>{H.storage.remove(Ot.PARAM_BY_ID+e),H.storage.remove(Ot.PARAM_CONFIG_BY_ID+e),h(void 0),c(Vt()),H.event(G.REMOVE_PARAM,{})},onParamUpdate:e=>{const{id:t,name:n,lastModified:r}=e;t&&(H.storage.set(Ot.PARAM_CONFIG_BY_ID+t,JSON.stringify({name:n,lastModified:r})),h(void 0),c(Vt()),H.event(G.UPDATE_PARAM_CONFIG,{}))}}),n.jsx(mr,{selectedParam:d,disableNew:l.length>=10,onError:e=>{f({description:e,status:"error",duration:1e4,isClosable:!0})}})]})]})})]})}const _r=Object.freeze(Object.defineProperty({__proto__:null,default:function(){const{t:e}=D(),t=J(),{paramConfig:r}=Z((e=>e.app)),[i,a]=er(),s=i.get("project"),o=i.get("external"),[l,c]=B.useState(!1),[d,h]=B.useState(),u=T();return B.useEffect((()=>{if(Bt.info(`searchParam: project=${s}, external=${o}`),s&&o)Bt.warn(", Both param ID and external URL are provided. External URL will be ignored."),a({project:s});else if(s)u.closeAll(),s===r?.id?(Bt.info(", Store param ID matches URL param ID. Rendering app view..."),c(!0)):(Bt.info(`, Loading app view for param (ID=${s})...`),t((e=>async t=>{try{const{config:r,param:i}=Yt(e);if(!i)return!1;const a={id:e,...r??{}},s=Kt(i);try{const e=await qt(s);t(vt(a)),t(nn(e))}catch(n){console.warn("Unable to update themes",n),t(vt(a)),t(nn(s))}return!0}catch(r){return console.warn("Failed to parse param.",r),!1}})(s)).then((t=>{t?c(!0):(Bt.info(`, Failed to read param (ID=${s}). Rendering param selector view...`),u({description:e("Project selected is invalid or corrupted."),status:"error",duration:1e4,isClosable:!0}),a({}))})));else if(o){Bt.info(", External project URl is provided. Downloading project...");const t=decodeURIComponent(o);h(t),Xt(t).then((n=>{n?a({project:n}):(Bt.info(`, Failed to download param from ${t}. Rendering param selector view...`),u({description:e("External URL cannot be opened."),status:"error",duration:1e4,isClosable:!0}),a({})),h(void 0)}))}else Bt.info(", No URL param ID or external URL provided. Rendering param selector view..."),c(!1)}),[s,o]),l?n.jsx(hr,{}):n.jsx(br,{downloading:d})}},Symbol.toStringTag,{value:"Module"}));e("a",_r)}}})); diff --git a/assets/index-Dcvy1DT7.js b/assets/index-B75st-hO.js similarity index 97% rename from assets/index-Dcvy1DT7.js rename to assets/index-B75st-hO.js index ce3810f9..8e975be3 100644 --- a/assets/index-Dcvy1DT7.js +++ b/assets/index-B75st-hO.js @@ -1 +1 @@ -import{j as e}from"./chakra-CXrhlirJ.js";import{a as k,d as Q}from"./react-Caefwd5V.js";import{aR as W,u as w,m as F}from"./index-BqOgmhc6.js";import{i as U}from"./app-router-Dyjxcbfz.js";import{S as q}from"./svg-wrapper-DO1Iqw6o.js";import{d as Ne,a as ke,c as J,g as we,b as Me}from"./share-C4aXWUdL.js";import{a as ue}from"./mtr-BmcrcPh6.js";import"./param-selector-B7mXBf6L.js";const Le=(r,s,t,n)=>{const i=r.length-n*2-t,h=r.findIndex(o=>o===s),c=[...r,...r,...r],l=r.length+h-Math.floor(i/2)+(i%2===0?1:0),a=r.length+h+Math.floor(i/2);return{top:c.slice(l,a+1),left:c.slice(l-n,l),right:c.slice(a+1,a+1+n),bottom:c.slice(a+1+n,a+1+n+t)}},be=(r,s,t,n)=>{const i=r.length-n*2-t,h=[...r,...r,...r],c=r.length+r.findIndex(o=>o===s),l=h[c+i-1],a=r.length+r.findIndex(o=>o===l)+(c+i>r.length*2?r.length:0);return{top:h.slice(c,a+1),left:h.slice(c-n,c),right:h.slice(a+1,a+1+n),bottom:h.slice(a+1+n,a+1+n+t)}},Ee=(r,s,t,n)=>{let i=r.findIndex(d=>d===s[0]),h=r.findIndex(d=>d===s[1]);[i,h,s[0],s[1]]=i>h?[h,i,s[1],s[0]]:[i,h,s[0],s[1]];const c=r.slice(i,h+1),l=r.filter(d=>!c.filter(f=>!s.includes(f)).includes(d)),a=r.length-(n==="major"?Math.max:Math.min)(c.length,l.length)-t*2,o=n==="major"?c.length>l.length?s[0]:s[1]:c.length>l.length?s[1]:s[0];return be(r,o,a,t)},We=(r,s)=>{const t=Object.fromEntries(r.map(o=>[o,-1])),n=Object.fromEntries(r.map(o=>[o,-1])),[i,h,c,l]=[0,1,0,1],a=0;return s.top.forEach((o,d)=>{t[o]=a/2+(1-a)/(s.top.length+1)*(d+1),n[o]=i}),s.right.forEach((o,d)=>{t[o]=l,n[o]=a/2+(1-a)/(s.right.length+1)*(d+1)}),s.bottom.forEach((o,d)=>{t[o]=1-a/2-(1-a)/(s.bottom.length+1)*(d+1),n[o]=h}),s.left.forEach((o,d)=>{t[o]=c,n[o]=1-a/2-(1-a)/(s.left.length+1)*(d+1)}),{x_shares:t,y_shares:n}},Be=(r,s,t,n)=>{const i=r[0].filter(a=>!["linestart","lineend"].includes(a)),h=[...i,...i,...i],c=s==="r"?h:h.reverse(),l=c.findIndex(a=>n===a)+i.length;return c.slice(l+1).filter(a=>t[a].loop_pivot).slice(void 0,2)},pe=W.Destination;function Te(){const{canvasScale:r}=w(h=>h.app),{svgWidth:s,svg_height:t,theme:n}=w(h=>h.param),i=s[pe];return e.jsxs(q,{type:pe,svgWidth:i,svgHeight:t,canvasScale:r,theme:n,children:[e.jsx(Pe,{}),e.jsx(Ce,{})]})}const Pe=k.memo(function(){return e.jsx("defs",{children:e.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})}),Ce=()=>{const{routes:r,branches:s}=w(v=>v.helper),{line_name:t,theme:n,current_stn_idx:i,direction:h,stn_list:c,info_panel_type:l,loop:a,coline:o}=w(v=>v.param),d=(v,S,$)=>[...new Set(v.filter(N=>N.includes($)).map(N=>{const y=N.filter(M=>!["linestart","lineend"].includes(M));return S==="l"?y[0]:y.reverse()[0]}))],f=(v,S)=>S?[[v.map($=>c[$].localisedName.zh).join(","),v.map($=>c[$].localisedName.en).join(", ")].map($=>$.replace("\\",""))]:v.map($=>{const{zh:N="",en:y=""}=c[$].localisedName;return[N.replace("\\",""),y.replace("\\","")]}),j=a?Be(s,h,c,i):d(r,h,i),p=(a?d(r,h,i):j).filter(v=>s.slice(1).filter(S=>U(S,c)).some(S=>S.includes(v))),x=j.filter(v=>!p.includes(v)),g=f(x,!a&&l!=="sh2020"),m=f(p,!0),u=250,_=Object.fromEntries(p.map(v=>[v,Object.values(o).filter(S=>S.from===v||S.to===v).at(0)]).filter(([,v])=>v));return e.jsxs(e.Fragment,{children:[e.jsx(je,{dest_names:g,line_name:t,line_color:[n[2],n[3]],coline:!!p.length,upper:!!p.length}),p.length&&p.map(v=>{var S,$,N;return e.jsx("g",{transform:"translate(0,".concat(-u,")"),children:e.jsx(je,{dest_names:[m.at(0)],line_name:(S=_[v])==null?void 0:S.colors.at(0).slice(4),line_color:[($=_[v])==null?void 0:$.colors.at(0)[2],(N=_[v])==null?void 0:N.colors.at(0)[3]],coline:!0,upper:!1})},"coline_".concat(v))})]})},je=r=>{const{dest_names:s,line_name:t,line_color:n,coline:i,upper:h}=r,{current_stn_idx:c,direction:l,platform_num:a,svgWidth:o,svg_height:d}=w(S=>S.param),f=k.useRef(null),[j,p]=k.useState({width:0});k.useEffect(()=>{f.current&&p(f.current.getBBox())},[JSON.stringify(s),JSON.stringify(c)]);const[x,g,m,u,_]=[o.destination/2,10,36,264,325],v=x-g-m-j.width>=_/2&&x-g-m-u>=_/2?x:l==="l"?(o.destination+j.width-u)/2:(o.destination-j.width+u)/2;return e.jsxs("g",{transform:"translate(0,".concat(d-300,")"),children:[e.jsx("path",{stroke:n[0],strokeWidth:12,d:l==="l"?"M".concat(o.destination-24,",16 H 36"):"M24,16 H ".concat(o.destination-36),transform:"translate(0,".concat(h?-20:220,")"),markerEnd:i?void 0:"url(#slope)"}),e.jsx(Fe,{ref:f,dest_names:s}),a!==""&&e.jsx("g",{transform:"translate(".concat(v,",0)"),children:e.jsx(De,{})}),t[0].match(/^[\w\d]+(号)?线/)?e.jsx(Ae,{line_name:t,line_color:n}):e.jsx(Re,{line_name:t,line_color:n})]})},Fe=k.forwardRef(function(s,t){const{dest_names:n}=s,{direction:i,svgWidth:h}=w(c=>c.param);return e.jsxs("g",{ref:t,transform:"translate(".concat(i==="l"?36:h.destination-36,",145)"),children:[e.jsx("g",{transform:"translate(0,".concat(n.length===2?-20:20,")"),children:e.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:"rotate(".concat(i==="l"?0:180,")scale(0.8)")})}),e.jsx("g",{textAnchor:i==="l"?"start":"end",transform:"translate(".concat(i==="l"?148:-148,",25)"),children:n.map((c,l)=>e.jsxs(k.Fragment,{children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:l*-100+7,children:"往"+c[0]},"zh".concat(l)),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dy:l*-100+40,children:"To "+c[1]},"en".concat(l))]},l))})]})}),De=()=>{const{platform_num:r}=w(s=>s.param);return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(-325/2+60,",150)"),children:[e.jsx("circle",{r:60,fill:"none",stroke:"black",strokeWidth:2}),e.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"middle",children:r}),e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:100,dominantBaseline:"central",x:65,children:"站台"})]}),[r])},Re=r=>{const{line_name:s,line_color:t}=r,{direction:n,svgWidth:i}=w(f=>f.param),h=n==="l"?i.destination-42:42,c=k.useRef(null),[l,a]=k.useState({width:0});k.useEffect(()=>{c.current&&a(c.current.getBBox())},[...s]);const o=(n==="l"?-l.width:0)-6,d=(n==="l"?-1:1)*l.width/2;return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(h,",92)"),children:[e.jsx("rect",{fill:t[0],x:o,width:l.width+10,height:120}),e.jsxs("g",{textAnchor:n==="r"?"start":"end",transform:"translate(0,68)",fill:t[1],children:[e.jsx("g",{ref:c,children:e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:s[0]})}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,textAnchor:"middle",x:d,dy:42,children:s[1]})]})]}),[l,...s,...t,n,i.destination])},Ae=r=>{const{line_name:s,line_color:t}=r,{direction:n,svgWidth:i}=w(a=>a.param),[h,c]=s[0].match(/^[\w\d]+|.+/g),l=n==="l"?i.destination-36-210:90;return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(l,",92)"),children:[e.jsx("rect",{fill:t[0],x:-54,width:108,height:120}),e.jsx("text",{className:"rmg-name__zh rmg-outline",fill:t[1],fontSize:96,textAnchor:"middle",dominantBaseline:"central",transform:"translate(0,60)",letterSpacing:-5,children:h}),e.jsxs("g",{textAnchor:"start",transform:"translate(74,68)",children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:c}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,dy:42,children:s[1]})]})]}),[l,...s,...t,n,i.destination])},A=(r,s)=>r.map(t=>{const n=s.filter(a=>a.includes(t.from)&&a.includes(t.to));if(n.length!==1)return{linePath:[],colors:t.colors};const i=n.flat(),h=i.indexOf(t.from),c=i.indexOf(t.to);return{linePath:ht.linePath.length!==0),Ge=(r,s)=>r.map(t=>{const n=Ne(t.linePath,s);return{main:[{linePath:n.main,colors:t.colors}],pass:[{linePath:n.pass,colors:t.colors}]}}).reduce((t,n)=>(t.main=[...t.main,...n.main],t.pass=[...t.pass,...n.pass],t),{main:[],pass:[]}),ee=()=>Q.useMemo(()=>e.jsxs("filter",{id:"pujiang_outline",colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse",x:"0",y:"-1000",width:"5000",height:"2000",children:[e.jsxs("feComponentTransfer",{in:"SourceGraphic",children:[e.jsx("feFuncR",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),e.jsx("feFuncG",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),e.jsx("feFuncB",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"})]}),e.jsx("feColorMatrix",{type:"matrix",values:"1 0 0 0 0\n 0 1 0 0 0\n 0 0 1 0 0\n 1 1 1 1 -3",result:"selectedColor"}),e.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"0",result:"e1"}),e.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"1",result:"e2"}),e.jsx("feComposite",{in:"e1",in2:"e2",operator:"xor",result:"uncoloredOutline"}),e.jsx("feFlood",{floodColor:"rgb(0,0,0)"}),e.jsx("feComposite",{operator:"in",in2:"uncoloredOutline",result:"outline"}),e.jsx("feComposite",{in:"outline",in2:"selectedColor",operator:"over",result:"result"}),e.jsx("feComposite",{in:"result",in2:"SourceGraphic",operator:"over"})]}),[]);ee.displayName="PujiangLineDefs";const R=12,_e=W.RunIn,Ye=()=>{const{canvasScale:r}=w(x=>x.app),{branches:s,routes:t,depsStr:n}=w(x=>x.helper),{svgWidth:i,svg_height:h,current_stn_idx:c,direction:l,loop:a,theme:o}=w(x=>x.param),d=i[_e],f=h-300,j=k.useMemo(()=>{let x=t.filter(g=>g.includes(c)).map(g=>g[g.indexOf(c)+(l==="l"?1:-1)]).filter(g=>g!==void 0).reduce((g,m)=>g.includes(m)?g:g.concat(m),[]);return a&&s[0].includes(c)&&x.length===1&&["linestart","lineend"].includes(x[0])&&(x=l==="l"?[s[0][1]]:[s[0][s[0].length-2]]),x},[n,c,l,a]),p=k.useMemo(()=>{let x=t.filter(g=>g.includes(c)).map(g=>g[g.indexOf(c)+(l==="l"?-1:1)]).filter(g=>g!==void 0).reduce((g,m)=>g.includes(m)?g:g.concat(m),[]);return a&&s[0].includes(c)&&x.length===1&&["linestart","lineend"].includes(x[0])&&(x=l==="l"?[s[0][s[0].length-2]]:[s[0][1]]),x},[n,c,l,a]);return e.jsxs(q,{type:_e,svgWidth:d,svgHeight:h,canvasScale:r,theme:o,children:[e.jsx(Ve,{}),e.jsx("g",{transform:"translate(0,".concat(f,")"),children:e.jsx(Xe,{prevStnIds:j,nextStnIds:p})})]})},Ve=k.memo(function(){return e.jsxs("defs",{children:[e.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),e.jsx(ee,{})]})}),Xe=r=>{const{prevStnIds:s,nextStnIds:t}=r,{info_panel_type:n,svgWidth:i,stn_list:h}=w(u=>u.param),c=i.runin/2,l=t.length===1&&["linestart","lineend"].includes(t[0]),a=s.length===1&&["linestart","lineend"].includes(s[0]),o=t.map(u=>h[u].localisedName),d=s.map(u=>h[u].localisedName),[{zh:f="",en:j=""}]=o,[{zh:p="",en:x=""}]=d,g=(t.length>1?(f.split("\\").length-1)*-50+(j.split("\\").length-1)*-30:0)+10,m=(s.length>1?(p.split("\\").length-1)*-50+(x.split("\\").length-1)*-30:0)+10;return e.jsxs(e.Fragment,{children:[e.jsx(Ze,{prevStnIds:s,nextStnIds:t,nextBranchLineDy:g,prevBranchLineDy:m}),l&&n!=="sh2020"?e.jsx($e,{mode:"terminal",prevStnIds:s,nextStnIds:t}):a&&n!=="sh2020"?e.jsx($e,{mode:"original",prevStnIds:s,nextStnIds:t}):e.jsxs(e.Fragment,{children:[e.jsx(Je,{prevStnIds:s,nextStnIds:t}),e.jsx("g",{transform:"translate(".concat(c,",160)"),textAnchor:"middle",children:e.jsx(He,{})})]}),(a||!l)&&e.jsx(qe,{stnIds:r.nextStnIds}),(l||!a)&&e.jsx(Ue,{stnIds:r.prevStnIds})]})},$e=r=>{var x;const{mode:s,prevStnIds:t,nextStnIds:n}=r,{current_stn_idx:i,theme:h,svgWidth:c,direction:l,coline:a}=w(g=>g.param),{branches:o}=w(g=>g.helper),d={l:{original:{x:c.runin-36,anchor:"end"},terminal:{x:36,anchor:"start"}},r:{original:{x:36,anchor:"start"},terminal:{x:c.runin-36,anchor:"end"}}},f=A(Object.values(a),o),j=s==="terminal"?t:n,p=n.length>1?"var(--rmg-theme-colour)":(x=f.filter(g=>g.linePath.includes(i)&&g.linePath.includes(j[0])).map(g=>g.colors[0][2])[0])!=null?x:"var(--rmg-theme-colour)";return e.jsxs(e.Fragment,{children:[s==="original"&&e.jsx("path",{transform:"translate(0,".concat(a.length?"198":"220",")").concat(a.length?"scale(1,2)":""),stroke:p,strokeWidth:12,d:l==="l"?"M ".concat(c.runin-24,",16 H 36"):"M24,16 H ".concat(c.runin-36),markerEnd:"url(#slope)"}),s==="terminal"&&e.jsx("g",{filter:h[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,children:e.jsx("path",{transform:"translate(0,".concat(a.length?"198":"220",")").concat(a.length?"scale(1,2)":""),stroke:"var(--rmg-grey)",strokeWidth:12,d:"M24,16 H ".concat(c.runin-24)})}),e.jsx("g",{transform:"translate(".concat(d[l][s].x,",160)"),textAnchor:d[l][s].anchor,children:e.jsx(He,{})})]})},Je=r=>{var S;const{prevStnIds:s,nextStnIds:t}=r,{direction:n,svgWidth:i,theme:h,coline:c,current_stn_idx:l,stn_list:a}=w($=>$.param),{branches:o}=w($=>$.helper),d=i.runin/2,f=$=>$.includes("linestart")||$.includes("lineend"),j=A(Object.values(c),o),p=t.length>1?"single":f(t)?j.filter($=>[l,s[0]].every(N=>$.linePath.includes(N))).length>0?"multiple":"single":[l,t[0]].every($=>o[0].includes($))&&j.filter($=>[l,t[0]].every(N=>$.linePath.includes(N))).length>0?"multiple":"single",x=f(t)?s:t,g=t.length>1?"var(--rmg-theme-colour)":(S=j.filter($=>$.linePath.includes(l)&&$.linePath.includes(x[0])).map($=>$.colors[0][2])[0])!=null?S:"var(--rmg-theme-colour)",m=($,N,y,M)=>$.slice(1).filter(I=>[N,y[0]].every(z=>I.includes(z))).filter(I=>U(I,M)).length>0,u=Object.keys(c).length>0&&m(o,l,t,a)?g:"var(--rmg-theme-colour)",_=Object.keys(c).length>0&&t.length===1&&(f(s)||f(t)?!0:!([l,t[0]].every($=>o[0].includes($))&&j.filter($=>$.linePath.includes(l)&&$.linePath.includes(t[0])).length!==0)),v=Object.keys(c).length>0&&s.length===1;return e.jsxs("g",{transform:"translate(0,220)",strokeWidth:12,children:[e.jsxs(e.Fragment,{children:[u!=="var(--rmg-theme-colour)"&&e.jsx("marker",{id:"slope_".concat(u),viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:u})}),e.jsx("path",{stroke:u,d:"M ".concat(d,",16 H ").concat(n==="l"?36:i.runin-36),markerEnd:u==="var(--rmg-theme-colour)"?"url(#slope)":"url(#slope_".concat(u,")"),transform:_?"translate(0,-22)scale(1,2)":void 0})]}),p==="multiple"&&e.jsxs(e.Fragment,{children:[e.jsx("marker",{id:"slope_".concat(g),viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:g})}),e.jsx("path",{stroke:g,d:"M ".concat(d,",16 H ").concat(n==="l"?36+R:i.runin-(36+R)),markerEnd:"url(#slope_".concat(g,")"),transform:"translate(0,-12)"})]}),e.jsx("g",{filter:h[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,transform:"translate(0,".concat(v?-22:0,")scale(1,").concat(v?2:1,")"),children:e.jsx("path",{stroke:"var(--rmg-grey)",d:"M ".concat(d,",16 H ").concat(n==="l"?i.runin-24:24," ")})})]})},Ze=r=>{const{prevStnIds:s,nextStnIds:t,nextBranchLineDy:n,prevBranchLineDy:i}=r,{direction:h,svgWidth:c,current_stn_idx:l,coline:a,theme:o}=w(_=>_.param),{branches:d}=w(_=>_.helper),f=c.runin/2,j=125,p=_=>"".concat(_[0],",").concat(_[1]),x=_=>"M".concat(p(_.at(0))," ")+_.slice(1).map(v=>"L".concat(p(v))).join(" "),g=h==="l"?[[c.runin/3,j],[c.runin/6,n],[36,n]]:[[c.runin/3*2,j],[c.runin/6*5,n],[c.runin-36,n]],m=h==="l"?[[c.runin/3*2,j],[c.runin/6*5,i],[c.runin-24,i]]:[[c.runin/3,j],[c.runin/6,i],[24,i]];let u="var(--rmg-theme-colour)";if(Object.keys(a).length>0){const _=A(Object.values(a),d);t.length>1&&_.filter(v=>v.linePath.includes(l)&&t.some(S=>v.linePath.includes(S)))&&(g[0][1]-=R-1,g.unshift([f,j-R+1]),u=_.filter(v=>v.linePath.includes(l)&&t.some(S=>v.linePath.includes(S))).at(0).colors.at(0)[2]),s.length>1&&_.filter(v=>v.linePath.includes(l)&&s.some(S=>v.linePath.includes(S)))&&(m[0][1]-=R-1,m.unshift([f,j-R+1]))}return e.jsxs("g",{transform:"translate(0,110)",strokeWidth:12,fill:"none",filter:o[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,children:[e.jsx("marker",{id:"slope_branch",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:u})}),t.length>1&&e.jsx("path",{stroke:u,d:x(g),markerEnd:"url(#slope_branch)"}),s.length>1&&e.jsx("path",{stroke:"var(--rmg-grey)",d:x(m)})]})},He=()=>{const r=w(i=>i.param),{localisedName:s}=r.stn_list[r.current_stn_idx],{zh:t="",en:n=""}=s;return k.useMemo(()=>e.jsxs(e.Fragment,{children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,children:t.replace("\\","")}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:50,children:n.replace("\\","")})]}),[t,n])},Z=r=>{const{nextName:s,...t}=r,{zh:n="",en:i=""}=s;return e.jsx("g",{...t,children:k.useMemo(()=>e.jsxs(e.Fragment,{children:[n.split("\\").map((h,c,l)=>e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:48,dy:(l.length-1-c)*-50-(i.split("\\").length-1)*30,children:h},h)),i.split("\\").map((h,c,l)=>e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:24,dy:28+(l.length-1-c)*-30,children:h},h))]}),[n,i])})},Ue=r=>{const s=w(l=>l.param),t=r.stnIds.map(l=>s.stn_list[l].localisedName),n=(r.stnIds.length>1?15:125)+t.map(l=>{var a,o,d;return(d=(o=(a=l.zh)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-50+t.map(l=>{var a,o,d;return(d=(o=(a=l.en)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-30,[{zh:i="",en:h=""}]=t,c=(r.stnIds.length>1?(i.split("\\").length-1)*-50+(h.split("\\").length-1)*-30:0)+70;return e.jsxs("g",{fill:"gray",textAnchor:s.direction==="l"?"end":"start",transform:"translate(".concat(s.direction==="l"?s.svgWidth.runin-36:36,",0)"),children:[e.jsx(Z,{nextName:t[0],transform:"translate(0,183)"}),r.stnIds.length>1&&e.jsx(Z,{nextName:t[1],transform:"translate(0,".concat(c,")")}),e.jsxs("g",{transform:"translate(0, ".concat(n,")"),children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"上一站"}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:s.direction==="l"?-70:70,children:"Past Stop"})]})]})},qe=r=>{const s=w(l=>l.param),t=r.stnIds.map(l=>s.stn_list[l].localisedName),n=(r.stnIds.length>1?15:125)+t.map(l=>{var a,o,d;return(d=(o=(a=l.zh)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-50+t.map(l=>{var a,o,d;return(d=(o=(a=l.en)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-30,[{zh:i="",en:h=""}]=t,c=(r.stnIds.length>1?(i.split("\\").length-1)*-50+(h.split("\\").length-1)*-30:0)+70;return e.jsxs("g",{textAnchor:s.direction==="l"?"start":"end",transform:"translate(".concat(s.direction==="l"?36:s.svgWidth.runin-36,",0)"),children:[e.jsx(Z,{nextName:s.stn_list[r.stnIds[0]].localisedName,transform:"translate(0,183)"}),r.stnIds.length>1&&e.jsx(Z,{nextName:s.stn_list[r.stnIds[1]].localisedName,transform:"translate(0,".concat(c,")")}),e.jsxs("g",{transform:"translate(0, ".concat(n,")"),children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"下一站"}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:s.direction==="l"?70:-70,children:"Next Stop"})]})]})},K=r=>{var v,S,$,N;const{stnId:s,stnState:t,color:n,bank:i,direction:h}=r,{direction:c,info_panel_type:l,stn_list:a,loop:o}=w(y=>y.param),d=a[s],f=h!=null?h:c,j=o?0:(d.parents.length>1||d.children.length>1?8+12*(($=(S=(v=d.localisedName.en)==null?void 0:v.split("\\"))==null?void 0:S.length)!=null?$:1):0)*(f==="r"?-1:1);let p;const x={};l==="sh2020"?(d.services.length===3?p="stn_sh_2020_direct":d.services.length===2?p="stn_sh_2020_express":p="stn_sh_2020",x.fill=t===-1?"gray":n||"var(--rmg-theme-colour)"):(d.services.length===3?p="direct_sh":d.services.length===2?p="express_sh":[...d.transfer.groups[0].lines||[],...((N=d.transfer.groups[1])==null?void 0:N.lines)||[]].length>0?p="int2_sh":p="stn_sh",x.stroke=t===-1?"gray":n||"var(--rmg-theme-colour)");const g=i!=null?i:0,m=(f==="l"?6:-6)+j+g*30,u=(l==="sh2020"?-20:-6)+Math.abs(g)*(l==="sh2020"?25:11),_=g?0:f==="l"?-45:45;return e.jsxs(e.Fragment,{children:[e.jsx("use",{xlinkHref:"#".concat(p),...x,transform:"translate(".concat(g*(l==="sh2020"?5:0),",0)rotate(").concat(g*90*(l==="sh2020"?1:-1),")")}),e.jsx("g",{transform:"translate(".concat(m,",").concat(u,")rotate(").concat(_,")"),children:e.jsx(Ke,{name:d.localisedName,groups:d.transfer.groups,stnState:t,direction:f,facility:d.facility,bank:g,oneLine:d.one_line,intPadding:d.int_padding})}),t===0?e.jsx(et,{}):void 0]})},Ke=r=>{var u,_,v,S;const{name:s,groups:t,stnState:n,direction:i,facility:h,bank:c,oneLine:l,intPadding:a}=r,o=k.useRef(null),d=i==="l"?1:-1,f=h?30:0,j=c?-12:0,p=k.useRef(null),[x,g]=k.useState(0);k.useEffect(()=>{var $,N;return g((N=($=p.current)==null?void 0:$.getBBox().width)!=null?N:0)},[JSON.stringify(t)]);const m=a-x;return e.jsxs(e.Fragment,{children:[t.map($=>{var N;return(N=$.lines)!=null?N:[]}).flat().length>0&&e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:(j+f)*d,x2:m*d,stroke:n===-1?"gray":"black",strokeWidth:.5}),e.jsx(tt,{ref:p,groups:t,direction:i,transform:"translate(".concat(m*d,",-10.75)")})]}),h&&e.jsx("use",{xlinkHref:"#"+h,x:10*d,y:-30}),e.jsxs("g",{textAnchor:i==="l"?"start":"end",transform:"translate(".concat(f*d,",-14)"),children:[e.jsx(Qe,{ref:o,stnName:s,oneLine:l,directionPolarity:d,fill:n===-1?"gray":n===0?"red":"black"}),((_=(u=t[1])==null?void 0:u.lines)==null?void 0:_.length)&&e.jsx("g",{transform:"translate(".concat((m+x/2)*d,",-30)"),children:e.jsx(lt,{osiInfos:t[1].lines})}),((S=(v=t[2])==null?void 0:v.lines)==null?void 0:S.length)&&e.jsx("g",{transform:"translate(".concat((a+5)*d,",0)"),children:e.jsx(at,{osysiInfos:t[2].lines,direction:r.direction})})]})]})},Qe=k.forwardRef(function(s,t){const{stnName:n,oneLine:i,directionPolarity:h,...c}=s,{zh:l="",en:a=""}=n,o=k.useRef(null),[d,f]=k.useState(0);k.useEffect(()=>{i&&o.current?f(o.current.getBBox().width+5):f(0)},[n.zh,n.en,i]);const[j,p]=[20,8];return e.jsx("g",{ref:t,...c,children:k.useMemo(()=>e.jsxs(e.Fragment,{children:[e.jsx("g",{ref:o,children:l.split("\\").map((x,g,m)=>e.jsx("text",{className:"rmg-name__zh rmg-outline",dy:(m.length-1-g)*-j+(i?p:(a.split("\\").length-1)*-p),children:x},g))}),e.jsx("g",{fontSize:8,transform:"translate(".concat(d*h,",0)"),children:a.split("\\").map((x,g,m)=>e.jsx("text",{className:"rmg-name__en rmg-outline",dy:(m.length-2-g)*-p+2,children:x},g))})]}),[l,a,i,d,h])})}),et=()=>{const{stn_list:r}=w(n=>n.param),s=new Set(Object.values(r).map(n=>n.services).flat()),t=[-1,35,50,75][s.size];return e.jsx("g",{transform:"translate(0, ".concat(t,")"),children:e.jsx("text",{className:"rmg-name__zh",fill:"red",textAnchor:"middle",children:"本站"})})},tt=k.forwardRef(function(s,t){var a,o,d;const{groups:n,direction:i,...h}=s,c=[...n[0].lines||[],...((a=n[1])==null?void 0:a.lines)||[],...((d=(o=n[2])==null?void 0:o.lines)==null?void 0:d.filter(f=>!!f.name[0].match(/^磁(悬)*浮/)))||[]];let l=0;return e.jsx("g",{ref:t,fontSize:14,textAnchor:"middle",...h,children:c.map((f,j)=>{const p=!!f.name[0].match(/^\w+(号)?线/),x=!!f.name[0].match(/^磁(悬)*浮/);i==="r"&&(l-=(p||x?20:f.name[0].length*14+12)+(j===0?0:5));let g;return x?g=e.jsx("g",{transform:"translate(".concat(l,",-16)scale(0.1428571429)"),children:e.jsx(nt,{info:f})},j):p?g=e.jsx("g",{transform:"translate(".concat(l,",0)"),children:e.jsx(st,{info:f})},j):g=e.jsx("g",{transform:"translate(".concat(l,",0)"),children:e.jsx(rt,{info:f})},j),i==="l"&&(l+=p||x?25:f.name[0].length*14+12+5),g})})}),nt=k.memo(function(s){var t,n;return e.jsx(e.Fragment,{children:e.jsx("use",{xlinkHref:"#intbox_maglev",fill:(t=s.info.theme)==null?void 0:t[2],stroke:(n=s.info.theme)==null?void 0:n[2]})})},(r,s)=>JSON.stringify(r.info)===JSON.stringify(s.info)),st=k.memo(function(s){var t,n,i;return e.jsxs(e.Fragment,{children:[e.jsx("use",{xlinkHref:"#intbox_number",fill:(t=s.info.theme)==null?void 0:t[2]}),e.jsx("text",{x:10,className:"rmg-name__zh",fill:(n=s.info.theme)==null?void 0:n[3],dominantBaseline:"central",children:(i=s.info.name[0].match(/(\d*)\w+/))==null?void 0:i[0]})]})},(r,s)=>JSON.stringify(r.info)===JSON.stringify(s.info)),rt=k.memo(function(s){var n,i;const t=s.info.name[0].split("\\")[0].length;return e.jsxs(e.Fragment,{children:[e.jsx("rect",{height:22,width:t*14+12,y:-11,fill:(n=s.info.theme)==null?void 0:n[2]}),e.jsx("text",{x:t*7+6,className:"rmg-name__zh",fill:(i=s.info.theme)==null?void 0:i[3],dominantBaseline:"central",children:s.info.name[0].split("\\")[0]})]})},(r,s)=>JSON.stringify(r.info)===JSON.stringify(s.info)),lt=r=>{const s=r.osiInfos.map(t=>t.name[0]).join(",");return k.useMemo(()=>e.jsxs("g",{textAnchor:"middle",fontSize:"50%",children:[e.jsx("text",{className:"rmg-name__zh",dy:-5,children:"换乘".concat(s)}),e.jsx("text",{className:"rmg-name__zh",dy:5,children:"仅限公共交通卡"}),e.jsx("text",{className:"rmg-name__en",dy:12.5,fontSize:"75%",children:"Only for Public Transportation Card"})]}),[s.toString()])},at=r=>{const s=r.osysiInfos.map(n=>n.name[0]).join(","),t=r.osysiInfos.map(n=>n.name[1]).join(", ");return k.useMemo(()=>e.jsxs("g",{textAnchor:r.direction==="l"?"start":"end",fontSize:"50%",children:[e.jsxs("text",{className:"rmg-name__zh",dy:3,children:["转乘",s]}),e.jsxs("text",{className:"rmg-name__en",dy:10,fontSize:"75%",children:["To ",t]})]}),[JSON.stringify(r.osysiInfos),r.direction])},it=["shanghai","sh4","#5F259F","#fff","4号线","Line 4"],ot=r=>{const{xs:s,servicesPresent:t,stnStates:n}=r,{svg_height:i,direction:h,stn_list:c,current_stn_idx:l,branchSpacingPct:a,info_panel_type:o,coline:d}=w($=>$.param),{branches:f,depsStr:j}=w($=>$.helper),p=k.useMemo(()=>(console.log("computing y shares"),Object.keys(c).reduce(($,N)=>{if(f[0].includes(N))return{...$,[N]:0};{const y=f.slice(1).filter(M=>M.includes(N))[0];return{...$,[N]:c[y[0]].children.indexOf(y[1])?-3:3}}},{})),[j]),x=Object.entries(p).filter(([,$])=>$<=0).reduce(($,[N,y])=>({...$,[N]:y}),{}),g=Object.keys(x).reduce(($,N)=>({...$,[N]:-x[N]*a*i/300}),{}),m=k.useMemo(()=>Ge(A(Object.values(d).filter($=>$.display),f),n),[JSON.stringify(d),l,h,j]),u=t.reduce(($,N)=>({...$,[N]:Object.keys(m).reduce((y,M)=>({...y,[M]:m[M].map(I=>({path:Oe(I.linePath,M,s,g,h,N,t.length,c,"diagonal"),colors:I.colors})).filter(I=>I.path!=="")}),{})}),{}),_=A(Object.values(d).filter($=>$.display),f).map($=>$.linePath).flat(),v=12,S=o==="sh2020"?3:0;return e.jsx(e.Fragment,{children:e.jsxs("g",{id:"coline",transform:"translate(0,".concat(v+S,")"),children:[e.jsx(ct,{paths:u,direction:h}),e.jsx(ht,{colineStns:m,branches:f,xs:s,ys:g,stnStates:n,lineWidth:v,colineGap:S}),e.jsx(dt,{stnIds:Object.entries(p).filter(([,$])=>$<0).reduce(($,[N])=>[...$,N],[]).filter($=>!["linestart","lineend"].includes($)).filter($=>c[$].services.length!==0).filter($=>_.includes($)),xs:s,ys:g,stnStates:n})]})})},ct=r=>{const{paths:s,direction:t}=r;return e.jsx(e.Fragment,{children:Object.keys(s).map((n,i)=>{var h,c;return e.jsx("g",{transform:"translate(0,".concat(i*25,")"),children:e.jsxs("g",{children:[(h=s[n])==null?void 0:h.pass.map((l,a)=>e.jsx(k.Fragment,{children:e.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:l.path,strokeLinejoin:"round",filter:n===F.local?void 0:"url(#contrast-".concat(n,")")},a)},a)),(c=s[n])==null?void 0:c.main.map((l,a)=>{var o;return e.jsxs(k.Fragment,{children:[l.colors.length>1&&e.jsx("linearGradient",{id:"grad".concat(a),y1:"-100%",y2:"100%",x1:"0",x2:"0",gradientUnits:"userSpaceOnUse",children:l.colors.map((d,f)=>e.jsxs(k.Fragment,{children:[e.jsx("stop",{offset:"".concat(100/l.colors.length*(f+0),"%"),stopColor:d[2]}),e.jsx("stop",{offset:"".concat(100/l.colors.length*(f+1),"%"),stopColor:d[2]})]},f))}),t==="l"&&e.jsx("marker",{id:"arrow_left_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_")),refY:.5,refX:1,children:e.jsx("path",{d:"M1,0L0,1H1z",fill:l.colors.length>1?"url(#grad".concat(a,")"):l.colors[0][2]})}),t==="r"&&e.jsx("marker",{id:"arrow_right_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_")),refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:l.colors.length>1?"url(#grad".concat(a,")"):l.colors[0][2]})}),e.jsx("path",{stroke:((o=l.colors.at(-1))!=null?o:it)[2],strokeWidth:12,fill:"none",d:l.path,markerStart:t==="l"?"url(#arrow_left_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_"),")"):void 0,markerEnd:t==="r"?"url(#arrow_right_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_"),")"):void 0,strokeLinejoin:"round",filter:n===F.local?void 0:"url(#contrast-".concat(n,")")},a)]},a)})]})},"servicePath".concat(i))})})},ht=r=>{const{colineStns:s,branches:t,xs:n,ys:i,stnStates:h,lineWidth:c,colineGap:l}=r,{line_name:a,theme:o,info_panel_type:d}=w(j=>j.param),f=[...s.main,...s.pass].map(j=>j.linePath.map(p=>{var x;return{curStn:p,x:n[p],y:i[p],color:(x=j.colors.at(-1))!=null?x:[...o,...a]}})).flat().reduce((j,p)=>j.find(x=>x.curStn===p.curStn)?j:j.concat(p),[]).filter(j=>t[0].includes(j.curStn));return console.log(f),e.jsx("g",{id:"stations_in_mainline",children:f.map(j=>{const{curStn:p,x,y:g,color:m}=j,u=(h[p]===-1?0:c)+l+c,_=(h[p]===-1?0:-c)-l-c/2;return e.jsx("g",{transform:"translate(".concat(x,",").concat(g,")"),children:d==="sh2020"?e.jsx("rect",{stroke:"none",height:u,width:12,x:-6,y:_,fill:h[p]===-1?"var(--rmg-grey)":m[2]}):e.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:"translate(0,".concat(-c,")")})},p)})})},dt=r=>{const{xs:s,ys:t,stnStates:n,stnIds:i}=r,{branches:h,depsStr:c}=w(j=>j.helper),{line_name:l,theme:a,coline:o}=w(j=>j.param),d=k.useMemo(()=>A(Object.values(o),h),[JSON.stringify(o),c]),f=i.reduce((j,p)=>{var x;return{...j,[p]:(x=d.filter(g=>g.linePath.includes(p)).map(g=>g.colors).flat().at(0))!=null?x:[...a,...l]}},{});return e.jsx("g",{id:"stations_in_coline",children:i.map(j=>e.jsx("g",{transform:"translate(".concat(s[j],",").concat(t[j],")"),children:e.jsx(K,{stnId:j,stnState:n[j],color:f[j][2]})},j))})},mt=()=>{const{routes:r,branches:s,depsStr:t}=w(y=>y.helper),n=w(y=>y.param),{svg_height:i,stn_list:h,branchSpacingPct:c,coline:l,direction:a}=w(y=>y.param),o=ke(n.stn_list,()=>0,()=>0),d=J("linestart","lineend",o),f=J(d.nodes[1],d.nodes.slice(-2)[0],o),j=k.useMemo(()=>(console.log("computing x shares"),Object.keys(n.stn_list).reduce((y,M)=>({...y,[M]:we(M,o,s)}),{})),[s.toString(),JSON.stringify(o)]),p=[n.svgWidth.railmap*n.padding/100,n.svgWidth.railmap*(1-n.padding/100)],x=Object.keys(j).reduce((y,M)=>({...y,[M]:p[0]+j[M]/f.len*(p[1]-p[0])}),{}),g=k.useMemo(()=>(console.log("computing y shares"),Object.keys(h).reduce((y,M)=>{if(s[0].includes(M))return{...y,[M]:0};{const I=s.slice(1).filter(z=>z.includes(M))[0];return{...y,[M]:h[I[0]].children.indexOf(I[1])?-3:3}}},{})),[t]),m=Object.entries(g).filter(([,y])=>y>=0).reduce((y,[M,I])=>({...y,[M]:I}),{}),u=Object.keys(m).reduce((y,M)=>({...y,[M]:-m[M]*c*i/300}),{}),_=k.useMemo(()=>Me(n.current_stn_idx,r,n.direction),[n.current_stn_idx,n.direction,r.toString()]),v=Object.values(F),S=Object.values(n.stn_list).map(y=>y.services).flat().reduce((y,M)=>(y[v.indexOf(M)]=!0,y),[!1,!1,!1]).map((y,M)=>[v[M],y]).filter(y=>y[1]).map(y=>y[0]),$=s.map(y=>Ne(y,_)).reduce((y,M)=>(y.main.push(M.main),y.pass.push(M.pass),y),{main:[],pass:[]}),N=S.reduce((y,M)=>({...y,[M]:Object.keys($).reduce((I,z)=>({...I,[z]:$[z].map(H=>Oe(H,z,x,u,a,M,S.length,h)).filter(H=>H!=="")}),{})}),{});return e.jsxs("g",{id:"main",transform:"translate(0,".concat(n.svg_height*(Object.keys(l).length>0?.5:.7+.1),")"),children:[e.jsx(xt,{paths:N,direction:n.direction}),e.jsx(gt,{stnIds:Object.keys(m).filter(y=>!["linestart","lineend"].includes(y)).filter(y=>h[y].services.length!==0),xs:x,ys:u,stnStates:_}),Object.keys(l).length>0&&e.jsx(ot,{xs:x,servicesPresent:S,stnStates:_}),S.length>1&&e.jsx(ft,{servicesLevel:S,lineXs:p})]})},xt=r=>{const{theme:s}=w(i=>i.param),{paths:t,direction:n}=r;return e.jsx(e.Fragment,{children:Object.keys(t).map((i,h)=>{var c,l;return e.jsxs("g",{transform:"translate(0,".concat(h*25,")"),filter:s[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,children:[e.jsx("g",{children:(c=t[i])==null?void 0:c.pass.map((a,o)=>e.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:a,markerStart:r.direction==="l"?"url(#arrow_gray)":void 0,markerEnd:r.direction==="r"?"url(#arrow_gray)":void 0,strokeLinejoin:"round"},o))}),e.jsx("g",{children:(l=t[i])==null?void 0:l.main.map((a,o)=>e.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:a,markerStart:n==="l"?"url(#arrow_theme_left)":void 0,markerEnd:n==="r"?"url(#arrow_theme_right)":void 0,strokeLinejoin:"round",filter:i===F.local?void 0:"url(#contrast-".concat(i,")")},o))})]},"servicePath".concat(h))})})},Oe=(r,s,t,n,i,h,c,l,a="rightangle")=>{let[o,d]=[];const f={},j={local:0,express:20,direct:40}[h],p=c>1?50:0;let x=30;if(r.length>0){let m=!1,u=!1;l[r.at(-1)||0].children.some(_=>["linestart","lineend"].includes(_))?u=!0:l[r.at(0)||0].parents.some(_=>["linestart","lineend"].includes(_))&&(m=!0),x=m||u?x:0}const g=30;if(r.forEach(m=>{const u=t[m],_=n[m];if(!o&&o!==0){[d,o]=[u,_],f.start=[u,_];return}_===0?_!==o&&(f.bifurcate=[d,o]):_!==o&&(f.bifurcate=[u,_]),f.end=[u,_],[d,o]=[u,_]}),"start"in f)if("end"in f)if("bifurcate"in f){const[m,u]=f.start,_=f.bifurcate[0],[v,S]=f.end;return s==="main"?i==="l"?S>u?(console.log(f),a==="rightangle"?"M ".concat(m-x,",").concat(u," H ").concat(v," V ").concat(S):"M ".concat(m,",").concat(u," H ").concat(m+g," L ").concat(_-g,",").concat(S," H ").concat(v)):a==="rightangle"?"M ".concat(m,",").concat(u," V ").concat(S," H ").concat(v):"M ".concat(m-x,",").concat(u," H ").concat(_+g," L ").concat(v-g,",").concat(S," H ").concat(v):S>u?a==="rightangle"?"M ".concat(m,",").concat(u," H ").concat(v," V ").concat(S):"M ".concat(m,",").concat(u," H ").concat(m+g," L ").concat(_-g,",").concat(S," H ").concat(v+x):a==="rightangle"?"M ".concat(m,",").concat(u," V ").concat(S," H ").concat(v+x):"M ".concat(m,",").concat(u," H ").concat(_+g," L ").concat(v-g,",").concat(S," H ").concat(v):S>u?a==="rightangle"?"M ".concat(m-x,",").concat(u," H ").concat(v," V ").concat(S):"M ".concat(m,",").concat(u," H ").concat(m+g," L ").concat(_-g,",").concat(S," H ").concat(v+x):a==="rightangle"?"M ".concat(m,",").concat(u," V ").concat(S," H ").concat(v+x):"M ".concat(m-x,",").concat(u," H ").concat(_+g," L ").concat(v-g,",").concat(S," H ").concat(v)}else{const[m,u]=f.start,_=f.end[0];return s==="main"?i==="l"?"M ".concat(m-x-j,",").concat(u," H ").concat(_):"M ".concat(m,",").concat(u," H ").concat(_+x+j):i==="l"?"M ".concat(m-x,",").concat(u," H ").concat(_+x+p):"M ".concat(m-x-p,",").concat(u," H ").concat(_+x)}else{const[m,u]=f.start;return s==="main"?i==="l"?"M ".concat(m-x-j,",").concat(u," H ").concat(m):"M ".concat(m,",").concat(u," H ").concat(m+x+j):i==="l"?"M ".concat(m,",").concat(u," L ").concat(m+x+p,",").concat(u):"M ".concat(m-x-p,",").concat(u," L ").concat(m,",").concat(u)}else return""},gt=r=>{const{xs:s,ys:t,stnStates:n,stnIds:i}=r;return e.jsx("g",{children:i.map(h=>e.jsx("g",{transform:"translate(".concat(s[h],",").concat(t[h],")"),children:e.jsx(K,{stnId:h,stnState:n[h]})},h))})},ft=r=>{const{svg_height:s,direction:t,svgWidth:n}=w(a=>a.param),i=-s+130,h=r.servicesLevel.map(a=>({local:"普通车",express:"大站车",direct:"直达车"})[a]),c=t==="r"?r.lineXs[0]-42:r.lineXs[1]+42,l=r.servicesLevel.length===2?350:500;return k.useMemo(()=>e.jsxs("g",{children:[h.map((a,o)=>e.jsxs("g",{transform:"translate(".concat(c,",").concat(o*25,")"),children:[e.jsx("rect",{x:-27.5,height:10,width:55,fill:"white",stroke:"black",y:-5}),e.jsx("text",{className:"rmg-name__zh",fontSize:9,y:3,textAnchor:"middle",children:"".concat(a,"运行线")})]},a)),e.jsxs("g",{transform:"translate(".concat(t==="r"?30:n.railmap-l,",").concat(i,")"),children:[e.jsx("text",{className:"rmg-name__zh",children:"图例:"}),h.map((a,o)=>e.jsxs("g",{transform:"translate(".concat(o*150+50,",0)"),children:[e.jsx("line",{x1:"0",x2:"35",y1:"-5",y2:"-5",stroke:"var(--rmg-theme-colour)",strokeWidth:"12",filter:o===2?"url(#contrast-direct)":o===1?"url(#contrast-express)":""}),e.jsx("use",{x:"17.5",y:"-5",xlinkHref:"#stn_sh",fill:"var(--rmg-theme-colour)"}),e.jsx("text",{x:"40",className:"rmg-name__zh",children:"".concat(a,"停靠站")})]},"serviceLevel".concat(o)))]})]}),[s,t,n,r.servicesLevel,r.lineXs])},ut=()=>{const{direction:r,svgWidth:s,coline:t}=w(i=>i.param),n=!!Object.keys(t).length;return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(r==="l"?50:s.railmap-150,",50)"),children:[e.jsx("text",{className:"rmg-name__zh",children:"列车前进方向"}),e.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",stroke:n?"var(--rmg-black)":void 0,strokeWidth:n?5:void 0,fill:n?"var(--rmg-white)":"var(--rmg-theme-colour)",transform:"translate(".concat(r==="l"?-30:125,",-5)rotate(").concat(r==="l"?0:180,")scale(0.15)")})]}),[r,t,s.railmap])},te=r=>{var o,d,f,j,p;const{stnId:s,nameDirection:t,services:n,color:i}=r,h=w(x=>x.param.stn_list[s]),c=[...((o=h.transfer.groups[0])==null?void 0:o.lines)||[],...((d=h.transfer.groups[1])==null?void 0:d.lines)||[]];let l;h.services.length===3?l="direct_indoor_sh":h.services.length===2?l="express_indoor_sh":(p=(j=(f=h.transfer.groups[1])==null?void 0:f.lines)==null?void 0:j.length)!=null&&p?l="osi_indoor_sh":c.length>0?l="int2_indoor_sh":l="stn_indoor_sh";const a=t==="left"||t==="right"?90:0;return e.jsxs(e.Fragment,{children:[e.jsx(pt,{name:h.localisedName,groups:h.transfer.groups,nameDirection:t,services:n}),e.jsx("use",{xlinkHref:"#".concat(l),stroke:c.length>0?"var(--rmg-black)":i!=null?i:"var(--rmg-theme-colour)",transform:"rotate(".concat(a,")")}),h.services.length>1&&e.jsx("text",{className:"rmg-name__zh",writingMode:"tb",fontSize:"60%",dy:"-12",children:"大站车".concat(h.services.length>2?" 直达车":"","停靠")})]})},pt=r=>{var j,p,x,g,m,u,_,v,S,$,N,y,M,I,z,H,B,L,b,E,P,G,Y,X,V,O,T,C,D,ne,se,re,le,ae,ie,oe,ce,he,de,me,xe,ge,fe;const{name:s,groups:t,nameDirection:n,services:i}=r,h={upward:60,downward:-30,left:0,right:0}[n],c=(p=(j=t[2])==null?void 0:j.lines)!=null&&p.length?{upward:0,downward:0,left:(((x=t[0].lines)==null?void 0:x.length)||0)+(((m=(g=t[1])==null?void 0:g.lines)==null?void 0:m.length)||0)!==0?85:25,right:(((u=t[0].lines)==null?void 0:u.length)||0)+(((v=(_=t[1])==null?void 0:_.lines)==null?void 0:v.length)||0)!==0?-85:-25}[n]:0,l=($=(S=t[2])==null?void 0:S.lines)!=null&&$.length?{upward:(y=(N=t[0])==null?void 0:N.lines)!=null&&y.length&&((I=(M=t[1])==null?void 0:M.lines)!=null&&I.length)?-210:(H=(z=t[0])==null?void 0:z.lines)!=null&&H.length||(L=(B=t[1])==null?void 0:B.lines)!=null&&L.length?-177.5:-145,downward:((E=(b=t[0])==null?void 0:b.lines)!=null&&E.length&&((G=(P=t[1])==null?void 0:P.lines)!=null&&G.length)?185:(Y=t[0].lines)!=null&&Y.length||(V=(X=t[1])==null?void 0:X.lines)!=null&&V.length?157.5:125)+(i.length===3?40:0),left:(T=(O=t[0])==null?void 0:O.lines)!=null&&T.length&&((D=(C=t[1])==null?void 0:C.lines)!=null&&D.length)?-67:(ne=t[0].lines)!=null&&ne.length||(re=(se=t[1])==null?void 0:se.lines)!=null&&re.length?-30:0,right:(ae=(le=t[0])==null?void 0:le.lines)!=null&&ae.length&&((oe=(ie=t[1])==null?void 0:ie.lines)!=null&&oe.length)?-67:(ce=t[0].lines)!=null&&ce.length||(de=(he=t[1])==null?void 0:he.lines)!=null&&de.length?-30:0}[n]:0,a=k.useRef(null),o=60,[d,f]=k.useState(o);return k.useEffect(()=>{a!=null&&a.current&&f(Math.max(o,a.current.getBBox().width))},[s.zh,s.en]),e.jsxs("g",{transform:"translate(0,".concat(h,")"),children:[n==="upward"||n==="downward"?e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:-d/2,x2:d/2,y1:n==="upward"?-23:-10,y2:n==="upward"?-23:-10,stroke:"black"}),e.jsx("line",{y1:n==="upward"?-23:-10,y2:n==="upward"?-48:20,stroke:"black"})]}):e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:n==="left"?-50:15,x2:n==="left"?-15:50,y1:0,y2:0,stroke:"black"}),e.jsx("line",{x1:n==="left"?-50:50,x2:n==="left"?-50:50,y1:-30,y2:30,stroke:"black"})]}),[...t[0].lines||[],...((me=t[1])==null?void 0:me.lines)||[]].length&&e.jsx(_t,{intInfos:[t[0].lines||[],((xe=t[1])==null?void 0:xe.lines)||[]],arrowDirection:n,services:i}),e.jsx(jt,{ref:a,stnName:s,nameDirection:n,fill:"black"}),((fe=(ge=t[2])==null?void 0:ge.lines)==null?void 0:fe.length)&&e.jsx("g",{transform:"translate(".concat(c,",").concat(l,")"),children:e.jsx($t,{osysiInfos:t[2].lines,nameDirection:n})})]})},jt=k.forwardRef(function(s,t){const{stnName:n,nameDirection:i,...h}=s,{zh:c="",en:l=""}=n,a=c.split("\\"),o=l.split("\\").length,d={upward:0,downward:0,left:-60,right:60}[i],f={upward:-2,downward:-30-12*(o-1),left:-10*(o-1),right:-10*(o-1)}[i],j={upward:"middle",downward:"middle",left:"end",right:"start"}[i];return e.jsx("g",{ref:t,...h,textAnchor:j,transform:"translate(".concat(d,",").concat(f,")"),children:k.useMemo(()=>{var p;return e.jsxs(e.Fragment,{children:[a.map((x,g,m)=>e.jsx("text",{className:"rmg-name__zh",dy:i==="upward"?16*g:(m.length-1-g)*-16,children:x},g)),e.jsx("g",{fontSize:9.6,children:(p=l.split("\\"))==null?void 0:p.map((x,g)=>e.jsx("text",{className:"rmg-name__en",dy:12*(g+1)+(i==="upward"&&a.length>1?a.length*7.5:0),children:x},g))})]})},[c,l])})}),_t=r=>{var m,u,_,v,S,$,N,y,M,I,z,H,B;const{intInfos:s,arrowDirection:t,services:n}=r,i=s.flatMap(L=>L.map(b=>{var E;return(E=b.theme)==null?void 0:E[2]})).reduce((L,b)=>L+b,""),h=s.map(L=>[L.filter(b=>b.name[0].match(/^\d+.*$/)).map(b=>b.name[0].replace(/^(\d+)(.*)$/,"$1")).join(",").concat("号线"),L.filter(b=>!b.name[0].match(/^\d+.*$/)).map(b=>b.name[0]).join(",")].filter(b=>b&&b!=="号线").join(",")),c=s.map(L=>["Line ".concat(L.filter(b=>/^(L|l)ine \d+$/.test(b.name[1])).map(b=>b.name[1].replace("Line","").replace("line","").trim()).join(",")),L.filter(b=>!/^(L|l)ine \d+$/.test(b.name[1])).map(b=>b.name[1]).join(", ")].filter(b=>b&&b!=="Line ").join(", ")),l=n.length===3?80:45,a={upward:-145,downward:125+(n.length===3?40:0),left:7,right:7}[t],o={upward:0,downward:0,left:20,right:-20}[t],d={upward:-74,downward:44,left:0,right:0}[t],f={upward:0,downward:180,left:90,right:-90}[t],j={upward:0,downward:0,left:85,right:-85}[t],p={upward:"middle",downward:"middle",left:"start",right:"end"}[t],x=j,g={upward:(u=(m=s.at(0))==null?void 0:m.length)!=null&&u?-177.5:-145,downward:((v=(_=s.at(0))==null?void 0:_.length)!=null&&v?157.5:125)+(n.length===3?40:0),left:($=(S=s.at(0))==null?void 0:S.length)!=null&&$?-30:7,right:(y=(N=s.at(0))==null?void 0:N.length)!=null&&y?-30:7}[t];return e.jsxs("g",{children:[e.jsx("path",{id:"int_indoor_arrow_sh",stroke:"var(--rmg-black)",strokeWidth:1,transform:"translate(".concat(o,",").concat(d,")rotate(").concat(f,")"),fill:s.flat().length===1?(M=s.flat()[0].theme)==null?void 0:M[2]:"url(#grad".concat(i,")"),d:"M -7.5,0 v -".concat(l," h -7.5 l 15,-15 l 15,15 h -7.5 v ").concat(l," Z")}),s.flat().length>1&&e.jsx("linearGradient",{id:"grad".concat(i),y1:"0",y2:"0",x1:t==="upward"?"25%":"75%",x2:t==="upward"?"75%":"25%",children:s.flat().map((L,b)=>{var E,P;return e.jsxs(k.Fragment,{children:[e.jsx("stop",{offset:"".concat(100/s.flat().length*b,"%"),stopColor:(E=L.theme)==null?void 0:E[2]}),e.jsx("stop",{offset:"".concat(100/s.flat().length*(b+1),"%"),stopColor:(P=L.theme)==null?void 0:P[2]})]},b)})}),((z=(I=s.at(0))==null?void 0:I.length)!=null?z:0)>0&&e.jsxs("g",{transform:"translate(".concat(j,",").concat(a,")"),textAnchor:"".concat(p),children:[e.jsx("text",{className:"rmg-name__zh",dy:-7,children:"换乘".concat(h[0])}),e.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:"Interchange ".concat(c[0])})]}),((B=(H=s.at(1))==null?void 0:H.length)!=null?B:0)>0&&e.jsxs("g",{transform:"translate(".concat(x,",").concat(g,")"),textAnchor:"".concat(p),children:[e.jsx("text",{className:"rmg-name__zh",dy:-7,children:"出站换乘".concat(h[1])}),e.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:"Out-of-station Transfer ".concat(c[1])})]})]})},$t=r=>{const s={upward:"middle",downward:"middle",left:"start",right:"end"}[r.nameDirection];return k.useMemo(()=>e.jsxs("g",{textAnchor:"".concat(s),children:[e.jsx("text",{className:"rmg-name__zh",dy:-5,children:"转乘".concat(r.osysiInfos.map(t=>t.name[0]).join(","))}),e.jsx("text",{className:"rmg-name__en",dy:7.5,fontSize:9.6,children:"To ".concat(r.osysiInfos.map(t=>t.name[1]).join(", "))})]}),[JSON.stringify(r.osysiInfos),r.nameDirection])},vt=(r,s,t,n,i,h)=>{var j,p,x,g;const c=r[0].filter(m=>!["linestart","lineend"].includes(m)),l=r.slice(1,3).map(m=>m.slice(1,m.length-1)),a=l.reduce((m,u)=>m+u.filter(_=>!["linestart","lineend",...s].includes(_)).length,0)+c.length-h-i*2,o=(t-t*n/100*2)/(1+a),d=[t*n/100+((j=l.at(0))!=null?j:[]).length*o,t*(1-n/100)-((p=l.at(1))!=null?p:[]).length*o],f={...Object.fromEntries(((x=l.at(0))!=null?x:[]).map((m,u)=>[m,t*n/100+u*o])),...Object.fromEntries(((g=l.at(1))!=null?g:[]).map((m,u)=>[m,d[1]+(1+u)*o]))};return{loop_branches:l,line_xs_branches:d,xs_branches:f}},yt=r=>{var _,v,S,$;const{loop_branches:s,edges:t,xs:n,ys:i,canvas:h}=r,[c,l,a,o]=t,{branches:d}=w(N=>N.helper),{current_stn_idx:f,direction:j,coline:p}=w(N=>N.param),x=h===W.RailMap?30:0,g=["M ".concat(c,",").concat(a," H ").concat(Number(n[(v=(_=s.at(0))==null?void 0:_.at(0))!=null?v:""])-x),"M ".concat(l,",").concat(a," H ").concat(Number(n[($=(S=s.at(1))==null?void 0:S.at(-1))!=null?$:""])+x)],m=d[0].filter(N=>!["linestart","lineend"].includes(N)),u=Object.values(p).filter(N=>![N.from,N.to].every(y=>m.includes(y))).map(N=>N.colors);return e.jsx(e.Fragment,{children:s.map((N,y)=>{var M,I,z;return e.jsxs(Q.Fragment,{children:[u.filter((H,B,L)=>B===L.findIndex(b=>{var E,P;return((E=b.at(0))==null?void 0:E.at(2))===((P=H.at(0))==null?void 0:P.at(2))})).map(H=>e.jsx("marker",{id:"arrow_theme_".concat(H[0][2]),refX:1,refY:.5,children:e.jsx("path",{d:"M0,1H2L1,0z",fill:H[0][2]})},H[0][2])),e.jsx("path",{stroke:(z=(I=(M=u.at(y))==null?void 0:M.at(0))==null?void 0:I.at(2))!=null?z:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:g[y],markerEnd:h===W.RailMap&&(j==="l"&&y===0||j==="r"&&y===1)?u.at(y)?"url(#arrow_theme_".concat(u[y][0][2],")"):"url(#arrow_theme)":void 0}),N.filter(H=>!["linestart","lineend"].includes(H)).map(H=>{var B,L,b,E;return e.jsxs(Q.Fragment,{children:[h===W.RailMap&&e.jsx("g",{transform:"translate(".concat(n[H],",").concat(i[H],")"),children:e.jsx(K,{stnId:H,stnState:f===H?0:1,bank:0,direction:j,color:(L=(B=u.at(y))==null?void 0:B.at(0))==null?void 0:L.at(2)})},H),h===W.Indoor&&e.jsx("g",{transform:"translate(".concat(n[H],",").concat(i[H],")"),children:e.jsx(te,{stnId:H,nameDirection:s.filter(P=>P.includes(H)).map(P=>P.indexOf(H)%2===0?"downward":"upward")[0],services:[F.local],color:(E=(b=u.at(y))==null?void 0:b.at(0))==null?void 0:E.at(2)})},H)]},H)})]},N.at(0))})})},St=r=>{var u;const{edges:s,loop_stns:t,xs:n,ys:i,canvas:h}=r,[c,l,a,o]=s,{info_panel_type:d,stn_list:f,coline:j}=w(_=>_.param),{branches:p}=w(_=>_.helper),x=Object.values(j).filter(_=>[_.from,_.to].every(v=>p.slice(1,3).filter(S=>U(S,f)).flat().includes(v))).map(_=>_.colors).at(0),g=12,m=h===W.RailMap&&d==="sh2020"?3:0;return e.jsxs("g",{id:"coline_main",children:[e.jsx("path",{d:"M ".concat(c,",").concat(a," H").concat(l),strokeWidth:12,stroke:(u=x==null?void 0:x.at(0))==null?void 0:u.at(2)}),h===W.RailMap&&Object.keys(j).length>0&&t.top.map(_=>{var v;return e.jsx("g",{transform:"translate(".concat(n[_],",").concat(i[_],")"),children:d==="sh2020"?e.jsxs(e.Fragment,{children:[e.jsx("rect",{stroke:"none",height:24,width:12,x:-6,y:-m-1,fill:(v=x==null?void 0:x.at(0))==null?void 0:v.at(2)}),e.jsx("rect",{stroke:"none",height:m+g,width:12,x:-6,y:g-2,fill:"var(--rmg-theme-colour)"})]}):e.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:"translate(0,".concat(1+g,")")})},_)})]})},ze=r=>{var V;const{bank_angle:s,canvas:t}=r,{branches:n}=w(O=>O.helper),{current_stn_idx:i,svgWidth:h,svg_height:c,padding:l,branchSpacingPct:a,direction:o,info_panel_type:d,stn_list:f,loop_info:{left_and_right_factor:j,bottom_factor:p},coline:x}=w(O=>O.param),g=n[0].filter(O=>!["linestart","lineend"].includes(O)),m=n.slice(0,3).flat().filter((O=>T=>(O[T]=(O[T]||0)+1)===2)({})).filter(O=>!["linestart","lineend"].includes(O)),u=(V=Object.values(x).filter(O=>[O.from,O.to].every(T=>n.slice(1,3).filter(C=>U(C,f)).flat().includes(T))).map(O=>{const T=g.findIndex(D=>D===O.from),C=g.findIndex(D=>D===O.to);return Math.abs(C-T)>g.length-2-Math.abs(C-T)?"major":"minor"}).at(0))!=null?V:"minor",_=m.at(1)?Ee(g,m,j,u):m.at(0)?be(g,m[0],p,j):Le(g,i,p,j),{x_shares:v,y_shares:S}=We(g,_),{loop_branches:$,line_xs_branches:N,xs_branches:y}=vt(n,m,h[t],l,j,_.bottom.length),M={...S,...Object.fromEntries($.flat().map(O=>[O,0]))},I=a*c/300,z=[225+I,c-75-(t===W.RailMap?0:125)-I],H=Object.keys(M).reduce((O,T)=>({...O,[T]:z[0]+M[T]*(z[1]-z[0])}),{}),B=[Math.max(h[t]*l/100+(s&&t===W.RailMap?100:0),N[0]),Math.min(h[t]*(1-l/100)-(s&&t===W.RailMap?100:0),N[1])],L=Object.keys(v).reduce((O,T)=>({...O,[T]:B[0]+v[T]*(B[1]-B[0])}),{}),b=s?{l:1,r:-1}[o]:0;[..._.right,..._.left].forEach(O=>{L[O]-=(H[O]-z[0])*b}),_.bottom.forEach(O=>{L[O]-=(z[1]-z[0])*b});const E={...y,...L},P=Nt(_,E,H,b,[...B,...z],o),G=12,Y=t===W.RailMap&&d==="sh2020"?3:0;Object.keys(x).length>0&&_.top.forEach(O=>{H[O]-=Y+G});const X=$.length?0:(z[1]-z[0])*b/2;return e.jsxs("g",{id:"loop",transform:"translate(".concat(X,",0)"),children:[e.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:P,strokeLinejoin:"round"}),t===W.RailMap&&e.jsx(ve,{canvas:t,loop_stns:_,xs:E,ys:H}),e.jsxs("g",{transform:"translate(0,".concat(Object.keys(x).length>0?-G-Y:0,")"),children:[e.jsx(yt,{loop_branches:$,edges:[...B,...z],xs:E,ys:H,canvas:t}),Object.keys(x).length>0&&e.jsx(St,{edges:[...B,...z],loop_stns:_,xs:E,ys:H,canvas:t})]}),t===W.Indoor&&e.jsx(ve,{canvas:t,loop_stns:_,xs:E,ys:H})]})},Nt=(r,s,t,n,i,h)=>{const[c,l,a,o]=i,d=(p,x,g,m,u)=>({right:[g+(m-a)*n,x],bottom:[p-(o-x)*n,m],left:[g-(o-m)*n,x],top:[p+(x-a)*n,m]})[u],f=[];r.top.forEach(p=>{f.push([s[p],t[p]])}),["right","bottom","left"].forEach(p=>{if(r[p].length>0)f.push(d(f.at(-1)[0],f.at(-1)[1],s[r[p][0]],t[r[p][0]],p)),r[p].forEach(x=>{f.push([s[x],t[x]])});else{const x={right:[l,f.at(-1)[1]],bottom:[f.at(-1)[0]+(o-f.at(-1)[1])*-n,f.at(-1)[1]+(o-f.at(-1)[1])],left:[c+(n===0?0:(o-a)*(h==="l"?-1:1)),f.at(-1)[1]]};f.push(x[p])}}),f.push(d(f.at(-1)[0],f.at(-1)[1],s[r.top[0]],t[r.top[0]],"top"));const j=f.slice(1).map(([p,x])=>"L".concat(p,",").concat(x," ")).join(" ");return"M".concat(f[0][0],",").concat(f[0][1]," ").concat(j," Z")},ve=r=>{const{canvas:s,loop_stns:t,xs:n,ys:i}=r,{current_stn_idx:h}=w(o=>o.param),c={top:0,bottom:0,left:-1,right:1},l={left:"r",right:"l",top:void 0,bottom:void 0},a=(o,d)=>({top:d%2===0?"upward":"downward",bottom:d%2===0?"upward":"downward",left:"left",right:"right"})[o];return e.jsxs("g",{id:"loop_stations",children:[s===W.RailMap&&Object.entries(t).map(([o,d])=>d.map(f=>e.jsx("g",{transform:"translate(".concat(n[f],",").concat(i[f],")"),children:e.jsx(K,{stnId:f,stnState:h===f?0:1,bank:c[o],direction:l[o]})},f))),s===W.Indoor&&Object.entries(t).map(([o,d])=>d.map((f,j)=>e.jsx("g",{transform:"translate(".concat(n[f],",").concat(i[f],")"),children:e.jsx(te,{stnId:f,nameDirection:a(o,j),services:[F.local]})},f)))]})},ye=W.RailMap;function kt(){const{canvasScale:r}=w(l=>l.app),{svgWidth:s,svg_height:t,theme:n,loop:i,loop_info:{bank:h}}=w(l=>l.param),c=s[ye];return e.jsxs(q,{type:ye,svgWidth:c,svgHeight:t,canvasScale:r,theme:n,children:[e.jsx(wt,{}),i?e.jsx(ze,{bank_angle:h,canvas:W.RailMap}):e.jsx(mt,{}),e.jsx(ut,{})]})}const wt=k.memo(function(){return e.jsxs("defs",{children:[e.jsx("circle",{id:"stn_sh",fill:"var(--rmg-white)",strokeWidth:2,r:5}),e.jsx("path",{id:"int2_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"express_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"direct_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V50 a 5,5 0 1 1 -10,0Z"}),e.jsx("rect",{id:"stn_sh_2020",stroke:"none",height:24,width:12,x:-6,y:-18}),e.jsx("rect",{id:"stn_sh_2020_express",stroke:"none",height:49,width:12,x:-6,y:-18}),e.jsx("rect",{id:"stn_sh_2020_direct",stroke:"none",height:74,width:12,x:-6,y:-18}),e.jsx("rect",{id:"intbox_number",height:22,width:20,y:-11}),e.jsxs("g",{id:"intbox_maglev",transform:"translate(-25,0)",children:[e.jsx("rect",{id:"maglev_5",height:144,width:130,y:"40",x:"30",strokeWidth:10}),e.jsx("path",{id:"maglev_3",fill:"var(--rmg-white)",d:"m90,55a40,5 0 0 0 -40,3a5,5 0 0 0 -5,5a5,60 0 0 0 -3,60a5,5 0 0 0 5,5l96,0a5,5 0 0 0 5,-5a5,60 0 0 0 -3,-60a5,5 0 0 0 -5,-5a40,5 0 0 0 -40,-3l-5,-10l-5,10"}),e.jsx("path",{id:"maglev_4",fill:"var(--rmg-white)",d:"m90,140l-40,0a10,5 0 0 1 -10,-5l0,25a10,15 0 0 0 10,15l15,0l0,-10l-15,0l0,-15l90,0l0,15l-15,0l0,10l15,0a10,15 0 0 0 10,-15l0,-25a10,5 0 0 1 -10,5l-50,0"}),e.jsx("rect",{id:"maglev_1",height:"25",width:"40",y:"80",x:"50"}),e.jsx("rect",{id:"maglev_2",height:"25",width:"40",y:"80",x:"100"})]}),e.jsxs("g",{id:"airport",transform:"scale(0.5)",children:[e.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),e.jsx("path",{id:"airport",d:"M28.9769,6.60134c1.711.013,3.111,2.53205,3.111,4.241v10.337s17.106,15.435,17.358,15.666a1.145,1.145,0,0,1,.488,1.152v2.833c0,.651-.451.61-.695.467-.334-.119-17.151-8.863-17.151-8.863-.004,1.458-.797,9.006-1.326,13.304,0,0,4.61,2.457,4.699,2.521.334.268.352.359.352.852v2.001c0,.477-.352.428-.51.324-.183-.062-5.693-1.921-5.693-1.921a2.56018,2.56018,0,0,0-.633-.127,2.31654,2.31654,0,0,0-.666.127s-5.477,1.859-5.672,1.921c-.185.104-.523.153-.523-.324v-2.001c0-.493.029-.584.367-.852.086-.064,4.678-2.521,4.678-2.521-.524-4.298-1.307-11.846-1.325-13.304,0,0-16.822,8.744-17.148,8.863-.217.143-.69.184-.69-.467v-2.833a1.16206,1.16206,0,0,1,.473-1.152c.276-.231,17.365-15.666,17.365-15.666v-10.337c0-1.709,1.403-4.228,3.14105-4.241",transform:"translate(-28.9697,0.14347)",fill:"var(--rmg-white)"})]}),e.jsxs("g",{id:"disney",transform:"scale(0.5)",children:[e.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),e.jsx("path",{fill:"var(--rmg-white)",d:"M45.6152,7.85015a9.80248,9.80248,0,0,0-9.79907,9.801,9.70059,9.70059,0,0,0,.342,2.582c.002.026.002.055.002.093a.31815.31815,0,0,1-.31494.318.67741.67741,0,0,1-.12806-.02,15.71521,15.71521,0,0,0-13.498,0,.61.61,0,0,1-.122.02.31841.31841,0,0,1-.322-.318v-.067a9.62553,9.62553,0,0,0,.35608-2.608,9.803,9.803,0,1,0-9.797,9.8,10.10364,10.10364,0,0,0,2.308-.271h.05493a.31113.31113,0,0,1,.31409.318.32433.32433,0,0,1-.019.12,15.72588,15.72588,0,1,0,29.703,7.216,15.83676,15.83676,0,0,0-1.746-7.23.18417.18417,0,0,1-.0271-.106.31612.31612,0,0,1,.32007-.318h.057a10.15953,10.15953,0,0,0,2.316.271,9.80051,9.80051,0,0,0,0-19.601",transform:"translate(-28.9697 0.13398)"})]}),e.jsxs("g",{id:"railway",children:[e.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)",transform:"translate(0,-2)scale(0.5)"}),e.jsx("path",{fill:"var(--rmg-white)",d:"M169,273.5c0-19,14.7-34.8,33.7-36.3c18.9-1.5,38.1-2.2,57.4-2.2c19.3,0,38.4,0.8,57.3,2.2 c19,1.5,33.7,17.3,33.7,36.3v47.3l-51.3,14.7c-11.2,3.2-18.9,13.4-18.9,25v147.8c0,17.4,12.2,32.3,29.3,35.7l110.6,22.1 c4.9,1,8.4,5.2,8.4,10.2V599H91v-22.7c0-5,3.5-9.2,8.4-10.2L209.9,544c17-3.4,29.3-18.3,29.3-35.7V360.5c0-11.6-7.7-21.8-18.9-25 L169,320.8V273.5z M309.4,31.7c0.2-1.2,0.3-2.4,0.3-3.6c0-14-11.1-25.4-24.9-26C276.6,1.4,268.3,1,260,1c-8.3,0-16.6,0.4-24.7,1.1 c-13.9,0.6-24.9,12-24.9,26c0,1.2,0.1,2.5,0.3,3.6C90.6,54.8,0,160.3,0,287c0,97.2,53.4,182,132.4,226.6l36.8-48.1 C104.3,432.4,59.8,364.9,59.8,287c0-110.6,89.6-200.2,200.2-200.2S460.2,176.4,460.2,287c0,77.9-44.5,145.4-109.4,178.5 c15,19.6,25.6,33.5,36.8,48.1C466.6,469,520,384.2,520,287C520,160.3,429.4,54.8,309.4,31.7z",transform:"translate(-10,0)scale(0.04)"})]}),e.jsx("marker",{id:"arrow_gray",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-grey)"})}),e.jsx("marker",{id:"arrow_theme_left",refX:1,refY:.5,children:e.jsx("path",{d:"M1,0L0,1H1z",fill:"var(--rmg-theme-colour)"})}),e.jsx("marker",{id:"arrow_theme_right",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),e.jsx("marker",{id:"arrow_theme",refX:1,refY:.5,children:e.jsx("path",{d:"M0,1H2L1,0z",fill:"var(--rmg-theme-colour)"})}),e.jsx("filter",{id:"contrast-direct",filterUnits:"userSpaceOnUse",children:e.jsxs("feComponentTransfer",{children:[e.jsx("feFuncR",{type:"linear",slope:.5,intercept:.25}),e.jsx("feFuncG",{type:"linear",slope:.5,intercept:.25}),e.jsx("feFuncB",{type:"linear",slope:.5,intercept:.25})]})}),e.jsx("filter",{id:"contrast-express",filterUnits:"userSpaceOnUse",children:e.jsxs("feComponentTransfer",{children:[e.jsx("feFuncR",{type:"linear",slope:.75,intercept:.125}),e.jsx("feFuncG",{type:"linear",slope:.75,intercept:.125}),e.jsx("feFuncB",{type:"linear",slope:.75,intercept:.125})]})}),e.jsx(ee,{})]})}),Se=W.Indoor;function Mt(){const{canvasScale:r}=w(c=>c.app),{svgWidth:s,svg_height:t,theme:n,loop:i}=w(c=>c.param),h=s[Se];return e.jsxs(q,{type:Se,svgWidth:h,svgHeight:t,canvasScale:r,theme:n,children:[e.jsx(bt,{}),i?e.jsx(ze,{bank_angle:!1,canvas:W.Indoor}):e.jsx(zt,{}),e.jsx(Ie,{})]})}const bt=k.memo(function(){return e.jsxs("defs",{children:[e.jsx("circle",{id:"stn_indoor_sh",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),e.jsx("path",{id:"int2_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"express_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"direct_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V40 a 5,5 0 1 1 -10,0Z"}),e.jsxs("g",{id:"osi_indoor_sh",children:[e.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-black)",strokeWidth:22}),e.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-white)",strokeWidth:10}),e.jsx("circle",{cy:"-12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),e.jsx("circle",{cy:"12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"})]})]})}),Ht=(r,s)=>{let t=0;return r[s].parents.length===2&&(t+=1),r[r[s].parents[0]].children.length===2&&(t+=1),t},Ot=(r,s)=>{let t=0;return r[s].children.length===2&&(t+=1),r[r[s].children[0]].parents.length===2&&(t+=1),t},zt=()=>{const{routes:r,branches:s,depsStr:t}=w(m=>m.helper),n=w(m=>m.param),i=ke(n.stn_list,Ht,Ot),h=J("linestart","lineend",i),c=J(h.nodes[1],h.nodes.slice(-2)[0],i),l=k.useMemo(()=>(console.log("computing x shares"),Object.keys(n.stn_list).reduce((m,u)=>({...m,[u]:we(u,i,s)}),{})),[s.toString(),JSON.stringify(i)]),a=[n.svgWidth.indoor*n.padding/100,n.svgWidth.indoor*(1-n.padding/100)],o=Object.keys(l).reduce((m,u)=>({...m,[u]:a[0]+l[u]/c.len*(a[1]-a[0])}),{}),d=k.useMemo(()=>ue.getYShares(n.stn_list),[t]),f=Object.keys(d).reduce((m,u)=>({...m,[u]:d[u]*n.branchSpacingPct*n.svg_height/200}),{}),j=k.useMemo(()=>Me(n.current_stn_idx,r,n.direction),[n.current_stn_idx,n.direction,r.toString()]),p=Object.values(F),x=Object.values(n.stn_list).map(m=>m.services).flat().reduce((m,u)=>(m[p.indexOf(u)]=!0,m),[!1,!1,!1]).map((m,u)=>[p[u],m]).filter(m=>m[1]).map(m=>m[0]),g=ue.drawLine(s,j,n.stn_list,a,o,f,n.branchSpacingPct*n.svg_height/200,h,0);return e.jsxs("g",{id:"main",transform:"translate(0,".concat(n.svg_height/2,")"),children:[e.jsx(It,{paths:g,services:x}),e.jsx(Lt,{xs:o,ys:f,services:x})]})},It=r=>e.jsx("g",{fill:"none",strokeWidth:12,stroke:"var(--rmg-theme-colour)",children:r.services.map((s,t)=>e.jsxs("g",{transform:"translate(0, ".concat(t*30,")"),children:[r.paths.main.map((n,i)=>e.jsx("path",{d:n},i)),r.paths.pass.map((n,i)=>e.jsx("path",{d:n},i))]},"indoor_line_".concat(t)))}),Lt=r=>{const{branches:s}=w(o=>o.helper),{stn_list:t,namePosMTR:{isFlip:n}}=w(o=>o.param),{xs:i,ys:h,services:c}=r,l=n==null||n?"upward":"downward",a=l==="upward"?"downward":"upward";return e.jsx("g",{children:Object.keys(t).filter(o=>!["linestart","lineend"].includes(o)).filter(o=>t[o].services.length!==0).map(o=>e.jsx("g",{transform:"translate(".concat(i[o],",").concat(h[o],")"),children:e.jsx(te,{stnId:o,nameDirection:c.length>1?"downward":s.filter(d=>d.includes(o)).map(d=>d.indexOf(o)%2===0?l:a)[0],services:c})},o))})},Ie=k.memo(()=>{const{svg_height:r,svgWidth:{indoor:s},line_name:t,stn_list:n}=w(c=>c.param),i=Math.max(...Object.values(n).map(c=>{var l,a,o;return(o=(a=(l=c.transfer.groups.at(1))==null?void 0:l.lines)==null?void 0:a.length)!=null?o:0})),h=i>0?210:110;return e.jsxs(e.Fragment,{children:[e.jsx("g",{transform:"translate(".concat(s/2,",50)"),children:e.jsxs("text",{textAnchor:"middle",fontSize:"30",className:"rmg-name__zh",children:["轨道交通",t[0],"运营线路示意图"]})}),e.jsxs("g",{transform:"translate(".concat(s/2,",").concat(r-270,")"),children:[e.jsx("text",{textAnchor:"middle",fontSize:"18",className:"rmg-name__zh",dx:"-30",dy:"230",children:"友情提示:请留意您需要换乘线路的首末班时间,以免耽误您的出行,末班车进站前三分钟停售该末班车车票。"}),e.jsx("text",{textAnchor:"middle",fontSize:"12",className:"rmg-name__en",dx:"10",dy:"250",children:"Please pay attention to the interchange schedule if you want to transfer to other lines. Stop selling tickets 3 minutes before the last train services."}),e.jsxs("g",{transform:"translate(-700,215)",children:[e.jsx("rect",{x:"-5",y:"-25",width:h,height:"70",fill:"none",stroke:"black",rx:"5"}),e.jsx("line",{x1:"28",x2:"28",y1:"-20",y2:"40",stroke:"black"}),e.jsx("text",{className:"rmg-name__zh",dx:"3",fontSize:"18",children:"图"}),e.jsx("text",{className:"rmg-name__zh",dx:"3",dy:"18",fontSize:"18",children:"例"}),e.jsx("text",{className:"rmg-name__en",dy:"35",fontSize:"8",children:"legend"}),e.jsx("use",{transform:"translate(50,10)",xlinkHref:"#int2_indoor_sh",stroke:"var(--rmg-black)"}),e.jsx("text",{className:"rmg-name__zh",dx:"70",dy:"5",fontSize:"10",children:"换乘站"}),e.jsx("text",{className:"rmg-name__en",dx:"70",dy:"15",fontSize:"6",children:"Interchange"}),e.jsx("text",{className:"rmg-name__en",dx:"70",dy:"25",fontSize:"6",children:"Station"}),i>0&&e.jsxs(e.Fragment,{children:[e.jsx("use",{transform:"translate(120,10)scale(0.75)",xlinkHref:"#osi_indoor_sh",stroke:"var(--rmg-black)"}),e.jsx("text",{className:"rmg-name__zh",dx:"135",dy:"5",fontSize:"10",children:"出站换乘车站"}),e.jsx("text",{className:"rmg-name__en",dx:"135",dy:"15",fontSize:"6",children:"Out-of-station Transfer"}),e.jsx("text",{className:"rmg-name__en",dx:"135",dy:"25",fontSize:"6",children:"Station"})]})]})]})]})});Ie.displayName="InfoElements";const Rt={destination:e.jsx(Te,{}),runin:e.jsx(Ye,{}),railmap:e.jsx(kt,{}),indoor:e.jsx(Mt,{})};export{Rt as default}; +import{j as e}from"./chakra-CXrhlirJ.js";import{a as k,d as Q}from"./react-Caefwd5V.js";import{aS as W,u as w,m as F}from"./index-ChIkpPhE.js";import{i as U}from"./app-router-ByZ3RjTs.js";import{S as q}from"./svg-wrapper-DO1Iqw6o.js";import{d as Ne,a as ke,c as J,g as we,b as Me}from"./share-r5pzRDhM.js";import{a as ue}from"./mtr-C3sp7NyA.js";import"./param-selector-BJ-4ECJo.js";const Le=(r,s,t,n)=>{const i=r.length-n*2-t,h=r.findIndex(o=>o===s),c=[...r,...r,...r],l=r.length+h-Math.floor(i/2)+(i%2===0?1:0),a=r.length+h+Math.floor(i/2);return{top:c.slice(l,a+1),left:c.slice(l-n,l),right:c.slice(a+1,a+1+n),bottom:c.slice(a+1+n,a+1+n+t)}},be=(r,s,t,n)=>{const i=r.length-n*2-t,h=[...r,...r,...r],c=r.length+r.findIndex(o=>o===s),l=h[c+i-1],a=r.length+r.findIndex(o=>o===l)+(c+i>r.length*2?r.length:0);return{top:h.slice(c,a+1),left:h.slice(c-n,c),right:h.slice(a+1,a+1+n),bottom:h.slice(a+1+n,a+1+n+t)}},Ee=(r,s,t,n)=>{let i=r.findIndex(d=>d===s[0]),h=r.findIndex(d=>d===s[1]);[i,h,s[0],s[1]]=i>h?[h,i,s[1],s[0]]:[i,h,s[0],s[1]];const c=r.slice(i,h+1),l=r.filter(d=>!c.filter(f=>!s.includes(f)).includes(d)),a=r.length-(n==="major"?Math.max:Math.min)(c.length,l.length)-t*2,o=n==="major"?c.length>l.length?s[0]:s[1]:c.length>l.length?s[1]:s[0];return be(r,o,a,t)},We=(r,s)=>{const t=Object.fromEntries(r.map(o=>[o,-1])),n=Object.fromEntries(r.map(o=>[o,-1])),[i,h,c,l]=[0,1,0,1],a=0;return s.top.forEach((o,d)=>{t[o]=a/2+(1-a)/(s.top.length+1)*(d+1),n[o]=i}),s.right.forEach((o,d)=>{t[o]=l,n[o]=a/2+(1-a)/(s.right.length+1)*(d+1)}),s.bottom.forEach((o,d)=>{t[o]=1-a/2-(1-a)/(s.bottom.length+1)*(d+1),n[o]=h}),s.left.forEach((o,d)=>{t[o]=c,n[o]=1-a/2-(1-a)/(s.left.length+1)*(d+1)}),{x_shares:t,y_shares:n}},Be=(r,s,t,n)=>{const i=r[0].filter(a=>!["linestart","lineend"].includes(a)),h=[...i,...i,...i],c=s==="r"?h:h.reverse(),l=c.findIndex(a=>n===a)+i.length;return c.slice(l+1).filter(a=>t[a].loop_pivot).slice(void 0,2)},pe=W.Destination;function Te(){const{canvasScale:r}=w(h=>h.app),{svgWidth:s,svg_height:t,theme:n}=w(h=>h.param),i=s[pe];return e.jsxs(q,{type:pe,svgWidth:i,svgHeight:t,canvasScale:r,theme:n,children:[e.jsx(Pe,{}),e.jsx(Ce,{})]})}const Pe=k.memo(function(){return e.jsx("defs",{children:e.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})}),Ce=()=>{const{routes:r,branches:s}=w(v=>v.helper),{line_name:t,theme:n,current_stn_idx:i,direction:h,stn_list:c,info_panel_type:l,loop:a,coline:o}=w(v=>v.param),d=(v,S,$)=>[...new Set(v.filter(N=>N.includes($)).map(N=>{const y=N.filter(M=>!["linestart","lineend"].includes(M));return S==="l"?y[0]:y.reverse()[0]}))],f=(v,S)=>S?[[v.map($=>c[$].localisedName.zh).join(","),v.map($=>c[$].localisedName.en).join(", ")].map($=>$.replace("\\",""))]:v.map($=>{const{zh:N="",en:y=""}=c[$].localisedName;return[N.replace("\\",""),y.replace("\\","")]}),j=a?Be(s,h,c,i):d(r,h,i),p=(a?d(r,h,i):j).filter(v=>s.slice(1).filter(S=>U(S,c)).some(S=>S.includes(v))),x=j.filter(v=>!p.includes(v)),g=f(x,!a&&l!=="sh2020"),m=f(p,!0),u=250,_=Object.fromEntries(p.map(v=>[v,Object.values(o).filter(S=>S.from===v||S.to===v).at(0)]).filter(([,v])=>v));return e.jsxs(e.Fragment,{children:[e.jsx(je,{dest_names:g,line_name:t,line_color:[n[2],n[3]],coline:!!p.length,upper:!!p.length}),p.length&&p.map(v=>{var S,$,N;return e.jsx("g",{transform:"translate(0,".concat(-u,")"),children:e.jsx(je,{dest_names:[m.at(0)],line_name:(S=_[v])==null?void 0:S.colors.at(0).slice(4),line_color:[($=_[v])==null?void 0:$.colors.at(0)[2],(N=_[v])==null?void 0:N.colors.at(0)[3]],coline:!0,upper:!1})},"coline_".concat(v))})]})},je=r=>{const{dest_names:s,line_name:t,line_color:n,coline:i,upper:h}=r,{current_stn_idx:c,direction:l,platform_num:a,svgWidth:o,svg_height:d}=w(S=>S.param),f=k.useRef(null),[j,p]=k.useState({width:0});k.useEffect(()=>{f.current&&p(f.current.getBBox())},[JSON.stringify(s),JSON.stringify(c)]);const[x,g,m,u,_]=[o.destination/2,10,36,264,325],v=x-g-m-j.width>=_/2&&x-g-m-u>=_/2?x:l==="l"?(o.destination+j.width-u)/2:(o.destination-j.width+u)/2;return e.jsxs("g",{transform:"translate(0,".concat(d-300,")"),children:[e.jsx("path",{stroke:n[0],strokeWidth:12,d:l==="l"?"M".concat(o.destination-24,",16 H 36"):"M24,16 H ".concat(o.destination-36),transform:"translate(0,".concat(h?-20:220,")"),markerEnd:i?void 0:"url(#slope)"}),e.jsx(Fe,{ref:f,dest_names:s}),a!==""&&e.jsx("g",{transform:"translate(".concat(v,",0)"),children:e.jsx(De,{})}),t[0].match(/^[\w\d]+(号)?线/)?e.jsx(Re,{line_name:t,line_color:n}):e.jsx(Ae,{line_name:t,line_color:n})]})},Fe=k.forwardRef(function(s,t){const{dest_names:n}=s,{direction:i,svgWidth:h}=w(c=>c.param);return e.jsxs("g",{ref:t,transform:"translate(".concat(i==="l"?36:h.destination-36,",145)"),children:[e.jsx("g",{transform:"translate(0,".concat(n.length===2?-20:20,")"),children:e.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:"rotate(".concat(i==="l"?0:180,")scale(0.8)")})}),e.jsx("g",{textAnchor:i==="l"?"start":"end",transform:"translate(".concat(i==="l"?148:-148,",25)"),children:n.map((c,l)=>e.jsxs(k.Fragment,{children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:l*-100+7,children:"往"+c[0]},"zh".concat(l)),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dy:l*-100+40,children:"To "+c[1]},"en".concat(l))]},l))})]})}),De=()=>{const{platform_num:r}=w(s=>s.param);return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(-325/2+60,",150)"),children:[e.jsx("circle",{r:60,fill:"none",stroke:"black",strokeWidth:2}),e.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"middle",children:r}),e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:100,dominantBaseline:"central",x:65,children:"站台"})]}),[r])},Ae=r=>{const{line_name:s,line_color:t}=r,{direction:n,svgWidth:i}=w(f=>f.param),h=n==="l"?i.destination-42:42,c=k.useRef(null),[l,a]=k.useState({width:0});k.useEffect(()=>{c.current&&a(c.current.getBBox())},[...s]);const o=(n==="l"?-l.width:0)-6,d=(n==="l"?-1:1)*l.width/2;return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(h,",92)"),children:[e.jsx("rect",{fill:t[0],x:o,width:l.width+10,height:120}),e.jsxs("g",{textAnchor:n==="r"?"start":"end",transform:"translate(0,68)",fill:t[1],children:[e.jsx("g",{ref:c,children:e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:s[0]})}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,textAnchor:"middle",x:d,dy:42,children:s[1]})]})]}),[l,...s,...t,n,i.destination])},Re=r=>{const{line_name:s,line_color:t}=r,{direction:n,svgWidth:i}=w(a=>a.param),[h,c]=s[0].match(/^[\w\d]+|.+/g),l=n==="l"?i.destination-36-210:90;return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(l,",92)"),children:[e.jsx("rect",{fill:t[0],x:-54,width:108,height:120}),e.jsx("text",{className:"rmg-name__zh rmg-outline",fill:t[1],fontSize:96,textAnchor:"middle",dominantBaseline:"central",transform:"translate(0,60)",letterSpacing:-5,children:h}),e.jsxs("g",{textAnchor:"start",transform:"translate(74,68)",children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:c}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,dy:42,children:s[1]})]})]}),[l,...s,...t,n,i.destination])},R=(r,s)=>r.map(t=>{const n=s.filter(a=>a.includes(t.from)&&a.includes(t.to));if(n.length!==1)return{linePath:[],colors:t.colors};const i=n.flat(),h=i.indexOf(t.from),c=i.indexOf(t.to);return{linePath:ht.linePath.length!==0),Ge=(r,s)=>r.map(t=>{const n=Ne(t.linePath,s);return{main:[{linePath:n.main,colors:t.colors}],pass:[{linePath:n.pass,colors:t.colors}]}}).reduce((t,n)=>(t.main=[...t.main,...n.main],t.pass=[...t.pass,...n.pass],t),{main:[],pass:[]}),ee=()=>Q.useMemo(()=>e.jsxs("filter",{id:"pujiang_outline",colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse",x:"0",y:"-1000",width:"5000",height:"2000",children:[e.jsxs("feComponentTransfer",{in:"SourceGraphic",children:[e.jsx("feFuncR",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),e.jsx("feFuncG",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),e.jsx("feFuncB",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"})]}),e.jsx("feColorMatrix",{type:"matrix",values:"1 0 0 0 0\n 0 1 0 0 0\n 0 0 1 0 0\n 1 1 1 1 -3",result:"selectedColor"}),e.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"0",result:"e1"}),e.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"1",result:"e2"}),e.jsx("feComposite",{in:"e1",in2:"e2",operator:"xor",result:"uncoloredOutline"}),e.jsx("feFlood",{floodColor:"rgb(0,0,0)"}),e.jsx("feComposite",{operator:"in",in2:"uncoloredOutline",result:"outline"}),e.jsx("feComposite",{in:"outline",in2:"selectedColor",operator:"over",result:"result"}),e.jsx("feComposite",{in:"result",in2:"SourceGraphic",operator:"over"})]}),[]);ee.displayName="PujiangLineDefs";const A=12,_e=W.RunIn,Ye=()=>{const{canvasScale:r}=w(x=>x.app),{branches:s,routes:t,depsStr:n}=w(x=>x.helper),{svgWidth:i,svg_height:h,current_stn_idx:c,direction:l,loop:a,theme:o}=w(x=>x.param),d=i[_e],f=h-300,j=k.useMemo(()=>{let x=t.filter(g=>g.includes(c)).map(g=>g[g.indexOf(c)+(l==="l"?1:-1)]).filter(g=>g!==void 0).reduce((g,m)=>g.includes(m)?g:g.concat(m),[]);return a&&s[0].includes(c)&&x.length===1&&["linestart","lineend"].includes(x[0])&&(x=l==="l"?[s[0][1]]:[s[0][s[0].length-2]]),x},[n,c,l,a]),p=k.useMemo(()=>{let x=t.filter(g=>g.includes(c)).map(g=>g[g.indexOf(c)+(l==="l"?-1:1)]).filter(g=>g!==void 0).reduce((g,m)=>g.includes(m)?g:g.concat(m),[]);return a&&s[0].includes(c)&&x.length===1&&["linestart","lineend"].includes(x[0])&&(x=l==="l"?[s[0][s[0].length-2]]:[s[0][1]]),x},[n,c,l,a]);return e.jsxs(q,{type:_e,svgWidth:d,svgHeight:h,canvasScale:r,theme:o,children:[e.jsx(Ve,{}),e.jsx("g",{transform:"translate(0,".concat(f,")"),children:e.jsx(Xe,{prevStnIds:j,nextStnIds:p})})]})},Ve=k.memo(function(){return e.jsxs("defs",{children:[e.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),e.jsx(ee,{})]})}),Xe=r=>{const{prevStnIds:s,nextStnIds:t}=r,{info_panel_type:n,svgWidth:i,stn_list:h}=w(u=>u.param),c=i.runin/2,l=t.length===1&&["linestart","lineend"].includes(t[0]),a=s.length===1&&["linestart","lineend"].includes(s[0]),o=t.map(u=>h[u].localisedName),d=s.map(u=>h[u].localisedName),[{zh:f="",en:j=""}]=o,[{zh:p="",en:x=""}]=d,g=(t.length>1?(f.split("\\").length-1)*-50+(j.split("\\").length-1)*-30:0)+10,m=(s.length>1?(p.split("\\").length-1)*-50+(x.split("\\").length-1)*-30:0)+10;return e.jsxs(e.Fragment,{children:[e.jsx(Ze,{prevStnIds:s,nextStnIds:t,nextBranchLineDy:g,prevBranchLineDy:m}),l&&n!=="sh2020"?e.jsx($e,{mode:"terminal",prevStnIds:s,nextStnIds:t}):a&&n!=="sh2020"?e.jsx($e,{mode:"original",prevStnIds:s,nextStnIds:t}):e.jsxs(e.Fragment,{children:[e.jsx(Je,{prevStnIds:s,nextStnIds:t}),e.jsx("g",{transform:"translate(".concat(c,",160)"),textAnchor:"middle",children:e.jsx(He,{})})]}),(a||!l)&&e.jsx(qe,{stnIds:r.nextStnIds}),(l||!a)&&e.jsx(Ue,{stnIds:r.prevStnIds})]})},$e=r=>{var x;const{mode:s,prevStnIds:t,nextStnIds:n}=r,{current_stn_idx:i,theme:h,svgWidth:c,direction:l,coline:a}=w(g=>g.param),{branches:o}=w(g=>g.helper),d={l:{original:{x:c.runin-36,anchor:"end"},terminal:{x:36,anchor:"start"}},r:{original:{x:36,anchor:"start"},terminal:{x:c.runin-36,anchor:"end"}}},f=R(Object.values(a),o),j=s==="terminal"?t:n,p=n.length>1?"var(--rmg-theme-colour)":(x=f.filter(g=>g.linePath.includes(i)&&g.linePath.includes(j[0])).map(g=>g.colors[0][2])[0])!=null?x:"var(--rmg-theme-colour)";return e.jsxs(e.Fragment,{children:[s==="original"&&e.jsx("path",{transform:"translate(0,".concat(a.length?"198":"220",")").concat(a.length?"scale(1,2)":""),stroke:p,strokeWidth:12,d:l==="l"?"M ".concat(c.runin-24,",16 H 36"):"M24,16 H ".concat(c.runin-36),markerEnd:"url(#slope)"}),s==="terminal"&&e.jsx("g",{filter:h[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,children:e.jsx("path",{transform:"translate(0,".concat(a.length?"198":"220",")").concat(a.length?"scale(1,2)":""),stroke:"var(--rmg-grey)",strokeWidth:12,d:"M24,16 H ".concat(c.runin-24)})}),e.jsx("g",{transform:"translate(".concat(d[l][s].x,",160)"),textAnchor:d[l][s].anchor,children:e.jsx(He,{})})]})},Je=r=>{var S;const{prevStnIds:s,nextStnIds:t}=r,{direction:n,svgWidth:i,theme:h,coline:c,current_stn_idx:l,stn_list:a}=w($=>$.param),{branches:o}=w($=>$.helper),d=i.runin/2,f=$=>$.includes("linestart")||$.includes("lineend"),j=R(Object.values(c),o),p=t.length>1?"single":f(t)?j.filter($=>[l,s[0]].every(N=>$.linePath.includes(N))).length>0?"multiple":"single":[l,t[0]].every($=>o[0].includes($))&&j.filter($=>[l,t[0]].every(N=>$.linePath.includes(N))).length>0?"multiple":"single",x=f(t)?s:t,g=t.length>1?"var(--rmg-theme-colour)":(S=j.filter($=>$.linePath.includes(l)&&$.linePath.includes(x[0])).map($=>$.colors[0][2])[0])!=null?S:"var(--rmg-theme-colour)",m=($,N,y,M)=>$.slice(1).filter(I=>[N,y[0]].every(z=>I.includes(z))).filter(I=>U(I,M)).length>0,u=Object.keys(c).length>0&&m(o,l,t,a)?g:"var(--rmg-theme-colour)",_=Object.keys(c).length>0&&t.length===1&&(f(s)||f(t)?!0:!([l,t[0]].every($=>o[0].includes($))&&j.filter($=>$.linePath.includes(l)&&$.linePath.includes(t[0])).length!==0)),v=Object.keys(c).length>0&&s.length===1;return e.jsxs("g",{transform:"translate(0,220)",strokeWidth:12,children:[e.jsxs(e.Fragment,{children:[u!=="var(--rmg-theme-colour)"&&e.jsx("marker",{id:"slope_".concat(u),viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:u})}),e.jsx("path",{stroke:u,d:"M ".concat(d,",16 H ").concat(n==="l"?36:i.runin-36),markerEnd:u==="var(--rmg-theme-colour)"?"url(#slope)":"url(#slope_".concat(u,")"),transform:_?"translate(0,-22)scale(1,2)":void 0})]}),p==="multiple"&&e.jsxs(e.Fragment,{children:[e.jsx("marker",{id:"slope_".concat(g),viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:g})}),e.jsx("path",{stroke:g,d:"M ".concat(d,",16 H ").concat(n==="l"?36+A:i.runin-(36+A)),markerEnd:"url(#slope_".concat(g,")"),transform:"translate(0,-12)"})]}),e.jsx("g",{filter:h[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,transform:"translate(0,".concat(v?-22:0,")scale(1,").concat(v?2:1,")"),children:e.jsx("path",{stroke:"var(--rmg-grey)",d:"M ".concat(d,",16 H ").concat(n==="l"?i.runin-24:24," ")})})]})},Ze=r=>{const{prevStnIds:s,nextStnIds:t,nextBranchLineDy:n,prevBranchLineDy:i}=r,{direction:h,svgWidth:c,current_stn_idx:l,coline:a,theme:o}=w(_=>_.param),{branches:d}=w(_=>_.helper),f=c.runin/2,j=125,p=_=>"".concat(_[0],",").concat(_[1]),x=_=>"M".concat(p(_.at(0))," ")+_.slice(1).map(v=>"L".concat(p(v))).join(" "),g=h==="l"?[[c.runin/3,j],[c.runin/6,n],[36,n]]:[[c.runin/3*2,j],[c.runin/6*5,n],[c.runin-36,n]],m=h==="l"?[[c.runin/3*2,j],[c.runin/6*5,i],[c.runin-24,i]]:[[c.runin/3,j],[c.runin/6,i],[24,i]];let u="var(--rmg-theme-colour)";if(Object.keys(a).length>0){const _=R(Object.values(a),d);t.length>1&&_.filter(v=>v.linePath.includes(l)&&t.some(S=>v.linePath.includes(S)))&&(g[0][1]-=A-1,g.unshift([f,j-A+1]),u=_.filter(v=>v.linePath.includes(l)&&t.some(S=>v.linePath.includes(S))).at(0).colors.at(0)[2]),s.length>1&&_.filter(v=>v.linePath.includes(l)&&s.some(S=>v.linePath.includes(S)))&&(m[0][1]-=A-1,m.unshift([f,j-A+1]))}return e.jsxs("g",{transform:"translate(0,110)",strokeWidth:12,fill:"none",filter:o[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,children:[e.jsx("marker",{id:"slope_branch",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:u})}),t.length>1&&e.jsx("path",{stroke:u,d:x(g),markerEnd:"url(#slope_branch)"}),s.length>1&&e.jsx("path",{stroke:"var(--rmg-grey)",d:x(m)})]})},He=()=>{const r=w(i=>i.param),{localisedName:s}=r.stn_list[r.current_stn_idx],{zh:t="",en:n=""}=s;return k.useMemo(()=>e.jsxs(e.Fragment,{children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,children:t.replace("\\","")}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:50,children:n.replace("\\","")})]}),[t,n])},Z=r=>{const{nextName:s,...t}=r,{zh:n="",en:i=""}=s;return e.jsx("g",{...t,children:k.useMemo(()=>e.jsxs(e.Fragment,{children:[n.split("\\").map((h,c,l)=>e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:48,dy:(l.length-1-c)*-50-(i.split("\\").length-1)*30,children:h},h)),i.split("\\").map((h,c,l)=>e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:24,dy:28+(l.length-1-c)*-30,children:h},h))]}),[n,i])})},Ue=r=>{const s=w(l=>l.param),t=r.stnIds.map(l=>s.stn_list[l].localisedName),n=(r.stnIds.length>1?15:125)+t.map(l=>{var a,o,d;return(d=(o=(a=l.zh)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-50+t.map(l=>{var a,o,d;return(d=(o=(a=l.en)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-30,[{zh:i="",en:h=""}]=t,c=(r.stnIds.length>1?(i.split("\\").length-1)*-50+(h.split("\\").length-1)*-30:0)+70;return e.jsxs("g",{fill:"gray",textAnchor:s.direction==="l"?"end":"start",transform:"translate(".concat(s.direction==="l"?s.svgWidth.runin-36:36,",0)"),children:[e.jsx(Z,{nextName:t[0],transform:"translate(0,183)"}),r.stnIds.length>1&&e.jsx(Z,{nextName:t[1],transform:"translate(0,".concat(c,")")}),e.jsxs("g",{transform:"translate(0, ".concat(n,")"),children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"上一站"}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:s.direction==="l"?-70:70,children:"Past Stop"})]})]})},qe=r=>{const s=w(l=>l.param),t=r.stnIds.map(l=>s.stn_list[l].localisedName),n=(r.stnIds.length>1?15:125)+t.map(l=>{var a,o,d;return(d=(o=(a=l.zh)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-50+t.map(l=>{var a,o,d;return(d=(o=(a=l.en)==null?void 0:a.split("\\"))==null?void 0:o.length)!=null?d:1}).reduce((l,a)=>l+a,-t.length)*-30,[{zh:i="",en:h=""}]=t,c=(r.stnIds.length>1?(i.split("\\").length-1)*-50+(h.split("\\").length-1)*-30:0)+70;return e.jsxs("g",{textAnchor:s.direction==="l"?"start":"end",transform:"translate(".concat(s.direction==="l"?36:s.svgWidth.runin-36,",0)"),children:[e.jsx(Z,{nextName:s.stn_list[r.stnIds[0]].localisedName,transform:"translate(0,183)"}),r.stnIds.length>1&&e.jsx(Z,{nextName:s.stn_list[r.stnIds[1]].localisedName,transform:"translate(0,".concat(c,")")}),e.jsxs("g",{transform:"translate(0, ".concat(n,")"),children:[e.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"下一站"}),e.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:s.direction==="l"?70:-70,children:"Next Stop"})]})]})},K=r=>{var v,S,$,N;const{stnId:s,stnState:t,color:n,bank:i,direction:h}=r,{direction:c,info_panel_type:l,stn_list:a,loop:o}=w(y=>y.param),d=a[s],f=h!=null?h:c,j=o?0:(d.parents.length>1||d.children.length>1?8+12*(($=(S=(v=d.localisedName.en)==null?void 0:v.split("\\"))==null?void 0:S.length)!=null?$:1):0)*(f==="r"?-1:1);let p;const x={};l==="sh2020"?(d.services.length===3?p="stn_sh_2020_direct":d.services.length===2?p="stn_sh_2020_express":p="stn_sh_2020",x.fill=t===-1?"gray":n||"var(--rmg-theme-colour)"):(d.services.length===3?p="direct_sh":d.services.length===2?p="express_sh":[...d.transfer.groups[0].lines||[],...((N=d.transfer.groups[1])==null?void 0:N.lines)||[]].length>0?p="int2_sh":p="stn_sh",x.stroke=t===-1?"gray":n||"var(--rmg-theme-colour)");const g=i!=null?i:0,m=(f==="l"?6:-6)+j+g*30,u=(l==="sh2020"?-20:-6)+Math.abs(g)*(l==="sh2020"?25:11),_=g?0:f==="l"?-45:45;return e.jsxs(e.Fragment,{children:[e.jsx("use",{xlinkHref:"#".concat(p),...x,transform:"translate(".concat(g*(l==="sh2020"?5:0),",0)rotate(").concat(g*90*(l==="sh2020"?1:-1),")")}),e.jsx("g",{transform:"translate(".concat(m,",").concat(u,")rotate(").concat(_,")"),children:e.jsx(Ke,{name:d.localisedName,groups:d.transfer.groups,stnState:t,direction:f,facility:d.facility,bank:g,oneLine:d.one_line,intPadding:d.int_padding})}),t===0?e.jsx(et,{}):void 0]})},Ke=r=>{var u,_,v,S;const{name:s,groups:t,stnState:n,direction:i,facility:h,bank:c,oneLine:l,intPadding:a}=r,o=k.useRef(null),d=i==="l"?1:-1,f=h?30:0,j=c?-12:0,p=k.useRef(null),[x,g]=k.useState(0);k.useEffect(()=>{var $,N;return g((N=($=p.current)==null?void 0:$.getBBox().width)!=null?N:0)},[JSON.stringify(t)]);const m=a-x;return e.jsxs(e.Fragment,{children:[t.map($=>{var N;return(N=$.lines)!=null?N:[]}).flat().length>0&&e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:(j+f)*d,x2:m*d,stroke:n===-1?"gray":"black",strokeWidth:.5}),e.jsx(tt,{ref:p,groups:t,direction:i,transform:"translate(".concat(m*d,",-10.75)")})]}),h&&e.jsx("use",{xlinkHref:"#"+h,x:10*d,y:-30}),e.jsxs("g",{textAnchor:i==="l"?"start":"end",transform:"translate(".concat(f*d,",-14)"),children:[e.jsx(Qe,{ref:o,stnName:s,oneLine:l,directionPolarity:d,fill:n===-1?"gray":n===0?"red":"black"}),((_=(u=t[1])==null?void 0:u.lines)==null?void 0:_.length)&&e.jsx("g",{transform:"translate(".concat((m+x/2)*d,",-30)"),children:e.jsx(lt,{osiInfos:t[1].lines})}),((S=(v=t[2])==null?void 0:v.lines)==null?void 0:S.length)&&e.jsx("g",{transform:"translate(".concat((a+5)*d,",0)"),children:e.jsx(at,{osysiInfos:t[2].lines,direction:r.direction})})]})]})},Qe=k.forwardRef(function(s,t){const{stnName:n,oneLine:i,directionPolarity:h,...c}=s,{zh:l="",en:a=""}=n,o=k.useRef(null),[d,f]=k.useState(0);k.useEffect(()=>{i&&o.current?f(o.current.getBBox().width+5):f(0)},[n.zh,n.en,i]);const[j,p]=[20,8];return e.jsx("g",{ref:t,...c,children:k.useMemo(()=>e.jsxs(e.Fragment,{children:[e.jsx("g",{ref:o,children:l.split("\\").map((x,g,m)=>e.jsx("text",{className:"rmg-name__zh rmg-outline",dy:(m.length-1-g)*-j+(i?p:(a.split("\\").length-1)*-p),children:x},g))}),e.jsx("g",{fontSize:8,transform:"translate(".concat(d*h,",0)"),children:a.split("\\").map((x,g,m)=>e.jsx("text",{className:"rmg-name__en rmg-outline",dy:(m.length-2-g)*-p+2,children:x},g))})]}),[l,a,i,d,h])})}),et=()=>{const{stn_list:r}=w(n=>n.param),s=new Set(Object.values(r).map(n=>n.services).flat()),t=[-1,35,50,75][s.size];return e.jsx("g",{transform:"translate(0, ".concat(t,")"),children:e.jsx("text",{className:"rmg-name__zh",fill:"red",textAnchor:"middle",children:"本站"})})},tt=k.forwardRef(function(s,t){var a,o,d;const{groups:n,direction:i,...h}=s,c=[...n[0].lines||[],...((a=n[1])==null?void 0:a.lines)||[],...((d=(o=n[2])==null?void 0:o.lines)==null?void 0:d.filter(f=>!!f.name[0].match(/^磁(悬)*浮/)))||[]];let l=0;return e.jsx("g",{ref:t,fontSize:14,textAnchor:"middle",...h,children:c.map((f,j)=>{const p=!!f.name[0].match(/^\w+(号)?线/),x=!!f.name[0].match(/^磁(悬)*浮/);i==="r"&&(l-=(p||x?20:f.name[0].length*14+12)+(j===0?0:5));let g;return x?g=e.jsx("g",{transform:"translate(".concat(l,",-16)scale(0.1428571429)"),children:e.jsx(nt,{info:f})},j):p?g=e.jsx("g",{transform:"translate(".concat(l,",0)"),children:e.jsx(st,{info:f})},j):g=e.jsx("g",{transform:"translate(".concat(l,",0)"),children:e.jsx(rt,{info:f})},j),i==="l"&&(l+=p||x?25:f.name[0].length*14+12+5),g})})}),nt=k.memo(function(s){var t,n;return e.jsx(e.Fragment,{children:e.jsx("use",{xlinkHref:"#intbox_maglev",fill:(t=s.info.theme)==null?void 0:t[2],stroke:(n=s.info.theme)==null?void 0:n[2]})})},(r,s)=>JSON.stringify(r.info)===JSON.stringify(s.info)),st=k.memo(function(s){var t,n,i;return e.jsxs(e.Fragment,{children:[e.jsx("use",{xlinkHref:"#intbox_number",fill:(t=s.info.theme)==null?void 0:t[2]}),e.jsx("text",{x:10,className:"rmg-name__zh",fill:(n=s.info.theme)==null?void 0:n[3],dominantBaseline:"central",children:(i=s.info.name[0].match(/(\d*)\w+/))==null?void 0:i[0]})]})},(r,s)=>JSON.stringify(r.info)===JSON.stringify(s.info)),rt=k.memo(function(s){var n,i;const t=s.info.name[0].split("\\")[0].length;return e.jsxs(e.Fragment,{children:[e.jsx("rect",{height:22,width:t*14+12,y:-11,fill:(n=s.info.theme)==null?void 0:n[2]}),e.jsx("text",{x:t*7+6,className:"rmg-name__zh",fill:(i=s.info.theme)==null?void 0:i[3],dominantBaseline:"central",children:s.info.name[0].split("\\")[0]})]})},(r,s)=>JSON.stringify(r.info)===JSON.stringify(s.info)),lt=r=>{const s=r.osiInfos.map(t=>t.name[0]).join(",");return k.useMemo(()=>e.jsxs("g",{textAnchor:"middle",fontSize:"50%",children:[e.jsx("text",{className:"rmg-name__zh",dy:-5,children:"换乘".concat(s)}),e.jsx("text",{className:"rmg-name__zh",dy:5,children:"仅限公共交通卡"}),e.jsx("text",{className:"rmg-name__en",dy:12.5,fontSize:"75%",children:"Only for Public Transportation Card"})]}),[s.toString()])},at=r=>{const s=r.osysiInfos.map(n=>n.name[0]).join(","),t=r.osysiInfos.map(n=>n.name[1]).join(", ");return k.useMemo(()=>e.jsxs("g",{textAnchor:r.direction==="l"?"start":"end",fontSize:"50%",children:[e.jsxs("text",{className:"rmg-name__zh",dy:3,children:["转乘",s]}),e.jsxs("text",{className:"rmg-name__en",dy:10,fontSize:"75%",children:["To ",t]})]}),[JSON.stringify(r.osysiInfos),r.direction])},it=["shanghai","sh4","#5F259F","#fff","4号线","Line 4"],ot=r=>{const{xs:s,servicesPresent:t,stnStates:n}=r,{svg_height:i,direction:h,stn_list:c,current_stn_idx:l,branchSpacingPct:a,info_panel_type:o,coline:d}=w($=>$.param),{branches:f,depsStr:j}=w($=>$.helper),p=k.useMemo(()=>(console.log("computing y shares"),Object.keys(c).reduce(($,N)=>{if(f[0].includes(N))return{...$,[N]:0};{const y=f.slice(1).filter(M=>M.includes(N))[0];return{...$,[N]:c[y[0]].children.indexOf(y[1])?-3:3}}},{})),[j]),x=Object.entries(p).filter(([,$])=>$<=0).reduce(($,[N,y])=>({...$,[N]:y}),{}),g=Object.keys(x).reduce(($,N)=>({...$,[N]:-x[N]*a*i/300}),{}),m=k.useMemo(()=>Ge(R(Object.values(d).filter($=>$.display),f),n),[JSON.stringify(d),l,h,j]),u=t.reduce(($,N)=>({...$,[N]:Object.keys(m).reduce((y,M)=>({...y,[M]:m[M].map(I=>({path:Oe(I.linePath,M,s,g,h,N,t.length,c,"diagonal"),colors:I.colors})).filter(I=>I.path!=="")}),{})}),{}),_=R(Object.values(d).filter($=>$.display),f).map($=>$.linePath).flat(),v=12,S=o==="sh2020"?3:0;return e.jsx(e.Fragment,{children:e.jsxs("g",{id:"coline",transform:"translate(0,".concat(v+S,")"),children:[e.jsx(ct,{paths:u,direction:h}),e.jsx(ht,{colineStns:m,branches:f,xs:s,ys:g,stnStates:n,lineWidth:v,colineGap:S}),e.jsx(dt,{stnIds:Object.entries(p).filter(([,$])=>$<0).reduce(($,[N])=>[...$,N],[]).filter($=>!["linestart","lineend"].includes($)).filter($=>c[$].services.length!==0).filter($=>_.includes($)),xs:s,ys:g,stnStates:n})]})})},ct=r=>{const{paths:s,direction:t}=r;return e.jsx(e.Fragment,{children:Object.keys(s).map((n,i)=>{var h,c;return e.jsx("g",{transform:"translate(0,".concat(i*25,")"),children:e.jsxs("g",{children:[(h=s[n])==null?void 0:h.pass.map((l,a)=>e.jsx(k.Fragment,{children:e.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:l.path,strokeLinejoin:"round",filter:n===F.local?void 0:"url(#contrast-".concat(n,")")},a)},a)),(c=s[n])==null?void 0:c.main.map((l,a)=>{var o;return e.jsxs(k.Fragment,{children:[l.colors.length>1&&e.jsx("linearGradient",{id:"grad".concat(a),y1:"-100%",y2:"100%",x1:"0",x2:"0",gradientUnits:"userSpaceOnUse",children:l.colors.map((d,f)=>e.jsxs(k.Fragment,{children:[e.jsx("stop",{offset:"".concat(100/l.colors.length*(f+0),"%"),stopColor:d[2]}),e.jsx("stop",{offset:"".concat(100/l.colors.length*(f+1),"%"),stopColor:d[2]})]},f))}),t==="l"&&e.jsx("marker",{id:"arrow_left_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_")),refY:.5,refX:1,children:e.jsx("path",{d:"M1,0L0,1H1z",fill:l.colors.length>1?"url(#grad".concat(a,")"):l.colors[0][2]})}),t==="r"&&e.jsx("marker",{id:"arrow_right_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_")),refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:l.colors.length>1?"url(#grad".concat(a,")"):l.colors[0][2]})}),e.jsx("path",{stroke:((o=l.colors.at(-1))!=null?o:it)[2],strokeWidth:12,fill:"none",d:l.path,markerStart:t==="l"?"url(#arrow_left_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_"),")"):void 0,markerEnd:t==="r"?"url(#arrow_right_".concat(a,"_").concat(l.colors.map(d=>d[2]).join("_"),")"):void 0,strokeLinejoin:"round",filter:n===F.local?void 0:"url(#contrast-".concat(n,")")},a)]},a)})]})},"servicePath".concat(i))})})},ht=r=>{const{colineStns:s,branches:t,xs:n,ys:i,stnStates:h,lineWidth:c,colineGap:l}=r,{line_name:a,theme:o,info_panel_type:d}=w(j=>j.param),f=[...s.main,...s.pass].map(j=>j.linePath.map(p=>{var x;return{curStn:p,x:n[p],y:i[p],color:(x=j.colors.at(-1))!=null?x:[...o,...a]}})).flat().reduce((j,p)=>j.find(x=>x.curStn===p.curStn)?j:j.concat(p),[]).filter(j=>t[0].includes(j.curStn));return console.log(f),e.jsx("g",{id:"stations_in_mainline",children:f.map(j=>{const{curStn:p,x,y:g,color:m}=j,u=(h[p]===-1?0:c)+l+c,_=(h[p]===-1?0:-c)-l-c/2;return e.jsx("g",{transform:"translate(".concat(x,",").concat(g,")"),children:d==="sh2020"?e.jsx("rect",{stroke:"none",height:u,width:12,x:-6,y:_,fill:h[p]===-1?"var(--rmg-grey)":m[2]}):e.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:"translate(0,".concat(-c,")")})},p)})})},dt=r=>{const{xs:s,ys:t,stnStates:n,stnIds:i}=r,{branches:h,depsStr:c}=w(j=>j.helper),{line_name:l,theme:a,coline:o}=w(j=>j.param),d=k.useMemo(()=>R(Object.values(o),h),[JSON.stringify(o),c]),f=i.reduce((j,p)=>{var x;return{...j,[p]:(x=d.filter(g=>g.linePath.includes(p)).map(g=>g.colors).flat().at(0))!=null?x:[...a,...l]}},{});return e.jsx("g",{id:"stations_in_coline",children:i.map(j=>e.jsx("g",{transform:"translate(".concat(s[j],",").concat(t[j],")"),children:e.jsx(K,{stnId:j,stnState:n[j],color:f[j][2]})},j))})},mt=()=>{const{routes:r,branches:s,depsStr:t}=w(y=>y.helper),n=w(y=>y.param),{svg_height:i,stn_list:h,branchSpacingPct:c,coline:l,direction:a}=w(y=>y.param),o=ke(n.stn_list,()=>0,()=>0),d=J("linestart","lineend",o),f=J(d.nodes[1],d.nodes.slice(-2)[0],o),j=k.useMemo(()=>(console.log("computing x shares"),Object.keys(n.stn_list).reduce((y,M)=>({...y,[M]:we(M,o,s)}),{})),[s.toString(),JSON.stringify(o)]),p=[n.svgWidth.railmap*n.padding/100,n.svgWidth.railmap*(1-n.padding/100)],x=Object.keys(j).reduce((y,M)=>({...y,[M]:p[0]+j[M]/f.len*(p[1]-p[0])}),{}),g=k.useMemo(()=>(console.log("computing y shares"),Object.keys(h).reduce((y,M)=>{if(s[0].includes(M))return{...y,[M]:0};{const I=s.slice(1).filter(z=>z.includes(M))[0];return{...y,[M]:h[I[0]].children.indexOf(I[1])?-3:3}}},{})),[t]),m=Object.entries(g).filter(([,y])=>y>=0).reduce((y,[M,I])=>({...y,[M]:I}),{}),u=Object.keys(m).reduce((y,M)=>({...y,[M]:-m[M]*c*i/300}),{}),_=k.useMemo(()=>Me(n.current_stn_idx,r,n.direction),[n.current_stn_idx,n.direction,r.toString()]),v=Object.values(F),S=Object.values(n.stn_list).map(y=>y.services).flat().reduce((y,M)=>(y[v.indexOf(M)]=!0,y),[!1,!1,!1]).map((y,M)=>[v[M],y]).filter(y=>y[1]).map(y=>y[0]),$=s.map(y=>Ne(y,_)).reduce((y,M)=>(y.main.push(M.main),y.pass.push(M.pass),y),{main:[],pass:[]}),N=S.reduce((y,M)=>({...y,[M]:Object.keys($).reduce((I,z)=>({...I,[z]:$[z].map(H=>Oe(H,z,x,u,a,M,S.length,h)).filter(H=>H!=="")}),{})}),{});return e.jsxs("g",{id:"main",transform:"translate(0,".concat(n.svg_height*(Object.keys(l).length>0?.5:.7+.1),")"),children:[e.jsx(xt,{paths:N,direction:n.direction}),e.jsx(gt,{stnIds:Object.keys(m).filter(y=>!["linestart","lineend"].includes(y)).filter(y=>h[y].services.length!==0),xs:x,ys:u,stnStates:_}),Object.keys(l).length>0&&e.jsx(ot,{xs:x,servicesPresent:S,stnStates:_}),S.length>1&&e.jsx(ft,{servicesLevel:S,lineXs:p})]})},xt=r=>{const{theme:s}=w(i=>i.param),{paths:t,direction:n}=r;return e.jsx(e.Fragment,{children:Object.keys(t).map((i,h)=>{var c,l;return e.jsxs("g",{transform:"translate(0,".concat(h*25,")"),filter:s[2]==="#B5B5B6"?"url(#pujiang_outline)":void 0,children:[e.jsx("g",{children:(c=t[i])==null?void 0:c.pass.map((a,o)=>e.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:a,markerStart:r.direction==="l"?"url(#arrow_gray)":void 0,markerEnd:r.direction==="r"?"url(#arrow_gray)":void 0,strokeLinejoin:"round"},o))}),e.jsx("g",{children:(l=t[i])==null?void 0:l.main.map((a,o)=>e.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:a,markerStart:n==="l"?"url(#arrow_theme_left)":void 0,markerEnd:n==="r"?"url(#arrow_theme_right)":void 0,strokeLinejoin:"round",filter:i===F.local?void 0:"url(#contrast-".concat(i,")")},o))})]},"servicePath".concat(h))})})},Oe=(r,s,t,n,i,h,c,l,a="rightangle")=>{let[o,d]=[];const f={},j={local:0,express:20,direct:40}[h],p=c>1?50:0;let x=30;if(r.length>0){let m=!1,u=!1;l[r.at(-1)||0].children.some(_=>["linestart","lineend"].includes(_))?u=!0:l[r.at(0)||0].parents.some(_=>["linestart","lineend"].includes(_))&&(m=!0),x=m||u?x:0}const g=30;if(r.forEach(m=>{const u=t[m],_=n[m];if(!o&&o!==0){[d,o]=[u,_],f.start=[u,_];return}_===0?_!==o&&(f.bifurcate=[d,o]):_!==o&&(f.bifurcate=[u,_]),f.end=[u,_],[d,o]=[u,_]}),"start"in f)if("end"in f)if("bifurcate"in f){const[m,u]=f.start,_=f.bifurcate[0],[v,S]=f.end;return s==="main"?i==="l"?S>u?(console.log(f),a==="rightangle"?"M ".concat(m-x,",").concat(u," H ").concat(v," V ").concat(S):"M ".concat(m,",").concat(u," H ").concat(m+g," L ").concat(_-g,",").concat(S," H ").concat(v)):a==="rightangle"?"M ".concat(m,",").concat(u," V ").concat(S," H ").concat(v):"M ".concat(m-x,",").concat(u," H ").concat(_+g," L ").concat(v-g,",").concat(S," H ").concat(v):S>u?a==="rightangle"?"M ".concat(m,",").concat(u," H ").concat(v," V ").concat(S):"M ".concat(m,",").concat(u," H ").concat(m+g," L ").concat(_-g,",").concat(S," H ").concat(v+x):a==="rightangle"?"M ".concat(m,",").concat(u," V ").concat(S," H ").concat(v+x):"M ".concat(m,",").concat(u," H ").concat(_+g," L ").concat(v-g,",").concat(S," H ").concat(v):S>u?a==="rightangle"?"M ".concat(m-x,",").concat(u," H ").concat(v," V ").concat(S):"M ".concat(m,",").concat(u," H ").concat(m+g," L ").concat(_-g,",").concat(S," H ").concat(v+x):a==="rightangle"?"M ".concat(m,",").concat(u," V ").concat(S," H ").concat(v+x):"M ".concat(m-x,",").concat(u," H ").concat(_+g," L ").concat(v-g,",").concat(S," H ").concat(v)}else{const[m,u]=f.start,_=f.end[0];return s==="main"?i==="l"?"M ".concat(m-x-j,",").concat(u," H ").concat(_):"M ".concat(m,",").concat(u," H ").concat(_+x+j):i==="l"?"M ".concat(m-x,",").concat(u," H ").concat(_+x+p):"M ".concat(m-x-p,",").concat(u," H ").concat(_+x)}else{const[m,u]=f.start;return s==="main"?i==="l"?"M ".concat(m-x-j,",").concat(u," H ").concat(m):"M ".concat(m,",").concat(u," H ").concat(m+x+j):i==="l"?"M ".concat(m,",").concat(u," L ").concat(m+x+p,",").concat(u):"M ".concat(m-x-p,",").concat(u," L ").concat(m,",").concat(u)}else return""},gt=r=>{const{xs:s,ys:t,stnStates:n,stnIds:i}=r;return e.jsx("g",{children:i.map(h=>e.jsx("g",{transform:"translate(".concat(s[h],",").concat(t[h],")"),children:e.jsx(K,{stnId:h,stnState:n[h]})},h))})},ft=r=>{const{svg_height:s,direction:t,svgWidth:n}=w(a=>a.param),i=-s+130,h=r.servicesLevel.map(a=>({local:"普通车",express:"大站车",direct:"直达车"})[a]),c=t==="r"?r.lineXs[0]-42:r.lineXs[1]+42,l=r.servicesLevel.length===2?350:500;return k.useMemo(()=>e.jsxs("g",{children:[h.map((a,o)=>e.jsxs("g",{transform:"translate(".concat(c,",").concat(o*25,")"),children:[e.jsx("rect",{x:-27.5,height:10,width:55,fill:"white",stroke:"black",y:-5}),e.jsx("text",{className:"rmg-name__zh",fontSize:9,y:3,textAnchor:"middle",children:"".concat(a,"运行线")})]},a)),e.jsxs("g",{transform:"translate(".concat(t==="r"?30:n.railmap-l,",").concat(i,")"),children:[e.jsx("text",{className:"rmg-name__zh",children:"图例:"}),h.map((a,o)=>e.jsxs("g",{transform:"translate(".concat(o*150+50,",0)"),children:[e.jsx("line",{x1:"0",x2:"35",y1:"-5",y2:"-5",stroke:"var(--rmg-theme-colour)",strokeWidth:"12",filter:o===2?"url(#contrast-direct)":o===1?"url(#contrast-express)":""}),e.jsx("use",{x:"17.5",y:"-5",xlinkHref:"#stn_sh",fill:"var(--rmg-theme-colour)"}),e.jsx("text",{x:"40",className:"rmg-name__zh",children:"".concat(a,"停靠站")})]},"serviceLevel".concat(o)))]})]}),[s,t,n,r.servicesLevel,r.lineXs])},ut=()=>{const{direction:r,svgWidth:s,coline:t}=w(i=>i.param),n=!!Object.keys(t).length;return k.useMemo(()=>e.jsxs("g",{transform:"translate(".concat(r==="l"?50:s.railmap-150,",50)"),children:[e.jsx("text",{className:"rmg-name__zh",children:"列车前进方向"}),e.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",stroke:n?"var(--rmg-black)":void 0,strokeWidth:n?5:void 0,fill:n?"var(--rmg-white)":"var(--rmg-theme-colour)",transform:"translate(".concat(r==="l"?-30:125,",-5)rotate(").concat(r==="l"?0:180,")scale(0.15)")})]}),[r,t,s.railmap])},te=r=>{var o,d,f,j,p;const{stnId:s,nameDirection:t,services:n,color:i}=r,h=w(x=>x.param.stn_list[s]),c=[...((o=h.transfer.groups[0])==null?void 0:o.lines)||[],...((d=h.transfer.groups[1])==null?void 0:d.lines)||[]];let l;h.services.length===3?l="direct_indoor_sh":h.services.length===2?l="express_indoor_sh":(p=(j=(f=h.transfer.groups[1])==null?void 0:f.lines)==null?void 0:j.length)!=null&&p?l="osi_indoor_sh":c.length>0?l="int2_indoor_sh":l="stn_indoor_sh";const a=t==="left"||t==="right"?90:0;return e.jsxs(e.Fragment,{children:[e.jsx(pt,{name:h.localisedName,groups:h.transfer.groups,nameDirection:t,services:n}),e.jsx("use",{xlinkHref:"#".concat(l),stroke:c.length>0?"var(--rmg-black)":i!=null?i:"var(--rmg-theme-colour)",transform:"rotate(".concat(a,")")}),h.services.length>1&&e.jsx("text",{className:"rmg-name__zh",writingMode:"tb",fontSize:"60%",dy:"-12",children:"大站车".concat(h.services.length>2?" 直达车":"","停靠")})]})},pt=r=>{var j,p,x,g,m,u,_,v,S,$,N,y,M,I,z,H,B,L,b,E,P,G,Y,X,V,O,T,C,D,ne,se,re,le,ae,ie,oe,ce,he,de,me,xe,ge,fe;const{name:s,groups:t,nameDirection:n,services:i}=r,h={upward:60,downward:-30,left:0,right:0}[n],c=(p=(j=t[2])==null?void 0:j.lines)!=null&&p.length?{upward:0,downward:0,left:(((x=t[0].lines)==null?void 0:x.length)||0)+(((m=(g=t[1])==null?void 0:g.lines)==null?void 0:m.length)||0)!==0?85:25,right:(((u=t[0].lines)==null?void 0:u.length)||0)+(((v=(_=t[1])==null?void 0:_.lines)==null?void 0:v.length)||0)!==0?-85:-25}[n]:0,l=($=(S=t[2])==null?void 0:S.lines)!=null&&$.length?{upward:(y=(N=t[0])==null?void 0:N.lines)!=null&&y.length&&((I=(M=t[1])==null?void 0:M.lines)!=null&&I.length)?-210:(H=(z=t[0])==null?void 0:z.lines)!=null&&H.length||(L=(B=t[1])==null?void 0:B.lines)!=null&&L.length?-177.5:-145,downward:((E=(b=t[0])==null?void 0:b.lines)!=null&&E.length&&((G=(P=t[1])==null?void 0:P.lines)!=null&&G.length)?185:(Y=t[0].lines)!=null&&Y.length||(V=(X=t[1])==null?void 0:X.lines)!=null&&V.length?157.5:125)+(i.length===3?40:0),left:(T=(O=t[0])==null?void 0:O.lines)!=null&&T.length&&((D=(C=t[1])==null?void 0:C.lines)!=null&&D.length)?-67:(ne=t[0].lines)!=null&&ne.length||(re=(se=t[1])==null?void 0:se.lines)!=null&&re.length?-30:0,right:(ae=(le=t[0])==null?void 0:le.lines)!=null&&ae.length&&((oe=(ie=t[1])==null?void 0:ie.lines)!=null&&oe.length)?-67:(ce=t[0].lines)!=null&&ce.length||(de=(he=t[1])==null?void 0:he.lines)!=null&&de.length?-30:0}[n]:0,a=k.useRef(null),o=60,[d,f]=k.useState(o);return k.useEffect(()=>{a!=null&&a.current&&f(Math.max(o,a.current.getBBox().width))},[s.zh,s.en]),e.jsxs("g",{transform:"translate(0,".concat(h,")"),children:[n==="upward"||n==="downward"?e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:-d/2,x2:d/2,y1:n==="upward"?-23:-10,y2:n==="upward"?-23:-10,stroke:"black"}),e.jsx("line",{y1:n==="upward"?-23:-10,y2:n==="upward"?-48:20,stroke:"black"})]}):e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:n==="left"?-50:15,x2:n==="left"?-15:50,y1:0,y2:0,stroke:"black"}),e.jsx("line",{x1:n==="left"?-50:50,x2:n==="left"?-50:50,y1:-30,y2:30,stroke:"black"})]}),[...t[0].lines||[],...((me=t[1])==null?void 0:me.lines)||[]].length&&e.jsx(_t,{intInfos:[t[0].lines||[],((xe=t[1])==null?void 0:xe.lines)||[]],arrowDirection:n,services:i}),e.jsx(jt,{ref:a,stnName:s,nameDirection:n,fill:"black"}),((fe=(ge=t[2])==null?void 0:ge.lines)==null?void 0:fe.length)&&e.jsx("g",{transform:"translate(".concat(c,",").concat(l,")"),children:e.jsx($t,{osysiInfos:t[2].lines,nameDirection:n})})]})},jt=k.forwardRef(function(s,t){const{stnName:n,nameDirection:i,...h}=s,{zh:c="",en:l=""}=n,a=c.split("\\"),o=l.split("\\").length,d={upward:0,downward:0,left:-60,right:60}[i],f={upward:-2,downward:-30-12*(o-1),left:-10*(o-1),right:-10*(o-1)}[i],j={upward:"middle",downward:"middle",left:"end",right:"start"}[i];return e.jsx("g",{ref:t,...h,textAnchor:j,transform:"translate(".concat(d,",").concat(f,")"),children:k.useMemo(()=>{var p;return e.jsxs(e.Fragment,{children:[a.map((x,g,m)=>e.jsx("text",{className:"rmg-name__zh",dy:i==="upward"?16*g:(m.length-1-g)*-16,children:x},g)),e.jsx("g",{fontSize:9.6,children:(p=l.split("\\"))==null?void 0:p.map((x,g)=>e.jsx("text",{className:"rmg-name__en",dy:12*(g+1)+(i==="upward"&&a.length>1?a.length*7.5:0),children:x},g))})]})},[c,l])})}),_t=r=>{var m,u,_,v,S,$,N,y,M,I,z,H,B;const{intInfos:s,arrowDirection:t,services:n}=r,i=s.flatMap(L=>L.map(b=>{var E;return(E=b.theme)==null?void 0:E[2]})).reduce((L,b)=>L+b,""),h=s.map(L=>[L.filter(b=>b.name[0].match(/^\d+.*$/)).map(b=>b.name[0].replace(/^(\d+)(.*)$/,"$1")).join(",").concat("号线"),L.filter(b=>!b.name[0].match(/^\d+.*$/)).map(b=>b.name[0]).join(",")].filter(b=>b&&b!=="号线").join(",")),c=s.map(L=>["Line ".concat(L.filter(b=>/^(L|l)ine \d+$/.test(b.name[1])).map(b=>b.name[1].replace("Line","").replace("line","").trim()).join(",")),L.filter(b=>!/^(L|l)ine \d+$/.test(b.name[1])).map(b=>b.name[1]).join(", ")].filter(b=>b&&b!=="Line ").join(", ")),l=n.length===3?80:45,a={upward:-145,downward:125+(n.length===3?40:0),left:7,right:7}[t],o={upward:0,downward:0,left:20,right:-20}[t],d={upward:-74,downward:44,left:0,right:0}[t],f={upward:0,downward:180,left:90,right:-90}[t],j={upward:0,downward:0,left:85,right:-85}[t],p={upward:"middle",downward:"middle",left:"start",right:"end"}[t],x=j,g={upward:(u=(m=s.at(0))==null?void 0:m.length)!=null&&u?-177.5:-145,downward:((v=(_=s.at(0))==null?void 0:_.length)!=null&&v?157.5:125)+(n.length===3?40:0),left:($=(S=s.at(0))==null?void 0:S.length)!=null&&$?-30:7,right:(y=(N=s.at(0))==null?void 0:N.length)!=null&&y?-30:7}[t];return e.jsxs("g",{children:[e.jsx("path",{id:"int_indoor_arrow_sh",stroke:"var(--rmg-black)",strokeWidth:1,transform:"translate(".concat(o,",").concat(d,")rotate(").concat(f,")"),fill:s.flat().length===1?(M=s.flat()[0].theme)==null?void 0:M[2]:"url(#grad".concat(i,")"),d:"M -7.5,0 v -".concat(l," h -7.5 l 15,-15 l 15,15 h -7.5 v ").concat(l," Z")}),s.flat().length>1&&e.jsx("linearGradient",{id:"grad".concat(i),y1:"0",y2:"0",x1:t==="upward"?"25%":"75%",x2:t==="upward"?"75%":"25%",children:s.flat().map((L,b)=>{var E,P;return e.jsxs(k.Fragment,{children:[e.jsx("stop",{offset:"".concat(100/s.flat().length*b,"%"),stopColor:(E=L.theme)==null?void 0:E[2]}),e.jsx("stop",{offset:"".concat(100/s.flat().length*(b+1),"%"),stopColor:(P=L.theme)==null?void 0:P[2]})]},b)})}),((z=(I=s.at(0))==null?void 0:I.length)!=null?z:0)>0&&e.jsxs("g",{transform:"translate(".concat(j,",").concat(a,")"),textAnchor:"".concat(p),children:[e.jsx("text",{className:"rmg-name__zh",dy:-7,children:"换乘".concat(h[0])}),e.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:"Interchange ".concat(c[0])})]}),((B=(H=s.at(1))==null?void 0:H.length)!=null?B:0)>0&&e.jsxs("g",{transform:"translate(".concat(x,",").concat(g,")"),textAnchor:"".concat(p),children:[e.jsx("text",{className:"rmg-name__zh",dy:-7,children:"出站换乘".concat(h[1])}),e.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:"Out-of-station Transfer ".concat(c[1])})]})]})},$t=r=>{const s={upward:"middle",downward:"middle",left:"start",right:"end"}[r.nameDirection];return k.useMemo(()=>e.jsxs("g",{textAnchor:"".concat(s),children:[e.jsx("text",{className:"rmg-name__zh",dy:-5,children:"转乘".concat(r.osysiInfos.map(t=>t.name[0]).join(","))}),e.jsx("text",{className:"rmg-name__en",dy:7.5,fontSize:9.6,children:"To ".concat(r.osysiInfos.map(t=>t.name[1]).join(", "))})]}),[JSON.stringify(r.osysiInfos),r.nameDirection])},vt=(r,s,t,n,i,h)=>{var j,p,x,g;const c=r[0].filter(m=>!["linestart","lineend"].includes(m)),l=r.slice(1,3).map(m=>m.slice(1,m.length-1)),a=l.reduce((m,u)=>m+u.filter(_=>!["linestart","lineend",...s].includes(_)).length,0)+c.length-h-i*2,o=(t-t*n/100*2)/(1+a),d=[t*n/100+((j=l.at(0))!=null?j:[]).length*o,t*(1-n/100)-((p=l.at(1))!=null?p:[]).length*o],f={...Object.fromEntries(((x=l.at(0))!=null?x:[]).map((m,u)=>[m,t*n/100+u*o])),...Object.fromEntries(((g=l.at(1))!=null?g:[]).map((m,u)=>[m,d[1]+(1+u)*o]))};return{loop_branches:l,line_xs_branches:d,xs_branches:f}},yt=r=>{var _,v,S,$;const{loop_branches:s,edges:t,xs:n,ys:i,canvas:h}=r,[c,l,a,o]=t,{branches:d}=w(N=>N.helper),{current_stn_idx:f,direction:j,coline:p}=w(N=>N.param),x=h===W.RailMap?30:0,g=["M ".concat(c,",").concat(a," H ").concat(Number(n[(v=(_=s.at(0))==null?void 0:_.at(0))!=null?v:""])-x),"M ".concat(l,",").concat(a," H ").concat(Number(n[($=(S=s.at(1))==null?void 0:S.at(-1))!=null?$:""])+x)],m=d[0].filter(N=>!["linestart","lineend"].includes(N)),u=Object.values(p).filter(N=>![N.from,N.to].every(y=>m.includes(y))).map(N=>N.colors);return e.jsx(e.Fragment,{children:s.map((N,y)=>{var M,I,z;return e.jsxs(Q.Fragment,{children:[u.filter((H,B,L)=>B===L.findIndex(b=>{var E,P;return((E=b.at(0))==null?void 0:E.at(2))===((P=H.at(0))==null?void 0:P.at(2))})).map(H=>e.jsx("marker",{id:"arrow_theme_".concat(H[0][2]),refX:1,refY:.5,children:e.jsx("path",{d:"M0,1H2L1,0z",fill:H[0][2]})},H[0][2])),e.jsx("path",{stroke:(z=(I=(M=u.at(y))==null?void 0:M.at(0))==null?void 0:I.at(2))!=null?z:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:g[y],markerEnd:h===W.RailMap&&(j==="l"&&y===0||j==="r"&&y===1)?u.at(y)?"url(#arrow_theme_".concat(u[y][0][2],")"):"url(#arrow_theme)":void 0}),N.filter(H=>!["linestart","lineend"].includes(H)).map(H=>{var B,L,b,E;return e.jsxs(Q.Fragment,{children:[h===W.RailMap&&e.jsx("g",{transform:"translate(".concat(n[H],",").concat(i[H],")"),children:e.jsx(K,{stnId:H,stnState:f===H?0:1,bank:0,direction:j,color:(L=(B=u.at(y))==null?void 0:B.at(0))==null?void 0:L.at(2)})},H),h===W.Indoor&&e.jsx("g",{transform:"translate(".concat(n[H],",").concat(i[H],")"),children:e.jsx(te,{stnId:H,nameDirection:s.filter(P=>P.includes(H)).map(P=>P.indexOf(H)%2===0?"downward":"upward")[0],services:[F.local],color:(E=(b=u.at(y))==null?void 0:b.at(0))==null?void 0:E.at(2)})},H)]},H)})]},N.at(0))})})},St=r=>{var u;const{edges:s,loop_stns:t,xs:n,ys:i,canvas:h}=r,[c,l,a,o]=s,{info_panel_type:d,stn_list:f,coline:j}=w(_=>_.param),{branches:p}=w(_=>_.helper),x=Object.values(j).filter(_=>[_.from,_.to].every(v=>p.slice(1,3).filter(S=>U(S,f)).flat().includes(v))).map(_=>_.colors).at(0),g=12,m=h===W.RailMap&&d==="sh2020"?3:0;return e.jsxs("g",{id:"coline_main",children:[e.jsx("path",{d:"M ".concat(c,",").concat(a," H").concat(l),strokeWidth:12,stroke:(u=x==null?void 0:x.at(0))==null?void 0:u.at(2)}),h===W.RailMap&&Object.keys(j).length>0&&t.top.map(_=>{var v;return e.jsx("g",{transform:"translate(".concat(n[_],",").concat(i[_],")"),children:d==="sh2020"?e.jsxs(e.Fragment,{children:[e.jsx("rect",{stroke:"none",height:24,width:12,x:-6,y:-m-1,fill:(v=x==null?void 0:x.at(0))==null?void 0:v.at(2)}),e.jsx("rect",{stroke:"none",height:m+g,width:12,x:-6,y:g-2,fill:"var(--rmg-theme-colour)"})]}):e.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:"translate(0,".concat(1+g,")")})},_)})]})},ze=r=>{var V;const{bank_angle:s,canvas:t}=r,{branches:n}=w(O=>O.helper),{current_stn_idx:i,svgWidth:h,svg_height:c,padding:l,branchSpacingPct:a,direction:o,info_panel_type:d,stn_list:f,loop_info:{left_and_right_factor:j,bottom_factor:p},coline:x}=w(O=>O.param),g=n[0].filter(O=>!["linestart","lineend"].includes(O)),m=n.slice(0,3).flat().filter((O=>T=>(O[T]=(O[T]||0)+1)===2)({})).filter(O=>!["linestart","lineend"].includes(O)),u=(V=Object.values(x).filter(O=>[O.from,O.to].every(T=>n.slice(1,3).filter(C=>U(C,f)).flat().includes(T))).map(O=>{const T=g.findIndex(D=>D===O.from),C=g.findIndex(D=>D===O.to);return Math.abs(C-T)>g.length-2-Math.abs(C-T)?"major":"minor"}).at(0))!=null?V:"minor",_=m.at(1)?Ee(g,m,j,u):m.at(0)?be(g,m[0],p,j):Le(g,i,p,j),{x_shares:v,y_shares:S}=We(g,_),{loop_branches:$,line_xs_branches:N,xs_branches:y}=vt(n,m,h[t],l,j,_.bottom.length),M={...S,...Object.fromEntries($.flat().map(O=>[O,0]))},I=a*c/300,z=[225+I,c-75-(t===W.RailMap?0:125)-I],H=Object.keys(M).reduce((O,T)=>({...O,[T]:z[0]+M[T]*(z[1]-z[0])}),{}),B=[Math.max(h[t]*l/100+(s&&t===W.RailMap?100:0),N[0]),Math.min(h[t]*(1-l/100)-(s&&t===W.RailMap?100:0),N[1])],L=Object.keys(v).reduce((O,T)=>({...O,[T]:B[0]+v[T]*(B[1]-B[0])}),{}),b=s?{l:1,r:-1}[o]:0;[..._.right,..._.left].forEach(O=>{L[O]-=(H[O]-z[0])*b}),_.bottom.forEach(O=>{L[O]-=(z[1]-z[0])*b});const E={...y,...L},P=Nt(_,E,H,b,[...B,...z],o),G=12,Y=t===W.RailMap&&d==="sh2020"?3:0;Object.keys(x).length>0&&_.top.forEach(O=>{H[O]-=Y+G});const X=$.length?0:(z[1]-z[0])*b/2;return e.jsxs("g",{id:"loop",transform:"translate(".concat(X,",0)"),children:[e.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:P,strokeLinejoin:"round"}),t===W.RailMap&&e.jsx(ve,{canvas:t,loop_stns:_,xs:E,ys:H}),e.jsxs("g",{transform:"translate(0,".concat(Object.keys(x).length>0?-G-Y:0,")"),children:[e.jsx(yt,{loop_branches:$,edges:[...B,...z],xs:E,ys:H,canvas:t}),Object.keys(x).length>0&&e.jsx(St,{edges:[...B,...z],loop_stns:_,xs:E,ys:H,canvas:t})]}),t===W.Indoor&&e.jsx(ve,{canvas:t,loop_stns:_,xs:E,ys:H})]})},Nt=(r,s,t,n,i,h)=>{const[c,l,a,o]=i,d=(p,x,g,m,u)=>({right:[g+(m-a)*n,x],bottom:[p-(o-x)*n,m],left:[g-(o-m)*n,x],top:[p+(x-a)*n,m]})[u],f=[];r.top.forEach(p=>{f.push([s[p],t[p]])}),["right","bottom","left"].forEach(p=>{if(r[p].length>0)f.push(d(f.at(-1)[0],f.at(-1)[1],s[r[p][0]],t[r[p][0]],p)),r[p].forEach(x=>{f.push([s[x],t[x]])});else{const x={right:[l,f.at(-1)[1]],bottom:[f.at(-1)[0]+(o-f.at(-1)[1])*-n,f.at(-1)[1]+(o-f.at(-1)[1])],left:[c+(n===0?0:(o-a)*(h==="l"?-1:1)),f.at(-1)[1]]};f.push(x[p])}}),f.push(d(f.at(-1)[0],f.at(-1)[1],s[r.top[0]],t[r.top[0]],"top"));const j=f.slice(1).map(([p,x])=>"L".concat(p,",").concat(x," ")).join(" ");return"M".concat(f[0][0],",").concat(f[0][1]," ").concat(j," Z")},ve=r=>{const{canvas:s,loop_stns:t,xs:n,ys:i}=r,{current_stn_idx:h}=w(o=>o.param),c={top:0,bottom:0,left:-1,right:1},l={left:"r",right:"l",top:void 0,bottom:void 0},a=(o,d)=>({top:d%2===0?"upward":"downward",bottom:d%2===0?"upward":"downward",left:"left",right:"right"})[o];return e.jsxs("g",{id:"loop_stations",children:[s===W.RailMap&&Object.entries(t).map(([o,d])=>d.map(f=>e.jsx("g",{transform:"translate(".concat(n[f],",").concat(i[f],")"),children:e.jsx(K,{stnId:f,stnState:h===f?0:1,bank:c[o],direction:l[o]})},f))),s===W.Indoor&&Object.entries(t).map(([o,d])=>d.map((f,j)=>e.jsx("g",{transform:"translate(".concat(n[f],",").concat(i[f],")"),children:e.jsx(te,{stnId:f,nameDirection:a(o,j),services:[F.local]})},f)))]})},ye=W.RailMap;function kt(){const{canvasScale:r}=w(l=>l.app),{svgWidth:s,svg_height:t,theme:n,loop:i,loop_info:{bank:h}}=w(l=>l.param),c=s[ye];return e.jsxs(q,{type:ye,svgWidth:c,svgHeight:t,canvasScale:r,theme:n,children:[e.jsx(wt,{}),i?e.jsx(ze,{bank_angle:h,canvas:W.RailMap}):e.jsx(mt,{}),e.jsx(ut,{})]})}const wt=k.memo(function(){return e.jsxs("defs",{children:[e.jsx("circle",{id:"stn_sh",fill:"var(--rmg-white)",strokeWidth:2,r:5}),e.jsx("path",{id:"int2_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"express_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"direct_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V50 a 5,5 0 1 1 -10,0Z"}),e.jsx("rect",{id:"stn_sh_2020",stroke:"none",height:24,width:12,x:-6,y:-18}),e.jsx("rect",{id:"stn_sh_2020_express",stroke:"none",height:49,width:12,x:-6,y:-18}),e.jsx("rect",{id:"stn_sh_2020_direct",stroke:"none",height:74,width:12,x:-6,y:-18}),e.jsx("rect",{id:"intbox_number",height:22,width:20,y:-11}),e.jsxs("g",{id:"intbox_maglev",transform:"translate(-25,0)",children:[e.jsx("rect",{id:"maglev_5",height:144,width:130,y:"40",x:"30",strokeWidth:10}),e.jsx("path",{id:"maglev_3",fill:"var(--rmg-white)",d:"m90,55a40,5 0 0 0 -40,3a5,5 0 0 0 -5,5a5,60 0 0 0 -3,60a5,5 0 0 0 5,5l96,0a5,5 0 0 0 5,-5a5,60 0 0 0 -3,-60a5,5 0 0 0 -5,-5a40,5 0 0 0 -40,-3l-5,-10l-5,10"}),e.jsx("path",{id:"maglev_4",fill:"var(--rmg-white)",d:"m90,140l-40,0a10,5 0 0 1 -10,-5l0,25a10,15 0 0 0 10,15l15,0l0,-10l-15,0l0,-15l90,0l0,15l-15,0l0,10l15,0a10,15 0 0 0 10,-15l0,-25a10,5 0 0 1 -10,5l-50,0"}),e.jsx("rect",{id:"maglev_1",height:"25",width:"40",y:"80",x:"50"}),e.jsx("rect",{id:"maglev_2",height:"25",width:"40",y:"80",x:"100"})]}),e.jsxs("g",{id:"airport",transform:"scale(0.5)",children:[e.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),e.jsx("path",{id:"airport",d:"M28.9769,6.60134c1.711.013,3.111,2.53205,3.111,4.241v10.337s17.106,15.435,17.358,15.666a1.145,1.145,0,0,1,.488,1.152v2.833c0,.651-.451.61-.695.467-.334-.119-17.151-8.863-17.151-8.863-.004,1.458-.797,9.006-1.326,13.304,0,0,4.61,2.457,4.699,2.521.334.268.352.359.352.852v2.001c0,.477-.352.428-.51.324-.183-.062-5.693-1.921-5.693-1.921a2.56018,2.56018,0,0,0-.633-.127,2.31654,2.31654,0,0,0-.666.127s-5.477,1.859-5.672,1.921c-.185.104-.523.153-.523-.324v-2.001c0-.493.029-.584.367-.852.086-.064,4.678-2.521,4.678-2.521-.524-4.298-1.307-11.846-1.325-13.304,0,0-16.822,8.744-17.148,8.863-.217.143-.69.184-.69-.467v-2.833a1.16206,1.16206,0,0,1,.473-1.152c.276-.231,17.365-15.666,17.365-15.666v-10.337c0-1.709,1.403-4.228,3.14105-4.241",transform:"translate(-28.9697,0.14347)",fill:"var(--rmg-white)"})]}),e.jsxs("g",{id:"disney",transform:"scale(0.5)",children:[e.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),e.jsx("path",{fill:"var(--rmg-white)",d:"M45.6152,7.85015a9.80248,9.80248,0,0,0-9.79907,9.801,9.70059,9.70059,0,0,0,.342,2.582c.002.026.002.055.002.093a.31815.31815,0,0,1-.31494.318.67741.67741,0,0,1-.12806-.02,15.71521,15.71521,0,0,0-13.498,0,.61.61,0,0,1-.122.02.31841.31841,0,0,1-.322-.318v-.067a9.62553,9.62553,0,0,0,.35608-2.608,9.803,9.803,0,1,0-9.797,9.8,10.10364,10.10364,0,0,0,2.308-.271h.05493a.31113.31113,0,0,1,.31409.318.32433.32433,0,0,1-.019.12,15.72588,15.72588,0,1,0,29.703,7.216,15.83676,15.83676,0,0,0-1.746-7.23.18417.18417,0,0,1-.0271-.106.31612.31612,0,0,1,.32007-.318h.057a10.15953,10.15953,0,0,0,2.316.271,9.80051,9.80051,0,0,0,0-19.601",transform:"translate(-28.9697 0.13398)"})]}),e.jsxs("g",{id:"railway",children:[e.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)",transform:"translate(0,-2)scale(0.5)"}),e.jsx("path",{fill:"var(--rmg-white)",d:"M169,273.5c0-19,14.7-34.8,33.7-36.3c18.9-1.5,38.1-2.2,57.4-2.2c19.3,0,38.4,0.8,57.3,2.2 c19,1.5,33.7,17.3,33.7,36.3v47.3l-51.3,14.7c-11.2,3.2-18.9,13.4-18.9,25v147.8c0,17.4,12.2,32.3,29.3,35.7l110.6,22.1 c4.9,1,8.4,5.2,8.4,10.2V599H91v-22.7c0-5,3.5-9.2,8.4-10.2L209.9,544c17-3.4,29.3-18.3,29.3-35.7V360.5c0-11.6-7.7-21.8-18.9-25 L169,320.8V273.5z M309.4,31.7c0.2-1.2,0.3-2.4,0.3-3.6c0-14-11.1-25.4-24.9-26C276.6,1.4,268.3,1,260,1c-8.3,0-16.6,0.4-24.7,1.1 c-13.9,0.6-24.9,12-24.9,26c0,1.2,0.1,2.5,0.3,3.6C90.6,54.8,0,160.3,0,287c0,97.2,53.4,182,132.4,226.6l36.8-48.1 C104.3,432.4,59.8,364.9,59.8,287c0-110.6,89.6-200.2,200.2-200.2S460.2,176.4,460.2,287c0,77.9-44.5,145.4-109.4,178.5 c15,19.6,25.6,33.5,36.8,48.1C466.6,469,520,384.2,520,287C520,160.3,429.4,54.8,309.4,31.7z",transform:"translate(-10,0)scale(0.04)"})]}),e.jsx("marker",{id:"arrow_gray",viewBox:"-1.5 0 3 1.5",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-grey)"})}),e.jsx("marker",{id:"arrow_theme_left",refX:1,refY:.5,children:e.jsx("path",{d:"M1,0L0,1H1z",fill:"var(--rmg-theme-colour)"})}),e.jsx("marker",{id:"arrow_theme_right",refY:.5,children:e.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),e.jsx("marker",{id:"arrow_theme",refX:1,refY:.5,children:e.jsx("path",{d:"M0,1H2L1,0z",fill:"var(--rmg-theme-colour)"})}),e.jsx("filter",{id:"contrast-direct",filterUnits:"userSpaceOnUse",children:e.jsxs("feComponentTransfer",{children:[e.jsx("feFuncR",{type:"linear",slope:.5,intercept:.25}),e.jsx("feFuncG",{type:"linear",slope:.5,intercept:.25}),e.jsx("feFuncB",{type:"linear",slope:.5,intercept:.25})]})}),e.jsx("filter",{id:"contrast-express",filterUnits:"userSpaceOnUse",children:e.jsxs("feComponentTransfer",{children:[e.jsx("feFuncR",{type:"linear",slope:.75,intercept:.125}),e.jsx("feFuncG",{type:"linear",slope:.75,intercept:.125}),e.jsx("feFuncB",{type:"linear",slope:.75,intercept:.125})]})}),e.jsx(ee,{})]})}),Se=W.Indoor;function Mt(){const{canvasScale:r}=w(c=>c.app),{svgWidth:s,svg_height:t,theme:n,loop:i}=w(c=>c.param),h=s[Se];return e.jsxs(q,{type:Se,svgWidth:h,svgHeight:t,canvasScale:r,theme:n,children:[e.jsx(bt,{}),i?e.jsx(ze,{bank_angle:!1,canvas:W.Indoor}):e.jsx(zt,{}),e.jsx(Ie,{})]})}const bt=k.memo(function(){return e.jsxs("defs",{children:[e.jsx("circle",{id:"stn_indoor_sh",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),e.jsx("path",{id:"int2_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"express_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),e.jsx("path",{id:"direct_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V40 a 5,5 0 1 1 -10,0Z"}),e.jsxs("g",{id:"osi_indoor_sh",children:[e.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-black)",strokeWidth:22}),e.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-white)",strokeWidth:10}),e.jsx("circle",{cy:"-12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),e.jsx("circle",{cy:"12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"})]})]})}),Ht=(r,s)=>{let t=0;return r[s].parents.length===2&&(t+=1),r[r[s].parents[0]].children.length===2&&(t+=1),t},Ot=(r,s)=>{let t=0;return r[s].children.length===2&&(t+=1),r[r[s].children[0]].parents.length===2&&(t+=1),t},zt=()=>{const{routes:r,branches:s,depsStr:t}=w(m=>m.helper),n=w(m=>m.param),i=ke(n.stn_list,Ht,Ot),h=J("linestart","lineend",i),c=J(h.nodes[1],h.nodes.slice(-2)[0],i),l=k.useMemo(()=>(console.log("computing x shares"),Object.keys(n.stn_list).reduce((m,u)=>({...m,[u]:we(u,i,s)}),{})),[s.toString(),JSON.stringify(i)]),a=[n.svgWidth.indoor*n.padding/100,n.svgWidth.indoor*(1-n.padding/100)],o=Object.keys(l).reduce((m,u)=>({...m,[u]:a[0]+l[u]/c.len*(a[1]-a[0])}),{}),d=k.useMemo(()=>ue.getYShares(n.stn_list),[t]),f=Object.keys(d).reduce((m,u)=>({...m,[u]:d[u]*n.branchSpacingPct*n.svg_height/200}),{}),j=k.useMemo(()=>Me(n.current_stn_idx,r,n.direction),[n.current_stn_idx,n.direction,r.toString()]),p=Object.values(F),x=Object.values(n.stn_list).map(m=>m.services).flat().reduce((m,u)=>(m[p.indexOf(u)]=!0,m),[!1,!1,!1]).map((m,u)=>[p[u],m]).filter(m=>m[1]).map(m=>m[0]),g=ue.drawLine(s,j,n.stn_list,a,o,f,n.branchSpacingPct*n.svg_height/200,h,0);return e.jsxs("g",{id:"main",transform:"translate(0,".concat(n.svg_height/2,")"),children:[e.jsx(It,{paths:g,services:x}),e.jsx(Lt,{xs:o,ys:f,services:x})]})},It=r=>e.jsx("g",{fill:"none",strokeWidth:12,stroke:"var(--rmg-theme-colour)",children:r.services.map((s,t)=>e.jsxs("g",{transform:"translate(0, ".concat(t*30,")"),children:[r.paths.main.map((n,i)=>e.jsx("path",{d:n},i)),r.paths.pass.map((n,i)=>e.jsx("path",{d:n},i))]},"indoor_line_".concat(t)))}),Lt=r=>{const{branches:s}=w(o=>o.helper),{stn_list:t,namePosMTR:{isFlip:n}}=w(o=>o.param),{xs:i,ys:h,services:c}=r,l=n==null||n?"upward":"downward",a=l==="upward"?"downward":"upward";return e.jsx("g",{children:Object.keys(t).filter(o=>!["linestart","lineend"].includes(o)).filter(o=>t[o].services.length!==0).map(o=>e.jsx("g",{transform:"translate(".concat(i[o],",").concat(h[o],")"),children:e.jsx(te,{stnId:o,nameDirection:c.length>1?"downward":s.filter(d=>d.includes(o)).map(d=>d.indexOf(o)%2===0?l:a)[0],services:c})},o))})},Ie=k.memo(()=>{const{svg_height:r,svgWidth:{indoor:s},line_name:t,stn_list:n}=w(c=>c.param),i=Math.max(...Object.values(n).map(c=>{var l,a,o;return(o=(a=(l=c.transfer.groups.at(1))==null?void 0:l.lines)==null?void 0:a.length)!=null?o:0})),h=i>0?210:110;return e.jsxs(e.Fragment,{children:[e.jsx("g",{transform:"translate(".concat(s/2,",50)"),children:e.jsxs("text",{textAnchor:"middle",fontSize:"30",className:"rmg-name__zh",children:["轨道交通",t[0],"运营线路示意图"]})}),e.jsxs("g",{transform:"translate(".concat(s/2,",").concat(r-270,")"),children:[e.jsx("text",{textAnchor:"middle",fontSize:"18",className:"rmg-name__zh",dx:"-30",dy:"230",children:"友情提示:请留意您需要换乘线路的首末班时间,以免耽误您的出行,末班车进站前三分钟停售该末班车车票。"}),e.jsx("text",{textAnchor:"middle",fontSize:"12",className:"rmg-name__en",dx:"10",dy:"250",children:"Please pay attention to the interchange schedule if you want to transfer to other lines. Stop selling tickets 3 minutes before the last train services."}),e.jsxs("g",{transform:"translate(-700,215)",children:[e.jsx("rect",{x:"-5",y:"-25",width:h,height:"70",fill:"none",stroke:"black",rx:"5"}),e.jsx("line",{x1:"28",x2:"28",y1:"-20",y2:"40",stroke:"black"}),e.jsx("text",{className:"rmg-name__zh",dx:"3",fontSize:"18",children:"图"}),e.jsx("text",{className:"rmg-name__zh",dx:"3",dy:"18",fontSize:"18",children:"例"}),e.jsx("text",{className:"rmg-name__en",dy:"35",fontSize:"8",children:"legend"}),e.jsx("use",{transform:"translate(50,10)",xlinkHref:"#int2_indoor_sh",stroke:"var(--rmg-black)"}),e.jsx("text",{className:"rmg-name__zh",dx:"70",dy:"5",fontSize:"10",children:"换乘站"}),e.jsx("text",{className:"rmg-name__en",dx:"70",dy:"15",fontSize:"6",children:"Interchange"}),e.jsx("text",{className:"rmg-name__en",dx:"70",dy:"25",fontSize:"6",children:"Station"}),i>0&&e.jsxs(e.Fragment,{children:[e.jsx("use",{transform:"translate(120,10)scale(0.75)",xlinkHref:"#osi_indoor_sh",stroke:"var(--rmg-black)"}),e.jsx("text",{className:"rmg-name__zh",dx:"135",dy:"5",fontSize:"10",children:"出站换乘车站"}),e.jsx("text",{className:"rmg-name__en",dx:"135",dy:"15",fontSize:"6",children:"Out-of-station Transfer"}),e.jsx("text",{className:"rmg-name__en",dx:"135",dy:"25",fontSize:"6",children:"Station"})]})]})]})]})});Ie.displayName="InfoElements";const At={destination:e.jsx(Te,{}),runin:e.jsx(Ye,{}),railmap:e.jsx(kt,{}),indoor:e.jsx(Mt,{})};export{At as default}; diff --git a/assets/index-B62t-ZyR.js b/assets/index-BRDCpJ6D.js similarity index 96% rename from assets/index-B62t-ZyR.js rename to assets/index-BRDCpJ6D.js index 22c1e2f4..ff1e68b9 100644 --- a/assets/index-B62t-ZyR.js +++ b/assets/index-BRDCpJ6D.js @@ -1 +1 @@ -import{j as t}from"./chakra-CXrhlirJ.js";import{a as v}from"./react-Caefwd5V.js";import{aR as $,u as S,S as R,D as g,aX as N,aY as O}from"./index-BqOgmhc6.js";import{S as U}from"./svg-wrapper-DO1Iqw6o.js";import{a as q,c as F,g as K,b as Q}from"./share-C4aXWUdL.js";import{g as tt,S as et,r as nt,l as st}from"./mtr-BmcrcPh6.js";const V=v.memo(function(){return t.jsx("rect",{fill:"var(--rmg-theme-colour)",height:20,style:{width:"var(--rmg-svg-width)",transform:"translateY(calc(var(--rmg-svg-height) - 20px))"}})}),X=["Vegur-Regular"],rt=v.memo(function(e){const{num:n}=e;return t.jsxs(t.Fragment,{children:[t.jsx("circle",{cx:0,cy:0,r:60,fill:"var(--rmg-theme-colour)"}),t.jsx("text",{fontFamily:X.join(", "),dominantBaseline:"central",dy:0,textAnchor:"middle",fontSize:100,fill:"#fff",children:n})]})},(s,e)=>s.num===e.num),G=$.Destination;function at(){const{canvasScale:s}=S(c=>c.app),{svgWidth:e,svg_height:n,theme:r}=S(c=>c.param),a=e[G];return t.jsxs(U,{type:G,svgWidth:a,svgHeight:n,canvasScale:s,theme:r,children:[t.jsx(it,{}),t.jsx(V,{}),t.jsx(ot,{})]})}const it=v.memo(function(){return t.jsx("defs",{children:t.jsx("path",{id:"arrow",d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"var(--rmg-black,#000)"})})}),ot=()=>{const s=S(l=>l.helper.routes),e=S(l=>l.param.svgWidth),n=S(l=>l.param.direction),r=S(l=>l.param.customiseMTRDest),a=S(l=>l.param.platform_num),c=S(l=>l.param.line_name),o=S(l=>l.param.current_stn_idx),h=S(l=>l.param.stn_list),m=[...new Set(s.filter(l=>l.includes(o)).map(l=>l.filter(k=>!["linestart","lineend"].includes(k)).slice(n===R.left?0:-1)[0]).filter(l=>l!==o))],p=m.length===0,f=r.terminal!==!1?r.terminal:[m.map(l=>h[l].localisedName.zh).join("/"),m.map(l=>h[l].localisedName.en).join("/").replace("\\"," ")],i=v.useRef(null),[d,x]=v.useState({width:0});v.useEffect(()=>{i.current&&x(i.current.getBBox())},[f.toString(),r.isLegacy]);const j=246+d.width+30+60,u=(e[$.Destination]-(n===R.left?1:-1)*j)/2,y=u+(n===R.left?1:-1)*246,w=e.destination/2,P=y+(n===R.left?1:-1)*90;return t.jsxs("g",{style:{transform:"translateY(calc(var(--rmg-svg-height) / 2 - 5px))"},children:[!p&&t.jsx("use",{xlinkHref:"#arrow",transform:"translate(".concat(u,",0)scale(0.8)rotate(").concat(n===R.left?0:180,")"),"data-testid":"mtr-arrow"}),t.jsx("g",{transform:"translate(".concat(p?w:y,",0)"),"data-testid":"mtr-platform",children:t.jsx(rt,{num:a})}),!p&&t.jsxs("g",{ref:i,textAnchor:n===R.left?"start":"end",transform:"translate(".concat(P,",-25)"),fill:"var(--rmg-black)","data-testid":"mtr-destination",children:[t.jsx("text",{className:"rmg-name__zh",fontSize:72,letterSpacing:1.5,children:(r.isLegacy?c[0]:"")+"往"+f[0]}),t.jsx("text",{className:"rmg-name__en",fontSize:42,dy:66,children:(r.isLegacy?c[1]+" ":"")+"to "+f[1]})]})]})};function ct(s){const{interchangeInfo:{theme:e,name:n,facility:r},isPassed:a,position:c,repel:o,repelOffset:h}=s,m=n[0].split("\\"),p=n[1].split("\\"),f=10*(m.length-1)+7*(p.length-1),i=(o===g.left?-1:o===g.right?1:0)*(h!=null?h:3),d=c===N.LEFT||o===g.left?"end":c===N.RIGHT||o===g.right||r?"start":"middle",x={[N.LEFT]:{path:{rotate:90},use:{x:-32,y:-8},g:{x:(r?-42:-24)+i,y:6-(20+f-1)/2}},[N.RIGHT]:{path:{rotate:-90},use:{x:32,y:-8},g:{x:(r?42:24)+i,y:6-(20+f-1)/2}},[N.UP]:{path:{rotate:180},use:{x:0,y:-41},g:{x:(r?o===g.left?-14:o===g.right?14:10:0)+i,y:-36-f}},[N.DOWN]:{path:{rotate:0},use:{x:0,y:26},g:{x:(r?o===g.left?-14:o===g.right?14:10:0)+i,y:31}}}[c];return t.jsxs(t.Fragment,{children:[t.jsx("path",{d:"M0,0v17",strokeLinecap:"round",stroke:a?"var(--rmg-grey)":e==null?void 0:e[2],strokeWidth:8,transform:"rotate(".concat(x.path.rotate,")")}),r&&t.jsx("use",{xlinkHref:"#"+r,fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:"translate(".concat(x.use.x,",").concat(x.use.y,")scale(0.45)")}),t.jsxs("g",{textAnchor:d,transform:"translate(".concat(x.g.x,",").concat(x.g.y,")"),fill:a?"var(--rmg-grey)":"var(--rmg-black)",children:[m.map((j,u)=>t.jsx("text",{dy:10*u,className:"rmg-name__zh",fontSize:10,children:j},u)),p.map((j,u)=>t.jsx("text",{dy:m.length*10-1+6*u,className:"rmg-name__en",fontSize:6,children:j},m.length+u))]})]})}const A=v.memo(ct,(s,e)=>JSON.stringify(s.interchangeInfo)===JSON.stringify(e.interchangeInfo)&&s.isPassed===e.isPassed&&s.position===e.position&&s.repel===e.repel);function J(s){const{length:e,isPassed:n,isReversed:r}=s;return t.jsx("path",{d:"M-8,0 v".concat(e," a8,8 0 0,0 16,0 v-").concat(e," a8,8 0 0,0 -16,0Z"),className:"rmg-stn__mtr",stroke:n?"var(--rmg-grey)":"var(--rmg-black)",transform:"scale(1,".concat(r?-1:1,")")})}function lt(s){const{interchangeInfoList:e,direction:n,isPassed:r,isReversed:a,repel:c}=s,o=e.length<=1?0:18*e.length;return t.jsxs("g",{children:[e.length===1&&t.jsx(A,{interchangeInfo:e[0],isPassed:r,position:a?N.UP:N.DOWN,repel:c}),e.length>1&&e.map((h,m)=>t.jsx("g",{transform:"translate(0,".concat(a?-18*(m+1):18*(m+1),")"),children:t.jsx(A,{interchangeInfo:h,isPassed:r,position:n===g.right?N.RIGHT:N.LEFT})},m)),t.jsx(J,{length:o,isPassed:r,isReversed:a})]})}function ht(s){var f,i,d,x,j;const{interchangeGroup:{name:e,lines:n},direction:r,isPassed:a,isReversed:c,isTerminal:o}=s,h=(d=(i=(f=e==null?void 0:e[1])==null?void 0:f.split("\\"))==null?void 0:i.length)!=null?d:1,m=18*(((n==null?void 0:n.length)||0)-1),p={name:{x:o?0:(n==null?void 0:n.length)===1?r===g.left?-13:13:r===g.left?13:-13,y:o?c?19:-28:-4+(c?-9:9)*(((n==null?void 0:n.length)||0)-1)-5*(h-1)}};return t.jsxs("g",{children:[n==null?void 0:n.map((u,y,w)=>t.jsx("g",{transform:"translate(0,".concat(c?-18*y:18*y,")"),children:t.jsx(A,{interchangeInfo:u,isPassed:a,position:w.length===1?c?N.UP:N.DOWN:r===g.right?N.RIGHT:N.LEFT,repel:o?r:void 0,repelOffset:o&&w.length===1?-4:0})},y)),t.jsx(J,{length:m,isPassed:a,isReversed:c}),t.jsxs("g",{textAnchor:p.name.x===0?"middle":p.name.x>0?"start":"end",fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:"translate(".concat(p.name.x,",").concat(p.name.y,")"),children:[t.jsx("text",{className:"rmg-name__zh",fontSize:14,children:e==null?void 0:e[0]}),(j=(x=e==null?void 0:e[1])==null?void 0:x.split("\\"))==null?void 0:j.map((u,y)=>t.jsx("text",{className:"rmg-name__en",fontSize:8.5,dy:13+10*y,children:u},y))]})]})}const Z=["MyriadPro-Semibold","Vegur-Bold","GenYoMinTW-SB"],gt=v.memo(function(e){const{stnName:n,onUpdate:r,align:a}=e,{zh:c="",en:o=""}=n,h=v.useRef(null),m=()=>{h.current&&r&&r(h.current.getBBox())};v.useEffect(()=>{const i=new AbortController;return m(),document.fonts.load("12px "+Z.join(", "),c+o).then().finally(()=>{setTimeout(()=>{i.signal.aborted||m()},100)}),()=>{i.abort()}},[n.toString(),a]);const p=i=>{switch(i){case g.left:return"start";case g.right:return"end";default:return"middle"}},f=i=>16+10*i;return t.jsxs("g",{ref:h,textAnchor:p(a),children:[t.jsx("text",{className:"rmg-name__zh",fontSize:18,transform:"scale(1,0.97)",children:c}),o.split("\\").map((i,d)=>t.jsx("text",{className:"rmg-name__en",fontSize:10,dy:f(d),children:i},d))]})},(s,e)=>JSON.stringify(s.stnName)===JSON.stringify(e.stnName)&&s.align===e.align),b=-10.8125,mt=-8,dt=13.21875,ft=16,T=-b+ft+dt+mt,C=14;function xt(s){var d,x,j;const{stationName:e,stationState:n,lower:r,align:a,facility:c,...o}=s,[h,m]=v.useState({x:0,width:0}),p=u=>{switch(u){case O.PASSED:return"var(--rmg-grey)";case O.CURRENT:return"#fff";case O.FUTURE:return"var(--rmg-black)"}},f=(j=(x=(d=e.en)==null?void 0:d.split("\\"))==null?void 0:x.length)!=null?j:1,i={g:{x:a?a===g.right?-3:3:0,y:(r?C-b:-C-b-T-11*(f-1))+(a?r?10:-10:0)},rect:{x:h.x-3+(c?a?a===g.right?-3-T:0:(T+5)/2-3-T:0),y:b-1,width:h.width+6+(c?T+3:0),height:T+2+11*(f-1)},use:{x:a?a===g.right?-(T+2)/2-h.width-3:(T+2)/2-2:-(h.width+3)/2,y:b-1+5.5*(f-1)},StationName:{x:c?a?a===g.right?0:T+3:(T+5)/2:0,y:0}};return t.jsx("g",{...o,children:t.jsxs("g",{fill:p(n),transform:"translate(".concat(i.g.x,",").concat(i.g.y,")"),children:[n===O.CURRENT&&t.jsx("rect",{x:i.rect.x,y:i.rect.y,width:i.rect.width,height:i.rect.height,fill:"var(--rmg-black)"}),c&&t.jsx("use",{xlinkHref:"#".concat(c),fill:n===O.PASSED?"var(--rmg-grey)":"var(--rmg-black)",x:i.use.x,y:i.use.y}),t.jsx("g",{transform:"translate(".concat(i.StationName.x,",").concat(i.StationName.y,")"),children:t.jsx(gt,{stnName:e,onUpdate:m,align:a})})]})})}function ut(s){var u,y,w,P,l,k;const{stationId:e,stationState:n,isReversed:r}=s,{localisedName:a,parents:c,children:o,transfer:{groups:h,tick_direc:m,paid_area:p},facility:f}=S(z=>z.param.stn_list[e]),i=(u=h[0].lines)!=null&&u.length?c.includes("linestart")?g.left:o.includes("lineend")?g.right:void 0:void 0,d=!!((w=(y=h[1])==null?void 0:y.lines)!=null&&w.length),x=d&&!i,j={link:{scaleX:i===g.left?-1:1,scaleY:r?-1:1},osi:{x:i?i===g.left?-41:41:0,y:i?0:r?-26:26}};return t.jsxs("g",{"data-testid":"station-icon-wrapper",children:[d&&t.jsx("path",{d:i&&((P=h[0].lines)!=null&&P.length)?"M0,0H41":"M0,0V26",strokeWidth:2.69,strokeDasharray:p?0:2.5,stroke:n===O.PASSED?"var(--rmg-grey)":"var(--rmg-black)",transform:"scale(".concat(j.link.scaleX,",").concat(j.link.scaleY,")")}),t.jsx(lt,{interchangeInfoList:(l=h[0].lines)!=null?l:[],direction:m===R.right?g.right:g.left,isPassed:n===O.PASSED,isReversed:x?!r:r,repel:x?m===R.right?g.right:g.left:void 0}),d&&t.jsx("g",{transform:"translate(".concat(j.osi.x,",").concat(j.osi.y,")"),children:t.jsx(ht,{interchangeGroup:h[1],direction:i||(m===R.right?g.right:g.left),isPassed:n===O.PASSED,isReversed:i?!r:r,isTerminal:!!i})}),t.jsx(xt,{stationName:a,stationState:n,facility:f,lower:r,align:(k=h[0].lines)!=null&&k.length&&x?m===R.left?g.left:g.right:void 0})]})}const pt=(s,e,{isStagger:n,isFlip:r})=>{if(!n)return r;let a;if(e[0].includes(s))a=e[0].indexOf(s)%2;else{const c=e.filter(o=>o.includes(s))[0];a=(e[0].indexOf(c[0])+c.indexOf(s)+1)%2}return a===0?r:!r},jt=()=>{const{branches:s,routes:e,depsStr:n}=S(_=>_.helper),{svgWidth:r,svg_height:a,y_pc:c,padding:o,branchSpacingPct:h,direction:m,namePosMTR:p,current_stn_idx:f,stn_list:i}=S(_=>_.param),d=q(i,st,nt),x=v.useMemo(()=>F("linestart","lineend",d),[JSON.stringify(d)]),j=v.useMemo(()=>F(x.nodes[1],x.nodes.slice(-2)[0],d),[JSON.stringify(d)]),u=v.useMemo(()=>(console.log("computing x shares"),Object.keys(i).reduce((_,M)=>({..._,[M]:K(M,d,s)}),{})),[s.toString(),JSON.stringify(d)]),y=[r[$.RailMap]*o/100,r[$.RailMap]*(1-o/100)],w=Object.keys(u).reduce((_,M)=>({..._,[M]:y[0]+u[M]/j.len*(y[1]-y[0])}),{}),P=v.useMemo(()=>Object.keys(i).reduce((_,M)=>({..._,[M]:tt(M,s,i)*h*a/200}),{}),[n,h,a]),l=v.useMemo(()=>Q(f,e,m),[f,m,e.toString()]),k=Object.keys(i).reduce((_,M)=>({..._,[M]:pt(M,s,p)}),{}),z=et.drawLine(s,l,i,y,w,P,h*a/200,x);return t.jsxs("g",{id:"main",style:{"--y-percentage":c,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[t.jsx(vt,{paths:z}),t.jsx(yt,{xs:w,ys:P,stnStates:l,namePoss:k})]})},vt=v.memo(function(e){return t.jsxs("g",{fill:"none",strokeWidth:9.68,children:[t.jsxs("g",{stroke:"var(--rmg-grey)",children:[e.paths.pass.map((n,r)=>t.jsx("path",{d:n},r)),e.paths.sidingPass.map((n,r)=>{var a;return t.jsx("path",{d:n,strokeDasharray:((a=n.match(/a/g))==null?void 0:a.length)===4?"10 4":void 0},r)})]}),t.jsxs("g",{stroke:"var(--rmg-theme-colour)",children:[e.paths.main.map((n,r)=>t.jsx("path",{d:n},r)),e.paths.sidingMain.map((n,r)=>{var a;return t.jsx("path",{d:n,strokeDasharray:((a=n.match(/a/g))==null?void 0:a.length)===4?"10 4":void 0},r)})]})]})},(s,e)=>JSON.stringify(s.paths)===JSON.stringify(e.paths)),yt=s=>{const{xs:e,ys:n,stnStates:r,namePoss:a}=s,c=S(o=>o.param.stn_list);return t.jsx("g",{id:"stn_icons",children:Object.keys(c).filter(o=>!["linestart","lineend"].includes(o)).map(o=>t.jsx("g",{style:{transform:"translate(".concat(e[o],"px,").concat(n[o],"px)")},children:t.jsx(ut,{stationId:o,stationState:r[o],isReversed:a[o]})},o))})};var L="#012639",H=function(){return H=Object.assign||function(s){for(var e,n=1,r=arguments.length;nc.app),{svgWidth:e,svg_height:n,theme:r}=S(c=>c.param),a=e[Y];return t.jsxs(U,{type:Y,svgWidth:a,svgHeight:n,canvasScale:s,theme:r,children:[t.jsx(Tt,{}),t.jsx(V,{}),t.jsx(jt,{})]})}const D=34.03125,E={width:D,height:D,x:-D/2,fill:void 0},Tt=v.memo(function(){return t.jsxs("defs",{children:[t.jsx(St,{id:"airport",...E}),t.jsx(Nt,{id:"disney",...E}),t.jsx(_t,{id:"hsr",...E}),t.jsx(Mt,{id:"np360",...E}),t.jsx("path",{id:"inttick",d:"M0,0v17",strokeLinecap:"round"})]})}),Et={destination:t.jsx(at,{}),railmap:t.jsx(wt,{})},Lt=[...Z,...X];export{Et as default,Lt as mtrFonts}; +import{j as t}from"./chakra-CXrhlirJ.js";import{a as v}from"./react-Caefwd5V.js";import{aS as $,u as S,S as R,D as g,aY as N,aZ as O}from"./index-ChIkpPhE.js";import{S as U}from"./svg-wrapper-DO1Iqw6o.js";import{a as q,c as F,g as K,b as Q}from"./share-r5pzRDhM.js";import{g as tt,S as et,r as nt,l as st}from"./mtr-C3sp7NyA.js";const V=v.memo(function(){return t.jsx("rect",{fill:"var(--rmg-theme-colour)",height:20,style:{width:"var(--rmg-svg-width)",transform:"translateY(calc(var(--rmg-svg-height) - 20px))"}})}),J=["Vegur-Regular"],rt=v.memo(function(e){const{num:n}=e;return t.jsxs(t.Fragment,{children:[t.jsx("circle",{cx:0,cy:0,r:60,fill:"var(--rmg-theme-colour)"}),t.jsx("text",{fontFamily:J.join(", "),dominantBaseline:"central",dy:0,textAnchor:"middle",fontSize:100,fill:"#fff",children:n})]})},(s,e)=>s.num===e.num),G=$.Destination;function at(){const{canvasScale:s}=S(c=>c.app),{svgWidth:e,svg_height:n,theme:r}=S(c=>c.param),a=e[G];return t.jsxs(U,{type:G,svgWidth:a,svgHeight:n,canvasScale:s,theme:r,children:[t.jsx(it,{}),t.jsx(V,{}),t.jsx(ot,{})]})}const it=v.memo(function(){return t.jsx("defs",{children:t.jsx("path",{id:"arrow",d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"var(--rmg-black,#000)"})})}),ot=()=>{const s=S(l=>l.helper.routes),e=S(l=>l.param.svgWidth),n=S(l=>l.param.direction),r=S(l=>l.param.customiseMTRDest),a=S(l=>l.param.platform_num),c=S(l=>l.param.line_name),o=S(l=>l.param.current_stn_idx),h=S(l=>l.param.stn_list),m=[...new Set(s.filter(l=>l.includes(o)).map(l=>l.filter(k=>!["linestart","lineend"].includes(k)).slice(n===R.left?0:-1)[0]).filter(l=>l!==o))],p=m.length===0,f=r.terminal!==!1?r.terminal:[m.map(l=>h[l].localisedName.zh).join("/"),m.map(l=>h[l].localisedName.en).join("/").replace("\\"," ")],i=v.useRef(null),[d,x]=v.useState({width:0});v.useEffect(()=>{i.current&&x(i.current.getBBox())},[f.toString(),r.isLegacy]);const j=246+d.width+30+60,u=(e[$.Destination]-(n===R.left?1:-1)*j)/2,y=u+(n===R.left?1:-1)*246,w=e.destination/2,P=y+(n===R.left?1:-1)*90;return t.jsxs("g",{style:{transform:"translateY(calc(var(--rmg-svg-height) / 2 - 5px))"},children:[!p&&t.jsx("use",{xlinkHref:"#arrow",transform:"translate(".concat(u,",0)scale(0.8)rotate(").concat(n===R.left?0:180,")"),"data-testid":"mtr-arrow"}),t.jsx("g",{transform:"translate(".concat(p?w:y,",0)"),"data-testid":"mtr-platform",children:t.jsx(rt,{num:a})}),!p&&t.jsxs("g",{ref:i,textAnchor:n===R.left?"start":"end",transform:"translate(".concat(P,",-25)"),fill:"var(--rmg-black)","data-testid":"mtr-destination",children:[t.jsx("text",{className:"rmg-name__zh",fontSize:72,letterSpacing:1.5,children:(r.isLegacy?c[0]:"")+"往"+f[0]}),t.jsx("text",{className:"rmg-name__en",fontSize:42,dy:66,children:(r.isLegacy?c[1]+" ":"")+"to "+f[1]})]})]})};function ct(s){const{interchangeInfo:{theme:e,name:n,facility:r},isPassed:a,position:c,repel:o,repelOffset:h}=s,m=n[0].split("\\"),p=n[1].split("\\"),f=10*(m.length-1)+7*(p.length-1),i=(o===g.left?-1:o===g.right?1:0)*(h!=null?h:3),d=c===N.LEFT||o===g.left?"end":c===N.RIGHT||o===g.right||r?"start":"middle",x={[N.LEFT]:{path:{rotate:90},use:{x:-32,y:-8},g:{x:(r?-42:-24)+i,y:6-(20+f-1)/2}},[N.RIGHT]:{path:{rotate:-90},use:{x:32,y:-8},g:{x:(r?42:24)+i,y:6-(20+f-1)/2}},[N.UP]:{path:{rotate:180},use:{x:0,y:-41},g:{x:(r?o===g.left?-14:o===g.right?14:10:0)+i,y:-36-f}},[N.DOWN]:{path:{rotate:0},use:{x:0,y:26},g:{x:(r?o===g.left?-14:o===g.right?14:10:0)+i,y:31}}}[c];return t.jsxs(t.Fragment,{children:[t.jsx("path",{d:"M0,0v17",strokeLinecap:"round",stroke:a?"var(--rmg-grey)":e==null?void 0:e[2],strokeWidth:8,transform:"rotate(".concat(x.path.rotate,")")}),r&&t.jsx("use",{xlinkHref:"#"+r,fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:"translate(".concat(x.use.x,",").concat(x.use.y,")scale(0.45)")}),t.jsxs("g",{textAnchor:d,transform:"translate(".concat(x.g.x,",").concat(x.g.y,")"),fill:a?"var(--rmg-grey)":"var(--rmg-black)",children:[m.map((j,u)=>t.jsx("text",{dy:10*u,className:"rmg-name__zh",fontSize:10,children:j},u)),p.map((j,u)=>t.jsx("text",{dy:m.length*10-1+6*u,className:"rmg-name__en",fontSize:6,children:j},m.length+u))]})]})}const A=v.memo(ct,(s,e)=>JSON.stringify(s.interchangeInfo)===JSON.stringify(e.interchangeInfo)&&s.isPassed===e.isPassed&&s.position===e.position&&s.repel===e.repel);function X(s){const{length:e,isPassed:n,isReversed:r}=s;return t.jsx("path",{d:"M-8,0 v".concat(e," a8,8 0 0,0 16,0 v-").concat(e," a8,8 0 0,0 -16,0Z"),className:"rmg-stn__mtr",stroke:n?"var(--rmg-grey)":"var(--rmg-black)",transform:"scale(1,".concat(r?-1:1,")")})}function lt(s){const{interchangeInfoList:e,direction:n,isPassed:r,isReversed:a,repel:c}=s,o=e.length<=1?0:18*e.length;return t.jsxs("g",{children:[e.length===1&&t.jsx(A,{interchangeInfo:e[0],isPassed:r,position:a?N.UP:N.DOWN,repel:c}),e.length>1&&e.map((h,m)=>t.jsx("g",{transform:"translate(0,".concat(a?-18*(m+1):18*(m+1),")"),children:t.jsx(A,{interchangeInfo:h,isPassed:r,position:n===g.right?N.RIGHT:N.LEFT})},m)),t.jsx(X,{length:o,isPassed:r,isReversed:a})]})}function ht(s){var f,i,d,x,j;const{interchangeGroup:{name:e,lines:n},direction:r,isPassed:a,isReversed:c,isTerminal:o}=s,h=(d=(i=(f=e==null?void 0:e[1])==null?void 0:f.split("\\"))==null?void 0:i.length)!=null?d:1,m=18*(((n==null?void 0:n.length)||0)-1),p={name:{x:o?0:(n==null?void 0:n.length)===1?r===g.left?-13:13:r===g.left?13:-13,y:o?c?19:-28:-4+(c?-9:9)*(((n==null?void 0:n.length)||0)-1)-5*(h-1)}};return t.jsxs("g",{children:[n==null?void 0:n.map((u,y,w)=>t.jsx("g",{transform:"translate(0,".concat(c?-18*y:18*y,")"),children:t.jsx(A,{interchangeInfo:u,isPassed:a,position:w.length===1?c?N.UP:N.DOWN:r===g.right?N.RIGHT:N.LEFT,repel:o?r:void 0,repelOffset:o&&w.length===1?-4:0})},y)),t.jsx(X,{length:m,isPassed:a,isReversed:c}),t.jsxs("g",{textAnchor:p.name.x===0?"middle":p.name.x>0?"start":"end",fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:"translate(".concat(p.name.x,",").concat(p.name.y,")"),children:[t.jsx("text",{className:"rmg-name__zh",fontSize:14,children:e==null?void 0:e[0]}),(j=(x=e==null?void 0:e[1])==null?void 0:x.split("\\"))==null?void 0:j.map((u,y)=>t.jsx("text",{className:"rmg-name__en",fontSize:8.5,dy:13+10*y,children:u},y))]})]})}const Z=["MyriadPro-Semibold","Vegur-Bold","GenYoMinTW-SB"],gt=v.memo(function(e){const{stnName:n,onUpdate:r,align:a}=e,{zh:c="",en:o=""}=n,h=v.useRef(null),m=()=>{h.current&&r&&r(h.current.getBBox())};v.useEffect(()=>{const i=new AbortController;return m(),document.fonts.load("12px "+Z.join(", "),c+o).then().finally(()=>{setTimeout(()=>{i.signal.aborted||m()},100)}),()=>{i.abort()}},[n.toString(),a]);const p=i=>{switch(i){case g.left:return"start";case g.right:return"end";default:return"middle"}},f=i=>16+10*i;return t.jsxs("g",{ref:h,textAnchor:p(a),children:[t.jsx("text",{className:"rmg-name__zh",fontSize:18,transform:"scale(1,0.97)",children:c}),o.split("\\").map((i,d)=>t.jsx("text",{className:"rmg-name__en",fontSize:10,dy:f(d),children:i},d))]})},(s,e)=>JSON.stringify(s.stnName)===JSON.stringify(e.stnName)&&s.align===e.align),b=-10.8125,mt=-8,dt=13.21875,ft=16,T=-b+ft+dt+mt,C=14;function xt(s){var d,x,j;const{stationName:e,stationState:n,lower:r,align:a,facility:c,...o}=s,[h,m]=v.useState({x:0,width:0}),p=u=>{switch(u){case O.PASSED:return"var(--rmg-grey)";case O.CURRENT:return"#fff";case O.FUTURE:return"var(--rmg-black)"}},f=(j=(x=(d=e.en)==null?void 0:d.split("\\"))==null?void 0:x.length)!=null?j:1,i={g:{x:a?a===g.right?-3:3:0,y:(r?C-b:-C-b-T-11*(f-1))+(a?r?10:-10:0)},rect:{x:h.x-3+(c?a?a===g.right?-3-T:0:(T+5)/2-3-T:0),y:b-1,width:h.width+6+(c?T+3:0),height:T+2+11*(f-1)},use:{x:a?a===g.right?-(T+2)/2-h.width-3:(T+2)/2-2:-(h.width+3)/2,y:b-1+5.5*(f-1)},StationName:{x:c?a?a===g.right?0:T+3:(T+5)/2:0,y:0}};return t.jsx("g",{...o,children:t.jsxs("g",{fill:p(n),transform:"translate(".concat(i.g.x,",").concat(i.g.y,")"),children:[n===O.CURRENT&&t.jsx("rect",{x:i.rect.x,y:i.rect.y,width:i.rect.width,height:i.rect.height,fill:"var(--rmg-black)"}),c&&t.jsx("use",{xlinkHref:"#".concat(c),fill:n===O.PASSED?"var(--rmg-grey)":"var(--rmg-black)",x:i.use.x,y:i.use.y}),t.jsx("g",{transform:"translate(".concat(i.StationName.x,",").concat(i.StationName.y,")"),children:t.jsx(gt,{stnName:e,onUpdate:m,align:a})})]})})}function ut(s){var u,y,w,P,l,k;const{stationId:e,stationState:n,isReversed:r}=s,{localisedName:a,parents:c,children:o,transfer:{groups:h,tick_direc:m,paid_area:p},facility:f}=S(z=>z.param.stn_list[e]),i=(u=h[0].lines)!=null&&u.length?c.includes("linestart")?g.left:o.includes("lineend")?g.right:void 0:void 0,d=!!((w=(y=h[1])==null?void 0:y.lines)!=null&&w.length),x=d&&!i,j={link:{scaleX:i===g.left?-1:1,scaleY:r?-1:1},osi:{x:i?i===g.left?-41:41:0,y:i?0:r?-26:26}};return t.jsxs("g",{"data-testid":"station-icon-wrapper",children:[d&&t.jsx("path",{d:i&&((P=h[0].lines)!=null&&P.length)?"M0,0H41":"M0,0V26",strokeWidth:2.69,strokeDasharray:p?0:2.5,stroke:n===O.PASSED?"var(--rmg-grey)":"var(--rmg-black)",transform:"scale(".concat(j.link.scaleX,",").concat(j.link.scaleY,")")}),t.jsx(lt,{interchangeInfoList:(l=h[0].lines)!=null?l:[],direction:m===R.right?g.right:g.left,isPassed:n===O.PASSED,isReversed:x?!r:r,repel:x?m===R.right?g.right:g.left:void 0}),d&&t.jsx("g",{transform:"translate(".concat(j.osi.x,",").concat(j.osi.y,")"),children:t.jsx(ht,{interchangeGroup:h[1],direction:i||(m===R.right?g.right:g.left),isPassed:n===O.PASSED,isReversed:i?!r:r,isTerminal:!!i})}),t.jsx(xt,{stationName:a,stationState:n,facility:f,lower:r,align:(k=h[0].lines)!=null&&k.length&&x?m===R.left?g.left:g.right:void 0})]})}const pt=(s,e,{isStagger:n,isFlip:r})=>{if(!n)return r;let a;if(e[0].includes(s))a=e[0].indexOf(s)%2;else{const c=e.filter(o=>o.includes(s))[0];a=(e[0].indexOf(c[0])+c.indexOf(s)+1)%2}return a===0?r:!r},jt=()=>{const{branches:s,routes:e,depsStr:n}=S(_=>_.helper),{svgWidth:r,svg_height:a,y_pc:c,padding:o,branchSpacingPct:h,direction:m,namePosMTR:p,current_stn_idx:f,stn_list:i}=S(_=>_.param),d=q(i,st,nt),x=v.useMemo(()=>F("linestart","lineend",d),[JSON.stringify(d)]),j=v.useMemo(()=>F(x.nodes[1],x.nodes.slice(-2)[0],d),[JSON.stringify(d)]),u=v.useMemo(()=>(console.log("computing x shares"),Object.keys(i).reduce((_,M)=>({..._,[M]:K(M,d,s)}),{})),[s.toString(),JSON.stringify(d)]),y=[r[$.RailMap]*o/100,r[$.RailMap]*(1-o/100)],w=Object.keys(u).reduce((_,M)=>({..._,[M]:y[0]+u[M]/j.len*(y[1]-y[0])}),{}),P=v.useMemo(()=>Object.keys(i).reduce((_,M)=>({..._,[M]:tt(M,s,i)*h*a/200}),{}),[n,h,a]),l=v.useMemo(()=>Q(f,e,m),[f,m,e.toString()]),k=Object.keys(i).reduce((_,M)=>({..._,[M]:pt(M,s,p)}),{}),z=et.drawLine(s,l,i,y,w,P,h*a/200,x);return t.jsxs("g",{id:"main",style:{"--y-percentage":c,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[t.jsx(vt,{paths:z}),t.jsx(yt,{xs:w,ys:P,stnStates:l,namePoss:k})]})},vt=v.memo(function(e){return t.jsxs("g",{fill:"none",strokeWidth:9.68,children:[t.jsxs("g",{stroke:"var(--rmg-grey)",children:[e.paths.pass.map((n,r)=>t.jsx("path",{d:n},r)),e.paths.sidingPass.map((n,r)=>{var a;return t.jsx("path",{d:n,strokeDasharray:((a=n.match(/a/g))==null?void 0:a.length)===4?"10 4":void 0},r)})]}),t.jsxs("g",{stroke:"var(--rmg-theme-colour)",children:[e.paths.main.map((n,r)=>t.jsx("path",{d:n},r)),e.paths.sidingMain.map((n,r)=>{var a;return t.jsx("path",{d:n,strokeDasharray:((a=n.match(/a/g))==null?void 0:a.length)===4?"10 4":void 0},r)})]})]})},(s,e)=>JSON.stringify(s.paths)===JSON.stringify(e.paths)),yt=s=>{const{xs:e,ys:n,stnStates:r,namePoss:a}=s,c=S(o=>o.param.stn_list);return t.jsx("g",{id:"stn_icons",children:Object.keys(c).filter(o=>!["linestart","lineend"].includes(o)).map(o=>t.jsx("g",{style:{transform:"translate(".concat(e[o],"px,").concat(n[o],"px)")},children:t.jsx(ut,{stationId:o,stationState:r[o],isReversed:a[o]})},o))})};var L="#012639",H=function(){return H=Object.assign||function(s){for(var e,n=1,r=arguments.length;nc.app),{svgWidth:e,svg_height:n,theme:r}=S(c=>c.param),a=e[Y];return t.jsxs(U,{type:Y,svgWidth:a,svgHeight:n,canvasScale:s,theme:r,children:[t.jsx(Tt,{}),t.jsx(V,{}),t.jsx(jt,{})]})}const D=34.03125,E={width:D,height:D,x:-D/2,fill:void 0},Tt=v.memo(function(){return t.jsxs("defs",{children:[t.jsx(St,{id:"airport",...E}),t.jsx(Nt,{id:"disney",...E}),t.jsx(_t,{id:"hsr",...E}),t.jsx(Mt,{id:"np360",...E}),t.jsx("path",{id:"inttick",d:"M0,0v17",strokeLinecap:"round"})]})}),Et={destination:t.jsx(at,{}),railmap:t.jsx(wt,{})},Lt=[...Z,...J];export{Et as default,Lt as mtrFonts}; diff --git a/assets/index-BqOgmhc6.js b/assets/index-BqOgmhc6.js deleted file mode 100644 index 2c530999..00000000 --- a/assets/index-BqOgmhc6.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-router-Dyjxcbfz.js","assets/chakra-CXrhlirJ.js","assets/react-Caefwd5V.js","assets/param-selector-B7mXBf6L.js","assets/app-clip-view-nLYlAu1q.js"])))=>i.map(i=>d[i]); -import{u as Y,a as yr,j as c,P as Co,c as Kt,F as Ro,f as Re,W as br,T as Ao,b as Eo,d as Po,e as cn,g as ot,h as ee,B as un,D as zn,I as jo,i as wr,k as No,S as xr,l as Lo,m as Mo,n as Sr,o as dn,C as To,p as Io,q as $o,r as Do,s as ko,t as tt,v as zo,w as Fo,x as hn,y as Bo,z as Ho,A as Vo,E as Or,G as Uo,M as _r,H as Go,J as Cr,K as Rr,L as Ar,N as Oe,O as Er,Q as fn,R as W,U as Pr,V as jr,X as Wo,Y as Ko,Z as Yo,_ as Jo,$ as qo,a0 as Qo,a1 as Xo,a2 as Yt,a3 as Zo,a4 as ea,a5 as ta,a6 as na,a7 as ra,a8 as oa,a9 as Ie,aa,ab as ia,ac as Ke,ad as sa,ae as la,af as ca,ag as ua,ah as da,ai as C,aj as ha,ak as fa,al as pn,am as pa,an as q,ao as ga}from"./chakra-CXrhlirJ.js";import{f as ma,i as va,a as g,d as $e,u as gn,H as ya,h as ba,j as kt,N as wa,k as mn,l as Jt,m as xa,n as Sa,o as Oa,p as _a,q as Ca,P as Ra,I as Aa}from"./react-Caefwd5V.js";function xf(){import.meta.url,import("_").catch(()=>1),async function*(){}().next()}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(o){if(o.ep)return;o.ep=!0;const a=n(o);fetch(o.href,a)}})();var Ea=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};const Nr=e=>new Promise(t=>{setTimeout(t,e,"Timeout after ".concat(e/1e3," seconds"))}),Pa=e=>new Promise(t=>{const n=new FileReader;n.onloadend=()=>t(n.result),n.readAsDataURL(e)}),ja=e=>{let t,n=!1;return r=>Ea(void 0,void 0,void 0,function*(){return t&&(n||!r)?t:(t=e(),n=!0,t.then(o=>(n=!1,o)).catch(o=>{throw t=null,o}))})},vn=e=>{let t=0;for(let n=0;n{const t=(e&16777215).toString(16).toUpperCase();return"#"+"00000".substring(0,6-t.length)+t};var ye;(function(e){e.DEV="DEV",e.UAT="UAT",e.PRD="PRD"})(ye||(ye={}));const Lr="rmg-runtime__language",Mr="rmg-runtime__colourMode",mt="rmg-runtime__allowAnalytics",at="rmg-unknown",Na="railmapgen.github.io",La="rmg-home";let vt=at,Tr=yn(vn(at));const Ma=e=>{vt=e,Tr=yn(vn(e))},it=()=>"[".concat(vt,"]"),st=()=>Tr,ue=(e,t,n)=>(...r)=>{typeof r[0]=="string"?e("%c".concat(t(),"%c ").concat(r[0]),"color: ".concat(n()),"",...r.slice(1)):e("%c".concat(t(),"%c"),"color: ".concat(n()),"",...r)},Ta={debug:ue(console.debug,it,st),info:ue(console.info,it,st),warn:ue(console.warn,it,st),error:ue(console.error,it,st)},Ve=()=>vt===at?"[runtime]":"[runtime@".concat(vt,"]"),Ia=yn(vn("runtime")),Ue=()=>Ia,E={setup:Ma,logger:Ta,debug:ue(console.debug,Ve,Ue),info:ue(console.info,Ve,Ue),warn:ue(console.warn,Ve,Ue),error:ue(console.error,Ve,Ue),group:ue(console.group,Ve,Ue),groupEnd:console.groupEnd};var Ir=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let bn,Ct,wn,xn,Sn;const $r=()=>{bn=!1,Ct=at,wn="unknown",xn=ye.PRD,Sn="unknown"},$a=()=>Ir(void 0,void 0,void 0,function*(){const e=window.location.pathname.split("/")[1],t=e?"/".concat(e,"/info.json"):"/info.json",n=yield fetch(t);if(n.ok){const r=yield n.json();E.info("Received info.json",r),Ct=r.component,wn=r.version,xn=r.environment,Sn=r.instance}else throw new Error("Failed to fetch config from ".concat(t))}),Da=()=>Ir(void 0,void 0,void 0,function*(){try{E.group("Loading config...");const e=yield Promise.race([$a(),Nr(10*1e3)]);e?E.error("❌ Failed to load config.",e):(bn=!0,E.info("✅ Config loaded!"))}catch(e){E.error("❌ Failed to load config.",e)}finally{E.groupEnd()}}),ka=()=>bn,za=()=>Dr()?La:Ct,Fa=()=>wn,Ba=()=>xn,Ha=()=>Sn,Dr=()=>Ct===Na;$r();const F={loadWithTimeout:Da,isInitialised:ka,getComponent:za,getVersion:Fa,getEnvironment:Ba,getInstance:Ha,isRMT:Dr,_resetConfig:$r};window.dataLayer=window.dataLayer||[];const Va=()=>{const e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-2HP8Y4MRRQ",document.head.append(e)};function qt(...e){if(F.getEnvironment()!==ye.DEV)return window.dataLayer.push(arguments);E.info("Not going to send event in DEV environment",e)}const Ua=(e,t={})=>{qt("event",e,t)},Ga=()=>{Va(),qt("js",new Date),qt("config","G-2HP8Y4MRRQ",{appName:F.getComponent(),version:F.getVersion(),environment:F.getEnvironment(),instance:F.getInstance()})},yt={init:Ga,customEvent:Ua},Wa="rmg-runtime-channel",ht={};let Ye;try{Ye=new BroadcastChannel(Wa),Ye.onmessage=e=>{var t;const{event:n,data:r,frameId:o}=e.data;(t=ht[n])===null||t===void 0||t.forEach(a=>a(r,o))}}catch(e){E.warn("Failed to initiate broadcast channel. Some features may be unavailable.",e)}const Ka=(e,t)=>{var n;E.debug("Broadcasting event ".concat(e," with data"),t),Ye==null||Ye.postMessage({event:e,data:t,frameId:(n=window.frameElement)===null||n===void 0?void 0:n.id})},Ya=(e,t)=>{var n;e in ht?(n=ht[e])===null||n===void 0||n.push(t):ht[e]=[t]},I={postEvent:Ka,onMessage:Ya},kr="TOGGLE_NAV_MENU",zr="OPEN_APP",Fr="CLOSE_APP",Br="UPDATE_APP_METADATA",Hr="UPDATE_URL",ft=()=>!window.frameElement,Ja=()=>{var e;return!!(!((e=window.frameElement)===null||e===void 0)&&e.closest(".show-menu"))},qa=()=>{if(!ft()){const t=document.createElement("style");t.textContent="body{padding: 0;}",document.head.appendChild(t)}const e=document.createElement("style");e.textContent=".rmg-window__header:not(.rmg-window__app-clip-header){margin-left: 40px;}",!ft()&&!Ja()&&document.head.appendChild(e),ft()||I.onMessage(kr,t=>{if(t)try{document.head.removeChild(e)}catch(n){E.warn("Unable to remove indent style from RmgWindowHeader",n)}else document.head.appendChild(e)})},Qa=e=>{I.postEvent(zr,e)},Xa=e=>{I.postEvent(Fr,e)},Za=e=>{I.postEvent(Br,e)},ei=e=>{I.postEvent(Hr,e)},ti=e=>{I.onMessage(zr,e)},ni=e=>{I.onMessage(Fr,e)},ri=e=>{I.onMessage(Br,e)},oi=e=>{I.onMessage(Hr,e)},ai=e=>{I.postEvent(kr,e)},X={isStandaloneWindow:ft,injectUITools:qa,openApp:Qa,onAppOpen:ti,closeApp:Xa,onAppClose:ni,updateAppMetadata:Za,onAppMetadataUpdate:ri,updateUrl:ei,onUrlUpdate:oi,toggleNavMenu:ai},Vr="SET_LANGUAGE",Ur="SET_COLOUR_MODE",ii=e=>{I.postEvent(Vr,e),window.localStorage.setItem(Lr,e)},si=()=>window.localStorage.getItem(Lr)||"en",li=e=>{I.onMessage(Vr,e)},Gr=["light","dark","system"],ci=e=>{Gr.includes(e)&&(I.postEvent(Ur,e),window.localStorage.setItem(Mr,e))},ui=e=>!!(e&&Gr.includes(e)),di=()=>{const e=window.localStorage.getItem(Mr);return ui(e)?e:"system"},hi=e=>{I.onMessage(Ur,e)},fi=()=>window.localStorage.getItem(mt)!==null,Wr=()=>window.localStorage.getItem(mt)==="true",pi=e=>{const t=Wr();return e?(t||(window.localStorage.setItem(mt,e.toString()),yt.init()),{refreshRequired:!1}):t?(window.localStorage.setItem(mt,e.toString()),{refreshRequired:!0}):{refreshRequired:!1}},Z={setLanguage:ii,getLanguage:si,onLanguageChange:li,setColourMode:ci,getColourMode:di,onColourModeChange:hi,isAnalyticsQADone:fi,isAllowAnalytics:Wr,allowAnalytics:pi},gi=new Date().getTime();function mi(){const e=F.getComponent(),t=window.localStorage.getItem(e+"__startTime");return t===null?new Date().getTime()-gi:new Date().getTime()-Number(t)}const vi={getMsSinceStartUp:mi},pt={},ze=()=>{const e=F.getComponent();if(e===at)throw new Error("Unable to clear storage for unknown app");return e};window.addEventListener("storage",e=>{var t;const{key:n,newValue:r}=e;n&&((t=pt[n])===null||t===void 0||t.forEach(o=>o(r)))});const yi=(e,t)=>{var n;const r="".concat(ze(),"__").concat(e);r in pt?(n=pt[r])===null||n===void 0||n.push(t):pt[r]=[t]},bi=e=>{const t=ze();return window.localStorage.getItem("".concat(t,"__").concat(e))},wi=()=>{const e=ze(),t={};let n=0;for(;n{const n=ze();window.localStorage.setItem("".concat(n,"__").concat(e),t)},Si=e=>{const t=ze();window.localStorage.removeItem("".concat(t,"__").concat(e))},Oi=()=>{const e=ze();let t=0;for(;t1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||_i,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),r=0;r{this.observers[r]||(this.observers[r]=new Map);const o=this.observers[r].get(n)||0;this.observers[r].set(n,o+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o{let[s,l]=i;for(let u=0;u{let[s,l]=i;for(let u=0;u{let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n},Fn=e=>e==null?"":""+e,Ci=(e,t,n)=>{e.forEach(r=>{t[r]&&(n[r]=t[r])})},Ri=/###/g,Bn=e=>e&&e.indexOf("###")>-1?e.replace(Ri,"."):e,Hn=e=>!e||typeof e=="string",Je=(e,t,n)=>{const r=typeof t!="string"?t:t.split(".");let o=0;for(;o{const{obj:r,k:o}=Je(e,t,Object);if(r!==void 0||t.length===1){r[o]=n;return}let a=t[t.length-1],i=t.slice(0,t.length-1),s=Je(e,i,Object);for(;s.obj===void 0&&i.length;)a="".concat(i[i.length-1],".").concat(a),i=i.slice(0,i.length-1),s=Je(e,i,Object),s&&s.obj&&typeof s.obj["".concat(s.k,".").concat(a)]<"u"&&(s.obj=void 0);s.obj["".concat(s.k,".").concat(a)]=n},Ai=(e,t,n,r)=>{const{obj:o,k:a}=Je(e,t,Object);o[a]=o[a]||[],o[a].push(n)},wt=(e,t)=>{const{obj:n,k:r}=Je(e,t);if(n)return n[r]},Ei=(e,t,n)=>{const r=wt(e,n);return r!==void 0?r:wt(t,n)},Kr=(e,t,n)=>{for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?typeof e[r]=="string"||e[r]instanceof String||typeof t[r]=="string"||t[r]instanceof String?n&&(e[r]=t[r]):Kr(e[r],t[r],n):e[r]=t[r]);return e},Me=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Pi={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ji=e=>typeof e=="string"?e.replace(/[&<>"'\/]/g,t=>Pi[t]):e;class Ni{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const Li=[" ",",","?","!",";"],Mi=new Ni(20),Ti=(e,t,n)=>{t=t||"",n=n||"";const r=Li.filter(i=>t.indexOf(i)<0&&n.indexOf(i)<0);if(r.length===0)return!0;const o=Mi.getRegExp("(".concat(r.map(i=>i==="?"?"\\?":i).join("|"),")"));let a=!o.test(e);if(!a){const i=e.indexOf(n);i>0&&!o.test(e.substring(0,i))&&(a=!0)}return a},Qt=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const r=t.split(n);let o=e;for(let a=0;a-1&&le&&e.indexOf("_")>0?e.replace("_","-"):e;class Un extends Rt{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const a=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,i=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;t.indexOf(".")>-1?s=t.split("."):(s=[t,n],r&&(Array.isArray(r)?s.push(...r):typeof r=="string"&&a?s.push(...r.split(a)):s.push(r)));const l=wt(this.data,s);return!l&&!n&&!r&&t.indexOf(".")>-1&&(t=s[0],n=s[1],r=s.slice(2).join(".")),l||!i||typeof r!="string"?l:Qt(this.data&&this.data[t]&&this.data[t][n],r,a)}addResource(t,n,r,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let s=[t,n];r&&(s=s.concat(i?r.split(i):r)),t.indexOf(".")>-1&&(s=t.split("."),o=n,n=s[1]),this.addNamespaces(n),Vn(this.data,s,o),a.silent||this.emit("added",t,n,r,o)}addResources(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const a in r)(typeof r[a]=="string"||Array.isArray(r[a]))&&this.addResource(t,n,a,r[a],{silent:!0});o.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,o,a){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},s=[t,n];t.indexOf(".")>-1&&(s=t.split("."),o=r,r=n,n=s[1]),this.addNamespaces(n);let l=wt(this.data,s)||{};i.skipCopy||(r=JSON.parse(JSON.stringify(r))),o?Kr(l,r,a):l={...l,...r},Vn(this.data,s,l),i.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(o=>n[o]&&Object.keys(n[o]).length>0)}toJSON(){return this.data}}var Yr={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,o){return e.forEach(a=>{this.processors[a]&&(t=this.processors[a].process(t,n,r,o))}),t}};const Gn={};class St extends Rt{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Ci(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=re.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const r=this.resolve(t,n);return r&&r.res!==void 0}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const o=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let a=n.ns||this.options.defaultNS||[];const i=r&&t.indexOf(r)>-1,s=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!Ti(t,r,o);if(i&&!s){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:a};const u=t.split(r);(r!==o||r===o&&this.options.ns.indexOf(u[0])>-1)&&(a=u.shift()),t=u.join(o)}return typeof a=="string"&&(a=[a]),{key:t,namespaces:a}}translate(t,n,r){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const o=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,a=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:i,namespaces:s}=this.extractFromKey(t[t.length-1],n),l=s[s.length-1],u=n.lng||this.language,d=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(d){const S=n.nsSeparator||this.options.nsSeparator;return o?{res:"".concat(l).concat(S).concat(i),usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:"".concat(l).concat(S).concat(i)}return o?{res:i,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:i}const f=this.resolve(t,n);let h=f&&f.res;const p=f&&f.usedKey||i,m=f&&f.exactUsedKey||i,y=Object.prototype.toString.apply(h),w=["[object Number]","[object Function]","[object RegExp]"],b=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,x=!this.i18nFormat||this.i18nFormat.handleAsObject;if(x&&h&&(typeof h!="string"&&typeof h!="boolean"&&typeof h!="number")&&w.indexOf(y)<0&&!(typeof b=="string"&&Array.isArray(h))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const S=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,h,{...n,ns:s}):"key '".concat(i," (").concat(this.language,")' returned an object instead of string.");return o?(f.res=S,f.usedParams=this.getUsedParamsDetails(n),f):S}if(a){const S=Array.isArray(h),j=S?[]:{},B=S?m:p;for(const P in h)if(Object.prototype.hasOwnProperty.call(h,P)){const de="".concat(B).concat(a).concat(P);j[P]=this.translate(de,{...n,joinArrays:!1,ns:s}),j[P]===de&&(j[P]=h[P])}h=j}}else if(x&&typeof b=="string"&&Array.isArray(h))h=h.join(b),h&&(h=this.extendTranslation(h,t,n,r));else{let S=!1,j=!1;const B=n.count!==void 0&&typeof n.count!="string",P=St.hasDefaultValue(n),de=B?this.pluralResolver.getSuffix(u,n.count,n):"",oe=n.ordinal&&B?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",Ee=B&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),N=Ee&&n["defaultValue".concat(this.options.pluralSeparator,"zero")]||n["defaultValue".concat(de)]||n["defaultValue".concat(oe)]||n.defaultValue;!this.isValidLookup(h)&&P&&(S=!0,h=N),this.isValidLookup(h)||(j=!0,h=i);const he=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&j?void 0:h,ie=P&&N!==h&&this.options.updateMissing;if(j||S||ie){if(this.logger.log(ie?"updateKey":"missingKey",u,l,i,ie?N:h),a){const T=this.resolve(i,{...n,keySeparator:!1});T&&T.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let M=[];const H=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&H&&H[0])for(let T=0;T{const we=P&&fe!==h?fe:he;this.options.missingKeyHandler?this.options.missingKeyHandler(T,l,V,we,ie,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(T,l,V,we,ie,n),this.emit("missingKey",T,l,V,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&B?M.forEach(T=>{const V=this.pluralResolver.getSuffixes(T,n);Ee&&n["defaultValue".concat(this.options.pluralSeparator,"zero")]&&V.indexOf("".concat(this.options.pluralSeparator,"zero"))<0&&V.push("".concat(this.options.pluralSeparator,"zero")),V.forEach(fe=>{Fe([T],i+fe,n["defaultValue".concat(fe)]||N)})}):Fe(M,i,N))}h=this.extendTranslation(h,t,n,f,r),j&&h===i&&this.options.appendNamespaceToMissingKey&&(h="".concat(l,":").concat(i)),(j||S)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(l,":").concat(i):i,S?h:void 0):h=this.options.parseMissingKeyHandler(h))}return o?(f.res=h,f.usedParams=this.getUsedParamsDetails(n),f):h}extendTranslation(t,n,r,o,a){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const u=typeof t=="string"&&(r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let d;if(u){const h=t.match(this.interpolator.nestingRegexp);d=h&&h.length}let f=r.replace&&typeof r.replace!="string"?r.replace:r;if(this.options.interpolation.defaultVariables&&(f={...this.options.interpolation.defaultVariables,...f}),t=this.interpolator.interpolate(t,f,r.lng||this.language||o.usedLng,r),u){const h=t.match(this.interpolator.nestingRegexp),p=h&&h.length;d1&&arguments[1]!==void 0?arguments[1]:{},r,o,a,i,s;return typeof t=="string"&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(r))return;const u=this.extractFromKey(l,n),d=u.key;o=d;let f=u.namespaces;this.options.fallbackNS&&(f=f.concat(this.options.fallbackNS));const h=n.count!==void 0&&typeof n.count!="string",p=h&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),m=n.context!==void 0&&(typeof n.context=="string"||typeof n.context=="number")&&n.context!=="",y=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);f.forEach(w=>{this.isValidLookup(r)||(s=w,!Gn["".concat(y[0],"-").concat(w)]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(s)&&(Gn["".concat(y[0],"-").concat(w)]=!0,this.logger.warn('key "'.concat(o,'" for languages "').concat(y.join(", "),'" won\'t get resolved as namespace "').concat(s,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),y.forEach(b=>{if(this.isValidLookup(r))return;i=b;const x=[d];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(x,d,b,w,n);else{let S;h&&(S=this.pluralResolver.getSuffix(b,n.count,n));const j="".concat(this.options.pluralSeparator,"zero"),B="".concat(this.options.pluralSeparator,"ordinal").concat(this.options.pluralSeparator);if(h&&(x.push(d+S),n.ordinal&&S.indexOf(B)===0&&x.push(d+S.replace(B,this.options.pluralSeparator)),p&&x.push(d+j)),m){const P="".concat(d).concat(this.options.contextSeparator).concat(n.context);x.push(P),h&&(x.push(P+S),n.ordinal&&S.indexOf(B)===0&&x.push(P+S.replace(B,this.options.pluralSeparator)),p&&x.push(P+j))}}let $;for(;$=x.pop();)this.isValidLookup(r)||(a=$,r=this.getResource(b,w,$,n))}))})}),{res:r,usedKey:o,exactUsedKey:a,usedLng:i,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,o):this.resourceStore.getResource(t,n,r,o)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&typeof t.replace!="string";let o=r?t.replace:t;if(r&&typeof t.count<"u"&&(o.count=t.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!r){o={...o};for(const a of n)delete o[a]}return o}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&t[r]!==void 0)return!0;return!1}}const zt=e=>e.charAt(0).toUpperCase()+e.slice(1);class Wn{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=re.create("languageUtils")}getScriptPartFromCode(t){if(t=xt(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=xt(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(typeof t=="string"&&t.indexOf("-")>-1){const n=["hans","hant","latn","cyrl","cans","mong","arab"];let r=t.split("-");return this.options.lowerCaseLng?r=r.map(o=>o.toLowerCase()):r.length===2?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=zt(r[1].toLowerCase()))):r.length===3&&(r[0]=r[0].toLowerCase(),r[1].length===2&&(r[1]=r[1].toUpperCase()),r[0]!=="sgn"&&r[2].length===2&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=zt(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=zt(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const o=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(o))&&(n=o)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const o=this.getLanguagePartFromCode(r);if(this.isSupportedCode(o))return n=o;n=this.options.supportedLngs.find(a=>{if(a===o)return a;if(!(a.indexOf("-")<0&&o.indexOf("-")<0)&&(a.indexOf("-")>0&&o.indexOf("-")<0&&a.substring(0,a.indexOf("-"))===o||a.indexOf(o)===0&&o.length>1))return a})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),typeof t=="string"&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes(n||this.options.fallbackLng||[],t),o=[],a=i=>{i&&(this.isSupportedCode(i)?o.push(i):this.logger.warn("rejecting language code not found in supportedLngs: ".concat(i)))};return typeof t=="string"&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&a(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&a(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&a(this.getLanguagePartFromCode(t))):typeof t=="string"&&a(this.formatLanguageCode(t)),r.forEach(i=>{o.indexOf(i)<0&&a(this.formatLanguageCode(i))}),o}}let Ii=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],$i={1:e=>+(e>1),2:e=>+(e!=1),3:e=>0,4:e=>e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,5:e=>e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5,6:e=>e==1?0:e>=2&&e<=4?1:2,7:e=>e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,8:e=>e==1?0:e==2?1:e!=8&&e!=11?2:3,9:e=>+(e>=2),10:e=>e==1?0:e==2?1:e<7?2:e<11?3:4,11:e=>e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3,12:e=>+(e%10!=1||e%100==11),13:e=>+(e!==0),14:e=>e==1?0:e==2?1:e==3?2:3,15:e=>e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2,16:e=>e%10==1&&e%100!=11?0:e!==0?1:2,17:e=>e==1||e%10==1&&e%100!=11?0:1,18:e=>e==0?0:e==1?1:2,19:e=>e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3,20:e=>e==1?0:e==0||e%100>0&&e%100<20?1:2,21:e=>e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0,22:e=>e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3};const Di=["v1","v2","v3"],ki=["v4"],Kn={zero:0,one:1,two:2,few:3,many:4,other:5},zi=()=>{const e={};return Ii.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:$i[t.fc]}})}),e};class Fi{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=re.create("pluralResolver"),(!this.options.compatibilityJSON||ki.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=zi(),this.pluralRulesCache={}}addRule(t,n){this.rules[t]=n}clearCache(){this.pluralRulesCache={}}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{const r=xt(t==="dev"?"en":t),o=n.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:r,type:o});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];const i=new Intl.PluralRules(r,{type:o});return this.pluralRulesCache[a]=i,i}catch(r){return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return this.shouldUseIntlApi()?r&&r.resolvedOptions().pluralCategories.length>1:r&&r.numbers.length>1}getPluralFormsOfKey(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(o=>"".concat(n).concat(o))}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((o,a)=>Kn[o]-Kn[a]).map(o=>"".concat(this.options.prepend).concat(n.ordinal?"ordinal".concat(this.options.prepend):"").concat(o)):r.numbers.map(o=>this.getSuffix(t,o,n)):[]}getSuffix(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const o=this.getRule(t,r);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(r.ordinal?"ordinal".concat(this.options.prepend):"").concat(o.select(n)):this.getSuffixRetroCompatible(o,n):(this.logger.warn("no plural rule found for: ".concat(t)),"")}getSuffixRetroCompatible(t,n){const r=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let o=t.numbers[r];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(o===2?o="plural":o===1&&(o=""));const a=()=>this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString();return this.options.compatibilityJSON==="v1"?o===1?"":typeof o=="number"?"_plural_".concat(o.toString()):a():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?a():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}shouldUseIntlApi(){return!Di.includes(this.options.compatibilityJSON)}}const Yn=function(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=Ei(e,t,n);return!a&&o&&typeof n=="string"&&(a=Qt(e,n,r),a===void 0&&(a=Qt(t,n,r))),a},Ft=e=>e.replace(/\$/g,"$$$$");class Bi{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=re.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:r,useRawValueToEscape:o,prefix:a,prefixEscaped:i,suffix:s,suffixEscaped:l,formatSeparator:u,unescapeSuffix:d,unescapePrefix:f,nestingPrefix:h,nestingPrefixEscaped:p,nestingSuffix:m,nestingSuffixEscaped:y,nestingOptionsSeparator:w,maxReplaces:b,alwaysFormat:x}=t.interpolation;this.escape=n!==void 0?n:ji,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=o!==void 0?o:!1,this.prefix=a?Me(a):i||"{{",this.suffix=s?Me(s):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=d?"":f||"-",this.unescapeSuffix=this.unescapePrefix?"":d||"",this.nestingPrefix=h?Me(h):p||Me("$t("),this.nestingSuffix=m?Me(m):y||Me(")"),this.nestingOptionsSeparator=w||",",this.maxReplaces=b||1e3,this.alwaysFormat=x!==void 0?x:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>n&&n.source===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,"".concat(this.prefix,"(.+?)").concat(this.suffix)),this.regexpUnescape=t(this.regexpUnescape,"".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix)),this.nestingRegexp=t(this.nestingRegexp,"".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix))}interpolate(t,n,r,o){let a,i,s;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=p=>{if(p.indexOf(this.formatSeparator)<0){const b=Yn(n,l,p,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(b,void 0,r,{...o,...n,interpolationkey:p}):b}const m=p.split(this.formatSeparator),y=m.shift().trim(),w=m.join(this.formatSeparator).trim();return this.format(Yn(n,l,y,this.options.keySeparator,this.options.ignoreJSONStructure),w,r,{...o,...n,interpolationkey:y})};this.resetRegExp();const d=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,f=o&&o.interpolation&&o.interpolation.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:p=>Ft(p)},{regex:this.regexp,safeValue:p=>this.escapeValue?Ft(this.escape(p)):Ft(p)}].forEach(p=>{for(s=0;a=p.regex.exec(t);){const m=a[1].trim();if(i=u(m),i===void 0)if(typeof d=="function"){const w=d(t,a,o);i=typeof w=="string"?w:""}else if(o&&Object.prototype.hasOwnProperty.call(o,m))i="";else if(f){i=a[0];continue}else this.logger.warn("missed to pass in variable ".concat(m," for interpolating ").concat(t)),i="";else typeof i!="string"&&!this.useRawValueToEscape&&(i=Fn(i));const y=p.safeValue(i);if(t=t.replace(a[0],y),f?(p.regex.lastIndex+=i.length,p.regex.lastIndex-=a[0].length):p.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o,a,i;const s=(l,u)=>{const d=this.nestingOptionsSeparator;if(l.indexOf(d)<0)return l;const f=l.split(new RegExp("".concat(d,"[ ]*{")));let h="{".concat(f[1]);l=f[0],h=this.interpolate(h,i);const p=h.match(/'/g),m=h.match(/"/g);(p&&p.length%2===0&&!m||m.length%2!==0)&&(h=h.replace(/'/g,'"'));try{i=JSON.parse(h),u&&(i={...u,...i})}catch(y){return this.logger.warn("failed parsing options string in nesting for key ".concat(l),y),"".concat(l).concat(d).concat(h)}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,l};for(;o=this.nestingRegexp.exec(t);){let l=[];i={...r},i=i.replace&&typeof i.replace!="string"?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let u=!1;if(o[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(o[1])){const d=o[1].split(this.formatSeparator).map(f=>f.trim());o[1]=d.shift(),l=d,u=!0}if(a=n(s.call(this,o[1].trim(),i),i),a&&o[0]===t&&typeof a!="string")return a;typeof a!="string"&&(a=Fn(a)),a||(this.logger.warn("missed to resolve ".concat(o[1]," for nesting ").concat(t)),a=""),u&&(a=l.reduce((d,f)=>this.format(d,f,r.lng,{...r,interpolationkey:o[1].trim()}),a.trim())),t=t.replace(o[0],a),this.regexp.lastIndex=0}return t}}const Hi=e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const o=r[1].substring(0,r[1].length-1);t==="currency"&&o.indexOf(":")<0?n.currency||(n.currency=o.trim()):t==="relativetime"&&o.indexOf(":")<0?n.range||(n.range=o.trim()):o.split(";").forEach(i=>{if(i){const[s,...l]=i.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),d=s.trim();n[d]||(n[d]=u),u==="false"&&(n[d]=!1),u==="true"&&(n[d]=!0),isNaN(u)||(n[d]=parseInt(u,10))}})}return{formatName:t,formatOptions:n}},Te=e=>{const t={};return(n,r,o)=>{let a=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(a={...a,[o.interpolationkey]:void 0});const i=r+JSON.stringify(a);let s=t[i];return s||(s=e(xt(r),o),t[i]=s),s(n)}};class Vi{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=re.create("formatter"),this.options=t,this.formats={number:Te((n,r)=>{const o=new Intl.NumberFormat(n,{...r});return a=>o.format(a)}),currency:Te((n,r)=>{const o=new Intl.NumberFormat(n,{...r,style:"currency"});return a=>o.format(a)}),datetime:Te((n,r)=>{const o=new Intl.DateTimeFormat(n,{...r});return a=>o.format(a)}),relativetime:Te((n,r)=>{const o=new Intl.RelativeTimeFormat(n,{...r});return a=>o.format(a,r.range||"day")}),list:Te((n,r)=>{const o=new Intl.ListFormat(n,{...r});return a=>o.format(a)})},this.init(t)}init(t){const r=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=Te(n)}format(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const a=n.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(s=>s.indexOf(")")>-1)){const s=a.findIndex(l=>l.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,s)].join(this.formatSeparator)}return a.reduce((s,l)=>{const{formatName:u,formatOptions:d}=Hi(l);if(this.formats[u]){let f=s;try{const h=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},p=h.locale||h.lng||o.locale||o.lng||r;f=this.formats[u](s,p,{...d,...o,...h})}catch(h){this.logger.warn(h)}return f}else this.logger.warn("there was no format function for ".concat(u));return s},t)}}const Ui=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class Gi extends Rt{constructor(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=o,this.logger=re.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(r,o.backend,o)}queueLoad(t,n,r,o){const a={},i={},s={},l={};return t.forEach(u=>{let d=!0;n.forEach(f=>{const h="".concat(u,"|").concat(f);!r.reload&&this.store.hasResourceBundle(u,f)?this.state[h]=2:this.state[h]<0||(this.state[h]===1?i[h]===void 0&&(i[h]=!0):(this.state[h]=1,d=!1,i[h]===void 0&&(i[h]=!0),a[h]===void 0&&(a[h]=!0),l[f]===void 0&&(l[f]=!0)))}),d||(s[u]=!0)}),(Object.keys(a).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(a),pending:Object.keys(i),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}loaded(t,n,r){const o=t.split("|"),a=o[0],i=o[1];n&&this.emit("failedLoading",a,i,n),!n&&r&&this.store.addResourceBundle(a,i,r,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&r&&(this.state[t]=0);const s={};this.queue.forEach(l=>{Ai(l.loaded,[a],i),Ui(l,t),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{s[u]||(s[u]={});const d=l.loaded[u];d.length&&d.forEach(f=>{s[u][f]===void 0&&(s[u][f]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(l=>!l.done)}read(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!t.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:o,wait:a,callback:i});return}this.readingCalls++;const s=(u,d)=>{if(this.readingCalls--,this.waitingReads.length>0){const f=this.waitingReads.shift();this.read(f.lng,f.ns,f.fcName,f.tried,f.wait,f.callback)}if(u&&d&&o{this.read.call(this,t,n,r,o+1,a*2,i)},a);return}i(u,d)},l=this.backend[r].bind(this.backend);if(l.length===2){try{const u=l(t,n);u&&typeof u.then=="function"?u.then(d=>s(null,d)).catch(s):s(null,u)}catch(u){s(u)}return}return l(t,n,s)}prepareLoading(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();typeof t=="string"&&(t=this.languageUtils.toResolveHierarchy(t)),typeof n=="string"&&(n=[n]);const a=this.queueLoad(t,n,r,o);if(!a.toLoad.length)return a.pending.length||o(),null;a.toLoad.forEach(i=>{this.loadOne(i)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const r=t.split("|"),o=r[0],a=r[1];this.read(o,a,"read",void 0,void 0,(i,s)=>{i&&this.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(o," failed"),i),!i&&s&&this.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(o),s),this.loaded(t,i,s)})}saveMissing(t,n,r,o,a){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn('did not save key "'.concat(r,'" as the namespace "').concat(n,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend&&this.backend.create){const l={...i,isUpdate:a},u=this.backend.create.bind(this.backend);if(u.length<6)try{let d;u.length===5?d=u(t,n,r,o,l):d=u(t,n,r,o),d&&typeof d.then=="function"?d.then(f=>s(null,f)).catch(s):s(null,d)}catch(d){s(d)}else u(t,n,r,o,s,l)}!t||!t[0]||this.store.addResource(t[0],n,r,o)}}}const Jn=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),typeof e[1]=="string"&&(t.defaultValue=e[1]),typeof e[2]=="string"&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(r=>{t[r]=n[r]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),qn=e=>(typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),lt=()=>{},Wi=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};class nt extends Rt{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=qn(t),this.services={},this.logger=re,this.modules={external:[]},Wi(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(r=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(typeof n.ns=="string"?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const o=Jn();this.options={...o,...this.options,...qn(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...o.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);const a=d=>d?typeof d=="function"?new d:d:null;if(!this.options.isClone){this.modules.logger?re.init(a(this.modules.logger),this.options):re.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:typeof Intl<"u"&&(d=Vi);const f=new Wn(this.options);this.store=new Un(this.options.resources,this.options);const h=this.services;h.logger=re,h.resourceStore=this.store,h.languageUtils=f,h.pluralResolver=new Fi(f,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),d&&(!this.options.interpolation.format||this.options.interpolation.format===o.interpolation.format)&&(h.formatter=a(d),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new Bi(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new Gi(a(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(p){for(var m=arguments.length,y=new Array(m>1?m-1:0),w=1;w1?m-1:0),w=1;w{p.init&&p.init(this)})}if(this.format=this.options.interpolation.format,r||(r=lt),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=function(){return t.store[d](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=function(){return t.store[d](...arguments),t}});const l=Ge(),u=()=>{const d=(f,h)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(h),r(f,h)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lt;const o=typeof t=="string"?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&o.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const a=[],i=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(u=>{u!=="cimode"&&a.indexOf(u)<0&&a.push(u)})};o?i(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>i(l)),this.options.preload&&this.options.preload.forEach(s=>i(s)),this.services.backendConnector.load(a,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(s)})}else r(null)}reloadResources(t,n,r){const o=Ge();return typeof t=="function"&&(r=t,t=void 0),typeof n=="function"&&(r=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),r||(r=lt),this.services.backendConnector.reload(t,n,a=>{o.resolve(),r(a)}),o}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Yr.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,n){var r=this;this.isLanguageChangingTo=t;const o=Ge();this.emit("languageChanging",t);const a=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},i=(l,u)=>{u?(a(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,o.resolve(function(){return r.t(...arguments)}),n&&n(l,function(){return r.t(...arguments)})},s=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=typeof l=="string"?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||a(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,d=>{i(d,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(t),o}getFixedT(t,n,r){var o=this;const a=function(i,s){let l;if(typeof s!="object"){for(var u=arguments.length,d=new Array(u>2?u-2:0),f=2;f"".concat(l.keyPrefix).concat(h).concat(m)):p=l.keyPrefix?"".concat(l.keyPrefix).concat(h).concat(i):i,o.t(p,l)};return typeof t=="string"?a.lng=t:a.lngs=t,a.ns=n,a.keyPrefix=r,a}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],o=this.options?this.options.fallbackLng:!1,a=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const i=(s,l)=>{const u=this.services.backendConnector.state["".concat(s,"|").concat(l)];return u===-1||u===0||u===2};if(n.precheck){const s=n.precheck(this,i);if(s!==void 0)return s}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(r,t)&&(!o||i(a,t)))}loadNamespaces(t,n){const r=Ge();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(o=>{this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}),this.loadResources(o=>{r.resolve(),n&&n(o)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=Ge();typeof t=="string"&&(t=[t]);const o=this.options.preload||[],a=t.filter(i=>o.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return a.length?(this.options.preload=o.concat(a),this.loadResources(i=>{r.resolve(),n&&n(i)}),r):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services&&this.services.languageUtils||new Wn(Jn());return n.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new nt(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lt;const r=t.forkResourceStore;r&&delete t.forkResourceStore;const o={...this.options,...t,isClone:!0},a=new nt(o);return(t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),["store","services","language"].forEach(s=>{a[s]=this[s]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new Un(this.store.data,o),a.services.resourceStore=a.store),a.translator=new St(a.services,o),a.translator.on("*",function(s){for(var l=arguments.length,u=new Array(l>1?l-1:0),d=1;dDe,Yi=e=>{Z.onLanguageChange(t=>e.changeLanguage(t))};class Ji{constructor(){this._appName="RMG",this._lng=void 0,this._defaultResources={},this._resources={}}use(t){return z.use(t),this}withAppName(t){return this._appName=t,this}withLng(t){return this._lng=t,this}withDefaultResource(t){return Object.entries(t).forEach(([n,r])=>{this._defaultResources[n]=r}),this}withResource(t,n){return this._resources[t]=n,this}combineResource(){const t={};return Object.entries(this._defaultResources).forEach(([n,r])=>{t[n]={translation:r}}),Object.entries(this._resources).forEach(([n,r])=>{n in t?t[n].translation=Object.assign(Object.assign({},t[n].translation),r):t[n]={translation:r}}),t}build(){return De=z.createInstance({lng:this._lng,fallbackLng:{"zh-CN":["zh-Hans","zh-Hant","en"],"zh-HK":["zh-Hant","zh-Hans","en"],"zh-TW":["zh-Hant","zh-Hans","en"],default:["en"]},resources:this.combineResource()},(t,n)=>{var r;if(t){E.error("unexpected error occurs while initialising i18n",t);return}document.title=n(this._appName),document.documentElement.lang=(r=this._lng)!==null&&r!==void 0?r:"en"}),De.on("languageChanged",t=>{document.title=De.t(this._appName),document.documentElement.lang=t}),Yi(De),De}}var rt=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let ve={};const qi=()=>ve,Jr="LOAD_REMOTE_FONT",Qi=(e,t)=>{I.postEvent(Jr,{family:e,definition:t})},Xi=e=>{I.onMessage(Jr,e)},On=e=>e.source.startsWith("local"),Zi=e=>{var t;const n=(t=e.source.match(/url\(['"](\S+)['"]\)/))===null||t===void 0?void 0:t[1];if(!n)throw new Error("Invalid URL in source "+e.source);return new URL(n,window.location.href)},Qn=(e,t)=>{var n;return"@font-face {\n font-family: '".concat(e,"';\n src: ").concat(t.source,";\n ").concat(Object.entries((n=t.descriptors)!==null&&n!==void 0?n:{}).map(([r,o])=>"".concat(r,": ").concat(o,";")).join("\n"),"\n}")},es=()=>ja(()=>fetch("/fonts/config.json").then(e=>e.json()));let qr=es();const ts=(e,t,n)=>rt(void 0,void 0,void 0,function*(){try{const r=new FontFace(e,t.source,t.descriptors);return On(t)?yield r.load():r.loaded.then(n),document.fonts.add(r),ve[e]={configs:[Object.assign(Object.assign({},t),{font:r})]},!0}catch(r){return E.warn("Failed to load font ".concat(e," with source ").concat(t.source),r),!1}}),ns=(e,t,n)=>rt(void 0,void 0,void 0,function*(){if(t.some(On))return E.error("Unable to load multiple FontFace for the same family ".concat(e)),!1;const r=[];return t.forEach(o=>{const a=new FontFace(e,o.source,o.descriptors);a.loaded.then(n),document.fonts.add(a),r.push(Object.assign(Object.assign({},o),{font:a}))}),ve[e]={configs:r},!0}),rs=(e,t)=>rt(void 0,void 0,void 0,function*(){if(e in ve)return ve[e];let n;if(t)n=t;else try{n=(yield qr())[e]}catch(a){const i=a instanceof Error?" due to "+a.message:"";throw new Error("Unable to load font definition of "+e+i)}const r=()=>{Qi(e,n)};for(const a of n.configs)if(Array.isArray(a)?yield ns(e,a,r):yield ts(e,a,r))break;const o=ve[e];if(o)return o.displayName=n.displayName,o.url=n.url,ve[e]}),os=e=>rt(void 0,void 0,void 0,function*(){const t=ve[e];if(!t)throw new Error("Font family ".concat(e," is not loaded"));return(yield Promise.all(t.configs.filter(r=>{const o=r.font.status==="loaded";return o||E.warn("Font family ".concat(e," is not loaded completely. Some FontFaceRules may be missing")),o}).map(r=>rt(void 0,void 0,void 0,function*(){if(On(r))return Qn(e,r);const o=Zi(r),a=yield fetch(o),i=yield Pa(yield a.blob());return Qn(e,Object.assign(Object.assign({},r),{source:"url('".concat(i,"')")}))})))).join("\n\n")}),We={getAllFonts:qr,getLoadedFonts:qi,loadFont:rs,getFontCSS:os,onRemoteFontLoaded:Xi},as=()=>{if(F.getEnvironment()!=="PRD"||!F.isRMT())if(document.querySelector('meta[name="robots"]'))E.info("Noindex meta tag already presents.");else{E.info("Injecting noindex meta tag as this app is not PRD RMT.");const e=document.createElement("meta");e.name="robots",e.content="noindex",document.head.appendChild(e)}},is={injectNoindexRule:as};var Qr=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let Xr=!1;const ss=()=>Qr(void 0,void 0,void 0,function*(){yield F.loadWithTimeout(),E.setup(F.getComponent()),is.injectNoindexRule(),Z.isAnalyticsQADone()?Z.isAllowAnalytics()&&(E.info("User has previously allowed GA"),yt.init()):X.isStandaloneWindow()&&!F.isRMT()&&(E.warn("App is opened in standalone window but analytics Q&A is not finished. GA will be init by default."),yt.init()),Xr=!0}),ls=()=>Qr(void 0,void 0,void 0,function*(){let e=0;for(;e<=10&&!Xr;)yield Nr(1e3),e+=1}),R={ready:ls,getAppName:F.getComponent,getAppVersion:F.getVersion,getEnv:F.getEnvironment,getInstance:F.getInstance,event:yt.customEvent,isStandaloneWindow:X.isStandaloneWindow,injectUITools:X.injectUITools,openApp:X.openApp,onAppOpen:X.onAppOpen,closeApp:X.closeApp,onAppClose:X.onAppClose,updateAppMetadata:X.updateAppMetadata,onAppMetadataUpdate:X.onAppMetadataUpdate,updateUrl:X.updateUrl,onUrlUpdate:X.onUrlUpdate,toggleNavMenu:X.toggleNavMenu,postEvent:I.postEvent,onMessage:I.onMessage,setLanguage:Z.setLanguage,getLanguage:Z.getLanguage,onLanguageChange:Z.onLanguageChange,setColourMode:Z.setColourMode,getColourMode:Z.getColourMode,onColourModeChange:Z.onColourModeChange,isAnalyticsQADone:Z.isAnalyticsQADone,isAllowAnalytics:Z.isAllowAnalytics,allowAnalytics:Z.allowAnalytics,storage:{on:Le.on,get:Le.get,getAll:Le.getAll,set:Le.set,remove:Le.remove,clear:Le.clear},getMsSinceStartUp:vi.getMsSinceStartUp,I18nBuilder:Ji,getI18nInstance:Ki,getAllFonts:We.getAllFonts,getLoadedFonts:We.getLoadedFonts,loadFont:We.loadFont,getFontCSS:We.getFontCSS,onRemoteFontLoaded:We.onRemoteFontLoaded};ss().then();window.rmgRuntime=R;const _f=E.logger;var ct={},Xn;function cs(){if(Xn)return ct;Xn=1;var e=ma();return ct.createRoot=e.createRoot,ct.hydrateRoot=e.hydrateRoot,ct}var us=cs();const ds="操作",hs="应用程序",fs="黑",ps="取消",gs="城市",ms="组件",vs="确定",ys="继续",bs="复制",ws="编辑",xs="语言/Language",Ss="理由",Os="名称",_s="下一步",Cs="打开",Rs="调色板",As="上一步",Es="删除",Ps="重置",js="设置",Ns="提交",Ls="翻译",Ms="上传",Ts="白",Is={Action:ds,Apps:hs,"Back to list":"返回列表","Background colour":"背景色",Black:fs,Cancel:ps,City:gs,Components:ms,"Configuration file":"配置文件",Confirm:vs,Continue:ys,"Country/Region":"国家/地区",Copy:bs,Edit:ws,"Foreground colour":"前景色","Go back":"返回",Language:xs,Justification:Ss,Name:Os,Next:_s,Open:Cs,Palette:Rs,"Please select...":"请选择...",Previous:As,"Rail Map Generator":"铁路线路图生成器","Rail Map Painter":"地铁线路图绘制器","Rail Map Toolkit":"线路图工具包",Remove:Es,Reset:Ps,"RMG Templates":"RMG 模板","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 设计师","Seed Project":"种子项目",Settings:js,Submit:Ns,Translate:Ls,Upload:Ms,White:Ts},$s="動作",Ds="應用程式",ks="黑",zs="取消",Fs="城市",Bs="元件",Hs="確定",Vs="繼續",Us="複製",Gs="編輯",Ws="語言/Language",Ks="理由",Ys="名稱",Js="下一步",qs="開啟",Qs="調色盤",Xs="上一步",Zs="移除",el="重設",tl="設定",nl="提交",rl="翻譯",ol="上載",al="白",il={Action:$s,Apps:Ds,"Back to list":"返回列表","Background colour":"背景色",Black:ks,Cancel:zs,City:Fs,Components:Bs,"Configuration file":"設定檔",Confirm:Hs,Continue:Vs,Copy:Us,"Country/Region":"國家/地區",Edit:Gs,"Foreground colour":"前景色","Go back":"返回",Language:Ws,Justification:Ks,Name:Ys,Next:Js,Open:qs,Palette:Qs,"Please select...":"請選擇...",Previous:Xs,"Rail Map Generator":"鐵路路綫圖產生器","Rail Map Painter":"地鐵路綫圖繪製器","Rail Map Toolkit":"路綫圖工具組",Remove:Zs,Reset:el,"RMG Templates":"RMG 範本","RMP Gallery":"RMP 畫廊","RMP Designer":"RMP 設計師","Seed Project":"種子項目",Settings:tl,Submit:nl,Translate:rl,Upload:ol,White:al},sl="言語/Language",ll="調色板",cl="削除",ul={Language:sl,Palette:ll,"Rail Map Generator":"鉄道路線図ジェネレータ","Rail Map Painter":"鉄道路線図画家","Rail Map Toolkit":"路線図ツールキット",Remove:cl,"RMG Templates":"RMG テンプレート","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 図案家"},dl="조작",hl="앱",fl="블랙",pl="취소",gl="도시",ml="요소",vl="확인",yl="복사",bl="편집",wl="언어/Language",xl="이유",Sl="명칭",Ol="다음",_l="열기",Cl="팔레트",Rl="나아가",Al="삭제",El="리셋",Pl="설치",jl="제출",Nl="번역",Ll="업로드",Ml="화이트",Tl={Action:dl,Apps:hl,"Back to list":"다시 목록으로","Background colour":"배경색",Black:fl,Cancel:pl,City:gl,Components:ml,"Configuration file":"환경 설정 파일",Confirm:vl,Copy:yl,"Country/Region":"국가/지역",Edit:bl,"Foreground colour":"전경색","Go back":"되돌아가",Language:wl,Justification:xl,Name:Sl,Next:Ol,Open:_l,Palette:Cl,"Please select...":"선택해주세요",Previous:Rl,"Rail Map Generator":"철도 노선도 생성기","Rail Map Painter":"지하철 노선도 그리기","Rail Map Toolkit":"노선도 툴킷",Remove:Al,Reset:El,"RMG Templates":"RMG 템플릿","RMP Gallery":"RMP 갤러리","RMP Designer":"RMP 디자이너","Seed Project":"종자 프로젝트",Settings:Pl,Submit:jl,Translate:Nl,Upload:Ll,White:Ml};var Il={en:{},"zh-Hans":Is,"zh-Hant":il,ja:ul,ko:Tl};const $l={editStyle:"Edit style"},Dl={downloads:"Downloads",configFile:"Configuration file",images:"Images"},kl={invalidType:"Invalid file type! Only file in JSON format is accepted.",unknownError:"Unknown error occurred while parsing the uploaded file! Please try again."},zl={title:"Download images",canvas:"Canvas",transparent:"Transparent background",showBorder:"Display border",scale:"Scale",format:"Format",pleaseSelect:"Please select...",png:"PNG",svg:"SVG (Web use)",downloadOne:"Download current station",downloadAll:"Download all stations"},Fl={main:"Main line",branch:"Branch",external:"External line",addStation:"Add station",editLine:"Edit line section"},Bl={num:"Station code",zhName:"Chinese name",enName:"English name",interchange:"Interchanges",coline:"Tracks sharing"},Hl={header:"Edit style",layout:{title:"Layout",canvasHeight:"Canvas height",destinationWidth:"Destination width",runinWidth:"Running-in width",railmapWidth:"Rail map width",indoorWidth:"Indoor width",verticalPosition:"Vertical position",branchSpacing:"Branch spacing",branchSpacingLoop:"Vertical padding",padding:"Rail map padding",directionGzX:"Direction horizontal position",directionGzY:"Direction vertical position"},design:{title:"Design",zhLineName:"Chinese line name",enLineName:"English line name",lineNum:"Line code",direction:"Train direction at this station",left:"Left",right:"Right",platformNum:"Platform number",psdNum:"Platform door number",panelType:"Panel type",gz1:"Line 1",gz28:"Line 2/8 (Panasonic)",gz2otis:"Line 2/8 (Otis)",gz3:"Line 3",gz1421:"2017 style",gz6:"2010 style",gzgf:"2016 style",gz4:"Line 4",gz5:"Line 5",sh:"Default",sh2020:"2020 (Beta)",nameDisplay:"Display station names",alternatively:"Alternatively",onOneSide:"Same side",flip:"Flip position",firstStationNameDisplay:"Display the first station's name at",upwards:"Top",downward:"Bottom",legacyDestination:"Display line name on direction sign",overrideTerminal:"Override terminal",terminalZhName:"Terminal Chinese name",terminalEnName:"Terminal English name"},note:{title:"Notes",add:"Add note",zhNote:"Chinese note",enNote:"English note",positionX:"Horizontal position",positionY:"Vertical position",border:"Display border",remove:"Remove note"},loop:{title:"Loop",isLoop:"Treat as loop line",isBank:"Display loop as a parallelogram in Rail map",leftRightFactor:"Left and right factor",bottomFactor:"Bottom factor"}},Vl={header:"Edit line section",branch:{title:"Branch"},coline:{title:"Tracks sharing",add:"Add sharing track"},action:{title:"Actions",autoNum:"Auto numbering stations",reverse:"Rotate entire line",flip:"Flip entire line"}},Ul={info:{title:"Station info",num:"Station code",zhName:"Chinese name",enName:"English name",zhSecondary:"Chinese secondary",enSecondary:"English secondary"},interchange:{title:"Interchanges",within:"Within-station interchange",outStation:"Out-of-station interchange",outSystem:"Out-of-system interchange",addGroup:"Add interchange group",noInterchanges:"No interchanges",zhName:"Chinese name",enName:"English name",add:"Add interchange",copy:"Copy interchange",remove:"Remove interchange"},branch:{type:"Type",through:"Through",nonThrough:"Non-through",firstStation:"First station",position:"Position",upper:"Upper",lower:"Lower"},more:{title:"More settings",service:"Train services",local:"Local",express:"Express",direct:"Direct",facility:"Nearby facility",none:"None",pivot:"Pivot station on loop line",oneLine:"Display Chinese and English in one line",intPadding:"Padding between station name and interchange box",intPaddingApplyGlobal:"Apply current padding to all stations",apply:"Apply",characterSpacing:"Station Name Letter Spacing"},footer:{current:"Set as current",remove:"Remove"}},Gl={title:"Add station",where:"Target location",main:"Main line",branch:"Branch",external:"External line",preposition:"Preposition",before:"Before",after:"After",pivot:"Pivot station",pleaseSelect:"Please select...",error:"Failed to add station. Please check your selections and try again."},Wl={title:"Create a new branch or external line",where:"Target location",new:"Create a new branch",ext:"Create an external line",from:"Between",to:"and",position:"Position",upper:"Upper",lower:"Lower"},Kl={title:"Station auto numbering",where:"Target location",main:"Main line",branch:"Branch",external:"External line",from:"Starting index",maxLength:"Number of digits",sort:"Sorting",asc:"Ascending",desc:"Descending"},Yl={all:"All",destination:"Destination",runin:"Running-in",railmap:"Rail map",indoor:"Indoor",platform:"Platform Num"},Jl={mtr:"MTR",gzmtr:"Guangzhou Metro",shmetro:"Shanghai Metro",shsubrwy:"Shanghai Suburban Railway"},ql={HeaderActions:$l,DownloadActions:Dl,OpenActions:kl,DownloadModal:zl,GridTabs:Fl,StationAgGrid:Bl,StyleSidePanel:Hl,BranchSidePanel:Vl,StationSidePanel:Ul,AddStationModal:Gl,NewBranchModal:Wl,AutoNumModal:Kl,CanvasType:Yl,RmgStyle:Jl},Ql={editStyle:"风格化设置"},Xl={downloads:"下载",configFile:"配置文件",images:"图像"},Zl={invalidType:"无效的文件种类!只接受JSON种类的文件。",unknownError:"导入上传的文件时发生错误!请重试。"},ec={title:"下载图像",canvas:"画面",transparent:"透明背景",showBorder:"显示边框",scale:"缩放级别",format:"文件种类",pleaseSelect:"请选择...",png:"PNG图像",svg:"SVG图像(网页用)",downloadOne:"下载当前车站",downloadAll:"下载所有车站"},tc={main:"主线",branch:"支线",external:"外部路线",addStation:"添加车站",editLine:"路线段设置"},nc={num:"车站编号",interchange:"换乘",coline:"共线"},rc={header:"风格化设置",layout:{title:"布局",canvasHeight:"画面高度",destinationWidth:"终点站牌宽度",runinWidth:"当前站名牌宽度",railmapWidth:"站台门路线图宽度",indoorWidth:"车內路线图宽度",verticalPosition:"垂直方向位置",branchSpacing:"支线间距",branchSpacingLoop:"垂直边距",padding:"路线图边距",directionGzX:"终点站水平方向位置",directionGzY:"终点站垂直方向位置"},design:{title:"设计",zhLineName:"路线中文名称",enLineName:"路线英文名称",lineNum:"路线编号",direction:"当前车站行车方向",left:"向左",right:"向右",platformNum:"站台编号",psdNum:"站台门编号",panelType:"站台门盖板样式",gz1:"1号线",gz28:"2/8号线(松下)",gz2otis:"2/8号线(奥的斯)",gz3:"3号线",gz1421:"2017样式",gz6:"2010样式",gzgf:"2016样式",gz4:"4号线",gz5:"5号线",sh:"默认",sh2020:"2020样式(预览版)",nameDisplay:"显示车站名称",alternatively:"交错显示",onOneSide:"同一侧",flip:"翻转位置",firstStationNameDisplay:"显示第一个站点的名称",upwards:"顶部",downward:"底部",legacyDestination:"在终点站牌显示路线名称",overrideTerminal:"重写终点站",terminalZhName:"终点站中文名称",terminalEnName:"终点站英文名称"},note:{title:"备注",add:"添加备注",zhNote:"中文备注",enNote:"英文备注",positionX:"水平方向位置",positionY:"垂直方向位置",border:"显示边框",remove:"删除备注"},loop:{title:"环线",isLoop:"视为环线",isBank:"在站台门路线图中以平行四边形显示环线",leftRightFactor:"左右参数",bottomFactor:"底部参数"}},oc={header:"路线段设置",branch:{title:"支线"},coline:{title:"共线",add:"添加共线"},action:{title:"操作",autoNum:"车站自动编号",reverse:"旋转整条路线",flip:"翻转整条路线"}},ac={info:{title:"车站资讯",num:"车站编号",zhSecondary:"中文第二名称",enSecondary:"英文第二名称"},interchange:{title:"换乘",within:"同站换乘",outStation:"出站换乘",outSystem:"系统外换乘",addGroup:"添加换乘组合",noInterchanges:"非换乘站",add:"添加换乘",copy:"复制换乘",remove:"删除换乘"},branch:{type:"类型",through:"贯通(无需换乘)",nonThrough:"非贯通(需换乘)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多设置",service:"列车类别",local:"普通车",express:"快车",direct:"直达车",facility:"附近设施",pivot:"环线上的枢纽车站",oneLine:"在一行内展示中英文站名",intPadding:"车站名与换乘线路间的间距",intPaddingApplyGlobal:"将当前的间距应用到所有车站上",apply:"应用",characterSpacing:"车站名文字间距"},footer:{current:"设置为当前车站",remove:"删除"}},ic={title:"添加车站",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",preposition:"相对位置",before:"先于",after:"后于",pivot:"定位车站",pleaseSelect:"请选择...",error:"添加车站失败,请检查您的选项后重试。"},sc={title:"添加支线或外部路线",where:"目标位置",new:"添加一条支线",ext:"添加一条外部路线",from:"介于",to:"和",position:"位置",upper:"上方",lower:"下方"},lc={title:"车站自动编号",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",from:"起始编号",maxLength:"编号位数",sort:"排序方式",asc:"升序",desc:"降序"},cc="机场",uc="逆时针",dc="支线",hc="来自",fc="顺时针",pc="关闭",gc="颜色",mc="导入",vc="管理",yc="否",bc="无",wc="项目",xc="重新加载",Sc="风格",Oc="未知",_c="查看",Cc="访问",Rc="是",Ac={all:"全部",destination:"终点站站牌",runin:"当前站名牌",railmap:"站台门路线图",indoor:"车内路线图",platform:"站台编号"},Ec={mtr:"港铁",gzmtr:"广州地铁",shmetro:"上海地铁",shsubrwy:"上海市域铁路"},Pc={HeaderActions:Ql,DownloadActions:Xl,OpenActions:Zl,DownloadModal:ec,GridTabs:tc,StationAgGrid:nc,StyleSidePanel:rc,BranchSidePanel:oc,StationSidePanel:ac,AddStationModal:ic,NewBranchModal:sc,AutoNumModal:lc,Airport:cc,"All projects":"所有项目",Anticlockwise:uc,"Are you sure to remove station? You cannot undo this action.":"您确定刪除此车站吗?您不能撤销此操作。","Blank project":"空白项目","Branch left end":"支线左端","Branch on the left":"左侧支线","Branch on the right":"右侧支线","Branch right end":"支线右端","Branch spacing":"支线间距",Branches:dc,by:hc,"Canvas scale":"画面缩放级别","Chinese name":"中文名称","Circle line":"环线",Clockwise:fc,Close:pc,Colour:gc,"Connect to main line":"连接至主线","day ago":"天前","days ago":"天前","Disconnect from main line":"从主线断开","Disneyland resort":"迪士尼","Don't show me again":"不再显示","Edit project info":"编辑项目信息","Empty template":"空白模板","English name":"英文名称","Help and support":"帮助和支持","High speed rail":"高速铁路","hour ago":"小时前","hours ago":"小时前",Import:mc,"Import project":"导入项目","Just now":"刚刚","Last modified":"上次编辑","LEFT END":"线路左端","Loop direction":"环线方向","Loop line":"环线",Manage:vc,"Manage projects":"管理项目","minute ago":"分钟前","minutes ago":"分钟前","National rail":"国家铁路","Ngong Ping 360":"昂坪360",No:yc,"No branches found":"未找到支线",None:bc,"now and enjoy an even better rail map design experience!":",享受更好的线路图设计体验!","Open selected":"打开选中项目","Open template":"打开模板","Paid area":"付费区换乘",Project:wc,"Project selected is invalid or corrupted.":"选中的项目无效或已损坏。","Project Selector":"项目选择器","Project name":"项目名称",Reload:xc,"Remove project":"删除项目","Remove station":"删除车站","RIGHT END":"线路右端","Saved projects":"保存的项目","Secondary names":"第二名称","Select canvas":"选择画面","Set as midpoint":"设置为半环站","Span digits over rows":"跨行显示数字",Style:Sc,"Station Chinese name":"车站中文名称","Station English name":"车站英文名称","Station name":"车站名称","Target station":"目标车站","Terms and conditions":"条款及细则","Text on the left":"换乘文字靠左","Text on the right":"换乘文字靠右","Try out":"马上试用","Unable to connect to main line.":"无法连接至主线。","Unable to disconnect from main line.":"无法从主线断开。","Unable to remove this station.":"无法删除此车站。",Unknown:Oc,View:_c,Visit:Cc,"Visit GitHub":"访问GitHub",Yes:Rc,"You have reached the maximum number of projects.":"您已到达项目数量上限。",CanvasType:Ac,RmgStyle:Ec},jc={editStyle:"風格化設定"},Nc={downloads:"下載",configFile:"設定檔",images:"圖像"},Lc={invalidType:"無效的檔案種類!只接受JSON種類的檔案。",unknownError:"讀取上載的檔案時發生錯誤!請重試。"},Mc={title:"下載圖像",canvas:"畫面",transparent:"透明背景",showBorder:"顯示邊綫",scale:"縮放比例",format:"檔案種類",pleaseSelect:"請選擇...",png:"PNG影像",svg:"SVG影像(網頁用)",downloadOne:"下載當前車站",downloadAll:"下載所有車站"},Tc={main:"主綫",branch:"支綫",external:"外部路綫",addStation:"新增車站",editLine:"路綫段設定"},Ic={num:"車站編碼",interchange:"轉車",coline:"共綫"},$c={header:"風格化設定",layout:{title:"佈局",canvasHeight:"畫面高度",destinationWidth:"終點站牌闊度",runinWidth:"當前站名牌闊度",railmapWidth:"幕門路綫圖闊度",indoorWidth:"車內路綫圖闊度",verticalPosition:"垂直方向位置",branchSpacing:"支綫間距",branchSpacingLoop:"垂直邊距",padding:"路綫圖邊距",directionGzX:"終點站水平方向位置",directionGzY:"終點站垂直方向位置"},design:{title:"設計",zhLineName:"路綫中文名稱",enLineName:"路綫英文名稱",lineNum:"路綫編碼",direction:"當前車站行車方向",left:"向左",right:"向右",platformNum:"月台編號",psdNum:"幕門編號",panelType:"資訊板樣式",gz1:"1號線",gz28:"2/8號線(松下)",gz2otis:"2/8號線(奧的斯)",gz3:"3號線",gz1421:"2017樣式",gz6:"2010樣式",gzgf:"2016樣式",gz4:"4號線",gz5:"5號線",sh:"預設",sh2020:"2020樣式(預覽版)",nameDisplay:"顯示車站名稱",alternatively:"交錯顯示",onOneSide:"同一側",flip:"反轉位置",firstStationNameDisplay:"顯示第一個車站的名稱",upwards:"頂部",downward:"底部",legacyDestination:"於終點站牌顯示路綫名稱",overrideTerminal:"覆寫終點站",terminalZhName:"終點站中文名稱",terminalEnName:"終點站英文名稱"},note:{title:"備註",add:"新增備註",zhNote:"中文備註",enNote:"英文備註",positionX:"水平方向位置",positionY:"垂直方向位置",border:"顯示邊線",remove:"移除備註"},loop:{title:"環綫",isLoop:"視作環綫",isBank:"在幕門路綫圖中以平行四邊形顯示環綫",leftRightFactor:"左右參數",bottomFactor:"底部參數"}},Dc={header:"路綫段設定",branch:{title:"支綫"},coline:{title:"共綫",add:"新增共綫"},action:{title:"動作",autoNum:"車站自動編碼",reverse:"旋轉整條路綫",flip:"反轉整條路綫"}},kc={info:{title:"車站資訊",num:"車站編碼",zhSecondary:"中文第二名稱",enSecondary:"英文第二名稱"},interchange:{title:"轉車",within:"同站轉車",outStation:"出站轉車",outSystem:"系統外轉車",addGroup:"新增轉車組合",noInterchanges:"非轉車站",add:"新增轉綫",copy:"製作轉綫副本",remove:"移除轉綫"},branch:{type:"種類",through:"直通(無需轉車)",nonThrough:"非直通(需轉車)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多設定",service:"列車類別",local:"普通",express:"快速",direct:"直達",facility:"周邊設施",none:"無",pivot:"環綫上的樞紐車站",oneLine:"在一行內展示中英文站名",intPadding:"車站名與換乘線路間的間距",intPaddingApplyGlobal:"將當前的間距應用到所有車站上",apply:"應用",characterSpacing:"車站名文字間距"},footer:{current:"設定為當前車站",remove:"移除"}},zc={title:"新增車站",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",preposition:"相對位置",before:"先於",after:"後於",pivot:"定位車站",pleaseSelect:"請選擇...",error:"新增車站失敗,請檢查你的選擇後重試。"},Fc={title:"新增支綫或外部路綫",where:"目標位置",new:"新增一條支綫",ext:"新增一條外部路綫",from:"介乎於",to:"與",position:"位置",upper:"上方",lower:"下方"},Bc={title:"車站自動編碼",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",from:"起始編碼",maxLength:"編碼位數",sort:"排序方式",asc:"升序",desc:"降序"},Hc="機場",Vc="反時針",Uc="支綫",Gc="來自",Wc="順時針",Kc="關閉",Yc="顏色",Jc="匯入",qc="管理",Qc="否",Xc="無",Zc="專案",eu="重新載入",tu="風格",nu="未知",ru="檢視",ou="造訪",au="是",iu={all:"全部",destination:"終點站牌",runin:"當前站名牌",railmap:"幕門路綫圖",indoor:"車內路綫圖",platform:"站台編號"},su={mtr:"港鐵",gzmtr:"廣州地鐵",shmetro:"上海地鐵",shsubrwy:"上海市域鐵路"},lu={HeaderActions:jc,DownloadActions:Nc,OpenActions:Lc,DownloadModal:Mc,GridTabs:Tc,StationAgGrid:Ic,StyleSidePanel:$c,BranchSidePanel:Dc,StationSidePanel:kc,AddStationModal:zc,NewBranchModal:Fc,AutoNumModal:Bc,Airport:Hc,"All projects":"所有專案",Anticlockwise:Vc,"Are you sure to remove station? You cannot undo this action.":"確定移除該車站嗎?此動作無法還原。","Blank project":"空白專案","Branch left end":"支綫左端","Branch on the left":"左側支綫","Branch on the right":"右側支綫","Branch right end":"支綫右端","Branch spacing":"支綫間距",Branches:Uc,by:Gc,"Canvas scale":"畫面縮放比例","Chinese name":"中文名稱","Circle line":"環綫",Clockwise:Wc,Close:Kc,Colour:Yc,"Connect to main line":"連接至主綫","day ago":"日前","days ago":"日前","Disconnect from main line":"从主綫斷開","Disneyland resort":"迪士尼","Don't show me again":"不再顯示","Edit project info":"修改專案資訊","Empty template":"空白範本","English name":"英文名稱","Help and support":"幫助及支援","High speed rail":"高速鐵路","hour ago":"小时前","hours ago":"小时前",Import:Jc,"Import project":"匯入專案","Just now":"剛才","Last modified":"上次修改","LEFT END":"路綫左端","Loop direction":"環綫方向","Loop line":"環綫",Manage:qc,"Manage projects":"管理專案","minute ago":"分鐘前","minutes ago":"分鐘前","National rail":"國家鐵路","Ngong Ping 360":"昂坪360",No:Qc,"No branches found":"未找到支綫",None:Xc,"now and enjoy an even better rail map design experience!":",享受更好的路綫圖設計體驗!","Open selected":"開啟所選專案","Open template":"開啟範本","Paid area":"付費區轉車",Project:Zc,"Project selected is invalid or corrupted.":"所選專案無效或者已損壞。","Project Selector":"專案選擇器","Project name":"專案名稱",Reload:eu,"Remove project":"移除專案","Remove station":"移除車站","RIGHT END":"路綫右端","Saved projects":"儲存的專案","Secondary names":"第二名稱","Select canvas":"選擇畫面","Set as midpoint":"設定為半環站","Span digits over rows":"跨行顯示數字",Style:tu,"Station Chinese name":"車站中文名稱","Station English name":"車站英文名稱","Station name":"車站名稱","Target station":"目標車站","Terms and conditions":"條款及細則","Text on the left":"轉乘文字置左","Text on the right":"轉乘文字置右","Try out":"立即試用","Unable to connect to main line.":"無法連接至主綫。","Unable to disconnect from main line.":"無法從主綫斷開。","Unable to remove this station.":"無法移除該車站。",Unknown:nu,View:ru,Visit:ou,"Visit GitHub":"造訪GitHub",Yes:au,"You have reached the maximum number of projects.":"你已到達專案數量上限。",CanvasType:iu,RmgStyle:su},cu={},uu={editStyle:"스타일 설정"},du={downloads:"다운로드",configFile:"설정 파일",images:"이미지"},hu={invalidType:"잘못된 파일 종류! JSON 종류의 파일만 받습니다.",unknownError:"업로드한 파일을 가져오는 중 오류가 발생했습니다! 다시 시도해 주세요."},fu={title:"이미지 다운로드",canvas:"화면",transparent:"투명 배경",showBorder:"테두리 보이기",scale:"확대/ 축소 수준",format:"파일 종류",pleaseSelect:"선택해주세요",png:"PNG 이미지",svg:"SVG 이미지(웹용)",downloadOne:"현재 역 다운로드",downloadAll:"모든 역 다운로드"},pu={main:"주노선",branch:"지노선",external:"외부 노선",addStation:"역 추가",editLine:"노선 구간 설정"},gu={num:"역 번호",interchange:"환승",coline:"공용"},mu={header:"스타일 설정",layout:{title:"구성",canvasHeight:"화면 고도",destinationWidth:"터미널 정거장 너비",runinWidth:"현재 정거장 너비",railmapWidth:"승강장문 노선도 폭",indoorWidth:"차내 노선도 폭",verticalPosition:"수직 방향 위치",branchSpacing:"지선 간격",branchSpacingLoop:"수직 여백",padding:"로드맵 여백",directionGzX:"터미널 수평 방향 위치",directionGzY:"터미널 수직 방향 위치"},design:{title:"디자인",zhLineName:"노선 한자 명칭",enLineName:"노선 영문 명칭",lineNum:"노선 번호",direction:"주행 방향",left:"왼쪽으로",right:"오른쪽으로",platformNum:"플랫폼 번호",psdNum:"플랫폼 도어 번호",panelType:"플랫폼 도어 패널 스타일",gz1:"1호선",gz28:"2/8호선(파나소닉)",gz2otis:"2/8호선(오디스)",gz3:"3호선",gz1421:"2017년 모양",gz6:"2010년 모양",gzgf:"2016년 모양",gz4:"4호선",gz5:"5호선",sh:"묵인",sh2020:"2020모양(사전 검토)",nameDisplay:"역 명칭 보이기",alternatively:"교차 표시",onOneSide:"같은 쪽",flip:"위치를 뒤집다",firstStationNameDisplay:"첫 번째 역 이름 표시 위치",upwards:"위쪽",downward:"아래쪽",legacyDestination:"터미널에 경로 명칭 표시",overrideTerminal:"끝점 다시 쓰기",terminalZhName:"터미널 한자 명칭",terminalEnName:"터미널 영문 명칭"},note:{title:"설명",add:"설명 추가",zhNote:"한자 설명",enNote:"영문 설명",positionX:"수평 방향 위치",positionY:"수직 방향 위치",border:"테두리 보이기",remove:"설명 삭제"},loop:{title:"환상선",isLoop:"순환선으로 간주하기",isBank:"승강장 도면에 평행사변형으로 순환선을 표시하기",leftRightFactor:"좌우 파라미터",bottomFactor:"바닥 인자"}},vu={header:"노선 구간 설정",branch:{title:"지선"},coline:{title:"공선",add:"공선 추가"},action:{title:"조작",autoNum:"역 자동 번호 매기기",reverse:"전체 노선을 회전하기",flip:"전체 노선을 뒤집기"}},yu={info:{title:"역 정보",num:"역 번호",zhSecondary:"한자 제2명칭",enSecondary:"영문 제2명칭"},interchange:{title:"환승",within:"같은 역에서 환승",outStation:"역을 나가 환승",outSystem:"시스템외환승",addGroup:"환승 조합 추가",noInterchanges:"비환승역",add:"환승 추가",copy:"환승 복사",remove:"환승 삭제"},branch:{type:"유형",through:"관통(환승 불필요)",nonThrough:"비관통(환승 필요)",firstStation:"첫 번째 역",position:"위치",upper:"위쪽",lower:"아래쪽"},more:{title:"자세한 설정",service:"열차 종류",local:"서행",express:"급행",direct:"특급",facility:"인근 시설",pivot:"순환선의 허브 역",oneLine:"한 줄 안에 한자와 영문의 역명을 전시하기",intPadding:"역명과 환승 노선 사이의 간격",intPaddingApplyGlobal:"현재 간격을 모든 역에 적용",apply:"응용"},footer:{current:"현재 역으로 설정",remove:"삭제"}},bu={title:"역 추가",where:"목표 위치",main:"주선로",branch:"지선",external:"외부 노선",preposition:"상대 위치",before:"전에",after:"후에",pivot:"위치추적역",pleaseSelect:"선택해주세요",error:"스테이션 추가에 실패하였습니다, 옵션을 확인하신 후 다시 시도하십시오."},wu={title:"지선 또는 외부 노선 추가",where:"목표 위치",new:"지선을 첨가",ext:"외부 노선 추가",from:"부터",to:"까지",position:"위치",upper:"위쪽",lower:"아래쪽"},xu={title:"역 자동 번호 매기기",where:"목표 위치",main:"주선",branch:"지선",external:"외부 노선",from:"시작 번호",maxLength:"번호 자릿수",sort:"정렬 방식",asc:"오름차순",desc:"내림차순"},Su="공항",Ou="지선",_u="에서 오다",Cu="색깔",Ru="무",Au="프로젝트",Eu="스타일",Pu="미지",ju="찾아 보기",Nu="방문",Lu={all:"모두",destination:"터미널 번호판",runin:"현재 역 번호판",railmap:"플랫폼 도어 노선도",indoor:"차내 노선도"},Mu={mtr:"홍콩 지하철",gzmtr:"광저우 지하철",shmetro:"상해 지하철"},Tu={HeaderActions:uu,DownloadActions:du,OpenActions:hu,DownloadModal:fu,GridTabs:pu,StationAgGrid:gu,StyleSidePanel:mu,BranchSidePanel:vu,StationSidePanel:yu,AddStationModal:bu,NewBranchModal:wu,AutoNumModal:xu,Airport:Su,"All projects":"모든 프로젝트","Are you sure to remove station? You cannot undo this action.":"이 역을 삭제하시겠습니까? 이 작업을 취소할 수 없습니다.","Blank project":"백지 프로젝트","Branch left end":"지선 좌단","Branch on the left":"좌측 지선","Branch on the right":"우측 지선","Branch right end":"지선 우단","Branch spacing":"지선 간격",Branches:Ou,by:_u,"Canvas scale":"화면 크기 조정 단계","Chinese name":"한자 명칭",Colour:Cu,"Connect to main line":"메인 라인에 연결","day ago":"일 전","days ago":"일 전","Disconnect from main line":"본선에서 끊기다","Disneyland resort":"디즈니","Edit project info":"프로젝트 정보 편집","Empty template":"공백 틀","English name":"영문 명칭","Help and support":"도움과 지지","High speed rail":"고속 철도","hour ago":"시간 전","hours ago":"시간 전","Import project":"프로젝트 가져오기","Just now":"방금","Last modified":"마지막 편집","minute ago":"분 전에","minutes ago":"분 전에","National rail":"국가 철도","No branches found":"지선을 찾지 못했다.",None:Ru,"Open selected":"선택한 프로젝트 열기","Open template":"틀 열기","Paid area":"유료환승",Project:Au,"Project selected is invalid or corrupted.":"선택한 항목이 잘못되었거나 손상되었습니다.","Project name":"프로젝트 명칭","Remove project":"프로젝트 삭제","Remove station":"역 삭제","Saved projects":"저장된 프로젝트","Select canvas":"화면 선택",Style:Eu,"Station Chinese name":"역 한자 명칭","Station English name":"역 영문 명칭","Station name":"역 명칭","Target station":"목표 역","Terms and conditions":"조관 및 세칙","Text on the left":"글로 갈아타면 왼쪽으로 붙다","Text on the right":"글로 갈아타면 오른쪽으로 붙다","Unable to connect to main line.":"메인 라인에 연결할 수 없습니다.","Unable to disconnect from main line.":"메인라인에서 연결이 되지 않습니다.","Unable to remove this station.":"이 역은 삭제할 수 없습니다.",Unknown:Pu,View:ju,Visit:Nu,"Visit GitHub":"GitHub 방문하기","You have reached the maximum number of projects.":"프로젝트 수량 상한에 도달했습니다.",CanvasType:Lu,RmgStyle:Mu},Iu=new R.I18nBuilder().use(va).withAppName("Rail Map Generator").withLng(R.getLanguage()).withDefaultResource(Il).withResource("en",ql).withResource("zh-Hans",Pc).withResource("zh-Hant",lu).withResource("ja",cu).withResource("ko",Tu).build(),$u="modulepreload",Du=function(e){return"/rmg/"+e},Zn={},Zr=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),s=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));o=Promise.allSettled(n.map(l=>{if(l=Du(l),l in Zn)return;Zn[l]=!0;const u=l.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector('link[href="'.concat(l,'"]').concat(d)))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":$u,u||(f.as="script"),f.crossOrigin="",f.href=l,s&&f.setAttribute("nonce",s),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error("Unable to preload CSS for ".concat(l))))})}))}function a(i){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=i,window.dispatchEvent(s),!s.defaultPrevented)throw i}return o.then(i=>{for(const s of i||[])s.status==="rejected"&&a(s.reason);return t().catch(a)})};var eo=function(){if(typeof Map<"u")return Map;function e(t,n){var r=-1;return t.some(function(o,a){return o[0]===n?(r=a,!0):!1}),r}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(n){var r=e(this.__entries__,n),o=this.__entries__[r];return o&&o[1]},t.prototype.set=function(n,r){var o=e(this.__entries__,n);~o?this.__entries__[o][1]=r:this.__entries__.push([n,r])},t.prototype.delete=function(n){var r=this.__entries__,o=e(r,n);~o&&r.splice(o,1)},t.prototype.has=function(n){return!!~e(this.__entries__,n)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(n,r){r===void 0&&(r=null);for(var o=0,a=this.__entries__;o0},e.prototype.connect_=function(){!Xt||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Vu?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Xt||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var n=t.propertyName,r=n===void 0?"":n,o=Hu.some(function(a){return!!~r.indexOf(a)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),to=function(e,t){for(var n=0,r=Object.keys(t);n"u"||!(Element instanceof Object))){if(!(t instanceof ke(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(t)||(n.set(t,new Xu(t)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(t instanceof ke(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(t)&&(n.delete(t),n.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(n){n.isActive()&&t.activeObservations_.push(n)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,n=this.activeObservations_.map(function(r){return new Zu(r.target,r.broadcastRect())});this.callback_.call(t,n,t),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),ro=typeof WeakMap<"u"?new WeakMap:new eo,oo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=Uu.getInstance(),r=new ed(t,n,this);ro.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){oo.prototype[e]=function(){var t;return(t=ro.get(this))[e].apply(t,arguments)}});var td=function(){return typeof Ot.ResizeObserver<"u"?Ot.ResizeObserver:oo}();window.ResizeObserver||(window.ResizeObserver=td);var Zt=function(){return Zt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n`";if(!r){const a=new Error(o);throw a.name="ContextError",(n=Error.captureStackTrace)==null||n.call(Error,a,t),a}return r}return[e.Provider,t,e]}function ad(e){return e==null?void 0:e[0]}function Bt(e){return e!=null&&e.length?e[e.length-1]:void 0}function ao(e,t,n=1,r=!0){if(t===0)return-1;let o=e+n;return e===-1&&(o=n>0?0:t-1),r?o=(o%t+t)%t:o=Math.max(0,Math.min(o,t-1)),o}function id(e,t,n=!0){return ao(e,t,-1,n)}function sd(e,t,n=!0){const r=ao(e,t.length,1,n);return t[r]}function ld(e,t,n=!0){const r=id(e,t.length,n);return t[r]}function _n(e){return Array.isArray(e)}function cd(e){return _n(e)&&e.length===0}function Cn(e){return e!==null&&typeof e=="object"&&!_n(e)}function ud(e){return Cn(e)&&Object.keys(e).length===0}function io(e){return _n(e)?cd(e):Cn(e)?ud(e):e==null||e===""}function gt(e){return typeof e>"u"}function so(e){return typeof e<"u"}function dd(e,t){const n={};return t.forEach(r=>{r in e&&(n[r]=e[r])}),n}function Rn(e,t){const n={...e};return t.forEach(r=>{delete n[r]}),n}function hd(e){return typeof e=="function"}function L(e,...t){return hd(e)?e(...t):e}var Et=function(e,t){for(var n,r=g.Children.toArray(e),o=0,a=r;o{var t;return(t=typeof e=="string"||typeof e=="number"?e:e[Object.keys(e)[0]])==null?void 0:t.toString()},fd=(e,t)=>typeof e!="string"||io(t)?e:e.toString().replace(new RegExp(vd(t),"gi"),n=>"".concat(n,"")),pd=e=>lo(e,t=>{var n;return((n=t==null?void 0:t.type)==null?void 0:n.displayName)==="AutoCompleteItem"}).map(t=>{const n=dd(t.props,["value","label","fixed","disabled"]),{getValue:r=An}=t.props,o=r(n.value);return{...so(n.label)?n:{...n,label:o},value:o,originalValue:n.value}}),gd=()=>({bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),md=(e,t,n)=>(t==null?void 0:t.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||(n==null?void 0:n.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||tr(e,t)>=.5||tr(e,n)>=.5;function vd(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const yd=(e,t)=>Et(e,n=>{var r;return((r=n==null?void 0:n.type)==null?void 0:r.displayName)==="AutoCompleteItem"&&n.props.value===(t==null?void 0:t.value)}),bd=(e,t)=>Et(e,n=>{var r;return((r=n==null?void 0:n.type)==null?void 0:r.displayName)==="AutoCompleteItem"&&n.props.value===(t==null?void 0:t.value)}),wd=(e,t)=>so(Et(e,n=>{var r,o;const a=L(((r=n.props)==null?void 0:r.getValue)||An,((o=n.props)==null?void 0:o.value)||{});return t.some(i=>i.value===a)})),xd=(e,t)=>{const n={},r={},{field:o}=e;return o&&Object.keys(o).forEach(a=>{if(a.startsWith("--input")===!1)n[a]=o[a];else{let i=o[a];const s=a.replace("--input-","").replace(/-([a-z])/g,function(l){return l[1].toUpperCase()});i.indexOf(".")!==-1&&(i=i.substring(i.indexOf(".")+1)),r[s]=i}}),{...t&&{...n,...r,_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3},cursor:"text",h:"fit-content"}};function Sd(e){var t;let{prefocusFirstItem:n=!0,closeOnBlur:r=!0,creatable:o,emphasize:a,emptyState:i=!0,defaultEmptyStateProps:s={},freeSolo:l,isReadOnly:u,listAllValuesOnFocus:d,maxSuggestions:f,multiple:h,closeOnSelect:p=!h,defaultValue:m,defaultValues:y=m?[m]:[],onReady:w,defaultIsOpen:b,disableFilter:x,isLoading:$=!1,placement:S="bottom",restoreOnBlurIfEmpty:j=!l,shouldRenderSuggestions:B=()=>!0,submitKeys:P=[],suggestWhenEmpty:de,value:oe,values:Ee=oe?typeof oe=="string"?[oe]:[...oe]:void 0}=e;l=l||(h?!0:e.freeSolo);const{isOpen:N,onClose:ae,onOpen:he}=Io({defaultIsOpen:b}),ie=g.useMemo(()=>L(e.children,{isOpen:N,onClose:ae,onOpen:he}),[e.children,N]),M=g.useMemo(()=>pd(ie),[ie]),H=g.useRef(null),Fe=g.useRef(null),T=g.useRef(null),V=g.useRef(null),[fe,we]=g.useState(!1);let Pe="";h?Pe="":gt(y)?gt(Ee)||(Pe=Ee[0]):Pe=y[0];const[se,Be]=g.useState(Pe!=null?Pe:""),jt=g.useMemo(()=>x?M:M.filter(v=>v.fixed||L(e.filter||md,se,v.value,v.label)||fe).filter((v,_)=>f?v.fixed||_[...jt,...Nn],[jt,Nn]),[le,Nt]=$o({defaultValue:y.map(v=>v==null?void 0:v.toString()),value:Ee,onChange:v=>{const _=D.find(A=>A.value===v[0]);if(!_)return;const k=v.map(A=>D.find(te=>te.value===A));L(e.onChange,h?v:v[0],h?k:_)}});g.useEffect(()=>{D.length===0&&!i&&N&&ae()},[D.length,i,N]);const[je,pe]=g.useState(n?(t=M[0])==null?void 0:t.value:null),So=e.maxSelections||le.length+1,Lt=D.findIndex(v=>v.value===je),Ln=sd(Lt,D,!!e.rollNavigation),Mn=ld(Lt,D,!!e.rollNavigation),xe=ad(D),Tn=Bt(D),In=!D.some(v=>v.value===je);g.useEffect(()=>{var v;In&&pe(n?(v=M[0])==null?void 0:v.value:null)},[In]),Do(()=>{n&&pe(xe==null?void 0:xe.value)},[se,xe==null?void 0:xe.value]),g.useEffect(()=>{var v;!N&&n&&pe((v=M[0])==null?void 0:v.value)},[N]),g.useEffect(()=>{N&&d&&we(!0)},[N,d,we]),g.useEffect(()=>{const v=M.find(_=>_.value===je);L(e.onOptionFocus,{item:v,focusMethod:V.current,isNewInput:v==null?void 0:v.creatable})},[je,e.onOptionFocus]);const Mt=v=>{var _,k;const A=D.find(J=>J.value===v),te=(A==null?void 0:A.label)||(A==null?void 0:A.value);Be(()=>h?"":te!=null?te:""),!le.includes(v)&&le.lengthh?[...J,v]:[v]),h&&((_=H.current)==null||_.focus()),e.focusInputOnSelect&&((k=H.current)==null||k.focus()),L(e.onSelectOption,{item:A,selectMethod:V.current,isNewInput:A==null?void 0:A.creatable}),A!=null&&A.creatable&&L(e.onCreateOption,{item:Rn(A,["noFilter"]),selectMethod:V.current}),p&&ae()},$n=(v,_)=>{var k;Nt(J=>{const Se=M.find(ge=>ge.value===v);return Se?(L(e.onTagRemoved,v,Se,J),J.filter(ge=>ge!==v)):J});const A=M.find(J=>J.value===v),te=(A==null?void 0:A.label)||(A==null?void 0:A.value);se===te&&Be(""),_&&((k=H.current)==null||k.focus())},Oo=v=>{var _;Nt([]),v&&((_=H.current)==null||_.focus())},Dn=h?le.map(v=>{var _;return{label:((_=M.find(k=>k.value===(v==null?void 0:v.toString())))==null?void 0:_.label)||v,onRemove:()=>$n(v)}}):[];return g.useEffect(()=>{L(w,{tags:Dn})},[le]),{autoCompleteProps:e,children:ie,filteredList:D,filteredResults:jt,focusedValue:je,defaultEmptyStateProps:s,getEmptyStateProps:v=>{if(D.every(_=>_.noFilter)&&i&&!o)return typeof i=="boolean"?v:L(i,{query:se})},getGroupProps:v=>{const _=wd(v.children,D);return{divider:{hasFirstChild:yd(v.children,xe),hasLastChild:bd(v.children,Bt(D.filter(k=>gt(k==null?void 0:k.noFilter))))},group:{display:_?"initial":"none"}}},getInputProps:(v,_)=>{const{onBlur:k,onChange:A,onFocus:te,onKeyDown:J,variant:Se,...ge}=v;return{wrapper:{ref:Fe,onClick:()=>{var O;(O=H==null?void 0:H.current)==null||O.focus()},...xd(_,h),...ge},input:{isReadOnly:u,onFocus:O=>{L(te,O),e.openOnFocus&&!u&&he(),e.selectOnFocus&&O.target.select(),d&&we(!0)},onBlur:O=>{var ne,U;L(k,O);const G=O.relatedTarget===(T==null?void 0:T.current)||((ne=T.current)==null?void 0:ne.contains(O.relatedTarget)),Tt=(U=Fe.current)==null?void 0:U.contains(O.relatedTarget);if(!G&&!Tt&&(r&&ae(),!le.includes(O.target.value)&&j)){const It=Bt(le),Ne=M.find($t=>$t.value===It),ce=(Ne==null?void 0:Ne.label)||(Ne==null?void 0:Ne.value)||"";Be(ce)}},onChange:O=>{const ne=O.target.value;L(A,O),Be(ne);const U=io(ne);L(B,ne)&&(!U||de)?he():ae(),we(!1)},onKeyDown:O=>{var ne;L(J,O),V.current="keyboard";const{key:U}=O,G=D[Lt];if(["Enter",...P].includes(U)){G&&!(G!=null&&G.disabled)&&N?Mt(G==null?void 0:G.value):(ne=H.current)==null||ne.focus(),O.preventDefault();return}if(U==="ArrowDown"){N?pe(Ln==null?void 0:Ln.value):he(),O.preventDefault();return}if(U==="ArrowUp"){N?pe(Mn==null?void 0:Mn.value):he(),O.preventDefault();return}if(U==="Tab"){N&&G&&!(G!=null&&G.disabled)?Mt(G==null?void 0:G.value):ae();return}if(U==="Home"){pe(xe==null?void 0:xe.value),O.preventDefault();return}if(U==="End"){pe(Tn==null?void 0:Tn.value),O.preventDefault();return}U==="Escape"&&(ae(),O.preventDefault())},value:se,variant:h?"unstyled":Se,...ge}}},getItemProps:(v,_)=>{var k;const{_fixed:A,_focus:te,children:J,disabled:Se,label:ge,value:O,fixed:ne,getValue:U=An,onClick:G,onMouseOver:Tt,sx:It,...Ne}=v,ce=_?O:(k=U(O))==null?void 0:k.toString(),$t=ce===je,_o=D.findIndex(He=>He.value===ce)>=0,Dt=J||ge||ce;return{item:{...typeof Dt!="string"||!a?{children:Dt}:{dangerouslySetInnerHTML:{__html:fd(Dt,se)}},"aria-selected":le.includes(ce),"aria-disabled":Se,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:He=>{var kn;L(G,He),Se?(kn=H.current)==null||kn.focus():Mt(ce)},onMouseOver:He=>{L(Tt,He),pe(ce),V.current="mouse"},sx:{...It,mark:{color:"inherit",bg:"transparent",...Cn(a)?a:{fontWeight:a?"extrabold":"inherit"}}},...$t&&(te||gd()),...ne&&A,...Ne},root:{isValidSuggestion:_o,value:ce}}},inputRef:H,interactionRef:V,isLoading:$,isOpen:N,itemList:M,listRef:T,onClose:ae,onOpen:he,placement:S,query:se,removeItem:$n,resetItems:Oo,setQuery:Be,tags:Dn,value:oe,values:le}}const Od=Re((e,t)=>{const n=Sd(e),{children:r,isOpen:o,onClose:a,onOpen:i,placement:s,resetItems:l,removeItem:u}=n;g.useImperativeHandle(t,()=>({resetItems:l,removeItem:u}));const{matchWidth:d=!0}=n.autoCompleteProps;return c.jsx(rd,{value:n,children:c.jsx(cn,{isLazy:!0,isOpen:o,onClose:a,onOpen:i,autoFocus:!1,placement:s,closeOnBlur:!0,matchWidth:d,children:c.jsx(Kt.div,{w:"full",ref:t,children:r})})})});Od.displayName="AutoComplete";const _d=Re((e,t)=>{const{focusedValue:n,getItemProps:r,interactionRef:o}=Ae(),a=g.useRef(),i=ot(t,a),s=r(e),{isValidSuggestion:l,value:u}=s.root,d=n===u;g.useEffect(()=>{var y;d&&o.current==="keyboard"&&((y=a==null?void 0:a.current)==null||y.scrollIntoView({behavior:"smooth",block:"nearest"}))},[d,o]),g.useEffect(()=>{typeof u!="string"&&console.warn("wow"),typeof u!="string"&>(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")},[]);const{children:f,dangerouslySetInnerHTML:h,...p}=s.item,m=Rn(p,["groupId"]);return l?c.jsx(ee,{ref:i,...Cd,...m,children:f||c.jsx("span",{dangerouslySetInnerHTML:h})}):null});_d.displayName="AutoCompleteItem";const Cd={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},Rd=Re((e,t)=>{const{children:n,showDivider:r,...o}=e,a=Rn(o,["groupSibling"]),{getGroupProps:i}=Ae(),{group:s}=i(e),l=Pd(e);return c.jsxs(un,{ref:t,...s,...a,children:[c.jsx(zn,{...l.top}),n,c.jsx(zn,{...l.bottom})]})}),Ad=Re((e,t)=>c.jsx(ee,{...Ed,...e,ref:t}));Rd.displayName="AutoCompleteGroup";Ad.displayName="AutoCompleteGroupTitle";const Ed={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},Pd=e=>{const{getGroupProps:t}=Ae(),n=e.groupSibling,{divider:{hasFirstChild:r,hasLastChild:o}}=t(e),a={my:2,borderColor:e.dividerColor},i={...a,mb:4,display:!e.showDivider||r?"none":""},s={...a,display:!e.showDivider||o||n?"none":""};return{top:i,bottom:s}},nr=Re((e,t)=>{const{isLoading:n}=Ae(),{loadingIcon:r,...o}=e;return c.jsxs(jo,{children:[c.jsx(wr,{...o,ref:t}),n&&c.jsx(No,{children:r||c.jsx(xr,{})})]})}),co=Re((e,t)=>{const{autoCompleteProps:n,inputRef:r,getInputProps:o,tags:a,setQuery:i,value:s,itemList:l}=Ae(),{children:u,isInvalid:d,hidePlaceholder:f,...h}=e,{value:p}=h;g.useEffect(()=>{if(s!==void 0&&(typeof s=="string"||s instanceof String)){const P=l.find(oe=>oe.value===s),de=P===void 0?s:P.label;i(de)}},[s]),g.useEffect(()=>{p!==void 0&&(typeof p=="string"||p instanceof String)&&i(p)},[p]);const m=Lo("Input",e);let{wrapper:y,input:w}=o(h,m);const{ref:b,...x}=y,$=ot(t,r),S=L(u,{tags:a});f&&(w={...w,placeholder:Array.isArray(S)&&S.length?void 0:w.placeholder});const j=c.jsx(nr,{isInvalid:d,...w,ref:$}),B=c.jsxs(Mo,{"aria-invalid":d,...x,ref:b,children:[S,c.jsx(br,{as:nr,...w,ref:$})]});return c.jsx(Sr,{children:n.multiple?B:j})});co.displayName="Input";co.id="Input";const jd=e=>{const{getEmptyStateProps:t,defaultEmptyStateProps:n}=Ae(),r=t(c.jsx(ee,{...Nd,...n,children:"No options found!"}));return c.jsx(un,{...e,children:r})},Nd={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},rr=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"],Ld=e=>{const t=$e.Children.map(e,(r,o)=>{var a;if(((a=r==null?void 0:r.type)==null?void 0:a.displayName)==="AutoCompleteGroup"){const i=$e.Children.toArray(e)[o+1];return $e.cloneElement(r,{groupSibling:i?i.type.displayName==="AutoCompleteGroup":!1})}return r}),n=$e.Children.toArray(t).filter(r=>{var o;return!rr.includes((o=r==null?void 0:r.type)==null?void 0:o.displayName)});return[$e.Children.toArray(t).filter(r=>{var o;return rr.includes((o=r==null?void 0:r.type)==null?void 0:o.displayName)}),n]},Md=Re((e,t)=>{const{children:n,loadingState:r,...o}=e,{listRef:a,isLoading:i}=Ae(),s=ot(t,a),[l,u]=Ld(n);return c.jsxs(dn,{ref:s,w:"inherit",...Td,...o,children:[i&&c.jsx(To,{children:r||c.jsx(xr,{size:"md"})}),!i&&c.jsxs(c.Fragment,{children:[l,c.jsx(jd,{}),u]})]})});Md.displayName="AutoCompleteList";const Td={py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}};g.memo(e=>{const{label:t,onRemove:n,disabled:r,...o}=e;return c.jsx(br,{children:c.jsxs(Ao,{borderRadius:"md",fontWeight:"normal",...r&&or,...o,children:[c.jsx(Eo,{children:t}),c.jsx(Po,{onClick:()=>!r&&L(n),cursor:"pointer",...r&&or})]})})});const or={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};var ar=function(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),o,a=[],i;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},ir=function(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,a;r0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},kd=function(e,t){var n=e.validator,r=e.onDebouncedChange,o=e.delay,a=e.optionList,i=e.defaultValue;e.onChange;var s=$d(e,["validator","onDebouncedChange","delay","optionList","defaultValue","onChange"]),l=g.useRef(null),u=ot(l,t),d=g.useRef("datalist-"+new Date().valueOf()),f=Dd(g.useState(!1),2),h=f[0],p=f[1],m=g.useRef();g.useEffect(function(){l.current&&(l.current.value=(i==null?void 0:i.toString())||"")},[i]);var y=function(b){var x=b.target.value;window.clearTimeout(m.current),n&&p(!n(x)),m.current=window.setTimeout(function(){r==null||r(x),m.current=void 0},o!=null?o:500)},w=function(b){var x=b.target.value;m.current!==void 0&&(window.clearTimeout(m.current),n&&p(!n(x)),r==null||r(x),m.current=void 0)};return c.jsxs(c.Fragment,{children:[c.jsx(wr,en({ref:u,list:d.current,variant:"flushed",size:"sm",h:6,onChange:y,onBlur:w,isInvalid:h},s)),a&&c.jsx("datalist",{id:d.current,children:a==null?void 0:a.map(function(b,x){return c.jsx("option",{children:b},x)})})]})},Ef=g.forwardRef(kd),tn=function(){return tn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},Vd=function(e){switch(e){case ye.DEV:return"red";case ye.UAT:return"orange";case ye.PRD:return"green"}};function Ud(e){var t=e.environment,n=e.version,r=e.popoverHeader,o=e.popoverBody,a=Hd(g.useState(!1),2),i=a[0],s=a[1];return c.jsxs(cn,{isOpen:i,onOpen:function(){return r&&s(!0)},onClose:function(){return s(!1)},children:[c.jsx(Fo,{children:c.jsx(hn,{ml:1,colorScheme:Vd(t),title:"".concat(t,": ").concat(n),cursor:r?"pointer":"help",children:t===ye.PRD?n:t})}),c.jsxs(dn,{children:[c.jsx(Bo,{}),c.jsx(Ho,{}),c.jsx(Vo,{children:r}),c.jsx(Or,{children:o})]})]})}var Gd=function(e,t,n){var r=new Blob([n],{type:t});Wd(e,r)},Wd=function(e,t){var n=window.URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(n)},Kd=function(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),o,a=[],i;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Yd(e){var t=e.cancelRef,n=e.isOpen,r=e.onClose,o=Kd(g.useState(!1),2),a=o[0],i=o[1],s=function(){i(!0);var l=R.storage.getAll(),u=R.getAppName(),d="".concat(u,"_BACKUP_").concat(new Date().toISOString(),".json");Gd(d,"application/json",JSON.stringify(l)),R.storage.clear(),setTimeout(function(){window.location.reload()},2e3)};return c.jsxs(Uo,{leastDestructiveRef:t,isOpen:n,onClose:r,children:[c.jsx(_r,{}),c.jsxs(Go,{children:[c.jsx(Cr,{children:"Warning 警告"}),c.jsx(Rr,{}),c.jsxs(Ar,{sx:{"& p":{my:1}},children:[c.jsx(Oe,{children:"Are you sure you want to reset the app? The webpage local storage for this app will be cleared. A copy of the local storage will be downloaded and it may be used for restoration (varies with app)."}),c.jsx(Oe,{children:"確定重設該應用程式嗎?應用程式的網頁本地儲存將會被清除。本地儲存的副本可供下載及用於復原(因應用程式而異)。"}),c.jsx(Oe,{children:"确定重置本应用程序吗?应用程序的网页本地存储将会被清除。本地存储的拷贝可供下载以及用于还原(因应用程序而異)。"})]}),c.jsxs(Er,{children:[c.jsx(tt,{ref:t,onClick:r,children:"Cancel"}),c.jsx(tt,{isLoading:a,colorScheme:"red",ml:3,onClick:s,children:"Confirm and reload"})]})]})]})}var Xe=function(){return Xe=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Qd(e){var t=e.error,n=e.errorInfo,r=e.allowReset,o=e.sx,a=Jd(e,["error","errorInfo","allowReset","sx"]),i=Y("RmgErrorBoundary"),s=fn("primary.500","primary.300"),l=qd(g.useState(!1),2),u=l[0],d=l[1],f=g.useRef(null),h=function(y){return c.jsx(W,{color:s,role:"button",onClick:function(){return d(!0)},children:y})},p=R.getAppName(),m=c.jsx(W,{color:s,href:"https://github.com/railmapgen/".concat(p==="rmg-home"?"railmapgen.github.io":p,"/issues"),isExternal:!0,children:"GitHub Issue"});return c.jsxs(Pr,Xe({status:"error",sx:Xe(Xe({},i),o)},a,{children:[c.jsx(jr,{}),c.jsx(Wo,{children:"Something went wrong!"}),c.jsxs(Ko,{children:[c.jsxs(Oe,{children:["Please try to refresh or re-import your configuration files. If the issue still persists, please consider upgrading your browser",r?c.jsxs(c.Fragment,{children:[" or ",h("reset this app")]}):"",". Should you need any help, please contact us by submitting an issue in ",m," with the details shown below."]}),c.jsxs(Oe,{children:["請嘗試重新整理或重新上載設定檔。如果問題仍然存在,請考慮更新你的瀏覽器",r?c.jsxs(c.Fragment,{children:["或",h("重設該應用程式")]}):"","。如需協助或與我們聯絡,請前往 ",m," 提交一個 Issue 並附以詳細資料。"]}),c.jsxs(Oe,{children:["请尝试刷新或者重新上传配置文件。如果问题仍然存在,请考虑更新您的浏览器",r?c.jsxs(c.Fragment,{children:["或者",h("重置本应用程序")]}):"","。如需帮助或者联系我们,请前往 ",m," 提交一个 Issue 并附上详细信息。"]}),c.jsxs(Oe,{as:"details",children:[t==null?void 0:t.toString(),c.jsx("br",{}),n==null?void 0:n.componentStack]}),r&&c.jsx(Yd,{cancelRef:f,isOpen:u,onClose:function(){return d(!1)}})]})]}))}var Xd=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,o){r.__proto__=o}||function(r,o){for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(r[a]=o[a])},e(t,n)};return function(t,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),nn=function(){return nn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Lf(e){var t=e.defaultValue,n=e.options,r=e.disabledOptions,o=th(e,["defaultValue","options","disabledOptions"]),a=g.useRef(null);g.useEffect(function(){a.current&&(a.current.value=(t==null?void 0:t.toString())||"")},[t]);var i=function(s,l){return c.jsx("option",{value:s,disabled:(r==null?void 0:r.find(function(u){return u.toString()===s}))!==void 0,children:l},s)};return c.jsx(Xo,on({ref:a,variant:"flushed",size:"sm",h:6},o,{children:Object.entries(n).map(function(s){var l=lr(s,2),u=l[0],d=l[1];return typeof d=="object"?c.jsx("optgroup",{label:u,children:Object.entries(d).map(function(f){var h=lr(f,2),p=h[0],m=h[1];return i(p,m)})},u):i(u,d)})}))}var Ht=function(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),o,a=[],i;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},cr=function(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,a;r0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Mf(e){var t=e.defaultValue,n=e.min,r=e.max,o=e.step,a=e.onThrottledChange,i=e.leftIcon,s=e.rightIcon,l=Y("RmgThrottledSlider"),u=rh(g.useState(t!=null?t:0),2),d=u[0],f=u[1];g.useEffect(function(){t!==void 0&&d!==t&&f(t)},[t]);var h=nh(a!=null?a:function(){},500),p=function(){var y=Math.min(d+(o!=null?o:1)*10,r!=null?r:100);a==null||a(y),f(y)},m=function(){var y=Math.max(d-(o!=null?o:1)*10,n!=null?n:0);a==null||a(y),f(y)};return c.jsxs(ee,{sx:l,children:[i&&c.jsx(Yt,{size:"xs",variant:"ghost","aria-label":"Drag left",icon:i,onClick:m}),c.jsxs(Zo,{value:d,min:n,max:r,step:o,onChange:function(y){h(y),f(y)},children:[c.jsx(ea,{children:c.jsx(ta,{})}),c.jsx(na,{})]}),s&&c.jsx(Yt,{size:"xs",variant:"ghost","aria-label":"Drag right",icon:s,onClick:p})]})}var K=function(){return K=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},dr=function(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,a;r button:first-of-type":{ml:1}}},vh={baseStyle:{w:"100%",h:"100%",position:"absolute",top:0,right:0,alignItems:"center",justifyContent:"center","& .rmg-loader__backdrop":{position:"absolute",w:"100%",h:"100%",zIndex:1500,bg:"blackAlpha.400"},"& .chakra-progress":{zIndex:2e3}}},me=function(e){return e==="dark"?"primary.300":"primary.500"},yh={baseStyle:function(e){var t=e.theme,n=e.colorMode;return{"& .rmg-multi-select__wrapper":{position:"relative",w:"100%",h:"25.75px",transform:"translateY(1.75px)",cursor:"default"},"& .rmg-multi-select__field":{position:"relative",w:"100%",minW:0,outline:0,appearance:"none",transitionProperty:"common",transitionDuration:"normal",pb:"1px",fontSize:"sm",h:"6",borderBottom:"1px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent",_active:{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},_focus:{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},_focusVisible:{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},"&.active":{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},"& > span:last-of-type":{position:"absolute",right:8}},"& .rmg-multi-select__icon-wrapper":{display:"inline-flex",justifyContent:"center",w:6,h:"100%",position:"absolute",right:2,top:0,fontSize:"xl","& svg":{h:"1em",w:"1em"}},"& .chakra-popover__content":{w:"unset",minW:200},"& .chakra-popover__body":{p:0,"li label":{p:2,w:"100%",_hover:{bg:n==="dark"?"whiteAlpha.200":"gray.100"},_active:{bg:n==="dark"?"whiteAlpha.300":"gray.200"}}}}}},sn=function(){return sn=Object.assign||function(e){for(var t,n=1,r=arguments.length;nwindow.open("https://github.com/railmapgen/rmg","_blank"),children:r("Visit GitHub")})})]})]})}const kh=()=>{const{t:e}=gn(),t=R.getEnv(),n=R.getAppVersion(),[r,o]=g.useState(!1);return c.jsxs(uo,{children:[c.jsx(pn,{as:"h4",size:"md",children:e("Rail Map Generator")}),c.jsx(Ud,{environment:t,version:n}),c.jsx(ga,{ml:"auto",children:c.jsx(Yt,{size:"sm",variant:"ghost","aria-label":"Help",icon:c.jsx($h,{}),onClick:()=>o(!0)})}),c.jsx(Dh,{isOpen:r,onClose:()=>o(!1)})]})},zh=()=>{const{t:e}=gn();return c.jsx(uo,{isAppClipHeader:!0,children:c.jsx(pn,{as:"h4",size:"md",children:e("Rail Map Generator")+" - "+e("Project Selector")})})},Fh=g.lazy(()=>Zr(()=>import("./app-router-Dyjxcbfz.js").then(e=>e.a),__vite__mapDeps([0,1,2,3]))),Bh=g.lazy(()=>Zr(()=>import("./app-clip-view-nLYlAu1q.js"),__vite__mapDeps([4,1,2,3])));function Hh(){return c.jsx(ya,{children:c.jsx(Th,{children:c.jsx(oh,{children:c.jsxs(ba,{children:[c.jsx(kt,{path:"/import",element:c.jsxs(sr,{suspenseFallback:c.jsx(ur,{isIndeterminate:!0}),children:[c.jsx(zh,{}),c.jsx(Bh,{})]})}),c.jsx(kt,{path:"/",element:c.jsxs(sr,{suspenseFallback:c.jsx(ur,{isIndeterminate:!0}),allowReset:!0,children:[c.jsx(kh,{}),c.jsx(Fh,{})]})}),c.jsx(kt,{path:"*",element:c.jsx(wa,{to:"/"})})]})})})})}window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function Vh(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(e=>{e.unregister()}).catch(e=>{console.error(e.message)})}var Ce=(e=>(e.MTR="mtr",e.GZMTR="gzmtr",e.SHMetro="shmetro",e.SHSuburbanRailway="shsubrwy",e))(Ce||{}),En=(e=>(e.Destination="destination",e.RunIn="runin",e.RailMap="railmap",e.Indoor="indoor",e.Platform="platform",e))(En||{});const dp={mtr:["destination","railmap"],gzmtr:["runin","railmap"],shmetro:["destination","runin","railmap","indoor"],shsubrwy:["destination","runin","platform"]};var ho=(e=>(e.CLOSE="CLOSE",e.STATION="STATION",e.STYLE="STYLE",e.BRANCH="BRANCH",e))(ho||{}),Uh=(e=>(e.left="left",e.right="right",e))(Uh||{}),Pn=(e=>(e.left="l",e.right="r",e))(Pn||{}),Gh=(e=>(e.through="through",e.nonThrough="nonthrough",e))(Gh||{}),fo=(e=>(e.local="local",e.express="express",e.direct="direct",e))(fo||{});const hp={airport:"Airport",hsr:"High speed rail",railway:"National rail",disney:"Disneyland resort",np360:"Ngong Ping 360"};var po=(e=>(e.gz1="gz1",e.gz28="gz28",e.gz2otis="gz2otis",e.gz3="gz3",e.gz4="gz4",e.gz5="gz5",e.gz1421="gz1421",e.gz6="gz6",e.gzgf="gzgf",e))(po||{}),go=(e=>(e.sh="sh",e.sh2020="sh2020",e))(go||{}),Wh=(e=>(e[e.PASSED=-1]="PASSED",e[e.CURRENT=0]="CURRENT",e[e.FUTURE=1]="FUTURE",e))(Wh||{}),Kh=(e=>(e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT",e))(Kh||{}),be=(e=>(e.CANVAS_TO_SHOW="canvasToShow",e.CANVAS_SCALE="canvasScale",e.PARAM_BY_ID="param:",e.PARAM_CONFIG_BY_ID="paramConfig:",e.DO_NOT_SHOW_RMT_MSG="doNotShowRMTMsg",e))(be||{}),mo=(e=>(e.APP_LOAD="APP_LOAD",e.STYLE_CHANGE="STYLE_CHANGE",e.OPEN_PARAM="OPEN_PARAM",e.NEW_PARAM="NEW_PARAM",e.UPLOAD_PARAM="UPLOAD_PARAM",e.OPEN_TEMPLATE="OPEN_TEMPLATE",e.REMOVE_PARAM="REMOVE_PARAM",e.UPDATE_PARAM_CONFIG="UPDATE_PARAM_CONFIG",e.ADD_STATION="ADD_STATION",e.REMOVE_STATION="REMOVE_STATION",e.ADD_BRANCH="ADD_BRANCH",e.AUTO_NUMBERING="AUTO_NUMBERING",e.REVERSE_STATIONS="REVERSE_STATIONS",e.CONNECT_BRANCH="CONNECT_BRANCH",e.DISCONNECT_BRANCH="DISCONNECT_BRANCH",e.SELECT_COLOUR="SELECT_COLOUR",e.DOWNLOAD_PARAM="DOWNLOAD_PARAM",e.DOWNLOAD_IMAGES="DOWNLOAD_IMAGES",e.APP_CLIP_VIEW_OPENED="APP_CLIP_VIEW_OPENED",e.APP_CLIP_VIEW_CLOSED="APP_CLIP_VIEW_CLOSED",e.APP_CLIP_VIEW_IMPORT="APP_CLIP_VIEW_IMPORT",e))(mo||{});const Yh={rmgStyle:Ce.MTR,paramConfig:void 0,canvasScale:1,canvasToShow:Object.values(En),sidePanelMode:ho.CLOSE,selectedStation:"linestart",selectedColine:void 0,selectedBranch:0,isShareTrackEnabled:void 0,globalAlerts:{},isLoading:void 0},vo=mn({name:"app",initialState:Yh,reducers:{setParamConfig:(e,t)=>{e.paramConfig=t.payload},updateParamModifiedTime:(e,t)=>{e.paramConfig&&(e.paramConfig.lastModified=t.payload)},setCanvasScale:(e,t)=>{e.canvasScale=t.payload},setCanvasToShow:(e,t)=>{e.canvasToShow=t.payload},setSidePanelMode:(e,t)=>{e.sidePanelMode=t.payload},setSelectedStation:(e,t)=>{e.selectedStation=t.payload},setSelectedColine:(e,t)=>{e.selectedColine=t.payload},setSelectedBranch:(e,t)=>{e.selectedBranch=t.payload},setIsShareTrackEnabled:(e,t)=>{e.isShareTrackEnabled=t.payload},setGlobalAlert:(e,t)=>{const{status:n,message:r,url:o,linkedApp:a}=t.payload;e.globalAlerts[n]={message:r,url:o,linkedApp:a}},closeGlobalAlert:(e,t)=>{delete e.globalAlerts[t.payload]},startLoading:e=>{e.isLoading=-1},setLoadingProgress:(e,t)=>{e.isLoading=t.payload},stopLoading:e=>{e.isLoading=void 0},openPaletteAppClip:(e,t)=>{e.paletteAppClipInput=t.payload,e.paletteAppClipOutput=void 0},closePaletteAppClip:e=>{e.paletteAppClipInput=void 0},onPaletteAppClipEmit:(e,t)=>{e.paletteAppClipOutput=t.payload,e.paletteAppClipInput=void 0}}}),{setParamConfig:fp,updateParamModifiedTime:Jh,setCanvasScale:gr,setCanvasToShow:qh,setSidePanelMode:pp,setSelectedStation:gp,setSelectedColine:mp,setSelectedBranch:vp,setIsShareTrackEnabled:yp,setGlobalAlert:bp,closeGlobalAlert:wp,startLoading:xp,setLoadingProgress:Sp,stopLoading:Op,openPaletteAppClip:_p,closePaletteAppClip:Cp,onPaletteAppClipEmit:Rp}=vo.actions,Qh=vo.reducer;var _e;(function(e){e.black="#000",e.white="#fff"})(_e||(_e={}));var yo=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let Gt={};const Xh=(e,t)=>yo(void 0,void 0,void 0,function*(){if(e in Gt)return Gt[e];const r=yield(yield fetch(e,t)).json();return Gt[e]=r,r}),Zh=(e,t)=>yo(void 0,void 0,void 0,function*(){return yield Xh("/rmg-palette/resources/palettes/".concat(e,".json"),{signal:t})});var ef=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};const Ap=(e,t,n)=>ef(void 0,void 0,void 0,function*(){const[r,o]=e;if(r==="other")return e;try{const i=(yield Zh(r)).find(s=>s.id===o);return i?[r,o,i.colour,i.fg||_e.white]:(console.warn("[rmg-palette] updateTheme(".concat(r,", ").concat(o,"), line does not exist, returning old theme")),e)}catch(a){return console.warn("[rmg-palette] updateTheme(".concat(r,", ").concat(o,"), unexpected error occurs, returning old theme"),a),e}}),tf="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let mr=(e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=tf[n[e]&63];return t};const nf=e=>{switch(e){case Ce.MTR:return["hongkong","twl","#E2231A",_e.white];case Ce.GZMTR:return["guangzhou","gz1","#F3D03E",_e.black];case Ce.SHMetro:return["shanghai","sh1","#E4002B",_e.white];default:return["other","other","#AAAAAA",_e.white]}},rf=e=>{switch(e){case"zh-Hans":return["1号线","Line 1"];case"zh-Hant":return["荃灣綫","Tsuen Wan Line"];default:return["地鐵線","Metro Line"]}},dt=e=>({localisedName:{zh:"未命名 "+e,en:"Unnamed "+e},num:"00",services:[fo.local],parents:[],children:[],transfer:{groups:[{}],tick_direc:Pn.right,paid_area:!0},loop_pivot:!1,one_line:!0,int_padding:355,character_spacing:75}),of=(e,t)=>{const n=dt("linestart");n.localisedName={en:"LEFT END"};const r=dt("lineend");r.localisedName={en:"RIGHT END"};const o=mr(6),a=dt(o);a.num="01";const i=mr(6),s=dt(i);return s.num="02",n.children=[o],a.parents=["linestart"],a.children=[i],s.parents=[o],s.children=["lineend"],r.parents=[i],{svgWidth:{destination:1200,runin:1200,railmap:1200,indoor:1200,platform:1200},svg_height:300,style:e,y_pc:50,padding:10,branchSpacingPct:33,direction:Pn.left,platform_num:"1",theme:nf(e),line_name:rf(t),current_stn_idx:i,stn_list:{linestart:n,[o]:a,[i]:s,lineend:r},namePosMTR:{isStagger:!0,isFlip:!0},customiseMTRDest:{isLegacy:!1,terminal:!1},line_num:"1",spanLineNum:!0,psd_num:"1",info_panel_type:e===Ce.SHMetro?go.sh:po.gz1,direction_gz_x:40,direction_gz_y:70,coline:{},loop:!1,loop_info:{bank:!0,left_and_right_factor:1,bottom_factor:1}}},af=()=>of(Ce.MTR,"en"),bo=mn({name:"param",initialState:af(),reducers:{setSvgHeight:(e,t)=>{e.svg_height=t.payload},setSvgWidth:(e,t)=>{const{width:n,canvas:r}=t.payload;e.svgWidth[r]=n},setStyle:(e,t)=>{e.style=t.payload},setYPercentage:(e,t)=>{e.y_pc=t.payload},setBranchSpacingPct:(e,t)=>{e.branchSpacingPct=t.payload},setPaddingPercentage:(e,t)=>{e.padding=t.payload},setDirectionIndicatorX:(e,t)=>{e.direction_gz_x=t.payload},setDirectionIndicatorY:(e,t)=>{e.direction_gz_y=t.payload},setTheme:(e,t)=>{e.theme=t.payload},setLineName:(e,t)=>{e.line_name=t.payload},setDirection:(e,t)=>{e.direction=t.payload},setPlatform:(e,t)=>{e.platform_num=t.payload},setLineNum:(e,t)=>{e.line_num=t.payload},setSpanLineNum:(e,t)=>{e.spanLineNum=t.payload},setPsdNum:(e,t)=>{e.psd_num=t.payload},setPanelType:(e,t)=>{e.info_panel_type=t.payload},addNote:e=>{e.notesGZMTR=(e.notesGZMTR||[]).concat([["","",10,10,!1]])},updateNote:(e,t)=>{if(e.notesGZMTR){const{index:n,note:r}=t.payload;e.notesGZMTR[n]=r}},removeNote:(e,t)=>{e.notesGZMTR&&e.notesGZMTR.splice(t.payload,1)},staggerStationNames:(e,t)=>{e.namePosMTR.isStagger=t.payload},flipStationNames:(e,t)=>{t.payload===void 0?e.namePosMTR.isFlip=!Jt(e).namePosMTR.isFlip:e.namePosMTR.isFlip=t.payload},toggleLineNameBeforeDestination:(e,t)=>{e.customiseMTRDest.isLegacy=t.payload},customiseDestinationName:(e,t)=>{e.customiseMTRDest.terminal=t.payload},setLoop:(e,t)=>{e.loop_info={bank:!0,left_and_right_factor:0,bottom_factor:1},e.loop=t.payload},setLoopBank:(e,t)=>{e.loop_info.bank=t.payload},setLoopLeftAndRightFactor:(e,t)=>{e.loop_info.left_and_right_factor=t.payload},setLoopBottomFactor:(e,t)=>{e.loop_info.bottom_factor=t.payload},setLoopMidpointStation:(e,t)=>{e.loop_info.midpoint_station=t.payload},setLoopClockwise:(e,t)=>{e.loop_info.clockwise=t.payload},setCurrentStation:(e,t)=>{e.current_stn_idx=t.payload},setStation:(e,t)=>{e.stn_list[t.payload.id]=t.payload.station},setStations:(e,t)=>{e.stn_list=t.payload},setColine:(e,t)=>{e.coline=t.payload},setFullParam:(e,t)=>t.payload}}),{setSvgHeight:Ep,setSvgWidth:Pp,setStyle:jp,setYPercentage:Np,setBranchSpacingPct:Lp,setPaddingPercentage:Mp,setDirectionIndicatorX:Tp,setDirectionIndicatorY:Ip,setTheme:$p,setLineName:Dp,setDirection:kp,setPlatform:zp,setLineNum:Fp,setSpanLineNum:Bp,setPsdNum:Hp,setPanelType:Vp,addNote:Up,updateNote:Gp,removeNote:Wp,staggerStationNames:Kp,flipStationNames:Yp,toggleLineNameBeforeDestination:Jp,customiseDestinationName:qp,setLoop:Qp,setLoopBank:Xp,setLoopLeftAndRightFactor:Zp,setLoopBottomFactor:eg,setLoopMidpointStation:tg,setLoopClockwise:ng,setCurrentStation:rg,setStation:og,setStations:ag,setColine:ig,setFullParam:sg}=bo.actions,sf=bo.reducer,lf=e=>{var o,a;const t=["linestart"],n=[["linestart"]];let r=0;for(;t.length;){let i=t.shift(),s=n[r].slice(-1)[0]||null;for(s&&i!=="linestart"?n[r].push(i):n[r]=[i];i!=="lineend";){s=i;const l=e[s].children;switch(l.length){case 1:i=l[0];break;case 2:{const u=e[s].branch.right,d=u[1];u[0]==="through"?(n.push([i]),t.push(d)):r===0&&(n.push([s]),t.push(d)),i=l.filter(f=>f!==d)[0];break}}if(n[r].push(i),s===((a=(o=e[i].branch)==null?void 0:o.left)==null?void 0:a[1]))break}r++}return n},cf=e=>{var o,a,i,s;const t=["linestart"],n=[["linestart"]];let r=0;for(;t.length;){let l=t.shift(),u=n[r].slice(-1)[0]||null;for(u&&l!=="linestart"?n[r].push(l):n[r]=[l];l!=="lineend";){u=l;const d=e[u].children;switch(d.length){case 1:l=d[0];break;case 2:{const f=e[u].branch.right,h=f[1];f[0]==="through"?(n.push(n[r].slice()),t.push(h)):r===0&&(n.push([u]),t.push(h)),l=d.filter(p=>p!==h)[0];break}}if(n[r].push(l),u===((a=(o=e[l].branch)==null?void 0:o.left)==null?void 0:a[1])&&((s=(i=e[l].branch)==null?void 0:i.left)==null?void 0:s[0])==="nonthrough")break}r++}return n},uf=e=>e.length===1?e[0].slice(1,-1):e.reduce((t,n)=>{const r=t.indexOf(n[n.length-1]);return[...t.slice(0,r),...n.slice(1),...t.slice(r+1)]},["lineend"]).slice(0,-1),df=e=>Object.entries(e).map(([t,n])=>t+n.parents.toString()+n.children.toString()+JSON.stringify(n.branch)).join(""),hf={depsStr:"",branches:[],routes:[],tpo:[]},wo=mn({name:"helper",initialState:hf,reducers:{updateHelper:(e,t)=>{const n=df(t.payload);if(Jt(e).depsStr!==n){e.depsStr=n,console.log("Re-calculating routes..."),e.routes=cf(t.payload),console.log("Re-calculating branches...");const r=lf(t.payload);Jt(e).branches.toString()!==r.toString()&&(e.branches=r,console.log("Re-calculating topology ordering..."),e.tpo=uf(r))}}},extraReducers:e=>{e.addMatcher(t=>t.type==="param/setStations",()=>{})}}),{updateHelper:lg}=wo.actions,ff=wo.reducer,pf=xa({app:Qh,param:sf,helper:ff}),xo=Sa(),gf=(e={})=>Ca({reducer:pf,middleware:t=>t().prepend(xo.middleware),preloadedState:e}),jn=gf(),cg=()=>Oa(),ug=_a,Wt=xo.startListening;window.rmgStore=jn;const mf=e=>{try{const t=R.storage.get(be.CANVAS_SCALE),n=Number(t);n>=.1&&e.dispatch(gr(n))}catch(t){console.warn("Error in reading canvas scale. Initiating as 1...",t),e.dispatch(gr(1))}},vf=e=>{try{const t=R.storage.get(be.CANVAS_TO_SHOW);if(t!==null){const n=JSON.parse(t);if(Array.isArray(n)){e.dispatch(qh(n));return}}}catch(t){console.warn("Error in reading canvas to show. Initiating as all...",t)}},yf=e=>{mf(e),vf(e),Wt({predicate:(t,n,r)=>n.app.canvasScale.toString()!==r.app.canvasScale.toString(),effect:(t,n)=>{R.storage.set(be.CANVAS_SCALE,n.getState().app.canvasScale.toString())}}),Wt({predicate:(t,n,r)=>n.app.canvasToShow.toString()!==r.app.canvasToShow.toString(),effect:(t,n)=>{R.storage.set(be.CANVAS_TO_SHOW,JSON.stringify(n.getState().app.canvasToShow))}}),Wt({predicate:(t,n,r)=>JSON.stringify(n.param)!==JSON.stringify(r.param),effect:bf})},bf=(e,t)=>{var o;const{id:n,...r}=(o=t.getState().app.paramConfig)!=null?o:{};if(n){const a=R.storage.get(be.PARAM_BY_ID+n),i=JSON.stringify(t.getState().param);if(a!==i){console.log("ListenerMiddleware:: Writing param and paramConfig to localStorage, ID="+n),R.storage.set(be.PARAM_BY_ID+n,i);const s=Date.now();t.dispatch(Jh(s)),R.storage.set(be.PARAM_CONFIG_BY_ID+n,JSON.stringify({...r,lastModified:s}))}else console.log("ListenerMiddleware:: Do not write to localStorage as no changes in param, ID="+n)}};Vh();document.head.append(...["share",...Object.values(En)].map(e=>{const t=document.createElement("link");return t.rel="stylesheet",t.id="css_"+e,t}));let vr;const wf=()=>{vr=us.createRoot(document.getElementById("root")),vr.render(c.jsx(g.StrictMode,{children:c.jsx(Ra,{store:jn,children:c.jsx(Aa,{i18n:Iu,children:c.jsx(Hh,{})})})}))};R.ready().then(()=>{yf(jn),wf(),R.injectUITools(),R.event(mo.APP_LOAD,{isStandaloneWindow:R.isStandaloneWindow})}).catch(e=>{const t=document.querySelector("#root");t&&(t.innerHTML="
\n Failed to load Rail Map Generator!\n
\n ".concat(e.toString(),'\n
\n Please contact us in \n GitHub.\n
'))});export{qp as $,Mp as A,Gh as B,Tp as C,Uh as D,mo as E,hp as F,sp as G,lp as H,Ip as I,$p as J,go as K,Dp as L,tp as M,Fp as N,Bp as O,po as P,zp as Q,ur as R,Pn as S,Hp as T,Vp as U,kp as V,Yp as W,Wf as X,Kp as Y,Jp as Z,Zr as _,xf as __vite_legacy_guard,sr as a,Qp as a0,Xp as a1,Zp as a2,eg as a3,ng as a4,Gp as a5,Wp as a6,Up as a7,ig as a8,mr as a9,Kf as aA,If as aB,jp as aC,dt as aD,vp as aE,wp as aF,be as aG,Tf as aH,Xf as aI,ep as aJ,Uf as aK,of as aL,_f as aM,Gf as aN,up as aO,Mf as aP,Pf as aQ,En as aR,Ap as aS,jf as aT,np as aU,$f as aV,yp as aW,Kh as aX,Wh as aY,pp as aa,ho as ab,gp as ac,Bf as ad,rg as ae,tg as af,bp as ag,Ef as ah,Lf as ai,rp as aj,Hf as ak,Cf as al,kf as am,zf as an,Cp as ao,Rp as ap,Sp as aq,Op as ar,cp as as,Zf as at,op as au,fp as av,Df as aw,qh as ax,gr as ay,Yf as az,lg as b,ag as c,cg as d,Ce as e,Rf as f,Af as g,_e as h,Jf as i,Nf as j,qf as k,Vf as l,fo as m,Ff as n,_p as o,dp as p,Pp as q,R as r,sg as s,Ep as t,ug as u,Np as v,ip as w,ap as x,Lp as y,Qf as z}; diff --git a/assets/index-ChIkpPhE.js b/assets/index-ChIkpPhE.js new file mode 100644 index 00000000..cf74bd6a --- /dev/null +++ b/assets/index-ChIkpPhE.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-router-ByZ3RjTs.js","assets/chakra-CXrhlirJ.js","assets/react-Caefwd5V.js","assets/param-selector-BJ-4ECJo.js","assets/app-clip-view-DQwDvxlj.js"])))=>i.map(i=>d[i]); +import{u as Y,a as yr,j as c,P as Co,c as Kt,F as Ro,f as Re,W as br,T as Ao,b as Eo,d as Po,e as cn,g as ot,h as ee,B as un,D as zn,I as jo,i as wr,k as No,S as xr,l as Lo,m as Mo,n as Sr,o as dn,C as To,p as Io,q as $o,r as Do,s as ko,t as tt,v as zo,w as Fo,x as hn,y as Bo,z as Ho,A as Vo,E as Or,G as Uo,M as _r,H as Go,J as Cr,K as Rr,L as Ar,N as Oe,O as Er,Q as fn,R as W,U as Pr,V as jr,X as Wo,Y as Ko,Z as Yo,_ as Jo,$ as qo,a0 as Qo,a1 as Xo,a2 as Yt,a3 as Zo,a4 as ea,a5 as ta,a6 as na,a7 as ra,a8 as oa,a9 as Ie,aa,ab as ia,ac as Ke,ad as sa,ae as la,af as ca,ag as ua,ah as da,ai as C,aj as ha,ak as fa,al as pn,am as pa,an as q,ao as ga}from"./chakra-CXrhlirJ.js";import{f as ma,i as va,a as g,d as $e,u as gn,H as ya,h as ba,j as kt,N as wa,k as mn,l as Jt,m as xa,n as Sa,o as Oa,p as _a,q as Ca,P as Ra,I as Aa}from"./react-Caefwd5V.js";function xf(){import.meta.url,import("_").catch(()=>1),async function*(){}().next()}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(o){if(o.ep)return;o.ep=!0;const a=n(o);fetch(o.href,a)}})();var Ea=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};const Nr=e=>new Promise(t=>{setTimeout(t,e,"Timeout after ".concat(e/1e3," seconds"))}),Pa=e=>new Promise(t=>{const n=new FileReader;n.onloadend=()=>t(n.result),n.readAsDataURL(e)}),ja=e=>{let t,n=!1;return r=>Ea(void 0,void 0,void 0,function*(){return t&&(n||!r)?t:(t=e(),n=!0,t.then(o=>(n=!1,o)).catch(o=>{throw t=null,o}))})},vn=e=>{let t=0;for(let n=0;n{const t=(e&16777215).toString(16).toUpperCase();return"#"+"00000".substring(0,6-t.length)+t};var ye;(function(e){e.DEV="DEV",e.UAT="UAT",e.PRD="PRD"})(ye||(ye={}));const Lr="rmg-runtime__language",Mr="rmg-runtime__colourMode",mt="rmg-runtime__allowAnalytics",at="rmg-unknown",Na="railmapgen.github.io",La="rmg-home";let vt=at,Tr=yn(vn(at));const Ma=e=>{vt=e,Tr=yn(vn(e))},it=()=>"[".concat(vt,"]"),st=()=>Tr,ue=(e,t,n)=>(...r)=>{typeof r[0]=="string"?e("%c".concat(t(),"%c ").concat(r[0]),"color: ".concat(n()),"",...r.slice(1)):e("%c".concat(t(),"%c"),"color: ".concat(n()),"",...r)},Ta={debug:ue(console.debug,it,st),info:ue(console.info,it,st),warn:ue(console.warn,it,st),error:ue(console.error,it,st)},Ve=()=>vt===at?"[runtime]":"[runtime@".concat(vt,"]"),Ia=yn(vn("runtime")),Ue=()=>Ia,E={setup:Ma,logger:Ta,debug:ue(console.debug,Ve,Ue),info:ue(console.info,Ve,Ue),warn:ue(console.warn,Ve,Ue),error:ue(console.error,Ve,Ue),group:ue(console.group,Ve,Ue),groupEnd:console.groupEnd};var Ir=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let bn,Ct,wn,xn,Sn;const $r=()=>{bn=!1,Ct=at,wn="unknown",xn=ye.PRD,Sn="unknown"},$a=()=>Ir(void 0,void 0,void 0,function*(){const e=window.location.pathname.split("/")[1],t=e?"/".concat(e,"/info.json"):"/info.json",n=yield fetch(t);if(n.ok){const r=yield n.json();E.info("Received info.json",r),Ct=r.component,wn=r.version,xn=r.environment,Sn=r.instance}else throw new Error("Failed to fetch config from ".concat(t))}),Da=()=>Ir(void 0,void 0,void 0,function*(){try{E.group("Loading config...");const e=yield Promise.race([$a(),Nr(10*1e3)]);e?E.error("❌ Failed to load config.",e):(bn=!0,E.info("✅ Config loaded!"))}catch(e){E.error("❌ Failed to load config.",e)}finally{E.groupEnd()}}),ka=()=>bn,za=()=>Dr()?La:Ct,Fa=()=>wn,Ba=()=>xn,Ha=()=>Sn,Dr=()=>Ct===Na;$r();const F={loadWithTimeout:Da,isInitialised:ka,getComponent:za,getVersion:Fa,getEnvironment:Ba,getInstance:Ha,isRMT:Dr,_resetConfig:$r};window.dataLayer=window.dataLayer||[];const Va=()=>{const e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-2HP8Y4MRRQ",document.head.append(e)};function qt(...e){if(F.getEnvironment()!==ye.DEV)return window.dataLayer.push(arguments);E.info("Not going to send event in DEV environment",e)}const Ua=(e,t={})=>{qt("event",e,t)},Ga=()=>{Va(),qt("js",new Date),qt("config","G-2HP8Y4MRRQ",{appName:F.getComponent(),version:F.getVersion(),environment:F.getEnvironment(),instance:F.getInstance()})},yt={init:Ga,customEvent:Ua},Wa="rmg-runtime-channel",ht={};let Ye;try{Ye=new BroadcastChannel(Wa),Ye.onmessage=e=>{var t;const{event:n,data:r,frameId:o}=e.data;(t=ht[n])===null||t===void 0||t.forEach(a=>a(r,o))}}catch(e){E.warn("Failed to initiate broadcast channel. Some features may be unavailable.",e)}const Ka=(e,t)=>{var n;E.debug("Broadcasting event ".concat(e," with data"),t),Ye==null||Ye.postMessage({event:e,data:t,frameId:(n=window.frameElement)===null||n===void 0?void 0:n.id})},Ya=(e,t)=>{var n;e in ht?(n=ht[e])===null||n===void 0||n.push(t):ht[e]=[t]},I={postEvent:Ka,onMessage:Ya},kr="TOGGLE_NAV_MENU",zr="OPEN_APP",Fr="CLOSE_APP",Br="UPDATE_APP_METADATA",Hr="UPDATE_URL",ft=()=>!window.frameElement,Ja=()=>{var e;return!!(!((e=window.frameElement)===null||e===void 0)&&e.closest(".show-menu"))},qa=()=>{if(!ft()){const t=document.createElement("style");t.textContent="body{padding: 0;}",document.head.appendChild(t)}const e=document.createElement("style");e.textContent=".rmg-window__header:not(.rmg-window__app-clip-header){margin-left: 40px;}",!ft()&&!Ja()&&document.head.appendChild(e),ft()||I.onMessage(kr,t=>{if(t)try{document.head.removeChild(e)}catch(n){E.warn("Unable to remove indent style from RmgWindowHeader",n)}else document.head.appendChild(e)})},Qa=e=>{I.postEvent(zr,e)},Xa=e=>{I.postEvent(Fr,e)},Za=e=>{I.postEvent(Br,e)},ei=e=>{I.postEvent(Hr,e)},ti=e=>{I.onMessage(zr,e)},ni=e=>{I.onMessage(Fr,e)},ri=e=>{I.onMessage(Br,e)},oi=e=>{I.onMessage(Hr,e)},ai=e=>{I.postEvent(kr,e)},X={isStandaloneWindow:ft,injectUITools:qa,openApp:Qa,onAppOpen:ti,closeApp:Xa,onAppClose:ni,updateAppMetadata:Za,onAppMetadataUpdate:ri,updateUrl:ei,onUrlUpdate:oi,toggleNavMenu:ai},Vr="SET_LANGUAGE",Ur="SET_COLOUR_MODE",ii=e=>{I.postEvent(Vr,e),window.localStorage.setItem(Lr,e)},si=()=>window.localStorage.getItem(Lr)||"en",li=e=>{I.onMessage(Vr,e)},Gr=["light","dark","system"],ci=e=>{Gr.includes(e)&&(I.postEvent(Ur,e),window.localStorage.setItem(Mr,e))},ui=e=>!!(e&&Gr.includes(e)),di=()=>{const e=window.localStorage.getItem(Mr);return ui(e)?e:"system"},hi=e=>{I.onMessage(Ur,e)},fi=()=>window.localStorage.getItem(mt)!==null,Wr=()=>window.localStorage.getItem(mt)==="true",pi=e=>{const t=Wr();return e?(t||(window.localStorage.setItem(mt,e.toString()),yt.init()),{refreshRequired:!1}):t?(window.localStorage.setItem(mt,e.toString()),{refreshRequired:!0}):{refreshRequired:!1}},Z={setLanguage:ii,getLanguage:si,onLanguageChange:li,setColourMode:ci,getColourMode:di,onColourModeChange:hi,isAnalyticsQADone:fi,isAllowAnalytics:Wr,allowAnalytics:pi},gi=new Date().getTime();function mi(){const e=F.getComponent(),t=window.localStorage.getItem(e+"__startTime");return t===null?new Date().getTime()-gi:new Date().getTime()-Number(t)}const vi={getMsSinceStartUp:mi},pt={},ze=()=>{const e=F.getComponent();if(e===at)throw new Error("Unable to clear storage for unknown app");return e};window.addEventListener("storage",e=>{var t;const{key:n,newValue:r}=e;n&&((t=pt[n])===null||t===void 0||t.forEach(o=>o(r)))});const yi=(e,t)=>{var n;const r="".concat(ze(),"__").concat(e);r in pt?(n=pt[r])===null||n===void 0||n.push(t):pt[r]=[t]},bi=e=>{const t=ze();return window.localStorage.getItem("".concat(t,"__").concat(e))},wi=()=>{const e=ze(),t={};let n=0;for(;n{const n=ze();window.localStorage.setItem("".concat(n,"__").concat(e),t)},Si=e=>{const t=ze();window.localStorage.removeItem("".concat(t,"__").concat(e))},Oi=()=>{const e=ze();let t=0;for(;t1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||_i,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),r=0;r{this.observers[r]||(this.observers[r]=new Map);const o=this.observers[r].get(n)||0;this.observers[r].set(n,o+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o{let[s,l]=i;for(let u=0;u{let[s,l]=i;for(let u=0;u{let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n},Fn=e=>e==null?"":""+e,Ci=(e,t,n)=>{e.forEach(r=>{t[r]&&(n[r]=t[r])})},Ri=/###/g,Bn=e=>e&&e.indexOf("###")>-1?e.replace(Ri,"."):e,Hn=e=>!e||typeof e=="string",Je=(e,t,n)=>{const r=typeof t!="string"?t:t.split(".");let o=0;for(;o{const{obj:r,k:o}=Je(e,t,Object);if(r!==void 0||t.length===1){r[o]=n;return}let a=t[t.length-1],i=t.slice(0,t.length-1),s=Je(e,i,Object);for(;s.obj===void 0&&i.length;)a="".concat(i[i.length-1],".").concat(a),i=i.slice(0,i.length-1),s=Je(e,i,Object),s&&s.obj&&typeof s.obj["".concat(s.k,".").concat(a)]<"u"&&(s.obj=void 0);s.obj["".concat(s.k,".").concat(a)]=n},Ai=(e,t,n,r)=>{const{obj:o,k:a}=Je(e,t,Object);o[a]=o[a]||[],o[a].push(n)},wt=(e,t)=>{const{obj:n,k:r}=Je(e,t);if(n)return n[r]},Ei=(e,t,n)=>{const r=wt(e,n);return r!==void 0?r:wt(t,n)},Kr=(e,t,n)=>{for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?typeof e[r]=="string"||e[r]instanceof String||typeof t[r]=="string"||t[r]instanceof String?n&&(e[r]=t[r]):Kr(e[r],t[r],n):e[r]=t[r]);return e},Me=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Pi={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ji=e=>typeof e=="string"?e.replace(/[&<>"'\/]/g,t=>Pi[t]):e;class Ni{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const Li=[" ",",","?","!",";"],Mi=new Ni(20),Ti=(e,t,n)=>{t=t||"",n=n||"";const r=Li.filter(i=>t.indexOf(i)<0&&n.indexOf(i)<0);if(r.length===0)return!0;const o=Mi.getRegExp("(".concat(r.map(i=>i==="?"?"\\?":i).join("|"),")"));let a=!o.test(e);if(!a){const i=e.indexOf(n);i>0&&!o.test(e.substring(0,i))&&(a=!0)}return a},Qt=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const r=t.split(n);let o=e;for(let a=0;a-1&&le&&e.indexOf("_")>0?e.replace("_","-"):e;class Un extends Rt{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const a=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,i=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;t.indexOf(".")>-1?s=t.split("."):(s=[t,n],r&&(Array.isArray(r)?s.push(...r):typeof r=="string"&&a?s.push(...r.split(a)):s.push(r)));const l=wt(this.data,s);return!l&&!n&&!r&&t.indexOf(".")>-1&&(t=s[0],n=s[1],r=s.slice(2).join(".")),l||!i||typeof r!="string"?l:Qt(this.data&&this.data[t]&&this.data[t][n],r,a)}addResource(t,n,r,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let s=[t,n];r&&(s=s.concat(i?r.split(i):r)),t.indexOf(".")>-1&&(s=t.split("."),o=n,n=s[1]),this.addNamespaces(n),Vn(this.data,s,o),a.silent||this.emit("added",t,n,r,o)}addResources(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const a in r)(typeof r[a]=="string"||Array.isArray(r[a]))&&this.addResource(t,n,a,r[a],{silent:!0});o.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,o,a){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},s=[t,n];t.indexOf(".")>-1&&(s=t.split("."),o=r,r=n,n=s[1]),this.addNamespaces(n);let l=wt(this.data,s)||{};i.skipCopy||(r=JSON.parse(JSON.stringify(r))),o?Kr(l,r,a):l={...l,...r},Vn(this.data,s,l),i.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(o=>n[o]&&Object.keys(n[o]).length>0)}toJSON(){return this.data}}var Yr={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,o){return e.forEach(a=>{this.processors[a]&&(t=this.processors[a].process(t,n,r,o))}),t}};const Gn={};class St extends Rt{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Ci(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=re.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const r=this.resolve(t,n);return r&&r.res!==void 0}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const o=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let a=n.ns||this.options.defaultNS||[];const i=r&&t.indexOf(r)>-1,s=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!Ti(t,r,o);if(i&&!s){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:a};const u=t.split(r);(r!==o||r===o&&this.options.ns.indexOf(u[0])>-1)&&(a=u.shift()),t=u.join(o)}return typeof a=="string"&&(a=[a]),{key:t,namespaces:a}}translate(t,n,r){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const o=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,a=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:i,namespaces:s}=this.extractFromKey(t[t.length-1],n),l=s[s.length-1],u=n.lng||this.language,d=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(d){const S=n.nsSeparator||this.options.nsSeparator;return o?{res:"".concat(l).concat(S).concat(i),usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:"".concat(l).concat(S).concat(i)}return o?{res:i,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:i}const f=this.resolve(t,n);let h=f&&f.res;const p=f&&f.usedKey||i,m=f&&f.exactUsedKey||i,y=Object.prototype.toString.apply(h),w=["[object Number]","[object Function]","[object RegExp]"],b=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,x=!this.i18nFormat||this.i18nFormat.handleAsObject;if(x&&h&&(typeof h!="string"&&typeof h!="boolean"&&typeof h!="number")&&w.indexOf(y)<0&&!(typeof b=="string"&&Array.isArray(h))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const S=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,h,{...n,ns:s}):"key '".concat(i," (").concat(this.language,")' returned an object instead of string.");return o?(f.res=S,f.usedParams=this.getUsedParamsDetails(n),f):S}if(a){const S=Array.isArray(h),j=S?[]:{},B=S?m:p;for(const P in h)if(Object.prototype.hasOwnProperty.call(h,P)){const de="".concat(B).concat(a).concat(P);j[P]=this.translate(de,{...n,joinArrays:!1,ns:s}),j[P]===de&&(j[P]=h[P])}h=j}}else if(x&&typeof b=="string"&&Array.isArray(h))h=h.join(b),h&&(h=this.extendTranslation(h,t,n,r));else{let S=!1,j=!1;const B=n.count!==void 0&&typeof n.count!="string",P=St.hasDefaultValue(n),de=B?this.pluralResolver.getSuffix(u,n.count,n):"",oe=n.ordinal&&B?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",Ee=B&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),N=Ee&&n["defaultValue".concat(this.options.pluralSeparator,"zero")]||n["defaultValue".concat(de)]||n["defaultValue".concat(oe)]||n.defaultValue;!this.isValidLookup(h)&&P&&(S=!0,h=N),this.isValidLookup(h)||(j=!0,h=i);const he=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&j?void 0:h,ie=P&&N!==h&&this.options.updateMissing;if(j||S||ie){if(this.logger.log(ie?"updateKey":"missingKey",u,l,i,ie?N:h),a){const T=this.resolve(i,{...n,keySeparator:!1});T&&T.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let M=[];const H=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&H&&H[0])for(let T=0;T{const we=P&&fe!==h?fe:he;this.options.missingKeyHandler?this.options.missingKeyHandler(T,l,V,we,ie,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(T,l,V,we,ie,n),this.emit("missingKey",T,l,V,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&B?M.forEach(T=>{const V=this.pluralResolver.getSuffixes(T,n);Ee&&n["defaultValue".concat(this.options.pluralSeparator,"zero")]&&V.indexOf("".concat(this.options.pluralSeparator,"zero"))<0&&V.push("".concat(this.options.pluralSeparator,"zero")),V.forEach(fe=>{Fe([T],i+fe,n["defaultValue".concat(fe)]||N)})}):Fe(M,i,N))}h=this.extendTranslation(h,t,n,f,r),j&&h===i&&this.options.appendNamespaceToMissingKey&&(h="".concat(l,":").concat(i)),(j||S)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(l,":").concat(i):i,S?h:void 0):h=this.options.parseMissingKeyHandler(h))}return o?(f.res=h,f.usedParams=this.getUsedParamsDetails(n),f):h}extendTranslation(t,n,r,o,a){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const u=typeof t=="string"&&(r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let d;if(u){const h=t.match(this.interpolator.nestingRegexp);d=h&&h.length}let f=r.replace&&typeof r.replace!="string"?r.replace:r;if(this.options.interpolation.defaultVariables&&(f={...this.options.interpolation.defaultVariables,...f}),t=this.interpolator.interpolate(t,f,r.lng||this.language||o.usedLng,r),u){const h=t.match(this.interpolator.nestingRegexp),p=h&&h.length;d1&&arguments[1]!==void 0?arguments[1]:{},r,o,a,i,s;return typeof t=="string"&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(r))return;const u=this.extractFromKey(l,n),d=u.key;o=d;let f=u.namespaces;this.options.fallbackNS&&(f=f.concat(this.options.fallbackNS));const h=n.count!==void 0&&typeof n.count!="string",p=h&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),m=n.context!==void 0&&(typeof n.context=="string"||typeof n.context=="number")&&n.context!=="",y=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);f.forEach(w=>{this.isValidLookup(r)||(s=w,!Gn["".concat(y[0],"-").concat(w)]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(s)&&(Gn["".concat(y[0],"-").concat(w)]=!0,this.logger.warn('key "'.concat(o,'" for languages "').concat(y.join(", "),'" won\'t get resolved as namespace "').concat(s,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),y.forEach(b=>{if(this.isValidLookup(r))return;i=b;const x=[d];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(x,d,b,w,n);else{let S;h&&(S=this.pluralResolver.getSuffix(b,n.count,n));const j="".concat(this.options.pluralSeparator,"zero"),B="".concat(this.options.pluralSeparator,"ordinal").concat(this.options.pluralSeparator);if(h&&(x.push(d+S),n.ordinal&&S.indexOf(B)===0&&x.push(d+S.replace(B,this.options.pluralSeparator)),p&&x.push(d+j)),m){const P="".concat(d).concat(this.options.contextSeparator).concat(n.context);x.push(P),h&&(x.push(P+S),n.ordinal&&S.indexOf(B)===0&&x.push(P+S.replace(B,this.options.pluralSeparator)),p&&x.push(P+j))}}let $;for(;$=x.pop();)this.isValidLookup(r)||(a=$,r=this.getResource(b,w,$,n))}))})}),{res:r,usedKey:o,exactUsedKey:a,usedLng:i,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,o):this.resourceStore.getResource(t,n,r,o)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&typeof t.replace!="string";let o=r?t.replace:t;if(r&&typeof t.count<"u"&&(o.count=t.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!r){o={...o};for(const a of n)delete o[a]}return o}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&t[r]!==void 0)return!0;return!1}}const zt=e=>e.charAt(0).toUpperCase()+e.slice(1);class Wn{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=re.create("languageUtils")}getScriptPartFromCode(t){if(t=xt(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=xt(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(typeof t=="string"&&t.indexOf("-")>-1){const n=["hans","hant","latn","cyrl","cans","mong","arab"];let r=t.split("-");return this.options.lowerCaseLng?r=r.map(o=>o.toLowerCase()):r.length===2?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=zt(r[1].toLowerCase()))):r.length===3&&(r[0]=r[0].toLowerCase(),r[1].length===2&&(r[1]=r[1].toUpperCase()),r[0]!=="sgn"&&r[2].length===2&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=zt(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=zt(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const o=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(o))&&(n=o)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const o=this.getLanguagePartFromCode(r);if(this.isSupportedCode(o))return n=o;n=this.options.supportedLngs.find(a=>{if(a===o)return a;if(!(a.indexOf("-")<0&&o.indexOf("-")<0)&&(a.indexOf("-")>0&&o.indexOf("-")<0&&a.substring(0,a.indexOf("-"))===o||a.indexOf(o)===0&&o.length>1))return a})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),typeof t=="string"&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes(n||this.options.fallbackLng||[],t),o=[],a=i=>{i&&(this.isSupportedCode(i)?o.push(i):this.logger.warn("rejecting language code not found in supportedLngs: ".concat(i)))};return typeof t=="string"&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&a(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&a(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&a(this.getLanguagePartFromCode(t))):typeof t=="string"&&a(this.formatLanguageCode(t)),r.forEach(i=>{o.indexOf(i)<0&&a(this.formatLanguageCode(i))}),o}}let Ii=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],$i={1:e=>+(e>1),2:e=>+(e!=1),3:e=>0,4:e=>e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,5:e=>e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5,6:e=>e==1?0:e>=2&&e<=4?1:2,7:e=>e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,8:e=>e==1?0:e==2?1:e!=8&&e!=11?2:3,9:e=>+(e>=2),10:e=>e==1?0:e==2?1:e<7?2:e<11?3:4,11:e=>e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3,12:e=>+(e%10!=1||e%100==11),13:e=>+(e!==0),14:e=>e==1?0:e==2?1:e==3?2:3,15:e=>e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2,16:e=>e%10==1&&e%100!=11?0:e!==0?1:2,17:e=>e==1||e%10==1&&e%100!=11?0:1,18:e=>e==0?0:e==1?1:2,19:e=>e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3,20:e=>e==1?0:e==0||e%100>0&&e%100<20?1:2,21:e=>e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0,22:e=>e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3};const Di=["v1","v2","v3"],ki=["v4"],Kn={zero:0,one:1,two:2,few:3,many:4,other:5},zi=()=>{const e={};return Ii.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:$i[t.fc]}})}),e};class Fi{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=re.create("pluralResolver"),(!this.options.compatibilityJSON||ki.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=zi(),this.pluralRulesCache={}}addRule(t,n){this.rules[t]=n}clearCache(){this.pluralRulesCache={}}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{const r=xt(t==="dev"?"en":t),o=n.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:r,type:o});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];const i=new Intl.PluralRules(r,{type:o});return this.pluralRulesCache[a]=i,i}catch(r){return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return this.shouldUseIntlApi()?r&&r.resolvedOptions().pluralCategories.length>1:r&&r.numbers.length>1}getPluralFormsOfKey(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(o=>"".concat(n).concat(o))}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((o,a)=>Kn[o]-Kn[a]).map(o=>"".concat(this.options.prepend).concat(n.ordinal?"ordinal".concat(this.options.prepend):"").concat(o)):r.numbers.map(o=>this.getSuffix(t,o,n)):[]}getSuffix(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const o=this.getRule(t,r);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(r.ordinal?"ordinal".concat(this.options.prepend):"").concat(o.select(n)):this.getSuffixRetroCompatible(o,n):(this.logger.warn("no plural rule found for: ".concat(t)),"")}getSuffixRetroCompatible(t,n){const r=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let o=t.numbers[r];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(o===2?o="plural":o===1&&(o=""));const a=()=>this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString();return this.options.compatibilityJSON==="v1"?o===1?"":typeof o=="number"?"_plural_".concat(o.toString()):a():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?a():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}shouldUseIntlApi(){return!Di.includes(this.options.compatibilityJSON)}}const Yn=function(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=Ei(e,t,n);return!a&&o&&typeof n=="string"&&(a=Qt(e,n,r),a===void 0&&(a=Qt(t,n,r))),a},Ft=e=>e.replace(/\$/g,"$$$$");class Bi{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=re.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:r,useRawValueToEscape:o,prefix:a,prefixEscaped:i,suffix:s,suffixEscaped:l,formatSeparator:u,unescapeSuffix:d,unescapePrefix:f,nestingPrefix:h,nestingPrefixEscaped:p,nestingSuffix:m,nestingSuffixEscaped:y,nestingOptionsSeparator:w,maxReplaces:b,alwaysFormat:x}=t.interpolation;this.escape=n!==void 0?n:ji,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=o!==void 0?o:!1,this.prefix=a?Me(a):i||"{{",this.suffix=s?Me(s):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=d?"":f||"-",this.unescapeSuffix=this.unescapePrefix?"":d||"",this.nestingPrefix=h?Me(h):p||Me("$t("),this.nestingSuffix=m?Me(m):y||Me(")"),this.nestingOptionsSeparator=w||",",this.maxReplaces=b||1e3,this.alwaysFormat=x!==void 0?x:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>n&&n.source===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,"".concat(this.prefix,"(.+?)").concat(this.suffix)),this.regexpUnescape=t(this.regexpUnescape,"".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix)),this.nestingRegexp=t(this.nestingRegexp,"".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix))}interpolate(t,n,r,o){let a,i,s;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=p=>{if(p.indexOf(this.formatSeparator)<0){const b=Yn(n,l,p,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(b,void 0,r,{...o,...n,interpolationkey:p}):b}const m=p.split(this.formatSeparator),y=m.shift().trim(),w=m.join(this.formatSeparator).trim();return this.format(Yn(n,l,y,this.options.keySeparator,this.options.ignoreJSONStructure),w,r,{...o,...n,interpolationkey:y})};this.resetRegExp();const d=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,f=o&&o.interpolation&&o.interpolation.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:p=>Ft(p)},{regex:this.regexp,safeValue:p=>this.escapeValue?Ft(this.escape(p)):Ft(p)}].forEach(p=>{for(s=0;a=p.regex.exec(t);){const m=a[1].trim();if(i=u(m),i===void 0)if(typeof d=="function"){const w=d(t,a,o);i=typeof w=="string"?w:""}else if(o&&Object.prototype.hasOwnProperty.call(o,m))i="";else if(f){i=a[0];continue}else this.logger.warn("missed to pass in variable ".concat(m," for interpolating ").concat(t)),i="";else typeof i!="string"&&!this.useRawValueToEscape&&(i=Fn(i));const y=p.safeValue(i);if(t=t.replace(a[0],y),f?(p.regex.lastIndex+=i.length,p.regex.lastIndex-=a[0].length):p.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o,a,i;const s=(l,u)=>{const d=this.nestingOptionsSeparator;if(l.indexOf(d)<0)return l;const f=l.split(new RegExp("".concat(d,"[ ]*{")));let h="{".concat(f[1]);l=f[0],h=this.interpolate(h,i);const p=h.match(/'/g),m=h.match(/"/g);(p&&p.length%2===0&&!m||m.length%2!==0)&&(h=h.replace(/'/g,'"'));try{i=JSON.parse(h),u&&(i={...u,...i})}catch(y){return this.logger.warn("failed parsing options string in nesting for key ".concat(l),y),"".concat(l).concat(d).concat(h)}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,l};for(;o=this.nestingRegexp.exec(t);){let l=[];i={...r},i=i.replace&&typeof i.replace!="string"?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let u=!1;if(o[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(o[1])){const d=o[1].split(this.formatSeparator).map(f=>f.trim());o[1]=d.shift(),l=d,u=!0}if(a=n(s.call(this,o[1].trim(),i),i),a&&o[0]===t&&typeof a!="string")return a;typeof a!="string"&&(a=Fn(a)),a||(this.logger.warn("missed to resolve ".concat(o[1]," for nesting ").concat(t)),a=""),u&&(a=l.reduce((d,f)=>this.format(d,f,r.lng,{...r,interpolationkey:o[1].trim()}),a.trim())),t=t.replace(o[0],a),this.regexp.lastIndex=0}return t}}const Hi=e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const o=r[1].substring(0,r[1].length-1);t==="currency"&&o.indexOf(":")<0?n.currency||(n.currency=o.trim()):t==="relativetime"&&o.indexOf(":")<0?n.range||(n.range=o.trim()):o.split(";").forEach(i=>{if(i){const[s,...l]=i.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),d=s.trim();n[d]||(n[d]=u),u==="false"&&(n[d]=!1),u==="true"&&(n[d]=!0),isNaN(u)||(n[d]=parseInt(u,10))}})}return{formatName:t,formatOptions:n}},Te=e=>{const t={};return(n,r,o)=>{let a=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(a={...a,[o.interpolationkey]:void 0});const i=r+JSON.stringify(a);let s=t[i];return s||(s=e(xt(r),o),t[i]=s),s(n)}};class Vi{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=re.create("formatter"),this.options=t,this.formats={number:Te((n,r)=>{const o=new Intl.NumberFormat(n,{...r});return a=>o.format(a)}),currency:Te((n,r)=>{const o=new Intl.NumberFormat(n,{...r,style:"currency"});return a=>o.format(a)}),datetime:Te((n,r)=>{const o=new Intl.DateTimeFormat(n,{...r});return a=>o.format(a)}),relativetime:Te((n,r)=>{const o=new Intl.RelativeTimeFormat(n,{...r});return a=>o.format(a,r.range||"day")}),list:Te((n,r)=>{const o=new Intl.ListFormat(n,{...r});return a=>o.format(a)})},this.init(t)}init(t){const r=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=Te(n)}format(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const a=n.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(s=>s.indexOf(")")>-1)){const s=a.findIndex(l=>l.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,s)].join(this.formatSeparator)}return a.reduce((s,l)=>{const{formatName:u,formatOptions:d}=Hi(l);if(this.formats[u]){let f=s;try{const h=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},p=h.locale||h.lng||o.locale||o.lng||r;f=this.formats[u](s,p,{...d,...o,...h})}catch(h){this.logger.warn(h)}return f}else this.logger.warn("there was no format function for ".concat(u));return s},t)}}const Ui=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class Gi extends Rt{constructor(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=o,this.logger=re.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(r,o.backend,o)}queueLoad(t,n,r,o){const a={},i={},s={},l={};return t.forEach(u=>{let d=!0;n.forEach(f=>{const h="".concat(u,"|").concat(f);!r.reload&&this.store.hasResourceBundle(u,f)?this.state[h]=2:this.state[h]<0||(this.state[h]===1?i[h]===void 0&&(i[h]=!0):(this.state[h]=1,d=!1,i[h]===void 0&&(i[h]=!0),a[h]===void 0&&(a[h]=!0),l[f]===void 0&&(l[f]=!0)))}),d||(s[u]=!0)}),(Object.keys(a).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(a),pending:Object.keys(i),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}loaded(t,n,r){const o=t.split("|"),a=o[0],i=o[1];n&&this.emit("failedLoading",a,i,n),!n&&r&&this.store.addResourceBundle(a,i,r,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&r&&(this.state[t]=0);const s={};this.queue.forEach(l=>{Ai(l.loaded,[a],i),Ui(l,t),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{s[u]||(s[u]={});const d=l.loaded[u];d.length&&d.forEach(f=>{s[u][f]===void 0&&(s[u][f]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(l=>!l.done)}read(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!t.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:o,wait:a,callback:i});return}this.readingCalls++;const s=(u,d)=>{if(this.readingCalls--,this.waitingReads.length>0){const f=this.waitingReads.shift();this.read(f.lng,f.ns,f.fcName,f.tried,f.wait,f.callback)}if(u&&d&&o{this.read.call(this,t,n,r,o+1,a*2,i)},a);return}i(u,d)},l=this.backend[r].bind(this.backend);if(l.length===2){try{const u=l(t,n);u&&typeof u.then=="function"?u.then(d=>s(null,d)).catch(s):s(null,u)}catch(u){s(u)}return}return l(t,n,s)}prepareLoading(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();typeof t=="string"&&(t=this.languageUtils.toResolveHierarchy(t)),typeof n=="string"&&(n=[n]);const a=this.queueLoad(t,n,r,o);if(!a.toLoad.length)return a.pending.length||o(),null;a.toLoad.forEach(i=>{this.loadOne(i)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const r=t.split("|"),o=r[0],a=r[1];this.read(o,a,"read",void 0,void 0,(i,s)=>{i&&this.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(o," failed"),i),!i&&s&&this.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(o),s),this.loaded(t,i,s)})}saveMissing(t,n,r,o,a){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn('did not save key "'.concat(r,'" as the namespace "').concat(n,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend&&this.backend.create){const l={...i,isUpdate:a},u=this.backend.create.bind(this.backend);if(u.length<6)try{let d;u.length===5?d=u(t,n,r,o,l):d=u(t,n,r,o),d&&typeof d.then=="function"?d.then(f=>s(null,f)).catch(s):s(null,d)}catch(d){s(d)}else u(t,n,r,o,s,l)}!t||!t[0]||this.store.addResource(t[0],n,r,o)}}}const Jn=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),typeof e[1]=="string"&&(t.defaultValue=e[1]),typeof e[2]=="string"&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(r=>{t[r]=n[r]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),qn=e=>(typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),lt=()=>{},Wi=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};class nt extends Rt{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=qn(t),this.services={},this.logger=re,this.modules={external:[]},Wi(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(r=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(typeof n.ns=="string"?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const o=Jn();this.options={...o,...this.options,...qn(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...o.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);const a=d=>d?typeof d=="function"?new d:d:null;if(!this.options.isClone){this.modules.logger?re.init(a(this.modules.logger),this.options):re.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:typeof Intl<"u"&&(d=Vi);const f=new Wn(this.options);this.store=new Un(this.options.resources,this.options);const h=this.services;h.logger=re,h.resourceStore=this.store,h.languageUtils=f,h.pluralResolver=new Fi(f,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),d&&(!this.options.interpolation.format||this.options.interpolation.format===o.interpolation.format)&&(h.formatter=a(d),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new Bi(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new Gi(a(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(p){for(var m=arguments.length,y=new Array(m>1?m-1:0),w=1;w1?m-1:0),w=1;w{p.init&&p.init(this)})}if(this.format=this.options.interpolation.format,r||(r=lt),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=function(){return t.store[d](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=function(){return t.store[d](...arguments),t}});const l=Ge(),u=()=>{const d=(f,h)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(h),r(f,h)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lt;const o=typeof t=="string"?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&o.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const a=[],i=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(u=>{u!=="cimode"&&a.indexOf(u)<0&&a.push(u)})};o?i(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>i(l)),this.options.preload&&this.options.preload.forEach(s=>i(s)),this.services.backendConnector.load(a,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(s)})}else r(null)}reloadResources(t,n,r){const o=Ge();return typeof t=="function"&&(r=t,t=void 0),typeof n=="function"&&(r=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),r||(r=lt),this.services.backendConnector.reload(t,n,a=>{o.resolve(),r(a)}),o}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Yr.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,n){var r=this;this.isLanguageChangingTo=t;const o=Ge();this.emit("languageChanging",t);const a=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},i=(l,u)=>{u?(a(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,o.resolve(function(){return r.t(...arguments)}),n&&n(l,function(){return r.t(...arguments)})},s=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=typeof l=="string"?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||a(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,d=>{i(d,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(t),o}getFixedT(t,n,r){var o=this;const a=function(i,s){let l;if(typeof s!="object"){for(var u=arguments.length,d=new Array(u>2?u-2:0),f=2;f"".concat(l.keyPrefix).concat(h).concat(m)):p=l.keyPrefix?"".concat(l.keyPrefix).concat(h).concat(i):i,o.t(p,l)};return typeof t=="string"?a.lng=t:a.lngs=t,a.ns=n,a.keyPrefix=r,a}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],o=this.options?this.options.fallbackLng:!1,a=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const i=(s,l)=>{const u=this.services.backendConnector.state["".concat(s,"|").concat(l)];return u===-1||u===0||u===2};if(n.precheck){const s=n.precheck(this,i);if(s!==void 0)return s}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(r,t)&&(!o||i(a,t)))}loadNamespaces(t,n){const r=Ge();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(o=>{this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}),this.loadResources(o=>{r.resolve(),n&&n(o)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=Ge();typeof t=="string"&&(t=[t]);const o=this.options.preload||[],a=t.filter(i=>o.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return a.length?(this.options.preload=o.concat(a),this.loadResources(i=>{r.resolve(),n&&n(i)}),r):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services&&this.services.languageUtils||new Wn(Jn());return n.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new nt(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lt;const r=t.forkResourceStore;r&&delete t.forkResourceStore;const o={...this.options,...t,isClone:!0},a=new nt(o);return(t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),["store","services","language"].forEach(s=>{a[s]=this[s]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new Un(this.store.data,o),a.services.resourceStore=a.store),a.translator=new St(a.services,o),a.translator.on("*",function(s){for(var l=arguments.length,u=new Array(l>1?l-1:0),d=1;dDe,Yi=e=>{Z.onLanguageChange(t=>e.changeLanguage(t))};class Ji{constructor(){this._appName="RMG",this._lng=void 0,this._defaultResources={},this._resources={}}use(t){return z.use(t),this}withAppName(t){return this._appName=t,this}withLng(t){return this._lng=t,this}withDefaultResource(t){return Object.entries(t).forEach(([n,r])=>{this._defaultResources[n]=r}),this}withResource(t,n){return this._resources[t]=n,this}combineResource(){const t={};return Object.entries(this._defaultResources).forEach(([n,r])=>{t[n]={translation:r}}),Object.entries(this._resources).forEach(([n,r])=>{n in t?t[n].translation=Object.assign(Object.assign({},t[n].translation),r):t[n]={translation:r}}),t}build(){return De=z.createInstance({lng:this._lng,fallbackLng:{"zh-CN":["zh-Hans","zh-Hant","en"],"zh-HK":["zh-Hant","zh-Hans","en"],"zh-TW":["zh-Hant","zh-Hans","en"],default:["en"]},resources:this.combineResource()},(t,n)=>{var r;if(t){E.error("unexpected error occurs while initialising i18n",t);return}document.title=n(this._appName),document.documentElement.lang=(r=this._lng)!==null&&r!==void 0?r:"en"}),De.on("languageChanged",t=>{document.title=De.t(this._appName),document.documentElement.lang=t}),Yi(De),De}}var rt=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let ve={};const qi=()=>ve,Jr="LOAD_REMOTE_FONT",Qi=(e,t)=>{I.postEvent(Jr,{family:e,definition:t})},Xi=e=>{I.onMessage(Jr,e)},On=e=>e.source.startsWith("local"),Zi=e=>{var t;const n=(t=e.source.match(/url\(['"](\S+)['"]\)/))===null||t===void 0?void 0:t[1];if(!n)throw new Error("Invalid URL in source "+e.source);return new URL(n,window.location.href)},Qn=(e,t)=>{var n;return"@font-face {\n font-family: '".concat(e,"';\n src: ").concat(t.source,";\n ").concat(Object.entries((n=t.descriptors)!==null&&n!==void 0?n:{}).map(([r,o])=>"".concat(r,": ").concat(o,";")).join("\n"),"\n}")},es=()=>ja(()=>fetch("/fonts/config.json").then(e=>e.json()));let qr=es();const ts=(e,t,n)=>rt(void 0,void 0,void 0,function*(){try{const r=new FontFace(e,t.source,t.descriptors);return On(t)?yield r.load():r.loaded.then(n),document.fonts.add(r),ve[e]={configs:[Object.assign(Object.assign({},t),{font:r})]},!0}catch(r){return E.warn("Failed to load font ".concat(e," with source ").concat(t.source),r),!1}}),ns=(e,t,n)=>rt(void 0,void 0,void 0,function*(){if(t.some(On))return E.error("Unable to load multiple FontFace for the same family ".concat(e)),!1;const r=[];return t.forEach(o=>{const a=new FontFace(e,o.source,o.descriptors);a.loaded.then(n),document.fonts.add(a),r.push(Object.assign(Object.assign({},o),{font:a}))}),ve[e]={configs:r},!0}),rs=(e,t)=>rt(void 0,void 0,void 0,function*(){if(e in ve)return ve[e];let n;if(t)n=t;else try{n=(yield qr())[e]}catch(a){const i=a instanceof Error?" due to "+a.message:"";throw new Error("Unable to load font definition of "+e+i)}const r=()=>{Qi(e,n)};for(const a of n.configs)if(Array.isArray(a)?yield ns(e,a,r):yield ts(e,a,r))break;const o=ve[e];if(o)return o.displayName=n.displayName,o.url=n.url,ve[e]}),os=e=>rt(void 0,void 0,void 0,function*(){const t=ve[e];if(!t)throw new Error("Font family ".concat(e," is not loaded"));return(yield Promise.all(t.configs.filter(r=>{const o=r.font.status==="loaded";return o||E.warn("Font family ".concat(e," is not loaded completely. Some FontFaceRules may be missing")),o}).map(r=>rt(void 0,void 0,void 0,function*(){if(On(r))return Qn(e,r);const o=Zi(r),a=yield fetch(o),i=yield Pa(yield a.blob());return Qn(e,Object.assign(Object.assign({},r),{source:"url('".concat(i,"')")}))})))).join("\n\n")}),We={getAllFonts:qr,getLoadedFonts:qi,loadFont:rs,getFontCSS:os,onRemoteFontLoaded:Xi},as=()=>{if(F.getEnvironment()!=="PRD"||!F.isRMT())if(document.querySelector('meta[name="robots"]'))E.info("Noindex meta tag already presents.");else{E.info("Injecting noindex meta tag as this app is not PRD RMT.");const e=document.createElement("meta");e.name="robots",e.content="noindex",document.head.appendChild(e)}},is={injectNoindexRule:as};var Qr=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let Xr=!1;const ss=()=>Qr(void 0,void 0,void 0,function*(){yield F.loadWithTimeout(),E.setup(F.getComponent()),is.injectNoindexRule(),Z.isAnalyticsQADone()?Z.isAllowAnalytics()&&(E.info("User has previously allowed GA"),yt.init()):X.isStandaloneWindow()&&!F.isRMT()&&(E.warn("App is opened in standalone window but analytics Q&A is not finished. GA will be init by default."),yt.init()),Xr=!0}),ls=()=>Qr(void 0,void 0,void 0,function*(){let e=0;for(;e<=10&&!Xr;)yield Nr(1e3),e+=1}),R={ready:ls,getAppName:F.getComponent,getAppVersion:F.getVersion,getEnv:F.getEnvironment,getInstance:F.getInstance,event:yt.customEvent,isStandaloneWindow:X.isStandaloneWindow,injectUITools:X.injectUITools,openApp:X.openApp,onAppOpen:X.onAppOpen,closeApp:X.closeApp,onAppClose:X.onAppClose,updateAppMetadata:X.updateAppMetadata,onAppMetadataUpdate:X.onAppMetadataUpdate,updateUrl:X.updateUrl,onUrlUpdate:X.onUrlUpdate,toggleNavMenu:X.toggleNavMenu,postEvent:I.postEvent,onMessage:I.onMessage,setLanguage:Z.setLanguage,getLanguage:Z.getLanguage,onLanguageChange:Z.onLanguageChange,setColourMode:Z.setColourMode,getColourMode:Z.getColourMode,onColourModeChange:Z.onColourModeChange,isAnalyticsQADone:Z.isAnalyticsQADone,isAllowAnalytics:Z.isAllowAnalytics,allowAnalytics:Z.allowAnalytics,storage:{on:Le.on,get:Le.get,getAll:Le.getAll,set:Le.set,remove:Le.remove,clear:Le.clear},getMsSinceStartUp:vi.getMsSinceStartUp,I18nBuilder:Ji,getI18nInstance:Ki,getAllFonts:We.getAllFonts,getLoadedFonts:We.getLoadedFonts,loadFont:We.loadFont,getFontCSS:We.getFontCSS,onRemoteFontLoaded:We.onRemoteFontLoaded};ss().then();window.rmgRuntime=R;const _f=E.logger;var ct={},Xn;function cs(){if(Xn)return ct;Xn=1;var e=ma();return ct.createRoot=e.createRoot,ct.hydrateRoot=e.hydrateRoot,ct}var us=cs();const ds="操作",hs="应用程序",fs="黑",ps="取消",gs="城市",ms="组件",vs="确定",ys="继续",bs="复制",ws="编辑",xs="语言/Language",Ss="理由",Os="名称",_s="下一步",Cs="打开",Rs="调色板",As="上一步",Es="删除",Ps="重置",js="设置",Ns="提交",Ls="翻译",Ms="上传",Ts="白",Is={Action:ds,Apps:hs,"Back to list":"返回列表","Background colour":"背景色",Black:fs,Cancel:ps,City:gs,Components:ms,"Configuration file":"配置文件",Confirm:vs,Continue:ys,"Country/Region":"国家/地区",Copy:bs,Edit:ws,"Foreground colour":"前景色","Go back":"返回",Language:xs,Justification:Ss,Name:Os,Next:_s,Open:Cs,Palette:Rs,"Please select...":"请选择...",Previous:As,"Rail Map Generator":"铁路线路图生成器","Rail Map Painter":"地铁线路图绘制器","Rail Map Toolkit":"线路图工具包",Remove:Es,Reset:Ps,"RMG Templates":"RMG 模板","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 设计师","Seed Project":"种子项目",Settings:js,Submit:Ns,Translate:Ls,Upload:Ms,White:Ts},$s="動作",Ds="應用程式",ks="黑",zs="取消",Fs="城市",Bs="元件",Hs="確定",Vs="繼續",Us="複製",Gs="編輯",Ws="語言/Language",Ks="理由",Ys="名稱",Js="下一步",qs="開啟",Qs="調色盤",Xs="上一步",Zs="移除",el="重設",tl="設定",nl="提交",rl="翻譯",ol="上載",al="白",il={Action:$s,Apps:Ds,"Back to list":"返回列表","Background colour":"背景色",Black:ks,Cancel:zs,City:Fs,Components:Bs,"Configuration file":"設定檔",Confirm:Hs,Continue:Vs,Copy:Us,"Country/Region":"國家/地區",Edit:Gs,"Foreground colour":"前景色","Go back":"返回",Language:Ws,Justification:Ks,Name:Ys,Next:Js,Open:qs,Palette:Qs,"Please select...":"請選擇...",Previous:Xs,"Rail Map Generator":"鐵路路綫圖產生器","Rail Map Painter":"地鐵路綫圖繪製器","Rail Map Toolkit":"路綫圖工具組",Remove:Zs,Reset:el,"RMG Templates":"RMG 範本","RMP Gallery":"RMP 畫廊","RMP Designer":"RMP 設計師","Seed Project":"種子項目",Settings:tl,Submit:nl,Translate:rl,Upload:ol,White:al},sl="言語/Language",ll="調色板",cl="削除",ul={Language:sl,Palette:ll,"Rail Map Generator":"鉄道路線図ジェネレータ","Rail Map Painter":"鉄道路線図画家","Rail Map Toolkit":"路線図ツールキット",Remove:cl,"RMG Templates":"RMG テンプレート","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 図案家"},dl="조작",hl="앱",fl="블랙",pl="취소",gl="도시",ml="요소",vl="확인",yl="복사",bl="편집",wl="언어/Language",xl="이유",Sl="명칭",Ol="다음",_l="열기",Cl="팔레트",Rl="나아가",Al="삭제",El="리셋",Pl="설치",jl="제출",Nl="번역",Ll="업로드",Ml="화이트",Tl={Action:dl,Apps:hl,"Back to list":"다시 목록으로","Background colour":"배경색",Black:fl,Cancel:pl,City:gl,Components:ml,"Configuration file":"환경 설정 파일",Confirm:vl,Copy:yl,"Country/Region":"국가/지역",Edit:bl,"Foreground colour":"전경색","Go back":"되돌아가",Language:wl,Justification:xl,Name:Sl,Next:Ol,Open:_l,Palette:Cl,"Please select...":"선택해주세요",Previous:Rl,"Rail Map Generator":"철도 노선도 생성기","Rail Map Painter":"지하철 노선도 그리기","Rail Map Toolkit":"노선도 툴킷",Remove:Al,Reset:El,"RMG Templates":"RMG 템플릿","RMP Gallery":"RMP 갤러리","RMP Designer":"RMP 디자이너","Seed Project":"종자 프로젝트",Settings:Pl,Submit:jl,Translate:Nl,Upload:Ll,White:Ml};var Il={en:{},"zh-Hans":Is,"zh-Hant":il,ja:ul,ko:Tl};const $l={editStyle:"Edit style"},Dl={downloads:"Downloads",configFile:"Configuration file",images:"Images"},kl={invalidType:"Invalid file type! Only file in JSON format is accepted.",unknownError:"Unknown error occurred while parsing the uploaded file! Please try again."},zl={title:"Download images",canvas:"Canvas",transparent:"Transparent background",showBorder:"Display border",scale:"Scale",format:"Format",pleaseSelect:"Please select...",png:"PNG",svg:"SVG (Web use)",downloadOne:"Download current station",downloadAll:"Download all stations"},Fl={main:"Main line",branch:"Branch",external:"External line",addStation:"Add station",editLine:"Edit line section"},Bl={num:"Station code",zhName:"Chinese name",enName:"English name",interchange:"Interchanges",coline:"Tracks sharing"},Hl={header:"Edit style",layout:{title:"Layout",canvasHeight:"Canvas height",destinationWidth:"Destination width",runinWidth:"Running-in width",railmapWidth:"Rail map width",indoorWidth:"Indoor width",verticalPosition:"Vertical position",branchSpacing:"Branch spacing",branchSpacingLoop:"Vertical padding",padding:"Rail map padding",directionGzX:"Direction horizontal position",directionGzY:"Direction vertical position"},design:{title:"Design",zhLineName:"Chinese line name",enLineName:"English line name",lineNum:"Line code",direction:"Train direction at this station",left:"Left",right:"Right",platformNum:"Platform number",psdNum:"Platform door number",panelType:"Panel type",gz1:"Line 1",gz28:"Line 2/8 (Panasonic)",gz2otis:"Line 2/8 (Otis)",gz3:"Line 3",gz4:"Line 4",gz5:"Line 5",gz11:"Line 11",gz1822:"Line 18/22",gz6:"2010 style",gzgf:"2016 style",gz1421:"2017 style",gz7w:"2022 style",sh:"Default",sh2020:"2020 (Beta)",nameDisplay:"Display station names",alternatively:"Alternatively",onOneSide:"Same side",flip:"Flip position",firstStationNameDisplay:"Display the first station's name at",upwards:"Top",downward:"Bottom",legacyDestination:"Display line name on direction sign",overrideTerminal:"Override terminal",terminalZhName:"Terminal Chinese name",terminalEnName:"Terminal English name"},note:{title:"Notes",add:"Add note",zhNote:"Chinese note",enNote:"English note",positionX:"Horizontal position",positionY:"Vertical position",border:"Display border",remove:"Remove note"},loop:{title:"Loop",isLoop:"Treat as loop line",isBank:"Display loop as a parallelogram in Rail map",leftRightFactor:"Left and right factor",bottomFactor:"Bottom factor"}},Vl={header:"Edit line section",branch:{title:"Branch"},coline:{title:"Tracks sharing",add:"Add sharing track"},action:{title:"Actions",autoNum:"Auto numbering stations",reverse:"Rotate entire line",flip:"Flip entire line"}},Ul={info:{title:"Station info",num:"Station code",zhName:"Chinese name",enName:"English name",zhSecondary:"Chinese secondary",enSecondary:"English secondary"},interchange:{title:"Interchanges",within:"Within-station interchange",outStation:"Out-of-station interchange",outSystem:"Out-of-system interchange",addGroup:"Add interchange group",noInterchanges:"No interchanges",zhName:"Chinese name",enName:"English name",add:"Add interchange",copy:"Copy interchange",remove:"Remove interchange"},branch:{type:"Type",through:"Through",nonThrough:"Non-through",firstStation:"First station",position:"Position",upper:"Upper",lower:"Lower"},more:{title:"More settings",service:"Train services",local:"Local",express:"Express",direct:"Direct",facility:"Nearby facility",none:"None",pivot:"Pivot station on loop line",oneLine:"Display Chinese and English in one line",intPadding:"Padding between station name and interchange box",intPaddingApplyGlobal:"Apply current padding to all stations",apply:"Apply",characterSpacing:"Station Name Letter Spacing"},footer:{current:"Set as current",remove:"Remove"}},Gl={title:"Add station",where:"Target location",main:"Main line",branch:"Branch",external:"External line",preposition:"Preposition",before:"Before",after:"After",pivot:"Pivot station",pleaseSelect:"Please select...",error:"Failed to add station. Please check your selections and try again."},Wl={title:"Create a new branch or external line",where:"Target location",new:"Create a new branch",ext:"Create an external line",from:"Between",to:"and",position:"Position",upper:"Upper",lower:"Lower"},Kl={title:"Station auto numbering",where:"Target location",main:"Main line",branch:"Branch",external:"External line",from:"Starting index",maxLength:"Number of digits",sort:"Sorting",asc:"Ascending",desc:"Descending"},Yl={all:"All",destination:"Destination",runin:"Running-in",railmap:"Rail map",indoor:"Indoor",platform:"Platform Num"},Jl={mtr:"MTR",gzmtr:"Guangzhou Metro",shmetro:"Shanghai Metro",shsubrwy:"Shanghai Suburban Railway"},ql={HeaderActions:$l,DownloadActions:Dl,OpenActions:kl,DownloadModal:zl,GridTabs:Fl,StationAgGrid:Bl,StyleSidePanel:Hl,BranchSidePanel:Vl,StationSidePanel:Ul,AddStationModal:Gl,NewBranchModal:Wl,AutoNumModal:Kl,CanvasType:Yl,RmgStyle:Jl},Ql={editStyle:"风格化设置"},Xl={downloads:"下载",configFile:"配置文件",images:"图像"},Zl={invalidType:"无效的文件种类!只接受JSON种类的文件。",unknownError:"导入上传的文件时发生错误!请重试。"},ec={title:"下载图像",canvas:"画面",transparent:"透明背景",showBorder:"显示边框",scale:"缩放级别",format:"文件种类",pleaseSelect:"请选择...",png:"PNG图像",svg:"SVG图像(网页用)",downloadOne:"下载当前车站",downloadAll:"下载所有车站"},tc={main:"主线",branch:"支线",external:"外部路线",addStation:"添加车站",editLine:"路线段设置"},nc={num:"车站编号",interchange:"换乘",coline:"共线"},rc={header:"风格化设置",layout:{title:"布局",canvasHeight:"画面高度",destinationWidth:"终点站牌宽度",runinWidth:"当前站名牌宽度",railmapWidth:"站台门路线图宽度",indoorWidth:"车內路线图宽度",verticalPosition:"垂直方向位置",branchSpacing:"支线间距",branchSpacingLoop:"垂直边距",padding:"路线图边距",directionGzX:"终点站水平方向位置",directionGzY:"终点站垂直方向位置"},design:{title:"设计",zhLineName:"路线中文名称",enLineName:"路线英文名称",lineNum:"路线编号",direction:"当前车站行车方向",left:"向左",right:"向右",platformNum:"站台编号",psdNum:"站台门编号",panelType:"站台门盖板样式",gz1:"1号线",gz28:"2/8号线(松下)",gz2otis:"2/8号线(奥的斯)",gz3:"3号线",gz4:"4号线",gz5:"5号线",gz11:"11号线",gz1822:"18/22号线",gz6:"2010样式",gzgf:"2016样式",gz1421:"2017样式",gz7w:"2022样式",sh:"默认",sh2020:"2020样式(预览版)",nameDisplay:"显示车站名称",alternatively:"交错显示",onOneSide:"同一侧",flip:"翻转位置",firstStationNameDisplay:"显示第一个站点的名称",upwards:"顶部",downward:"底部",legacyDestination:"在终点站牌显示路线名称",overrideTerminal:"重写终点站",terminalZhName:"终点站中文名称",terminalEnName:"终点站英文名称"},note:{title:"备注",add:"添加备注",zhNote:"中文备注",enNote:"英文备注",positionX:"水平方向位置",positionY:"垂直方向位置",border:"显示边框",remove:"删除备注"},loop:{title:"环线",isLoop:"视为环线",isBank:"在站台门路线图中以平行四边形显示环线",leftRightFactor:"左右参数",bottomFactor:"底部参数"}},oc={header:"路线段设置",branch:{title:"支线"},coline:{title:"共线",add:"添加共线"},action:{title:"操作",autoNum:"车站自动编号",reverse:"旋转整条路线",flip:"翻转整条路线"}},ac={info:{title:"车站资讯",num:"车站编号",zhSecondary:"中文第二名称",enSecondary:"英文第二名称"},interchange:{title:"换乘",within:"同站换乘",outStation:"出站换乘",outSystem:"系统外换乘",addGroup:"添加换乘组合",noInterchanges:"非换乘站",add:"添加换乘",copy:"复制换乘",remove:"删除换乘"},branch:{type:"类型",through:"贯通(无需换乘)",nonThrough:"非贯通(需换乘)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多设置",service:"列车类别",local:"普通车",express:"快车",direct:"直达车",facility:"附近设施",pivot:"环线上的枢纽车站",oneLine:"在一行内展示中英文站名",intPadding:"车站名与换乘线路间的间距",intPaddingApplyGlobal:"将当前的间距应用到所有车站上",apply:"应用",characterSpacing:"车站名文字间距"},footer:{current:"设置为当前车站",remove:"删除"}},ic={title:"添加车站",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",preposition:"相对位置",before:"先于",after:"后于",pivot:"定位车站",pleaseSelect:"请选择...",error:"添加车站失败,请检查您的选项后重试。"},sc={title:"添加支线或外部路线",where:"目标位置",new:"添加一条支线",ext:"添加一条外部路线",from:"介于",to:"和",position:"位置",upper:"上方",lower:"下方"},lc={title:"车站自动编号",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",from:"起始编号",maxLength:"编号位数",sort:"排序方式",asc:"升序",desc:"降序"},cc="机场",uc="逆时针",dc="支线",hc="来自",fc="顺时针",pc="关闭",gc="颜色",mc="导入",vc="管理",yc="否",bc="无",wc="项目",xc="重新加载",Sc="风格",Oc="未知",_c="查看",Cc="访问",Rc="是",Ac={all:"全部",destination:"终点站站牌",runin:"当前站名牌",railmap:"站台门路线图",indoor:"车内路线图",platform:"站台编号"},Ec={mtr:"港铁",gzmtr:"广州地铁",shmetro:"上海地铁",shsubrwy:"上海市域铁路"},Pc={HeaderActions:Ql,DownloadActions:Xl,OpenActions:Zl,DownloadModal:ec,GridTabs:tc,StationAgGrid:nc,StyleSidePanel:rc,BranchSidePanel:oc,StationSidePanel:ac,AddStationModal:ic,NewBranchModal:sc,AutoNumModal:lc,Airport:cc,"All projects":"所有项目",Anticlockwise:uc,"Are you sure to remove station? You cannot undo this action.":"您确定刪除此车站吗?您不能撤销此操作。","Blank project":"空白项目","Branch left end":"支线左端","Branch on the left":"左侧支线","Branch on the right":"右侧支线","Branch right end":"支线右端","Branch spacing":"支线间距",Branches:dc,by:hc,"Canvas scale":"画面缩放级别","Chinese name":"中文名称","Circle line":"环线",Clockwise:fc,Close:pc,"Coach number":"车厢编号",Colour:gc,"Connect to main line":"连接至主线","day ago":"天前","days ago":"天前","Disconnect from main line":"从主线断开","Disneyland resort":"迪士尼","Don't show me again":"不再显示","Edit project info":"编辑项目信息","Empty template":"空白模板","English name":"英文名称","Help and support":"帮助和支持","High speed rail":"高速铁路","hour ago":"小时前","hours ago":"小时前",Import:mc,"Import project":"导入项目","Just now":"刚刚","Last modified":"上次编辑","LEFT END":"线路左端","Loop direction":"环线方向","Loop line":"环线",Manage:vc,"Manage projects":"管理项目","minute ago":"分钟前","minutes ago":"分钟前","National rail":"国家铁路","Ngong Ping 360":"昂坪360",No:yc,"No branches found":"未找到支线",None:bc,"now and enjoy an even better rail map design experience!":",享受更好的线路图设计体验!","Open selected":"打开选中项目","Open template":"打开模板","Paid area":"付费区换乘",Project:wc,"Project selected is invalid or corrupted.":"选中的项目无效或已损坏。","Project Selector":"项目选择器","Project name":"项目名称",Reload:xc,"Remove project":"删除项目","Remove station":"删除车站","RIGHT END":"线路右端","Saved projects":"保存的项目","Secondary names":"第二名称","Select canvas":"选择画面","Set as midpoint":"设置为半环站","Span digits over rows":"跨行显示数字",Style:Sc,"Station Chinese name":"车站中文名称","Station English name":"车站英文名称","Station name":"车站名称","Target station":"目标车站","Terms and conditions":"条款及细则","Text on the left":"换乘文字靠左","Text on the right":"换乘文字靠右","Try out":"马上试用","Unable to connect to main line.":"无法连接至主线。","Unable to disconnect from main line.":"无法从主线断开。","Unable to remove this station.":"无法删除此车站。",Unknown:Oc,View:_c,Visit:Cc,"Visit GitHub":"访问GitHub",Yes:Rc,"You have reached the maximum number of projects.":"您已到达项目数量上限。",CanvasType:Ac,RmgStyle:Ec},jc={editStyle:"風格化設定"},Nc={downloads:"下載",configFile:"設定檔",images:"圖像"},Lc={invalidType:"無效的檔案種類!只接受JSON種類的檔案。",unknownError:"讀取上載的檔案時發生錯誤!請重試。"},Mc={title:"下載圖像",canvas:"畫面",transparent:"透明背景",showBorder:"顯示邊綫",scale:"縮放比例",format:"檔案種類",pleaseSelect:"請選擇...",png:"PNG影像",svg:"SVG影像(網頁用)",downloadOne:"下載當前車站",downloadAll:"下載所有車站"},Tc={main:"主綫",branch:"支綫",external:"外部路綫",addStation:"新增車站",editLine:"路綫段設定"},Ic={num:"車站編碼",interchange:"轉車",coline:"共綫"},$c={header:"風格化設定",layout:{title:"佈局",canvasHeight:"畫面高度",destinationWidth:"終點站牌闊度",runinWidth:"當前站名牌闊度",railmapWidth:"幕門路綫圖闊度",indoorWidth:"車內路綫圖闊度",verticalPosition:"垂直方向位置",branchSpacing:"支綫間距",branchSpacingLoop:"垂直邊距",padding:"路綫圖邊距",directionGzX:"終點站水平方向位置",directionGzY:"終點站垂直方向位置"},design:{title:"設計",zhLineName:"路綫中文名稱",enLineName:"路綫英文名稱",lineNum:"路綫編碼",direction:"當前車站行車方向",left:"向左",right:"向右",platformNum:"月台編號",psdNum:"幕門編號",panelType:"資訊板樣式",gz1:"1號線",gz28:"2/8號線(松下)",gz2otis:"2/8號線(奧的斯)",gz3:"3號線",gz4:"4號線",gz5:"5號線",gz11:"11號線",gz1822:"18/22號線",gz6:"2010樣式",gzgf:"2016樣式",gz1421:"2017樣式",gz7w:"2022樣式",sh:"預設",sh2020:"2020樣式(預覽版)",nameDisplay:"顯示車站名稱",alternatively:"交錯顯示",onOneSide:"同一側",flip:"反轉位置",firstStationNameDisplay:"顯示第一個車站的名稱",upwards:"頂部",downward:"底部",legacyDestination:"於終點站牌顯示路綫名稱",overrideTerminal:"覆寫終點站",terminalZhName:"終點站中文名稱",terminalEnName:"終點站英文名稱"},note:{title:"備註",add:"新增備註",zhNote:"中文備註",enNote:"英文備註",positionX:"水平方向位置",positionY:"垂直方向位置",border:"顯示邊線",remove:"移除備註"},loop:{title:"環綫",isLoop:"視作環綫",isBank:"在幕門路綫圖中以平行四邊形顯示環綫",leftRightFactor:"左右參數",bottomFactor:"底部參數"}},Dc={header:"路綫段設定",branch:{title:"支綫"},coline:{title:"共綫",add:"新增共綫"},action:{title:"動作",autoNum:"車站自動編碼",reverse:"旋轉整條路綫",flip:"反轉整條路綫"}},kc={info:{title:"車站資訊",num:"車站編碼",zhSecondary:"中文第二名稱",enSecondary:"英文第二名稱"},interchange:{title:"轉車",within:"同站轉車",outStation:"出站轉車",outSystem:"系統外轉車",addGroup:"新增轉車組合",noInterchanges:"非轉車站",add:"新增轉綫",copy:"製作轉綫副本",remove:"移除轉綫"},branch:{type:"種類",through:"直通(無需轉車)",nonThrough:"非直通(需轉車)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多設定",service:"列車類別",local:"普通",express:"快速",direct:"直達",facility:"周邊設施",none:"無",pivot:"環綫上的樞紐車站",oneLine:"在一行內展示中英文站名",intPadding:"車站名與換乘線路間的間距",intPaddingApplyGlobal:"將當前的間距應用到所有車站上",apply:"應用",characterSpacing:"車站名文字間距"},footer:{current:"設定為當前車站",remove:"移除"}},zc={title:"新增車站",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",preposition:"相對位置",before:"先於",after:"後於",pivot:"定位車站",pleaseSelect:"請選擇...",error:"新增車站失敗,請檢查你的選擇後重試。"},Fc={title:"新增支綫或外部路綫",where:"目標位置",new:"新增一條支綫",ext:"新增一條外部路綫",from:"介乎於",to:"與",position:"位置",upper:"上方",lower:"下方"},Bc={title:"車站自動編碼",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",from:"起始編碼",maxLength:"編碼位數",sort:"排序方式",asc:"升序",desc:"降序"},Hc="機場",Vc="反時針",Uc="支綫",Gc="來自",Wc="順時針",Kc="關閉",Yc="顏色",Jc="匯入",qc="管理",Qc="否",Xc="無",Zc="專案",eu="重新載入",tu="風格",nu="未知",ru="檢視",ou="造訪",au="是",iu={all:"全部",destination:"終點站牌",runin:"當前站名牌",railmap:"幕門路綫圖",indoor:"車內路綫圖",platform:"站台編號"},su={mtr:"港鐵",gzmtr:"廣州地鐵",shmetro:"上海地鐵",shsubrwy:"上海市域鐵路"},lu={HeaderActions:jc,DownloadActions:Nc,OpenActions:Lc,DownloadModal:Mc,GridTabs:Tc,StationAgGrid:Ic,StyleSidePanel:$c,BranchSidePanel:Dc,StationSidePanel:kc,AddStationModal:zc,NewBranchModal:Fc,AutoNumModal:Bc,Airport:Hc,"All projects":"所有專案",Anticlockwise:Vc,"Are you sure to remove station? You cannot undo this action.":"確定移除該車站嗎?此動作無法還原。","Blank project":"空白專案","Branch left end":"支綫左端","Branch on the left":"左側支綫","Branch on the right":"右側支綫","Branch right end":"支綫右端","Branch spacing":"支綫間距",Branches:Uc,by:Gc,"Canvas scale":"畫面縮放比例","Chinese name":"中文名稱","Circle line":"環綫",Clockwise:Wc,Close:Kc,"Coach number":"車卡編號",Colour:Yc,"Connect to main line":"連接至主綫","day ago":"日前","days ago":"日前","Disconnect from main line":"从主綫斷開","Disneyland resort":"迪士尼","Don't show me again":"不再顯示","Edit project info":"修改專案資訊","Empty template":"空白範本","English name":"英文名稱","Help and support":"幫助及支援","High speed rail":"高速鐵路","hour ago":"小时前","hours ago":"小时前",Import:Jc,"Import project":"匯入專案","Just now":"剛才","Last modified":"上次修改","LEFT END":"路綫左端","Loop direction":"環綫方向","Loop line":"環綫",Manage:qc,"Manage projects":"管理專案","minute ago":"分鐘前","minutes ago":"分鐘前","National rail":"國家鐵路","Ngong Ping 360":"昂坪360",No:Qc,"No branches found":"未找到支綫",None:Xc,"now and enjoy an even better rail map design experience!":",享受更好的路綫圖設計體驗!","Open selected":"開啟所選專案","Open template":"開啟範本","Paid area":"付費區轉車",Project:Zc,"Project selected is invalid or corrupted.":"所選專案無效或者已損壞。","Project Selector":"專案選擇器","Project name":"專案名稱",Reload:eu,"Remove project":"移除專案","Remove station":"移除車站","RIGHT END":"路綫右端","Saved projects":"儲存的專案","Secondary names":"第二名稱","Select canvas":"選擇畫面","Set as midpoint":"設定為半環站","Span digits over rows":"跨行顯示數字",Style:tu,"Station Chinese name":"車站中文名稱","Station English name":"車站英文名稱","Station name":"車站名稱","Target station":"目標車站","Terms and conditions":"條款及細則","Text on the left":"轉乘文字置左","Text on the right":"轉乘文字置右","Try out":"立即試用","Unable to connect to main line.":"無法連接至主綫。","Unable to disconnect from main line.":"無法從主綫斷開。","Unable to remove this station.":"無法移除該車站。",Unknown:nu,View:ru,Visit:ou,"Visit GitHub":"造訪GitHub",Yes:au,"You have reached the maximum number of projects.":"你已到達專案數量上限。",CanvasType:iu,RmgStyle:su},cu={},uu={editStyle:"스타일 설정"},du={downloads:"다운로드",configFile:"설정 파일",images:"이미지"},hu={invalidType:"잘못된 파일 종류! JSON 종류의 파일만 받습니다.",unknownError:"업로드한 파일을 가져오는 중 오류가 발생했습니다! 다시 시도해 주세요."},fu={title:"이미지 다운로드",canvas:"화면",transparent:"투명 배경",showBorder:"테두리 보이기",scale:"확대/ 축소 수준",format:"파일 종류",pleaseSelect:"선택해주세요",png:"PNG 이미지",svg:"SVG 이미지(웹용)",downloadOne:"현재 역 다운로드",downloadAll:"모든 역 다운로드"},pu={main:"주노선",branch:"지노선",external:"외부 노선",addStation:"역 추가",editLine:"노선 구간 설정"},gu={num:"역 번호",interchange:"환승",coline:"공용"},mu={header:"스타일 설정",layout:{title:"구성",canvasHeight:"화면 고도",destinationWidth:"터미널 정거장 너비",runinWidth:"현재 정거장 너비",railmapWidth:"승강장문 노선도 폭",indoorWidth:"차내 노선도 폭",verticalPosition:"수직 방향 위치",branchSpacing:"지선 간격",branchSpacingLoop:"수직 여백",padding:"로드맵 여백",directionGzX:"터미널 수평 방향 위치",directionGzY:"터미널 수직 방향 위치"},design:{title:"디자인",zhLineName:"노선 한자 명칭",enLineName:"노선 영문 명칭",lineNum:"노선 번호",direction:"주행 방향",left:"왼쪽으로",right:"오른쪽으로",platformNum:"플랫폼 번호",psdNum:"플랫폼 도어 번호",panelType:"플랫폼 도어 패널 스타일",gz1:"1호선",gz28:"2/8호선(파나소닉)",gz2otis:"2/8호선(오디스)",gz3:"3호선",gz4:"4호선",gz5:"5호선",gz11:"11호선",gz1822:"18/22호선",gz6:"2010년 모양",gzgf:"2016년 모양",gz1421:"2017년 모양",gz7w:"2022년 모양",sh:"묵인",sh2020:"2020모양(사전 검토)",nameDisplay:"역 명칭 보이기",alternatively:"교차 표시",onOneSide:"같은 쪽",flip:"위치를 뒤집다",firstStationNameDisplay:"첫 번째 역 이름 표시 위치",upwards:"위쪽",downward:"아래쪽",legacyDestination:"터미널에 경로 명칭 표시",overrideTerminal:"끝점 다시 쓰기",terminalZhName:"터미널 한자 명칭",terminalEnName:"터미널 영문 명칭"},note:{title:"설명",add:"설명 추가",zhNote:"한자 설명",enNote:"영문 설명",positionX:"수평 방향 위치",positionY:"수직 방향 위치",border:"테두리 보이기",remove:"설명 삭제"},loop:{title:"환상선",isLoop:"순환선으로 간주하기",isBank:"승강장 도면에 평행사변형으로 순환선을 표시하기",leftRightFactor:"좌우 파라미터",bottomFactor:"바닥 인자"}},vu={header:"노선 구간 설정",branch:{title:"지선"},coline:{title:"공선",add:"공선 추가"},action:{title:"조작",autoNum:"역 자동 번호 매기기",reverse:"전체 노선을 회전하기",flip:"전체 노선을 뒤집기"}},yu={info:{title:"역 정보",num:"역 번호",zhSecondary:"한자 제2명칭",enSecondary:"영문 제2명칭"},interchange:{title:"환승",within:"같은 역에서 환승",outStation:"역을 나가 환승",outSystem:"시스템외환승",addGroup:"환승 조합 추가",noInterchanges:"비환승역",add:"환승 추가",copy:"환승 복사",remove:"환승 삭제"},branch:{type:"유형",through:"관통(환승 불필요)",nonThrough:"비관통(환승 필요)",firstStation:"첫 번째 역",position:"위치",upper:"위쪽",lower:"아래쪽"},more:{title:"자세한 설정",service:"열차 종류",local:"서행",express:"급행",direct:"특급",facility:"인근 시설",pivot:"순환선의 허브 역",oneLine:"한 줄 안에 한자와 영문의 역명을 전시하기",intPadding:"역명과 환승 노선 사이의 간격",intPaddingApplyGlobal:"현재 간격을 모든 역에 적용",apply:"응용"},footer:{current:"현재 역으로 설정",remove:"삭제"}},bu={title:"역 추가",where:"목표 위치",main:"주선로",branch:"지선",external:"외부 노선",preposition:"상대 위치",before:"전에",after:"후에",pivot:"위치추적역",pleaseSelect:"선택해주세요",error:"스테이션 추가에 실패하였습니다, 옵션을 확인하신 후 다시 시도하십시오."},wu={title:"지선 또는 외부 노선 추가",where:"목표 위치",new:"지선을 첨가",ext:"외부 노선 추가",from:"부터",to:"까지",position:"위치",upper:"위쪽",lower:"아래쪽"},xu={title:"역 자동 번호 매기기",where:"목표 위치",main:"주선",branch:"지선",external:"외부 노선",from:"시작 번호",maxLength:"번호 자릿수",sort:"정렬 방식",asc:"오름차순",desc:"내림차순"},Su="공항",Ou="지선",_u="에서 오다",Cu="색깔",Ru="무",Au="프로젝트",Eu="스타일",Pu="미지",ju="찾아 보기",Nu="방문",Lu={all:"모두",destination:"터미널 번호판",runin:"현재 역 번호판",railmap:"플랫폼 도어 노선도",indoor:"차내 노선도"},Mu={mtr:"홍콩 지하철",gzmtr:"광저우 지하철",shmetro:"상해 지하철"},Tu={HeaderActions:uu,DownloadActions:du,OpenActions:hu,DownloadModal:fu,GridTabs:pu,StationAgGrid:gu,StyleSidePanel:mu,BranchSidePanel:vu,StationSidePanel:yu,AddStationModal:bu,NewBranchModal:wu,AutoNumModal:xu,Airport:Su,"All projects":"모든 프로젝트","Are you sure to remove station? You cannot undo this action.":"이 역을 삭제하시겠습니까? 이 작업을 취소할 수 없습니다.","Blank project":"백지 프로젝트","Branch left end":"지선 좌단","Branch on the left":"좌측 지선","Branch on the right":"우측 지선","Branch right end":"지선 우단","Branch spacing":"지선 간격",Branches:Ou,by:_u,"Canvas scale":"화면 크기 조정 단계","Chinese name":"한자 명칭",Colour:Cu,"Connect to main line":"메인 라인에 연결","day ago":"일 전","days ago":"일 전","Disconnect from main line":"본선에서 끊기다","Disneyland resort":"디즈니","Edit project info":"프로젝트 정보 편집","Empty template":"공백 틀","English name":"영문 명칭","Help and support":"도움과 지지","High speed rail":"고속 철도","hour ago":"시간 전","hours ago":"시간 전","Import project":"프로젝트 가져오기","Just now":"방금","Last modified":"마지막 편집","minute ago":"분 전에","minutes ago":"분 전에","National rail":"국가 철도","No branches found":"지선을 찾지 못했다.",None:Ru,"Open selected":"선택한 프로젝트 열기","Open template":"틀 열기","Paid area":"유료환승",Project:Au,"Project selected is invalid or corrupted.":"선택한 항목이 잘못되었거나 손상되었습니다.","Project name":"프로젝트 명칭","Remove project":"프로젝트 삭제","Remove station":"역 삭제","Saved projects":"저장된 프로젝트","Select canvas":"화면 선택",Style:Eu,"Station Chinese name":"역 한자 명칭","Station English name":"역 영문 명칭","Station name":"역 명칭","Target station":"목표 역","Terms and conditions":"조관 및 세칙","Text on the left":"글로 갈아타면 왼쪽으로 붙다","Text on the right":"글로 갈아타면 오른쪽으로 붙다","Unable to connect to main line.":"메인 라인에 연결할 수 없습니다.","Unable to disconnect from main line.":"메인라인에서 연결이 되지 않습니다.","Unable to remove this station.":"이 역은 삭제할 수 없습니다.",Unknown:Pu,View:ju,Visit:Nu,"Visit GitHub":"GitHub 방문하기","You have reached the maximum number of projects.":"프로젝트 수량 상한에 도달했습니다.",CanvasType:Lu,RmgStyle:Mu},Iu=new R.I18nBuilder().use(va).withAppName("Rail Map Generator").withLng(R.getLanguage()).withDefaultResource(Il).withResource("en",ql).withResource("zh-Hans",Pc).withResource("zh-Hant",lu).withResource("ja",cu).withResource("ko",Tu).build(),$u="modulepreload",Du=function(e){return"/rmg/"+e},Zn={},Zr=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),s=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));o=Promise.allSettled(n.map(l=>{if(l=Du(l),l in Zn)return;Zn[l]=!0;const u=l.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector('link[href="'.concat(l,'"]').concat(d)))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":$u,u||(f.as="script"),f.crossOrigin="",f.href=l,s&&f.setAttribute("nonce",s),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error("Unable to preload CSS for ".concat(l))))})}))}function a(i){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=i,window.dispatchEvent(s),!s.defaultPrevented)throw i}return o.then(i=>{for(const s of i||[])s.status==="rejected"&&a(s.reason);return t().catch(a)})};var eo=function(){if(typeof Map<"u")return Map;function e(t,n){var r=-1;return t.some(function(o,a){return o[0]===n?(r=a,!0):!1}),r}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(n){var r=e(this.__entries__,n),o=this.__entries__[r];return o&&o[1]},t.prototype.set=function(n,r){var o=e(this.__entries__,n);~o?this.__entries__[o][1]=r:this.__entries__.push([n,r])},t.prototype.delete=function(n){var r=this.__entries__,o=e(r,n);~o&&r.splice(o,1)},t.prototype.has=function(n){return!!~e(this.__entries__,n)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(n,r){r===void 0&&(r=null);for(var o=0,a=this.__entries__;o0},e.prototype.connect_=function(){!Xt||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Vu?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Xt||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var n=t.propertyName,r=n===void 0?"":n,o=Hu.some(function(a){return!!~r.indexOf(a)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),to=function(e,t){for(var n=0,r=Object.keys(t);n"u"||!(Element instanceof Object))){if(!(t instanceof ke(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(t)||(n.set(t,new Xu(t)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(t instanceof ke(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(t)&&(n.delete(t),n.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(n){n.isActive()&&t.activeObservations_.push(n)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,n=this.activeObservations_.map(function(r){return new Zu(r.target,r.broadcastRect())});this.callback_.call(t,n,t),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),ro=typeof WeakMap<"u"?new WeakMap:new eo,oo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=Uu.getInstance(),r=new ed(t,n,this);ro.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){oo.prototype[e]=function(){var t;return(t=ro.get(this))[e].apply(t,arguments)}});var td=function(){return typeof Ot.ResizeObserver<"u"?Ot.ResizeObserver:oo}();window.ResizeObserver||(window.ResizeObserver=td);var Zt=function(){return Zt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n`";if(!r){const a=new Error(o);throw a.name="ContextError",(n=Error.captureStackTrace)==null||n.call(Error,a,t),a}return r}return[e.Provider,t,e]}function ad(e){return e==null?void 0:e[0]}function Bt(e){return e!=null&&e.length?e[e.length-1]:void 0}function ao(e,t,n=1,r=!0){if(t===0)return-1;let o=e+n;return e===-1&&(o=n>0?0:t-1),r?o=(o%t+t)%t:o=Math.max(0,Math.min(o,t-1)),o}function id(e,t,n=!0){return ao(e,t,-1,n)}function sd(e,t,n=!0){const r=ao(e,t.length,1,n);return t[r]}function ld(e,t,n=!0){const r=id(e,t.length,n);return t[r]}function _n(e){return Array.isArray(e)}function cd(e){return _n(e)&&e.length===0}function Cn(e){return e!==null&&typeof e=="object"&&!_n(e)}function ud(e){return Cn(e)&&Object.keys(e).length===0}function io(e){return _n(e)?cd(e):Cn(e)?ud(e):e==null||e===""}function gt(e){return typeof e>"u"}function so(e){return typeof e<"u"}function dd(e,t){const n={};return t.forEach(r=>{r in e&&(n[r]=e[r])}),n}function Rn(e,t){const n={...e};return t.forEach(r=>{delete n[r]}),n}function hd(e){return typeof e=="function"}function L(e,...t){return hd(e)?e(...t):e}var Et=function(e,t){for(var n,r=g.Children.toArray(e),o=0,a=r;o{var t;return(t=typeof e=="string"||typeof e=="number"?e:e[Object.keys(e)[0]])==null?void 0:t.toString()},fd=(e,t)=>typeof e!="string"||io(t)?e:e.toString().replace(new RegExp(vd(t),"gi"),n=>"".concat(n,"")),pd=e=>lo(e,t=>{var n;return((n=t==null?void 0:t.type)==null?void 0:n.displayName)==="AutoCompleteItem"}).map(t=>{const n=dd(t.props,["value","label","fixed","disabled"]),{getValue:r=An}=t.props,o=r(n.value);return{...so(n.label)?n:{...n,label:o},value:o,originalValue:n.value}}),gd=()=>({bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),md=(e,t,n)=>(t==null?void 0:t.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||(n==null?void 0:n.toLowerCase().indexOf(e==null?void 0:e.toLowerCase()))>=0||tr(e,t)>=.5||tr(e,n)>=.5;function vd(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const yd=(e,t)=>Et(e,n=>{var r;return((r=n==null?void 0:n.type)==null?void 0:r.displayName)==="AutoCompleteItem"&&n.props.value===(t==null?void 0:t.value)}),bd=(e,t)=>Et(e,n=>{var r;return((r=n==null?void 0:n.type)==null?void 0:r.displayName)==="AutoCompleteItem"&&n.props.value===(t==null?void 0:t.value)}),wd=(e,t)=>so(Et(e,n=>{var r,o;const a=L(((r=n.props)==null?void 0:r.getValue)||An,((o=n.props)==null?void 0:o.value)||{});return t.some(i=>i.value===a)})),xd=(e,t)=>{const n={},r={},{field:o}=e;return o&&Object.keys(o).forEach(a=>{if(a.startsWith("--input")===!1)n[a]=o[a];else{let i=o[a];const s=a.replace("--input-","").replace(/-([a-z])/g,function(l){return l[1].toUpperCase()});i.indexOf(".")!==-1&&(i=i.substring(i.indexOf(".")+1)),r[s]=i}}),{...t&&{...n,...r,_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3},cursor:"text",h:"fit-content"}};function Sd(e){var t;let{prefocusFirstItem:n=!0,closeOnBlur:r=!0,creatable:o,emphasize:a,emptyState:i=!0,defaultEmptyStateProps:s={},freeSolo:l,isReadOnly:u,listAllValuesOnFocus:d,maxSuggestions:f,multiple:h,closeOnSelect:p=!h,defaultValue:m,defaultValues:y=m?[m]:[],onReady:w,defaultIsOpen:b,disableFilter:x,isLoading:$=!1,placement:S="bottom",restoreOnBlurIfEmpty:j=!l,shouldRenderSuggestions:B=()=>!0,submitKeys:P=[],suggestWhenEmpty:de,value:oe,values:Ee=oe?typeof oe=="string"?[oe]:[...oe]:void 0}=e;l=l||(h?!0:e.freeSolo);const{isOpen:N,onClose:ae,onOpen:he}=Io({defaultIsOpen:b}),ie=g.useMemo(()=>L(e.children,{isOpen:N,onClose:ae,onOpen:he}),[e.children,N]),M=g.useMemo(()=>pd(ie),[ie]),H=g.useRef(null),Fe=g.useRef(null),T=g.useRef(null),V=g.useRef(null),[fe,we]=g.useState(!1);let Pe="";h?Pe="":gt(y)?gt(Ee)||(Pe=Ee[0]):Pe=y[0];const[se,Be]=g.useState(Pe!=null?Pe:""),jt=g.useMemo(()=>x?M:M.filter(v=>v.fixed||L(e.filter||md,se,v.value,v.label)||fe).filter((v,_)=>f?v.fixed||_[...jt,...Nn],[jt,Nn]),[le,Nt]=$o({defaultValue:y.map(v=>v==null?void 0:v.toString()),value:Ee,onChange:v=>{const _=D.find(A=>A.value===v[0]);if(!_)return;const k=v.map(A=>D.find(te=>te.value===A));L(e.onChange,h?v:v[0],h?k:_)}});g.useEffect(()=>{D.length===0&&!i&&N&&ae()},[D.length,i,N]);const[je,pe]=g.useState(n?(t=M[0])==null?void 0:t.value:null),So=e.maxSelections||le.length+1,Lt=D.findIndex(v=>v.value===je),Ln=sd(Lt,D,!!e.rollNavigation),Mn=ld(Lt,D,!!e.rollNavigation),xe=ad(D),Tn=Bt(D),In=!D.some(v=>v.value===je);g.useEffect(()=>{var v;In&&pe(n?(v=M[0])==null?void 0:v.value:null)},[In]),Do(()=>{n&&pe(xe==null?void 0:xe.value)},[se,xe==null?void 0:xe.value]),g.useEffect(()=>{var v;!N&&n&&pe((v=M[0])==null?void 0:v.value)},[N]),g.useEffect(()=>{N&&d&&we(!0)},[N,d,we]),g.useEffect(()=>{const v=M.find(_=>_.value===je);L(e.onOptionFocus,{item:v,focusMethod:V.current,isNewInput:v==null?void 0:v.creatable})},[je,e.onOptionFocus]);const Mt=v=>{var _,k;const A=D.find(J=>J.value===v),te=(A==null?void 0:A.label)||(A==null?void 0:A.value);Be(()=>h?"":te!=null?te:""),!le.includes(v)&&le.lengthh?[...J,v]:[v]),h&&((_=H.current)==null||_.focus()),e.focusInputOnSelect&&((k=H.current)==null||k.focus()),L(e.onSelectOption,{item:A,selectMethod:V.current,isNewInput:A==null?void 0:A.creatable}),A!=null&&A.creatable&&L(e.onCreateOption,{item:Rn(A,["noFilter"]),selectMethod:V.current}),p&&ae()},$n=(v,_)=>{var k;Nt(J=>{const Se=M.find(ge=>ge.value===v);return Se?(L(e.onTagRemoved,v,Se,J),J.filter(ge=>ge!==v)):J});const A=M.find(J=>J.value===v),te=(A==null?void 0:A.label)||(A==null?void 0:A.value);se===te&&Be(""),_&&((k=H.current)==null||k.focus())},Oo=v=>{var _;Nt([]),v&&((_=H.current)==null||_.focus())},Dn=h?le.map(v=>{var _;return{label:((_=M.find(k=>k.value===(v==null?void 0:v.toString())))==null?void 0:_.label)||v,onRemove:()=>$n(v)}}):[];return g.useEffect(()=>{L(w,{tags:Dn})},[le]),{autoCompleteProps:e,children:ie,filteredList:D,filteredResults:jt,focusedValue:je,defaultEmptyStateProps:s,getEmptyStateProps:v=>{if(D.every(_=>_.noFilter)&&i&&!o)return typeof i=="boolean"?v:L(i,{query:se})},getGroupProps:v=>{const _=wd(v.children,D);return{divider:{hasFirstChild:yd(v.children,xe),hasLastChild:bd(v.children,Bt(D.filter(k=>gt(k==null?void 0:k.noFilter))))},group:{display:_?"initial":"none"}}},getInputProps:(v,_)=>{const{onBlur:k,onChange:A,onFocus:te,onKeyDown:J,variant:Se,...ge}=v;return{wrapper:{ref:Fe,onClick:()=>{var O;(O=H==null?void 0:H.current)==null||O.focus()},...xd(_,h),...ge},input:{isReadOnly:u,onFocus:O=>{L(te,O),e.openOnFocus&&!u&&he(),e.selectOnFocus&&O.target.select(),d&&we(!0)},onBlur:O=>{var ne,U;L(k,O);const G=O.relatedTarget===(T==null?void 0:T.current)||((ne=T.current)==null?void 0:ne.contains(O.relatedTarget)),Tt=(U=Fe.current)==null?void 0:U.contains(O.relatedTarget);if(!G&&!Tt&&(r&&ae(),!le.includes(O.target.value)&&j)){const It=Bt(le),Ne=M.find($t=>$t.value===It),ce=(Ne==null?void 0:Ne.label)||(Ne==null?void 0:Ne.value)||"";Be(ce)}},onChange:O=>{const ne=O.target.value;L(A,O),Be(ne);const U=io(ne);L(B,ne)&&(!U||de)?he():ae(),we(!1)},onKeyDown:O=>{var ne;L(J,O),V.current="keyboard";const{key:U}=O,G=D[Lt];if(["Enter",...P].includes(U)){G&&!(G!=null&&G.disabled)&&N?Mt(G==null?void 0:G.value):(ne=H.current)==null||ne.focus(),O.preventDefault();return}if(U==="ArrowDown"){N?pe(Ln==null?void 0:Ln.value):he(),O.preventDefault();return}if(U==="ArrowUp"){N?pe(Mn==null?void 0:Mn.value):he(),O.preventDefault();return}if(U==="Tab"){N&&G&&!(G!=null&&G.disabled)?Mt(G==null?void 0:G.value):ae();return}if(U==="Home"){pe(xe==null?void 0:xe.value),O.preventDefault();return}if(U==="End"){pe(Tn==null?void 0:Tn.value),O.preventDefault();return}U==="Escape"&&(ae(),O.preventDefault())},value:se,variant:h?"unstyled":Se,...ge}}},getItemProps:(v,_)=>{var k;const{_fixed:A,_focus:te,children:J,disabled:Se,label:ge,value:O,fixed:ne,getValue:U=An,onClick:G,onMouseOver:Tt,sx:It,...Ne}=v,ce=_?O:(k=U(O))==null?void 0:k.toString(),$t=ce===je,_o=D.findIndex(He=>He.value===ce)>=0,Dt=J||ge||ce;return{item:{...typeof Dt!="string"||!a?{children:Dt}:{dangerouslySetInnerHTML:{__html:fd(Dt,se)}},"aria-selected":le.includes(ce),"aria-disabled":Se,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:He=>{var kn;L(G,He),Se?(kn=H.current)==null||kn.focus():Mt(ce)},onMouseOver:He=>{L(Tt,He),pe(ce),V.current="mouse"},sx:{...It,mark:{color:"inherit",bg:"transparent",...Cn(a)?a:{fontWeight:a?"extrabold":"inherit"}}},...$t&&(te||gd()),...ne&&A,...Ne},root:{isValidSuggestion:_o,value:ce}}},inputRef:H,interactionRef:V,isLoading:$,isOpen:N,itemList:M,listRef:T,onClose:ae,onOpen:he,placement:S,query:se,removeItem:$n,resetItems:Oo,setQuery:Be,tags:Dn,value:oe,values:le}}const Od=Re((e,t)=>{const n=Sd(e),{children:r,isOpen:o,onClose:a,onOpen:i,placement:s,resetItems:l,removeItem:u}=n;g.useImperativeHandle(t,()=>({resetItems:l,removeItem:u}));const{matchWidth:d=!0}=n.autoCompleteProps;return c.jsx(rd,{value:n,children:c.jsx(cn,{isLazy:!0,isOpen:o,onClose:a,onOpen:i,autoFocus:!1,placement:s,closeOnBlur:!0,matchWidth:d,children:c.jsx(Kt.div,{w:"full",ref:t,children:r})})})});Od.displayName="AutoComplete";const _d=Re((e,t)=>{const{focusedValue:n,getItemProps:r,interactionRef:o}=Ae(),a=g.useRef(),i=ot(t,a),s=r(e),{isValidSuggestion:l,value:u}=s.root,d=n===u;g.useEffect(()=>{var y;d&&o.current==="keyboard"&&((y=a==null?void 0:a.current)==null||y.scrollIntoView({behavior:"smooth",block:"nearest"}))},[d,o]),g.useEffect(()=>{typeof u!="string"&&console.warn("wow"),typeof u!="string"&>(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")},[]);const{children:f,dangerouslySetInnerHTML:h,...p}=s.item,m=Rn(p,["groupId"]);return l?c.jsx(ee,{ref:i,...Cd,...m,children:f||c.jsx("span",{dangerouslySetInnerHTML:h})}):null});_d.displayName="AutoCompleteItem";const Cd={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},Rd=Re((e,t)=>{const{children:n,showDivider:r,...o}=e,a=Rn(o,["groupSibling"]),{getGroupProps:i}=Ae(),{group:s}=i(e),l=Pd(e);return c.jsxs(un,{ref:t,...s,...a,children:[c.jsx(zn,{...l.top}),n,c.jsx(zn,{...l.bottom})]})}),Ad=Re((e,t)=>c.jsx(ee,{...Ed,...e,ref:t}));Rd.displayName="AutoCompleteGroup";Ad.displayName="AutoCompleteGroupTitle";const Ed={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},Pd=e=>{const{getGroupProps:t}=Ae(),n=e.groupSibling,{divider:{hasFirstChild:r,hasLastChild:o}}=t(e),a={my:2,borderColor:e.dividerColor},i={...a,mb:4,display:!e.showDivider||r?"none":""},s={...a,display:!e.showDivider||o||n?"none":""};return{top:i,bottom:s}},nr=Re((e,t)=>{const{isLoading:n}=Ae(),{loadingIcon:r,...o}=e;return c.jsxs(jo,{children:[c.jsx(wr,{...o,ref:t}),n&&c.jsx(No,{children:r||c.jsx(xr,{})})]})}),co=Re((e,t)=>{const{autoCompleteProps:n,inputRef:r,getInputProps:o,tags:a,setQuery:i,value:s,itemList:l}=Ae(),{children:u,isInvalid:d,hidePlaceholder:f,...h}=e,{value:p}=h;g.useEffect(()=>{if(s!==void 0&&(typeof s=="string"||s instanceof String)){const P=l.find(oe=>oe.value===s),de=P===void 0?s:P.label;i(de)}},[s]),g.useEffect(()=>{p!==void 0&&(typeof p=="string"||p instanceof String)&&i(p)},[p]);const m=Lo("Input",e);let{wrapper:y,input:w}=o(h,m);const{ref:b,...x}=y,$=ot(t,r),S=L(u,{tags:a});f&&(w={...w,placeholder:Array.isArray(S)&&S.length?void 0:w.placeholder});const j=c.jsx(nr,{isInvalid:d,...w,ref:$}),B=c.jsxs(Mo,{"aria-invalid":d,...x,ref:b,children:[S,c.jsx(br,{as:nr,...w,ref:$})]});return c.jsx(Sr,{children:n.multiple?B:j})});co.displayName="Input";co.id="Input";const jd=e=>{const{getEmptyStateProps:t,defaultEmptyStateProps:n}=Ae(),r=t(c.jsx(ee,{...Nd,...n,children:"No options found!"}));return c.jsx(un,{...e,children:r})},Nd={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},rr=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"],Ld=e=>{const t=$e.Children.map(e,(r,o)=>{var a;if(((a=r==null?void 0:r.type)==null?void 0:a.displayName)==="AutoCompleteGroup"){const i=$e.Children.toArray(e)[o+1];return $e.cloneElement(r,{groupSibling:i?i.type.displayName==="AutoCompleteGroup":!1})}return r}),n=$e.Children.toArray(t).filter(r=>{var o;return!rr.includes((o=r==null?void 0:r.type)==null?void 0:o.displayName)});return[$e.Children.toArray(t).filter(r=>{var o;return rr.includes((o=r==null?void 0:r.type)==null?void 0:o.displayName)}),n]},Md=Re((e,t)=>{const{children:n,loadingState:r,...o}=e,{listRef:a,isLoading:i}=Ae(),s=ot(t,a),[l,u]=Ld(n);return c.jsxs(dn,{ref:s,w:"inherit",...Td,...o,children:[i&&c.jsx(To,{children:r||c.jsx(xr,{size:"md"})}),!i&&c.jsxs(c.Fragment,{children:[l,c.jsx(jd,{}),u]})]})});Md.displayName="AutoCompleteList";const Td={py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}};g.memo(e=>{const{label:t,onRemove:n,disabled:r,...o}=e;return c.jsx(br,{children:c.jsxs(Ao,{borderRadius:"md",fontWeight:"normal",...r&&or,...o,children:[c.jsx(Eo,{children:t}),c.jsx(Po,{onClick:()=>!r&&L(n),cursor:"pointer",...r&&or})]})})});const or={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};var ar=function(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),o,a=[],i;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},ir=function(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,a;r0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},kd=function(e,t){var n=e.validator,r=e.onDebouncedChange,o=e.delay,a=e.optionList,i=e.defaultValue;e.onChange;var s=$d(e,["validator","onDebouncedChange","delay","optionList","defaultValue","onChange"]),l=g.useRef(null),u=ot(l,t),d=g.useRef("datalist-"+new Date().valueOf()),f=Dd(g.useState(!1),2),h=f[0],p=f[1],m=g.useRef();g.useEffect(function(){l.current&&(l.current.value=(i==null?void 0:i.toString())||"")},[i]);var y=function(b){var x=b.target.value;window.clearTimeout(m.current),n&&p(!n(x)),m.current=window.setTimeout(function(){r==null||r(x),m.current=void 0},o!=null?o:500)},w=function(b){var x=b.target.value;m.current!==void 0&&(window.clearTimeout(m.current),n&&p(!n(x)),r==null||r(x),m.current=void 0)};return c.jsxs(c.Fragment,{children:[c.jsx(wr,en({ref:u,list:d.current,variant:"flushed",size:"sm",h:6,onChange:y,onBlur:w,isInvalid:h},s)),a&&c.jsx("datalist",{id:d.current,children:a==null?void 0:a.map(function(b,x){return c.jsx("option",{children:b},x)})})]})},Ef=g.forwardRef(kd),tn=function(){return tn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},Vd=function(e){switch(e){case ye.DEV:return"red";case ye.UAT:return"orange";case ye.PRD:return"green"}};function Ud(e){var t=e.environment,n=e.version,r=e.popoverHeader,o=e.popoverBody,a=Hd(g.useState(!1),2),i=a[0],s=a[1];return c.jsxs(cn,{isOpen:i,onOpen:function(){return r&&s(!0)},onClose:function(){return s(!1)},children:[c.jsx(Fo,{children:c.jsx(hn,{ml:1,colorScheme:Vd(t),title:"".concat(t,": ").concat(n),cursor:r?"pointer":"help",children:t===ye.PRD?n:t})}),c.jsxs(dn,{children:[c.jsx(Bo,{}),c.jsx(Ho,{}),c.jsx(Vo,{children:r}),c.jsx(Or,{children:o})]})]})}var Gd=function(e,t,n){var r=new Blob([n],{type:t});Wd(e,r)},Wd=function(e,t){var n=window.URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(n)},Kd=function(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),o,a=[],i;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Yd(e){var t=e.cancelRef,n=e.isOpen,r=e.onClose,o=Kd(g.useState(!1),2),a=o[0],i=o[1],s=function(){i(!0);var l=R.storage.getAll(),u=R.getAppName(),d="".concat(u,"_BACKUP_").concat(new Date().toISOString(),".json");Gd(d,"application/json",JSON.stringify(l)),R.storage.clear(),setTimeout(function(){window.location.reload()},2e3)};return c.jsxs(Uo,{leastDestructiveRef:t,isOpen:n,onClose:r,children:[c.jsx(_r,{}),c.jsxs(Go,{children:[c.jsx(Cr,{children:"Warning 警告"}),c.jsx(Rr,{}),c.jsxs(Ar,{sx:{"& p":{my:1}},children:[c.jsx(Oe,{children:"Are you sure you want to reset the app? The webpage local storage for this app will be cleared. A copy of the local storage will be downloaded and it may be used for restoration (varies with app)."}),c.jsx(Oe,{children:"確定重設該應用程式嗎?應用程式的網頁本地儲存將會被清除。本地儲存的副本可供下載及用於復原(因應用程式而異)。"}),c.jsx(Oe,{children:"确定重置本应用程序吗?应用程序的网页本地存储将会被清除。本地存储的拷贝可供下载以及用于还原(因应用程序而異)。"})]}),c.jsxs(Er,{children:[c.jsx(tt,{ref:t,onClick:r,children:"Cancel"}),c.jsx(tt,{isLoading:a,colorScheme:"red",ml:3,onClick:s,children:"Confirm and reload"})]})]})]})}var Xe=function(){return Xe=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Qd(e){var t=e.error,n=e.errorInfo,r=e.allowReset,o=e.sx,a=Jd(e,["error","errorInfo","allowReset","sx"]),i=Y("RmgErrorBoundary"),s=fn("primary.500","primary.300"),l=qd(g.useState(!1),2),u=l[0],d=l[1],f=g.useRef(null),h=function(y){return c.jsx(W,{color:s,role:"button",onClick:function(){return d(!0)},children:y})},p=R.getAppName(),m=c.jsx(W,{color:s,href:"https://github.com/railmapgen/".concat(p==="rmg-home"?"railmapgen.github.io":p,"/issues"),isExternal:!0,children:"GitHub Issue"});return c.jsxs(Pr,Xe({status:"error",sx:Xe(Xe({},i),o)},a,{children:[c.jsx(jr,{}),c.jsx(Wo,{children:"Something went wrong!"}),c.jsxs(Ko,{children:[c.jsxs(Oe,{children:["Please try to refresh or re-import your configuration files. If the issue still persists, please consider upgrading your browser",r?c.jsxs(c.Fragment,{children:[" or ",h("reset this app")]}):"",". Should you need any help, please contact us by submitting an issue in ",m," with the details shown below."]}),c.jsxs(Oe,{children:["請嘗試重新整理或重新上載設定檔。如果問題仍然存在,請考慮更新你的瀏覽器",r?c.jsxs(c.Fragment,{children:["或",h("重設該應用程式")]}):"","。如需協助或與我們聯絡,請前往 ",m," 提交一個 Issue 並附以詳細資料。"]}),c.jsxs(Oe,{children:["请尝试刷新或者重新上传配置文件。如果问题仍然存在,请考虑更新您的浏览器",r?c.jsxs(c.Fragment,{children:["或者",h("重置本应用程序")]}):"","。如需帮助或者联系我们,请前往 ",m," 提交一个 Issue 并附上详细信息。"]}),c.jsxs(Oe,{as:"details",children:[t==null?void 0:t.toString(),c.jsx("br",{}),n==null?void 0:n.componentStack]}),r&&c.jsx(Yd,{cancelRef:f,isOpen:u,onClose:function(){return d(!1)}})]})]}))}var Xd=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,o){r.__proto__=o}||function(r,o){for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(r[a]=o[a])},e(t,n)};return function(t,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),nn=function(){return nn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Lf(e){var t=e.defaultValue,n=e.options,r=e.disabledOptions,o=th(e,["defaultValue","options","disabledOptions"]),a=g.useRef(null);g.useEffect(function(){a.current&&(a.current.value=(t==null?void 0:t.toString())||"")},[t]);var i=function(s,l){return c.jsx("option",{value:s,disabled:(r==null?void 0:r.find(function(u){return u.toString()===s}))!==void 0,children:l},s)};return c.jsx(Xo,on({ref:a,variant:"flushed",size:"sm",h:6},o,{children:Object.entries(n).map(function(s){var l=lr(s,2),u=l[0],d=l[1];return typeof d=="object"?c.jsx("optgroup",{label:u,children:Object.entries(d).map(function(f){var h=lr(f,2),p=h[0],m=h[1];return i(p,m)})},u):i(u,d)})}))}var Ht=function(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),o,a=[],i;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},cr=function(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,a;r0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a};function Mf(e){var t=e.defaultValue,n=e.min,r=e.max,o=e.step,a=e.onThrottledChange,i=e.leftIcon,s=e.rightIcon,l=Y("RmgThrottledSlider"),u=rh(g.useState(t!=null?t:0),2),d=u[0],f=u[1];g.useEffect(function(){t!==void 0&&d!==t&&f(t)},[t]);var h=nh(a!=null?a:function(){},500),p=function(){var y=Math.min(d+(o!=null?o:1)*10,r!=null?r:100);a==null||a(y),f(y)},m=function(){var y=Math.max(d-(o!=null?o:1)*10,n!=null?n:0);a==null||a(y),f(y)};return c.jsxs(ee,{sx:l,children:[i&&c.jsx(Yt,{size:"xs",variant:"ghost","aria-label":"Drag left",icon:i,onClick:m}),c.jsxs(Zo,{value:d,min:n,max:r,step:o,onChange:function(y){h(y),f(y)},children:[c.jsx(ea,{children:c.jsx(ta,{})}),c.jsx(na,{})]}),s&&c.jsx(Yt,{size:"xs",variant:"ghost","aria-label":"Drag right",icon:s,onClick:p})]})}var K=function(){return K=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a},dr=function(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,a;r button:first-of-type":{ml:1}}},vh={baseStyle:{w:"100%",h:"100%",position:"absolute",top:0,right:0,alignItems:"center",justifyContent:"center","& .rmg-loader__backdrop":{position:"absolute",w:"100%",h:"100%",zIndex:1500,bg:"blackAlpha.400"},"& .chakra-progress":{zIndex:2e3}}},me=function(e){return e==="dark"?"primary.300":"primary.500"},yh={baseStyle:function(e){var t=e.theme,n=e.colorMode;return{"& .rmg-multi-select__wrapper":{position:"relative",w:"100%",h:"25.75px",transform:"translateY(1.75px)",cursor:"default"},"& .rmg-multi-select__field":{position:"relative",w:"100%",minW:0,outline:0,appearance:"none",transitionProperty:"common",transitionDuration:"normal",pb:"1px",fontSize:"sm",h:"6",borderBottom:"1px solid",borderColor:"inherit",borderRadius:"0",px:"0",bg:"transparent",_active:{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},_focus:{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},_focusVisible:{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},"&.active":{borderColor:me(n),boxShadow:"0px 1px 0px 0px ".concat(Ke(t,me(n)))},"& > span:last-of-type":{position:"absolute",right:8}},"& .rmg-multi-select__icon-wrapper":{display:"inline-flex",justifyContent:"center",w:6,h:"100%",position:"absolute",right:2,top:0,fontSize:"xl","& svg":{h:"1em",w:"1em"}},"& .chakra-popover__content":{w:"unset",minW:200},"& .chakra-popover__body":{p:0,"li label":{p:2,w:"100%",_hover:{bg:n==="dark"?"whiteAlpha.200":"gray.100"},_active:{bg:n==="dark"?"whiteAlpha.300":"gray.200"}}}}}},sn=function(){return sn=Object.assign||function(e){for(var t,n=1,r=arguments.length;nwindow.open("https://github.com/railmapgen/rmg","_blank"),children:r("Visit GitHub")})})]})]})}const kh=()=>{const{t:e}=gn(),t=R.getEnv(),n=R.getAppVersion(),[r,o]=g.useState(!1);return c.jsxs(uo,{children:[c.jsx(pn,{as:"h4",size:"md",children:e("Rail Map Generator")}),c.jsx(Ud,{environment:t,version:n}),c.jsx(ga,{ml:"auto",children:c.jsx(Yt,{size:"sm",variant:"ghost","aria-label":"Help",icon:c.jsx($h,{}),onClick:()=>o(!0)})}),c.jsx(Dh,{isOpen:r,onClose:()=>o(!1)})]})},zh=()=>{const{t:e}=gn();return c.jsx(uo,{isAppClipHeader:!0,children:c.jsx(pn,{as:"h4",size:"md",children:e("Rail Map Generator")+" - "+e("Project Selector")})})},Fh=g.lazy(()=>Zr(()=>import("./app-router-ByZ3RjTs.js").then(e=>e.a),__vite__mapDeps([0,1,2,3]))),Bh=g.lazy(()=>Zr(()=>import("./app-clip-view-DQwDvxlj.js"),__vite__mapDeps([4,1,2,3])));function Hh(){return c.jsx(ya,{children:c.jsx(Th,{children:c.jsx(oh,{children:c.jsxs(ba,{children:[c.jsx(kt,{path:"/import",element:c.jsxs(sr,{suspenseFallback:c.jsx(ur,{isIndeterminate:!0}),children:[c.jsx(zh,{}),c.jsx(Bh,{})]})}),c.jsx(kt,{path:"/",element:c.jsxs(sr,{suspenseFallback:c.jsx(ur,{isIndeterminate:!0}),allowReset:!0,children:[c.jsx(kh,{}),c.jsx(Fh,{})]})}),c.jsx(kt,{path:"*",element:c.jsx(wa,{to:"/"})})]})})})})}window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function Vh(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(e=>{e.unregister()}).catch(e=>{console.error(e.message)})}var Ce=(e=>(e.MTR="mtr",e.GZMTR="gzmtr",e.SHMetro="shmetro",e.SHSuburbanRailway="shsubrwy",e))(Ce||{}),En=(e=>(e.Destination="destination",e.RunIn="runin",e.RailMap="railmap",e.Indoor="indoor",e.Platform="platform",e))(En||{});const dp={mtr:["destination","railmap"],gzmtr:["runin","railmap"],shmetro:["destination","runin","railmap","indoor"],shsubrwy:["destination","runin","platform"]};var ho=(e=>(e.CLOSE="CLOSE",e.STATION="STATION",e.STYLE="STYLE",e.BRANCH="BRANCH",e))(ho||{}),Uh=(e=>(e.left="left",e.right="right",e))(Uh||{}),Pn=(e=>(e.left="l",e.right="r",e))(Pn||{}),Gh=(e=>(e.through="through",e.nonThrough="nonthrough",e))(Gh||{}),fo=(e=>(e.local="local",e.express="express",e.direct="direct",e))(fo||{});const hp={airport:"Airport",hsr:"High speed rail",railway:"National rail",disney:"Disneyland resort",np360:"Ngong Ping 360"};var po=(e=>(e.gz1="gz1",e.gz28="gz28",e.gz2otis="gz2otis",e.gz3="gz3",e.gz4="gz4",e.gz5="gz5",e.gz11="gz11",e.gz1822="gz1822",e.gz6="gz6",e.gzgf="gzgf",e.gz1421="gz1421",e.gz7w="gz7w",e))(po||{}),go=(e=>(e.sh="sh",e.sh2020="sh2020",e))(go||{}),Wh=(e=>(e[e.PASSED=-1]="PASSED",e[e.CURRENT=0]="CURRENT",e[e.FUTURE=1]="FUTURE",e))(Wh||{}),Kh=(e=>(e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT",e))(Kh||{}),be=(e=>(e.CANVAS_TO_SHOW="canvasToShow",e.CANVAS_SCALE="canvasScale",e.PARAM_BY_ID="param:",e.PARAM_CONFIG_BY_ID="paramConfig:",e.DO_NOT_SHOW_RMT_MSG="doNotShowRMTMsg",e))(be||{}),mo=(e=>(e.APP_LOAD="APP_LOAD",e.STYLE_CHANGE="STYLE_CHANGE",e.OPEN_PARAM="OPEN_PARAM",e.NEW_PARAM="NEW_PARAM",e.UPLOAD_PARAM="UPLOAD_PARAM",e.OPEN_TEMPLATE="OPEN_TEMPLATE",e.REMOVE_PARAM="REMOVE_PARAM",e.UPDATE_PARAM_CONFIG="UPDATE_PARAM_CONFIG",e.ADD_STATION="ADD_STATION",e.REMOVE_STATION="REMOVE_STATION",e.ADD_BRANCH="ADD_BRANCH",e.AUTO_NUMBERING="AUTO_NUMBERING",e.REVERSE_STATIONS="REVERSE_STATIONS",e.CONNECT_BRANCH="CONNECT_BRANCH",e.DISCONNECT_BRANCH="DISCONNECT_BRANCH",e.SELECT_COLOUR="SELECT_COLOUR",e.DOWNLOAD_PARAM="DOWNLOAD_PARAM",e.DOWNLOAD_IMAGES="DOWNLOAD_IMAGES",e.APP_CLIP_VIEW_OPENED="APP_CLIP_VIEW_OPENED",e.APP_CLIP_VIEW_CLOSED="APP_CLIP_VIEW_CLOSED",e.APP_CLIP_VIEW_IMPORT="APP_CLIP_VIEW_IMPORT",e))(mo||{});const Yh={rmgStyle:Ce.MTR,paramConfig:void 0,canvasScale:1,canvasToShow:Object.values(En),sidePanelMode:ho.CLOSE,selectedStation:"linestart",selectedColine:void 0,selectedBranch:0,isShareTrackEnabled:void 0,globalAlerts:{},isLoading:void 0},vo=mn({name:"app",initialState:Yh,reducers:{setParamConfig:(e,t)=>{e.paramConfig=t.payload},updateParamModifiedTime:(e,t)=>{e.paramConfig&&(e.paramConfig.lastModified=t.payload)},setCanvasScale:(e,t)=>{e.canvasScale=t.payload},setCanvasToShow:(e,t)=>{e.canvasToShow=t.payload},setSidePanelMode:(e,t)=>{e.sidePanelMode=t.payload},setSelectedStation:(e,t)=>{e.selectedStation=t.payload},setSelectedColine:(e,t)=>{e.selectedColine=t.payload},setSelectedBranch:(e,t)=>{e.selectedBranch=t.payload},setIsShareTrackEnabled:(e,t)=>{e.isShareTrackEnabled=t.payload},setGlobalAlert:(e,t)=>{const{status:n,message:r,url:o,linkedApp:a}=t.payload;e.globalAlerts[n]={message:r,url:o,linkedApp:a}},closeGlobalAlert:(e,t)=>{delete e.globalAlerts[t.payload]},startLoading:e=>{e.isLoading=-1},setLoadingProgress:(e,t)=>{e.isLoading=t.payload},stopLoading:e=>{e.isLoading=void 0},openPaletteAppClip:(e,t)=>{e.paletteAppClipInput=t.payload,e.paletteAppClipOutput=void 0},closePaletteAppClip:e=>{e.paletteAppClipInput=void 0},onPaletteAppClipEmit:(e,t)=>{e.paletteAppClipOutput=t.payload,e.paletteAppClipInput=void 0}}}),{setParamConfig:fp,updateParamModifiedTime:Jh,setCanvasScale:gr,setCanvasToShow:qh,setSidePanelMode:pp,setSelectedStation:gp,setSelectedColine:mp,setSelectedBranch:vp,setIsShareTrackEnabled:yp,setGlobalAlert:bp,closeGlobalAlert:wp,startLoading:xp,setLoadingProgress:Sp,stopLoading:Op,openPaletteAppClip:_p,closePaletteAppClip:Cp,onPaletteAppClipEmit:Rp}=vo.actions,Qh=vo.reducer;var _e;(function(e){e.black="#000",e.white="#fff"})(_e||(_e={}));var yo=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};let Gt={};const Xh=(e,t)=>yo(void 0,void 0,void 0,function*(){if(e in Gt)return Gt[e];const r=yield(yield fetch(e,t)).json();return Gt[e]=r,r}),Zh=(e,t)=>yo(void 0,void 0,void 0,function*(){return yield Xh("/rmg-palette/resources/palettes/".concat(e,".json"),{signal:t})});var ef=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function s(d){try{u(r.next(d))}catch(f){i(f)}}function l(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(s,l)}u((r=r.apply(e,t||[])).next())})};const Ap=(e,t,n)=>ef(void 0,void 0,void 0,function*(){const[r,o]=e;if(r==="other")return e;try{const i=(yield Zh(r)).find(s=>s.id===o);return i?[r,o,i.colour,i.fg||_e.white]:(console.warn("[rmg-palette] updateTheme(".concat(r,", ").concat(o,"), line does not exist, returning old theme")),e)}catch(a){return console.warn("[rmg-palette] updateTheme(".concat(r,", ").concat(o,"), unexpected error occurs, returning old theme"),a),e}}),tf="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let mr=(e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=tf[n[e]&63];return t};const nf=e=>{switch(e){case Ce.MTR:return["hongkong","twl","#E2231A",_e.white];case Ce.GZMTR:return["guangzhou","gz1","#F3D03E",_e.black];case Ce.SHMetro:return["shanghai","sh1","#E4002B",_e.white];default:return["other","other","#AAAAAA",_e.white]}},rf=e=>{switch(e){case"zh-Hans":return["1号线","Line 1"];case"zh-Hant":return["荃灣綫","Tsuen Wan Line"];default:return["地鐵線","Metro Line"]}},dt=e=>({localisedName:{zh:"未命名 "+e,en:"Unnamed "+e},num:"00",services:[fo.local],parents:[],children:[],transfer:{groups:[{}],tick_direc:Pn.right,paid_area:!0},loop_pivot:!1,one_line:!0,int_padding:355,character_spacing:75}),of=(e,t)=>{const n=dt("linestart");n.localisedName={en:"LEFT END"};const r=dt("lineend");r.localisedName={en:"RIGHT END"};const o=mr(6),a=dt(o);a.num="01";const i=mr(6),s=dt(i);return s.num="02",n.children=[o],a.parents=["linestart"],a.children=[i],s.parents=[o],s.children=["lineend"],r.parents=[i],{svgWidth:{destination:1200,runin:1200,railmap:1200,indoor:1200,platform:1200},svg_height:300,style:e,y_pc:50,padding:10,branchSpacingPct:33,direction:Pn.left,platform_num:"1",theme:nf(e),line_name:rf(t),current_stn_idx:i,stn_list:{linestart:n,[o]:a,[i]:s,lineend:r},namePosMTR:{isStagger:!0,isFlip:!0},customiseMTRDest:{isLegacy:!1,terminal:!1},line_num:"1",spanLineNum:!0,psd_num:"1",coachNum:"1",info_panel_type:e===Ce.SHMetro?go.sh:po.gz1,direction_gz_x:40,direction_gz_y:70,coline:{},loop:!1,loop_info:{bank:!0,left_and_right_factor:1,bottom_factor:1}}},af=()=>of(Ce.MTR,"en"),bo=mn({name:"param",initialState:af(),reducers:{setSvgHeight:(e,t)=>{e.svg_height=t.payload},setSvgWidth:(e,t)=>{const{width:n,canvas:r}=t.payload;e.svgWidth[r]=n},setStyle:(e,t)=>{e.style=t.payload},setYPercentage:(e,t)=>{e.y_pc=t.payload},setBranchSpacingPct:(e,t)=>{e.branchSpacingPct=t.payload},setPaddingPercentage:(e,t)=>{e.padding=t.payload},setDirectionIndicatorX:(e,t)=>{e.direction_gz_x=t.payload},setDirectionIndicatorY:(e,t)=>{e.direction_gz_y=t.payload},setTheme:(e,t)=>{e.theme=t.payload},setLineName:(e,t)=>{e.line_name=t.payload},setDirection:(e,t)=>{e.direction=t.payload},setPlatform:(e,t)=>{e.platform_num=t.payload},setLineNum:(e,t)=>{e.line_num=t.payload},setSpanLineNum:(e,t)=>{e.spanLineNum=t.payload},setPsdNum:(e,t)=>{e.psd_num=t.payload},setCoachNum:(e,t)=>{e.coachNum=t.payload},setPanelType:(e,t)=>{e.info_panel_type=t.payload},addNote:e=>{e.notesGZMTR=(e.notesGZMTR||[]).concat([["","",10,10,!1]])},updateNote:(e,t)=>{if(e.notesGZMTR){const{index:n,note:r}=t.payload;e.notesGZMTR[n]=r}},removeNote:(e,t)=>{e.notesGZMTR&&e.notesGZMTR.splice(t.payload,1)},staggerStationNames:(e,t)=>{e.namePosMTR.isStagger=t.payload},flipStationNames:(e,t)=>{t.payload===void 0?e.namePosMTR.isFlip=!Jt(e).namePosMTR.isFlip:e.namePosMTR.isFlip=t.payload},toggleLineNameBeforeDestination:(e,t)=>{e.customiseMTRDest.isLegacy=t.payload},customiseDestinationName:(e,t)=>{e.customiseMTRDest.terminal=t.payload},setLoop:(e,t)=>{e.loop_info={bank:!0,left_and_right_factor:0,bottom_factor:1},e.loop=t.payload},setLoopBank:(e,t)=>{e.loop_info.bank=t.payload},setLoopLeftAndRightFactor:(e,t)=>{e.loop_info.left_and_right_factor=t.payload},setLoopBottomFactor:(e,t)=>{e.loop_info.bottom_factor=t.payload},setLoopMidpointStation:(e,t)=>{e.loop_info.midpoint_station=t.payload},setLoopClockwise:(e,t)=>{e.loop_info.clockwise=t.payload},setCurrentStation:(e,t)=>{e.current_stn_idx=t.payload},setStation:(e,t)=>{e.stn_list[t.payload.id]=t.payload.station},setStations:(e,t)=>{e.stn_list=t.payload},setColine:(e,t)=>{e.coline=t.payload},setFullParam:(e,t)=>t.payload}}),{setSvgHeight:Ep,setSvgWidth:Pp,setStyle:jp,setYPercentage:Np,setBranchSpacingPct:Lp,setPaddingPercentage:Mp,setDirectionIndicatorX:Tp,setDirectionIndicatorY:Ip,setTheme:$p,setLineName:Dp,setDirection:kp,setPlatform:zp,setLineNum:Fp,setSpanLineNum:Bp,setPsdNum:Hp,setCoachNum:Vp,setPanelType:Up,addNote:Gp,updateNote:Wp,removeNote:Kp,staggerStationNames:Yp,flipStationNames:Jp,toggleLineNameBeforeDestination:qp,customiseDestinationName:Qp,setLoop:Xp,setLoopBank:Zp,setLoopLeftAndRightFactor:eg,setLoopBottomFactor:tg,setLoopMidpointStation:ng,setLoopClockwise:rg,setCurrentStation:og,setStation:ag,setStations:ig,setColine:sg,setFullParam:lg}=bo.actions,sf=bo.reducer,lf=e=>{var o,a;const t=["linestart"],n=[["linestart"]];let r=0;for(;t.length;){let i=t.shift(),s=n[r].slice(-1)[0]||null;for(s&&i!=="linestart"?n[r].push(i):n[r]=[i];i!=="lineend";){s=i;const l=e[s].children;switch(l.length){case 1:i=l[0];break;case 2:{const u=e[s].branch.right,d=u[1];u[0]==="through"?(n.push([i]),t.push(d)):r===0&&(n.push([s]),t.push(d)),i=l.filter(f=>f!==d)[0];break}}if(n[r].push(i),s===((a=(o=e[i].branch)==null?void 0:o.left)==null?void 0:a[1]))break}r++}return n},cf=e=>{var o,a,i,s;const t=["linestart"],n=[["linestart"]];let r=0;for(;t.length;){let l=t.shift(),u=n[r].slice(-1)[0]||null;for(u&&l!=="linestart"?n[r].push(l):n[r]=[l];l!=="lineend";){u=l;const d=e[u].children;switch(d.length){case 1:l=d[0];break;case 2:{const f=e[u].branch.right,h=f[1];f[0]==="through"?(n.push(n[r].slice()),t.push(h)):r===0&&(n.push([u]),t.push(h)),l=d.filter(p=>p!==h)[0];break}}if(n[r].push(l),u===((a=(o=e[l].branch)==null?void 0:o.left)==null?void 0:a[1])&&((s=(i=e[l].branch)==null?void 0:i.left)==null?void 0:s[0])==="nonthrough")break}r++}return n},uf=e=>e.length===1?e[0].slice(1,-1):e.reduce((t,n)=>{const r=t.indexOf(n[n.length-1]);return[...t.slice(0,r),...n.slice(1),...t.slice(r+1)]},["lineend"]).slice(0,-1),df=e=>Object.entries(e).map(([t,n])=>t+n.parents.toString()+n.children.toString()+JSON.stringify(n.branch)).join(""),hf={depsStr:"",branches:[],routes:[],tpo:[]},wo=mn({name:"helper",initialState:hf,reducers:{updateHelper:(e,t)=>{const n=df(t.payload);if(Jt(e).depsStr!==n){e.depsStr=n,console.log("Re-calculating routes..."),e.routes=cf(t.payload),console.log("Re-calculating branches...");const r=lf(t.payload);Jt(e).branches.toString()!==r.toString()&&(e.branches=r,console.log("Re-calculating topology ordering..."),e.tpo=uf(r))}}},extraReducers:e=>{e.addMatcher(t=>t.type==="param/setStations",()=>{})}}),{updateHelper:cg}=wo.actions,ff=wo.reducer,pf=xa({app:Qh,param:sf,helper:ff}),xo=Sa(),gf=(e={})=>Ca({reducer:pf,middleware:t=>t().prepend(xo.middleware),preloadedState:e}),jn=gf(),ug=()=>Oa(),dg=_a,Wt=xo.startListening;window.rmgStore=jn;const mf=e=>{try{const t=R.storage.get(be.CANVAS_SCALE),n=Number(t);n>=.1&&e.dispatch(gr(n))}catch(t){console.warn("Error in reading canvas scale. Initiating as 1...",t),e.dispatch(gr(1))}},vf=e=>{try{const t=R.storage.get(be.CANVAS_TO_SHOW);if(t!==null){const n=JSON.parse(t);if(Array.isArray(n)){e.dispatch(qh(n));return}}}catch(t){console.warn("Error in reading canvas to show. Initiating as all...",t)}},yf=e=>{mf(e),vf(e),Wt({predicate:(t,n,r)=>n.app.canvasScale.toString()!==r.app.canvasScale.toString(),effect:(t,n)=>{R.storage.set(be.CANVAS_SCALE,n.getState().app.canvasScale.toString())}}),Wt({predicate:(t,n,r)=>n.app.canvasToShow.toString()!==r.app.canvasToShow.toString(),effect:(t,n)=>{R.storage.set(be.CANVAS_TO_SHOW,JSON.stringify(n.getState().app.canvasToShow))}}),Wt({predicate:(t,n,r)=>JSON.stringify(n.param)!==JSON.stringify(r.param),effect:bf})},bf=(e,t)=>{var o;const{id:n,...r}=(o=t.getState().app.paramConfig)!=null?o:{};if(n){const a=R.storage.get(be.PARAM_BY_ID+n),i=JSON.stringify(t.getState().param);if(a!==i){console.log("ListenerMiddleware:: Writing param and paramConfig to localStorage, ID="+n),R.storage.set(be.PARAM_BY_ID+n,i);const s=Date.now();t.dispatch(Jh(s)),R.storage.set(be.PARAM_CONFIG_BY_ID+n,JSON.stringify({...r,lastModified:s}))}else console.log("ListenerMiddleware:: Do not write to localStorage as no changes in param, ID="+n)}};Vh();document.head.append(...["share",...Object.values(En)].map(e=>{const t=document.createElement("link");return t.rel="stylesheet",t.id="css_"+e,t}));let vr;const wf=()=>{vr=us.createRoot(document.getElementById("root")),vr.render(c.jsx(g.StrictMode,{children:c.jsx(Ra,{store:jn,children:c.jsx(Aa,{i18n:Iu,children:c.jsx(Hh,{})})})}))};R.ready().then(()=>{yf(jn),wf(),R.injectUITools(),R.event(mo.APP_LOAD,{isStandaloneWindow:R.isStandaloneWindow})}).catch(e=>{const t=document.querySelector("#root");t&&(t.innerHTML="
\n Failed to load Rail Map Generator!\n
\n ".concat(e.toString(),'\n
\n Please contact us in \n GitHub.\n
'))});export{qp as $,Mp as A,Gh as B,Tp as C,Uh as D,mo as E,hp as F,sp as G,lp as H,Ip as I,$p as J,go as K,Dp as L,tp as M,Fp as N,Bp as O,po as P,zp as Q,ur as R,Pn as S,Hp as T,Vp as U,Up as V,kp as W,Jp as X,Wf as Y,Yp as Z,Zr as _,xf as __vite_legacy_guard,sr as a,Qp as a0,Xp as a1,Zp as a2,eg as a3,tg as a4,rg as a5,Wp as a6,Kp as a7,Gp as a8,sg as a9,Yf as aA,Kf as aB,If as aC,jp as aD,dt as aE,vp as aF,wp as aG,be as aH,Tf as aI,Xf as aJ,ep as aK,Uf as aL,of as aM,_f as aN,Gf as aO,up as aP,Mf as aQ,Pf as aR,En as aS,Ap as aT,jf as aU,np as aV,$f as aW,yp as aX,Kh as aY,Wh as aZ,mr as aa,pp as ab,ho as ac,gp as ad,Bf as ae,og as af,ng as ag,bp as ah,Ef as ai,Lf as aj,rp as ak,Hf as al,Cf as am,kf as an,zf as ao,Cp as ap,Rp as aq,Sp as ar,Op as as,cp as at,Zf as au,op as av,fp as aw,Df as ax,qh as ay,gr as az,cg as b,ig as c,ug as d,Ce as e,Rf as f,Af as g,_e as h,Jf as i,Nf as j,qf as k,Vf as l,fo as m,Ff as n,_p as o,dp as p,Pp as q,R as r,lg as s,Ep as t,dg as u,Np as v,ip as w,ap as x,Lp as y,Qf as z}; diff --git a/assets/index-DX2OWif3.js b/assets/index-DX2OWif3.js deleted file mode 100644 index 85e4b8fb..00000000 --- a/assets/index-DX2OWif3.js +++ /dev/null @@ -1 +0,0 @@ -import{j as s}from"./chakra-CXrhlirJ.js";import{a as m}from"./react-Caefwd5V.js";import{h as W,aY as R,u as z,m as Ze,S as O,aR as $,P as I}from"./index-BqOgmhc6.js";import{a as Xe,c as B,b as Ye,d as Ue}from"./share-C4aXWUdL.js";import{S as Ee}from"./svg-wrapper-DO1Iqw6o.js";import{i as Je}from"./param-selector-B7mXBf6L.js";function Ve(e){const{num:t,inStrip:a,...n}=e;return s.jsxs("g",{textAnchor:"middle",fill:a?W.black:"var(--rmg-theme-fg)",...n,children:[s.jsx("rect",{height:40,width:40,rx:4,x:-20,fill:a?"#fff":"var(--rmg-theme-colour)"}),s.jsx("text",{className:"rmg-name__en",fontSize:20,dy:12,children:t}),s.jsx("text",{className:"rmg-name__zh",fontSize:12,dy:26,children:"屏蔽门"}),s.jsx("text",{className:"rmg-name__en",fontSize:6.5,dy:36,children:"Screen Door"})]})}const Re=e=>{const t=(r=>{switch(r){case"gz28":case"gz2otis":case"gz6":case"gzgf":return 60;case"gz1":case"gz3":return 40;case"gz4":case"gz5":case"gz1421":return 20;default:return 0}})(e.variant),a=m.useMemo(()=>{switch(e.variant){case"gz1":return s.jsx("circle",{cy:-58,r:16,fill:"red"});case"gz28":case"gz2otis":return s.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"orange"});case"gz3":return s.jsx("rect",{x:-15,y:-55,height:30,width:30,fill:"red"});case"gz6":return s.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"white"});case"gz1421":return s.jsx("ellipse",{cy:-38,rx:24,ry:12,fill:"orange"});case"gz5":return s.jsx("rect",{x:-30,y:-70,height:30,width:60,fill:"orange"});case"gz4":return s.jsx("rect",{x:-50,y:-50,height:25,width:100,fill:"whitesmoke"});case"gzgf":return s.jsx("rect",{x:-30,y:-58,height:30,width:60,fill:"orange"});default:return s.jsx(s.Fragment,{})}},[e.variant]);return s.jsxs("g",{transform:"translate(0,".concat(e.variant==="gz4"?-20:0,")"),children:[s.jsx("rect",{id:"strip_gz",style:{"--height":"".concat(t,"px")}}),s.jsx("g",{style:{transform:"translate(calc(var(--rmg-svg-width) / 2),var(--rmg-svg-height))"},children:e.isShowLight&&a}),e.isShowPSD!==!1&&s.jsx(qe,{...e})]})},qe=m.memo(function(t){const a=["gz28","gz2otis","gz6","gzgf"].includes(t.variant),n=(r=>{switch(r){case"gz1":case"gz3":return"82px";case"gz4":return"65px";case"gz5":return"80px";case"gz1421":return"62px";default:return"58px"}})(t.variant);return s.jsx(Ve,{num:t.isShowPSD,inStrip:a,style:{"--psd-dy":n,transform:"translate(var(--translate-x), var(--translate-y))","--translate-x":"calc(var(--rmg-svg-width) / 2 + 80px)","--translate-y":"calc(var(--rmg-svg-height) - var(--psd-dy, 58px))"}})},(e,t)=>e.variant===t.variant&&e.isShowPSD===t.isShowPSD);var A=1.3,Ie=1.7,U=18.5,Ke=U+A,X=U*2+A;var Z=45,P=Z-3,Ae=function(e,t){var a=[e,t].map(function(n){return n.match(/^(\w+).+$/)});if(a[0]&&a[1]&&a[0][1]===a[1][1])return a[0][1]},me=function(e){var t=e.match(/^(\d+)\D+$/);return t==null?void 0:t[1]},Q=function(){return Q=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(o)throw o.error}}return i},nt=function(e,t){var a=me(e);if(a)return{isDigit:!0,spanningPart:a};var n=Ae(e,t);return n?{isDigit:!1,spanningPart:n}:{isDigit:!1,spanningPart:""}};function pe(e){var t=e.zhName,a=e.enName,n=e.foregroundColour,r=e.backgroundColour,i=e.zhClassName,o=e.enClassName,l=e.passed,c=e.children,d=et(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),f=nt(t,a),x=f.isDigit,u=f.spanningPart,g=m.useRef(null),h=tt(m.useState({x:0,height:0,width:0}),2),y=h[0],p=h[1];m.useEffect(function(){g.current&&p(g.current.getBBox())},[t,a]);var j=P/Math.max(P,y.width),S=(-y.x-y.width/2)*j,v=y.height*(1-j)/2;return s.jsxs("g",ee({textAnchor:"middle",fill:l?W.white:n},d,{children:[s.jsx(J,{fill:l?"#aaa":r}),s.jsx("g",{ref:g,transform:"translate(".concat(S,",").concat(v,")scale(").concat(j,")"),children:s.jsxs("text",{className:i,fontSize:21,x:-1,y:12,textAnchor:"end",dominantBaseline:"central",children:[u,s.jsx("tspan",{className:i,fontSize:10,x:0,dy:-4,textAnchor:"start",dominantBaseline:"central",children:t.slice(u.length).trim()}),s.jsx("tspan",{className:o,fontSize:6.5,letterSpacing:-.1,x:0,dy:10,textAnchor:"start",dominantBaseline:"middle",children:x?a:a.slice(u.length).trim()})]})}),c]}))}var te=function(){return te=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(o)throw o.error}}return i};function at(e){var t,a=e.zhName,n=e.enName,r=e.foregroundColour,i=e.backgroundColour,o=e.zhClassName,l=e.enClassName,c=e.passed,d=e.children,f=rt(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),x=(t=me(a))!==null&&t!==void 0?t:"",u=m.useRef(null),g=m.useRef(null),h=ve(m.useState({width:0}),2),y=h[0],p=h[1],j=ve(m.useState({width:0}),2),S=j[0],v=j[1];m.useEffect(function(){u.current&&p(u.current.getBBox()),g.current&&v(g.current.getBBox())},[a,n]);var _=P/Math.max(P,y.width),N=P/Math.max(P,S.width),C={nameZh:{y:7.3+13.5*(1-_)*_/2},nameEn:{y:19.5-9*(1-N)*N/2}};return s.jsxs("g",te({textAnchor:"middle",fill:c?W.white:r},f,{children:[s.jsx(J,{fill:c?"#aaa":i}),s.jsxs("text",{ref:u,className:o,fontSize:12,transform:"translate(0,".concat(C.nameZh.y,")scale(").concat(_,")"),dominantBaseline:"central",children:[s.jsx("tspan",{fontSize:16,dy:.7,dominantBaseline:"central",children:x}),s.jsx("tspan",{dy:-.7,dominantBaseline:"central",children:a.slice(x.length)})]}),s.jsx("text",{ref:g,className:l,fontSize:8,transform:"translate(0,".concat(C.nameEn.y,")scale(").concat(N,")"),dominantBaseline:"middle",children:n}),d]}))}var ne=function(){return ne=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(o)throw o.error}}return i};function it(e){var t=e.zhName,a=e.enName,n=e.foregroundColour,r=e.backgroundColour,i=e.zhClassName,o=e.enClassName,l=e.passed,c=e.children,d=st(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),f=m.useRef(null),x=ot(m.useState({width:0}),2),u=x[0],g=x[1];m.useEffect(function(){f.current&&g(f.current.getBBox())},[t,a]);var h=Math.max(45,u.width+4);return s.jsxs("g",ne({textAnchor:"middle",fill:l?W.white:n},d,{children:[s.jsx(J,{customWidth:h,fill:l?"#aaa":r}),s.jsxs("g",{ref:f,children:[s.jsx("text",{className:i,fontSize:8.5,y:8,dominantBaseline:"central",children:t}),s.jsx("text",{className:o,fontSize:5.5,y:18,dominantBaseline:"middle",children:a})]}),c]}))}var re=function(){return re=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(o)throw o.error}}return i};function ct(e){var t=e.zhName,a=e.enName,n=e.foregroundColour,r=e.backgroundColour,i=e.zhClassName,o=e.enClassName,l=e.passed,c=e.children,d=lt(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),f=m.useRef(null),x=m.useRef(null),u=_e(m.useState({width:0}),2),g=u[0],h=u[1],y=_e(m.useState({width:0}),2),p=y[0],j=y[1];m.useEffect(function(){f.current&&h(f.current.getBBox()),x.current&&j(x.current.getBBox())},[t,a]);var S=P/Math.max(P,g.width),v=P/Math.max(P,p.width),_={nameZh:{y:7.3+13.5*(1-S)*S/2},nameEn:{y:19.5-9*(1-v)*v/2}};return s.jsxs("g",re({textAnchor:"middle",fill:l?W.white:n},d,{children:[s.jsx(J,{fill:l?"#aaa":r}),s.jsx("text",{ref:f,className:i,fontSize:12,transform:"translate(0,".concat(_.nameZh.y,")scale(").concat(S,")"),dominantBaseline:"central",children:t}),s.jsx("text",{ref:x,className:o,fontSize:8,transform:"translate(0,".concat(_.nameEn.y,")scale(").concat(v,")"),dominantBaseline:"middle",children:a}),c]}))}var T=function(){return T=Object.assign||function(e){for(var t,a=1,n=arguments.length;a=5?s.jsx(it,T({},t)):s.jsx(ct,T({},t))}});var dt=function(e,t){var a=me(e);if(a!==void 0)return 1;var n=Ae(e,t);return n!==void 0?2:3},ae=function(){return ae=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(o)throw o.error}}return i},G=17,We=m.forwardRef(function(t,a){var n=t.Icon,r=t.lineNum,i=t.stnNum,o=t.strokeColour,l=t.passed,c=t.size,d=t.textClassName,f=t.bolderBorder,x=t.alwaysShowColouredBorder,u=t.useSameScale,g=t.children,h=gt(t,["Icon","lineNum","stnNum","strokeColour","passed","size","textClassName","bolderBorder","alwaysShowColouredBorder","useSameScale","children"]),y=m.useContext(ht).updateId,p=m.useRef(null),j=m.useRef(null),S=Ne(m.useState({width:0}),2),v=S[0],_=S[1],N=Ne(m.useState({width:0}),2),C=N[0],k=N[1];m.useEffect(function(){p.current&&_(p.current.getBBox()),j.current&&k(j.current.getBBox())},[r,i,y]);var b=r&&r.length>2;m.useEffect(function(){u&&b&&console.warn("GenericStationNumber(), useSameScale props does not work when lineNum has more than 2 characters")},[u,b]);var w=G/Math.max(G,v.width),E=u&&(r==null?void 0:r.length)===2?w:G/Math.max(G,C.width),D=c==="sm"?"0.7":c==="lg"?"1.4":1;return s.jsxs("g",oe({ref:a},h,{children:[s.jsxs("g",{transform:"scale(".concat(D,")"),children:[s.jsx(n,{stroke:l&&!x?"#aaa":o,filled:!r&&!i,bolder:f}),(r||i)&&s.jsxs("g",{textAnchor:"middle",fontSize:13.5,fill:l?"#aaa":"#000",children:[s.jsx("g",{transform:"translate(-9.25,0)scale(".concat(w,")"),children:s.jsx("text",{ref:p,className:d,dominantBaseline:"central",x:.5,children:r})}),s.jsx("g",{transform:"translate(9.25,0)scale(".concat(E,")"),children:s.jsx("text",{ref:j,className:d,dominantBaseline:"central",children:i})})]})]}),g]}))}),ie=function(){return ie=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(o)throw o.error}}return i},V=function(e,t){return Array.from(Array(e).keys()).map(function(a){return(a-(e-1)/2)*t})},pt=function(e,t,a){if(e<=0)return[];if(e===1)return[[0,0]];for(var n=t>e?e:t,r=X,i=Ke,o=V(n,r),l=Math.ceil(e/n),c=V(l,i),d=e%n,f=[],x=0;x=u.length)return console.warn(", anchor index ".concat(c," is out of bound")),[0,0];var v=we(u[c],2),_=v[0],N=v[1];return[-_,-N]},[u,c]),2),h=g[0],y=g[1],p=m.useRef(null),j=m.useRef([]);m.useEffect(function(){j.current=j.current.slice(0,n.length)},[n.length]);var S=n.length===2&&o===1&&!!d;return m.useImperativeHandle(a,function(){return{target:p.current,children:j.current,getCoordinates:function(){return u},getCorrectedBBox:function(){var v,_,N=(_=(v=p.current)===null||v===void 0?void 0:v.getBBox())!==null&&_!==void 0?_:{x:0,y:0,width:0,height:0};return N.y-=M/2,N.height+=M,S?(d==="left"?N.x-=q/2:N.x-=M/2,N.width+=q/2+M/2):(N.x-=M/2,N.width+=M),N},getTranslate:function(){return[h,y]}}},[u,h,y,p.current,j.current,d]),s.jsxs("g",Y({ref:p,transform:"translate(".concat(h,",").concat(y,")")},x,{children:[n.map(function(v,_){var N=v.style,C=ze(N);return s.jsx(C,{stroke:"#aaa",filled:!0,strokeWidth:M,transform:"translate(".concat(u[_][0],",").concat(u[_][1],")")},_)}),S&&s.jsx(be,{position:d,r:X/2.9,strokeWidth:q,strokeDasharray:void 0}),n.map(function(v,_){var N=v.style,C=ze(N);return s.jsx(C,{stroke:"white",filled:!0,strokeWidth:A*2.6,transform:"translate(".concat(u[_][0],",").concat(u[_][1],")")},_)}),S&&s.jsx(be,{position:d}),n.length&&s.jsx("rect",{fill:"white",x:-12,y:u[0][1],width:24,height:-u[0][1]*2}),n.map(function(v,_){var N=v.style,C=Oe(v,["style"]),k=N==="fmetro"?xt:fe;return s.jsx(k,Y({ref:function(b){return j.current[_]=b},transform:"translate(".concat(u[_][0],",").concat(u[_][1],")"),textClassName:r},C),_)}),f]}))});var de=function(){return de=Object.assign||function(e){for(var t,a=1,n=arguments.length;a{o.current&&n&&n(o.current.getBBox())},[JSON.stringify(a)]),s.jsxs("g",{ref:o,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:18,children:r}),s.jsx("g",{fontSize:10.5,children:i.split("\\").map((l,c)=>s.jsx("text",{className:"rmg-name__en",dy:16+c*11,children:l},c))})]})},(e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName));function Ot(e){const{stnName:t,onUpdate:a,passed:n,...r}=e,{zh:i="",en:o=""}=t,l=m.useRef(null),[c,d]=m.useState({x:0,width:0});return m.useEffect(()=>{if(l.current){const f=l.current.getBBox();d(f),a==null||a(f)}},[JSON.stringify(t)]),!i&&!o?s.jsx(s.Fragment,{}):s.jsxs("g",{fill:n?"#aaa":"#000",...r,children:[s.jsxs("g",{transform:"translate(0,3)",fontSize:18,children:[s.jsx("text",{textAnchor:"end",x:c.x-3,className:"rmg-name__zh",children:"("}),s.jsx("text",{textAnchor:"start",x:c.width+c.x+3,className:"rmg-name__zh",children:")"})]}),s.jsxs("g",{ref:l,textAnchor:"middle",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:13,children:i}),s.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:o})]})]})}function wt(e){const{passed:t,...a}=e;return s.jsxs("g",{textAnchor:"middle",fill:t?"#aaa":"var(--rmg-theme-colour)",...a,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:13,children:"快车停靠站"}),s.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:"Express Station"})]})}function zt(e){var g,h,y;const{primaryName:t,secondaryName:a,stationState:n,flipped:r,express:i}=e,[o,l]=m.useState({width:0}),[c,d]=m.useState({x:0,width:-20}),f=p=>{switch(p){case R.PASSED:return"#aaa";case R.CURRENT:return"#f00";case R.FUTURE:return"#000"}},x=(y=(h=(g=t.en)==null?void 0:g.split("\\"))==null?void 0:h.length)!=null?y:1,u={g:{x:0,y:r?17.5:-20-x*14*Math.cos(-45)},StationSecondaryName:{x:(o.width+c.width/2+10)*(r?-1:1),y:2+5*(x-1)},ExpressTag:{x:(o.width+c.width+20+35)*(r?-1:1),y:2+5*(x-1)}};return s.jsxs("g",{textAnchor:r?"end":"start",fill:f(n),transform:"translate(".concat(u.g.x,",").concat(u.g.y,")rotate(-45)"),children:[s.jsx(bt,{stnName:t,onUpdate:l}),a&&s.jsx(Ot,{stnName:a,onUpdate:d,passed:n===R.PASSED,transform:"translate(".concat(u.StationSecondaryName.x,",").concat(u.StationSecondaryName.y,")")}),i&&s.jsx(wt,{passed:n===R.PASSED,transform:"translate(".concat(u.ExpressTag.x,",").concat(u.ExpressTag.y,")")})]})}function Bt(e){var C,k,b,w,E,D,ge,xe,ye;const{stnId:t,stnState:a,stnY:n}=e,{theme:r,line_name:i,line_num:o,spanLineNum:l,stn_list:c,loop:d,loop_info:{midpoint_station:f,clockwise:x}}=z(Ge=>Ge.param),u=c[t],g=f===t,[h,y]=m.useState({height:0}),p=m.useRef(null);m.useEffect(()=>{p.current&&y(p.current.getBBox())},[p.current,n,u.localisedName,u.localisedSecondaryName,u.services]);const j=u.parents.length===2||u.children.length===2,S=n>0||u.parents.indexOf(((k=(C=u.branch)==null?void 0:C.left)==null?void 0:k[1])||"")===1||u.children.indexOf(((w=(b=u.branch)==null?void 0:b.right)==null?void 0:w[1])||"")===1?180:0,v=(ge=(D=(E=u.localisedName.en)==null?void 0:E.split("\\"))==null?void 0:D.length)!=null?ge:1,_=j?S===180?16+(v-1)*12*Math.cos(-45):-9:S===180?-6:(25+(v-1)*15)*Math.cos(-45),N=n>0?h.height+23:-h.height-23;return s.jsxs(s.Fragment,{children:[s.jsx($t,{intInfos:j?[{theme:[r[0],r[1],"var(--rmg-theme-colour)","var(--rmg-theme-fg)"],name:i},...(xe=u.transfer.groups[0].lines)!=null?xe:[]]:(ye=u.transfer.groups[0].lines)!=null?ye:[],stnState:d?R.FUTURE:a,tickRotation:S,spanDigits:l}),s.jsx(fe,{lineNum:o,stnNum:u.num,strokeColour:r[2],textClassName:"rmg-name__zh",passed:a===-1,alwaysShowColouredBorder:d,bolderBorder:!0,useSameScale:!0}),s.jsx("g",{ref:p,transform:"translate(".concat(-_,",0)"),children:s.jsx(zt,{primaryName:u.localisedName,secondaryName:u.localisedSecondaryName,stationState:a,flipped:S===180,express:u.services.includes(Ze.express)})}),g&&s.jsx(Nt,{transform:"translate(0,".concat(N,")"),clockwise:x,anchorAt:n>0?"text":"circle"})]})}const $t=e=>s.jsxs(s.Fragment,{children:[s.jsx(Ct,{strokeWidth:4,...e}),s.jsx(kt,{transform:"translate(0,".concat(e.tickRotation===180?-47:23,")"),...e})]}),Ct=e=>{const{intInfos:t,stnState:a,tickRotation:n,spanDigits:r,...i}=e;return s.jsx("g",{...i,children:t.map((o,l)=>{var c;return s.jsx("use",{xlinkHref:"#inttick",stroke:a===-1?"#aaa":(c=o.theme)==null?void 0:c[2],transform:"translate(".concat(-2*(t.length-1)+4*l,",0)rotate(").concat(n===180?180:0,")")},l)})})},kt=e=>{const{intInfos:t,tickRotation:a,stnState:n,spanDigits:r,...i}=e;return s.jsx("g",{...i,children:t.map((o,l)=>{var c,d,f,x;return s.jsx("g",{transform:"translate(0,".concat(l*28*(a===180?-1:1),")"),children:s.jsx(Me,{zhName:o.name[0],enName:o.name[1],foregroundColour:(d=(c=o.theme)==null?void 0:c[3])!=null?d:W.white,backgroundColour:(x=(f=o.theme)==null?void 0:f[2])!=null?x:"#aaaaaa",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",passed:n===-1,spanDigits:r})},l)})})};function He(e){const{xs:t,ys:a,stnStates:n}=e,{stn_list:r,loop:i}=z(c=>c.param),{branches:o}=z(c=>c.helper),l=i?o[0].slice(1,-1):Object.keys(r);return s.jsx("g",{id:"stn_icons",children:l.filter(c=>!["linestart","lineend"].includes(c)).map(c=>s.jsx("g",{style:{transform:"translate(".concat(t[c],"px,").concat(a[c],"px)")},children:s.jsx(Bt,{stnId:c,stnState:n[c],stnY:a[c]})},c))})}const $e=(e,t)=>e[t].parents.length===2||e[t].children.length===2?.25:0,Pt=(e,t,a)=>{const n=B("linestart","lineend",t);if(n.nodes.includes(e))return B(n.nodes[1],e,t).len;{const r=a.filter(d=>d.includes(e))[0];let i=e;for(;!n.nodes.includes(i);)i=r[r.indexOf(i)-1];let o=e;for(;!n.nodes.includes(o);)o=r[r.indexOf(o)+1];const l=i==="linestart",c=o==="lineend";if(r.toString()===a[0].toString()){const d=[];return!l&&!c?(d[0]=B(n.nodes[1],i,t).len,d[1]=B(i,o,t).len,d[2]=B(i,e,t).len,d[3]=B(e,o,t).len):l?(d[0]=0,d[1]=B(n.nodes[1],o,t).len,d[2]=B(r[1],e,t).len,d[3]=B(e,o,t).len):(d[0]=B(n.nodes[1],i,t).len,d[1]=B(i,n.nodes.slice(-2)[0],t).len,d[2]=B(i,e,t).len,d[3]=B(e,r.slice(-2)[0],t).len),d[0]+d[2]*d[1]/(d[2]+d[3])}else if(!l&&!c){const d=[];return d[0]=B(n.nodes[1],i,t).len,d[1]=B(i,o,t).len,d[2]=B(i,e,t).len,d[3]=B(e,o,t).len,d[0]+d[2]*d[1]/(d[2]+d[3])}else return l?B(n.nodes[1],o,t).len-B(e,o,t).len:B(n.nodes[1],i,t).len+B(i,e,t).len}},Et=()=>{const{branches:e,routes:t,depsStr:a}=z(b=>b.helper),{svgWidth:n,svg_height:r,y_pc:i,padding:o,branchSpacingPct:l,direction:c,line_name:d,spanLineNum:f,current_stn_idx:x,stn_list:u}=z(b=>b.param),g=Xe(u,$e,$e),h=m.useMemo(()=>(console.log("computing x shares"),Object.keys(u).reduce((b,w)=>({...b,[w]:Pt(w,g,e)}),{})),[e.toString(),JSON.stringify(g)]),y=B("linestart","lineend",g),p=B(y.nodes[1],y.nodes.slice(-2)[0],g),j=c===O.right?[n[$.RailMap]*o/100+65,n[$.RailMap]*(1-o/100)-20]:[n[$.RailMap]*o/100,n[$.RailMap]*(1-o/100)-65],S=Object.keys(h).reduce((b,w)=>({...b,[w]:j[0]+h[w]/p.len*(j[1]-j[0])}),{}),v=m.useMemo(()=>(console.log("computing y shares"),Object.keys(u).reduce((b,w)=>{if(e[0].includes(w))return{...b,[w]:0};{const E=e.slice(1).filter(D=>D.includes(w))[0];return{...b,[w]:u[E[0]].children.indexOf(E[1])?-2:2}}},{})),[a]),_=Object.keys(v).reduce((b,w)=>({...b,[w]:-v[w]*l*r/200}),{}),N=m.useMemo(()=>Ye(x,t,c),[x,c,t.toString()]),C=e.map(b=>Ue(b,N)).reduce((b,w)=>(b.main.push(w.main),b.pass.push(w.pass),b),{main:[],pass:[]}),k=Object.keys(C).reduce((b,w)=>({...b,[w]:C[w].map(E=>It(E,S,_))}),{});return s.jsxs("g",{id:"main",style:{"--y-percentage":i,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[s.jsx(Rt,{paths:k}),s.jsx(He,{xs:S,ys:_,stnStates:N}),s.jsx("g",{id:"line_name",style:{"--translate-x":c===O.right?"".concat(j[0]-65,"px"):"".concat(j[1]+65,"px")},children:s.jsx(Me,{zhName:d[0],enName:d[1],foregroundColour:"var(--rmg-theme-fg)",backgroundColour:"var(--rmg-theme-colour)",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",spanDigits:f})})]})},Rt=m.memo(function(t){return s.jsxs("g",{fill:"none",strokeWidth:4,children:[s.jsx("g",{stroke:"#aaa",strokeDasharray:4,children:t.paths.pass.map((a,n)=>s.jsx("path",{d:a},n))}),s.jsx("g",{stroke:"var(--rmg-theme-colour)",children:t.paths.main.map((a,n)=>s.jsx("path",{d:a},n))})]})},(e,t)=>JSON.stringify(e.paths)===JSON.stringify(t.paths)),It=(e,t,a)=>{let n;const r=[];return e.forEach(i=>{const o=t[i],l=a[i];if(!n&&n!==0){n=l,r.push("M ".concat(o,",").concat(l));return}l===0?(ln&&r.push("H ".concat(o-40),"a 40,40 0 0,1 40,40","V ".concat(l))):(ln&&r.push("V ".concat(l-40),"a 40,40 0 0,0 40,40","H ".concat(o))),r.push("H ".concat(o)),n=l}),r.join(" ").replace(/( H ([\d.]+))+/g," H $2")};function he(e){return s.jsx("path",{d:"M60,60 L0,0 L60,-60 H90 L40,-10 H150 V10 H40 L90,60z",fill:"black",...e})}function At(e){const{destIds:t,textAnchor:a,...n}=e,r=z(d=>d.param.direction),i=z(d=>d.param.stn_list),o=t.map(d=>{var f,x;return(x=(f=i[d].localisedName.zh)==null?void 0:f.length)!=null?x:0}),l=Math.min(...o),c=l>1&&o[0]!==o[1]?Math.abs(o[0]-o[1])/(l-1):0;return s.jsxs("g",{textAnchor:a,...n,children:[t.map((d,f)=>{var g;const x=o[f]>o[1-f],u=!Je()&&a==="end"&&!x;return s.jsxs(m.Fragment,{children:[s.jsx("text",{className:"rmg-name__zh",fontSize:25,x:r===O.left?0:-75,y:-21+42*f,letterSpacing:x?"0em":"".concat(c,"em"),dx:u?"".concat(c,"em"):"0em",children:i[d].localisedName.zh}),s.jsx("text",{className:"rmg-name__en",fontSize:11.5,x:r===O.left?0:-75,y:-1+42*f,children:"Towards "+((g=i[d].localisedName.en)==null?void 0:g.replace("\\"," "))})]},d)}),s.jsx("text",{className:"rmg-name__zh",fontSize:28,x:r===O.left?25*(Math.max(...o)+1):0,y:5,children:"方向"})]})}const Mt=(e,t,a,n)=>{const o=e*(1-2*t/100)*(a-1)/a-n,l=e-o;return[l/2,e-l/2]},Tt=(e,t,a)=>{const n=Math.min(...Object.values(e)),r=Math.max(...Object.values(e)),i=Math.min(...Object.values(t)),l=Math.max(...Object.values(t))-i,c=l/2;return"M".concat(r,",").concat(i," H").concat(n," h-").concat(a/2," a").concat(c,",").concat(c," 0 0,0 0,").concat(l," H").concat(r," h").concat(a/2," a").concat(c,",").concat(c," 0 0,0 0,-").concat(l,"Z")},Dt=(e,t,a,n)=>{const r=e.indexOf(a),i=e.indexOf(n!=null?n:a);let o;return i<0?o=e:t?o=r<=i?[...e.slice(0,r+1),...e.slice(i)]:e.slice(i,r+1):o=rr===d?{...l,[c]:R.CURRENT}:o.includes(c)?{...l,[c]:R.FUTURE}:{...l,[c]:R.PASSED},{})},Ce=6;function Wt({currentStationX:e,currentStationY:t,stationGap:a,loopClockwise:n}){const r=t>0?n?-1:1:n?1:-1,i=(a/3-Ce)*r,o=e+i+Ce*r,l=(t-12)*-r;return s.jsx("g",{transform:"scale(1,".concat(-r,")"),children:s.jsx("path",{d:"M".concat(o,",").concat(l," h").concat(i),strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)"})})}function ke({clockwise:e,...t}){return s.jsx("g",{...t,children:s.jsxs("g",{textAnchor:"middle",transform:"translate(0,-4)",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:16,children:e?"内环":"外环"}),s.jsx("text",{className:"rmg-name__en",y:13,fontSize:9,children:e?"Inner Circle":"Outer Circle"})]})})}const Fe=2/3,Lt=2-Fe,Ht=25*Math.PI/180,Ft=Math.asin(Math.sin(35*Math.PI/180)/2);function Gt({cxLeft:e,cxRight:t,yGap:a,clockwise:n}){const r=a/2,i=r*(n?Fe:Lt),o=n?Ht:Ft,l=i*Math.cos(o),c=n?1:-1,d=n?1:0,f=i*Math.sin(o)*c,x=2*f,u={rotate:n?"-4deg":"2deg"};return s.jsxs(s.Fragment,{children:[s.jsxs("g",{transform:"translate(".concat(e,",0)"),children:[s.jsx("path",{d:"M".concat(-l,",").concat(f," a").concat(i,",").concat(i," 0 0,").concat(d," 0,").concat(-x),fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:u}),s.jsx(ke,{transform:"translate(".concat(n?0:-2*r,",0)"),clockwise:n})]}),s.jsxs("g",{transform:"translate(".concat(t,",0)"),children:[s.jsx("path",{d:"M".concat(l,",").concat(-f," a").concat(i,",").concat(i," 0 0,").concat(d," 0,").concat(x),fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:u}),s.jsx(ke,{transform:"translate(".concat(n?0:2*r,",0)"),clockwise:n})]})]})}function Zt(){const{branches:e}=z(v=>v.helper),{svgWidth:t,svg_height:a,y_pc:n,padding:r,branchSpacingPct:i,current_stn_idx:o,loop_info:{midpoint_station:l,clockwise:c}}=z(v=>v.param),d=e[0].slice(1,-1),f=Math.ceil(d.length/2),x=m.useMemo(()=>(console.log("computing x shares"),d.reduce((v,_,N,C)=>{let k;return N({...v,[_]:g[0]+x[_]*h}),{}),p=m.useMemo(()=>(console.log("computing y shares"),d.reduce((v,_,N)=>({...v,[_]:N({...v,[_]:-p[_]*u/2}),{}),S=Dt(d,c!=null?c:!1,o,l);return s.jsxs("g",{id:"main",style:{"--y-percentage":n,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[s.jsx("path",{d:Tt(y,j,h),fill:"none",strokeWidth:6,stroke:"var(--rmg-theme-colour)"}),s.jsx(He,{xs:y,ys:j,stnStates:S}),s.jsx(Wt,{currentStationX:y[o],currentStationY:j[o],stationGap:h,loopClockwise:c}),s.jsx(Gt,{cxLeft:g[0]-h/2,cxRight:g[1]+h/2,yGap:u,clockwise:c})]})}const Pe=$.RailMap,Xt=()=>{const{canvasScale:e}=z(g=>g.app),{svgWidth:t,svg_height:a,direction:n,psd_num:r,info_panel_type:i,notesGZMTR:o,current_stn_idx:l,stn_list:c,theme:d,loop:f}=z(g=>g.param),x=t[Pe],u=c[l];return s.jsxs(Ee,{type:Pe,svgWidth:x,svgHeight:a,canvasScale:e,theme:d,children:[s.jsx(Yt,{}),s.jsx(Re,{variant:i,isShowLight:i===I.gz2otis,isShowPSD:i===I.gz2otis&&r}),n===O.left&&u.parents.includes("linestart")||n===O.right&&u.children.includes("lineend")?s.jsx(Vt,{}):s.jsxs(s.Fragment,{children:[f?s.jsx(Zt,{}):s.jsx(Et,{}),!f&&s.jsx(Ut,{}),o==null?void 0:o.map((g,h)=>s.jsx(qt,{note:g},h))]}),i===I.gz2otis&&s.jsx("line",{x2:x,transform:"translate(0,90)",strokeWidth:3,stroke:"black"})]})},Yt=m.memo(function(){return s.jsxs("defs",{children:[s.jsx("path",{id:"inttick",d:"M 0,0 v 18",strokeLinecap:"square"}),s.jsx("marker",{id:"loop_arrow",refX:.05,refY:.5,orient:"auto",children:s.jsx("path",{d:"M0,0V2L2,0z",fill:"black"})})]})}),Ut=()=>{const{routes:e}=z(l=>l.helper),{direction:t,direction_gz_x:a,direction_gz_y:n,current_stn_idx:r}=z(l=>l.param),i=m.useMemo(()=>[...new Set(e.reduce((l,c)=>c.includes(r)?l.concat(c.filter(d=>!["linestart","lineend"].includes(d)).slice(t===O.left?0:-1)[0]):l,[]).filter(l=>l!==r))],[r,t,e.toString()]),o={textAnchor:t===O.left?"start":"end",transform:"translate(".concat(t===O.left?65:-65,",-5)"),destIds:i};return s.jsxs("g",{id:"direction_gz",style:{"--x-percentage":a,"--y-percentage":n},children:[s.jsx(he,{transform:"scale(0.35)rotate(".concat(t===O.left?0:180,")")}),i.length!==2?s.jsx(Jt,{...o}):s.jsx(At,{...o})]})},Jt=e=>{const{destIds:t,...a}=e,n=z(r=>r.param.stn_list);return s.jsxs("g",{...a,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:28,children:t.map(r=>n[r].localisedName.zh).join("/")+"方向"}),s.jsx("text",{className:"rmg-name__en",fontSize:14,dy:22,children:"Towards "+t.map(r=>{var i;return(i=n[r].localisedName.en)==null?void 0:i.replace("\\"," ")}).join("/")})]})},Vt=m.memo(function(){return s.jsxs("g",{id:"terminus_gz",textAnchor:"middle",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:90,children:"终 点 站"}),s.jsx("text",{dy:70,className:"rmg-name__en",fontSize:36,children:"Terminal"}),s.jsxs("g",{strokeWidth:8,stroke:"#000",children:[s.jsx("path",{d:"M -160,68 h -160"}),s.jsx("path",{d:"M 160,68 h 160"})]})]})}),qt=m.memo(function(t){const a=m.useRef(null),[n,r]=m.useState({width:0,height:0,y:0});return m.useEffect(()=>{a.current&&r(a.current.getBBox())},[t.note[0],t.note[1]]),s.jsxs("g",{className:"note-box",style:{"--x-percentage":t.note[2],"--y-percentage":t.note[3]},children:[t.note[4]&&s.jsx("rect",{height:n.height+4,width:n.width+4,x:-2,y:n.y-2,fill:"none",stroke:"black",strokeWidth:.5}),s.jsxs("g",{ref:a,children:[s.jsx("g",{fontSize:16,letterSpacing:1.2,children:t.note[0].split("\n").map((i,o)=>s.jsx("text",{className:"rmg-name__zh",y:o*18,children:i},o))}),s.jsx("g",{fontSize:10,letterSpacing:.33,transform:"translate(0,".concat(18*t.note[0].split("\n").length,")"),children:t.note[1].split("\n").map((i,o)=>{var l;return s.jsx("text",{className:"rmg-name__en",y:o*11,textLength:o<(((l=t.note[1].match(/\n/g))==null?void 0:l.length)||0)?n.width:navigator.userAgent.includes("Firefox")?-1:0,lengthAdjust:"spacing",children:i},o)})})]})]})},(e,t)=>e.note.toString()===t.note.toString()),Kt=m.memo(function(t){var i,o;const{stnName:a,onUpdate:n}=t,r=m.useRef(null);return m.useEffect(()=>{r.current&&n&&n(r.current.getBBox())},[JSON.stringify(a)]),s.jsxs("g",{ref:r,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:90,children:a.zh}),s.jsx("g",{fontSize:36,children:(o=(i=a.en)==null?void 0:i.split("\\"))==null?void 0:o.map((l,c)=>s.jsx("text",{className:"rmg-name__en",dy:70+c*36,children:l},c))})]})},(e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName)),Qt=e=>{const{secondaryName:t,transform:a}=e,n=m.useRef(null),[r,i]=m.useState({x:0,width:0});return m.useEffect(()=>{n.current&&i(n.current.getBBox())},[t.toString()]),s.jsxs("g",{transform:a,children:[s.jsxs("g",{transform:"translate(0,4.5)",fontSize:36,children:[s.jsx("text",{textAnchor:"end",x:r.x-3,className:"rmg-name__zh",children:"("}),s.jsx("text",{textAnchor:"start",x:r.width+r.x+3,className:"rmg-name__zh",children:")"})]}),s.jsxs("g",{ref:n,textAnchor:"middle",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:26,children:t.zh}),s.jsx("text",{dy:22,className:"rmg-name__en",fontSize:14,children:t.en})]})]})},en=()=>{var y,p,j;const{svg_height:e,svgWidth:t,theme:a,direction:n,info_panel_type:r,line_num:i,current_stn_idx:o,stn_list:l}=z(S=>S.param),c=l[o],[d,f]=m.useState({width:0}),x=(j=(p=(y=c.localisedName.en)==null?void 0:y.split("\\"))==null?void 0:p.length)!=null?j:1,u=c[n===O.left?"parents":"children"],g={name:"translate(".concat((n===O.left?1:-1)*t[$.RunIn]/4,",45)"),next:"translate(".concat((n===O.left?1:-1)*t[$.RunIn]/10,",45)")},h={nameGroup:{x:t.runin/2,y:.5*e-50-(x-1)*18-(c.localisedSecondaryName?29:0)},secondaryName:{x:0,y:70+x*36}};return s.jsxs("g",{children:[s.jsxs("g",{transform:r===I.gz2otis?g.name:"",children:[s.jsxs("g",{textAnchor:"middle",transform:"translate(".concat(h.nameGroup.x,",").concat(h.nameGroup.y,")"),children:[s.jsx(Kt,{stnName:c.localisedName,onUpdate:f}),c.localisedSecondaryName&&s.jsx(Qt,{secondaryName:c.localisedSecondaryName,transform:"translate(".concat(h.secondaryName.x,",").concat(h.secondaryName.y,")")})]}),s.jsx(fe,{lineNum:i,stnNum:c.num,strokeColour:a[2],textClassName:"rmg-name__zh",style:{"--translate-x":"".concat((t[$.RunIn]+d.width)/2+55,"px"),"--translate-y":"".concat(.5*e-30-(x-1)*18-(c.localisedSecondaryName?58/2:0),"px"),transform:"translate(var(--translate-x, 800px), var(--translate-y, 145px))"},size:"lg"})]}),s.jsx("g",{transform:r===I.gz2otis?g.next:"",children:!u||u.includes("linestart")||u.includes("lineend")?s.jsx(s.Fragment,{}):u.length===1?s.jsx(tn,{nextId:u[0],nameBBox:d}):s.jsx(rn,{nextIds:u,nameBBox:d})})]})},tn=e=>{const{nextId:t,nameBBox:a}=e,n=z(y=>y.param.svgWidth),r=z(y=>y.param.direction),i=z(y=>y.param.stn_list[t]),{localisedName:o,localisedSecondaryName:l}=i,{zh:c="",en:d=""}=o,[f,x]=m.useState({width:0}),u=m.useRef(null);m.useEffect(()=>{u.current&&x(u.current.getBBox())},[c,d]);const g=c.length,h=(n[$.RunIn]-a.width)/2;return s.jsxs(s.Fragment,{children:[s.jsxs("g",{id:"big_next",children:[s.jsxs("g",{textAnchor:"middle",style:{"--translate-x":r===O.left?"80px":g<=2?"".concat(n[$.RunIn]-45-f.width-70,"px"):"".concat(n[$.RunIn]-45-f.width-35*1.5,"px")},children:[s.jsx("text",{className:"rmg-name__zh",fontSize:35,children:"下站"}),s.jsx("text",{className:"rmg-name__en",fontSize:17,dy:30,children:"Next"})]}),s.jsxs("g",{textAnchor:"start",ref:u,style:{"--translate-x":r===O.left?g<=2?"150px":"".concat(115+35/2,"px"):"".concat(n[$.RunIn]-45-f.width,"px")},children:[s.jsx("text",{className:"rmg-name__zh",fontSize:35,children:c}),s.jsx("g",{fontSize:17,children:d.split("\\").map((y,p)=>s.jsx("text",{className:"rmg-name__en",dy:30+p*17,children:y},p))})]}),l&&s.jsx("g",{textAnchor:"middle",style:{"--translate-x":r===O.left?g<=2?"150px":"".concat(115+35/2,"px"):"".concat(n[$.RunIn]-45-f.width,"px")},children:s.jsx(nn,{secName:l,transform:"translate(".concat(f.width/2,",").concat(30+d.split("\\").length*17+5,")")})})]}),s.jsx(he,{id:"arrow",style:{"--translate-x":r===O.left?"".concat((115+35*((g<=2?1:.5)+g)+h)/2-20,"px"):"".concat((n[$.RunIn]-45-f.width-(g<=2?105:35*2.5)+h+e.nameBBox.width+55+18.5*1.4)/2+20,"px"),"--rotate":r===O.left?"0deg":"180deg"}})]})},nn=e=>{const{secName:t,...a}=e,{zh:n,en:r}=t,i=m.useRef(null),[o,l]=m.useState({x:0,width:0});return m.useEffect(()=>{i.current&&l(i.current.getBBox())},[n,r]),s.jsxs("g",{...a,children:[s.jsxs("g",{transform:"translate(0,2.5)",fontSize:25,children:[s.jsx("text",{textAnchor:"end",x:o.x-3,className:"rmg-name__zh",children:"("}),s.jsx("text",{textAnchor:"start",x:o.width+o.x+3,className:"rmg-name__zh",children:")"})]}),s.jsxs("g",{ref:i,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:18,children:n}),s.jsx("text",{className:"rmg-name__en",fontSize:10,dy:15,children:r})]})]})},rn=e=>{const{nextIds:t,nameBBox:a}=e,{routes:n}=z(h=>h.helper),r=z(h=>h.param.svgWidth),i=z(h=>h.param.direction),o=z(h=>h.param.stn_list),l=t.map(h=>o[h].localisedName),[c,d]=m.useState({width:0}),f=m.useRef([]);m.useEffect(()=>{d(h=>({...h,width:0})),f.current.forEach(h=>{const y=h==null?void 0:h.getBBox();d(p=>y?p.width>y.width?p:y:p)})},[l.toString()]);const x=e.nextIds.map(h=>n.reduce((y,p)=>p.includes(h)?y.concat(p.filter(j=>!["linestart","lineend"].includes(j)).slice(i===O.left?0:-1)[0]):y,[])),u=Math.max(...l.map(h=>{var y,p;return(p=(y=h.zh)==null?void 0:y.length)!=null?p:0})),g=(r[$.RunIn]-a.width)/2;return s.jsxs(s.Fragment,{children:[s.jsx("g",{id:"big_next_2",children:l.map((h,y)=>{var p,j;return s.jsxs(m.Fragment,{children:[s.jsxs("g",{textAnchor:"middle",style:{"--translate-x":i===O.left?"72px":"".concat(r[$.RunIn]-45-c.width-41,"px")},children:[s.jsx("text",{className:"rmg-name__zh",children:"下站"}),s.jsx("text",{className:"rmg-name__en",y:22,children:"Next"})]}),s.jsxs("g",{ref:S=>f.current[y]=S,textAnchor:"start",style:{"--translate-x":i===O.left?"113px":"".concat(r[$.RunIn]-45-c.width,"px")},children:[s.jsx("text",{className:"rmg-name__zh",children:h.zh}),(j=(p=h.en)==null?void 0:p.split("\\"))==null?void 0:j.map((S,v)=>s.jsx("text",{className:"rmg-name__en",y:22+v*13,children:S},v)),s.jsx("text",{className:"rmg-name__zh",y:-35,children:x[y].map(S=>o[S].localisedName.zh).join("/")+"方向"}),s.jsx("text",{className:"rmg-name__en rmg-name__gzmtr--next2-dest",y:-20,children:"Towards "+x[y].map(S=>o[S].localisedName.en).join("/").replace("\\"," ")})]})]},y)})}),s.jsx(he,{id:"arrow",style:{"--translate-x":i===O.left?"".concat((99+27*(1+u)+g)/2-20,"px"):"".concat((r[$.RunIn]-45-c.width-41-27+g+e.nameBBox.width+55+18.5*1.4)/2+20,"px"),"--rotate":i===O.left?"0deg":"180deg"}})]})};function an(e){const{num:t,...a}=e;return s.jsxs("g",{textAnchor:"middle",fill:"var(--rmg-theme-fg)",...a,children:[s.jsx("circle",{cx:0,cy:0,r:30,fill:"var(--rmg-theme-colour)"}),s.jsx("text",{className:"rmg-name__en",fontSize:38,dy:-9.5,children:t}),s.jsx("text",{className:"rmg-name__zh",fontSize:13,dy:10,children:"站台"}),s.jsx("text",{className:"rmg-name__en",fontSize:9,dy:21,children:"Platform"})]})}function sn(e){const{canvasType:t}=e,{svgWidth:a,svg_height:n}=z(r=>r.param);return s.jsxs("g",{id:"otis_frame",strokeWidth:3,stroke:"black",children:[s.jsx("line",{y2:n,transform:"translate(".concat(a[t]/2,",0)")}),s.jsx("line",{x2:a[t],transform:"translate(0,90)"})]})}const K=$.RunIn;function on(){const{canvasScale:e}=z(f=>f.app),{svgWidth:t,svg_height:a,direction:n,info_panel_type:r,platform_num:i,psd_num:o,theme:l}=z(f=>f.param),c=t[K],d={platform:"translate(".concat(n===O.left?50:-50,",45)")};return s.jsxs(Ee,{type:K,svgWidth:c,svgHeight:a,canvasScale:e,theme:l,children:[s.jsx(Re,{variant:r,isShowLight:r!==I.gz2otis,isShowPSD:r!==I.gz2otis&&o}),s.jsx("g",{transform:r===I.gz2otis?d.platform:"",children:s.jsx(an,{num:i,style:{"--translate-x":"".concat(n===O.left?c-100:100,"px"),"--translate-y":"calc(var(--rmg-svg-height) / 2 - 30px)",transform:"translate(var(--translate-x, 100px), var(--translate-y))"}})}),s.jsx(en,{}),r===I.gz2otis&&s.jsx(sn,{canvasType:K})]})}const hn={runin:s.jsx(on,{}),railmap:s.jsx(Xt,{})};export{hn as default}; diff --git a/assets/index-DaXT2Y8N.js b/assets/index-DdI5l9H9.js similarity index 90% rename from assets/index-DaXT2Y8N.js rename to assets/index-DdI5l9H9.js index e3f3e441..6e021a95 100644 --- a/assets/index-DaXT2Y8N.js +++ b/assets/index-DdI5l9H9.js @@ -1 +1 @@ -import{j as t}from"./chakra-CXrhlirJ.js";import{a as g}from"./react-Caefwd5V.js";import{aR as x,u as c}from"./index-BqOgmhc6.js";import{S as f}from"./svg-wrapper-DO1Iqw6o.js";const _=x.Destination;function R(){const{canvasScale:r}=c(n=>n.app),{svgWidth:a,svg_height:e,theme:s}=c(n=>n.param),i=a[_];return t.jsxs(f,{type:_,svgWidth:i,svgHeight:e,canvasScale:r,theme:s,children:[t.jsx(W,{}),t.jsx(N,{})]})}const W=g.memo(function(){return t.jsx("defs",{children:t.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:t.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})}),N=()=>{var m;const{routes:r}=c(o=>o.helper),{current_stn_idx:a,direction:e,stn_list:s}=c(o=>o.param),l=(m=((o,d,p)=>[...new Set(o.filter(h=>h.includes(p)).map(h=>{const u=h.filter(v=>!["linestart","lineend"].includes(v));return d==="l"?u[0]:u.reverse()[0]}))])(r,e,a).map(o=>[s[o].localisedName.zh,s[o].localisedName.en].filter(d=>d!==void 0).map(d=>d.replace("\\",""))).at(0))!=null?m:["",""];return t.jsx(H,{dest_name:l})},H=r=>{const{dest_name:a}=r,{direction:e,svgWidth:s,svg_height:i,theme:n}=c(l=>l.param);return t.jsxs("g",{transform:"translate(0,".concat(i-300,")"),children:[t.jsx("path",{stroke:n[2],strokeWidth:12,d:e==="l"?"M".concat(s.destination-24,",16 H 36"):"M24,16 H ".concat(s.destination-36),transform:"translate(0,220)",markerEnd:"url(#slope)"}),t.jsx(b,{dest_name:a})]})},b=r=>{const{dest_name:a}=r,{direction:e,svgWidth:s}=c(u=>u.param),i=g.useRef(null),n=g.useRef(null),[l,m]=g.useState(0);g.useEffect(()=>{if(i.current&&n.current){const u=Math.max(i.current.getBBox().width,n.current.getBBox().width);m(u)}},[...a]);const o=24,h=l+o+20+128;return t.jsxs("g",{transform:"translate(0,145)",children:[t.jsx("g",{transform:"translate(".concat(e==="l"?s.destination-h:h,",20)"),children:t.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:"rotate(".concat(e==="l"?0:180,")scale(0.8)")})}),t.jsx("g",{ref:i,transform:"translate(".concat(e==="l"?s.destination-o:o,",25)"),textAnchor:e==="l"?"end":"start",children:t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:7,children:"往"+a[0]})}),t.jsx("g",{ref:n,transform:"translate(".concat(e==="l"?s.destination-o:o,",25)"),children:t.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dx:e==="l"?-l:0,dy:40,children:"To "+a[1]})})]})},j=x.Platform,y=()=>{const{canvasScale:r}=c(n=>n.app),{svgWidth:a,svg_height:e,theme:s}=c(n=>n.param),i=a[j];return t.jsx(f,{type:j,svgWidth:i,svgHeight:e,canvasScale:r,theme:s,children:t.jsx(z,{})})},z=()=>{const{svgWidth:r,svg_height:a,platform_num:e}=c(i=>i.param),s=r.platform/2;return t.jsxs("g",{transform:"translate(".concat(s,",").concat(a-140,")"),children:[t.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"end",children:e}),t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:50,x:10,dy:10,children:"站台"}),t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:30,x:10,dy:50,children:"Platform"})]})},S=x.RunIn,D=()=>{const{canvasScale:r}=c(l=>l.app),{svgWidth:a,svg_height:e,theme:s}=c(l=>l.param),i=a[S],n=e-300;return t.jsxs(f,{type:S,svgWidth:i,svgHeight:e,canvasScale:r,theme:s,children:[t.jsx(w,{}),t.jsx("g",{transform:"translate(0,".concat(n,")"),children:t.jsx(A,{})})]})},w=g.memo(function(){return t.jsx("defs",{children:t.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:t.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})}),A=()=>{const{svgWidth:r,stn_list:a,current_stn_idx:e}=c(o=>o.param),{localisedName:s,character_spacing:i}=a[e],{zh:n="",en:l=""}=s,m=r.runin/2;return t.jsxs("g",{transform:"translate(".concat(m,",160)"),textAnchor:"middle",children:[t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,dx:i/2,letterSpacing:i,children:n.replace("\\","")}),t.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:75,children:l.replace("\\","")})]})},T={destination:t.jsx(R,{}),runin:t.jsx(D,{}),platform:t.jsx(y,{})};export{T as default}; +import{j as t}from"./chakra-CXrhlirJ.js";import{a as g}from"./react-Caefwd5V.js";import{aS as x,u as c}from"./index-ChIkpPhE.js";import{S as f}from"./svg-wrapper-DO1Iqw6o.js";const _=x.Destination;function W(){const{canvasScale:r}=c(n=>n.app),{svgWidth:a,svg_height:e,theme:s}=c(n=>n.param),i=a[_];return t.jsxs(f,{type:_,svgWidth:i,svgHeight:e,canvasScale:r,theme:s,children:[t.jsx(N,{}),t.jsx(R,{})]})}const N=g.memo(function(){return t.jsx("defs",{children:t.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:t.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})}),R=()=>{var m;const{routes:r}=c(o=>o.helper),{current_stn_idx:a,direction:e,stn_list:s}=c(o=>o.param),l=(m=((o,d,p)=>[...new Set(o.filter(h=>h.includes(p)).map(h=>{const u=h.filter(v=>!["linestart","lineend"].includes(v));return d==="l"?u[0]:u.reverse()[0]}))])(r,e,a).map(o=>[s[o].localisedName.zh,s[o].localisedName.en].filter(d=>d!==void 0).map(d=>d.replace("\\",""))).at(0))!=null?m:["",""];return t.jsx(H,{dest_name:l})},H=r=>{const{dest_name:a}=r,{direction:e,svgWidth:s,svg_height:i,theme:n}=c(l=>l.param);return t.jsxs("g",{transform:"translate(0,".concat(i-300,")"),children:[t.jsx("path",{stroke:n[2],strokeWidth:12,d:e==="l"?"M".concat(s.destination-24,",16 H 36"):"M24,16 H ".concat(s.destination-36),transform:"translate(0,220)",markerEnd:"url(#slope)"}),t.jsx(b,{dest_name:a})]})},b=r=>{const{dest_name:a}=r,{direction:e,svgWidth:s}=c(u=>u.param),i=g.useRef(null),n=g.useRef(null),[l,m]=g.useState(0);g.useEffect(()=>{if(i.current&&n.current){const u=Math.max(i.current.getBBox().width,n.current.getBBox().width);m(u)}},[...a]);const o=24,h=l+o+20+128;return t.jsxs("g",{transform:"translate(0,145)",children:[t.jsx("g",{transform:"translate(".concat(e==="l"?s.destination-h:h,",20)"),children:t.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:"rotate(".concat(e==="l"?0:180,")scale(0.8)")})}),t.jsx("g",{ref:i,transform:"translate(".concat(e==="l"?s.destination-o:o,",25)"),textAnchor:e==="l"?"end":"start",children:t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:7,children:"往"+a[0]})}),t.jsx("g",{ref:n,transform:"translate(".concat(e==="l"?s.destination-o:o,",25)"),children:t.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dx:e==="l"?-l:0,dy:40,children:"To "+a[1]})})]})},j=x.Platform,y=()=>{const{canvasScale:r}=c(n=>n.app),{svgWidth:a,svg_height:e,theme:s}=c(n=>n.param),i=a[j];return t.jsx(f,{type:j,svgWidth:i,svgHeight:e,canvasScale:r,theme:s,children:t.jsx(z,{})})},z=()=>{const{svgWidth:r,svg_height:a,platform_num:e}=c(i=>i.param),s=r.platform/2;return t.jsxs("g",{transform:"translate(".concat(s,",").concat(a-140,")"),children:[t.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"end",children:e}),t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:50,x:10,dy:10,children:"站台"}),t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:30,x:10,dy:50,children:"Platform"})]})},S=x.RunIn,D=()=>{const{canvasScale:r}=c(l=>l.app),{svgWidth:a,svg_height:e,theme:s}=c(l=>l.param),i=a[S],n=e-300;return t.jsxs(f,{type:S,svgWidth:i,svgHeight:e,canvasScale:r,theme:s,children:[t.jsx(w,{}),t.jsx("g",{transform:"translate(0,".concat(n,")"),children:t.jsx(A,{})})]})},w=g.memo(function(){return t.jsx("defs",{children:t.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:t.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})}),A=()=>{const{svgWidth:r,stn_list:a,current_stn_idx:e}=c(o=>o.param),{localisedName:s,character_spacing:i}=a[e],{zh:n="",en:l=""}=s,m=r.runin/2;return t.jsxs("g",{transform:"translate(".concat(m,",160)"),textAnchor:"middle",children:[t.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,dx:i/2,letterSpacing:i,children:n.replace("\\","")}),t.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:75,children:l.replace("\\","")})]})},T={destination:t.jsx(W,{}),runin:t.jsx(D,{}),platform:t.jsx(y,{})};export{T as default}; diff --git a/assets/index-F70Wom7-.js b/assets/index-F70Wom7-.js new file mode 100644 index 00000000..2e99ea65 --- /dev/null +++ b/assets/index-F70Wom7-.js @@ -0,0 +1 @@ +import{j as s}from"./chakra-CXrhlirJ.js";import{a as m}from"./react-Caefwd5V.js";import{h as D,aZ as R,u as z,m as Ue,S as w,aS as $,P as k}from"./index-ChIkpPhE.js";import{a as Ye,c as B,b as Je,d as Ve}from"./share-r5pzRDhM.js";import{S as Ie}from"./svg-wrapper-DO1Iqw6o.js";import{i as qe}from"./param-selector-BJ-4ECJo.js";function Ke(e){const{num:t,inStrip:a,...n}=e;return s.jsxs("g",{textAnchor:"middle",fill:a?D.black:"var(--rmg-theme-fg)",...n,children:[s.jsx("rect",{height:40,width:40,rx:4,x:-20,fill:a?"#fff":"var(--rmg-theme-colour)"}),s.jsx("text",{className:"rmg-name__en",fontSize:20,dy:12,children:t}),s.jsx("text",{className:"rmg-name__zh",fontSize:12,dy:26,children:"屏蔽门"}),s.jsx("text",{className:"rmg-name__en",fontSize:6.5,dy:36,children:"Screen Door"})]})}const Re=e=>{const t=(r=>{switch(r){case"gz28":case"gz2otis":case"gz6":case"gzgf":return 60;case"gz1":case"gz3":return 40;case"gz4":case"gz5":case"gz1421":case"gz11":case"gz1822":case"gz7w":return 20;default:return 0}})(e.variant),a=m.useMemo(()=>{switch(e.variant){case"gz1":return s.jsx("circle",{cy:-58,r:16,fill:"red"});case"gz28":case"gz2otis":return s.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"orange"});case"gz3":return s.jsx("rect",{x:-15,y:-55,height:30,width:30,fill:"red"});case"gz6":return s.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"white"});case"gz1421":return s.jsx("ellipse",{cy:-38,rx:24,ry:12,fill:"orange"});case"gz5":return s.jsx("rect",{x:-30,y:-70,height:30,width:60,fill:"orange"});case"gz4":return s.jsx("rect",{x:-50,y:-50,height:25,width:100,fill:"whitesmoke"});case"gzgf":return s.jsx("rect",{x:-30,y:-58,height:30,width:60,fill:"orange"});case"gz7w":case"gz11":return s.jsx("ellipse",{cy:-40,rx:28,ry:14,fill:"orange"});default:return s.jsx(s.Fragment,{})}},[e.variant]);return s.jsxs("g",{transform:"translate(0,".concat(e.variant==="gz4"?-20:0,")"),children:[s.jsx("rect",{id:"strip_gz",style:{"--height":"".concat(t,"px")}}),s.jsx("g",{style:{transform:"translate(calc(var(--rmg-svg-width) / 2),var(--rmg-svg-height))"},children:e.isShowLight&&a}),e.isShowPSD!==!1&&s.jsx(Qe,{...e})]})},Qe=m.memo(function(t){const a=["gz28","gz2otis","gz6","gzgf"].includes(t.variant),n=(o=>{switch(o){case"gz1":case"gz3":return"82px";case"gz4":return"65px";case"gz5":return"80px";case"gz1421":return"62px";case"gz7w":case"gz11":return"70px";default:return"58px"}})(t.variant),r=(o=>{switch(o){case"gz7w":case"gz11":return 1.1;default:return 1}})(t.variant);return s.jsx(Ke,{num:t.isShowPSD,inStrip:a,style:{"--psd-dy":n,transform:"translate(var(--translate-x), var(--translate-y))scale(var(--scale))","--translate-x":"calc(var(--rmg-svg-width) / 2 + 80px)","--translate-y":"calc(var(--rmg-svg-height) - var(--psd-dy, 58px))","--scale":r}})},(e,t)=>e.variant===t.variant&&e.isShowPSD===t.isShowPSD);var A=1.3,Ae=1.7,J=18.5,et=J+A,X=J*2+A;var Z=45,E=Z-3,Me=function(e,t){var a=[e,t].map(function(n){return n.match(/^(\w+).+$/)});if(a[0]&&a[1]&&a[0][1]===a[1][1])return a[0][1]},he=function(e){var t=e.match(/^(\d+)\D+$/);return t==null?void 0:t[1]},ee=function(){return ee=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)o.push(r.value)}catch(c){i={error:c}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(i)throw i.error}}return o},at=function(e,t){var a=he(e);if(a)return{isDigit:!0,spanningPart:a};var n=Me(e,t);return n?{isDigit:!1,spanningPart:n}:{isDigit:!1,spanningPart:""}};function ve(e){var t=e.zhName,a=e.enName,n=e.foregroundColour,r=e.backgroundColour,o=e.zhClassName,i=e.enClassName,c=e.passed,u=e.children,l=nt(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),h=at(t,a),f=h.isDigit,d=h.spanningPart,g=m.useRef(null),v=rt(m.useState({x:0,height:0,width:0}),2),x=v[0],y=v[1];m.useEffect(function(){g.current&&y(g.current.getBBox())},[t,a]);var _=E/Math.max(E,x.width),N=(-x.x-x.width/2)*_,p=x.height*(1-_)/2;return s.jsxs("g",te({textAnchor:"middle",fill:c?D.white:n},l,{children:[s.jsx(V,{fill:c?"#aaa":r}),s.jsx("g",{ref:g,transform:"translate(".concat(N,",").concat(p,")scale(").concat(_,")"),children:s.jsxs("text",{className:o,fontSize:21,x:-1,y:12,textAnchor:"end",dominantBaseline:"central",children:[d,s.jsx("tspan",{className:o,fontSize:10,x:0,dy:-4,textAnchor:"start",dominantBaseline:"central",children:t.slice(d.length).trim()}),s.jsx("tspan",{className:i,fontSize:6.5,letterSpacing:-.1,x:0,dy:10,textAnchor:"start",dominantBaseline:"middle",children:f?a:a.slice(d.length).trim()})]})}),u]}))}var ne=function(){return ne=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)o.push(r.value)}catch(c){i={error:c}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(i)throw i.error}}return o};function ot(e){var t,a=e.zhName,n=e.enName,r=e.foregroundColour,o=e.backgroundColour,i=e.zhClassName,c=e.enClassName,u=e.passed,l=e.children,h=st(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),f=(t=he(a))!==null&&t!==void 0?t:"",d=m.useRef(null),g=m.useRef(null),v=_e(m.useState({width:0}),2),x=v[0],y=v[1],_=_e(m.useState({width:0}),2),N=_[0],p=_[1];m.useEffect(function(){d.current&&y(d.current.getBBox()),g.current&&p(g.current.getBBox())},[a,n]);var j=E/Math.max(E,x.width),S=E/Math.max(E,N.width),C={nameZh:{y:7.3+13.5*(1-j)*j/2},nameEn:{y:19.5-9*(1-S)*S/2}};return s.jsxs("g",ne({textAnchor:"middle",fill:u?D.white:r},h,{children:[s.jsx(V,{fill:u?"#aaa":o}),s.jsxs("text",{ref:d,className:i,fontSize:12,transform:"translate(0,".concat(C.nameZh.y,")scale(").concat(j,")"),dominantBaseline:"central",children:[s.jsx("tspan",{fontSize:16,dy:.7,dominantBaseline:"central",children:f}),s.jsx("tspan",{dy:-.7,dominantBaseline:"central",children:a.slice(f.length)})]}),s.jsx("text",{ref:g,className:c,fontSize:8,transform:"translate(0,".concat(C.nameEn.y,")scale(").concat(S,")"),dominantBaseline:"middle",children:n}),l]}))}var re=function(){return re=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)o.push(r.value)}catch(c){i={error:c}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(i)throw i.error}}return o};function lt(e){var t=e.zhName,a=e.enName,n=e.foregroundColour,r=e.backgroundColour,o=e.zhClassName,i=e.enClassName,c=e.passed,u=e.children,l=it(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),h=m.useRef(null),f=ct(m.useState({width:0}),2),d=f[0],g=f[1];m.useEffect(function(){h.current&&g(h.current.getBBox())},[t,a]);var v=Math.max(45,d.width+4);return s.jsxs("g",re({textAnchor:"middle",fill:c?D.white:n},l,{children:[s.jsx(V,{customWidth:v,fill:c?"#aaa":r}),s.jsxs("g",{ref:h,children:[s.jsx("text",{className:o,fontSize:8.5,y:8,dominantBaseline:"central",children:t}),s.jsx("text",{className:i,fontSize:5.5,y:18,dominantBaseline:"middle",children:a})]}),u]}))}var ae=function(){return ae=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)o.push(r.value)}catch(c){i={error:c}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(i)throw i.error}}return o};function dt(e){var t=e.zhName,a=e.enName,n=e.foregroundColour,r=e.backgroundColour,o=e.zhClassName,i=e.enClassName,c=e.passed,u=e.children,l=ut(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),h=m.useRef(null),f=m.useRef(null),d=je(m.useState({width:0}),2),g=d[0],v=d[1],x=je(m.useState({width:0}),2),y=x[0],_=x[1];m.useEffect(function(){h.current&&v(h.current.getBBox()),f.current&&_(f.current.getBBox())},[t,a]);var N=E/Math.max(E,g.width),p=E/Math.max(E,y.width),j={nameZh:{y:7.3+13.5*(1-N)*N/2},nameEn:{y:19.5-9*(1-p)*p/2}};return s.jsxs("g",ae({textAnchor:"middle",fill:c?D.white:n},l,{children:[s.jsx(V,{fill:c?"#aaa":r}),s.jsx("text",{ref:h,className:o,fontSize:12,transform:"translate(0,".concat(j.nameZh.y,")scale(").concat(N,")"),dominantBaseline:"central",children:t}),s.jsx("text",{ref:f,className:i,fontSize:8,transform:"translate(0,".concat(j.nameEn.y,")scale(").concat(p,")"),dominantBaseline:"middle",children:a}),u]}))}var W=function(){return W=Object.assign||function(e){for(var t,a=1,n=arguments.length;a=5?s.jsx(lt,W({},t)):s.jsx(dt,W({},t))}});var mt=function(e,t){var a=he(e);if(a!==void 0)return 1;var n=Me(e,t);return n!==void 0?2:3},se=function(){return se=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)o.push(r.value)}catch(c){i={error:c}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(i)throw i.error}}return o},F=17,Le=m.forwardRef(function(t,a){var n=t.Icon,r=t.lineNum,o=t.stnNum,i=t.strokeColour,c=t.passed,u=t.size,l=t.textClassName,h=t.bolderBorder,f=t.alwaysShowColouredBorder,d=t.useSameScale,g=t.children,v=yt(t,["Icon","lineNum","stnNum","strokeColour","passed","size","textClassName","bolderBorder","alwaysShowColouredBorder","useSameScale","children"]),x=m.useContext(xt).updateId,y=m.useRef(null),_=m.useRef(null),N=be(m.useState({width:0}),2),p=N[0],j=N[1],S=be(m.useState({width:0}),2),C=S[0],P=S[1];m.useEffect(function(){y.current&&j(y.current.getBBox()),_.current&&P(_.current.getBBox())},[r,o,x]);var b=r&&r.length>2;m.useEffect(function(){d&&b&&console.warn("GenericStationNumber(), useSameScale props does not work when lineNum has more than 2 characters")},[d,b]);var O=F/Math.max(F,p.width),I=d&&(r==null?void 0:r.length)===2?O:F/Math.max(F,C.width),T=u==="sm"?"0.7":u==="lg"?"1.4":1;return s.jsxs("g",ie({ref:a},v,{children:[s.jsxs("g",{transform:"scale(".concat(T,")"),children:[s.jsx(n,{stroke:c&&!f?"#aaa":i,filled:!r&&!o,bolder:h}),(r||o)&&s.jsxs("g",{textAnchor:"middle",fontSize:13.5,fill:c?"#aaa":"#000",children:[s.jsx("g",{transform:"translate(-9.25,0)scale(".concat(O,")"),children:s.jsx("text",{ref:y,className:l,dominantBaseline:"central",x:.5,children:r})}),s.jsx("g",{transform:"translate(9.25,0)scale(".concat(I,")"),children:s.jsx("text",{ref:_,className:l,dominantBaseline:"central",children:o})})]})]}),g]}))}),ce=function(){return ce=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0)&&!(r=n.next()).done;)o.push(r.value)}catch(c){i={error:c}}finally{try{r&&!r.done&&(a=n.return)&&a.call(n)}finally{if(i)throw i.error}}return o},q=function(e,t){return Array.from(Array(e).keys()).map(function(a){return(a-(e-1)/2)*t})},_t=function(e,t,a){if(e<=0)return[];if(e===1)return[[0,0]];for(var n=t>e?e:t,r=X,o=et,i=q(n,r),c=Math.ceil(e/n),u=q(c,o),l=e%n,h=[],f=0;f=d.length)return console.warn(", anchor index ".concat(u," is out of bound")),[0,0];var p=ze(d[u],2),j=p[0],S=p[1];return[-j,-S]},[d,u]),2),v=g[0],x=g[1],y=m.useRef(null),_=m.useRef([]);m.useEffect(function(){_.current=_.current.slice(0,n.length)},[n.length]);var N=n.length===2&&i===1&&!!l;return m.useImperativeHandle(a,function(){return{target:y.current,children:_.current,getCoordinates:function(){return d},getCorrectedBBox:function(){var p,j,S=(j=(p=y.current)===null||p===void 0?void 0:p.getBBox())!==null&&j!==void 0?j:{x:0,y:0,width:0,height:0};return S.y-=M/2,S.height+=M,N?(l==="left"?S.x-=K/2:S.x-=M/2,S.width+=K/2+M/2):(S.x-=M/2,S.width+=M),S},getTranslate:function(){return[v,x]}}},[d,v,x,y.current,_.current,l]),s.jsxs("g",U({ref:y,transform:"translate(".concat(v,",").concat(x,")")},f,{children:[n.map(function(p,j){var S=p.style,C=Be(S);return s.jsx(C,{stroke:"#aaa",filled:!0,strokeWidth:M,transform:"translate(".concat(d[j][0],",").concat(d[j][1],")")},j)}),N&&s.jsx(we,{position:l,r:X/2.9,strokeWidth:K,strokeDasharray:void 0}),n.map(function(p,j){var S=p.style,C=Be(S);return s.jsx(C,{stroke:"white",filled:!0,strokeWidth:A*2.6,transform:"translate(".concat(d[j][0],",").concat(d[j][1],")")},j)}),N&&s.jsx(we,{position:l}),n.length&&s.jsx("rect",{fill:"white",x:-12,y:d[0][1],width:24,height:-d[0][1]*2}),n.map(function(p,j){var S=p.style,C=Oe(p,["style"]),P=S==="fmetro"?pt:fe;return s.jsx(P,U({ref:function(b){return _.current[j]=b},transform:"translate(".concat(d[j][0],",").concat(d[j][1],")"),textClassName:r},C),j)}),h]}))});var de=function(){return de=Object.assign||function(e){for(var t,a=1,n=arguments.length;a{i.current&&n&&n(i.current.getBBox())},[JSON.stringify(a)]),s.jsxs("g",{ref:i,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:18,children:r}),s.jsx("g",{fontSize:10.5,children:o.split("\\").map((c,u)=>s.jsx("text",{className:"rmg-name__en",dy:16+u*11,children:c},u))})]})},(e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName));function zt(e){const{stnName:t,onUpdate:a,passed:n,...r}=e,{zh:o="",en:i=""}=t,c=m.useRef(null),[u,l]=m.useState({x:0,width:0});return m.useEffect(()=>{if(c.current){const h=c.current.getBBox();l(h),a==null||a(h)}},[JSON.stringify(t)]),!o&&!i?s.jsx(s.Fragment,{}):s.jsxs("g",{fill:n?"#aaa":"#000",...r,children:[s.jsxs("g",{transform:"translate(0,3)",fontSize:18,children:[s.jsx("text",{textAnchor:"end",x:u.x-3,className:"rmg-name__zh",children:"("}),s.jsx("text",{textAnchor:"start",x:u.width+u.x+3,className:"rmg-name__zh",children:")"})]}),s.jsxs("g",{ref:c,textAnchor:"middle",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:13,children:o}),s.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:i})]})]})}function Bt(e){const{passed:t,...a}=e;return s.jsxs("g",{textAnchor:"middle",fill:t?"#aaa":"var(--rmg-theme-colour)",...a,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:13,children:"快车停靠站"}),s.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:"Express Station"})]})}function $t(e){var g,v,x;const{primaryName:t,secondaryName:a,stationState:n,flipped:r,express:o}=e,[i,c]=m.useState({width:0}),[u,l]=m.useState({x:0,width:-20}),h=y=>{switch(y){case R.PASSED:return"#aaa";case R.CURRENT:return"#f00";case R.FUTURE:return"#000"}},f=(x=(v=(g=t.en)==null?void 0:g.split("\\"))==null?void 0:v.length)!=null?x:1,d={g:{x:0,y:r?17.5:-20-f*14*Math.cos(-45)},StationSecondaryName:{x:(i.width+u.width/2+10)*(r?-1:1),y:2+5*(f-1)},ExpressTag:{x:(i.width+u.width+20+35)*(r?-1:1),y:2+5*(f-1)}};return s.jsxs("g",{textAnchor:r?"end":"start",fill:h(n),transform:"translate(".concat(d.g.x,",").concat(d.g.y,")rotate(-45)"),children:[s.jsx(Ot,{stnName:t,onUpdate:c}),a&&s.jsx(zt,{stnName:a,onUpdate:l,passed:n===R.PASSED,transform:"translate(".concat(d.StationSecondaryName.x,",").concat(d.StationSecondaryName.y,")")}),o&&s.jsx(Bt,{passed:n===R.PASSED,transform:"translate(".concat(d.ExpressTag.x,",").concat(d.ExpressTag.y,")")})]})}function Ct(e){var C,P,b,O,I,T,xe,ye,pe;const{stnId:t,stnState:a,stnY:n}=e,{theme:r,line_name:o,line_num:i,spanLineNum:c,stn_list:u,loop:l,loop_info:{midpoint_station:h,clockwise:f}}=z(Xe=>Xe.param),d=u[t],g=h===t,[v,x]=m.useState({height:0}),y=m.useRef(null);m.useEffect(()=>{y.current&&x(y.current.getBBox())},[y.current,n,d.localisedName,d.localisedSecondaryName,d.services]);const _=d.parents.length===2||d.children.length===2,N=n>0||d.parents.indexOf(((P=(C=d.branch)==null?void 0:C.left)==null?void 0:P[1])||"")===1||d.children.indexOf(((O=(b=d.branch)==null?void 0:b.right)==null?void 0:O[1])||"")===1?180:0,p=(xe=(T=(I=d.localisedName.en)==null?void 0:I.split("\\"))==null?void 0:T.length)!=null?xe:1,j=_?N===180?16+(p-1)*12*Math.cos(-45):-9:N===180?-6:(25+(p-1)*15)*Math.cos(-45),S=n>0?v.height+23:-v.height-23;return s.jsxs(s.Fragment,{children:[s.jsx(Pt,{intInfos:_?[{theme:[r[0],r[1],"var(--rmg-theme-colour)","var(--rmg-theme-fg)"],name:o},...(ye=d.transfer.groups[0].lines)!=null?ye:[]]:(pe=d.transfer.groups[0].lines)!=null?pe:[],stnState:l?R.FUTURE:a,tickRotation:N,spanDigits:c}),s.jsx(fe,{lineNum:i,stnNum:d.num,strokeColour:r[2],textClassName:"rmg-name__zh",passed:a===-1,alwaysShowColouredBorder:l,bolderBorder:!0,useSameScale:!0}),s.jsx("g",{ref:y,transform:"translate(".concat(-j,",0)"),children:s.jsx($t,{primaryName:d.localisedName,secondaryName:d.localisedSecondaryName,stationState:a,flipped:N===180,express:d.services.includes(Ue.express)})}),g&&s.jsx(wt,{transform:"translate(0,".concat(S,")"),clockwise:f,anchorAt:n>0?"text":"circle"})]})}const Pt=e=>s.jsxs(s.Fragment,{children:[s.jsx(kt,{strokeWidth:4,...e}),s.jsx(Et,{transform:"translate(0,".concat(e.tickRotation===180?-47:23,")"),...e})]}),kt=e=>{const{intInfos:t,stnState:a,tickRotation:n,spanDigits:r,...o}=e;return s.jsx("g",{...o,children:t.map((i,c)=>{var u;return s.jsx("use",{xlinkHref:"#inttick",stroke:a===-1?"#aaa":(u=i.theme)==null?void 0:u[2],transform:"translate(".concat(-2*(t.length-1)+4*c,",0)rotate(").concat(n===180?180:0,")")},c)})})},Et=e=>{const{intInfos:t,tickRotation:a,stnState:n,spanDigits:r,...o}=e;return s.jsx("g",{...o,children:t.map((i,c)=>{var u,l,h,f;return s.jsx("g",{transform:"translate(0,".concat(c*28*(a===180?-1:1),")"),children:s.jsx(We,{zhName:i.name[0],enName:i.name[1],foregroundColour:(l=(u=i.theme)==null?void 0:u[3])!=null?l:D.white,backgroundColour:(f=(h=i.theme)==null?void 0:h[2])!=null?f:"#aaaaaa",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",passed:n===-1,spanDigits:r})},c)})})};function Ge(e){const{xs:t,ys:a,stnStates:n}=e,{stn_list:r,loop:o}=z(u=>u.param),{branches:i}=z(u=>u.helper),c=o?i[0].slice(1,-1):Object.keys(r);return s.jsx("g",{id:"stn_icons",children:c.filter(u=>!["linestart","lineend"].includes(u)).map(u=>s.jsx("g",{style:{transform:"translate(".concat(t[u],"px,").concat(a[u],"px)")},children:s.jsx(Ct,{stnId:u,stnState:n[u],stnY:a[u]})},u))})}const Ce=(e,t)=>e[t].parents.length===2||e[t].children.length===2?.25:0,It=(e,t,a)=>{const n=B("linestart","lineend",t);if(n.nodes.includes(e))return B(n.nodes[1],e,t).len;{const r=a.filter(l=>l.includes(e))[0];let o=e;for(;!n.nodes.includes(o);)o=r[r.indexOf(o)-1];let i=e;for(;!n.nodes.includes(i);)i=r[r.indexOf(i)+1];const c=o==="linestart",u=i==="lineend";if(r.toString()===a[0].toString()){const l=[];return!c&&!u?(l[0]=B(n.nodes[1],o,t).len,l[1]=B(o,i,t).len,l[2]=B(o,e,t).len,l[3]=B(e,i,t).len):c?(l[0]=0,l[1]=B(n.nodes[1],i,t).len,l[2]=B(r[1],e,t).len,l[3]=B(e,i,t).len):(l[0]=B(n.nodes[1],o,t).len,l[1]=B(o,n.nodes.slice(-2)[0],t).len,l[2]=B(o,e,t).len,l[3]=B(e,r.slice(-2)[0],t).len),l[0]+l[2]*l[1]/(l[2]+l[3])}else if(!c&&!u){const l=[];return l[0]=B(n.nodes[1],o,t).len,l[1]=B(o,i,t).len,l[2]=B(o,e,t).len,l[3]=B(e,i,t).len,l[0]+l[2]*l[1]/(l[2]+l[3])}else return c?B(n.nodes[1],i,t).len-B(e,i,t).len:B(n.nodes[1],o,t).len+B(o,e,t).len}},Rt=()=>{const{branches:e,routes:t,depsStr:a}=z(b=>b.helper),{svgWidth:n,svg_height:r,y_pc:o,padding:i,branchSpacingPct:c,direction:u,line_name:l,spanLineNum:h,current_stn_idx:f,stn_list:d}=z(b=>b.param),g=Ye(d,Ce,Ce),v=m.useMemo(()=>(console.log("computing x shares"),Object.keys(d).reduce((b,O)=>({...b,[O]:It(O,g,e)}),{})),[e.toString(),JSON.stringify(g)]),x=B("linestart","lineend",g),y=B(x.nodes[1],x.nodes.slice(-2)[0],g),_=u===w.right?[n[$.RailMap]*i/100+65,n[$.RailMap]*(1-i/100)-20]:[n[$.RailMap]*i/100,n[$.RailMap]*(1-i/100)-65],N=Object.keys(v).reduce((b,O)=>({...b,[O]:_[0]+v[O]/y.len*(_[1]-_[0])}),{}),p=m.useMemo(()=>(console.log("computing y shares"),Object.keys(d).reduce((b,O)=>{if(e[0].includes(O))return{...b,[O]:0};{const I=e.slice(1).filter(T=>T.includes(O))[0];return{...b,[O]:d[I[0]].children.indexOf(I[1])?-2:2}}},{})),[a]),j=Object.keys(p).reduce((b,O)=>({...b,[O]:-p[O]*c*r/200}),{}),S=m.useMemo(()=>Je(f,t,u),[f,u,t.toString()]),C=e.map(b=>Ve(b,S)).reduce((b,O)=>(b.main.push(O.main),b.pass.push(O.pass),b),{main:[],pass:[]}),P=Object.keys(C).reduce((b,O)=>({...b,[O]:C[O].map(I=>Mt(I,N,j))}),{});return s.jsxs("g",{id:"main",style:{"--y-percentage":o,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[s.jsx(At,{paths:P}),s.jsx(Ge,{xs:N,ys:j,stnStates:S}),s.jsx("g",{id:"line_name",style:{"--translate-x":u===w.right?"".concat(_[0]-65,"px"):"".concat(_[1]+65,"px")},children:s.jsx(We,{zhName:l[0],enName:l[1],foregroundColour:"var(--rmg-theme-fg)",backgroundColour:"var(--rmg-theme-colour)",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",spanDigits:h})})]})},At=m.memo(function(t){return s.jsxs("g",{fill:"none",strokeWidth:4,children:[s.jsx("g",{stroke:"#aaa",strokeDasharray:4,children:t.paths.pass.map((a,n)=>s.jsx("path",{d:a},n))}),s.jsx("g",{stroke:"var(--rmg-theme-colour)",children:t.paths.main.map((a,n)=>s.jsx("path",{d:a},n))})]})},(e,t)=>JSON.stringify(e.paths)===JSON.stringify(t.paths)),Mt=(e,t,a)=>{let n;const r=[];return e.forEach(o=>{const i=t[o],c=a[o];if(!n&&n!==0){n=c,r.push("M ".concat(i,",").concat(c));return}c===0?(cn&&r.push("H ".concat(i-40),"a 40,40 0 0,1 40,40","V ".concat(c))):(cn&&r.push("V ".concat(c-40),"a 40,40 0 0,0 40,40","H ".concat(i))),r.push("H ".concat(i)),n=c}),r.join(" ").replace(/( H ([\d.]+))+/g," H $2")};function ge(e){return s.jsx("path",{d:"M60,60 L0,0 L60,-60 H90 L40,-10 H150 V10 H40 L90,60z",fill:"black",...e})}function Wt(e){const{destIds:t,textAnchor:a,...n}=e,r=z(l=>l.param.direction),o=z(l=>l.param.stn_list),i=t.map(l=>{var h,f;return(f=(h=o[l].localisedName.zh)==null?void 0:h.length)!=null?f:0}),c=Math.min(...i),u=c>1&&i[0]!==i[1]?Math.abs(i[0]-i[1])/(c-1):0;return s.jsxs("g",{textAnchor:a,...n,children:[t.map((l,h)=>{var g;const f=i[h]>i[1-h],d=!qe()&&a==="end"&&!f;return s.jsxs(m.Fragment,{children:[s.jsx("text",{className:"rmg-name__zh",fontSize:25,x:r===w.left?0:-75,y:-21+42*h,letterSpacing:f?"0em":"".concat(u,"em"),dx:d?"".concat(u,"em"):"0em",children:o[l].localisedName.zh}),s.jsx("text",{className:"rmg-name__en",fontSize:11.5,x:r===w.left?0:-75,y:-1+42*h,children:"Towards "+((g=o[l].localisedName.en)==null?void 0:g.replace("\\"," "))})]},l)}),s.jsx("text",{className:"rmg-name__zh",fontSize:28,x:r===w.left?25*(Math.max(...i)+1):0,y:5,children:"方向"})]})}const Tt=(e,t,a,n)=>{const i=e*(1-2*t/100)*(a-1)/a-n,c=e-i;return[c/2,e-c/2]},Dt=(e,t,a)=>{const n=Math.min(...Object.values(e)),r=Math.max(...Object.values(e)),o=Math.min(...Object.values(t)),c=Math.max(...Object.values(t))-o,u=c/2;return"M".concat(r,",").concat(o," H").concat(n," h-").concat(a/2," a").concat(u,",").concat(u," 0 0,0 0,").concat(c," H").concat(r," h").concat(a/2," a").concat(u,",").concat(u," 0 0,0 0,-").concat(c,"Z")},Lt=(e,t,a,n)=>{const r=e.indexOf(a),o=e.indexOf(n!=null?n:a);let i;return o<0?i=e:t?i=r<=o?[...e.slice(0,r+1),...e.slice(o)]:e.slice(o,r+1):i=rr===l?{...c,[u]:R.CURRENT}:i.includes(u)?{...c,[u]:R.FUTURE}:{...c,[u]:R.PASSED},{})},Pe=6;function Ht({currentStationX:e,currentStationY:t,stationGap:a,loopClockwise:n}){const r=t>0?n?-1:1:n?1:-1,o=(a/3-Pe)*r,i=e+o+Pe*r,c=(t-12)*-r;return s.jsx("g",{transform:"scale(1,".concat(-r,")"),children:s.jsx("path",{d:"M".concat(i,",").concat(c," h").concat(o),strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)"})})}function ke({clockwise:e,...t}){return s.jsx("g",{...t,children:s.jsxs("g",{textAnchor:"middle",transform:"translate(0,-4)",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:16,children:e?"内环":"外环"}),s.jsx("text",{className:"rmg-name__en",y:13,fontSize:9,children:e?"Inner Circle":"Outer Circle"})]})})}const Fe=2/3,Gt=2-Fe,Ft=25*Math.PI/180,Zt=Math.asin(Math.sin(35*Math.PI/180)/2);function Xt({cxLeft:e,cxRight:t,yGap:a,clockwise:n}){const r=a/2,o=r*(n?Fe:Gt),i=n?Ft:Zt,c=o*Math.cos(i),u=n?1:-1,l=n?1:0,h=o*Math.sin(i)*u,f=2*h,d={rotate:n?"-4deg":"2deg"};return s.jsxs(s.Fragment,{children:[s.jsxs("g",{transform:"translate(".concat(e,",0)"),children:[s.jsx("path",{d:"M".concat(-c,",").concat(h," a").concat(o,",").concat(o," 0 0,").concat(l," 0,").concat(-f),fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:d}),s.jsx(ke,{transform:"translate(".concat(n?0:-2*r,",0)"),clockwise:n})]}),s.jsxs("g",{transform:"translate(".concat(t,",0)"),children:[s.jsx("path",{d:"M".concat(c,",").concat(-h," a").concat(o,",").concat(o," 0 0,").concat(l," 0,").concat(f),fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:d}),s.jsx(ke,{transform:"translate(".concat(n?0:2*r,",0)"),clockwise:n})]})]})}function Ut(){const{branches:e}=z(p=>p.helper),{svgWidth:t,svg_height:a,y_pc:n,padding:r,branchSpacingPct:o,current_stn_idx:i,loop_info:{midpoint_station:c,clockwise:u}}=z(p=>p.param),l=e[0].slice(1,-1),h=Math.ceil(l.length/2),f=m.useMemo(()=>(console.log("computing x shares"),l.reduce((p,j,S,C)=>{let P;return S({...p,[j]:g[0]+f[j]*v}),{}),y=m.useMemo(()=>(console.log("computing y shares"),l.reduce((p,j,S)=>({...p,[j]:S({...p,[j]:-y[j]*d/2}),{}),N=Lt(l,u!=null?u:!1,i,c);return s.jsxs("g",{id:"main",style:{"--y-percentage":n,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[s.jsx("path",{d:Dt(x,_,v),fill:"none",strokeWidth:6,stroke:"var(--rmg-theme-colour)"}),s.jsx(Ge,{xs:x,ys:_,stnStates:N}),s.jsx(Ht,{currentStationX:x[i],currentStationY:_[i],stationGap:v,loopClockwise:u}),s.jsx(Xt,{cxLeft:g[0]-v/2,cxRight:g[1]+v/2,yGap:d,clockwise:u})]})}const Ee=$.RailMap,Yt=()=>{const{canvasScale:e}=z(g=>g.app),{svgWidth:t,svg_height:a,direction:n,psd_num:r,info_panel_type:o,notesGZMTR:i,current_stn_idx:c,stn_list:u,theme:l,loop:h}=z(g=>g.param),f=t[Ee],d=u[c];return s.jsxs(Ie,{type:Ee,svgWidth:f,svgHeight:a,canvasScale:e,theme:l,children:[s.jsx(Jt,{}),s.jsx(Re,{variant:o,isShowLight:o===k.gz2otis,isShowPSD:o===k.gz2otis&&r}),n===w.left&&d.parents.includes("linestart")||n===w.right&&d.children.includes("lineend")?s.jsx(Kt,{}):s.jsxs(s.Fragment,{children:[h?s.jsx(Ut,{}):s.jsx(Rt,{}),!h&&s.jsx(Vt,{}),i==null?void 0:i.map((g,v)=>s.jsx(Qt,{note:g},v))]}),o===k.gz2otis&&s.jsx("line",{x2:f,transform:"translate(0,90)",strokeWidth:3,stroke:"black"})]})},Jt=m.memo(function(){return s.jsxs("defs",{children:[s.jsx("path",{id:"inttick",d:"M 0,0 v 18",strokeLinecap:"square"}),s.jsx("marker",{id:"loop_arrow",refX:.05,refY:.5,orient:"auto",children:s.jsx("path",{d:"M0,0V2L2,0z",fill:"black"})})]})}),Vt=()=>{const{routes:e}=z(c=>c.helper),{direction:t,direction_gz_x:a,direction_gz_y:n,current_stn_idx:r}=z(c=>c.param),o=m.useMemo(()=>[...new Set(e.reduce((c,u)=>u.includes(r)?c.concat(u.filter(l=>!["linestart","lineend"].includes(l)).slice(t===w.left?0:-1)[0]):c,[]).filter(c=>c!==r))],[r,t,e.toString()]),i={textAnchor:t===w.left?"start":"end",transform:"translate(".concat(t===w.left?65:-65,",-5)"),destIds:o};return s.jsxs("g",{id:"direction_gz",style:{"--x-percentage":a,"--y-percentage":n},children:[s.jsx(ge,{transform:"scale(0.35)rotate(".concat(t===w.left?0:180,")")}),o.length!==2?s.jsx(qt,{...i}):s.jsx(Wt,{...i})]})},qt=e=>{const{destIds:t,...a}=e,n=z(r=>r.param.stn_list);return s.jsxs("g",{...a,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:28,children:t.map(r=>n[r].localisedName.zh).join("/")+"方向"}),s.jsx("text",{className:"rmg-name__en",fontSize:14,dy:22,children:"Towards "+t.map(r=>{var o;return(o=n[r].localisedName.en)==null?void 0:o.replace("\\"," ")}).join("/")})]})},Kt=m.memo(function(){return s.jsxs("g",{id:"terminus_gz",textAnchor:"middle",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:90,children:"终 点 站"}),s.jsx("text",{dy:70,className:"rmg-name__en",fontSize:36,children:"Terminal"}),s.jsxs("g",{strokeWidth:8,stroke:"#000",children:[s.jsx("path",{d:"M -160,68 h -160"}),s.jsx("path",{d:"M 160,68 h 160"})]})]})}),Qt=m.memo(function(t){const a=m.useRef(null),[n,r]=m.useState({width:0,height:0,y:0});return m.useEffect(()=>{a.current&&r(a.current.getBBox())},[t.note[0],t.note[1]]),s.jsxs("g",{className:"note-box",style:{"--x-percentage":t.note[2],"--y-percentage":t.note[3]},children:[t.note[4]&&s.jsx("rect",{height:n.height+4,width:n.width+4,x:-2,y:n.y-2,fill:"none",stroke:"black",strokeWidth:.5}),s.jsxs("g",{ref:a,children:[s.jsx("g",{fontSize:16,letterSpacing:1.2,children:t.note[0].split("\n").map((o,i)=>s.jsx("text",{className:"rmg-name__zh",y:i*18,children:o},i))}),s.jsx("g",{fontSize:10,letterSpacing:.33,transform:"translate(0,".concat(18*t.note[0].split("\n").length,")"),children:t.note[1].split("\n").map((o,i)=>{var c;return s.jsx("text",{className:"rmg-name__en",y:i*11,textLength:i<(((c=t.note[1].match(/\n/g))==null?void 0:c.length)||0)?n.width:navigator.userAgent.includes("Firefox")?-1:0,lengthAdjust:"spacing",children:o},i)})})]})]})},(e,t)=>e.note.toString()===t.note.toString()),en=m.memo(function(t){var o,i;const{stnName:a,onUpdate:n}=t,r=m.useRef(null);return m.useEffect(()=>{r.current&&n&&n(r.current.getBBox())},[JSON.stringify(a)]),s.jsxs("g",{ref:r,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:92,children:a.zh}),s.jsx("g",{fontSize:40,children:(i=(o=a.en)==null?void 0:o.split("\\"))==null?void 0:i.map((c,u)=>s.jsx("text",{className:"rmg-name__en",dy:72+u*42,children:c},u))})]})},(e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName)),tn=e=>{const{secondaryName:t,transform:a}=e,n=m.useRef(null),[r,o]=m.useState({x:0,width:0});return m.useEffect(()=>{n.current&&o(n.current.getBBox())},[t.toString()]),s.jsxs("g",{transform:a,children:[s.jsxs("g",{transform:"translate(0,4.5)",fontSize:36,children:[s.jsx("text",{textAnchor:"end",x:r.x-3,className:"rmg-name__zh",children:"("}),s.jsx("text",{textAnchor:"start",x:r.width+r.x+3,className:"rmg-name__zh",children:")"})]}),s.jsxs("g",{ref:n,textAnchor:"middle",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:26,children:t.zh}),s.jsx("text",{dy:22,className:"rmg-name__en",fontSize:14,children:t.en})]})]})},Y=55,Ze=18.5*1.4,nn=()=>{var p,j,S;const{svg_height:e,svgWidth:t,theme:a,direction:n,info_panel_type:r,line_num:o,current_stn_idx:i,stn_list:c}=z(C=>C.param),u=c[i],{localisedName:l,localisedSecondaryName:h}=u,[f,d]=m.useState({width:0}),g=(S=(j=(p=l.en)==null?void 0:p.split("\\"))==null?void 0:j.length)!=null?S:1,v=u[n===w.left?"parents":"children"],x=[k.gz7w,k.gz11].includes(r),y={name:"translate(".concat((n===w.left?1:-1)*t[$.RunIn]/4,",45)"),next:"translate(".concat((n===w.left?1:-1)*t[$.RunIn]/10,",45)")},_=(t[$.RunIn]+f.width)/2+Y,N={nameGroup:{x:t.runin/2,y:.5*e-50-(g-1)*18-(h?29:0)},secondaryName:{x:0,y:70+g*36},stationNumber:{x:_,y:.5*e-30-(g-1)*18-(h?58/2:0)},stationNumberPost2022:{x:n===w.left?_:(t[$.RunIn]-f.width)/2-Y,y:.5*e-(g-1)*18-(h?58/2:0)}};return s.jsxs("g",{children:[s.jsxs("g",{transform:r===k.gz2otis?y.name:"",children:[s.jsxs("g",{textAnchor:"middle",transform:"translate(".concat(N.nameGroup.x,",").concat(N.nameGroup.y,")"),children:[s.jsx(en,{stnName:l,onUpdate:d}),h&&s.jsx(tn,{secondaryName:h,transform:"translate(".concat(N.secondaryName.x,",").concat(N.secondaryName.y,")")})]}),s.jsx(fe,{lineNum:o,stnNum:u.num,strokeColour:a[2],textClassName:"rmg-name__zh",transform:x?"translate(".concat(N.stationNumberPost2022.x,",").concat(N.stationNumberPost2022.y,")"):"translate(".concat(N.stationNumber.x,",").concat(N.stationNumber.y,")"),size:"lg"})]}),s.jsx("g",{transform:r===k.gz2otis?y.next:"",children:!v||v.includes("linestart")||v.includes("lineend")?s.jsx(s.Fragment,{}):v.length===1?s.jsx(rn,{nextId:v[0],nameBBox:f,ignoreNumWidth:x}):s.jsx(sn,{nextIds:v,nameBBox:f,ignoreNumWidth:x})})]})},rn=e=>{const{nextId:t,nameBBox:a,ignoreNumWidth:n}=e,r=z(y=>y.param.svgWidth),o=z(y=>y.param.direction),i=z(y=>y.param.stn_list[t]),{localisedName:c,localisedSecondaryName:u}=i,{zh:l="",en:h=""}=c,[f,d]=m.useState({width:0}),g=m.useRef(null);m.useEffect(()=>{g.current&&d(g.current.getBBox())},[l,h]);const v=l.length,x=(r[$.RunIn]-a.width)/2;return s.jsxs(s.Fragment,{children:[s.jsxs("g",{id:"big_next",children:[s.jsxs("g",{textAnchor:"middle",style:{"--translate-x":o===w.left?"80px":v<=2?"".concat(r[$.RunIn]-45-f.width-70,"px"):"".concat(r[$.RunIn]-45-f.width-35*1.5,"px")},children:[s.jsx("text",{className:"rmg-name__zh",fontSize:35,children:"下站"}),s.jsx("text",{className:"rmg-name__en",fontSize:17,dy:30,children:"Next"})]}),s.jsxs("g",{textAnchor:"start",ref:g,style:{"--translate-x":o===w.left?v<=2?"150px":"".concat(115+35/2,"px"):"".concat(r[$.RunIn]-45-f.width,"px")},children:[s.jsx("text",{className:"rmg-name__zh",fontSize:35,children:l}),s.jsx("g",{fontSize:17,children:h.split("\\").map((y,_)=>s.jsx("text",{className:"rmg-name__en",dy:30+_*17,children:y},_))})]}),u&&s.jsx("g",{textAnchor:"middle",style:{"--translate-x":o===w.left?v<=2?"150px":"".concat(115+35/2,"px"):"".concat(r[$.RunIn]-45-f.width,"px")},children:s.jsx(an,{secName:u,transform:"translate(".concat(f.width/2,",").concat(30+h.split("\\").length*17+5,")")})})]}),s.jsx(ge,{id:"arrow",style:{"--translate-x":o===w.left?"".concat((115+35*((v<=2?1:.5)+v)+x)/2-20,"px"):"".concat((r[$.RunIn]-45-f.width-(v<=2?105:35*2.5)+x+e.nameBBox.width+(n?0:Y+Ze))/2+20,"px"),"--rotate":o===w.left?"0deg":"180deg"}})]})},an=e=>{const{secName:t,...a}=e,{zh:n,en:r}=t,o=m.useRef(null),[i,c]=m.useState({x:0,width:0});return m.useEffect(()=>{o.current&&c(o.current.getBBox())},[n,r]),s.jsxs("g",{...a,children:[s.jsxs("g",{transform:"translate(0,2.5)",fontSize:25,children:[s.jsx("text",{textAnchor:"end",x:i.x-3,className:"rmg-name__zh",children:"("}),s.jsx("text",{textAnchor:"start",x:i.width+i.x+3,className:"rmg-name__zh",children:")"})]}),s.jsxs("g",{ref:o,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:18,children:n}),s.jsx("text",{className:"rmg-name__en",fontSize:10,dy:15,children:r})]})]})},sn=e=>{const{nextIds:t,nameBBox:a,ignoreNumWidth:n}=e,{routes:r}=z(x=>x.helper),o=z(x=>x.param.svgWidth),i=z(x=>x.param.direction),c=z(x=>x.param.stn_list),u=t.map(x=>c[x].localisedName),[l,h]=m.useState({width:0}),f=m.useRef([]);m.useEffect(()=>{h(x=>({...x,width:0})),f.current.forEach(x=>{const y=x==null?void 0:x.getBBox();h(_=>y?_.width>y.width?_:y:_)})},[u.toString()]);const d=e.nextIds.map(x=>r.reduce((y,_)=>_.includes(x)?y.concat(_.filter(N=>!["linestart","lineend"].includes(N)).slice(i===w.left?0:-1)[0]):y,[])),g=Math.max(...u.map(x=>{var y,_;return(_=(y=x.zh)==null?void 0:y.length)!=null?_:0})),v=(o[$.RunIn]-a.width)/2;return s.jsxs(s.Fragment,{children:[s.jsx("g",{id:"big_next_2",children:u.map((x,y)=>{var _,N;return s.jsxs(m.Fragment,{children:[s.jsxs("g",{textAnchor:"middle",style:{"--translate-x":i===w.left?"72px":"".concat(o[$.RunIn]-45-l.width-41,"px")},children:[s.jsx("text",{className:"rmg-name__zh",children:"下站"}),s.jsx("text",{className:"rmg-name__en",y:22,children:"Next"})]}),s.jsxs("g",{ref:p=>f.current[y]=p,textAnchor:"start",style:{"--translate-x":i===w.left?"113px":"".concat(o[$.RunIn]-45-l.width,"px")},children:[s.jsx("text",{className:"rmg-name__zh",children:x.zh}),(N=(_=x.en)==null?void 0:_.split("\\"))==null?void 0:N.map((p,j)=>s.jsx("text",{className:"rmg-name__en",y:22+j*13,children:p},j)),s.jsx("text",{className:"rmg-name__zh",y:-35,children:d[y].map(p=>c[p].localisedName.zh).join("/")+"方向"}),s.jsx("text",{className:"rmg-name__en rmg-name__gzmtr--next2-dest",y:-20,children:"Towards "+d[y].map(p=>c[p].localisedName.en).join("/").replace("\\"," ")})]})]},y)})}),s.jsx(ge,{id:"arrow",style:{"--translate-x":i===w.left?"".concat((99+27*(1+g)+v)/2-20,"px"):"".concat((o[$.RunIn]-45-l.width-41-27+v+e.nameBBox.width+(n?0:Y+Ze))/2+20,"px"),"--rotate":i===w.left?"0deg":"180deg"}})]})};function on(e){const{num:t,...a}=e;return s.jsxs("g",{textAnchor:"middle",fill:"var(--rmg-theme-fg)",...a,children:[s.jsx("circle",{cx:0,cy:0,r:33,fill:"var(--rmg-theme-colour)"}),s.jsx("text",{className:"rmg-name__en",fontSize:41,dy:-9,children:t}),s.jsx("text",{className:"rmg-name__zh",fontSize:14,dy:11,children:"站台"}),s.jsx("text",{className:"rmg-name__en",fontSize:10,dy:24,children:"Platform"})]})}function cn(e){const{canvasType:t}=e,{svgWidth:a,svg_height:n}=z(r=>r.param);return s.jsxs("g",{id:"otis_frame",strokeWidth:3,stroke:"black",children:[s.jsx("line",{y2:n,transform:"translate(".concat(a[t]/2,",0)")}),s.jsx("line",{x2:a[t],transform:"translate(0,90)"})]})}function ln({coachNumber:e,...t}){return s.jsxs("g",{...t,children:[s.jsx("path",{d:"M-24,-24 a24,24 0 0,0 0,48 h48 a24,24, 0 0,0 0,-48Z",fill:"whitesmoke",stroke:"lightgrey"}),s.jsxs("g",{textAnchor:"middle",transform:"translate(-15,-7)",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:20,children:"车厢"}),s.jsx("text",{className:"rmg-name__en",fontSize:16,y:20,children:"Car"})]}),s.jsx("g",{textAnchor:"middle",transform:"translate(25,0)",children:s.jsx("text",{className:"rmg-name__zh",fontSize:28,children:e})})]})}const Q=$.RunIn;function un(){const{canvasScale:e}=z(d=>d.app),{svgWidth:t,svg_height:a,direction:n,info_panel_type:r,platform_num:o,psd_num:i,coachNum:c,theme:u}=z(d=>d.param),l=t[Q],h=[k.gz7w,k.gz11].includes(r)?a-60:a/2-30,f={platform:"translate(".concat(n===w.left?50:-50,",45)")};return s.jsxs(Ie,{type:Q,svgWidth:l,svgHeight:a,canvasScale:e,theme:u,children:[s.jsx(Re,{variant:r,isShowLight:r!==k.gz2otis,isShowPSD:r!==k.gz2otis&&i}),s.jsx("g",{transform:r===k.gz2otis?f.platform:"",children:s.jsx(on,{num:o,style:{"--translate-x":"".concat(n===w.left?l-100:100,"px"),"--translate-y":h+"px",transform:"translate(var(--translate-x, 100px), var(--translate-y))"}})}),s.jsx(ln,{coachNumber:c,transform:"translate(".concat(l*.85,",").concat(a*.65,")")}),s.jsx(nn,{}),r===k.gz2otis&&s.jsx(cn,{canvasType:Q})]})}const yn={runin:s.jsx(un,{}),railmap:s.jsx(Yt,{})};export{yn as default}; diff --git a/assets/index-legacy-BrmVktaQ.js b/assets/index-legacy-BrmVktaQ.js deleted file mode 100644 index b7e2a5cc..00000000 --- a/assets/index-legacy-BrmVktaQ.js +++ /dev/null @@ -1 +0,0 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-CCR6yT8f.js","./share-legacy-CN2pvFRh.js","./svg-wrapper-legacy-BDwOt7GE.js","./param-selector-legacy-C3ApLQi1.js"],(function(e,t){"use strict";var n,r,a,s,o,l,i,c,h,d,u,m,f,x,g;return{setters:[e=>{n=e.j},e=>{r=e.a},e=>{a=e.h,s=e.aY,o=e.u,l=e.m,i=e.S,c=e.aR,h=e.P},e=>{d=e.a,u=e.c,m=e.b,f=e.d},e=>{x=e.S},e=>{g=e.i}],execute:function(){function t(e){const{num:t,inStrip:r,...s}=e;return n.jsxs("g",{textAnchor:"middle",fill:r?a.black:"var(--rmg-theme-fg)",...s,children:[n.jsx("rect",{height:40,width:40,rx:4,x:-20,fill:r?"#fff":"var(--rmg-theme-colour)"}),n.jsx("text",{className:"rmg-name__en",fontSize:20,dy:12,children:t}),n.jsx("text",{className:"rmg-name__zh",fontSize:12,dy:26,children:"屏蔽门"}),n.jsx("text",{className:"rmg-name__en",fontSize:6.5,dy:36,children:"Screen Door"})]})}const p=e=>{const t=(e=>{switch(e){case"gz28":case"gz2otis":case"gz6":case"gzgf":return 60;case"gz1":case"gz3":return 40;case"gz4":case"gz5":case"gz1421":return 20;default:return 0}})(e.variant),a=r.useMemo((()=>{switch(e.variant){case"gz1":return n.jsx("circle",{cy:-58,r:16,fill:"red"});case"gz28":case"gz2otis":return n.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"orange"});case"gz3":return n.jsx("rect",{x:-15,y:-55,height:30,width:30,fill:"red"});case"gz6":return n.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"white"});case"gz1421":return n.jsx("ellipse",{cy:-38,rx:24,ry:12,fill:"orange"});case"gz5":return n.jsx("rect",{x:-30,y:-70,height:30,width:60,fill:"orange"});case"gz4":return n.jsx("rect",{x:-50,y:-50,height:25,width:100,fill:"whitesmoke"});case"gzgf":return n.jsx("rect",{x:-30,y:-58,height:30,width:60,fill:"orange"});default:return n.jsx(n.Fragment,{})}}),[e.variant]);return n.jsxs("g",{transform:`translate(0,${"gz4"===e.variant?-20:0})`,children:[n.jsx("rect",{id:"strip_gz",style:{"--height":`${t}px`}}),n.jsx("g",{style:{transform:"translate(calc(var(--rmg-svg-width) / 2),var(--rmg-svg-height))"},children:e.isShowLight&&a}),!1!==e.isShowPSD&&n.jsx(y,{...e})]})},y=r.memo((function(e){const r=["gz28","gz2otis","gz6","gzgf"].includes(e.variant),a=(e=>{switch(e){case"gz1":case"gz3":return"82px";case"gz4":return"65px";case"gz5":return"80px";case"gz1421":return"62px";default:return"58px"}})(e.variant);return n.jsx(t,{num:e.isShowPSD,inStrip:r,style:{"--psd-dy":a,transform:"translate(var(--translate-x), var(--translate-y))","--translate-x":"calc(var(--rmg-svg-width) / 2 + 80px)","--translate-y":"calc(var(--rmg-svg-height) - var(--psd-dy, 58px))"}})}),((e,t)=>e.variant===t.variant&&e.isShowPSD===t.isShowPSD));var j=1.3,v=38.3,S=42,w=function(e,t){var n=[e,t].map((function(e){return e.match(/^(\w+).+$/)}));if(n[0]&&n[1]&&n[0][1]===n[1][1])return n[0][1]},b=function(e){var t=e.match(/^(\d+)\D+$/);return null==t?void 0:t[1]},O=function(){return O=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function P(e){var t=e.zhName,s=e.enName,o=e.foregroundColour,l=e.backgroundColour,i=e.zhClassName,c=e.enClassName,h=e.passed,d=e.children,u=k(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),m=function(e,t){var n=b(e);if(n)return{isDigit:!0,spanningPart:n};var r=w(e,t);return r?{isDigit:!1,spanningPart:r}:{isDigit:!1,spanningPart:""}}(t,s),f=m.isDigit,x=m.spanningPart,g=r.useRef(null),p=$(r.useState({x:0,height:0,width:0}),2),y=p[0],j=p[1];r.useEffect((function(){g.current&&j(g.current.getBBox())}),[t,s]);var v=S/Math.max(S,y.width),O=(-y.x-y.width/2)*v,N=y.height*(1-v)/2;return n.jsxs("g",z({textAnchor:"middle",fill:h?a.white:o},u,{children:[n.jsx(_,{fill:h?"#aaa":l}),n.jsx("g",{ref:g,transform:"translate(".concat(O,",").concat(N,")scale(").concat(v,")"),children:n.jsxs("text",{className:i,fontSize:21,x:-1,y:12,textAnchor:"end",dominantBaseline:"central",children:[x,n.jsx("tspan",{className:i,fontSize:10,x:0,dy:-4,textAnchor:"start",dominantBaseline:"central",children:t.slice(x.length).trim()}),n.jsx("tspan",{className:c,fontSize:6.5,letterSpacing:-.1,x:0,dy:10,textAnchor:"start",dominantBaseline:"middle",children:f?s:s.slice(x.length).trim()})]})}),d]}))}var B=function(){return B=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function R(e){var t,s=e.zhName,o=e.enName,l=e.foregroundColour,i=e.backgroundColour,c=e.zhClassName,h=e.enClassName,d=e.passed,u=e.children,m=C(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),f=null!==(t=b(s))&&void 0!==t?t:"",x=r.useRef(null),g=r.useRef(null),p=M(r.useState({width:0}),2),y=p[0],j=p[1],v=M(r.useState({width:0}),2),w=v[0],O=v[1];r.useEffect((function(){x.current&&j(x.current.getBBox()),g.current&&O(g.current.getBBox())}),[s,o]);var N=S/Math.max(S,y.width),z=S/Math.max(S,w.width),k={nameZh:{y:7.3+13.5*(1-N)*N/2},nameEn:{y:19.5-9*(1-z)*z/2}};return n.jsxs("g",B({textAnchor:"middle",fill:d?a.white:l},m,{children:[n.jsx(_,{fill:d?"#aaa":i}),n.jsxs("text",{ref:x,className:c,fontSize:12,transform:"translate(0,".concat(k.nameZh.y,")scale(").concat(N,")"),dominantBaseline:"central",children:[n.jsx("tspan",{fontSize:16,dy:.7,dominantBaseline:"central",children:f}),n.jsx("tspan",{dy:-.7,dominantBaseline:"central",children:s.slice(f.length)})]}),n.jsx("text",{ref:g,className:h,fontSize:8,transform:"translate(0,".concat(k.nameEn.y,")scale(").concat(z,")"),dominantBaseline:"middle",children:o}),u]}))}var I=function(){return I=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function W(e){var t=e.zhName,s=e.enName,o=e.foregroundColour,l=e.backgroundColour,i=e.zhClassName,c=e.enClassName,h=e.passed,d=e.children,u=A(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),m=r.useRef(null),f=E(r.useState({width:0}),2),x=f[0],g=f[1];r.useEffect((function(){m.current&&g(m.current.getBBox())}),[t,s]);var p=Math.max(45,x.width+4);return n.jsxs("g",I({textAnchor:"middle",fill:h?a.white:o},u,{children:[n.jsx(_,{customWidth:p,fill:h?"#aaa":l}),n.jsxs("g",{ref:m,children:[n.jsx("text",{className:i,fontSize:8.5,y:8,dominantBaseline:"central",children:t}),n.jsx("text",{className:c,fontSize:5.5,y:18,dominantBaseline:"middle",children:s})]}),d]}))}var D=function(){return D=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function L(e){var t=e.zhName,s=e.enName,o=e.foregroundColour,l=e.backgroundColour,i=e.zhClassName,c=e.enClassName,h=e.passed,d=e.children,u=H(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),m=r.useRef(null),f=r.useRef(null),x=F(r.useState({width:0}),2),g=x[0],p=x[1],y=F(r.useState({width:0}),2),j=y[0],v=y[1];r.useEffect((function(){m.current&&p(m.current.getBBox()),f.current&&v(f.current.getBBox())}),[t,s]);var w=S/Math.max(S,g.width),b=S/Math.max(S,j.width),O={nameZh:{y:7.3+13.5*(1-w)*w/2},nameEn:{y:19.5-9*(1-b)*b/2}};return n.jsxs("g",D({textAnchor:"middle",fill:h?a.white:o},u,{children:[n.jsx(_,{fill:h?"#aaa":l}),n.jsx("text",{ref:m,className:i,fontSize:12,transform:"translate(0,".concat(O.nameZh.y,")scale(").concat(w,")"),dominantBaseline:"central",children:t}),n.jsx("text",{ref:f,className:c,fontSize:8,transform:"translate(0,".concat(O.nameEn.y,")scale(").concat(b,")"),dominantBaseline:"middle",children:s}),d]}))}var U=function(){return U=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=5?n.jsx(W,U({},e)):n.jsx(L,U({},e))}}));var J=function(e,t){return void 0!==b(e)?1:void 0!==w(e,t)?2:3},V=function(){return V=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o},re=r.forwardRef((function(e,t){var a=e.Icon,s=e.lineNum,o=e.stnNum,l=e.strokeColour,i=e.passed,c=e.size,h=e.textClassName,d=e.bolderBorder,u=e.alwaysShowColouredBorder,m=e.useSameScale,f=e.children,x=te(e,["Icon","lineNum","stnNum","strokeColour","passed","size","textClassName","bolderBorder","alwaysShowColouredBorder","useSameScale","children"]),g=r.useContext(Q).updateId,p=r.useRef(null),y=r.useRef(null),j=ne(r.useState({width:0}),2),v=j[0],S=j[1],w=ne(r.useState({width:0}),2),b=w[0],O=w[1];r.useEffect((function(){p.current&&S(p.current.getBBox()),y.current&&O(y.current.getBBox())}),[s,o,g]);var N=s&&s.length>2;r.useEffect((function(){m&&N&&console.warn("GenericStationNumber(), useSameScale props does not work when lineNum has more than 2 characters")}),[m,N]);var _=17/Math.max(17,v.width),z=m&&2===(null==s?void 0:s.length)?_:17/Math.max(17,b.width),k="sm"===c?"0.7":"lg"===c?"1.4":1;return n.jsxs("g",ee({ref:t},x,{children:[n.jsxs("g",{transform:"scale(".concat(k,")"),children:[n.jsx(a,{stroke:i&&!u?"#aaa":l,filled:!s&&!o,bolder:d}),(s||o)&&n.jsxs("g",{textAnchor:"middle",fontSize:13.5,fill:i?"#aaa":"#000",children:[n.jsx("g",{transform:"translate(-9.25,0)scale(".concat(_,")"),children:n.jsx("text",{ref:p,className:h,dominantBaseline:"central",x:.5,children:s})}),n.jsx("g",{transform:"translate(9.25,0)scale(".concat(z,")"),children:n.jsx("text",{ref:y,className:h,dominantBaseline:"central",children:o})})]})]}),f]}))})),ae=function(){return ae=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o},fe=function(e,t){return Array.from(Array(e).keys()).map((function(n){return(n-(e-1)/2)*t}))},xe=function(e){return"fmetro"===e?Z:K},ge=9.1,pe=2.8600000000000003;r.forwardRef((function(e,t){var a=e.stations,s=e.textClassName,o=e.columns,l=void 0===o?2:o,i=e.topHeavy,c=e.anchorAt,h=e.osiPosition,d=e.children,u=ue(e,["stations","textClassName","columns","topHeavy","anchorAt","osiPosition","children"]),m=r.useMemo((function(){return function(e,t,n){if(e<=0)return[];if(1===e)return[[0,0]];for(var r=t>e?e:t,a=v,s=fe(r,a),o=Math.ceil(e/r),l=fe(o,19.8),i=e%r,c=[],h=0;h=m.length)return console.warn(", anchor index ".concat(c," is out of bound")),[0,0];var e=me(m[c],2);return[-e[0],-e[1]]}),[m,c]),2),x=f[0],g=f[1],p=r.useRef(null),y=r.useRef([]);r.useEffect((function(){y.current=y.current.slice(0,a.length)}),[a.length]);var j=2===a.length&&1===l&&!!h;return r.useImperativeHandle(t,(function(){return{target:p.current,children:y.current,getCoordinates:function(){return m},getCorrectedBBox:function(){var e,t,n=null!==(t=null===(e=p.current)||void 0===e?void 0:e.getBBox())&&void 0!==t?t:{x:0,y:0,width:0,height:0};return n.y-=4.55,n.height+=ge,j?(n.x-="left"===h?1.4300000000000002:4.55,n.width+=5.98):(n.x-=4.55,n.width+=ge),n},getTranslate:function(){return[x,g]}}}),[m,x,g,p.current,y.current,h]),n.jsxs("g",de({ref:p,transform:"translate(".concat(x,",").concat(g,")")},u,{children:[a.map((function(e,t){var r=e.style,a=xe(r);return n.jsx(a,{stroke:"#aaa",filled:!0,strokeWidth:ge,transform:"translate(".concat(m[t][0],",").concat(m[t][1],")")},t)})),j&&n.jsx(he,{position:h,r:13.206896551724137,strokeWidth:pe,strokeDasharray:void 0}),a.map((function(e,t){var r=e.style,a=xe(r);return n.jsx(a,{stroke:"white",filled:!0,strokeWidth:3.3800000000000003,transform:"translate(".concat(m[t][0],",").concat(m[t][1],")")},t)})),j&&n.jsx(he,{position:h}),a.length&&n.jsx("rect",{fill:"white",x:-12,y:m[0][1],width:24,height:2*-m[0][1]}),a.map((function(e,t){var r=e.style,a=ue(e,["style"]),o="fmetro"===r?se:le;return n.jsx(o,de({ref:function(e){return y.current[t]=e},transform:"translate(".concat(m[t][0],",").concat(m[t][1],")"),textClassName:s},a),t)})),d]}))}));var ye=function(){return ye=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{l.current&&a&&a(l.current.getBBox())}),[JSON.stringify(t)]),n.jsxs("g",{ref:l,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:18,children:s}),n.jsx("g",{fontSize:10.5,children:o.split("\\").map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:16+11*t,children:e},t)))})]})}),((e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName)));function ke(e){const{stnName:t,onUpdate:a,passed:s,...o}=e,{zh:l="",en:i=""}=t,c=r.useRef(null),[h,d]=r.useState({x:0,width:0});return r.useEffect((()=>{if(c.current){const e=c.current.getBBox();d(e),a?.(e)}}),[JSON.stringify(t)]),l||i?n.jsxs("g",{fill:s?"#aaa":"#000",...o,children:[n.jsxs("g",{transform:"translate(0,3)",fontSize:18,children:[n.jsx("text",{textAnchor:"end",x:h.x-3,className:"rmg-name__zh",children:"("}),n.jsx("text",{textAnchor:"start",x:h.width+h.x+3,className:"rmg-name__zh",children:")"})]}),n.jsxs("g",{ref:c,textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:13,children:l}),n.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:i})]})]}):n.jsx(n.Fragment,{})}function $e(e){const{passed:t,...r}=e;return n.jsxs("g",{textAnchor:"middle",fill:t?"#aaa":"var(--rmg-theme-colour)",...r,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:13,children:"快车停靠站"}),n.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:"Express Station"})]})}function Pe(e){const{primaryName:t,secondaryName:a,stationState:o,flipped:l,express:i}=e,[c,h]=r.useState({width:0}),[d,u]=r.useState({x:0,width:-20}),m=t.en?.split("\\")?.length??1,f={x:0,y:l?17.5:-20-14*m*Math.cos(-45)},x={x:(c.width+d.width/2+10)*(l?-1:1),y:2+5*(m-1)},g={x:(c.width+d.width+20+35)*(l?-1:1),y:2+5*(m-1)};return n.jsxs("g",{textAnchor:l?"end":"start",fill:(e=>{switch(e){case s.PASSED:return"#aaa";case s.CURRENT:return"#f00";case s.FUTURE:return"#000"}})(o),transform:`translate(${f.x},${f.y})rotate(-45)`,children:[n.jsx(ze,{stnName:t,onUpdate:h}),a&&n.jsx(ke,{stnName:a,onUpdate:u,passed:o===s.PASSED,transform:`translate(${x.x},${x.y})`}),i&&n.jsx($e,{passed:o===s.PASSED,transform:`translate(${g.x},${g.y})`})]})}function Be(e){const{stnId:t,stnState:a,stnY:i}=e,{theme:c,line_name:h,line_num:d,spanLineNum:u,stn_list:m,loop:f,loop_info:{midpoint_station:x,clockwise:g}}=o((e=>e.param)),p=m[t],y=x===t,[j,v]=r.useState({height:0}),S=r.useRef(null);r.useEffect((()=>{S.current&&v(S.current.getBBox())}),[S.current,i,p.localisedName,p.localisedSecondaryName,p.services]);const w=2===p.parents.length||2===p.children.length,b=i>0||1===p.parents.indexOf(p.branch?.left?.[1]||"")||1===p.children.indexOf(p.branch?.right?.[1]||"")?180:0,O=p.localisedName.en?.split("\\")?.length??1,N=w?180===b?16+12*(O-1)*Math.cos(-45):-9:180===b?-6:(25+15*(O-1))*Math.cos(-45),_=i>0?j.height+23:-j.height-23;return n.jsxs(n.Fragment,{children:[n.jsx(Ce,{intInfos:w?[{theme:[c[0],c[1],"var(--rmg-theme-colour)","var(--rmg-theme-fg)"],name:h},...p.transfer.groups[0].lines??[]]:p.transfer.groups[0].lines??[],stnState:f?s.FUTURE:a,tickRotation:b,spanDigits:u}),n.jsx(le,{lineNum:d,stnNum:p.num,strokeColour:c[2],textClassName:"rmg-name__zh",passed:-1===a,alwaysShowColouredBorder:f,bolderBorder:!0,useSameScale:!0}),n.jsx("g",{ref:S,transform:`translate(${-N},0)`,children:n.jsx(Pe,{primaryName:p.localisedName,secondaryName:p.localisedSecondaryName,stationState:a,flipped:180===b,express:p.services.includes(l.express)})}),y&&n.jsx(_e,{transform:`translate(0,${_})`,clockwise:g,anchorAt:i>0?"text":"circle"})]})}const Ce=e=>n.jsxs(n.Fragment,{children:[n.jsx(Me,{strokeWidth:4,...e}),n.jsx(Re,{transform:`translate(0,${180===e.tickRotation?-47:23})`,...e})]}),Me=e=>{const{intInfos:t,stnState:r,tickRotation:a,spanDigits:s,...o}=e;return n.jsx("g",{...o,children:t.map(((e,s)=>n.jsx("use",{xlinkHref:"#inttick",stroke:-1===r?"#aaa":e.theme?.[2],transform:`translate(${-2*(t.length-1)+4*s},0)rotate(${180===a?180:0})`},s)))})},Re=e=>{const{intInfos:t,tickRotation:r,stnState:s,spanDigits:o,...l}=e;return n.jsx("g",{...l,children:t.map(((e,t)=>n.jsx("g",{transform:`translate(0,${28*t*(180===r?-1:1)})`,children:n.jsx(T,{zhName:e.name[0],enName:e.name[1],foregroundColour:e.theme?.[3]??a.white,backgroundColour:e.theme?.[2]??"#aaaaaa",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",passed:-1===s,spanDigits:o})},t)))})};function Ie(e){const{xs:t,ys:r,stnStates:a}=e,{stn_list:s,loop:l}=o((e=>e.param)),{branches:i}=o((e=>e.helper)),c=l?i[0].slice(1,-1):Object.keys(s);return n.jsx("g",{id:"stn_icons",children:c.filter((e=>!["linestart","lineend"].includes(e))).map((e=>n.jsx("g",{style:{transform:`translate(${t[e]}px,${r[e]}px)`},children:n.jsx(Be,{stnId:e,stnState:a[e],stnY:r[e]})},e)))})}const Ae=(e,t)=>2===e[t].parents.length||2===e[t].children.length?.25:0,Ee=(e,t,n)=>{const r=u("linestart","lineend",t);if(r.nodes.includes(e))return u(r.nodes[1],e,t).len;{const a=n.filter((t=>t.includes(e)))[0];let s=e;for(;!r.nodes.includes(s);)s=a[a.indexOf(s)-1];let o=e;for(;!r.nodes.includes(o);)o=a[a.indexOf(o)+1];const l="linestart"===s,i="lineend"===o;if(a.toString()===n[0].toString()){const n=[];return l||i?l?(n[0]=0,n[1]=u(r.nodes[1],o,t).len,n[2]=u(a[1],e,t).len,n[3]=u(e,o,t).len):(n[0]=u(r.nodes[1],s,t).len,n[1]=u(s,r.nodes.slice(-2)[0],t).len,n[2]=u(s,e,t).len,n[3]=u(e,a.slice(-2)[0],t).len):(n[0]=u(r.nodes[1],s,t).len,n[1]=u(s,o,t).len,n[2]=u(s,e,t).len,n[3]=u(e,o,t).len),n[0]+n[2]*n[1]/(n[2]+n[3])}if(l||i)return l?u(r.nodes[1],o,t).len-u(e,o,t).len:u(r.nodes[1],s,t).len+u(s,e,t).len;{const n=[];return n[0]=u(r.nodes[1],s,t).len,n[1]=u(s,o,t).len,n[2]=u(s,e,t).len,n[3]=u(e,o,t).len,n[0]+n[2]*n[1]/(n[2]+n[3])}}},We=()=>{const{branches:e,routes:t,depsStr:a}=o((e=>e.helper)),{svgWidth:s,svg_height:l,y_pc:h,padding:x,branchSpacingPct:g,direction:p,line_name:y,spanLineNum:j,current_stn_idx:v,stn_list:S}=o((e=>e.param)),w=d(S,Ae,Ae),b=r.useMemo((()=>(console.log("computing x shares"),Object.keys(S).reduce(((t,n)=>({...t,[n]:Ee(n,w,e)})),{}))),[e.toString(),JSON.stringify(w)]),O=u("linestart","lineend",w),N=u(O.nodes[1],O.nodes.slice(-2)[0],w),_=p===i.right?[s[c.RailMap]*x/100+65,s[c.RailMap]*(1-x/100)-20]:[s[c.RailMap]*x/100,s[c.RailMap]*(1-x/100)-65],z=Object.keys(b).reduce(((e,t)=>({...e,[t]:_[0]+b[t]/N.len*(_[1]-_[0])})),{}),k=r.useMemo((()=>(console.log("computing y shares"),Object.keys(S).reduce(((t,n)=>{if(e[0].includes(n))return{...t,[n]:0};{const r=e.slice(1).filter((e=>e.includes(n)))[0];return{...t,[n]:S[r[0]].children.indexOf(r[1])?-2:2}}}),{}))),[a]),$=Object.keys(k).reduce(((e,t)=>({...e,[t]:-k[t]*g*l/200})),{}),P=r.useMemo((()=>m(v,t,p)),[v,p,t.toString()]),B=e.map((e=>f(e,P))).reduce(((e,t)=>(e.main.push(t.main),e.pass.push(t.pass),e)),{main:[],pass:[]}),C=Object.keys(B).reduce(((e,t)=>({...e,[t]:B[t].map((e=>He(e,z,$)))})),{});return n.jsxs("g",{id:"main",style:{"--y-percentage":h,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[n.jsx(De,{paths:C}),n.jsx(Ie,{xs:z,ys:$,stnStates:P}),n.jsx("g",{id:"line_name",style:{"--translate-x":p===i.right?_[0]-65+"px":`${_[1]+65}px`},children:n.jsx(T,{zhName:y[0],enName:y[1],foregroundColour:"var(--rmg-theme-fg)",backgroundColour:"var(--rmg-theme-colour)",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",spanDigits:j})})]})},De=r.memo((function(e){return n.jsxs("g",{fill:"none",strokeWidth:4,children:[n.jsx("g",{stroke:"#aaa",strokeDasharray:4,children:e.paths.pass.map(((e,t)=>n.jsx("path",{d:e},t)))}),n.jsx("g",{stroke:"var(--rmg-theme-colour)",children:e.paths.main.map(((e,t)=>n.jsx("path",{d:e},t)))})]})}),((e,t)=>JSON.stringify(e.paths)===JSON.stringify(t.paths))),He=(e,t,n)=>{let r;const a=[];return e.forEach((e=>{const s=t[e],o=n[e];if(!r&&0!==r)return r=o,void a.push(`M ${s},${o}`);0===o?(or&&a.push("H "+(s-40),"a 40,40 0 0,1 40,40",`V ${o}`)):(or&&a.push("V "+(o-40),"a 40,40 0 0,0 40,40",`H ${s}`)),a.push(`H ${s}`),r=o})),a.join(" ").replace(/( H ([\d.]+))+/g," H $2")};function Fe(e){return n.jsx("path",{d:"M60,60 L0,0 L60,-60 H90 L40,-10 H150 V10 H40 L90,60z",fill:"black",...e})}function Le(e){const{destIds:t,textAnchor:a,...s}=e,l=o((e=>e.param.direction)),c=o((e=>e.param.stn_list)),h=t.map((e=>c[e].localisedName.zh?.length??0)),d=Math.min(...h),u=d>1&&h[0]!==h[1]?Math.abs(h[0]-h[1])/(d-1):0;return n.jsxs("g",{textAnchor:a,...s,children:[t.map(((e,t)=>{const s=h[t]>h[1-t],o=!g()&&"end"===a&&!s;return n.jsxs(r.Fragment,{children:[n.jsx("text",{className:"rmg-name__zh",fontSize:25,x:l===i.left?0:-75,y:42*t-21,letterSpacing:s?"0em":`${u}em`,dx:o?`${u}em`:"0em",children:c[e].localisedName.zh}),n.jsx("text",{className:"rmg-name__en",fontSize:11.5,x:l===i.left?0:-75,y:42*t-1,children:"Towards "+c[e].localisedName.en?.replace("\\"," ")})]},e)})),n.jsx("text",{className:"rmg-name__zh",fontSize:28,x:l===i.left?25*(Math.max(...h)+1):0,y:5,children:"方向"})]})}const Ue=(e,t,n)=>{const r=Math.min(...Object.values(e)),a=Math.max(...Object.values(e)),s=Math.min(...Object.values(t)),o=Math.max(...Object.values(t))-s,l=o/2;return`M${a},${s} H${r} h-${n/2} a${l},${l} 0 0,0 0,${o} H${a} h${n/2} a${l},${l} 0 0,0 0,-${o}Z`};function Te({currentStationX:e,currentStationY:t,stationGap:r,loopClockwise:a}){const s=t>0?a?-1:1:a?1:-1,o=(r/3-6)*s,l=e+o+6*s,i=(t-12)*-s;return n.jsx("g",{transform:`scale(1,${-s})`,children:n.jsx("path",{d:`M${l},${i} h${o}`,strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)"})})}function Je({clockwise:e,...t}){return n.jsx("g",{...t,children:n.jsxs("g",{textAnchor:"middle",transform:"translate(0,-4)",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:16,children:e?"内环":"外环"}),n.jsx("text",{className:"rmg-name__en",y:13,fontSize:9,children:e?"Inner Circle":"Outer Circle"})]})})}const Ve=2/3,Ye=2-Ve,Ge=25*Math.PI/180,Ze=Math.asin(Math.sin(35*Math.PI/180)/2);function Xe({cxLeft:e,cxRight:t,yGap:r,clockwise:a}){const s=r/2,o=s*(a?Ve:Ye),l=a?Ge:Ze,i=o*Math.cos(l),c=a?1:-1,h=a?1:0,d=o*Math.sin(l)*c,u=2*d,m={rotate:a?"-4deg":"2deg"};return n.jsxs(n.Fragment,{children:[n.jsxs("g",{transform:`translate(${e},0)`,children:[n.jsx("path",{d:`M${-i},${d} a${o},${o} 0 0,${h} 0,${-u}`,fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:m}),n.jsx(Je,{transform:`translate(${a?0:-2*s},0)`,clockwise:a})]}),n.jsxs("g",{transform:`translate(${t},0)`,children:[n.jsx("path",{d:`M${i},${-d} a${o},${o} 0 0,${h} 0,${u}`,fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:m}),n.jsx(Je,{transform:`translate(${a?0:2*s},0)`,clockwise:a})]})]})}function qe(){const{branches:e}=o((e=>e.helper)),{svgWidth:t,svg_height:a,y_pc:l,padding:i,branchSpacingPct:h,current_stn_idx:d,loop_info:{midpoint_station:u,clockwise:m}}=o((e=>e.param)),f=e[0].slice(1,-1),x=Math.ceil(f.length/2),g=r.useMemo((()=>(console.log("computing x shares"),f.reduce(((e,t,n,r)=>{let a;return n{const a=e-(e*(1-2*t/100)*(n-1)/n-r);return[a/2,e-a/2]})(t[c.RailMap],i,x,p),j=(y[1]-y[0])/(x-1),v=Object.keys(g).reduce(((e,t)=>({...e,[t]:y[0]+g[t]*j})),{}),S=r.useMemo((()=>(console.log("computing y shares"),f.reduce(((e,t,n)=>({...e,[t]:n({...e,[t]:-S[t]*p/2})),{}),b=((e,t,n,r)=>{const a=e.indexOf(n),o=e.indexOf(r??n);let l;return l=o<0?e:t?a<=o?[...e.slice(0,a+1),...e.slice(o)]:e.slice(o,a+1):aa===n?{...e,[t]:s.CURRENT}:l.includes(t)?{...e,[t]:s.FUTURE}:{...e,[t]:s.PASSED}),{})})(f,m??!1,d,u);return n.jsxs("g",{id:"main",style:{"--y-percentage":l,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[n.jsx("path",{d:Ue(v,w,j),fill:"none",strokeWidth:6,stroke:"var(--rmg-theme-colour)"}),n.jsx(Ie,{xs:v,ys:w,stnStates:b}),n.jsx(Te,{currentStationX:v[d],currentStationY:w[d],stationGap:j,loopClockwise:m}),n.jsx(Xe,{cxLeft:y[0]-j/2,cxRight:y[1]+j/2,yGap:p,clockwise:m})]})}const Ke=c.RailMap,Qe=()=>{const{canvasScale:e}=o((e=>e.app)),{svgWidth:t,svg_height:r,direction:a,psd_num:s,info_panel_type:l,notesGZMTR:c,current_stn_idx:d,stn_list:u,theme:m,loop:f}=o((e=>e.param)),g=t[Ke],y=u[d];return n.jsxs(x,{type:Ke,svgWidth:g,svgHeight:r,canvasScale:e,theme:m,children:[n.jsx(et,{}),n.jsx(p,{variant:l,isShowLight:l===h.gz2otis,isShowPSD:l===h.gz2otis&&s}),a===i.left&&y.parents.includes("linestart")||a===i.right&&y.children.includes("lineend")?n.jsx(rt,{}):n.jsxs(n.Fragment,{children:[f?n.jsx(qe,{}):n.jsx(We,{}),!f&&n.jsx(tt,{}),c?.map(((e,t)=>n.jsx(at,{note:e},t)))]}),l===h.gz2otis&&n.jsx("line",{x2:g,transform:"translate(0,90)",strokeWidth:3,stroke:"black"})]})},et=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("path",{id:"inttick",d:"M 0,0 v 18",strokeLinecap:"square"}),n.jsx("marker",{id:"loop_arrow",refX:.05,refY:.5,orient:"auto",children:n.jsx("path",{d:"M0,0V2L2,0z",fill:"black"})})]})})),tt=()=>{const{routes:e}=o((e=>e.helper)),{direction:t,direction_gz_x:a,direction_gz_y:s,current_stn_idx:l}=o((e=>e.param)),c=r.useMemo((()=>[...new Set(e.reduce(((e,n)=>n.includes(l)?e.concat(n.filter((e=>!["linestart","lineend"].includes(e))).slice(t===i.left?0:-1)[0]):e),[]).filter((e=>e!==l)))]),[l,t,e.toString()]),h={textAnchor:t===i.left?"start":"end",transform:`translate(${t===i.left?65:-65},-5)`,destIds:c};return n.jsxs("g",{id:"direction_gz",style:{"--x-percentage":a,"--y-percentage":s},children:[n.jsx(Fe,{transform:`scale(0.35)rotate(${t===i.left?0:180})`}),2!==c.length?n.jsx(nt,{...h}):n.jsx(Le,{...h})]})},nt=e=>{const{destIds:t,...r}=e,a=o((e=>e.param.stn_list));return n.jsxs("g",{...r,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:28,children:t.map((e=>a[e].localisedName.zh)).join("/")+"方向"}),n.jsx("text",{className:"rmg-name__en",fontSize:14,dy:22,children:"Towards "+t.map((e=>a[e].localisedName.en?.replace("\\"," "))).join("/")})]})},rt=r.memo((function(){return n.jsxs("g",{id:"terminus_gz",textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:90,children:"终 点 站"}),n.jsx("text",{dy:70,className:"rmg-name__en",fontSize:36,children:"Terminal"}),n.jsxs("g",{strokeWidth:8,stroke:"#000",children:[n.jsx("path",{d:"M -160,68 h -160"}),n.jsx("path",{d:"M 160,68 h 160"})]})]})})),at=r.memo((function(e){const t=r.useRef(null),[a,s]=r.useState({width:0,height:0,y:0});return r.useEffect((()=>{t.current&&s(t.current.getBBox())}),[e.note[0],e.note[1]]),n.jsxs("g",{className:"note-box",style:{"--x-percentage":e.note[2],"--y-percentage":e.note[3]},children:[e.note[4]&&n.jsx("rect",{height:a.height+4,width:a.width+4,x:-2,y:a.y-2,fill:"none",stroke:"black",strokeWidth:.5}),n.jsxs("g",{ref:t,children:[n.jsx("g",{fontSize:16,letterSpacing:1.2,children:e.note[0].split("\n").map(((e,t)=>n.jsx("text",{className:"rmg-name__zh",y:18*t,children:e},t)))}),n.jsx("g",{fontSize:10,letterSpacing:.33,transform:`translate(0,${18*e.note[0].split("\n").length})`,children:e.note[1].split("\n").map(((t,r)=>n.jsx("text",{className:"rmg-name__en",y:11*r,textLength:r<(e.note[1].match(/\n/g)?.length||0)?a.width:navigator.userAgent.includes("Firefox")?-1:0,lengthAdjust:"spacing",children:t},r)))})]})]})}),((e,t)=>e.note.toString()===t.note.toString())),st=r.memo((function(e){const{stnName:t,onUpdate:a}=e,s=r.useRef(null);return r.useEffect((()=>{s.current&&a&&a(s.current.getBBox())}),[JSON.stringify(t)]),n.jsxs("g",{ref:s,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:90,children:t.zh}),n.jsx("g",{fontSize:36,children:t.en?.split("\\")?.map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:70+36*t,children:e},t)))})]})}),((e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName))),ot=e=>{const{secondaryName:t,transform:a}=e,s=r.useRef(null),[o,l]=r.useState({x:0,width:0});return r.useEffect((()=>{s.current&&l(s.current.getBBox())}),[t.toString()]),n.jsxs("g",{transform:a,children:[n.jsxs("g",{transform:"translate(0,4.5)",fontSize:36,children:[n.jsx("text",{textAnchor:"end",x:o.x-3,className:"rmg-name__zh",children:"("}),n.jsx("text",{textAnchor:"start",x:o.width+o.x+3,className:"rmg-name__zh",children:")"})]}),n.jsxs("g",{ref:s,textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:26,children:t.zh}),n.jsx("text",{dy:22,className:"rmg-name__en",fontSize:14,children:t.en})]})]})},lt=()=>{const{svg_height:e,svgWidth:t,theme:a,direction:s,info_panel_type:l,line_num:d,current_stn_idx:u,stn_list:m}=o((e=>e.param)),f=m[u],[x,g]=r.useState({width:0}),p=f.localisedName.en?.split("\\")?.length??1,y=f[s===i.left?"parents":"children"],j={name:`translate(${(s===i.left?1:-1)*t[c.RunIn]/4},45)`,next:`translate(${(s===i.left?1:-1)*t[c.RunIn]/10},45)`},v={x:t.runin/2,y:.5*e-50-18*(p-1)-(f.localisedSecondaryName?29:0)},S={x:0,y:70+36*p};return n.jsxs("g",{children:[n.jsxs("g",{transform:l===h.gz2otis?j.name:"",children:[n.jsxs("g",{textAnchor:"middle",transform:`translate(${v.x},${v.y})`,children:[n.jsx(st,{stnName:f.localisedName,onUpdate:g}),f.localisedSecondaryName&&n.jsx(ot,{secondaryName:f.localisedSecondaryName,transform:`translate(${S.x},${S.y})`})]}),n.jsx(le,{lineNum:d,stnNum:f.num,strokeColour:a[2],textClassName:"rmg-name__zh",style:{"--translate-x":(t[c.RunIn]+x.width)/2+55+"px","--translate-y":.5*e-30-18*(p-1)-(f.localisedSecondaryName?29:0)+"px",transform:"translate(var(--translate-x, 800px), var(--translate-y, 145px))"},size:"lg"})]}),n.jsx("g",{transform:l===h.gz2otis?j.next:"",children:!y||y.includes("linestart")||y.includes("lineend")?n.jsx(n.Fragment,{}):1===y.length?n.jsx(it,{nextId:y[0],nameBBox:x}):n.jsx(ht,{nextIds:y,nameBBox:x})})]})},it=e=>{const{nextId:t,nameBBox:a}=e,s=o((e=>e.param.svgWidth)),l=o((e=>e.param.direction)),h=o((e=>e.param.stn_list[t])),{localisedName:d,localisedSecondaryName:u}=h,{zh:m="",en:f=""}=d,[x,g]=r.useState({width:0}),p=r.useRef(null);r.useEffect((()=>{p.current&&g(p.current.getBBox())}),[m,f]);const y=m.length,j=(s[c.RunIn]-a.width)/2;return n.jsxs(n.Fragment,{children:[n.jsxs("g",{id:"big_next",children:[n.jsxs("g",{textAnchor:"middle",style:{"--translate-x":l===i.left?"80px":y<=2?s[c.RunIn]-45-x.width-70+"px":s[c.RunIn]-45-x.width-52.5+"px"},children:[n.jsx("text",{className:"rmg-name__zh",fontSize:35,children:"下站"}),n.jsx("text",{className:"rmg-name__en",fontSize:17,dy:30,children:"Next"})]}),n.jsxs("g",{textAnchor:"start",ref:p,style:{"--translate-x":l===i.left?y<=2?"150px":"132.5px":s[c.RunIn]-45-x.width+"px"},children:[n.jsx("text",{className:"rmg-name__zh",fontSize:35,children:m}),n.jsx("g",{fontSize:17,children:f.split("\\").map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:30+17*t,children:e},t)))})]}),u&&n.jsx("g",{textAnchor:"middle",style:{"--translate-x":l===i.left?y<=2?"150px":"132.5px":s[c.RunIn]-45-x.width+"px"},children:n.jsx(ct,{secName:u,transform:`translate(${x.width/2},${30+17*f.split("\\").length+5})`})})]}),n.jsx(Fe,{id:"arrow",style:{"--translate-x":l===i.left?(115+35*((y<=2?1:.5)+y)+j)/2-20+"px":(s[c.RunIn]-45-x.width-(y<=2?105:87.5)+j+e.nameBBox.width+55+25.9)/2+20+"px","--rotate":l===i.left?"0deg":"180deg"}})]})},ct=e=>{const{secName:t,...a}=e,{zh:s,en:o}=t,l=r.useRef(null),[i,c]=r.useState({x:0,width:0});return r.useEffect((()=>{l.current&&c(l.current.getBBox())}),[s,o]),n.jsxs("g",{...a,children:[n.jsxs("g",{transform:"translate(0,2.5)",fontSize:25,children:[n.jsx("text",{textAnchor:"end",x:i.x-3,className:"rmg-name__zh",children:"("}),n.jsx("text",{textAnchor:"start",x:i.width+i.x+3,className:"rmg-name__zh",children:")"})]}),n.jsxs("g",{ref:l,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:18,children:s}),n.jsx("text",{className:"rmg-name__en",fontSize:10,dy:15,children:o})]})]})},ht=e=>{const{nextIds:t,nameBBox:a}=e,{routes:s}=o((e=>e.helper)),l=o((e=>e.param.svgWidth)),h=o((e=>e.param.direction)),d=o((e=>e.param.stn_list)),u=t.map((e=>d[e].localisedName)),[m,f]=r.useState({width:0}),x=r.useRef([]);r.useEffect((()=>{f((e=>({...e,width:0}))),x.current.forEach((e=>{const t=e?.getBBox();f((e=>t?e.width>t.width?e:t:e))}))}),[u.toString()]);const g=e.nextIds.map((e=>s.reduce(((t,n)=>n.includes(e)?t.concat(n.filter((e=>!["linestart","lineend"].includes(e))).slice(h===i.left?0:-1)[0]):t),[]))),p=Math.max(...u.map((e=>e.zh?.length??0))),y=(l[c.RunIn]-a.width)/2;return n.jsxs(n.Fragment,{children:[n.jsx("g",{id:"big_next_2",children:u.map(((e,t)=>n.jsxs(r.Fragment,{children:[n.jsxs("g",{textAnchor:"middle",style:{"--translate-x":h===i.left?"72px":l[c.RunIn]-45-m.width-41+"px"},children:[n.jsx("text",{className:"rmg-name__zh",children:"下站"}),n.jsx("text",{className:"rmg-name__en",y:22,children:"Next"})]}),n.jsxs("g",{ref:e=>x.current[t]=e,textAnchor:"start",style:{"--translate-x":h===i.left?"113px":l[c.RunIn]-45-m.width+"px"},children:[n.jsx("text",{className:"rmg-name__zh",children:e.zh}),e.en?.split("\\")?.map(((e,t)=>n.jsx("text",{className:"rmg-name__en",y:22+13*t,children:e},t))),n.jsx("text",{className:"rmg-name__zh",y:-35,children:g[t].map((e=>d[e].localisedName.zh)).join("/")+"方向"}),n.jsx("text",{className:"rmg-name__en rmg-name__gzmtr--next2-dest",y:-20,children:"Towards "+g[t].map((e=>d[e].localisedName.en)).join("/").replace("\\"," ")})]})]},t)))}),n.jsx(Fe,{id:"arrow",style:{"--translate-x":h===i.left?(99+27*(1+p)+y)/2-20+"px":(l[c.RunIn]-45-m.width-41-27+y+e.nameBBox.width+55+25.9)/2+20+"px","--rotate":h===i.left?"0deg":"180deg"}})]})};function dt(e){const{num:t,...r}=e;return n.jsxs("g",{textAnchor:"middle",fill:"var(--rmg-theme-fg)",...r,children:[n.jsx("circle",{cx:0,cy:0,r:30,fill:"var(--rmg-theme-colour)"}),n.jsx("text",{className:"rmg-name__en",fontSize:38,dy:-9.5,children:t}),n.jsx("text",{className:"rmg-name__zh",fontSize:13,dy:10,children:"站台"}),n.jsx("text",{className:"rmg-name__en",fontSize:9,dy:21,children:"Platform"})]})}function ut(e){const{canvasType:t}=e,{svgWidth:r,svg_height:a}=o((e=>e.param));return n.jsxs("g",{id:"otis_frame",strokeWidth:3,stroke:"black",children:[n.jsx("line",{y2:a,transform:`translate(${r[t]/2},0)`}),n.jsx("line",{x2:r[t],transform:"translate(0,90)"})]})}const mt=c.RunIn;function ft(){const{canvasScale:e}=o((e=>e.app)),{svgWidth:t,svg_height:r,direction:a,info_panel_type:s,platform_num:l,psd_num:c,theme:d}=o((e=>e.param)),u=t[mt],m={platform:`translate(${a===i.left?50:-50},45)`};return n.jsxs(x,{type:mt,svgWidth:u,svgHeight:r,canvasScale:e,theme:d,children:[n.jsx(p,{variant:s,isShowLight:s!==h.gz2otis,isShowPSD:s!==h.gz2otis&&c}),n.jsx("g",{transform:s===h.gz2otis?m.platform:"",children:n.jsx(dt,{num:l,style:{"--translate-x":(a===i.left?u-100:100)+"px","--translate-y":"calc(var(--rmg-svg-height) / 2 - 30px)",transform:"translate(var(--translate-x, 100px), var(--translate-y))"}})}),n.jsx(lt,{}),s===h.gz2otis&&n.jsx(ut,{canvasType:mt})]})}e("default",{runin:n.jsx(ft,{}),railmap:n.jsx(Qe,{})})}}})); diff --git a/assets/index-legacy-DXjvm-_x.js b/assets/index-legacy-CEB8kupO.js similarity index 99% rename from assets/index-legacy-DXjvm-_x.js rename to assets/index-legacy-CEB8kupO.js index 7348b37d..5f369085 100644 --- a/assets/index-legacy-DXjvm-_x.js +++ b/assets/index-legacy-CEB8kupO.js @@ -1 +1 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-CCR6yT8f.js","./app-router-legacy-ilk_ckFL.js","./svg-wrapper-legacy-BDwOt7GE.js","./share-legacy-CN2pvFRh.js","./mtr-legacy-Kr1ZTA32.js","./param-selector-legacy-C3ApLQi1.js"],(function(e,t){"use strict";var n,r,s,l,i,a,o,c,d,h,m,g,x,f;return{setters:[e=>{n=e.j},e=>{r=e.a,s=e.d},e=>{l=e.aR,i=e.u,a=e.m},e=>{o=e.i},e=>{c=e.S},e=>{d=e.d,h=e.a,m=e.c,g=e.g,x=e.b},e=>{f=e.a},null],execute:function(){const t=(e,t,n,r)=>{const s=e.length-2*r-n,l=[...e,...e,...e],i=e.length+e.findIndex((e=>e===t)),a=l[i+s-1],o=e.length+e.findIndex((e=>e===a))+(i+s>2*e.length?e.length:0);return{top:l.slice(i,o+1),left:l.slice(i-r,i),right:l.slice(o+1,o+1+r),bottom:l.slice(o+1+r,o+1+r+n)}},u=l.Destination;function p(){const{canvasScale:e}=i((e=>e.app)),{svgWidth:t,svg_height:r,theme:s}=i((e=>e.param)),l=t[u];return n.jsxs(c,{type:u,svgWidth:l,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(j,{}),n.jsx(_,{})]})}const j=r.memo((function(){return n.jsx("defs",{children:n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})})),_=()=>{const{routes:e,branches:t}=i((e=>e.helper)),{line_name:r,theme:s,current_stn_idx:l,direction:a,stn_list:c,info_panel_type:d,loop:h,coline:m}=i((e=>e.param)),g=(e,t,n)=>[...new Set(e.filter((e=>e.includes(n))).map((e=>{const n=e.filter((e=>!["linestart","lineend"].includes(e)));return"l"===t?n[0]:n.reverse()[0]})))],x=(e,t)=>t?[[e.map((e=>c[e].localisedName.zh)).join(","),e.map((e=>c[e].localisedName.en)).join(", ")].map((e=>e.replace("\\","")))]:e.map((e=>{const{zh:t="",en:n=""}=c[e].localisedName;return[t.replace("\\",""),n.replace("\\","")]})),f=h?((e,t,n,r)=>{const s=e[0].filter((e=>!["linestart","lineend"].includes(e))),l=[...s,...s,...s],i="r"===t?l:l.reverse(),a=i.findIndex((e=>r===e))+s.length;return i.slice(a+1).filter((e=>n[e].loop_pivot)).slice(void 0,2)})(t,a,c,l):g(e,a,l),u=(h?g(e,a,l):f).filter((e=>t.slice(1).filter((e=>o(e,c))).some((t=>t.includes(e))))),p=x(f.filter((e=>!u.includes(e))),!(h||"sh2020"===d)),j=x(u,!0),_=Object.fromEntries(u.map((e=>[e,Object.values(m).filter((t=>t.from===e||t.to===e)).at(0)])).filter((([,e])=>e)));return n.jsxs(n.Fragment,{children:[n.jsx(v,{dest_names:p,line_name:r,line_color:[s[2],s[3]],coline:!!u.length,upper:!!u.length}),u.length&&u.map((e=>n.jsx("g",{transform:"translate(0,-250)",children:n.jsx(v,{dest_names:[j.at(0)],line_name:_[e]?.colors.at(0).slice(4),line_color:[_[e]?.colors.at(0)[2],_[e]?.colors.at(0)[3]],coline:!0,upper:!1})},`coline_${e}`)))]})},v=e=>{const{dest_names:t,line_name:s,line_color:l,coline:a,upper:o}=e,{current_stn_idx:c,direction:d,platform_num:h,svgWidth:m,svg_height:g}=i((e=>e.param)),x=r.useRef(null),[f,u]=r.useState({width:0});r.useEffect((()=>{x.current&&u(x.current.getBBox())}),[JSON.stringify(t),JSON.stringify(c)]);const[p,j,_,v,b]=[m.destination/2,10,36,264,325],S=p-j-_-f.width>=b/2&&p-j-_-v>=b/2?p:"l"===d?(m.destination+f.width-v)/2:(m.destination-f.width+v)/2;return n.jsxs("g",{transform:`translate(0,${g-300})`,children:[n.jsx("path",{stroke:l[0],strokeWidth:12,d:"l"===d?`M${m.destination-24},16 H 36`:"M24,16 H "+(m.destination-36),transform:`translate(0,${o?-20:220})`,markerEnd:a?void 0:"url(#slope)"}),n.jsx($,{ref:x,dest_names:t}),""!==h&&n.jsx("g",{transform:`translate(${S},0)`,children:n.jsx(y,{})}),s[0].match(/^[\w\d]+(号)?线/)?n.jsx(w,{line_name:s,line_color:l}):n.jsx(k,{line_name:s,line_color:l})]})},$=r.forwardRef((function(e,t){const{dest_names:s}=e,{direction:l,svgWidth:a}=i((e=>e.param));return n.jsxs("g",{ref:t,transform:`translate(${"l"===l?36:a.destination-36},145)`,children:[n.jsx("g",{transform:`translate(0,${2===s.length?-20:20})`,children:n.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:`rotate(${"l"===l?0:180})scale(0.8)`})}),n.jsx("g",{textAnchor:"l"===l?"start":"end",transform:`translate(${"l"===l?148:-148},25)`,children:s.map(((e,t)=>n.jsxs(r.Fragment,{children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:-100*t+7,children:"往"+e[0]},`zh${t}`),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dy:-100*t+40,children:"To "+e[1]},`en${t}`)]},t)))})]})})),y=()=>{const{platform_num:e}=i((e=>e.param));return r.useMemo((()=>n.jsxs("g",{transform:"translate(-102.5,150)",children:[n.jsx("circle",{r:60,fill:"none",stroke:"black",strokeWidth:2}),n.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"middle",children:e}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:100,dominantBaseline:"central",x:65,children:"站台"})]})),[e])},k=e=>{const{line_name:t,line_color:s}=e,{direction:l,svgWidth:a}=i((e=>e.param)),o="l"===l?a.destination-42:42,c=r.useRef(null),[d,h]=r.useState({width:0});r.useEffect((()=>{c.current&&h(c.current.getBBox())}),[...t]);const m=("l"===l?-d.width:0)-6,g=("l"===l?-1:1)*d.width/2;return r.useMemo((()=>n.jsxs("g",{transform:`translate(${o},92)`,children:[n.jsx("rect",{fill:s[0],x:m,width:d.width+10,height:120}),n.jsxs("g",{textAnchor:"r"===l?"start":"end",transform:"translate(0,68)",fill:s[1],children:[n.jsx("g",{ref:c,children:n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:t[0]})}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,textAnchor:"middle",x:g,dy:42,children:t[1]})]})]})),[d,...t,...s,l,a.destination])},w=e=>{const{line_name:t,line_color:s}=e,{direction:l,svgWidth:a}=i((e=>e.param)),[o,c]=t[0].match(/^[\w\d]+|.+/g),d="l"===l?a.destination-36-210:90;return r.useMemo((()=>n.jsxs("g",{transform:`translate(${d},92)`,children:[n.jsx("rect",{fill:s[0],x:-54,width:108,height:120}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fill:s[1],fontSize:96,textAnchor:"middle",dominantBaseline:"central",transform:"translate(0,60)",letterSpacing:-5,children:o}),n.jsxs("g",{textAnchor:"start",transform:"translate(74,68)",children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:c}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,dy:42,children:t[1]})]})]})),[d,...t,...s,l,a.destination])},b=(e,t)=>e.map((e=>{const n=t.filter((t=>t.includes(e.from)&&t.includes(e.to)));if(1!==n.length)return{linePath:[],colors:e.colors};const r=n.flat(),s=r.indexOf(e.from),l=r.indexOf(e.to);return{linePath:s0!==e.linePath.length)),S=()=>s.useMemo((()=>n.jsxs("filter",{id:"pujiang_outline",colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse",x:"0",y:"-1000",width:"5000",height:"2000",children:[n.jsxs("feComponentTransfer",{in:"SourceGraphic",children:[n.jsx("feFuncR",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),n.jsx("feFuncG",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),n.jsx("feFuncB",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"})]}),n.jsx("feColorMatrix",{type:"matrix",values:"1 0 0 0 0\n 0 1 0 0 0\n 0 0 1 0 0\n 1 1 1 1 -3",result:"selectedColor"}),n.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"0",result:"e1"}),n.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"1",result:"e2"}),n.jsx("feComposite",{in:"e1",in2:"e2",operator:"xor",result:"uncoloredOutline"}),n.jsx("feFlood",{floodColor:"rgb(0,0,0)"}),n.jsx("feComposite",{operator:"in",in2:"uncoloredOutline",result:"outline"}),n.jsx("feComposite",{in:"outline",in2:"selectedColor",operator:"over",result:"result"}),n.jsx("feComposite",{in:"result",in2:"SourceGraphic",operator:"over"})]})),[]);S.displayName="PujiangLineDefs";const M=l.RunIn,z=()=>{const{canvasScale:e}=i((e=>e.app)),{branches:t,routes:s,depsStr:l}=i((e=>e.helper)),{svgWidth:a,svg_height:o,current_stn_idx:d,direction:h,loop:m,theme:g}=i((e=>e.param)),x=a[M],f=o-300,u=r.useMemo((()=>{let e=s.filter((e=>e.includes(d))).map((e=>e[e.indexOf(d)+("l"===h?1:-1)])).filter((e=>void 0!==e)).reduce(((e,t)=>e.includes(t)?e:e.concat(t)),[]);return m&&t[0].includes(d)&&1===e.length&&["linestart","lineend"].includes(e[0])&&(e="l"===h?[t[0][1]]:[t[0][t[0].length-2]]),e}),[l,d,h,m]),p=r.useMemo((()=>{let e=s.filter((e=>e.includes(d))).map((e=>e[e.indexOf(d)+("l"===h?-1:1)])).filter((e=>void 0!==e)).reduce(((e,t)=>e.includes(t)?e:e.concat(t)),[]);return m&&t[0].includes(d)&&1===e.length&&["linestart","lineend"].includes(e[0])&&(e="l"===h?[t[0][t[0].length-2]]:[t[0][1]]),e}),[l,d,h,m]);return n.jsxs(c,{type:M,svgWidth:x,svgHeight:o,canvasScale:e,theme:g,children:[n.jsx(N,{}),n.jsx("g",{transform:`translate(0,${f})`,children:n.jsx(O,{prevStnIds:u,nextStnIds:p})})]})},N=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),n.jsx(S,{})]})})),O=e=>{const{prevStnIds:t,nextStnIds:r}=e,{info_panel_type:s,svgWidth:l,stn_list:a}=i((e=>e.param)),o=l.runin/2,c=1===r.length&&["linestart","lineend"].includes(r[0]),d=1===t.length&&["linestart","lineend"].includes(t[0]),h=r.map((e=>a[e].localisedName)),m=t.map((e=>a[e].localisedName)),[{zh:g="",en:x=""}]=h,[{zh:f="",en:u=""}]=m,p=10+(r.length>1?-50*(g.split("\\").length-1)+-30*(x.split("\\").length-1):0),j=10+(t.length>1?-50*(f.split("\\").length-1)+-30*(u.split("\\").length-1):0);return n.jsxs(n.Fragment,{children:[n.jsx(W,{prevStnIds:t,nextStnIds:r,nextBranchLineDy:p,prevBranchLineDy:j}),c&&"sh2020"!==s?n.jsx(I,{mode:"terminal",prevStnIds:t,nextStnIds:r}):d&&"sh2020"!==s?n.jsx(I,{mode:"original",prevStnIds:t,nextStnIds:r}):n.jsxs(n.Fragment,{children:[n.jsx(H,{prevStnIds:t,nextStnIds:r}),n.jsx("g",{transform:`translate(${o},160)`,textAnchor:"middle",children:n.jsx(L,{})})]}),(d||!c)&&n.jsx(P,{stnIds:e.nextStnIds}),(c||!d)&&n.jsx(B,{stnIds:e.prevStnIds})]})},I=e=>{const{mode:t,prevStnIds:r,nextStnIds:s}=e,{current_stn_idx:l,theme:a,svgWidth:o,direction:c,coline:d}=i((e=>e.param)),{branches:h}=i((e=>e.helper)),m={l:{original:{x:o.runin-36,anchor:"end"},terminal:{x:36,anchor:"start"}},r:{original:{x:36,anchor:"start"},terminal:{x:o.runin-36,anchor:"end"}}},g=b(Object.values(d),h),x="terminal"===t?r:s,f=s.length>1?"var(--rmg-theme-colour)":g.filter((e=>e.linePath.includes(l)&&e.linePath.includes(x[0]))).map((e=>e.colors[0][2]))[0]??"var(--rmg-theme-colour)";return n.jsxs(n.Fragment,{children:["original"===t&&n.jsx("path",{transform:`translate(0,${d.length?"198":"220"})${d.length?"scale(1,2)":""}`,stroke:f,strokeWidth:12,d:"l"===c?`M ${o.runin-24},16 H 36`:"M24,16 H "+(o.runin-36),markerEnd:"url(#slope)"}),"terminal"===t&&n.jsx("g",{filter:"#B5B5B6"===a[2]?"url(#pujiang_outline)":void 0,children:n.jsx("path",{transform:`translate(0,${d.length?"198":"220"})${d.length?"scale(1,2)":""}`,stroke:"var(--rmg-grey)",strokeWidth:12,d:"M24,16 H "+(o.runin-24)})}),n.jsx("g",{transform:`translate(${m[c][t].x},160)`,textAnchor:m[c][t].anchor,children:n.jsx(L,{})})]})},H=e=>{const{prevStnIds:t,nextStnIds:r}=e,{direction:s,svgWidth:l,theme:a,coline:c,current_stn_idx:d,stn_list:h}=i((e=>e.param)),{branches:m}=i((e=>e.helper)),g=l.runin/2,x=e=>e.includes("linestart")||e.includes("lineend"),f=b(Object.values(c),m),u=r.length>1?"single":x(r)?f.filter((e=>[d,t[0]].every((t=>e.linePath.includes(t))))).length>0?"multiple":"single":[d,r[0]].every((e=>m[0].includes(e)))&&f.filter((e=>[d,r[0]].every((t=>e.linePath.includes(t))))).length>0?"multiple":"single",p=x(r)?t:r,j=r.length>1?"var(--rmg-theme-colour)":f.filter((e=>e.linePath.includes(d)&&e.linePath.includes(p[0]))).map((e=>e.colors[0][2]))[0]??"var(--rmg-theme-colour)",_=Object.keys(c).length>0&&(v=d,$=r,y=h,m.slice(1).filter((e=>[v,$[0]].every((t=>e.includes(t))))).filter((e=>o(e,y))).length>0)?j:"var(--rmg-theme-colour)";var v,$,y;const k=Object.keys(c).length>0&&1===r.length&&(!(!x(t)&&!x(r))||!([d,r[0]].every((e=>m[0].includes(e)))&&0!==f.filter((e=>e.linePath.includes(d)&&e.linePath.includes(r[0]))).length)),w=Object.keys(c).length>0&&1===t.length;return n.jsxs("g",{transform:"translate(0,220)",strokeWidth:12,children:[n.jsxs(n.Fragment,{children:["var(--rmg-theme-colour)"!==_&&n.jsx("marker",{id:`slope_${_}`,viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:_})}),n.jsx("path",{stroke:_,d:`M ${g},16 H ${"l"===s?36:l.runin-36}`,markerEnd:"var(--rmg-theme-colour)"===_?"url(#slope)":`url(#slope_${_})`,transform:k?"translate(0,-22)scale(1,2)":void 0})]}),"multiple"===u&&n.jsxs(n.Fragment,{children:[n.jsx("marker",{id:`slope_${j}`,viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:j})}),n.jsx("path",{stroke:j,d:`M ${g},16 H ${"l"===s?48:l.runin-48}`,markerEnd:`url(#slope_${j})`,transform:"translate(0,-12)"})]}),n.jsx("g",{filter:"#B5B5B6"===a[2]?"url(#pujiang_outline)":void 0,transform:`translate(0,${w?-22:0})scale(1,${w?2:1})`,children:n.jsx("path",{stroke:"var(--rmg-grey)",d:`M ${g},16 H ${"l"===s?l.runin-24:24} `})})]})},W=e=>{const{prevStnIds:t,nextStnIds:r,nextBranchLineDy:s,prevBranchLineDy:l}=e,{direction:a,svgWidth:o,current_stn_idx:c,coline:d,theme:h}=i((e=>e.param)),{branches:m}=i((e=>e.helper)),g=o.runin/2,x=125,f=e=>`${e[0]},${e[1]}`,u=e=>`M${f(e.at(0))} `+e.slice(1).map((e=>`L${f(e)}`)).join(" "),p="l"===a?[[o.runin/3,x],[o.runin/6,s],[36,s]]:[[o.runin/3*2,x],[o.runin/6*5,s],[o.runin-36,s]],j="l"===a?[[o.runin/3*2,x],[o.runin/6*5,l],[o.runin-24,l]]:[[o.runin/3,x],[o.runin/6,l],[24,l]];let _="var(--rmg-theme-colour)";if(Object.keys(d).length>0){const e=b(Object.values(d),m);r.length>1&&e.filter((e=>e.linePath.includes(c)&&r.some((t=>e.linePath.includes(t)))))&&(p[0][1]-=11,p.unshift([g,114]),_=e.filter((e=>e.linePath.includes(c)&&r.some((t=>e.linePath.includes(t))))).at(0).colors.at(0)[2]),t.length>1&&e.filter((e=>e.linePath.includes(c)&&t.some((t=>e.linePath.includes(t)))))&&(j[0][1]-=11,j.unshift([g,114]))}return n.jsxs("g",{transform:"translate(0,110)",strokeWidth:12,fill:"none",filter:"#B5B5B6"===h[2]?"url(#pujiang_outline)":void 0,children:[n.jsx("marker",{id:"slope_branch",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:_})}),r.length>1&&n.jsx("path",{stroke:_,d:u(p),markerEnd:"url(#slope_branch)"}),t.length>1&&n.jsx("path",{stroke:"var(--rmg-grey)",d:u(j)})]})},L=()=>{const e=i((e=>e.param)),{localisedName:t}=e.stn_list[e.current_stn_idx],{zh:s="",en:l=""}=t;return r.useMemo((()=>n.jsxs(n.Fragment,{children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,children:s.replace("\\","")}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:50,children:l.replace("\\","")})]})),[s,l])},F=e=>{const{nextName:t,...s}=e,{zh:l="",en:i=""}=t;return n.jsx("g",{...s,children:r.useMemo((()=>n.jsxs(n.Fragment,{children:[l.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:48,dy:-50*(r.length-1-t)-30*(i.split("\\").length-1),children:e},e))),i.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:24,dy:28+-30*(r.length-1-t),children:e},e)))]})),[l,i])})},B=e=>{const t=i((e=>e.param)),r=e.stnIds.map((e=>t.stn_list[e].localisedName)),s=(e.stnIds.length>1?15:125)+-50*r.map((e=>e.zh?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length)+-30*r.map((e=>e.en?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length),[{zh:l="",en:a=""}]=r,o=70+(e.stnIds.length>1?-50*(l.split("\\").length-1)+-30*(a.split("\\").length-1):0);return n.jsxs("g",{fill:"gray",textAnchor:"l"===t.direction?"end":"start",transform:`translate(${"l"===t.direction?t.svgWidth.runin-36:36},0)`,children:[n.jsx(F,{nextName:r[0],transform:"translate(0,183)"}),e.stnIds.length>1&&n.jsx(F,{nextName:r[1],transform:`translate(0,${o})`}),n.jsxs("g",{transform:`translate(0, ${s})`,children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"上一站"}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:"l"===t.direction?-70:70,children:"Past Stop"})]})]})},P=e=>{const t=i((e=>e.param)),r=e.stnIds.map((e=>t.stn_list[e].localisedName)),s=(e.stnIds.length>1?15:125)+-50*r.map((e=>e.zh?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length)+-30*r.map((e=>e.en?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length),[{zh:l="",en:a=""}]=r,o=70+(e.stnIds.length>1?-50*(l.split("\\").length-1)+-30*(a.split("\\").length-1):0);return n.jsxs("g",{textAnchor:"l"===t.direction?"start":"end",transform:`translate(${"l"===t.direction?36:t.svgWidth.runin-36},0)`,children:[n.jsx(F,{nextName:t.stn_list[e.stnIds[0]].localisedName,transform:"translate(0,183)"}),e.stnIds.length>1&&n.jsx(F,{nextName:t.stn_list[e.stnIds[1]].localisedName,transform:`translate(0,${o})`}),n.jsxs("g",{transform:`translate(0, ${s})`,children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"下一站"}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:"l"===t.direction?70:-70,children:"Next Stop"})]})]})},E=e=>{const{stnId:t,stnState:r,color:s,bank:l,direction:a}=e,{direction:o,info_panel_type:c,stn_list:d,loop:h}=i((e=>e.param)),m=d[t],g=a??o,x=h?0:(m.parents.length>1||m.children.length>1?8+12*(m.localisedName.en?.split("\\")?.length??1):0)*("r"===g?-1:1);let f;const u={};"sh2020"===c?(f=3===m.services.length?"stn_sh_2020_direct":2===m.services.length?"stn_sh_2020_express":"stn_sh_2020",u.fill=-1===r?"gray":s||"var(--rmg-theme-colour)"):(f=3===m.services.length?"direct_sh":2===m.services.length?"express_sh":[...m.transfer.groups[0].lines||[],...m.transfer.groups[1]?.lines||[]].length>0?"int2_sh":"stn_sh",u.stroke=-1===r?"gray":s||"var(--rmg-theme-colour)");const p=l??0,j=("l"===g?6:-6)+x+30*p,_=("sh2020"===c?-20:-6)+Math.abs(p)*("sh2020"===c?25:11),v=p?0:"l"===g?-45:45;return n.jsxs(n.Fragment,{children:[n.jsx("use",{xlinkHref:`#${f}`,...u,transform:`translate(${p*("sh2020"===c?5:0)},0)rotate(${90*p*("sh2020"===c?1:-1)})`}),n.jsx("g",{transform:`translate(${j},${_})rotate(${v})`,children:n.jsx(R,{name:m.localisedName,groups:m.transfer.groups,stnState:r,direction:g,facility:m.facility,bank:p,oneLine:m.one_line,intPadding:m.int_padding})}),0===r?n.jsx(C,{}):void 0]})},R=e=>{const{name:t,groups:s,stnState:l,direction:i,facility:a,bank:o,oneLine:c,intPadding:d}=e,h=r.useRef(null),m="l"===i?1:-1,g=a?30:0,x=o?-12:0,f=r.useRef(null),[u,p]=r.useState(0);r.useEffect((()=>p(f.current?.getBBox().width??0)),[JSON.stringify(s)]);const j=d-u;return n.jsxs(n.Fragment,{children:[s.map((e=>e.lines??[])).flat().length>0&&n.jsxs(n.Fragment,{children:[n.jsx("line",{x1:(x+g)*m,x2:j*m,stroke:-1===l?"gray":"black",strokeWidth:.5}),n.jsx(V,{ref:f,groups:s,direction:i,transform:`translate(${j*m},-10.75)`})]}),a&&n.jsx("use",{xlinkHref:"#"+a,x:10*m,y:-30}),n.jsxs("g",{textAnchor:"l"===i?"start":"end",transform:`translate(${g*m},-14)`,children:[n.jsx(A,{ref:h,stnName:t,oneLine:c,directionPolarity:m,fill:-1===l?"gray":0===l?"red":"black"}),s[1]?.lines?.length&&n.jsx("g",{transform:`translate(${(j+u/2)*m},-30)`,children:n.jsx(G,{osiInfos:s[1].lines})}),s[2]?.lines?.length&&n.jsx("g",{transform:`translate(${(d+5)*m},0)`,children:n.jsx(T,{osysiInfos:s[2].lines,direction:e.direction})})]})]})},A=r.forwardRef((function(e,t){const{stnName:s,oneLine:l,directionPolarity:i,...a}=e,{zh:o="",en:c=""}=s,d=r.useRef(null),[h,m]=r.useState(0);r.useEffect((()=>{l&&d.current?m(d.current.getBBox().width+5):m(0)}),[s.zh,s.en,l]);const[g,x]=[20,8];return n.jsx("g",{ref:t,...a,children:r.useMemo((()=>n.jsxs(n.Fragment,{children:[n.jsx("g",{ref:d,children:o.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__zh rmg-outline",dy:(r.length-1-t)*-g+(l?x:(c.split("\\").length-1)*-x),children:e},t)))}),n.jsx("g",{fontSize:8,transform:`translate(${h*i},0)`,children:c.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__en rmg-outline",dy:(r.length-2-t)*-x+2,children:e},t)))})]})),[o,c,l,h,i])})})),C=()=>{const{stn_list:e}=i((e=>e.param)),t=[-1,35,50,75][new Set(Object.values(e).map((e=>e.services)).flat()).size];return n.jsx("g",{transform:`translate(0, ${t})`,children:n.jsx("text",{className:"rmg-name__zh",fill:"red",textAnchor:"middle",children:"本站"})})},V=r.forwardRef((function(e,t){const{groups:r,direction:s,...l}=e,i=[...r[0].lines||[],...r[1]?.lines||[],...r[2]?.lines?.filter((e=>Boolean(e.name[0].match(/^磁(悬)*浮/))))||[]];let a=0;return n.jsx("g",{ref:t,fontSize:14,textAnchor:"middle",...l,children:i.map(((e,t)=>{const r=Boolean(e.name[0].match(/^\w+(号)?线/)),l=Boolean(e.name[0].match(/^磁(悬)*浮/));let i;return"r"===s&&(a-=(r||l?20:14*e.name[0].length+12)+(0===t?0:5)),i=l?n.jsx("g",{transform:`translate(${a},-16)scale(0.1428571429)`,children:n.jsx(D,{info:e})},t):r?n.jsx("g",{transform:`translate(${a},0)`,children:n.jsx(J,{info:e})},t):n.jsx("g",{transform:`translate(${a},0)`,children:n.jsx(Y,{info:e})},t),"l"===s&&(a+=r||l?25:14*e.name[0].length+12+5),i}))})})),D=r.memo((function(e){return n.jsx(n.Fragment,{children:n.jsx("use",{xlinkHref:"#intbox_maglev",fill:e.info.theme?.[2],stroke:e.info.theme?.[2]})})}),((e,t)=>JSON.stringify(e.info)===JSON.stringify(t.info))),J=r.memo((function(e){return n.jsxs(n.Fragment,{children:[n.jsx("use",{xlinkHref:"#intbox_number",fill:e.info.theme?.[2]}),n.jsx("text",{x:10,className:"rmg-name__zh",fill:e.info.theme?.[3],dominantBaseline:"central",children:e.info.name[0].match(/(\d*)\w+/)?.[0]})]})}),((e,t)=>JSON.stringify(e.info)===JSON.stringify(t.info))),Y=r.memo((function(e){const t=e.info.name[0].split("\\")[0].length;return n.jsxs(n.Fragment,{children:[n.jsx("rect",{height:22,width:14*t+12,y:-11,fill:e.info.theme?.[2]}),n.jsx("text",{x:7*t+6,className:"rmg-name__zh",fill:e.info.theme?.[3],dominantBaseline:"central",children:e.info.name[0].split("\\")[0]})]})}),((e,t)=>JSON.stringify(e.info)===JSON.stringify(t.info))),G=e=>{const t=e.osiInfos.map((e=>e.name[0])).join(",");return r.useMemo((()=>n.jsxs("g",{textAnchor:"middle",fontSize:"50%",children:[n.jsx("text",{className:"rmg-name__zh",dy:-5,children:`换乘${t}`}),n.jsx("text",{className:"rmg-name__zh",dy:5,children:"仅限公共交通卡"}),n.jsx("text",{className:"rmg-name__en",dy:12.5,fontSize:"75%",children:"Only for Public Transportation Card"})]})),[t.toString()])},T=e=>{const t=e.osysiInfos.map((e=>e.name[0])).join(","),s=e.osysiInfos.map((e=>e.name[1])).join(", ");return r.useMemo((()=>n.jsxs("g",{textAnchor:"l"===e.direction?"start":"end",fontSize:"50%",children:[n.jsxs("text",{className:"rmg-name__zh",dy:3,children:["转乘",t]}),n.jsxs("text",{className:"rmg-name__en",dy:10,fontSize:"75%",children:["To ",s]})]})),[JSON.stringify(e.osysiInfos),e.direction])},U=["shanghai","sh4","#5F259F","#fff","4号线","Line 4"],X=e=>{const{xs:t,servicesPresent:s,stnStates:l}=e,{svg_height:a,direction:o,stn_list:c,current_stn_idx:h,branchSpacingPct:m,info_panel_type:g,coline:x}=i((e=>e.param)),{branches:f,depsStr:u}=i((e=>e.helper)),p=r.useMemo((()=>(console.log("computing y shares"),Object.keys(c).reduce(((e,t)=>{if(f[0].includes(t))return{...e,[t]:0};{const n=f.slice(1).filter((e=>e.includes(t)))[0];return{...e,[t]:c[n[0]].children.indexOf(n[1])?-3:3}}}),{}))),[u]),j=Object.entries(p).filter((([,e])=>e<=0)).reduce(((e,[t,n])=>({...e,[t]:n})),{}),_=Object.keys(j).reduce(((e,t)=>({...e,[t]:-j[t]*m*a/300})),{}),v=r.useMemo((()=>((e,t)=>e.map((e=>{const n=d(e.linePath,t);return{main:[{linePath:n.main,colors:e.colors}],pass:[{linePath:n.pass,colors:e.colors}]}})).reduce(((e,t)=>(e.main=[...e.main,...t.main],e.pass=[...e.pass,...t.pass],e)),{main:[],pass:[]}))(b(Object.values(x).filter((e=>e.display)),f),l)),[JSON.stringify(x),h,o,u]),$=s.reduce(((e,n)=>({...e,[n]:Object.keys(v).reduce(((e,r)=>({...e,[r]:v[r].map((e=>({path:te(e.linePath,r,t,_,o,n,s.length,c,"diagonal"),colors:e.colors}))).filter((e=>""!==e.path))})),{})})),{}),y=b(Object.values(x).filter((e=>e.display)),f).map((e=>e.linePath)).flat(),k="sh2020"===g?3:0;return n.jsx(n.Fragment,{children:n.jsxs("g",{id:"coline",transform:`translate(0,${12+k})`,children:[n.jsx(Z,{paths:$,direction:o}),n.jsx(q,{colineStns:v,branches:f,xs:t,ys:_,stnStates:l,lineWidth:12,colineGap:k}),n.jsx(K,{stnIds:Object.entries(p).filter((([,e])=>e<0)).reduce(((e,[t])=>[...e,t]),[]).filter((e=>!["linestart","lineend"].includes(e))).filter((e=>0!==c[e].services.length)).filter((e=>y.includes(e))),xs:t,ys:_,stnStates:l})]})})},Z=e=>{const{paths:t,direction:s}=e;return n.jsx(n.Fragment,{children:Object.keys(t).map(((e,l)=>n.jsx("g",{transform:`translate(0,${25*l})`,children:n.jsxs("g",{children:[t[e]?.pass.map(((t,s)=>n.jsx(r.Fragment,{children:n.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:t.path,strokeLinejoin:"round",filter:e===a.local?void 0:`url(#contrast-${e})`},s)},s))),t[e]?.main.map(((t,l)=>n.jsxs(r.Fragment,{children:[t.colors.length>1&&n.jsx("linearGradient",{id:`grad${l}`,y1:"-100%",y2:"100%",x1:"0",x2:"0",gradientUnits:"userSpaceOnUse",children:t.colors.map(((e,s)=>n.jsxs(r.Fragment,{children:[n.jsx("stop",{offset:100/t.colors.length*(s+0)+"%",stopColor:e[2]}),n.jsx("stop",{offset:100/t.colors.length*(s+1)+"%",stopColor:e[2]})]},s)))}),"l"===s&&n.jsx("marker",{id:`arrow_left_${l}_${t.colors.map((e=>e[2])).join("_")}`,refY:.5,refX:1,children:n.jsx("path",{d:"M1,0L0,1H1z",fill:t.colors.length>1?`url(#grad${l})`:t.colors[0][2]})}),"r"===s&&n.jsx("marker",{id:`arrow_right_${l}_${t.colors.map((e=>e[2])).join("_")}`,refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:t.colors.length>1?`url(#grad${l})`:t.colors[0][2]})}),n.jsx("path",{stroke:(t.colors.at(-1)??U)[2],strokeWidth:12,fill:"none",d:t.path,markerStart:"l"===s?`url(#arrow_left_${l}_${t.colors.map((e=>e[2])).join("_")})`:void 0,markerEnd:"r"===s?`url(#arrow_right_${l}_${t.colors.map((e=>e[2])).join("_")})`:void 0,strokeLinejoin:"round",filter:e===a.local?void 0:`url(#contrast-${e})`},l)]},l)))]})},`servicePath${l}`)))})},q=e=>{const{colineStns:t,branches:r,xs:s,ys:l,stnStates:a,lineWidth:o,colineGap:c}=e,{line_name:d,theme:h,info_panel_type:m}=i((e=>e.param)),g=[...t.main,...t.pass].map((e=>e.linePath.map((t=>({curStn:t,x:s[t],y:l[t],color:e.colors.at(-1)??[...h,...d]}))))).flat().reduce(((e,t)=>e.find((e=>e.curStn===t.curStn))?e:e.concat(t)),[]).filter((e=>r[0].includes(e.curStn)));return console.log(g),n.jsx("g",{id:"stations_in_mainline",children:g.map((e=>{const{curStn:t,x:r,y:s,color:l}=e,i=(-1===a[t]?0:o)+c+o,d=(-1===a[t]?0:-o)-c-o/2;return n.jsx("g",{transform:`translate(${r},${s})`,children:"sh2020"===m?n.jsx("rect",{stroke:"none",height:i,width:12,x:-6,y:d,fill:-1===a[t]?"var(--rmg-grey)":l[2]}):n.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:`translate(0,${-o})`})},t)}))})},K=e=>{const{xs:t,ys:s,stnStates:l,stnIds:a}=e,{branches:o,depsStr:c}=i((e=>e.helper)),{line_name:d,theme:h,coline:m}=i((e=>e.param)),g=r.useMemo((()=>b(Object.values(m),o)),[JSON.stringify(m),c]),x=a.reduce(((e,t)=>({...e,[t]:g.filter((e=>e.linePath.includes(t))).map((e=>e.colors)).flat().at(0)??[...h,...d]})),{});return n.jsx("g",{id:"stations_in_coline",children:a.map((e=>n.jsx("g",{transform:`translate(${t[e]},${s[e]})`,children:n.jsx(E,{stnId:e,stnState:l[e],color:x[e][2]})},e)))})},Q=()=>{const{routes:e,branches:t,depsStr:s}=i((e=>e.helper)),l=i((e=>e.param)),{svg_height:o,stn_list:c,branchSpacingPct:f,coline:u,direction:p}=i((e=>e.param)),j=h(l.stn_list,(()=>0),(()=>0)),_=m("linestart","lineend",j),v=m(_.nodes[1],_.nodes.slice(-2)[0],j),$=r.useMemo((()=>(console.log("computing x shares"),Object.keys(l.stn_list).reduce(((e,n)=>({...e,[n]:g(n,j,t)})),{}))),[t.toString(),JSON.stringify(j)]),y=[l.svgWidth.railmap*l.padding/100,l.svgWidth.railmap*(1-l.padding/100)],k=Object.keys($).reduce(((e,t)=>({...e,[t]:y[0]+$[t]/v.len*(y[1]-y[0])})),{}),w=r.useMemo((()=>(console.log("computing y shares"),Object.keys(c).reduce(((e,n)=>{if(t[0].includes(n))return{...e,[n]:0};{const r=t.slice(1).filter((e=>e.includes(n)))[0];return{...e,[n]:c[r[0]].children.indexOf(r[1])?-3:3}}}),{}))),[s]),b=Object.entries(w).filter((([,e])=>e>=0)).reduce(((e,[t,n])=>({...e,[t]:n})),{}),S=Object.keys(b).reduce(((e,t)=>({...e,[t]:-b[t]*f*o/300})),{}),M=r.useMemo((()=>x(l.current_stn_idx,e,l.direction)),[l.current_stn_idx,l.direction,e.toString()]),z=Object.values(a),N=Object.values(l.stn_list).map((e=>e.services)).flat().reduce(((e,t)=>(e[z.indexOf(t)]=!0,e)),[!1,!1,!1]).map(((e,t)=>[z[t],e])).filter((e=>e[1])).map((e=>e[0])),O=t.map((e=>d(e,M))).reduce(((e,t)=>(e.main.push(t.main),e.pass.push(t.pass),e)),{main:[],pass:[]}),I=N.reduce(((e,t)=>({...e,[t]:Object.keys(O).reduce(((e,n)=>({...e,[n]:O[n].map((e=>te(e,n,k,S,p,t,N.length,c))).filter((e=>""!==e))})),{})})),{});return n.jsxs("g",{id:"main",transform:`translate(0,${l.svg_height*(Object.keys(u).length>0?.5:.7+.1)})`,children:[n.jsx(ee,{paths:I,direction:l.direction}),n.jsx(ne,{stnIds:Object.keys(b).filter((e=>!["linestart","lineend"].includes(e))).filter((e=>0!==c[e].services.length)),xs:k,ys:S,stnStates:M}),Object.keys(u).length>0&&n.jsx(X,{xs:k,servicesPresent:N,stnStates:M}),N.length>1&&n.jsx(re,{servicesLevel:N,lineXs:y})]})},ee=e=>{const{theme:t}=i((e=>e.param)),{paths:r,direction:s}=e;return n.jsx(n.Fragment,{children:Object.keys(r).map(((l,i)=>n.jsxs("g",{transform:`translate(0,${25*i})`,filter:"#B5B5B6"===t[2]?"url(#pujiang_outline)":void 0,children:[n.jsx("g",{children:r[l]?.pass.map(((t,r)=>n.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:t,markerStart:"l"===e.direction?"url(#arrow_gray)":void 0,markerEnd:"r"===e.direction?"url(#arrow_gray)":void 0,strokeLinejoin:"round"},r)))}),n.jsx("g",{children:r[l]?.main.map(((e,t)=>n.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:e,markerStart:"l"===s?"url(#arrow_theme_left)":void 0,markerEnd:"r"===s?"url(#arrow_theme_right)":void 0,strokeLinejoin:"round",filter:l===a.local?void 0:`url(#contrast-${l})`},t)))})]},`servicePath${i}`)))})},te=(e,t,n,r,s,l,i,a,o="rightangle")=>{let[c,d]=[];const h={},m={local:0,express:20,direct:40}[l],g=i>1?50:0;let x=30;if(e.length>0){let t=!1,n=!1;a[e.at(-1)||0].children.some((e=>["linestart","lineend"].includes(e)))?n=!0:a[e.at(0)||0].parents.some((e=>["linestart","lineend"].includes(e)))&&(t=!0),x=t||n?x:0}const f=30;if(e.forEach((e=>{const t=n[e],s=r[e];if(!c&&0!==c)return[d,c]=[t,s],void(h.start=[t,s]);0===s?s!==c&&(h.bifurcate=[d,c]):s!==c&&(h.bifurcate=[t,s]),h.end=[t,s],[d,c]=[t,s]})),"start"in h){if("end"in h){if("bifurcate"in h){const[e,n]=h.start,r=h.bifurcate[0],[l,i]=h.end;return"main"===t?"l"===s?i>n?(console.log(h),"rightangle"===o?`M ${e-x},${n} H ${l} V ${i}`:`M ${e},${n} H ${e+f} L ${r-f},${i} H ${l}`):"rightangle"===o?`M ${e},${n} V ${i} H ${l}`:`M ${e-x},${n} H ${r+f} L ${l-f},${i} H ${l}`:i>n?"rightangle"===o?`M ${e},${n} H ${l} V ${i}`:`M ${e},${n} H ${e+f} L ${r-f},${i} H ${l+x}`:"rightangle"===o?`M ${e},${n} V ${i} H ${l+x}`:`M ${e},${n} H ${r+f} L ${l-f},${i} H ${l}`:i>n?"rightangle"===o?`M ${e-x},${n} H ${l} V ${i}`:`M ${e},${n} H ${e+f} L ${r-f},${i} H ${l+x}`:"rightangle"===o?`M ${e},${n} V ${i} H ${l+x}`:`M ${e-x},${n} H ${r+f} L ${l-f},${i} H ${l}`}{const[e,n]=h.start,r=h.end[0];return"main"===t?"l"===s?`M ${e-x-m},${n} H ${r}`:`M ${e},${n} H ${r+x+m}`:"l"===s?`M ${e-x},${n} H ${r+x+g}`:`M ${e-x-g},${n} H ${r+x}`}}{const[e,n]=h.start;return"main"===t?"l"===s?`M ${e-x-m},${n} H ${e}`:`M ${e},${n} H ${e+x+m}`:"l"===s?`M ${e},${n} L ${e+x+g},${n}`:`M ${e-x-g},${n} L ${e},${n}`}}return""},ne=e=>{const{xs:t,ys:r,stnStates:s,stnIds:l}=e;return n.jsx("g",{children:l.map((e=>n.jsx("g",{transform:`translate(${t[e]},${r[e]})`,children:n.jsx(E,{stnId:e,stnState:s[e]})},e)))})},re=e=>{const{svg_height:t,direction:s,svgWidth:l}=i((e=>e.param)),a=130-t,o=e.servicesLevel.map((e=>({local:"普通车",express:"大站车",direct:"直达车"}[e]))),c="r"===s?e.lineXs[0]-42:e.lineXs[1]+42,d=2===e.servicesLevel.length?350:500;return r.useMemo((()=>n.jsxs("g",{children:[o.map(((e,t)=>n.jsxs("g",{transform:`translate(${c},${25*t})`,children:[n.jsx("rect",{x:-27.5,height:10,width:55,fill:"white",stroke:"black",y:-5}),n.jsx("text",{className:"rmg-name__zh",fontSize:9,y:3,textAnchor:"middle",children:`${e}运行线`})]},e))),n.jsxs("g",{transform:`translate(${"r"===s?30:l.railmap-d},${a})`,children:[n.jsx("text",{className:"rmg-name__zh",children:"图例:"}),o.map(((e,t)=>n.jsxs("g",{transform:`translate(${150*t+50},0)`,children:[n.jsx("line",{x1:"0",x2:"35",y1:"-5",y2:"-5",stroke:"var(--rmg-theme-colour)",strokeWidth:"12",filter:2===t?"url(#contrast-direct)":1===t?"url(#contrast-express)":""}),n.jsx("use",{x:"17.5",y:"-5",xlinkHref:"#stn_sh",fill:"var(--rmg-theme-colour)"}),n.jsx("text",{x:"40",className:"rmg-name__zh",children:`${e}停靠站`})]},`serviceLevel${t}`)))]})]})),[t,s,l,e.servicesLevel,e.lineXs])},se=()=>{const{direction:e,svgWidth:t,coline:s}=i((e=>e.param)),l=!!Object.keys(s).length;return r.useMemo((()=>n.jsxs("g",{transform:`translate(${"l"===e?50:t.railmap-150},50)`,children:[n.jsx("text",{className:"rmg-name__zh",children:"列车前进方向"}),n.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",stroke:l?"var(--rmg-black)":void 0,strokeWidth:l?5:void 0,fill:l?"var(--rmg-white)":"var(--rmg-theme-colour)",transform:`translate(${"l"===e?-30:125},-5)rotate(${"l"===e?0:180})scale(0.15)`})]})),[e,s,t.railmap])},le=e=>{const{stnId:t,nameDirection:r,services:s,color:l}=e,a=i((e=>e.param.stn_list[t])),o=[...a.transfer.groups[0]?.lines||[],...a.transfer.groups[1]?.lines||[]];let c;c=3===a.services.length?"direct_indoor_sh":2===a.services.length?"express_indoor_sh":a.transfer.groups[1]?.lines?.length?"osi_indoor_sh":o.length>0?"int2_indoor_sh":"stn_indoor_sh";const d="left"===r||"right"===r?90:0;return n.jsxs(n.Fragment,{children:[n.jsx(ie,{name:a.localisedName,groups:a.transfer.groups,nameDirection:r,services:s}),n.jsx("use",{xlinkHref:`#${c}`,stroke:o.length>0?"var(--rmg-black)":l??"var(--rmg-theme-colour)",transform:`rotate(${d})`}),a.services.length>1&&n.jsx("text",{className:"rmg-name__zh",writingMode:"tb",fontSize:"60%",dy:"-12",children:`大站车${a.services.length>2?" 直达车":""}停靠`})]})},ie=e=>{const{name:t,groups:s,nameDirection:l,services:i}=e,a={upward:60,downward:-30,left:0,right:0}[l],o=s[2]?.lines?.length?{upward:0,downward:0,left:(s[0].lines?.length||0)+(s[1]?.lines?.length||0)!==0?85:25,right:(s[0].lines?.length||0)+(s[1]?.lines?.length||0)!==0?-85:-25}[l]:0,c=s[2]?.lines?.length?{upward:s[0]?.lines?.length&&s[1]?.lines?.length?-210:s[0]?.lines?.length||s[1]?.lines?.length?-177.5:-145,downward:(s[0]?.lines?.length&&s[1]?.lines?.length?185:s[0].lines?.length||s[1]?.lines?.length?157.5:125)+(3===i.length?40:0),left:s[0]?.lines?.length&&s[1]?.lines?.length?-67:s[0].lines?.length||s[1]?.lines?.length?-30:0,right:s[0]?.lines?.length&&s[1]?.lines?.length?-67:s[0].lines?.length||s[1]?.lines?.length?-30:0}[l]:0,d=r.useRef(null),[h,m]=r.useState(60);return r.useEffect((()=>{d?.current&&m(Math.max(60,d.current.getBBox().width))}),[t.zh,t.en]),n.jsxs("g",{transform:`translate(0,${a})`,children:["upward"===l||"downward"===l?n.jsxs(n.Fragment,{children:[n.jsx("line",{x1:-h/2,x2:h/2,y1:"upward"===l?-23:-10,y2:"upward"===l?-23:-10,stroke:"black"}),n.jsx("line",{y1:"upward"===l?-23:-10,y2:"upward"===l?-48:20,stroke:"black"})]}):n.jsxs(n.Fragment,{children:[n.jsx("line",{x1:"left"===l?-50:15,x2:"left"===l?-15:50,y1:0,y2:0,stroke:"black"}),n.jsx("line",{x1:"left"===l?-50:50,x2:"left"===l?-50:50,y1:-30,y2:30,stroke:"black"})]}),[...s[0].lines||[],...s[1]?.lines||[]].length&&n.jsx(oe,{intInfos:[s[0].lines||[],s[1]?.lines||[]],arrowDirection:l,services:i}),n.jsx(ae,{ref:d,stnName:t,nameDirection:l,fill:"black"}),s[2]?.lines?.length&&n.jsx("g",{transform:`translate(${o},${c})`,children:n.jsx(ce,{osysiInfos:s[2].lines,nameDirection:l})})]})},ae=r.forwardRef((function(e,t){const{stnName:s,nameDirection:l,...i}=e,{zh:a="",en:o=""}=s,c=a.split("\\"),d=o.split("\\").length,h={upward:0,downward:0,left:-60,right:60}[l],m={upward:-2,downward:-30-12*(d-1),left:-10*(d-1),right:-10*(d-1)}[l],g={upward:"middle",downward:"middle",left:"end",right:"start"}[l];return n.jsx("g",{ref:t,...i,textAnchor:g,transform:`translate(${h},${m})`,children:r.useMemo((()=>n.jsxs(n.Fragment,{children:[c.map(((e,t,r)=>n.jsx("text",{className:"rmg-name__zh",dy:"upward"===l?16*t:-16*(r.length-1-t),children:e},t))),n.jsx("g",{fontSize:9.6,children:o.split("\\")?.map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:12*(t+1)+("upward"===l&&c.length>1?7.5*c.length:0),children:e},t)))})]})),[a,o])})})),oe=e=>{const{intInfos:t,arrowDirection:s,services:l}=e,i=t.flatMap((e=>e.map((e=>e.theme?.[2])))).reduce(((e,t)=>e+t),""),a=t.map((e=>[e.filter((e=>e.name[0].match(/^\d+.*$/))).map((e=>e.name[0].replace(/^(\d+)(.*)$/,"$1"))).join(",").concat("号线"),e.filter((e=>!e.name[0].match(/^\d+.*$/))).map((e=>e.name[0])).join(",")].filter((e=>e&&"号线"!==e)).join(","))),o=t.map((e=>["Line ".concat(e.filter((e=>/^(L|l)ine \d+$/.test(e.name[1]))).map((e=>e.name[1].replace("Line","").replace("line","").trim())).join(",")),e.filter((e=>!/^(L|l)ine \d+$/.test(e.name[1]))).map((e=>e.name[1])).join(", ")].filter((e=>e&&"Line "!==e)).join(", "))),c=3===l.length?80:45,d={upward:-145,downward:125+(3===l.length?40:0),left:7,right:7}[s],h={upward:0,downward:0,left:20,right:-20}[s],m={upward:-74,downward:44,left:0,right:0}[s],g={upward:0,downward:180,left:90,right:-90}[s],x={upward:0,downward:0,left:85,right:-85}[s],f={upward:"middle",downward:"middle",left:"start",right:"end"}[s],u=x,p={upward:t.at(0)?.length?-177.5:-145,downward:(t.at(0)?.length?157.5:125)+(3===l.length?40:0),left:t.at(0)?.length?-30:7,right:t.at(0)?.length?-30:7}[s];return n.jsxs("g",{children:[n.jsx("path",{id:"int_indoor_arrow_sh",stroke:"var(--rmg-black)",strokeWidth:1,transform:`translate(${h},${m})rotate(${g})`,fill:1===t.flat().length?t.flat()[0].theme?.[2]:`url(#grad${i})`,d:`M -7.5,0 v -${c} h -7.5 l 15,-15 l 15,15 h -7.5 v ${c} Z`}),t.flat().length>1&&n.jsx("linearGradient",{id:`grad${i}`,y1:"0",y2:"0",x1:"upward"===s?"25%":"75%",x2:"upward"===s?"75%":"25%",children:t.flat().map(((e,s)=>n.jsxs(r.Fragment,{children:[n.jsx("stop",{offset:100/t.flat().length*s+"%",stopColor:e.theme?.[2]}),n.jsx("stop",{offset:100/t.flat().length*(s+1)+"%",stopColor:e.theme?.[2]})]},s)))}),(t.at(0)?.length??0)>0&&n.jsxs("g",{transform:`translate(${x},${d})`,textAnchor:`${f}`,children:[n.jsx("text",{className:"rmg-name__zh",dy:-7,children:`换乘${a[0]}`}),n.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:`Interchange ${o[0]}`})]}),(t.at(1)?.length??0)>0&&n.jsxs("g",{transform:`translate(${u},${p})`,textAnchor:`${f}`,children:[n.jsx("text",{className:"rmg-name__zh",dy:-7,children:`出站换乘${a[1]}`}),n.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:`Out-of-station Transfer ${o[1]}`})]})]})},ce=e=>{const t={upward:"middle",downward:"middle",left:"start",right:"end"}[e.nameDirection];return r.useMemo((()=>n.jsxs("g",{textAnchor:`${t}`,children:[n.jsx("text",{className:"rmg-name__zh",dy:-5,children:`转乘${e.osysiInfos.map((e=>e.name[0])).join(",")}`}),n.jsx("text",{className:"rmg-name__en",dy:7.5,fontSize:9.6,children:`To ${e.osysiInfos.map((e=>e.name[1])).join(", ")}`})]})),[JSON.stringify(e.osysiInfos),e.nameDirection])},de=e=>{const{loop_branches:t,edges:r,xs:o,ys:c,canvas:d}=e,[h,m,g,x]=r,{branches:f}=i((e=>e.helper)),{current_stn_idx:u,direction:p,coline:j}=i((e=>e.param)),_=d===l.RailMap?30:0,v=[`M ${h},${g} H ${Number(o[t.at(0)?.at(0)??""])-_}`,`M ${m},${g} H ${Number(o[t.at(1)?.at(-1)??""])+_}`],$=f[0].filter((e=>!["linestart","lineend"].includes(e))),y=Object.values(j).filter((e=>![e.from,e.to].every((e=>$.includes(e))))).map((e=>e.colors));return n.jsx(n.Fragment,{children:t.map(((e,r)=>n.jsxs(s.Fragment,{children:[y.filter(((e,t,n)=>t===n.findIndex((t=>t.at(0)?.at(2)===e.at(0)?.at(2))))).map((e=>n.jsx("marker",{id:`arrow_theme_${e[0][2]}`,refX:1,refY:.5,children:n.jsx("path",{d:"M0,1H2L1,0z",fill:e[0][2]})},e[0][2]))),n.jsx("path",{stroke:y.at(r)?.at(0)?.at(2)??"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:v[r],markerEnd:d===l.RailMap&&("l"===p&&0===r||"r"===p&&1===r)?y.at(r)?`url(#arrow_theme_${y[r][0][2]})`:"url(#arrow_theme)":void 0}),e.filter((e=>!["linestart","lineend"].includes(e))).map((e=>n.jsxs(s.Fragment,{children:[d===l.RailMap&&n.jsx("g",{transform:`translate(${o[e]},${c[e]})`,children:n.jsx(E,{stnId:e,stnState:u===e?0:1,bank:0,direction:p,color:y.at(r)?.at(0)?.at(2)})},e),d===l.Indoor&&n.jsx("g",{transform:`translate(${o[e]},${c[e]})`,children:n.jsx(le,{stnId:e,nameDirection:t.filter((t=>t.includes(e))).map((t=>t.indexOf(e)%2==0?"downward":"upward"))[0],services:[a.local],color:y.at(r)?.at(0)?.at(2)})},e)]},e)))]},e.at(0))))})},he=e=>{const{edges:t,loop_stns:r,xs:s,ys:a,canvas:c}=e,[d,h,m,g]=t,{info_panel_type:x,stn_list:f,coline:u}=i((e=>e.param)),{branches:p}=i((e=>e.helper)),j=Object.values(u).filter((e=>[e.from,e.to].every((e=>p.slice(1,3).filter((e=>o(e,f))).flat().includes(e))))).map((e=>e.colors)).at(0),_=c===l.RailMap&&"sh2020"===x?3:0;return n.jsxs("g",{id:"coline_main",children:[n.jsx("path",{d:`M ${d},${m} H${h}`,strokeWidth:12,stroke:j?.at(0)?.at(2)}),c===l.RailMap&&Object.keys(u).length>0&&r.top.map((e=>n.jsx("g",{transform:`translate(${s[e]},${a[e]})`,children:"sh2020"===x?n.jsxs(n.Fragment,{children:[n.jsx("rect",{stroke:"none",height:24,width:12,x:-6,y:-_-1,fill:j?.at(0)?.at(2)}),n.jsx("rect",{stroke:"none",height:_+12,width:12,x:-6,y:10,fill:"var(--rmg-theme-colour)"})]}):n.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:"translate(0,13)"})},e)))]})},me=e=>{const{bank_angle:r,canvas:s}=e,{branches:a}=i((e=>e.helper)),{current_stn_idx:c,svgWidth:d,svg_height:h,padding:m,branchSpacingPct:g,direction:x,info_panel_type:f,stn_list:u,loop_info:{left_and_right_factor:p,bottom_factor:j},coline:_}=i((e=>e.param)),v=a[0].filter((e=>!["linestart","lineend"].includes(e))),$=a.slice(0,3).flat().filter((e=>t=>2===(e[t]=(e[t]||0)+1))({})).filter((e=>!["linestart","lineend"].includes(e))),y=Object.values(_).filter((e=>[e.from,e.to].every((e=>a.slice(1,3).filter((e=>o(e,u))).flat().includes(e))))).map((e=>{const t=v.findIndex((t=>t===e.from)),n=v.findIndex((t=>t===e.to));return Math.abs(n-t)>v.length-2-Math.abs(n-t)?"major":"minor"})).at(0)??"minor",k=$.at(1)?((e,n,r,s)=>{let l=e.findIndex((e=>e===n[0])),i=e.findIndex((e=>e===n[1]));[l,i,n[0],n[1]]=l>i?[i,l,n[1],n[0]]:[l,i,n[0],n[1]];const a=e.slice(l,i+1),o=e.filter((e=>!a.filter((e=>!n.includes(e))).includes(e))),c=e.length-("major"===s?Math.max:Math.min)(a.length,o.length)-2*r,d="major"===s?a.length>o.length?n[0]:n[1]:a.length>o.length?n[1]:n[0];return t(e,d,c,r)})(v,$,p,y):$.at(0)?t(v,$[0],j,p):((e,t,n,r)=>{const s=e.length-2*r-n,l=e.findIndex((e=>e===t)),i=[...e,...e,...e],a=e.length+l-Math.floor(s/2)+(s%2==0?1:0),o=e.length+l+Math.floor(s/2);return{top:i.slice(a,o+1),left:i.slice(a-r,a),right:i.slice(o+1,o+1+r),bottom:i.slice(o+1+r,o+1+r+n)}})(v,c,j,p),{x_shares:w,y_shares:b}=((e,t)=>{const n=Object.fromEntries(e.map((e=>[e,-1]))),r=Object.fromEntries(e.map((e=>[e,-1]))),[s,l,i,a]=[0,1,0,1];return t.top.forEach(((e,l)=>{n[e]=0+1/(t.top.length+1)*(l+1),r[e]=s})),t.right.forEach(((e,s)=>{n[e]=a,r[e]=0+1/(t.right.length+1)*(s+1)})),t.bottom.forEach(((e,s)=>{n[e]=1-1/(t.bottom.length+1)*(s+1),r[e]=l})),t.left.forEach(((e,s)=>{n[e]=i,r[e]=1-1/(t.left.length+1)*(s+1)})),{x_shares:n,y_shares:r}})(v,k),{loop_branches:S,line_xs_branches:M,xs_branches:z}=((e,t,n,r,s,l)=>{const i=e[0].filter((e=>!["linestart","lineend"].includes(e))),a=e.slice(1,3).map((e=>e.slice(1,e.length-1))),o=a.reduce(((e,n)=>e+n.filter((e=>!["linestart","lineend",...t].includes(e))).length),0)+i.length-l-2*s,c=(n-n*r/100*2)/(1+o),d=[n*r/100+(a.at(0)??[]).length*c,n*(1-r/100)-(a.at(1)??[]).length*c],h={...Object.fromEntries((a.at(0)??[]).map(((e,t)=>[e,n*r/100+t*c]))),...Object.fromEntries((a.at(1)??[]).map(((e,t)=>[e,d[1]+(1+t)*c])))};return{loop_branches:a,line_xs_branches:d,xs_branches:h}})(a,$,d[s],m,p,k.bottom.length),N={...b,...Object.fromEntries(S.flat().map((e=>[e,0])))},O=g*h/300,I=[225+O,h-75-(s===l.RailMap?0:125)-O],H=Object.keys(N).reduce(((e,t)=>({...e,[t]:I[0]+N[t]*(I[1]-I[0])})),{}),W=[Math.max(d[s]*m/100+(r&&s===l.RailMap?100:0),M[0]),Math.min(d[s]*(1-m/100)-(r&&s===l.RailMap?100:0),M[1])],L=Object.keys(w).reduce(((e,t)=>({...e,[t]:W[0]+w[t]*(W[1]-W[0])})),{}),F=r?{l:1,r:-1}[x]:0;[...k.right,...k.left].forEach((e=>{L[e]-=(H[e]-I[0])*F})),k.bottom.forEach((e=>{L[e]-=(I[1]-I[0])*F}));const B={...z,...L},P=ge(k,B,H,F,[...W,...I],x),E=s===l.RailMap&&"sh2020"===f?3:0;Object.keys(_).length>0&&k.top.forEach((e=>{H[e]-=E+12}));const R=S.length?0:(I[1]-I[0])*F/2;return n.jsxs("g",{id:"loop",transform:`translate(${R},0)`,children:[n.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:P,strokeLinejoin:"round"}),s===l.RailMap&&n.jsx(xe,{canvas:s,loop_stns:k,xs:B,ys:H}),n.jsxs("g",{transform:`translate(0,${Object.keys(_).length>0?-12-E:0})`,children:[n.jsx(de,{loop_branches:S,edges:[...W,...I],xs:B,ys:H,canvas:s}),Object.keys(_).length>0&&n.jsx(he,{edges:[...W,...I],loop_stns:k,xs:B,ys:H,canvas:s})]}),s===l.Indoor&&n.jsx(xe,{canvas:s,loop_stns:k,xs:B,ys:H})]})},ge=(e,t,n,r,s,l)=>{const[i,a,o,c]=s,d=(e,t,n,s,l)=>({right:[n+(s-o)*r,t],bottom:[e-(c-t)*r,s],left:[n-(c-s)*r,t],top:[e+(t-o)*r,s]}[l]),h=[];e.top.forEach((e=>{h.push([t[e],n[e]])})),["right","bottom","left"].forEach((s=>{if(e[s].length>0)h.push(d(h.at(-1)[0],h.at(-1)[1],t[e[s][0]],n[e[s][0]],s)),e[s].forEach((e=>{h.push([t[e],n[e]])}));else{const e={right:[a,h.at(-1)[1]],bottom:[h.at(-1)[0]+(c-h.at(-1)[1])*-r,h.at(-1)[1]+(c-h.at(-1)[1])],left:[i+(0===r?0:(c-o)*("l"===l?-1:1)),h.at(-1)[1]]};h.push(e[s])}})),h.push(d(h.at(-1)[0],h.at(-1)[1],t[e.top[0]],n[e.top[0]],"top"));const m=h.slice(1).map((([e,t])=>`L${e},${t} `)).join(" ");return`M${h[0][0]},${h[0][1]} ${m} Z`},xe=e=>{const{canvas:t,loop_stns:r,xs:s,ys:o}=e,{current_stn_idx:c}=i((e=>e.param)),d={top:0,bottom:0,left:-1,right:1},h={left:"r",right:"l",top:void 0,bottom:void 0},m=(e,t)=>({top:t%2==0?"upward":"downward",bottom:t%2==0?"upward":"downward",left:"left",right:"right"}[e]);return n.jsxs("g",{id:"loop_stations",children:[t===l.RailMap&&Object.entries(r).map((([e,t])=>t.map((t=>n.jsx("g",{transform:`translate(${s[t]},${o[t]})`,children:n.jsx(E,{stnId:t,stnState:c===t?0:1,bank:d[e],direction:h[e]})},t))))),t===l.Indoor&&Object.entries(r).map((([e,t])=>t.map(((t,r)=>n.jsx("g",{transform:`translate(${s[t]},${o[t]})`,children:n.jsx(le,{stnId:t,nameDirection:m(e,r),services:[a.local]})},t)))))]})},fe=l.RailMap;function ue(){const{canvasScale:e}=i((e=>e.app)),{svgWidth:t,svg_height:r,theme:s,loop:a,loop_info:{bank:o}}=i((e=>e.param)),d=t[fe];return n.jsxs(c,{type:fe,svgWidth:d,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(pe,{}),a?n.jsx(me,{bank_angle:o,canvas:l.RailMap}):n.jsx(Q,{}),n.jsx(se,{})]})}const pe=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("circle",{id:"stn_sh",fill:"var(--rmg-white)",strokeWidth:2,r:5}),n.jsx("path",{id:"int2_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"express_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"direct_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V50 a 5,5 0 1 1 -10,0Z"}),n.jsx("rect",{id:"stn_sh_2020",stroke:"none",height:24,width:12,x:-6,y:-18}),n.jsx("rect",{id:"stn_sh_2020_express",stroke:"none",height:49,width:12,x:-6,y:-18}),n.jsx("rect",{id:"stn_sh_2020_direct",stroke:"none",height:74,width:12,x:-6,y:-18}),n.jsx("rect",{id:"intbox_number",height:22,width:20,y:-11}),n.jsxs("g",{id:"intbox_maglev",transform:"translate(-25,0)",children:[n.jsx("rect",{id:"maglev_5",height:144,width:130,y:"40",x:"30",strokeWidth:10}),n.jsx("path",{id:"maglev_3",fill:"var(--rmg-white)",d:"m90,55a40,5 0 0 0 -40,3a5,5 0 0 0 -5,5a5,60 0 0 0 -3,60a5,5 0 0 0 5,5l96,0a5,5 0 0 0 5,-5a5,60 0 0 0 -3,-60a5,5 0 0 0 -5,-5a40,5 0 0 0 -40,-3l-5,-10l-5,10"}),n.jsx("path",{id:"maglev_4",fill:"var(--rmg-white)",d:"m90,140l-40,0a10,5 0 0 1 -10,-5l0,25a10,15 0 0 0 10,15l15,0l0,-10l-15,0l0,-15l90,0l0,15l-15,0l0,10l15,0a10,15 0 0 0 10,-15l0,-25a10,5 0 0 1 -10,5l-50,0"}),n.jsx("rect",{id:"maglev_1",height:"25",width:"40",y:"80",x:"50"}),n.jsx("rect",{id:"maglev_2",height:"25",width:"40",y:"80",x:"100"})]}),n.jsxs("g",{id:"airport",transform:"scale(0.5)",children:[n.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),n.jsx("path",{id:"airport",d:"M28.9769,6.60134c1.711.013,3.111,2.53205,3.111,4.241v10.337s17.106,15.435,17.358,15.666a1.145,1.145,0,0,1,.488,1.152v2.833c0,.651-.451.61-.695.467-.334-.119-17.151-8.863-17.151-8.863-.004,1.458-.797,9.006-1.326,13.304,0,0,4.61,2.457,4.699,2.521.334.268.352.359.352.852v2.001c0,.477-.352.428-.51.324-.183-.062-5.693-1.921-5.693-1.921a2.56018,2.56018,0,0,0-.633-.127,2.31654,2.31654,0,0,0-.666.127s-5.477,1.859-5.672,1.921c-.185.104-.523.153-.523-.324v-2.001c0-.493.029-.584.367-.852.086-.064,4.678-2.521,4.678-2.521-.524-4.298-1.307-11.846-1.325-13.304,0,0-16.822,8.744-17.148,8.863-.217.143-.69.184-.69-.467v-2.833a1.16206,1.16206,0,0,1,.473-1.152c.276-.231,17.365-15.666,17.365-15.666v-10.337c0-1.709,1.403-4.228,3.14105-4.241",transform:"translate(-28.9697,0.14347)",fill:"var(--rmg-white)"})]}),n.jsxs("g",{id:"disney",transform:"scale(0.5)",children:[n.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),n.jsx("path",{fill:"var(--rmg-white)",d:"M45.6152,7.85015a9.80248,9.80248,0,0,0-9.79907,9.801,9.70059,9.70059,0,0,0,.342,2.582c.002.026.002.055.002.093a.31815.31815,0,0,1-.31494.318.67741.67741,0,0,1-.12806-.02,15.71521,15.71521,0,0,0-13.498,0,.61.61,0,0,1-.122.02.31841.31841,0,0,1-.322-.318v-.067a9.62553,9.62553,0,0,0,.35608-2.608,9.803,9.803,0,1,0-9.797,9.8,10.10364,10.10364,0,0,0,2.308-.271h.05493a.31113.31113,0,0,1,.31409.318.32433.32433,0,0,1-.019.12,15.72588,15.72588,0,1,0,29.703,7.216,15.83676,15.83676,0,0,0-1.746-7.23.18417.18417,0,0,1-.0271-.106.31612.31612,0,0,1,.32007-.318h.057a10.15953,10.15953,0,0,0,2.316.271,9.80051,9.80051,0,0,0,0-19.601",transform:"translate(-28.9697 0.13398)"})]}),n.jsxs("g",{id:"railway",children:[n.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)",transform:"translate(0,-2)scale(0.5)"}),n.jsx("path",{fill:"var(--rmg-white)",d:"M169,273.5c0-19,14.7-34.8,33.7-36.3c18.9-1.5,38.1-2.2,57.4-2.2c19.3,0,38.4,0.8,57.3,2.2 c19,1.5,33.7,17.3,33.7,36.3v47.3l-51.3,14.7c-11.2,3.2-18.9,13.4-18.9,25v147.8c0,17.4,12.2,32.3,29.3,35.7l110.6,22.1 c4.9,1,8.4,5.2,8.4,10.2V599H91v-22.7c0-5,3.5-9.2,8.4-10.2L209.9,544c17-3.4,29.3-18.3,29.3-35.7V360.5c0-11.6-7.7-21.8-18.9-25 L169,320.8V273.5z M309.4,31.7c0.2-1.2,0.3-2.4,0.3-3.6c0-14-11.1-25.4-24.9-26C276.6,1.4,268.3,1,260,1c-8.3,0-16.6,0.4-24.7,1.1 c-13.9,0.6-24.9,12-24.9,26c0,1.2,0.1,2.5,0.3,3.6C90.6,54.8,0,160.3,0,287c0,97.2,53.4,182,132.4,226.6l36.8-48.1 C104.3,432.4,59.8,364.9,59.8,287c0-110.6,89.6-200.2,200.2-200.2S460.2,176.4,460.2,287c0,77.9-44.5,145.4-109.4,178.5 c15,19.6,25.6,33.5,36.8,48.1C466.6,469,520,384.2,520,287C520,160.3,429.4,54.8,309.4,31.7z",transform:"translate(-10,0)scale(0.04)"})]}),n.jsx("marker",{id:"arrow_gray",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-grey)"})}),n.jsx("marker",{id:"arrow_theme_left",refX:1,refY:.5,children:n.jsx("path",{d:"M1,0L0,1H1z",fill:"var(--rmg-theme-colour)"})}),n.jsx("marker",{id:"arrow_theme_right",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),n.jsx("marker",{id:"arrow_theme",refX:1,refY:.5,children:n.jsx("path",{d:"M0,1H2L1,0z",fill:"var(--rmg-theme-colour)"})}),n.jsx("filter",{id:"contrast-direct",filterUnits:"userSpaceOnUse",children:n.jsxs("feComponentTransfer",{children:[n.jsx("feFuncR",{type:"linear",slope:.5,intercept:.25}),n.jsx("feFuncG",{type:"linear",slope:.5,intercept:.25}),n.jsx("feFuncB",{type:"linear",slope:.5,intercept:.25})]})}),n.jsx("filter",{id:"contrast-express",filterUnits:"userSpaceOnUse",children:n.jsxs("feComponentTransfer",{children:[n.jsx("feFuncR",{type:"linear",slope:.75,intercept:.125}),n.jsx("feFuncG",{type:"linear",slope:.75,intercept:.125}),n.jsx("feFuncB",{type:"linear",slope:.75,intercept:.125})]})}),n.jsx(S,{})]})})),je=l.Indoor;function _e(){const{canvasScale:e}=i((e=>e.app)),{svgWidth:t,svg_height:r,theme:s,loop:a}=i((e=>e.param)),o=t[je];return n.jsxs(c,{type:je,svgWidth:o,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(ve,{}),a?n.jsx(me,{bank_angle:!1,canvas:l.Indoor}):n.jsx(ke,{}),n.jsx(Se,{})]})}const ve=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("circle",{id:"stn_indoor_sh",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),n.jsx("path",{id:"int2_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"express_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"direct_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V40 a 5,5 0 1 1 -10,0Z"}),n.jsxs("g",{id:"osi_indoor_sh",children:[n.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-black)",strokeWidth:22}),n.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-white)",strokeWidth:10}),n.jsx("circle",{cy:"-12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),n.jsx("circle",{cy:"12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"})]})]})})),$e=(e,t)=>{let n=0;return 2===e[t].parents.length&&(n+=1),2===e[e[t].parents[0]].children.length&&(n+=1),n},ye=(e,t)=>{let n=0;return 2===e[t].children.length&&(n+=1),2===e[e[t].children[0]].parents.length&&(n+=1),n},ke=()=>{const{routes:e,branches:t,depsStr:s}=i((e=>e.helper)),l=i((e=>e.param)),o=h(l.stn_list,$e,ye),c=m("linestart","lineend",o),d=m(c.nodes[1],c.nodes.slice(-2)[0],o),u=r.useMemo((()=>(console.log("computing x shares"),Object.keys(l.stn_list).reduce(((e,n)=>({...e,[n]:g(n,o,t)})),{}))),[t.toString(),JSON.stringify(o)]),p=[l.svgWidth.indoor*l.padding/100,l.svgWidth.indoor*(1-l.padding/100)],j=Object.keys(u).reduce(((e,t)=>({...e,[t]:p[0]+u[t]/d.len*(p[1]-p[0])})),{}),_=r.useMemo((()=>f.getYShares(l.stn_list)),[s]),v=Object.keys(_).reduce(((e,t)=>({...e,[t]:_[t]*l.branchSpacingPct*l.svg_height/200})),{}),$=r.useMemo((()=>x(l.current_stn_idx,e,l.direction)),[l.current_stn_idx,l.direction,e.toString()]),y=Object.values(a),k=Object.values(l.stn_list).map((e=>e.services)).flat().reduce(((e,t)=>(e[y.indexOf(t)]=!0,e)),[!1,!1,!1]).map(((e,t)=>[y[t],e])).filter((e=>e[1])).map((e=>e[0])),w=f.drawLine(t,$,l.stn_list,p,j,v,l.branchSpacingPct*l.svg_height/200,c,0);return n.jsxs("g",{id:"main",transform:`translate(0,${l.svg_height/2})`,children:[n.jsx(we,{paths:w,services:k}),n.jsx(be,{xs:j,ys:v,services:k})]})},we=e=>n.jsx("g",{fill:"none",strokeWidth:12,stroke:"var(--rmg-theme-colour)",children:e.services.map(((t,r)=>n.jsxs("g",{transform:`translate(0, ${30*r})`,children:[e.paths.main.map(((e,t)=>n.jsx("path",{d:e},t))),e.paths.pass.map(((e,t)=>n.jsx("path",{d:e},t)))]},`indoor_line_${r}`)))}),be=e=>{const{branches:t}=i((e=>e.helper)),{stn_list:r,namePosMTR:{isFlip:s}}=i((e=>e.param)),{xs:l,ys:a,services:o}=e,c=s??1?"upward":"downward",d="upward"===c?"downward":"upward";return n.jsx("g",{children:Object.keys(r).filter((e=>!["linestart","lineend"].includes(e))).filter((e=>0!==r[e].services.length)).map((e=>n.jsx("g",{transform:`translate(${l[e]},${a[e]})`,children:n.jsx(le,{stnId:e,nameDirection:o.length>1?"downward":t.filter((t=>t.includes(e))).map((t=>t.indexOf(e)%2==0?c:d))[0],services:o})},e)))})},Se=r.memo((()=>{const{svg_height:e,svgWidth:{indoor:t},line_name:r,stn_list:s}=i((e=>e.param)),l=Math.max(...Object.values(s).map((e=>e.transfer.groups.at(1)?.lines?.length??0))),a=l>0?210:110;return n.jsxs(n.Fragment,{children:[n.jsx("g",{transform:`translate(${t/2},50)`,children:n.jsxs("text",{textAnchor:"middle",fontSize:"30",className:"rmg-name__zh",children:["轨道交通",r[0],"运营线路示意图"]})}),n.jsxs("g",{transform:`translate(${t/2},${e-270})`,children:[n.jsx("text",{textAnchor:"middle",fontSize:"18",className:"rmg-name__zh",dx:"-30",dy:"230",children:"友情提示:请留意您需要换乘线路的首末班时间,以免耽误您的出行,末班车进站前三分钟停售该末班车车票。"}),n.jsx("text",{textAnchor:"middle",fontSize:"12",className:"rmg-name__en",dx:"10",dy:"250",children:"Please pay attention to the interchange schedule if you want to transfer to other lines. Stop selling tickets 3 minutes before the last train services."}),n.jsxs("g",{transform:"translate(-700,215)",children:[n.jsx("rect",{x:"-5",y:"-25",width:a,height:"70",fill:"none",stroke:"black",rx:"5"}),n.jsx("line",{x1:"28",x2:"28",y1:"-20",y2:"40",stroke:"black"}),n.jsx("text",{className:"rmg-name__zh",dx:"3",fontSize:"18",children:"图"}),n.jsx("text",{className:"rmg-name__zh",dx:"3",dy:"18",fontSize:"18",children:"例"}),n.jsx("text",{className:"rmg-name__en",dy:"35",fontSize:"8",children:"legend"}),n.jsx("use",{transform:"translate(50,10)",xlinkHref:"#int2_indoor_sh",stroke:"var(--rmg-black)"}),n.jsx("text",{className:"rmg-name__zh",dx:"70",dy:"5",fontSize:"10",children:"换乘站"}),n.jsx("text",{className:"rmg-name__en",dx:"70",dy:"15",fontSize:"6",children:"Interchange"}),n.jsx("text",{className:"rmg-name__en",dx:"70",dy:"25",fontSize:"6",children:"Station"}),l>0&&n.jsxs(n.Fragment,{children:[n.jsx("use",{transform:"translate(120,10)scale(0.75)",xlinkHref:"#osi_indoor_sh",stroke:"var(--rmg-black)"}),n.jsx("text",{className:"rmg-name__zh",dx:"135",dy:"5",fontSize:"10",children:"出站换乘车站"}),n.jsx("text",{className:"rmg-name__en",dx:"135",dy:"15",fontSize:"6",children:"Out-of-station Transfer"}),n.jsx("text",{className:"rmg-name__en",dx:"135",dy:"25",fontSize:"6",children:"Station"})]})]})]})]})}));Se.displayName="InfoElements",e("default",{destination:n.jsx(p,{}),runin:n.jsx(z,{}),railmap:n.jsx(ue,{}),indoor:n.jsx(_e,{})})}}})); +System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-Dwehuq_g.js","./app-router-legacy-CLPbLjMe.js","./svg-wrapper-legacy-BDwOt7GE.js","./share-legacy-DDWDkgfB.js","./mtr-legacy-QU8RGd-N.js","./param-selector-legacy-DN0AGkfT.js"],(function(e,t){"use strict";var n,r,s,l,i,a,o,c,d,h,m,g,x,f;return{setters:[e=>{n=e.j},e=>{r=e.a,s=e.d},e=>{l=e.aS,i=e.u,a=e.m},e=>{o=e.i},e=>{c=e.S},e=>{d=e.d,h=e.a,m=e.c,g=e.g,x=e.b},e=>{f=e.a},null],execute:function(){const t=(e,t,n,r)=>{const s=e.length-2*r-n,l=[...e,...e,...e],i=e.length+e.findIndex((e=>e===t)),a=l[i+s-1],o=e.length+e.findIndex((e=>e===a))+(i+s>2*e.length?e.length:0);return{top:l.slice(i,o+1),left:l.slice(i-r,i),right:l.slice(o+1,o+1+r),bottom:l.slice(o+1+r,o+1+r+n)}},u=l.Destination;function p(){const{canvasScale:e}=i((e=>e.app)),{svgWidth:t,svg_height:r,theme:s}=i((e=>e.param)),l=t[u];return n.jsxs(c,{type:u,svgWidth:l,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(j,{}),n.jsx(_,{})]})}const j=r.memo((function(){return n.jsx("defs",{children:n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})})),_=()=>{const{routes:e,branches:t}=i((e=>e.helper)),{line_name:r,theme:s,current_stn_idx:l,direction:a,stn_list:c,info_panel_type:d,loop:h,coline:m}=i((e=>e.param)),g=(e,t,n)=>[...new Set(e.filter((e=>e.includes(n))).map((e=>{const n=e.filter((e=>!["linestart","lineend"].includes(e)));return"l"===t?n[0]:n.reverse()[0]})))],x=(e,t)=>t?[[e.map((e=>c[e].localisedName.zh)).join(","),e.map((e=>c[e].localisedName.en)).join(", ")].map((e=>e.replace("\\","")))]:e.map((e=>{const{zh:t="",en:n=""}=c[e].localisedName;return[t.replace("\\",""),n.replace("\\","")]})),f=h?((e,t,n,r)=>{const s=e[0].filter((e=>!["linestart","lineend"].includes(e))),l=[...s,...s,...s],i="r"===t?l:l.reverse(),a=i.findIndex((e=>r===e))+s.length;return i.slice(a+1).filter((e=>n[e].loop_pivot)).slice(void 0,2)})(t,a,c,l):g(e,a,l),u=(h?g(e,a,l):f).filter((e=>t.slice(1).filter((e=>o(e,c))).some((t=>t.includes(e))))),p=x(f.filter((e=>!u.includes(e))),!(h||"sh2020"===d)),j=x(u,!0),_=Object.fromEntries(u.map((e=>[e,Object.values(m).filter((t=>t.from===e||t.to===e)).at(0)])).filter((([,e])=>e)));return n.jsxs(n.Fragment,{children:[n.jsx(v,{dest_names:p,line_name:r,line_color:[s[2],s[3]],coline:!!u.length,upper:!!u.length}),u.length&&u.map((e=>n.jsx("g",{transform:"translate(0,-250)",children:n.jsx(v,{dest_names:[j.at(0)],line_name:_[e]?.colors.at(0).slice(4),line_color:[_[e]?.colors.at(0)[2],_[e]?.colors.at(0)[3]],coline:!0,upper:!1})},`coline_${e}`)))]})},v=e=>{const{dest_names:t,line_name:s,line_color:l,coline:a,upper:o}=e,{current_stn_idx:c,direction:d,platform_num:h,svgWidth:m,svg_height:g}=i((e=>e.param)),x=r.useRef(null),[f,u]=r.useState({width:0});r.useEffect((()=>{x.current&&u(x.current.getBBox())}),[JSON.stringify(t),JSON.stringify(c)]);const[p,j,_,v,b]=[m.destination/2,10,36,264,325],S=p-j-_-f.width>=b/2&&p-j-_-v>=b/2?p:"l"===d?(m.destination+f.width-v)/2:(m.destination-f.width+v)/2;return n.jsxs("g",{transform:`translate(0,${g-300})`,children:[n.jsx("path",{stroke:l[0],strokeWidth:12,d:"l"===d?`M${m.destination-24},16 H 36`:"M24,16 H "+(m.destination-36),transform:`translate(0,${o?-20:220})`,markerEnd:a?void 0:"url(#slope)"}),n.jsx($,{ref:x,dest_names:t}),""!==h&&n.jsx("g",{transform:`translate(${S},0)`,children:n.jsx(y,{})}),s[0].match(/^[\w\d]+(号)?线/)?n.jsx(w,{line_name:s,line_color:l}):n.jsx(k,{line_name:s,line_color:l})]})},$=r.forwardRef((function(e,t){const{dest_names:s}=e,{direction:l,svgWidth:a}=i((e=>e.param));return n.jsxs("g",{ref:t,transform:`translate(${"l"===l?36:a.destination-36},145)`,children:[n.jsx("g",{transform:`translate(0,${2===s.length?-20:20})`,children:n.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:`rotate(${"l"===l?0:180})scale(0.8)`})}),n.jsx("g",{textAnchor:"l"===l?"start":"end",transform:`translate(${"l"===l?148:-148},25)`,children:s.map(((e,t)=>n.jsxs(r.Fragment,{children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:-100*t+7,children:"往"+e[0]},`zh${t}`),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dy:-100*t+40,children:"To "+e[1]},`en${t}`)]},t)))})]})})),y=()=>{const{platform_num:e}=i((e=>e.param));return r.useMemo((()=>n.jsxs("g",{transform:"translate(-102.5,150)",children:[n.jsx("circle",{r:60,fill:"none",stroke:"black",strokeWidth:2}),n.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"middle",children:e}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:100,dominantBaseline:"central",x:65,children:"站台"})]})),[e])},k=e=>{const{line_name:t,line_color:s}=e,{direction:l,svgWidth:a}=i((e=>e.param)),o="l"===l?a.destination-42:42,c=r.useRef(null),[d,h]=r.useState({width:0});r.useEffect((()=>{c.current&&h(c.current.getBBox())}),[...t]);const m=("l"===l?-d.width:0)-6,g=("l"===l?-1:1)*d.width/2;return r.useMemo((()=>n.jsxs("g",{transform:`translate(${o},92)`,children:[n.jsx("rect",{fill:s[0],x:m,width:d.width+10,height:120}),n.jsxs("g",{textAnchor:"r"===l?"start":"end",transform:"translate(0,68)",fill:s[1],children:[n.jsx("g",{ref:c,children:n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:t[0]})}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,textAnchor:"middle",x:g,dy:42,children:t[1]})]})]})),[d,...t,...s,l,a.destination])},w=e=>{const{line_name:t,line_color:s}=e,{direction:l,svgWidth:a}=i((e=>e.param)),[o,c]=t[0].match(/^[\w\d]+|.+/g),d="l"===l?a.destination-36-210:90;return r.useMemo((()=>n.jsxs("g",{transform:`translate(${d},92)`,children:[n.jsx("rect",{fill:s[0],x:-54,width:108,height:120}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fill:s[1],fontSize:96,textAnchor:"middle",dominantBaseline:"central",transform:"translate(0,60)",letterSpacing:-5,children:o}),n.jsxs("g",{textAnchor:"start",transform:"translate(74,68)",children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:68,children:c}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:30,dy:42,children:t[1]})]})]})),[d,...t,...s,l,a.destination])},b=(e,t)=>e.map((e=>{const n=t.filter((t=>t.includes(e.from)&&t.includes(e.to)));if(1!==n.length)return{linePath:[],colors:e.colors};const r=n.flat(),s=r.indexOf(e.from),l=r.indexOf(e.to);return{linePath:s0!==e.linePath.length)),S=()=>s.useMemo((()=>n.jsxs("filter",{id:"pujiang_outline",colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse",x:"0",y:"-1000",width:"5000",height:"2000",children:[n.jsxs("feComponentTransfer",{in:"SourceGraphic",children:[n.jsx("feFuncR",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),n.jsx("feFuncG",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"}),n.jsx("feFuncB",{type:"discrete",tableValues:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"})]}),n.jsx("feColorMatrix",{type:"matrix",values:"1 0 0 0 0\n 0 1 0 0 0\n 0 0 1 0 0\n 1 1 1 1 -3",result:"selectedColor"}),n.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"0",result:"e1"}),n.jsx("feMorphology",{operator:"erode",in:"selectedColor",radius:"1",result:"e2"}),n.jsx("feComposite",{in:"e1",in2:"e2",operator:"xor",result:"uncoloredOutline"}),n.jsx("feFlood",{floodColor:"rgb(0,0,0)"}),n.jsx("feComposite",{operator:"in",in2:"uncoloredOutline",result:"outline"}),n.jsx("feComposite",{in:"outline",in2:"selectedColor",operator:"over",result:"result"}),n.jsx("feComposite",{in:"result",in2:"SourceGraphic",operator:"over"})]})),[]);S.displayName="PujiangLineDefs";const M=l.RunIn,z=()=>{const{canvasScale:e}=i((e=>e.app)),{branches:t,routes:s,depsStr:l}=i((e=>e.helper)),{svgWidth:a,svg_height:o,current_stn_idx:d,direction:h,loop:m,theme:g}=i((e=>e.param)),x=a[M],f=o-300,u=r.useMemo((()=>{let e=s.filter((e=>e.includes(d))).map((e=>e[e.indexOf(d)+("l"===h?1:-1)])).filter((e=>void 0!==e)).reduce(((e,t)=>e.includes(t)?e:e.concat(t)),[]);return m&&t[0].includes(d)&&1===e.length&&["linestart","lineend"].includes(e[0])&&(e="l"===h?[t[0][1]]:[t[0][t[0].length-2]]),e}),[l,d,h,m]),p=r.useMemo((()=>{let e=s.filter((e=>e.includes(d))).map((e=>e[e.indexOf(d)+("l"===h?-1:1)])).filter((e=>void 0!==e)).reduce(((e,t)=>e.includes(t)?e:e.concat(t)),[]);return m&&t[0].includes(d)&&1===e.length&&["linestart","lineend"].includes(e[0])&&(e="l"===h?[t[0][t[0].length-2]]:[t[0][1]]),e}),[l,d,h,m]);return n.jsxs(c,{type:M,svgWidth:x,svgHeight:o,canvasScale:e,theme:g,children:[n.jsx(N,{}),n.jsx("g",{transform:`translate(0,${f})`,children:n.jsx(O,{prevStnIds:u,nextStnIds:p})})]})},N=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),n.jsx(S,{})]})})),O=e=>{const{prevStnIds:t,nextStnIds:r}=e,{info_panel_type:s,svgWidth:l,stn_list:a}=i((e=>e.param)),o=l.runin/2,c=1===r.length&&["linestart","lineend"].includes(r[0]),d=1===t.length&&["linestart","lineend"].includes(t[0]),h=r.map((e=>a[e].localisedName)),m=t.map((e=>a[e].localisedName)),[{zh:g="",en:x=""}]=h,[{zh:f="",en:u=""}]=m,p=10+(r.length>1?-50*(g.split("\\").length-1)+-30*(x.split("\\").length-1):0),j=10+(t.length>1?-50*(f.split("\\").length-1)+-30*(u.split("\\").length-1):0);return n.jsxs(n.Fragment,{children:[n.jsx(W,{prevStnIds:t,nextStnIds:r,nextBranchLineDy:p,prevBranchLineDy:j}),c&&"sh2020"!==s?n.jsx(I,{mode:"terminal",prevStnIds:t,nextStnIds:r}):d&&"sh2020"!==s?n.jsx(I,{mode:"original",prevStnIds:t,nextStnIds:r}):n.jsxs(n.Fragment,{children:[n.jsx(H,{prevStnIds:t,nextStnIds:r}),n.jsx("g",{transform:`translate(${o},160)`,textAnchor:"middle",children:n.jsx(L,{})})]}),(d||!c)&&n.jsx(P,{stnIds:e.nextStnIds}),(c||!d)&&n.jsx(B,{stnIds:e.prevStnIds})]})},I=e=>{const{mode:t,prevStnIds:r,nextStnIds:s}=e,{current_stn_idx:l,theme:a,svgWidth:o,direction:c,coline:d}=i((e=>e.param)),{branches:h}=i((e=>e.helper)),m={l:{original:{x:o.runin-36,anchor:"end"},terminal:{x:36,anchor:"start"}},r:{original:{x:36,anchor:"start"},terminal:{x:o.runin-36,anchor:"end"}}},g=b(Object.values(d),h),x="terminal"===t?r:s,f=s.length>1?"var(--rmg-theme-colour)":g.filter((e=>e.linePath.includes(l)&&e.linePath.includes(x[0]))).map((e=>e.colors[0][2]))[0]??"var(--rmg-theme-colour)";return n.jsxs(n.Fragment,{children:["original"===t&&n.jsx("path",{transform:`translate(0,${d.length?"198":"220"})${d.length?"scale(1,2)":""}`,stroke:f,strokeWidth:12,d:"l"===c?`M ${o.runin-24},16 H 36`:"M24,16 H "+(o.runin-36),markerEnd:"url(#slope)"}),"terminal"===t&&n.jsx("g",{filter:"#B5B5B6"===a[2]?"url(#pujiang_outline)":void 0,children:n.jsx("path",{transform:`translate(0,${d.length?"198":"220"})${d.length?"scale(1,2)":""}`,stroke:"var(--rmg-grey)",strokeWidth:12,d:"M24,16 H "+(o.runin-24)})}),n.jsx("g",{transform:`translate(${m[c][t].x},160)`,textAnchor:m[c][t].anchor,children:n.jsx(L,{})})]})},H=e=>{const{prevStnIds:t,nextStnIds:r}=e,{direction:s,svgWidth:l,theme:a,coline:c,current_stn_idx:d,stn_list:h}=i((e=>e.param)),{branches:m}=i((e=>e.helper)),g=l.runin/2,x=e=>e.includes("linestart")||e.includes("lineend"),f=b(Object.values(c),m),u=r.length>1?"single":x(r)?f.filter((e=>[d,t[0]].every((t=>e.linePath.includes(t))))).length>0?"multiple":"single":[d,r[0]].every((e=>m[0].includes(e)))&&f.filter((e=>[d,r[0]].every((t=>e.linePath.includes(t))))).length>0?"multiple":"single",p=x(r)?t:r,j=r.length>1?"var(--rmg-theme-colour)":f.filter((e=>e.linePath.includes(d)&&e.linePath.includes(p[0]))).map((e=>e.colors[0][2]))[0]??"var(--rmg-theme-colour)",_=Object.keys(c).length>0&&(v=d,$=r,y=h,m.slice(1).filter((e=>[v,$[0]].every((t=>e.includes(t))))).filter((e=>o(e,y))).length>0)?j:"var(--rmg-theme-colour)";var v,$,y;const k=Object.keys(c).length>0&&1===r.length&&(!(!x(t)&&!x(r))||!([d,r[0]].every((e=>m[0].includes(e)))&&0!==f.filter((e=>e.linePath.includes(d)&&e.linePath.includes(r[0]))).length)),w=Object.keys(c).length>0&&1===t.length;return n.jsxs("g",{transform:"translate(0,220)",strokeWidth:12,children:[n.jsxs(n.Fragment,{children:["var(--rmg-theme-colour)"!==_&&n.jsx("marker",{id:`slope_${_}`,viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:_})}),n.jsx("path",{stroke:_,d:`M ${g},16 H ${"l"===s?36:l.runin-36}`,markerEnd:"var(--rmg-theme-colour)"===_?"url(#slope)":`url(#slope_${_})`,transform:k?"translate(0,-22)scale(1,2)":void 0})]}),"multiple"===u&&n.jsxs(n.Fragment,{children:[n.jsx("marker",{id:`slope_${j}`,viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:j})}),n.jsx("path",{stroke:j,d:`M ${g},16 H ${"l"===s?48:l.runin-48}`,markerEnd:`url(#slope_${j})`,transform:"translate(0,-12)"})]}),n.jsx("g",{filter:"#B5B5B6"===a[2]?"url(#pujiang_outline)":void 0,transform:`translate(0,${w?-22:0})scale(1,${w?2:1})`,children:n.jsx("path",{stroke:"var(--rmg-grey)",d:`M ${g},16 H ${"l"===s?l.runin-24:24} `})})]})},W=e=>{const{prevStnIds:t,nextStnIds:r,nextBranchLineDy:s,prevBranchLineDy:l}=e,{direction:a,svgWidth:o,current_stn_idx:c,coline:d,theme:h}=i((e=>e.param)),{branches:m}=i((e=>e.helper)),g=o.runin/2,x=125,f=e=>`${e[0]},${e[1]}`,u=e=>`M${f(e.at(0))} `+e.slice(1).map((e=>`L${f(e)}`)).join(" "),p="l"===a?[[o.runin/3,x],[o.runin/6,s],[36,s]]:[[o.runin/3*2,x],[o.runin/6*5,s],[o.runin-36,s]],j="l"===a?[[o.runin/3*2,x],[o.runin/6*5,l],[o.runin-24,l]]:[[o.runin/3,x],[o.runin/6,l],[24,l]];let _="var(--rmg-theme-colour)";if(Object.keys(d).length>0){const e=b(Object.values(d),m);r.length>1&&e.filter((e=>e.linePath.includes(c)&&r.some((t=>e.linePath.includes(t)))))&&(p[0][1]-=11,p.unshift([g,114]),_=e.filter((e=>e.linePath.includes(c)&&r.some((t=>e.linePath.includes(t))))).at(0).colors.at(0)[2]),t.length>1&&e.filter((e=>e.linePath.includes(c)&&t.some((t=>e.linePath.includes(t)))))&&(j[0][1]-=11,j.unshift([g,114]))}return n.jsxs("g",{transform:"translate(0,110)",strokeWidth:12,fill:"none",filter:"#B5B5B6"===h[2]?"url(#pujiang_outline)":void 0,children:[n.jsx("marker",{id:"slope_branch",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:_})}),r.length>1&&n.jsx("path",{stroke:_,d:u(p),markerEnd:"url(#slope_branch)"}),t.length>1&&n.jsx("path",{stroke:"var(--rmg-grey)",d:u(j)})]})},L=()=>{const e=i((e=>e.param)),{localisedName:t}=e.stn_list[e.current_stn_idx],{zh:s="",en:l=""}=t;return r.useMemo((()=>n.jsxs(n.Fragment,{children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,children:s.replace("\\","")}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:50,children:l.replace("\\","")})]})),[s,l])},F=e=>{const{nextName:t,...s}=e,{zh:l="",en:i=""}=t;return n.jsx("g",{...s,children:r.useMemo((()=>n.jsxs(n.Fragment,{children:[l.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:48,dy:-50*(r.length-1-t)-30*(i.split("\\").length-1),children:e},e))),i.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:24,dy:28+-30*(r.length-1-t),children:e},e)))]})),[l,i])})},B=e=>{const t=i((e=>e.param)),r=e.stnIds.map((e=>t.stn_list[e].localisedName)),s=(e.stnIds.length>1?15:125)+-50*r.map((e=>e.zh?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length)+-30*r.map((e=>e.en?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length),[{zh:l="",en:a=""}]=r,o=70+(e.stnIds.length>1?-50*(l.split("\\").length-1)+-30*(a.split("\\").length-1):0);return n.jsxs("g",{fill:"gray",textAnchor:"l"===t.direction?"end":"start",transform:`translate(${"l"===t.direction?t.svgWidth.runin-36:36},0)`,children:[n.jsx(F,{nextName:r[0],transform:"translate(0,183)"}),e.stnIds.length>1&&n.jsx(F,{nextName:r[1],transform:`translate(0,${o})`}),n.jsxs("g",{transform:`translate(0, ${s})`,children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"上一站"}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:"l"===t.direction?-70:70,children:"Past Stop"})]})]})},P=e=>{const t=i((e=>e.param)),r=e.stnIds.map((e=>t.stn_list[e].localisedName)),s=(e.stnIds.length>1?15:125)+-50*r.map((e=>e.zh?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length)+-30*r.map((e=>e.en?.split("\\")?.length??1)).reduce(((e,t)=>e+t),-r.length),[{zh:l="",en:a=""}]=r,o=70+(e.stnIds.length>1?-50*(l.split("\\").length-1)+-30*(a.split("\\").length-1):0);return n.jsxs("g",{textAnchor:"l"===t.direction?"start":"end",transform:`translate(${"l"===t.direction?36:t.svgWidth.runin-36},0)`,children:[n.jsx(F,{nextName:t.stn_list[e.stnIds[0]].localisedName,transform:"translate(0,183)"}),e.stnIds.length>1&&n.jsx(F,{nextName:t.stn_list[e.stnIds[1]].localisedName,transform:`translate(0,${o})`}),n.jsxs("g",{transform:`translate(0, ${s})`,children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:22,children:"下一站"}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:12,dx:"l"===t.direction?70:-70,children:"Next Stop"})]})]})},E=e=>{const{stnId:t,stnState:r,color:s,bank:l,direction:a}=e,{direction:o,info_panel_type:c,stn_list:d,loop:h}=i((e=>e.param)),m=d[t],g=a??o,x=h?0:(m.parents.length>1||m.children.length>1?8+12*(m.localisedName.en?.split("\\")?.length??1):0)*("r"===g?-1:1);let f;const u={};"sh2020"===c?(f=3===m.services.length?"stn_sh_2020_direct":2===m.services.length?"stn_sh_2020_express":"stn_sh_2020",u.fill=-1===r?"gray":s||"var(--rmg-theme-colour)"):(f=3===m.services.length?"direct_sh":2===m.services.length?"express_sh":[...m.transfer.groups[0].lines||[],...m.transfer.groups[1]?.lines||[]].length>0?"int2_sh":"stn_sh",u.stroke=-1===r?"gray":s||"var(--rmg-theme-colour)");const p=l??0,j=("l"===g?6:-6)+x+30*p,_=("sh2020"===c?-20:-6)+Math.abs(p)*("sh2020"===c?25:11),v=p?0:"l"===g?-45:45;return n.jsxs(n.Fragment,{children:[n.jsx("use",{xlinkHref:`#${f}`,...u,transform:`translate(${p*("sh2020"===c?5:0)},0)rotate(${90*p*("sh2020"===c?1:-1)})`}),n.jsx("g",{transform:`translate(${j},${_})rotate(${v})`,children:n.jsx(R,{name:m.localisedName,groups:m.transfer.groups,stnState:r,direction:g,facility:m.facility,bank:p,oneLine:m.one_line,intPadding:m.int_padding})}),0===r?n.jsx(C,{}):void 0]})},R=e=>{const{name:t,groups:s,stnState:l,direction:i,facility:a,bank:o,oneLine:c,intPadding:d}=e,h=r.useRef(null),m="l"===i?1:-1,g=a?30:0,x=o?-12:0,f=r.useRef(null),[u,p]=r.useState(0);r.useEffect((()=>p(f.current?.getBBox().width??0)),[JSON.stringify(s)]);const j=d-u;return n.jsxs(n.Fragment,{children:[s.map((e=>e.lines??[])).flat().length>0&&n.jsxs(n.Fragment,{children:[n.jsx("line",{x1:(x+g)*m,x2:j*m,stroke:-1===l?"gray":"black",strokeWidth:.5}),n.jsx(V,{ref:f,groups:s,direction:i,transform:`translate(${j*m},-10.75)`})]}),a&&n.jsx("use",{xlinkHref:"#"+a,x:10*m,y:-30}),n.jsxs("g",{textAnchor:"l"===i?"start":"end",transform:`translate(${g*m},-14)`,children:[n.jsx(A,{ref:h,stnName:t,oneLine:c,directionPolarity:m,fill:-1===l?"gray":0===l?"red":"black"}),s[1]?.lines?.length&&n.jsx("g",{transform:`translate(${(j+u/2)*m},-30)`,children:n.jsx(G,{osiInfos:s[1].lines})}),s[2]?.lines?.length&&n.jsx("g",{transform:`translate(${(d+5)*m},0)`,children:n.jsx(T,{osysiInfos:s[2].lines,direction:e.direction})})]})]})},A=r.forwardRef((function(e,t){const{stnName:s,oneLine:l,directionPolarity:i,...a}=e,{zh:o="",en:c=""}=s,d=r.useRef(null),[h,m]=r.useState(0);r.useEffect((()=>{l&&d.current?m(d.current.getBBox().width+5):m(0)}),[s.zh,s.en,l]);const[g,x]=[20,8];return n.jsx("g",{ref:t,...a,children:r.useMemo((()=>n.jsxs(n.Fragment,{children:[n.jsx("g",{ref:d,children:o.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__zh rmg-outline",dy:(r.length-1-t)*-g+(l?x:(c.split("\\").length-1)*-x),children:e},t)))}),n.jsx("g",{fontSize:8,transform:`translate(${h*i},0)`,children:c.split("\\").map(((e,t,r)=>n.jsx("text",{className:"rmg-name__en rmg-outline",dy:(r.length-2-t)*-x+2,children:e},t)))})]})),[o,c,l,h,i])})})),C=()=>{const{stn_list:e}=i((e=>e.param)),t=[-1,35,50,75][new Set(Object.values(e).map((e=>e.services)).flat()).size];return n.jsx("g",{transform:`translate(0, ${t})`,children:n.jsx("text",{className:"rmg-name__zh",fill:"red",textAnchor:"middle",children:"本站"})})},V=r.forwardRef((function(e,t){const{groups:r,direction:s,...l}=e,i=[...r[0].lines||[],...r[1]?.lines||[],...r[2]?.lines?.filter((e=>Boolean(e.name[0].match(/^磁(悬)*浮/))))||[]];let a=0;return n.jsx("g",{ref:t,fontSize:14,textAnchor:"middle",...l,children:i.map(((e,t)=>{const r=Boolean(e.name[0].match(/^\w+(号)?线/)),l=Boolean(e.name[0].match(/^磁(悬)*浮/));let i;return"r"===s&&(a-=(r||l?20:14*e.name[0].length+12)+(0===t?0:5)),i=l?n.jsx("g",{transform:`translate(${a},-16)scale(0.1428571429)`,children:n.jsx(D,{info:e})},t):r?n.jsx("g",{transform:`translate(${a},0)`,children:n.jsx(J,{info:e})},t):n.jsx("g",{transform:`translate(${a},0)`,children:n.jsx(Y,{info:e})},t),"l"===s&&(a+=r||l?25:14*e.name[0].length+12+5),i}))})})),D=r.memo((function(e){return n.jsx(n.Fragment,{children:n.jsx("use",{xlinkHref:"#intbox_maglev",fill:e.info.theme?.[2],stroke:e.info.theme?.[2]})})}),((e,t)=>JSON.stringify(e.info)===JSON.stringify(t.info))),J=r.memo((function(e){return n.jsxs(n.Fragment,{children:[n.jsx("use",{xlinkHref:"#intbox_number",fill:e.info.theme?.[2]}),n.jsx("text",{x:10,className:"rmg-name__zh",fill:e.info.theme?.[3],dominantBaseline:"central",children:e.info.name[0].match(/(\d*)\w+/)?.[0]})]})}),((e,t)=>JSON.stringify(e.info)===JSON.stringify(t.info))),Y=r.memo((function(e){const t=e.info.name[0].split("\\")[0].length;return n.jsxs(n.Fragment,{children:[n.jsx("rect",{height:22,width:14*t+12,y:-11,fill:e.info.theme?.[2]}),n.jsx("text",{x:7*t+6,className:"rmg-name__zh",fill:e.info.theme?.[3],dominantBaseline:"central",children:e.info.name[0].split("\\")[0]})]})}),((e,t)=>JSON.stringify(e.info)===JSON.stringify(t.info))),G=e=>{const t=e.osiInfos.map((e=>e.name[0])).join(",");return r.useMemo((()=>n.jsxs("g",{textAnchor:"middle",fontSize:"50%",children:[n.jsx("text",{className:"rmg-name__zh",dy:-5,children:`换乘${t}`}),n.jsx("text",{className:"rmg-name__zh",dy:5,children:"仅限公共交通卡"}),n.jsx("text",{className:"rmg-name__en",dy:12.5,fontSize:"75%",children:"Only for Public Transportation Card"})]})),[t.toString()])},T=e=>{const t=e.osysiInfos.map((e=>e.name[0])).join(","),s=e.osysiInfos.map((e=>e.name[1])).join(", ");return r.useMemo((()=>n.jsxs("g",{textAnchor:"l"===e.direction?"start":"end",fontSize:"50%",children:[n.jsxs("text",{className:"rmg-name__zh",dy:3,children:["转乘",t]}),n.jsxs("text",{className:"rmg-name__en",dy:10,fontSize:"75%",children:["To ",s]})]})),[JSON.stringify(e.osysiInfos),e.direction])},U=["shanghai","sh4","#5F259F","#fff","4号线","Line 4"],X=e=>{const{xs:t,servicesPresent:s,stnStates:l}=e,{svg_height:a,direction:o,stn_list:c,current_stn_idx:h,branchSpacingPct:m,info_panel_type:g,coline:x}=i((e=>e.param)),{branches:f,depsStr:u}=i((e=>e.helper)),p=r.useMemo((()=>(console.log("computing y shares"),Object.keys(c).reduce(((e,t)=>{if(f[0].includes(t))return{...e,[t]:0};{const n=f.slice(1).filter((e=>e.includes(t)))[0];return{...e,[t]:c[n[0]].children.indexOf(n[1])?-3:3}}}),{}))),[u]),j=Object.entries(p).filter((([,e])=>e<=0)).reduce(((e,[t,n])=>({...e,[t]:n})),{}),_=Object.keys(j).reduce(((e,t)=>({...e,[t]:-j[t]*m*a/300})),{}),v=r.useMemo((()=>((e,t)=>e.map((e=>{const n=d(e.linePath,t);return{main:[{linePath:n.main,colors:e.colors}],pass:[{linePath:n.pass,colors:e.colors}]}})).reduce(((e,t)=>(e.main=[...e.main,...t.main],e.pass=[...e.pass,...t.pass],e)),{main:[],pass:[]}))(b(Object.values(x).filter((e=>e.display)),f),l)),[JSON.stringify(x),h,o,u]),$=s.reduce(((e,n)=>({...e,[n]:Object.keys(v).reduce(((e,r)=>({...e,[r]:v[r].map((e=>({path:te(e.linePath,r,t,_,o,n,s.length,c,"diagonal"),colors:e.colors}))).filter((e=>""!==e.path))})),{})})),{}),y=b(Object.values(x).filter((e=>e.display)),f).map((e=>e.linePath)).flat(),k="sh2020"===g?3:0;return n.jsx(n.Fragment,{children:n.jsxs("g",{id:"coline",transform:`translate(0,${12+k})`,children:[n.jsx(Z,{paths:$,direction:o}),n.jsx(q,{colineStns:v,branches:f,xs:t,ys:_,stnStates:l,lineWidth:12,colineGap:k}),n.jsx(K,{stnIds:Object.entries(p).filter((([,e])=>e<0)).reduce(((e,[t])=>[...e,t]),[]).filter((e=>!["linestart","lineend"].includes(e))).filter((e=>0!==c[e].services.length)).filter((e=>y.includes(e))),xs:t,ys:_,stnStates:l})]})})},Z=e=>{const{paths:t,direction:s}=e;return n.jsx(n.Fragment,{children:Object.keys(t).map(((e,l)=>n.jsx("g",{transform:`translate(0,${25*l})`,children:n.jsxs("g",{children:[t[e]?.pass.map(((t,s)=>n.jsx(r.Fragment,{children:n.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:t.path,strokeLinejoin:"round",filter:e===a.local?void 0:`url(#contrast-${e})`},s)},s))),t[e]?.main.map(((t,l)=>n.jsxs(r.Fragment,{children:[t.colors.length>1&&n.jsx("linearGradient",{id:`grad${l}`,y1:"-100%",y2:"100%",x1:"0",x2:"0",gradientUnits:"userSpaceOnUse",children:t.colors.map(((e,s)=>n.jsxs(r.Fragment,{children:[n.jsx("stop",{offset:100/t.colors.length*(s+0)+"%",stopColor:e[2]}),n.jsx("stop",{offset:100/t.colors.length*(s+1)+"%",stopColor:e[2]})]},s)))}),"l"===s&&n.jsx("marker",{id:`arrow_left_${l}_${t.colors.map((e=>e[2])).join("_")}`,refY:.5,refX:1,children:n.jsx("path",{d:"M1,0L0,1H1z",fill:t.colors.length>1?`url(#grad${l})`:t.colors[0][2]})}),"r"===s&&n.jsx("marker",{id:`arrow_right_${l}_${t.colors.map((e=>e[2])).join("_")}`,refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:t.colors.length>1?`url(#grad${l})`:t.colors[0][2]})}),n.jsx("path",{stroke:(t.colors.at(-1)??U)[2],strokeWidth:12,fill:"none",d:t.path,markerStart:"l"===s?`url(#arrow_left_${l}_${t.colors.map((e=>e[2])).join("_")})`:void 0,markerEnd:"r"===s?`url(#arrow_right_${l}_${t.colors.map((e=>e[2])).join("_")})`:void 0,strokeLinejoin:"round",filter:e===a.local?void 0:`url(#contrast-${e})`},l)]},l)))]})},`servicePath${l}`)))})},q=e=>{const{colineStns:t,branches:r,xs:s,ys:l,stnStates:a,lineWidth:o,colineGap:c}=e,{line_name:d,theme:h,info_panel_type:m}=i((e=>e.param)),g=[...t.main,...t.pass].map((e=>e.linePath.map((t=>({curStn:t,x:s[t],y:l[t],color:e.colors.at(-1)??[...h,...d]}))))).flat().reduce(((e,t)=>e.find((e=>e.curStn===t.curStn))?e:e.concat(t)),[]).filter((e=>r[0].includes(e.curStn)));return console.log(g),n.jsx("g",{id:"stations_in_mainline",children:g.map((e=>{const{curStn:t,x:r,y:s,color:l}=e,i=(-1===a[t]?0:o)+c+o,d=(-1===a[t]?0:-o)-c-o/2;return n.jsx("g",{transform:`translate(${r},${s})`,children:"sh2020"===m?n.jsx("rect",{stroke:"none",height:i,width:12,x:-6,y:d,fill:-1===a[t]?"var(--rmg-grey)":l[2]}):n.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:`translate(0,${-o})`})},t)}))})},K=e=>{const{xs:t,ys:s,stnStates:l,stnIds:a}=e,{branches:o,depsStr:c}=i((e=>e.helper)),{line_name:d,theme:h,coline:m}=i((e=>e.param)),g=r.useMemo((()=>b(Object.values(m),o)),[JSON.stringify(m),c]),x=a.reduce(((e,t)=>({...e,[t]:g.filter((e=>e.linePath.includes(t))).map((e=>e.colors)).flat().at(0)??[...h,...d]})),{});return n.jsx("g",{id:"stations_in_coline",children:a.map((e=>n.jsx("g",{transform:`translate(${t[e]},${s[e]})`,children:n.jsx(E,{stnId:e,stnState:l[e],color:x[e][2]})},e)))})},Q=()=>{const{routes:e,branches:t,depsStr:s}=i((e=>e.helper)),l=i((e=>e.param)),{svg_height:o,stn_list:c,branchSpacingPct:f,coline:u,direction:p}=i((e=>e.param)),j=h(l.stn_list,(()=>0),(()=>0)),_=m("linestart","lineend",j),v=m(_.nodes[1],_.nodes.slice(-2)[0],j),$=r.useMemo((()=>(console.log("computing x shares"),Object.keys(l.stn_list).reduce(((e,n)=>({...e,[n]:g(n,j,t)})),{}))),[t.toString(),JSON.stringify(j)]),y=[l.svgWidth.railmap*l.padding/100,l.svgWidth.railmap*(1-l.padding/100)],k=Object.keys($).reduce(((e,t)=>({...e,[t]:y[0]+$[t]/v.len*(y[1]-y[0])})),{}),w=r.useMemo((()=>(console.log("computing y shares"),Object.keys(c).reduce(((e,n)=>{if(t[0].includes(n))return{...e,[n]:0};{const r=t.slice(1).filter((e=>e.includes(n)))[0];return{...e,[n]:c[r[0]].children.indexOf(r[1])?-3:3}}}),{}))),[s]),b=Object.entries(w).filter((([,e])=>e>=0)).reduce(((e,[t,n])=>({...e,[t]:n})),{}),S=Object.keys(b).reduce(((e,t)=>({...e,[t]:-b[t]*f*o/300})),{}),M=r.useMemo((()=>x(l.current_stn_idx,e,l.direction)),[l.current_stn_idx,l.direction,e.toString()]),z=Object.values(a),N=Object.values(l.stn_list).map((e=>e.services)).flat().reduce(((e,t)=>(e[z.indexOf(t)]=!0,e)),[!1,!1,!1]).map(((e,t)=>[z[t],e])).filter((e=>e[1])).map((e=>e[0])),O=t.map((e=>d(e,M))).reduce(((e,t)=>(e.main.push(t.main),e.pass.push(t.pass),e)),{main:[],pass:[]}),I=N.reduce(((e,t)=>({...e,[t]:Object.keys(O).reduce(((e,n)=>({...e,[n]:O[n].map((e=>te(e,n,k,S,p,t,N.length,c))).filter((e=>""!==e))})),{})})),{});return n.jsxs("g",{id:"main",transform:`translate(0,${l.svg_height*(Object.keys(u).length>0?.5:.7+.1)})`,children:[n.jsx(ee,{paths:I,direction:l.direction}),n.jsx(ne,{stnIds:Object.keys(b).filter((e=>!["linestart","lineend"].includes(e))).filter((e=>0!==c[e].services.length)),xs:k,ys:S,stnStates:M}),Object.keys(u).length>0&&n.jsx(X,{xs:k,servicesPresent:N,stnStates:M}),N.length>1&&n.jsx(re,{servicesLevel:N,lineXs:y})]})},ee=e=>{const{theme:t}=i((e=>e.param)),{paths:r,direction:s}=e;return n.jsx(n.Fragment,{children:Object.keys(r).map(((l,i)=>n.jsxs("g",{transform:`translate(0,${25*i})`,filter:"#B5B5B6"===t[2]?"url(#pujiang_outline)":void 0,children:[n.jsx("g",{children:r[l]?.pass.map(((t,r)=>n.jsx("path",{stroke:"var(--rmg-grey)",strokeWidth:12,fill:"none",d:t,markerStart:"l"===e.direction?"url(#arrow_gray)":void 0,markerEnd:"r"===e.direction?"url(#arrow_gray)":void 0,strokeLinejoin:"round"},r)))}),n.jsx("g",{children:r[l]?.main.map(((e,t)=>n.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:e,markerStart:"l"===s?"url(#arrow_theme_left)":void 0,markerEnd:"r"===s?"url(#arrow_theme_right)":void 0,strokeLinejoin:"round",filter:l===a.local?void 0:`url(#contrast-${l})`},t)))})]},`servicePath${i}`)))})},te=(e,t,n,r,s,l,i,a,o="rightangle")=>{let[c,d]=[];const h={},m={local:0,express:20,direct:40}[l],g=i>1?50:0;let x=30;if(e.length>0){let t=!1,n=!1;a[e.at(-1)||0].children.some((e=>["linestart","lineend"].includes(e)))?n=!0:a[e.at(0)||0].parents.some((e=>["linestart","lineend"].includes(e)))&&(t=!0),x=t||n?x:0}const f=30;if(e.forEach((e=>{const t=n[e],s=r[e];if(!c&&0!==c)return[d,c]=[t,s],void(h.start=[t,s]);0===s?s!==c&&(h.bifurcate=[d,c]):s!==c&&(h.bifurcate=[t,s]),h.end=[t,s],[d,c]=[t,s]})),"start"in h){if("end"in h){if("bifurcate"in h){const[e,n]=h.start,r=h.bifurcate[0],[l,i]=h.end;return"main"===t?"l"===s?i>n?(console.log(h),"rightangle"===o?`M ${e-x},${n} H ${l} V ${i}`:`M ${e},${n} H ${e+f} L ${r-f},${i} H ${l}`):"rightangle"===o?`M ${e},${n} V ${i} H ${l}`:`M ${e-x},${n} H ${r+f} L ${l-f},${i} H ${l}`:i>n?"rightangle"===o?`M ${e},${n} H ${l} V ${i}`:`M ${e},${n} H ${e+f} L ${r-f},${i} H ${l+x}`:"rightangle"===o?`M ${e},${n} V ${i} H ${l+x}`:`M ${e},${n} H ${r+f} L ${l-f},${i} H ${l}`:i>n?"rightangle"===o?`M ${e-x},${n} H ${l} V ${i}`:`M ${e},${n} H ${e+f} L ${r-f},${i} H ${l+x}`:"rightangle"===o?`M ${e},${n} V ${i} H ${l+x}`:`M ${e-x},${n} H ${r+f} L ${l-f},${i} H ${l}`}{const[e,n]=h.start,r=h.end[0];return"main"===t?"l"===s?`M ${e-x-m},${n} H ${r}`:`M ${e},${n} H ${r+x+m}`:"l"===s?`M ${e-x},${n} H ${r+x+g}`:`M ${e-x-g},${n} H ${r+x}`}}{const[e,n]=h.start;return"main"===t?"l"===s?`M ${e-x-m},${n} H ${e}`:`M ${e},${n} H ${e+x+m}`:"l"===s?`M ${e},${n} L ${e+x+g},${n}`:`M ${e-x-g},${n} L ${e},${n}`}}return""},ne=e=>{const{xs:t,ys:r,stnStates:s,stnIds:l}=e;return n.jsx("g",{children:l.map((e=>n.jsx("g",{transform:`translate(${t[e]},${r[e]})`,children:n.jsx(E,{stnId:e,stnState:s[e]})},e)))})},re=e=>{const{svg_height:t,direction:s,svgWidth:l}=i((e=>e.param)),a=130-t,o=e.servicesLevel.map((e=>({local:"普通车",express:"大站车",direct:"直达车"}[e]))),c="r"===s?e.lineXs[0]-42:e.lineXs[1]+42,d=2===e.servicesLevel.length?350:500;return r.useMemo((()=>n.jsxs("g",{children:[o.map(((e,t)=>n.jsxs("g",{transform:`translate(${c},${25*t})`,children:[n.jsx("rect",{x:-27.5,height:10,width:55,fill:"white",stroke:"black",y:-5}),n.jsx("text",{className:"rmg-name__zh",fontSize:9,y:3,textAnchor:"middle",children:`${e}运行线`})]},e))),n.jsxs("g",{transform:`translate(${"r"===s?30:l.railmap-d},${a})`,children:[n.jsx("text",{className:"rmg-name__zh",children:"图例:"}),o.map(((e,t)=>n.jsxs("g",{transform:`translate(${150*t+50},0)`,children:[n.jsx("line",{x1:"0",x2:"35",y1:"-5",y2:"-5",stroke:"var(--rmg-theme-colour)",strokeWidth:"12",filter:2===t?"url(#contrast-direct)":1===t?"url(#contrast-express)":""}),n.jsx("use",{x:"17.5",y:"-5",xlinkHref:"#stn_sh",fill:"var(--rmg-theme-colour)"}),n.jsx("text",{x:"40",className:"rmg-name__zh",children:`${e}停靠站`})]},`serviceLevel${t}`)))]})]})),[t,s,l,e.servicesLevel,e.lineXs])},se=()=>{const{direction:e,svgWidth:t,coline:s}=i((e=>e.param)),l=!!Object.keys(s).length;return r.useMemo((()=>n.jsxs("g",{transform:`translate(${"l"===e?50:t.railmap-150},50)`,children:[n.jsx("text",{className:"rmg-name__zh",children:"列车前进方向"}),n.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",stroke:l?"var(--rmg-black)":void 0,strokeWidth:l?5:void 0,fill:l?"var(--rmg-white)":"var(--rmg-theme-colour)",transform:`translate(${"l"===e?-30:125},-5)rotate(${"l"===e?0:180})scale(0.15)`})]})),[e,s,t.railmap])},le=e=>{const{stnId:t,nameDirection:r,services:s,color:l}=e,a=i((e=>e.param.stn_list[t])),o=[...a.transfer.groups[0]?.lines||[],...a.transfer.groups[1]?.lines||[]];let c;c=3===a.services.length?"direct_indoor_sh":2===a.services.length?"express_indoor_sh":a.transfer.groups[1]?.lines?.length?"osi_indoor_sh":o.length>0?"int2_indoor_sh":"stn_indoor_sh";const d="left"===r||"right"===r?90:0;return n.jsxs(n.Fragment,{children:[n.jsx(ie,{name:a.localisedName,groups:a.transfer.groups,nameDirection:r,services:s}),n.jsx("use",{xlinkHref:`#${c}`,stroke:o.length>0?"var(--rmg-black)":l??"var(--rmg-theme-colour)",transform:`rotate(${d})`}),a.services.length>1&&n.jsx("text",{className:"rmg-name__zh",writingMode:"tb",fontSize:"60%",dy:"-12",children:`大站车${a.services.length>2?" 直达车":""}停靠`})]})},ie=e=>{const{name:t,groups:s,nameDirection:l,services:i}=e,a={upward:60,downward:-30,left:0,right:0}[l],o=s[2]?.lines?.length?{upward:0,downward:0,left:(s[0].lines?.length||0)+(s[1]?.lines?.length||0)!==0?85:25,right:(s[0].lines?.length||0)+(s[1]?.lines?.length||0)!==0?-85:-25}[l]:0,c=s[2]?.lines?.length?{upward:s[0]?.lines?.length&&s[1]?.lines?.length?-210:s[0]?.lines?.length||s[1]?.lines?.length?-177.5:-145,downward:(s[0]?.lines?.length&&s[1]?.lines?.length?185:s[0].lines?.length||s[1]?.lines?.length?157.5:125)+(3===i.length?40:0),left:s[0]?.lines?.length&&s[1]?.lines?.length?-67:s[0].lines?.length||s[1]?.lines?.length?-30:0,right:s[0]?.lines?.length&&s[1]?.lines?.length?-67:s[0].lines?.length||s[1]?.lines?.length?-30:0}[l]:0,d=r.useRef(null),[h,m]=r.useState(60);return r.useEffect((()=>{d?.current&&m(Math.max(60,d.current.getBBox().width))}),[t.zh,t.en]),n.jsxs("g",{transform:`translate(0,${a})`,children:["upward"===l||"downward"===l?n.jsxs(n.Fragment,{children:[n.jsx("line",{x1:-h/2,x2:h/2,y1:"upward"===l?-23:-10,y2:"upward"===l?-23:-10,stroke:"black"}),n.jsx("line",{y1:"upward"===l?-23:-10,y2:"upward"===l?-48:20,stroke:"black"})]}):n.jsxs(n.Fragment,{children:[n.jsx("line",{x1:"left"===l?-50:15,x2:"left"===l?-15:50,y1:0,y2:0,stroke:"black"}),n.jsx("line",{x1:"left"===l?-50:50,x2:"left"===l?-50:50,y1:-30,y2:30,stroke:"black"})]}),[...s[0].lines||[],...s[1]?.lines||[]].length&&n.jsx(oe,{intInfos:[s[0].lines||[],s[1]?.lines||[]],arrowDirection:l,services:i}),n.jsx(ae,{ref:d,stnName:t,nameDirection:l,fill:"black"}),s[2]?.lines?.length&&n.jsx("g",{transform:`translate(${o},${c})`,children:n.jsx(ce,{osysiInfos:s[2].lines,nameDirection:l})})]})},ae=r.forwardRef((function(e,t){const{stnName:s,nameDirection:l,...i}=e,{zh:a="",en:o=""}=s,c=a.split("\\"),d=o.split("\\").length,h={upward:0,downward:0,left:-60,right:60}[l],m={upward:-2,downward:-30-12*(d-1),left:-10*(d-1),right:-10*(d-1)}[l],g={upward:"middle",downward:"middle",left:"end",right:"start"}[l];return n.jsx("g",{ref:t,...i,textAnchor:g,transform:`translate(${h},${m})`,children:r.useMemo((()=>n.jsxs(n.Fragment,{children:[c.map(((e,t,r)=>n.jsx("text",{className:"rmg-name__zh",dy:"upward"===l?16*t:-16*(r.length-1-t),children:e},t))),n.jsx("g",{fontSize:9.6,children:o.split("\\")?.map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:12*(t+1)+("upward"===l&&c.length>1?7.5*c.length:0),children:e},t)))})]})),[a,o])})})),oe=e=>{const{intInfos:t,arrowDirection:s,services:l}=e,i=t.flatMap((e=>e.map((e=>e.theme?.[2])))).reduce(((e,t)=>e+t),""),a=t.map((e=>[e.filter((e=>e.name[0].match(/^\d+.*$/))).map((e=>e.name[0].replace(/^(\d+)(.*)$/,"$1"))).join(",").concat("号线"),e.filter((e=>!e.name[0].match(/^\d+.*$/))).map((e=>e.name[0])).join(",")].filter((e=>e&&"号线"!==e)).join(","))),o=t.map((e=>["Line ".concat(e.filter((e=>/^(L|l)ine \d+$/.test(e.name[1]))).map((e=>e.name[1].replace("Line","").replace("line","").trim())).join(",")),e.filter((e=>!/^(L|l)ine \d+$/.test(e.name[1]))).map((e=>e.name[1])).join(", ")].filter((e=>e&&"Line "!==e)).join(", "))),c=3===l.length?80:45,d={upward:-145,downward:125+(3===l.length?40:0),left:7,right:7}[s],h={upward:0,downward:0,left:20,right:-20}[s],m={upward:-74,downward:44,left:0,right:0}[s],g={upward:0,downward:180,left:90,right:-90}[s],x={upward:0,downward:0,left:85,right:-85}[s],f={upward:"middle",downward:"middle",left:"start",right:"end"}[s],u=x,p={upward:t.at(0)?.length?-177.5:-145,downward:(t.at(0)?.length?157.5:125)+(3===l.length?40:0),left:t.at(0)?.length?-30:7,right:t.at(0)?.length?-30:7}[s];return n.jsxs("g",{children:[n.jsx("path",{id:"int_indoor_arrow_sh",stroke:"var(--rmg-black)",strokeWidth:1,transform:`translate(${h},${m})rotate(${g})`,fill:1===t.flat().length?t.flat()[0].theme?.[2]:`url(#grad${i})`,d:`M -7.5,0 v -${c} h -7.5 l 15,-15 l 15,15 h -7.5 v ${c} Z`}),t.flat().length>1&&n.jsx("linearGradient",{id:`grad${i}`,y1:"0",y2:"0",x1:"upward"===s?"25%":"75%",x2:"upward"===s?"75%":"25%",children:t.flat().map(((e,s)=>n.jsxs(r.Fragment,{children:[n.jsx("stop",{offset:100/t.flat().length*s+"%",stopColor:e.theme?.[2]}),n.jsx("stop",{offset:100/t.flat().length*(s+1)+"%",stopColor:e.theme?.[2]})]},s)))}),(t.at(0)?.length??0)>0&&n.jsxs("g",{transform:`translate(${x},${d})`,textAnchor:`${f}`,children:[n.jsx("text",{className:"rmg-name__zh",dy:-7,children:`换乘${a[0]}`}),n.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:`Interchange ${o[0]}`})]}),(t.at(1)?.length??0)>0&&n.jsxs("g",{transform:`translate(${u},${p})`,textAnchor:`${f}`,children:[n.jsx("text",{className:"rmg-name__zh",dy:-7,children:`出站换乘${a[1]}`}),n.jsx("text",{className:"rmg-name__en",dy:5,fontSize:9.6,children:`Out-of-station Transfer ${o[1]}`})]})]})},ce=e=>{const t={upward:"middle",downward:"middle",left:"start",right:"end"}[e.nameDirection];return r.useMemo((()=>n.jsxs("g",{textAnchor:`${t}`,children:[n.jsx("text",{className:"rmg-name__zh",dy:-5,children:`转乘${e.osysiInfos.map((e=>e.name[0])).join(",")}`}),n.jsx("text",{className:"rmg-name__en",dy:7.5,fontSize:9.6,children:`To ${e.osysiInfos.map((e=>e.name[1])).join(", ")}`})]})),[JSON.stringify(e.osysiInfos),e.nameDirection])},de=e=>{const{loop_branches:t,edges:r,xs:o,ys:c,canvas:d}=e,[h,m,g,x]=r,{branches:f}=i((e=>e.helper)),{current_stn_idx:u,direction:p,coline:j}=i((e=>e.param)),_=d===l.RailMap?30:0,v=[`M ${h},${g} H ${Number(o[t.at(0)?.at(0)??""])-_}`,`M ${m},${g} H ${Number(o[t.at(1)?.at(-1)??""])+_}`],$=f[0].filter((e=>!["linestart","lineend"].includes(e))),y=Object.values(j).filter((e=>![e.from,e.to].every((e=>$.includes(e))))).map((e=>e.colors));return n.jsx(n.Fragment,{children:t.map(((e,r)=>n.jsxs(s.Fragment,{children:[y.filter(((e,t,n)=>t===n.findIndex((t=>t.at(0)?.at(2)===e.at(0)?.at(2))))).map((e=>n.jsx("marker",{id:`arrow_theme_${e[0][2]}`,refX:1,refY:.5,children:n.jsx("path",{d:"M0,1H2L1,0z",fill:e[0][2]})},e[0][2]))),n.jsx("path",{stroke:y.at(r)?.at(0)?.at(2)??"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:v[r],markerEnd:d===l.RailMap&&("l"===p&&0===r||"r"===p&&1===r)?y.at(r)?`url(#arrow_theme_${y[r][0][2]})`:"url(#arrow_theme)":void 0}),e.filter((e=>!["linestart","lineend"].includes(e))).map((e=>n.jsxs(s.Fragment,{children:[d===l.RailMap&&n.jsx("g",{transform:`translate(${o[e]},${c[e]})`,children:n.jsx(E,{stnId:e,stnState:u===e?0:1,bank:0,direction:p,color:y.at(r)?.at(0)?.at(2)})},e),d===l.Indoor&&n.jsx("g",{transform:`translate(${o[e]},${c[e]})`,children:n.jsx(le,{stnId:e,nameDirection:t.filter((t=>t.includes(e))).map((t=>t.indexOf(e)%2==0?"downward":"upward"))[0],services:[a.local],color:y.at(r)?.at(0)?.at(2)})},e)]},e)))]},e.at(0))))})},he=e=>{const{edges:t,loop_stns:r,xs:s,ys:a,canvas:c}=e,[d,h,m,g]=t,{info_panel_type:x,stn_list:f,coline:u}=i((e=>e.param)),{branches:p}=i((e=>e.helper)),j=Object.values(u).filter((e=>[e.from,e.to].every((e=>p.slice(1,3).filter((e=>o(e,f))).flat().includes(e))))).map((e=>e.colors)).at(0),_=c===l.RailMap&&"sh2020"===x?3:0;return n.jsxs("g",{id:"coline_main",children:[n.jsx("path",{d:`M ${d},${m} H${h}`,strokeWidth:12,stroke:j?.at(0)?.at(2)}),c===l.RailMap&&Object.keys(u).length>0&&r.top.map((e=>n.jsx("g",{transform:`translate(${s[e]},${a[e]})`,children:"sh2020"===x?n.jsxs(n.Fragment,{children:[n.jsx("rect",{stroke:"none",height:24,width:12,x:-6,y:-_-1,fill:j?.at(0)?.at(2)}),n.jsx("rect",{stroke:"none",height:_+12,width:12,x:-6,y:10,fill:"var(--rmg-theme-colour)"})]}):n.jsx("use",{xlinkHref:"#int2_sh",stroke:"var(--rmg-theme-colour)",transform:"translate(0,13)"})},e)))]})},me=e=>{const{bank_angle:r,canvas:s}=e,{branches:a}=i((e=>e.helper)),{current_stn_idx:c,svgWidth:d,svg_height:h,padding:m,branchSpacingPct:g,direction:x,info_panel_type:f,stn_list:u,loop_info:{left_and_right_factor:p,bottom_factor:j},coline:_}=i((e=>e.param)),v=a[0].filter((e=>!["linestart","lineend"].includes(e))),$=a.slice(0,3).flat().filter((e=>t=>2===(e[t]=(e[t]||0)+1))({})).filter((e=>!["linestart","lineend"].includes(e))),y=Object.values(_).filter((e=>[e.from,e.to].every((e=>a.slice(1,3).filter((e=>o(e,u))).flat().includes(e))))).map((e=>{const t=v.findIndex((t=>t===e.from)),n=v.findIndex((t=>t===e.to));return Math.abs(n-t)>v.length-2-Math.abs(n-t)?"major":"minor"})).at(0)??"minor",k=$.at(1)?((e,n,r,s)=>{let l=e.findIndex((e=>e===n[0])),i=e.findIndex((e=>e===n[1]));[l,i,n[0],n[1]]=l>i?[i,l,n[1],n[0]]:[l,i,n[0],n[1]];const a=e.slice(l,i+1),o=e.filter((e=>!a.filter((e=>!n.includes(e))).includes(e))),c=e.length-("major"===s?Math.max:Math.min)(a.length,o.length)-2*r,d="major"===s?a.length>o.length?n[0]:n[1]:a.length>o.length?n[1]:n[0];return t(e,d,c,r)})(v,$,p,y):$.at(0)?t(v,$[0],j,p):((e,t,n,r)=>{const s=e.length-2*r-n,l=e.findIndex((e=>e===t)),i=[...e,...e,...e],a=e.length+l-Math.floor(s/2)+(s%2==0?1:0),o=e.length+l+Math.floor(s/2);return{top:i.slice(a,o+1),left:i.slice(a-r,a),right:i.slice(o+1,o+1+r),bottom:i.slice(o+1+r,o+1+r+n)}})(v,c,j,p),{x_shares:w,y_shares:b}=((e,t)=>{const n=Object.fromEntries(e.map((e=>[e,-1]))),r=Object.fromEntries(e.map((e=>[e,-1]))),[s,l,i,a]=[0,1,0,1];return t.top.forEach(((e,l)=>{n[e]=0+1/(t.top.length+1)*(l+1),r[e]=s})),t.right.forEach(((e,s)=>{n[e]=a,r[e]=0+1/(t.right.length+1)*(s+1)})),t.bottom.forEach(((e,s)=>{n[e]=1-1/(t.bottom.length+1)*(s+1),r[e]=l})),t.left.forEach(((e,s)=>{n[e]=i,r[e]=1-1/(t.left.length+1)*(s+1)})),{x_shares:n,y_shares:r}})(v,k),{loop_branches:S,line_xs_branches:M,xs_branches:z}=((e,t,n,r,s,l)=>{const i=e[0].filter((e=>!["linestart","lineend"].includes(e))),a=e.slice(1,3).map((e=>e.slice(1,e.length-1))),o=a.reduce(((e,n)=>e+n.filter((e=>!["linestart","lineend",...t].includes(e))).length),0)+i.length-l-2*s,c=(n-n*r/100*2)/(1+o),d=[n*r/100+(a.at(0)??[]).length*c,n*(1-r/100)-(a.at(1)??[]).length*c],h={...Object.fromEntries((a.at(0)??[]).map(((e,t)=>[e,n*r/100+t*c]))),...Object.fromEntries((a.at(1)??[]).map(((e,t)=>[e,d[1]+(1+t)*c])))};return{loop_branches:a,line_xs_branches:d,xs_branches:h}})(a,$,d[s],m,p,k.bottom.length),N={...b,...Object.fromEntries(S.flat().map((e=>[e,0])))},O=g*h/300,I=[225+O,h-75-(s===l.RailMap?0:125)-O],H=Object.keys(N).reduce(((e,t)=>({...e,[t]:I[0]+N[t]*(I[1]-I[0])})),{}),W=[Math.max(d[s]*m/100+(r&&s===l.RailMap?100:0),M[0]),Math.min(d[s]*(1-m/100)-(r&&s===l.RailMap?100:0),M[1])],L=Object.keys(w).reduce(((e,t)=>({...e,[t]:W[0]+w[t]*(W[1]-W[0])})),{}),F=r?{l:1,r:-1}[x]:0;[...k.right,...k.left].forEach((e=>{L[e]-=(H[e]-I[0])*F})),k.bottom.forEach((e=>{L[e]-=(I[1]-I[0])*F}));const B={...z,...L},P=ge(k,B,H,F,[...W,...I],x),E=s===l.RailMap&&"sh2020"===f?3:0;Object.keys(_).length>0&&k.top.forEach((e=>{H[e]-=E+12}));const R=S.length?0:(I[1]-I[0])*F/2;return n.jsxs("g",{id:"loop",transform:`translate(${R},0)`,children:[n.jsx("path",{stroke:"var(--rmg-theme-colour)",strokeWidth:12,fill:"none",d:P,strokeLinejoin:"round"}),s===l.RailMap&&n.jsx(xe,{canvas:s,loop_stns:k,xs:B,ys:H}),n.jsxs("g",{transform:`translate(0,${Object.keys(_).length>0?-12-E:0})`,children:[n.jsx(de,{loop_branches:S,edges:[...W,...I],xs:B,ys:H,canvas:s}),Object.keys(_).length>0&&n.jsx(he,{edges:[...W,...I],loop_stns:k,xs:B,ys:H,canvas:s})]}),s===l.Indoor&&n.jsx(xe,{canvas:s,loop_stns:k,xs:B,ys:H})]})},ge=(e,t,n,r,s,l)=>{const[i,a,o,c]=s,d=(e,t,n,s,l)=>({right:[n+(s-o)*r,t],bottom:[e-(c-t)*r,s],left:[n-(c-s)*r,t],top:[e+(t-o)*r,s]}[l]),h=[];e.top.forEach((e=>{h.push([t[e],n[e]])})),["right","bottom","left"].forEach((s=>{if(e[s].length>0)h.push(d(h.at(-1)[0],h.at(-1)[1],t[e[s][0]],n[e[s][0]],s)),e[s].forEach((e=>{h.push([t[e],n[e]])}));else{const e={right:[a,h.at(-1)[1]],bottom:[h.at(-1)[0]+(c-h.at(-1)[1])*-r,h.at(-1)[1]+(c-h.at(-1)[1])],left:[i+(0===r?0:(c-o)*("l"===l?-1:1)),h.at(-1)[1]]};h.push(e[s])}})),h.push(d(h.at(-1)[0],h.at(-1)[1],t[e.top[0]],n[e.top[0]],"top"));const m=h.slice(1).map((([e,t])=>`L${e},${t} `)).join(" ");return`M${h[0][0]},${h[0][1]} ${m} Z`},xe=e=>{const{canvas:t,loop_stns:r,xs:s,ys:o}=e,{current_stn_idx:c}=i((e=>e.param)),d={top:0,bottom:0,left:-1,right:1},h={left:"r",right:"l",top:void 0,bottom:void 0},m=(e,t)=>({top:t%2==0?"upward":"downward",bottom:t%2==0?"upward":"downward",left:"left",right:"right"}[e]);return n.jsxs("g",{id:"loop_stations",children:[t===l.RailMap&&Object.entries(r).map((([e,t])=>t.map((t=>n.jsx("g",{transform:`translate(${s[t]},${o[t]})`,children:n.jsx(E,{stnId:t,stnState:c===t?0:1,bank:d[e],direction:h[e]})},t))))),t===l.Indoor&&Object.entries(r).map((([e,t])=>t.map(((t,r)=>n.jsx("g",{transform:`translate(${s[t]},${o[t]})`,children:n.jsx(le,{stnId:t,nameDirection:m(e,r),services:[a.local]})},t)))))]})},fe=l.RailMap;function ue(){const{canvasScale:e}=i((e=>e.app)),{svgWidth:t,svg_height:r,theme:s,loop:a,loop_info:{bank:o}}=i((e=>e.param)),d=t[fe];return n.jsxs(c,{type:fe,svgWidth:d,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(pe,{}),a?n.jsx(me,{bank_angle:o,canvas:l.RailMap}):n.jsx(Q,{}),n.jsx(se,{})]})}const pe=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("circle",{id:"stn_sh",fill:"var(--rmg-white)",strokeWidth:2,r:5}),n.jsx("path",{id:"int2_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"express_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"direct_sh",fill:"var(--rmg-white)",strokeWidth:2,d:"M -5,0 a 5,5 0 1 1 10,0 V50 a 5,5 0 1 1 -10,0Z"}),n.jsx("rect",{id:"stn_sh_2020",stroke:"none",height:24,width:12,x:-6,y:-18}),n.jsx("rect",{id:"stn_sh_2020_express",stroke:"none",height:49,width:12,x:-6,y:-18}),n.jsx("rect",{id:"stn_sh_2020_direct",stroke:"none",height:74,width:12,x:-6,y:-18}),n.jsx("rect",{id:"intbox_number",height:22,width:20,y:-11}),n.jsxs("g",{id:"intbox_maglev",transform:"translate(-25,0)",children:[n.jsx("rect",{id:"maglev_5",height:144,width:130,y:"40",x:"30",strokeWidth:10}),n.jsx("path",{id:"maglev_3",fill:"var(--rmg-white)",d:"m90,55a40,5 0 0 0 -40,3a5,5 0 0 0 -5,5a5,60 0 0 0 -3,60a5,5 0 0 0 5,5l96,0a5,5 0 0 0 5,-5a5,60 0 0 0 -3,-60a5,5 0 0 0 -5,-5a40,5 0 0 0 -40,-3l-5,-10l-5,10"}),n.jsx("path",{id:"maglev_4",fill:"var(--rmg-white)",d:"m90,140l-40,0a10,5 0 0 1 -10,-5l0,25a10,15 0 0 0 10,15l15,0l0,-10l-15,0l0,-15l90,0l0,15l-15,0l0,10l15,0a10,15 0 0 0 10,-15l0,-25a10,5 0 0 1 -10,5l-50,0"}),n.jsx("rect",{id:"maglev_1",height:"25",width:"40",y:"80",x:"50"}),n.jsx("rect",{id:"maglev_2",height:"25",width:"40",y:"80",x:"100"})]}),n.jsxs("g",{id:"airport",transform:"scale(0.5)",children:[n.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),n.jsx("path",{id:"airport",d:"M28.9769,6.60134c1.711.013,3.111,2.53205,3.111,4.241v10.337s17.106,15.435,17.358,15.666a1.145,1.145,0,0,1,.488,1.152v2.833c0,.651-.451.61-.695.467-.334-.119-17.151-8.863-17.151-8.863-.004,1.458-.797,9.006-1.326,13.304,0,0,4.61,2.457,4.699,2.521.334.268.352.359.352.852v2.001c0,.477-.352.428-.51.324-.183-.062-5.693-1.921-5.693-1.921a2.56018,2.56018,0,0,0-.633-.127,2.31654,2.31654,0,0,0-.666.127s-5.477,1.859-5.672,1.921c-.185.104-.523.153-.523-.324v-2.001c0-.493.029-.584.367-.852.086-.064,4.678-2.521,4.678-2.521-.524-4.298-1.307-11.846-1.325-13.304,0,0-16.822,8.744-17.148,8.863-.217.143-.69.184-.69-.467v-2.833a1.16206,1.16206,0,0,1,.473-1.152c.276-.231,17.365-15.666,17.365-15.666v-10.337c0-1.709,1.403-4.228,3.14105-4.241",transform:"translate(-28.9697,0.14347)",fill:"var(--rmg-white)"})]}),n.jsxs("g",{id:"disney",transform:"scale(0.5)",children:[n.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)"}),n.jsx("path",{fill:"var(--rmg-white)",d:"M45.6152,7.85015a9.80248,9.80248,0,0,0-9.79907,9.801,9.70059,9.70059,0,0,0,.342,2.582c.002.026.002.055.002.093a.31815.31815,0,0,1-.31494.318.67741.67741,0,0,1-.12806-.02,15.71521,15.71521,0,0,0-13.498,0,.61.61,0,0,1-.122.02.31841.31841,0,0,1-.322-.318v-.067a9.62553,9.62553,0,0,0,.35608-2.608,9.803,9.803,0,1,0-9.797,9.8,10.10364,10.10364,0,0,0,2.308-.271h.05493a.31113.31113,0,0,1,.31409.318.32433.32433,0,0,1-.019.12,15.72588,15.72588,0,1,0,29.703,7.216,15.83676,15.83676,0,0,0-1.746-7.23.18417.18417,0,0,1-.0271-.106.31612.31612,0,0,1,.32007-.318h.057a10.15953,10.15953,0,0,0,2.316.271,9.80051,9.80051,0,0,0,0-19.601",transform:"translate(-28.9697 0.13398)"})]}),n.jsxs("g",{id:"railway",children:[n.jsx("circle",{cx:"0",cy:"29.33899",r:"29.33899",fill:"var(--rmg-grey)",transform:"translate(0,-2)scale(0.5)"}),n.jsx("path",{fill:"var(--rmg-white)",d:"M169,273.5c0-19,14.7-34.8,33.7-36.3c18.9-1.5,38.1-2.2,57.4-2.2c19.3,0,38.4,0.8,57.3,2.2 c19,1.5,33.7,17.3,33.7,36.3v47.3l-51.3,14.7c-11.2,3.2-18.9,13.4-18.9,25v147.8c0,17.4,12.2,32.3,29.3,35.7l110.6,22.1 c4.9,1,8.4,5.2,8.4,10.2V599H91v-22.7c0-5,3.5-9.2,8.4-10.2L209.9,544c17-3.4,29.3-18.3,29.3-35.7V360.5c0-11.6-7.7-21.8-18.9-25 L169,320.8V273.5z M309.4,31.7c0.2-1.2,0.3-2.4,0.3-3.6c0-14-11.1-25.4-24.9-26C276.6,1.4,268.3,1,260,1c-8.3,0-16.6,0.4-24.7,1.1 c-13.9,0.6-24.9,12-24.9,26c0,1.2,0.1,2.5,0.3,3.6C90.6,54.8,0,160.3,0,287c0,97.2,53.4,182,132.4,226.6l36.8-48.1 C104.3,432.4,59.8,364.9,59.8,287c0-110.6,89.6-200.2,200.2-200.2S460.2,176.4,460.2,287c0,77.9-44.5,145.4-109.4,178.5 c15,19.6,25.6,33.5,36.8,48.1C466.6,469,520,384.2,520,287C520,160.3,429.4,54.8,309.4,31.7z",transform:"translate(-10,0)scale(0.04)"})]}),n.jsx("marker",{id:"arrow_gray",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-grey)"})}),n.jsx("marker",{id:"arrow_theme_left",refX:1,refY:.5,children:n.jsx("path",{d:"M1,0L0,1H1z",fill:"var(--rmg-theme-colour)"})}),n.jsx("marker",{id:"arrow_theme_right",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})}),n.jsx("marker",{id:"arrow_theme",refX:1,refY:.5,children:n.jsx("path",{d:"M0,1H2L1,0z",fill:"var(--rmg-theme-colour)"})}),n.jsx("filter",{id:"contrast-direct",filterUnits:"userSpaceOnUse",children:n.jsxs("feComponentTransfer",{children:[n.jsx("feFuncR",{type:"linear",slope:.5,intercept:.25}),n.jsx("feFuncG",{type:"linear",slope:.5,intercept:.25}),n.jsx("feFuncB",{type:"linear",slope:.5,intercept:.25})]})}),n.jsx("filter",{id:"contrast-express",filterUnits:"userSpaceOnUse",children:n.jsxs("feComponentTransfer",{children:[n.jsx("feFuncR",{type:"linear",slope:.75,intercept:.125}),n.jsx("feFuncG",{type:"linear",slope:.75,intercept:.125}),n.jsx("feFuncB",{type:"linear",slope:.75,intercept:.125})]})}),n.jsx(S,{})]})})),je=l.Indoor;function _e(){const{canvasScale:e}=i((e=>e.app)),{svgWidth:t,svg_height:r,theme:s,loop:a}=i((e=>e.param)),o=t[je];return n.jsxs(c,{type:je,svgWidth:o,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(ve,{}),a?n.jsx(me,{bank_angle:!1,canvas:l.Indoor}):n.jsx(ke,{}),n.jsx(Se,{})]})}const ve=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("circle",{id:"stn_indoor_sh",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),n.jsx("path",{id:"int2_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V10 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"express_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V25 a 5,5 0 1 1 -10,0Z"}),n.jsx("path",{id:"direct_indoor_sh",fill:"var(--rmg-white)",transform:"translate(0, -10)scale(2)",strokeWidth:4,d:"M -5,0 a 5,5 0 1 1 10,0 V40 a 5,5 0 1 1 -10,0Z"}),n.jsxs("g",{id:"osi_indoor_sh",children:[n.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-black)",strokeWidth:22}),n.jsx("line",{x1:"0",x2:"0",y1:"-12",y2:"12",stroke:"var(--rmg-white)",strokeWidth:10}),n.jsx("circle",{cy:"-12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"}),n.jsx("circle",{cy:"12",fill:"var(--rmg-white)",strokeWidth:5,r:8,transform:"scale(1.5)"})]})]})})),$e=(e,t)=>{let n=0;return 2===e[t].parents.length&&(n+=1),2===e[e[t].parents[0]].children.length&&(n+=1),n},ye=(e,t)=>{let n=0;return 2===e[t].children.length&&(n+=1),2===e[e[t].children[0]].parents.length&&(n+=1),n},ke=()=>{const{routes:e,branches:t,depsStr:s}=i((e=>e.helper)),l=i((e=>e.param)),o=h(l.stn_list,$e,ye),c=m("linestart","lineend",o),d=m(c.nodes[1],c.nodes.slice(-2)[0],o),u=r.useMemo((()=>(console.log("computing x shares"),Object.keys(l.stn_list).reduce(((e,n)=>({...e,[n]:g(n,o,t)})),{}))),[t.toString(),JSON.stringify(o)]),p=[l.svgWidth.indoor*l.padding/100,l.svgWidth.indoor*(1-l.padding/100)],j=Object.keys(u).reduce(((e,t)=>({...e,[t]:p[0]+u[t]/d.len*(p[1]-p[0])})),{}),_=r.useMemo((()=>f.getYShares(l.stn_list)),[s]),v=Object.keys(_).reduce(((e,t)=>({...e,[t]:_[t]*l.branchSpacingPct*l.svg_height/200})),{}),$=r.useMemo((()=>x(l.current_stn_idx,e,l.direction)),[l.current_stn_idx,l.direction,e.toString()]),y=Object.values(a),k=Object.values(l.stn_list).map((e=>e.services)).flat().reduce(((e,t)=>(e[y.indexOf(t)]=!0,e)),[!1,!1,!1]).map(((e,t)=>[y[t],e])).filter((e=>e[1])).map((e=>e[0])),w=f.drawLine(t,$,l.stn_list,p,j,v,l.branchSpacingPct*l.svg_height/200,c,0);return n.jsxs("g",{id:"main",transform:`translate(0,${l.svg_height/2})`,children:[n.jsx(we,{paths:w,services:k}),n.jsx(be,{xs:j,ys:v,services:k})]})},we=e=>n.jsx("g",{fill:"none",strokeWidth:12,stroke:"var(--rmg-theme-colour)",children:e.services.map(((t,r)=>n.jsxs("g",{transform:`translate(0, ${30*r})`,children:[e.paths.main.map(((e,t)=>n.jsx("path",{d:e},t))),e.paths.pass.map(((e,t)=>n.jsx("path",{d:e},t)))]},`indoor_line_${r}`)))}),be=e=>{const{branches:t}=i((e=>e.helper)),{stn_list:r,namePosMTR:{isFlip:s}}=i((e=>e.param)),{xs:l,ys:a,services:o}=e,c=s??1?"upward":"downward",d="upward"===c?"downward":"upward";return n.jsx("g",{children:Object.keys(r).filter((e=>!["linestart","lineend"].includes(e))).filter((e=>0!==r[e].services.length)).map((e=>n.jsx("g",{transform:`translate(${l[e]},${a[e]})`,children:n.jsx(le,{stnId:e,nameDirection:o.length>1?"downward":t.filter((t=>t.includes(e))).map((t=>t.indexOf(e)%2==0?c:d))[0],services:o})},e)))})},Se=r.memo((()=>{const{svg_height:e,svgWidth:{indoor:t},line_name:r,stn_list:s}=i((e=>e.param)),l=Math.max(...Object.values(s).map((e=>e.transfer.groups.at(1)?.lines?.length??0))),a=l>0?210:110;return n.jsxs(n.Fragment,{children:[n.jsx("g",{transform:`translate(${t/2},50)`,children:n.jsxs("text",{textAnchor:"middle",fontSize:"30",className:"rmg-name__zh",children:["轨道交通",r[0],"运营线路示意图"]})}),n.jsxs("g",{transform:`translate(${t/2},${e-270})`,children:[n.jsx("text",{textAnchor:"middle",fontSize:"18",className:"rmg-name__zh",dx:"-30",dy:"230",children:"友情提示:请留意您需要换乘线路的首末班时间,以免耽误您的出行,末班车进站前三分钟停售该末班车车票。"}),n.jsx("text",{textAnchor:"middle",fontSize:"12",className:"rmg-name__en",dx:"10",dy:"250",children:"Please pay attention to the interchange schedule if you want to transfer to other lines. Stop selling tickets 3 minutes before the last train services."}),n.jsxs("g",{transform:"translate(-700,215)",children:[n.jsx("rect",{x:"-5",y:"-25",width:a,height:"70",fill:"none",stroke:"black",rx:"5"}),n.jsx("line",{x1:"28",x2:"28",y1:"-20",y2:"40",stroke:"black"}),n.jsx("text",{className:"rmg-name__zh",dx:"3",fontSize:"18",children:"图"}),n.jsx("text",{className:"rmg-name__zh",dx:"3",dy:"18",fontSize:"18",children:"例"}),n.jsx("text",{className:"rmg-name__en",dy:"35",fontSize:"8",children:"legend"}),n.jsx("use",{transform:"translate(50,10)",xlinkHref:"#int2_indoor_sh",stroke:"var(--rmg-black)"}),n.jsx("text",{className:"rmg-name__zh",dx:"70",dy:"5",fontSize:"10",children:"换乘站"}),n.jsx("text",{className:"rmg-name__en",dx:"70",dy:"15",fontSize:"6",children:"Interchange"}),n.jsx("text",{className:"rmg-name__en",dx:"70",dy:"25",fontSize:"6",children:"Station"}),l>0&&n.jsxs(n.Fragment,{children:[n.jsx("use",{transform:"translate(120,10)scale(0.75)",xlinkHref:"#osi_indoor_sh",stroke:"var(--rmg-black)"}),n.jsx("text",{className:"rmg-name__zh",dx:"135",dy:"5",fontSize:"10",children:"出站换乘车站"}),n.jsx("text",{className:"rmg-name__en",dx:"135",dy:"15",fontSize:"6",children:"Out-of-station Transfer"}),n.jsx("text",{className:"rmg-name__en",dx:"135",dy:"25",fontSize:"6",children:"Station"})]})]})]})]})}));Se.displayName="InfoElements",e("default",{destination:n.jsx(p,{}),runin:n.jsx(z,{}),railmap:n.jsx(ue,{}),indoor:n.jsx(_e,{})})}}})); diff --git a/assets/index-legacy-BAb-72zM.js b/assets/index-legacy-CMOYAw6J.js similarity index 95% rename from assets/index-legacy-BAb-72zM.js rename to assets/index-legacy-CMOYAw6J.js index 3d333060..7b84a9ce 100644 --- a/assets/index-legacy-BAb-72zM.js +++ b/assets/index-legacy-CMOYAw6J.js @@ -1 +1 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-CCR6yT8f.js","./svg-wrapper-legacy-BDwOt7GE.js","./share-legacy-CN2pvFRh.js","./mtr-legacy-Kr1ZTA32.js"],(function(e,t){"use strict";var s,r,n,a,i,l,c,h,o,g,d,m,f,x,p,u,j;return{setters:[e=>{s=e.j},e=>{r=e.a},e=>{n=e.aR,a=e.u,i=e.S,l=e.D,c=e.aX,h=e.aY},e=>{o=e.S},e=>{g=e.a,d=e.c,m=e.g,f=e.b},e=>{x=e.g,p=e.S,u=e.r,j=e.l}],execute:function(){const t=r.memo((function(){return s.jsx("rect",{fill:"var(--rmg-theme-colour)",height:20,style:{width:"var(--rmg-svg-width)",transform:"translateY(calc(var(--rmg-svg-height) - 20px))"}})})),v=["Vegur-Regular"],y=r.memo((function(e){const{num:t}=e;return s.jsxs(s.Fragment,{children:[s.jsx("circle",{cx:0,cy:0,r:60,fill:"var(--rmg-theme-colour)"}),s.jsx("text",{fontFamily:v.join(", "),dominantBaseline:"central",dy:0,textAnchor:"middle",fontSize:100,fill:"#fff",children:t})]})}),((e,t)=>e.num===t.num)),S=n.Destination;function w(){const{canvasScale:e}=a((e=>e.app)),{svgWidth:r,svg_height:n,theme:i}=a((e=>e.param)),l=r[S];return s.jsxs(o,{type:S,svgWidth:l,svgHeight:n,canvasScale:e,theme:i,children:[s.jsx(N,{}),s.jsx(t,{}),s.jsx(_,{})]})}const N=r.memo((function(){return s.jsx("defs",{children:s.jsx("path",{id:"arrow",d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"var(--rmg-black,#000)"})})})),_=()=>{const e=a((e=>e.helper.routes)),t=a((e=>e.param.svgWidth)),l=a((e=>e.param.direction)),c=a((e=>e.param.customiseMTRDest)),h=a((e=>e.param.platform_num)),o=a((e=>e.param.line_name)),g=a((e=>e.param.current_stn_idx)),d=a((e=>e.param.stn_list)),m=[...new Set(e.filter((e=>e.includes(g))).map((e=>e.filter((e=>!["linestart","lineend"].includes(e))).slice(l===i.left?0:-1)[0])).filter((e=>e!==g)))],f=0===m.length,x=!1!==c.terminal?c.terminal:[m.map((e=>d[e].localisedName.zh)).join("/"),m.map((e=>d[e].localisedName.en)).join("/").replace("\\"," ")],p=r.useRef(null),[u,j]=r.useState({width:0});r.useEffect((()=>{p.current&&j(p.current.getBBox())}),[x.toString(),c.isLegacy]);const v=246+u.width+30+60,S=(t[n.Destination]-(l===i.left?1:-1)*v)/2,w=S+246*(l===i.left?1:-1),N=t.destination/2,_=w+90*(l===i.left?1:-1);return s.jsxs("g",{style:{transform:"translateY(calc(var(--rmg-svg-height) / 2 - 5px))"},children:[!f&&s.jsx("use",{xlinkHref:"#arrow",transform:`translate(${S},0)scale(0.8)rotate(${l===i.left?0:180})`,"data-testid":"mtr-arrow"}),s.jsx("g",{transform:`translate(${f?N:w},0)`,"data-testid":"mtr-platform",children:s.jsx(y,{num:h})}),!f&&s.jsxs("g",{ref:p,textAnchor:l===i.left?"start":"end",transform:`translate(${_},-25)`,fill:"var(--rmg-black)","data-testid":"mtr-destination",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:72,letterSpacing:1.5,children:(c.isLegacy?o[0]:"")+"往"+x[0]}),s.jsx("text",{className:"rmg-name__en",fontSize:42,dy:66,children:(c.isLegacy?o[1]+" ":"")+"to "+x[1]})]})]})},k=r.memo((function(e){const{interchangeInfo:{theme:t,name:r,facility:n},isPassed:a,position:i,repel:h,repelOffset:o}=e,g=r[0].split("\\"),d=r[1].split("\\"),m=10*(g.length-1)+7*(d.length-1),f=(h===l.left?-1:h===l.right?1:0)*(o??3),x=i===c.LEFT||h===l.left?"end":i===c.RIGHT||h===l.right||n?"start":"middle",p={[c.LEFT]:{path:{rotate:90},use:{x:-32,y:-8},g:{x:(n?-42:-24)+f,y:6-(20+m-1)/2}},[c.RIGHT]:{path:{rotate:-90},use:{x:32,y:-8},g:{x:(n?42:24)+f,y:6-(20+m-1)/2}},[c.UP]:{path:{rotate:180},use:{x:0,y:-41},g:{x:(n?h===l.left?-14:h===l.right?14:10:0)+f,y:-36-m}},[c.DOWN]:{path:{rotate:0},use:{x:0,y:26},g:{x:(n?h===l.left?-14:h===l.right?14:10:0)+f,y:31}}}[i];return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M0,0v17",strokeLinecap:"round",stroke:a?"var(--rmg-grey)":t?.[2],strokeWidth:8,transform:`rotate(${p.path.rotate})`}),n&&s.jsx("use",{xlinkHref:"#"+n,fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:`translate(${p.use.x},${p.use.y})scale(0.45)`}),s.jsxs("g",{textAnchor:x,transform:`translate(${p.g.x},${p.g.y})`,fill:a?"var(--rmg-grey)":"var(--rmg-black)",children:[g.map(((e,t)=>s.jsx("text",{dy:10*t,className:"rmg-name__zh",fontSize:10,children:e},t))),d.map(((e,t)=>s.jsx("text",{dy:10*g.length-1+6*t,className:"rmg-name__en",fontSize:6,children:e},g.length+t)))]})]})}),((e,t)=>JSON.stringify(e.interchangeInfo)===JSON.stringify(t.interchangeInfo)&&e.isPassed===t.isPassed&&e.position===t.position&&e.repel===t.repel));function M(e){const{length:t,isPassed:r,isReversed:n}=e;return s.jsx("path",{d:`M-8,0 v${t} a8,8 0 0,0 16,0 v-${t} a8,8 0 0,0 -16,0Z`,className:"rmg-stn__mtr",stroke:r?"var(--rmg-grey)":"var(--rmg-black)",transform:`scale(1,${n?-1:1})`})}function O(e){const{interchangeInfoList:t,direction:r,isPassed:n,isReversed:a,repel:i}=e,h=t.length<=1?0:18*t.length;return s.jsxs("g",{children:[1===t.length&&s.jsx(k,{interchangeInfo:t[0],isPassed:n,position:a?c.UP:c.DOWN,repel:i}),t.length>1&&t.map(((e,t)=>s.jsx("g",{transform:`translate(0,${a?-18*(t+1):18*(t+1)})`,children:s.jsx(k,{interchangeInfo:e,isPassed:n,position:r===l.right?c.RIGHT:c.LEFT})},t))),s.jsx(M,{length:h,isPassed:n,isReversed:a})]})}function P(e){const{interchangeGroup:{name:t,lines:r},direction:n,isPassed:a,isReversed:i,isTerminal:h}=e,o=t?.[1]?.split("\\")?.length??1,g=18*((r?.length||0)-1),d={x:h?0:1===r?.length?n===l.left?-13:13:n===l.left?13:-13,y:h?i?19:-28:(i?-9:9)*((r?.length||0)-1)-4-5*(o-1)};return s.jsxs("g",{children:[r?.map(((e,t,r)=>s.jsx("g",{transform:`translate(0,${i?-18*t:18*t})`,children:s.jsx(k,{interchangeInfo:e,isPassed:a,position:1===r.length?i?c.UP:c.DOWN:n===l.right?c.RIGHT:c.LEFT,repel:h?n:void 0,repelOffset:h&&1===r.length?-4:0})},t))),s.jsx(M,{length:g,isPassed:a,isReversed:i}),s.jsxs("g",{textAnchor:0===d.x?"middle":d.x>0?"start":"end",fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:`translate(${d.x},${d.y})`,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:14,children:t?.[0]}),t?.[1]?.split("\\")?.map(((e,t)=>s.jsx("text",{className:"rmg-name__en",fontSize:8.5,dy:13+10*t,children:e},t)))]})]})}const b=["MyriadPro-Semibold","Vegur-Bold","GenYoMinTW-SB"],z=r.memo((function(e){const{stnName:t,onUpdate:n,align:a}=e,{zh:i="",en:c=""}=t,h=r.useRef(null),o=()=>{h.current&&n&&n(h.current.getBBox())};return r.useEffect((()=>{const e=new AbortController;return o(),document.fonts.load("12px "+b.join(", "),i+c).then().finally((()=>{setTimeout((()=>{e.signal.aborted||o()}),100)})),()=>{e.abort()}}),[t.toString(),a]),s.jsxs("g",{ref:h,textAnchor:(e=>{switch(e){case l.left:return"start";case l.right:return"end";default:return"middle"}})(a),children:[s.jsx("text",{className:"rmg-name__zh",fontSize:18,transform:"scale(1,0.97)",children:i}),c.split("\\").map(((e,t)=>{return s.jsx("text",{className:"rmg-name__en",fontSize:10,dy:(r=t,16+10*r),children:e},t);var r}))]})}),((e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName)&&e.align===t.align));function R(e){const{stationName:t,stationState:n,lower:a,align:i,facility:c,...o}=e,[g,d]=r.useState({x:0,width:0}),m=t.en?.split("\\")?.length??1,f={g:{x:i?i===l.right?-3:3:0,y:(a?24.8125:-35.21875-11*(m-1))+(i?a?10:-10:0)},rect:{x:g.x-3+(c?i?i===l.right?-35.03125:0:-16.515625:0),y:-11.8125,width:g.width+6+(c?35.03125:0),height:34.03125+11*(m-1)},use:{x:i?i===l.right?-17.015625-g.width-3:15.015625:-(g.width+3)/2,y:5.5*(m-1)-11.8125},StationName:{x:c?i?i===l.right?0:35.03125:18.515625:0,y:0}};return s.jsx("g",{...o,children:s.jsxs("g",{fill:(e=>{switch(e){case h.PASSED:return"var(--rmg-grey)";case h.CURRENT:return"#fff";case h.FUTURE:return"var(--rmg-black)"}})(n),transform:`translate(${f.g.x},${f.g.y})`,children:[n===h.CURRENT&&s.jsx("rect",{x:f.rect.x,y:f.rect.y,width:f.rect.width,height:f.rect.height,fill:"var(--rmg-black)"}),c&&s.jsx("use",{xlinkHref:`#${c}`,fill:n===h.PASSED?"var(--rmg-grey)":"var(--rmg-black)",x:f.use.x,y:f.use.y}),s.jsx("g",{transform:`translate(${f.StationName.x},${f.StationName.y})`,children:s.jsx(z,{stnName:t,onUpdate:d,align:i})})]})})}function $(e){const{stationId:t,stationState:r,isReversed:n}=e,{localisedName:c,parents:o,children:g,transfer:{groups:d,tick_direc:m,paid_area:f},facility:x}=a((e=>e.param.stn_list[t])),p=d[0].lines?.length?o.includes("linestart")?l.left:g.includes("lineend")?l.right:void 0:void 0,u=!!d[1]?.lines?.length,j=u&&!p,v={scaleX:p===l.left?-1:1,scaleY:n?-1:1},y={x:p?p===l.left?-41:41:0,y:p?0:n?-26:26};return s.jsxs("g",{"data-testid":"station-icon-wrapper",children:[u&&s.jsx("path",{d:p&&d[0].lines?.length?"M0,0H41":"M0,0V26",strokeWidth:2.69,strokeDasharray:f?0:2.5,stroke:r===h.PASSED?"var(--rmg-grey)":"var(--rmg-black)",transform:`scale(${v.scaleX},${v.scaleY})`}),s.jsx(O,{interchangeInfoList:d[0].lines??[],direction:m===i.right?l.right:l.left,isPassed:r===h.PASSED,isReversed:j?!n:n,repel:j?m===i.right?l.right:l.left:void 0}),u&&s.jsx("g",{transform:`translate(${y.x},${y.y})`,children:s.jsx(P,{interchangeGroup:d[1],direction:p||(m===i.right?l.right:l.left),isPassed:r===h.PASSED,isReversed:p?!n:n,isTerminal:Boolean(p)})}),s.jsx(R,{stationName:c,stationState:r,facility:x,lower:n,align:d[0].lines?.length&&j?m===i.left?l.left:l.right:void 0})]})}const L=(e,t,{isStagger:s,isFlip:r})=>{if(!s)return r;let n;if(t[0].includes(e))n=t[0].indexOf(e)%2;else{const s=t.filter((t=>t.includes(e)))[0];n=(t[0].indexOf(s[0])+s.indexOf(e)+1)%2}return 0===n?r:!r},T=()=>{const{branches:e,routes:t,depsStr:i}=a((e=>e.helper)),{svgWidth:l,svg_height:c,y_pc:h,padding:o,branchSpacingPct:v,direction:y,namePosMTR:S,current_stn_idx:w,stn_list:N}=a((e=>e.param)),_=g(N,j,u),k=r.useMemo((()=>d("linestart","lineend",_)),[JSON.stringify(_)]),M=r.useMemo((()=>d(k.nodes[1],k.nodes.slice(-2)[0],_)),[JSON.stringify(_)]),O=r.useMemo((()=>(console.log("computing x shares"),Object.keys(N).reduce(((t,s)=>({...t,[s]:m(s,_,e)})),{}))),[e.toString(),JSON.stringify(_)]),P=[l[n.RailMap]*o/100,l[n.RailMap]*(1-o/100)],b=Object.keys(O).reduce(((e,t)=>({...e,[t]:P[0]+O[t]/M.len*(P[1]-P[0])})),{}),z=r.useMemo((()=>Object.keys(N).reduce(((t,s)=>({...t,[s]:x(s,e,N)*v*c/200})),{})),[i,v,c]),R=r.useMemo((()=>f(w,t,y)),[w,y,t.toString()]),$=Object.keys(N).reduce(((t,s)=>({...t,[s]:L(s,e,S)})),{}),T=p.drawLine(e,R,N,P,b,z,v*c/200,k);return s.jsxs("g",{id:"main",style:{"--y-percentage":h,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[s.jsx(F,{paths:T}),s.jsx(D,{xs:b,ys:z,stnStates:R,namePoss:$})]})},F=r.memo((function(e){return s.jsxs("g",{fill:"none",strokeWidth:9.68,children:[s.jsxs("g",{stroke:"var(--rmg-grey)",children:[e.paths.pass.map(((e,t)=>s.jsx("path",{d:e},t))),e.paths.sidingPass.map(((e,t)=>s.jsx("path",{d:e,strokeDasharray:4===e.match(/a/g)?.length?"10 4":void 0},t)))]}),s.jsxs("g",{stroke:"var(--rmg-theme-colour)",children:[e.paths.main.map(((e,t)=>s.jsx("path",{d:e},t))),e.paths.sidingMain.map(((e,t)=>s.jsx("path",{d:e,strokeDasharray:4===e.match(/a/g)?.length?"10 4":void 0},t)))]})]})}),((e,t)=>JSON.stringify(e.paths)===JSON.stringify(t.paths))),D=e=>{const{xs:t,ys:r,stnStates:n,namePoss:i}=e,l=a((e=>e.param.stn_list));return s.jsx("g",{id:"stn_icons",children:Object.keys(l).filter((e=>!["linestart","lineend"].includes(e))).map((e=>s.jsx("g",{style:{transform:`translate(${t[e]}px,${r[e]}px)`},children:s.jsx($,{stationId:e,stationState:n[e],isReversed:i[e]})},e)))})};var H="#012639",E=function(){return E=Object.assign||function(e){for(var t,s=1,r=arguments.length;se.app)),{svgWidth:r,svg_height:n,theme:i}=a((e=>e.param)),l=r[V];return s.jsxs(o,{type:V,svgWidth:l,svgHeight:n,canvasScale:e,theme:i,children:[s.jsx(X,{}),s.jsx(t,{}),s.jsx(T,{})]})}const C=34.03125,Z={width:C,height:C,x:-17.015625,fill:void 0},X=r.memo((function(){return s.jsxs("defs",{children:[s.jsx(I,{id:"airport",...Z}),s.jsx(A,{id:"disney",...Z}),s.jsx(J,{id:"hsr",...Z}),s.jsx(G,{id:"np360",...Z}),s.jsx("path",{id:"inttick",d:"M0,0v17",strokeLinecap:"round"})]})}));e("default",{destination:s.jsx(w,{}),railmap:s.jsx(Y,{})}),e("mtrFonts",[...b,...v])}}})); +System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-Dwehuq_g.js","./svg-wrapper-legacy-BDwOt7GE.js","./share-legacy-DDWDkgfB.js","./mtr-legacy-QU8RGd-N.js"],(function(e,t){"use strict";var s,r,n,a,i,l,c,h,o,g,d,m,f,x,p,u,j;return{setters:[e=>{s=e.j},e=>{r=e.a},e=>{n=e.aS,a=e.u,i=e.S,l=e.D,c=e.aY,h=e.aZ},e=>{o=e.S},e=>{g=e.a,d=e.c,m=e.g,f=e.b},e=>{x=e.g,p=e.S,u=e.r,j=e.l}],execute:function(){const t=r.memo((function(){return s.jsx("rect",{fill:"var(--rmg-theme-colour)",height:20,style:{width:"var(--rmg-svg-width)",transform:"translateY(calc(var(--rmg-svg-height) - 20px))"}})})),v=["Vegur-Regular"],y=r.memo((function(e){const{num:t}=e;return s.jsxs(s.Fragment,{children:[s.jsx("circle",{cx:0,cy:0,r:60,fill:"var(--rmg-theme-colour)"}),s.jsx("text",{fontFamily:v.join(", "),dominantBaseline:"central",dy:0,textAnchor:"middle",fontSize:100,fill:"#fff",children:t})]})}),((e,t)=>e.num===t.num)),S=n.Destination;function w(){const{canvasScale:e}=a((e=>e.app)),{svgWidth:r,svg_height:n,theme:i}=a((e=>e.param)),l=r[S];return s.jsxs(o,{type:S,svgWidth:l,svgHeight:n,canvasScale:e,theme:i,children:[s.jsx(N,{}),s.jsx(t,{}),s.jsx(_,{})]})}const N=r.memo((function(){return s.jsx("defs",{children:s.jsx("path",{id:"arrow",d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"var(--rmg-black,#000)"})})})),_=()=>{const e=a((e=>e.helper.routes)),t=a((e=>e.param.svgWidth)),l=a((e=>e.param.direction)),c=a((e=>e.param.customiseMTRDest)),h=a((e=>e.param.platform_num)),o=a((e=>e.param.line_name)),g=a((e=>e.param.current_stn_idx)),d=a((e=>e.param.stn_list)),m=[...new Set(e.filter((e=>e.includes(g))).map((e=>e.filter((e=>!["linestart","lineend"].includes(e))).slice(l===i.left?0:-1)[0])).filter((e=>e!==g)))],f=0===m.length,x=!1!==c.terminal?c.terminal:[m.map((e=>d[e].localisedName.zh)).join("/"),m.map((e=>d[e].localisedName.en)).join("/").replace("\\"," ")],p=r.useRef(null),[u,j]=r.useState({width:0});r.useEffect((()=>{p.current&&j(p.current.getBBox())}),[x.toString(),c.isLegacy]);const v=246+u.width+30+60,S=(t[n.Destination]-(l===i.left?1:-1)*v)/2,w=S+246*(l===i.left?1:-1),N=t.destination/2,_=w+90*(l===i.left?1:-1);return s.jsxs("g",{style:{transform:"translateY(calc(var(--rmg-svg-height) / 2 - 5px))"},children:[!f&&s.jsx("use",{xlinkHref:"#arrow",transform:`translate(${S},0)scale(0.8)rotate(${l===i.left?0:180})`,"data-testid":"mtr-arrow"}),s.jsx("g",{transform:`translate(${f?N:w},0)`,"data-testid":"mtr-platform",children:s.jsx(y,{num:h})}),!f&&s.jsxs("g",{ref:p,textAnchor:l===i.left?"start":"end",transform:`translate(${_},-25)`,fill:"var(--rmg-black)","data-testid":"mtr-destination",children:[s.jsx("text",{className:"rmg-name__zh",fontSize:72,letterSpacing:1.5,children:(c.isLegacy?o[0]:"")+"往"+x[0]}),s.jsx("text",{className:"rmg-name__en",fontSize:42,dy:66,children:(c.isLegacy?o[1]+" ":"")+"to "+x[1]})]})]})},k=r.memo((function(e){const{interchangeInfo:{theme:t,name:r,facility:n},isPassed:a,position:i,repel:h,repelOffset:o}=e,g=r[0].split("\\"),d=r[1].split("\\"),m=10*(g.length-1)+7*(d.length-1),f=(h===l.left?-1:h===l.right?1:0)*(o??3),x=i===c.LEFT||h===l.left?"end":i===c.RIGHT||h===l.right||n?"start":"middle",p={[c.LEFT]:{path:{rotate:90},use:{x:-32,y:-8},g:{x:(n?-42:-24)+f,y:6-(20+m-1)/2}},[c.RIGHT]:{path:{rotate:-90},use:{x:32,y:-8},g:{x:(n?42:24)+f,y:6-(20+m-1)/2}},[c.UP]:{path:{rotate:180},use:{x:0,y:-41},g:{x:(n?h===l.left?-14:h===l.right?14:10:0)+f,y:-36-m}},[c.DOWN]:{path:{rotate:0},use:{x:0,y:26},g:{x:(n?h===l.left?-14:h===l.right?14:10:0)+f,y:31}}}[i];return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M0,0v17",strokeLinecap:"round",stroke:a?"var(--rmg-grey)":t?.[2],strokeWidth:8,transform:`rotate(${p.path.rotate})`}),n&&s.jsx("use",{xlinkHref:"#"+n,fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:`translate(${p.use.x},${p.use.y})scale(0.45)`}),s.jsxs("g",{textAnchor:x,transform:`translate(${p.g.x},${p.g.y})`,fill:a?"var(--rmg-grey)":"var(--rmg-black)",children:[g.map(((e,t)=>s.jsx("text",{dy:10*t,className:"rmg-name__zh",fontSize:10,children:e},t))),d.map(((e,t)=>s.jsx("text",{dy:10*g.length-1+6*t,className:"rmg-name__en",fontSize:6,children:e},g.length+t)))]})]})}),((e,t)=>JSON.stringify(e.interchangeInfo)===JSON.stringify(t.interchangeInfo)&&e.isPassed===t.isPassed&&e.position===t.position&&e.repel===t.repel));function M(e){const{length:t,isPassed:r,isReversed:n}=e;return s.jsx("path",{d:`M-8,0 v${t} a8,8 0 0,0 16,0 v-${t} a8,8 0 0,0 -16,0Z`,className:"rmg-stn__mtr",stroke:r?"var(--rmg-grey)":"var(--rmg-black)",transform:`scale(1,${n?-1:1})`})}function O(e){const{interchangeInfoList:t,direction:r,isPassed:n,isReversed:a,repel:i}=e,h=t.length<=1?0:18*t.length;return s.jsxs("g",{children:[1===t.length&&s.jsx(k,{interchangeInfo:t[0],isPassed:n,position:a?c.UP:c.DOWN,repel:i}),t.length>1&&t.map(((e,t)=>s.jsx("g",{transform:`translate(0,${a?-18*(t+1):18*(t+1)})`,children:s.jsx(k,{interchangeInfo:e,isPassed:n,position:r===l.right?c.RIGHT:c.LEFT})},t))),s.jsx(M,{length:h,isPassed:n,isReversed:a})]})}function P(e){const{interchangeGroup:{name:t,lines:r},direction:n,isPassed:a,isReversed:i,isTerminal:h}=e,o=t?.[1]?.split("\\")?.length??1,g=18*((r?.length||0)-1),d={x:h?0:1===r?.length?n===l.left?-13:13:n===l.left?13:-13,y:h?i?19:-28:(i?-9:9)*((r?.length||0)-1)-4-5*(o-1)};return s.jsxs("g",{children:[r?.map(((e,t,r)=>s.jsx("g",{transform:`translate(0,${i?-18*t:18*t})`,children:s.jsx(k,{interchangeInfo:e,isPassed:a,position:1===r.length?i?c.UP:c.DOWN:n===l.right?c.RIGHT:c.LEFT,repel:h?n:void 0,repelOffset:h&&1===r.length?-4:0})},t))),s.jsx(M,{length:g,isPassed:a,isReversed:i}),s.jsxs("g",{textAnchor:0===d.x?"middle":d.x>0?"start":"end",fill:a?"var(--rmg-grey)":"var(--rmg-black)",transform:`translate(${d.x},${d.y})`,children:[s.jsx("text",{className:"rmg-name__zh",fontSize:14,children:t?.[0]}),t?.[1]?.split("\\")?.map(((e,t)=>s.jsx("text",{className:"rmg-name__en",fontSize:8.5,dy:13+10*t,children:e},t)))]})]})}const b=["MyriadPro-Semibold","Vegur-Bold","GenYoMinTW-SB"],z=r.memo((function(e){const{stnName:t,onUpdate:n,align:a}=e,{zh:i="",en:c=""}=t,h=r.useRef(null),o=()=>{h.current&&n&&n(h.current.getBBox())};return r.useEffect((()=>{const e=new AbortController;return o(),document.fonts.load("12px "+b.join(", "),i+c).then().finally((()=>{setTimeout((()=>{e.signal.aborted||o()}),100)})),()=>{e.abort()}}),[t.toString(),a]),s.jsxs("g",{ref:h,textAnchor:(e=>{switch(e){case l.left:return"start";case l.right:return"end";default:return"middle"}})(a),children:[s.jsx("text",{className:"rmg-name__zh",fontSize:18,transform:"scale(1,0.97)",children:i}),c.split("\\").map(((e,t)=>{return s.jsx("text",{className:"rmg-name__en",fontSize:10,dy:(r=t,16+10*r),children:e},t);var r}))]})}),((e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName)&&e.align===t.align));function $(e){const{stationName:t,stationState:n,lower:a,align:i,facility:c,...o}=e,[g,d]=r.useState({x:0,width:0}),m=t.en?.split("\\")?.length??1,f={g:{x:i?i===l.right?-3:3:0,y:(a?24.8125:-35.21875-11*(m-1))+(i?a?10:-10:0)},rect:{x:g.x-3+(c?i?i===l.right?-35.03125:0:-16.515625:0),y:-11.8125,width:g.width+6+(c?35.03125:0),height:34.03125+11*(m-1)},use:{x:i?i===l.right?-17.015625-g.width-3:15.015625:-(g.width+3)/2,y:5.5*(m-1)-11.8125},StationName:{x:c?i?i===l.right?0:35.03125:18.515625:0,y:0}};return s.jsx("g",{...o,children:s.jsxs("g",{fill:(e=>{switch(e){case h.PASSED:return"var(--rmg-grey)";case h.CURRENT:return"#fff";case h.FUTURE:return"var(--rmg-black)"}})(n),transform:`translate(${f.g.x},${f.g.y})`,children:[n===h.CURRENT&&s.jsx("rect",{x:f.rect.x,y:f.rect.y,width:f.rect.width,height:f.rect.height,fill:"var(--rmg-black)"}),c&&s.jsx("use",{xlinkHref:`#${c}`,fill:n===h.PASSED?"var(--rmg-grey)":"var(--rmg-black)",x:f.use.x,y:f.use.y}),s.jsx("g",{transform:`translate(${f.StationName.x},${f.StationName.y})`,children:s.jsx(z,{stnName:t,onUpdate:d,align:i})})]})})}function R(e){const{stationId:t,stationState:r,isReversed:n}=e,{localisedName:c,parents:o,children:g,transfer:{groups:d,tick_direc:m,paid_area:f},facility:x}=a((e=>e.param.stn_list[t])),p=d[0].lines?.length?o.includes("linestart")?l.left:g.includes("lineend")?l.right:void 0:void 0,u=!!d[1]?.lines?.length,j=u&&!p,v={scaleX:p===l.left?-1:1,scaleY:n?-1:1},y={x:p?p===l.left?-41:41:0,y:p?0:n?-26:26};return s.jsxs("g",{"data-testid":"station-icon-wrapper",children:[u&&s.jsx("path",{d:p&&d[0].lines?.length?"M0,0H41":"M0,0V26",strokeWidth:2.69,strokeDasharray:f?0:2.5,stroke:r===h.PASSED?"var(--rmg-grey)":"var(--rmg-black)",transform:`scale(${v.scaleX},${v.scaleY})`}),s.jsx(O,{interchangeInfoList:d[0].lines??[],direction:m===i.right?l.right:l.left,isPassed:r===h.PASSED,isReversed:j?!n:n,repel:j?m===i.right?l.right:l.left:void 0}),u&&s.jsx("g",{transform:`translate(${y.x},${y.y})`,children:s.jsx(P,{interchangeGroup:d[1],direction:p||(m===i.right?l.right:l.left),isPassed:r===h.PASSED,isReversed:p?!n:n,isTerminal:Boolean(p)})}),s.jsx($,{stationName:c,stationState:r,facility:x,lower:n,align:d[0].lines?.length&&j?m===i.left?l.left:l.right:void 0})]})}const L=(e,t,{isStagger:s,isFlip:r})=>{if(!s)return r;let n;if(t[0].includes(e))n=t[0].indexOf(e)%2;else{const s=t.filter((t=>t.includes(e)))[0];n=(t[0].indexOf(s[0])+s.indexOf(e)+1)%2}return 0===n?r:!r},T=()=>{const{branches:e,routes:t,depsStr:i}=a((e=>e.helper)),{svgWidth:l,svg_height:c,y_pc:h,padding:o,branchSpacingPct:v,direction:y,namePosMTR:S,current_stn_idx:w,stn_list:N}=a((e=>e.param)),_=g(N,j,u),k=r.useMemo((()=>d("linestart","lineend",_)),[JSON.stringify(_)]),M=r.useMemo((()=>d(k.nodes[1],k.nodes.slice(-2)[0],_)),[JSON.stringify(_)]),O=r.useMemo((()=>(console.log("computing x shares"),Object.keys(N).reduce(((t,s)=>({...t,[s]:m(s,_,e)})),{}))),[e.toString(),JSON.stringify(_)]),P=[l[n.RailMap]*o/100,l[n.RailMap]*(1-o/100)],b=Object.keys(O).reduce(((e,t)=>({...e,[t]:P[0]+O[t]/M.len*(P[1]-P[0])})),{}),z=r.useMemo((()=>Object.keys(N).reduce(((t,s)=>({...t,[s]:x(s,e,N)*v*c/200})),{})),[i,v,c]),$=r.useMemo((()=>f(w,t,y)),[w,y,t.toString()]),R=Object.keys(N).reduce(((t,s)=>({...t,[s]:L(s,e,S)})),{}),T=p.drawLine(e,$,N,P,b,z,v*c/200,k);return s.jsxs("g",{id:"main",style:{"--y-percentage":h,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[s.jsx(F,{paths:T}),s.jsx(D,{xs:b,ys:z,stnStates:$,namePoss:R})]})},F=r.memo((function(e){return s.jsxs("g",{fill:"none",strokeWidth:9.68,children:[s.jsxs("g",{stroke:"var(--rmg-grey)",children:[e.paths.pass.map(((e,t)=>s.jsx("path",{d:e},t))),e.paths.sidingPass.map(((e,t)=>s.jsx("path",{d:e,strokeDasharray:4===e.match(/a/g)?.length?"10 4":void 0},t)))]}),s.jsxs("g",{stroke:"var(--rmg-theme-colour)",children:[e.paths.main.map(((e,t)=>s.jsx("path",{d:e},t))),e.paths.sidingMain.map(((e,t)=>s.jsx("path",{d:e,strokeDasharray:4===e.match(/a/g)?.length?"10 4":void 0},t)))]})]})}),((e,t)=>JSON.stringify(e.paths)===JSON.stringify(t.paths))),D=e=>{const{xs:t,ys:r,stnStates:n,namePoss:i}=e,l=a((e=>e.param.stn_list));return s.jsx("g",{id:"stn_icons",children:Object.keys(l).filter((e=>!["linestart","lineend"].includes(e))).map((e=>s.jsx("g",{style:{transform:`translate(${t[e]}px,${r[e]}px)`},children:s.jsx(R,{stationId:e,stationState:n[e],isReversed:i[e]})},e)))})};var H="#012639",E=function(){return E=Object.assign||function(e){for(var t,s=1,r=arguments.length;se.app)),{svgWidth:r,svg_height:n,theme:i}=a((e=>e.param)),l=r[V];return s.jsxs(o,{type:V,svgWidth:l,svgHeight:n,canvasScale:e,theme:i,children:[s.jsx(X,{}),s.jsx(t,{}),s.jsx(T,{})]})}const C=34.03125,Z={width:C,height:C,x:-17.015625,fill:void 0},X=r.memo((function(){return s.jsxs("defs",{children:[s.jsx(I,{id:"airport",...Z}),s.jsx(A,{id:"disney",...Z}),s.jsx(J,{id:"hsr",...Z}),s.jsx(G,{id:"np360",...Z}),s.jsx("path",{id:"inttick",d:"M0,0v17",strokeLinecap:"round"})]})}));e("default",{destination:s.jsx(w,{}),railmap:s.jsx(Y,{})}),e("mtrFonts",[...b,...v])}}})); diff --git a/assets/index-legacy-CYGL5-gX.js b/assets/index-legacy-CYGL5-gX.js new file mode 100644 index 00000000..1443c5b7 --- /dev/null +++ b/assets/index-legacy-CYGL5-gX.js @@ -0,0 +1 @@ +System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-Dwehuq_g.js","./share-legacy-DDWDkgfB.js","./svg-wrapper-legacy-BDwOt7GE.js","./param-selector-legacy-DN0AGkfT.js"],(function(e,t){"use strict";var n,r,a,s,o,l,i,c,h,d,u,m,f,x,g;return{setters:[e=>{n=e.j},e=>{r=e.a},e=>{a=e.h,s=e.aZ,o=e.u,l=e.m,i=e.S,c=e.aS,h=e.P},e=>{d=e.a,u=e.c,m=e.b,f=e.d},e=>{x=e.S},e=>{g=e.i}],execute:function(){function t(e){const{num:t,inStrip:r,...s}=e;return n.jsxs("g",{textAnchor:"middle",fill:r?a.black:"var(--rmg-theme-fg)",...s,children:[n.jsx("rect",{height:40,width:40,rx:4,x:-20,fill:r?"#fff":"var(--rmg-theme-colour)"}),n.jsx("text",{className:"rmg-name__en",fontSize:20,dy:12,children:t}),n.jsx("text",{className:"rmg-name__zh",fontSize:12,dy:26,children:"屏蔽门"}),n.jsx("text",{className:"rmg-name__en",fontSize:6.5,dy:36,children:"Screen Door"})]})}const p=e=>{const t=(e=>{switch(e){case"gz28":case"gz2otis":case"gz6":case"gzgf":return 60;case"gz1":case"gz3":return 40;case"gz4":case"gz5":case"gz1421":case"gz11":case"gz1822":case"gz7w":return 20;default:return 0}})(e.variant),a=r.useMemo((()=>{switch(e.variant){case"gz1":return n.jsx("circle",{cy:-58,r:16,fill:"red"});case"gz28":case"gz2otis":return n.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"orange"});case"gz3":return n.jsx("rect",{x:-15,y:-55,height:30,width:30,fill:"red"});case"gz6":return n.jsx("ellipse",{cy:-30,rx:24,ry:12,fill:"white"});case"gz1421":return n.jsx("ellipse",{cy:-38,rx:24,ry:12,fill:"orange"});case"gz5":return n.jsx("rect",{x:-30,y:-70,height:30,width:60,fill:"orange"});case"gz4":return n.jsx("rect",{x:-50,y:-50,height:25,width:100,fill:"whitesmoke"});case"gzgf":return n.jsx("rect",{x:-30,y:-58,height:30,width:60,fill:"orange"});case"gz7w":case"gz11":return n.jsx("ellipse",{cy:-40,rx:28,ry:14,fill:"orange"});default:return n.jsx(n.Fragment,{})}}),[e.variant]);return n.jsxs("g",{transform:`translate(0,${"gz4"===e.variant?-20:0})`,children:[n.jsx("rect",{id:"strip_gz",style:{"--height":`${t}px`}}),n.jsx("g",{style:{transform:"translate(calc(var(--rmg-svg-width) / 2),var(--rmg-svg-height))"},children:e.isShowLight&&a}),!1!==e.isShowPSD&&n.jsx(y,{...e})]})},y=r.memo((function(e){const r=["gz28","gz2otis","gz6","gzgf"].includes(e.variant),a=(e=>{switch(e){case"gz1":case"gz3":return"82px";case"gz4":return"65px";case"gz5":return"80px";case"gz1421":return"62px";case"gz7w":case"gz11":return"70px";default:return"58px"}})(e.variant),s=(e=>{switch(e){case"gz7w":case"gz11":return 1.1;default:return 1}})(e.variant);return n.jsx(t,{num:e.isShowPSD,inStrip:r,style:{"--psd-dy":a,transform:"translate(var(--translate-x), var(--translate-y))scale(var(--scale))","--translate-x":"calc(var(--rmg-svg-width) / 2 + 80px)","--translate-y":"calc(var(--rmg-svg-height) - var(--psd-dy, 58px))","--scale":s}})}),((e,t)=>e.variant===t.variant&&e.isShowPSD===t.isShowPSD));var j=1.3,v=38.3,S=42,w=function(e,t){var n=[e,t].map((function(e){return e.match(/^(\w+).+$/)}));if(n[0]&&n[1]&&n[0][1]===n[1][1])return n[0][1]},z=function(e){var t=e.match(/^(\d+)\D+$/);return null==t?void 0:t[1]},N=function(){return N=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function P(e){var t=e.zhName,s=e.enName,o=e.foregroundColour,l=e.backgroundColour,i=e.zhClassName,c=e.enClassName,h=e.passed,d=e.children,u=k(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),m=function(e,t){var n=z(e);if(n)return{isDigit:!0,spanningPart:n};var r=w(e,t);return r?{isDigit:!1,spanningPart:r}:{isDigit:!1,spanningPart:""}}(t,s),f=m.isDigit,x=m.spanningPart,g=r.useRef(null),p=$(r.useState({x:0,height:0,width:0}),2),y=p[0],j=p[1];r.useEffect((function(){g.current&&j(g.current.getBBox())}),[t,s]);var v=S/Math.max(S,y.width),N=(-y.x-y.width/2)*v,b=y.height*(1-v)/2;return n.jsxs("g",O({textAnchor:"middle",fill:h?a.white:o},u,{children:[n.jsx(_,{fill:h?"#aaa":l}),n.jsx("g",{ref:g,transform:"translate(".concat(N,",").concat(b,")scale(").concat(v,")"),children:n.jsxs("text",{className:i,fontSize:21,x:-1,y:12,textAnchor:"end",dominantBaseline:"central",children:[x,n.jsx("tspan",{className:i,fontSize:10,x:0,dy:-4,textAnchor:"start",dominantBaseline:"central",children:t.slice(x.length).trim()}),n.jsx("tspan",{className:c,fontSize:6.5,letterSpacing:-.1,x:0,dy:10,textAnchor:"start",dominantBaseline:"middle",children:f?s:s.slice(x.length).trim()})]})}),d]}))}var B=function(){return B=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function R(e){var t,s=e.zhName,o=e.enName,l=e.foregroundColour,i=e.backgroundColour,c=e.zhClassName,h=e.enClassName,d=e.passed,u=e.children,m=C(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),f=null!==(t=z(s))&&void 0!==t?t:"",x=r.useRef(null),g=r.useRef(null),p=M(r.useState({width:0}),2),y=p[0],j=p[1],v=M(r.useState({width:0}),2),w=v[0],N=v[1];r.useEffect((function(){x.current&&j(x.current.getBBox()),g.current&&N(g.current.getBBox())}),[s,o]);var b=S/Math.max(S,y.width),O=S/Math.max(S,w.width),k={nameZh:{y:7.3+13.5*(1-b)*b/2},nameEn:{y:19.5-9*(1-O)*O/2}};return n.jsxs("g",B({textAnchor:"middle",fill:d?a.white:l},m,{children:[n.jsx(_,{fill:d?"#aaa":i}),n.jsxs("text",{ref:x,className:c,fontSize:12,transform:"translate(0,".concat(k.nameZh.y,")scale(").concat(b,")"),dominantBaseline:"central",children:[n.jsx("tspan",{fontSize:16,dy:.7,dominantBaseline:"central",children:f}),n.jsx("tspan",{dy:-.7,dominantBaseline:"central",children:s.slice(f.length)})]}),n.jsx("text",{ref:g,className:h,fontSize:8,transform:"translate(0,".concat(k.nameEn.y,")scale(").concat(O,")"),dominantBaseline:"middle",children:o}),u]}))}var I=function(){return I=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function W(e){var t=e.zhName,s=e.enName,o=e.foregroundColour,l=e.backgroundColour,i=e.zhClassName,c=e.enClassName,h=e.passed,d=e.children,u=A(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),m=r.useRef(null),f=E(r.useState({width:0}),2),x=f[0],g=f[1];r.useEffect((function(){m.current&&g(m.current.getBBox())}),[t,s]);var p=Math.max(45,x.width+4);return n.jsxs("g",I({textAnchor:"middle",fill:h?a.white:o},u,{children:[n.jsx(_,{customWidth:p,fill:h?"#aaa":l}),n.jsxs("g",{ref:m,children:[n.jsx("text",{className:i,fontSize:8.5,y:8,dominantBaseline:"central",children:t}),n.jsx("text",{className:c,fontSize:5.5,y:18,dominantBaseline:"middle",children:s})]}),d]}))}var D=function(){return D=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o};function L(e){var t=e.zhName,s=e.enName,o=e.foregroundColour,l=e.backgroundColour,i=e.zhClassName,c=e.enClassName,h=e.passed,d=e.children,u=H(e,["zhName","enName","foregroundColour","backgroundColour","zhClassName","enClassName","passed","children"]),m=r.useRef(null),f=r.useRef(null),x=F(r.useState({width:0}),2),g=x[0],p=x[1],y=F(r.useState({width:0}),2),j=y[0],v=y[1];r.useEffect((function(){m.current&&p(m.current.getBBox()),f.current&&v(f.current.getBBox())}),[t,s]);var w=S/Math.max(S,g.width),z=S/Math.max(S,j.width),N={nameZh:{y:7.3+13.5*(1-w)*w/2},nameEn:{y:19.5-9*(1-z)*z/2}};return n.jsxs("g",D({textAnchor:"middle",fill:h?a.white:o},u,{children:[n.jsx(_,{fill:h?"#aaa":l}),n.jsx("text",{ref:m,className:i,fontSize:12,transform:"translate(0,".concat(N.nameZh.y,")scale(").concat(w,")"),dominantBaseline:"central",children:t}),n.jsx("text",{ref:f,className:c,fontSize:8,transform:"translate(0,".concat(N.nameEn.y,")scale(").concat(z,")"),dominantBaseline:"middle",children:s}),d]}))}var U=function(){return U=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=5?n.jsx(W,U({},e)):n.jsx(L,U({},e))}}));var J=function(e,t){return void 0!==z(e)?1:void 0!==w(e,t)?2:3},V=function(){return V=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o},re=r.forwardRef((function(e,t){var a=e.Icon,s=e.lineNum,o=e.stnNum,l=e.strokeColour,i=e.passed,c=e.size,h=e.textClassName,d=e.bolderBorder,u=e.alwaysShowColouredBorder,m=e.useSameScale,f=e.children,x=te(e,["Icon","lineNum","stnNum","strokeColour","passed","size","textClassName","bolderBorder","alwaysShowColouredBorder","useSameScale","children"]),g=r.useContext(Q).updateId,p=r.useRef(null),y=r.useRef(null),j=ne(r.useState({width:0}),2),v=j[0],S=j[1],w=ne(r.useState({width:0}),2),z=w[0],N=w[1];r.useEffect((function(){p.current&&S(p.current.getBBox()),y.current&&N(y.current.getBBox())}),[s,o,g]);var b=s&&s.length>2;r.useEffect((function(){m&&b&&console.warn("GenericStationNumber(), useSameScale props does not work when lineNum has more than 2 characters")}),[m,b]);var _=17/Math.max(17,v.width),O=m&&2===(null==s?void 0:s.length)?_:17/Math.max(17,z.width),k="sm"===c?"0.7":"lg"===c?"1.4":1;return n.jsxs("g",ee({ref:t},x,{children:[n.jsxs("g",{transform:"scale(".concat(k,")"),children:[n.jsx(a,{stroke:i&&!u?"#aaa":l,filled:!s&&!o,bolder:d}),(s||o)&&n.jsxs("g",{textAnchor:"middle",fontSize:13.5,fill:i?"#aaa":"#000",children:[n.jsx("g",{transform:"translate(-9.25,0)scale(".concat(_,")"),children:n.jsx("text",{ref:p,className:h,dominantBaseline:"central",x:.5,children:s})}),n.jsx("g",{transform:"translate(9.25,0)scale(".concat(O,")"),children:n.jsx("text",{ref:y,className:h,dominantBaseline:"central",children:o})})]})]}),f]}))})),ae=function(){return ae=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=s.next()).done;)o.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return o},fe=function(e,t){return Array.from(Array(e).keys()).map((function(n){return(n-(e-1)/2)*t}))},xe=function(e){return"fmetro"===e?G:K},ge=9.1,pe=2.8600000000000003;r.forwardRef((function(e,t){var a=e.stations,s=e.textClassName,o=e.columns,l=void 0===o?2:o,i=e.topHeavy,c=e.anchorAt,h=e.osiPosition,d=e.children,u=ue(e,["stations","textClassName","columns","topHeavy","anchorAt","osiPosition","children"]),m=r.useMemo((function(){return function(e,t,n){if(e<=0)return[];if(1===e)return[[0,0]];for(var r=t>e?e:t,a=v,s=fe(r,a),o=Math.ceil(e/r),l=fe(o,19.8),i=e%r,c=[],h=0;h=m.length)return console.warn(", anchor index ".concat(c," is out of bound")),[0,0];var e=me(m[c],2);return[-e[0],-e[1]]}),[m,c]),2),x=f[0],g=f[1],p=r.useRef(null),y=r.useRef([]);r.useEffect((function(){y.current=y.current.slice(0,a.length)}),[a.length]);var j=2===a.length&&1===l&&!!h;return r.useImperativeHandle(t,(function(){return{target:p.current,children:y.current,getCoordinates:function(){return m},getCorrectedBBox:function(){var e,t,n=null!==(t=null===(e=p.current)||void 0===e?void 0:e.getBBox())&&void 0!==t?t:{x:0,y:0,width:0,height:0};return n.y-=4.55,n.height+=ge,j?(n.x-="left"===h?1.4300000000000002:4.55,n.width+=5.98):(n.x-=4.55,n.width+=ge),n},getTranslate:function(){return[x,g]}}}),[m,x,g,p.current,y.current,h]),n.jsxs("g",de({ref:p,transform:"translate(".concat(x,",").concat(g,")")},u,{children:[a.map((function(e,t){var r=e.style,a=xe(r);return n.jsx(a,{stroke:"#aaa",filled:!0,strokeWidth:ge,transform:"translate(".concat(m[t][0],",").concat(m[t][1],")")},t)})),j&&n.jsx(he,{position:h,r:13.206896551724137,strokeWidth:pe,strokeDasharray:void 0}),a.map((function(e,t){var r=e.style,a=xe(r);return n.jsx(a,{stroke:"white",filled:!0,strokeWidth:3.3800000000000003,transform:"translate(".concat(m[t][0],",").concat(m[t][1],")")},t)})),j&&n.jsx(he,{position:h}),a.length&&n.jsx("rect",{fill:"white",x:-12,y:m[0][1],width:24,height:2*-m[0][1]}),a.map((function(e,t){var r=e.style,a=ue(e,["style"]),o="fmetro"===r?se:le;return n.jsx(o,de({ref:function(e){return y.current[t]=e},transform:"translate(".concat(m[t][0],",").concat(m[t][1],")"),textClassName:s},a),t)})),d]}))}));var ye=function(){return ye=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{l.current&&a&&a(l.current.getBBox())}),[JSON.stringify(t)]),n.jsxs("g",{ref:l,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:18,children:s}),n.jsx("g",{fontSize:10.5,children:o.split("\\").map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:16+11*t,children:e},t)))})]})}),((e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName)));function ke(e){const{stnName:t,onUpdate:a,passed:s,...o}=e,{zh:l="",en:i=""}=t,c=r.useRef(null),[h,d]=r.useState({x:0,width:0});return r.useEffect((()=>{if(c.current){const e=c.current.getBBox();d(e),a?.(e)}}),[JSON.stringify(t)]),l||i?n.jsxs("g",{fill:s?"#aaa":"#000",...o,children:[n.jsxs("g",{transform:"translate(0,3)",fontSize:18,children:[n.jsx("text",{textAnchor:"end",x:h.x-3,className:"rmg-name__zh",children:"("}),n.jsx("text",{textAnchor:"start",x:h.width+h.x+3,className:"rmg-name__zh",children:")"})]}),n.jsxs("g",{ref:c,textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:13,children:l}),n.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:i})]})]}):n.jsx(n.Fragment,{})}function $e(e){const{passed:t,...r}=e;return n.jsxs("g",{textAnchor:"middle",fill:t?"#aaa":"var(--rmg-theme-colour)",...r,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:13,children:"快车停靠站"}),n.jsx("text",{dy:10,className:"rmg-name__en",fontSize:6.5,children:"Express Station"})]})}function Pe(e){const{primaryName:t,secondaryName:a,stationState:o,flipped:l,express:i}=e,[c,h]=r.useState({width:0}),[d,u]=r.useState({x:0,width:-20}),m=t.en?.split("\\")?.length??1,f={x:0,y:l?17.5:-20-14*m*Math.cos(-45)},x={x:(c.width+d.width/2+10)*(l?-1:1),y:2+5*(m-1)},g={x:(c.width+d.width+20+35)*(l?-1:1),y:2+5*(m-1)};return n.jsxs("g",{textAnchor:l?"end":"start",fill:(e=>{switch(e){case s.PASSED:return"#aaa";case s.CURRENT:return"#f00";case s.FUTURE:return"#000"}})(o),transform:`translate(${f.x},${f.y})rotate(-45)`,children:[n.jsx(Oe,{stnName:t,onUpdate:h}),a&&n.jsx(ke,{stnName:a,onUpdate:u,passed:o===s.PASSED,transform:`translate(${x.x},${x.y})`}),i&&n.jsx($e,{passed:o===s.PASSED,transform:`translate(${g.x},${g.y})`})]})}function Be(e){const{stnId:t,stnState:a,stnY:i}=e,{theme:c,line_name:h,line_num:d,spanLineNum:u,stn_list:m,loop:f,loop_info:{midpoint_station:x,clockwise:g}}=o((e=>e.param)),p=m[t],y=x===t,[j,v]=r.useState({height:0}),S=r.useRef(null);r.useEffect((()=>{S.current&&v(S.current.getBBox())}),[S.current,i,p.localisedName,p.localisedSecondaryName,p.services]);const w=2===p.parents.length||2===p.children.length,z=i>0||1===p.parents.indexOf(p.branch?.left?.[1]||"")||1===p.children.indexOf(p.branch?.right?.[1]||"")?180:0,N=p.localisedName.en?.split("\\")?.length??1,b=w?180===z?16+12*(N-1)*Math.cos(-45):-9:180===z?-6:(25+15*(N-1))*Math.cos(-45),_=i>0?j.height+23:-j.height-23;return n.jsxs(n.Fragment,{children:[n.jsx(Ce,{intInfos:w?[{theme:[c[0],c[1],"var(--rmg-theme-colour)","var(--rmg-theme-fg)"],name:h},...p.transfer.groups[0].lines??[]]:p.transfer.groups[0].lines??[],stnState:f?s.FUTURE:a,tickRotation:z,spanDigits:u}),n.jsx(le,{lineNum:d,stnNum:p.num,strokeColour:c[2],textClassName:"rmg-name__zh",passed:-1===a,alwaysShowColouredBorder:f,bolderBorder:!0,useSameScale:!0}),n.jsx("g",{ref:S,transform:`translate(${-b},0)`,children:n.jsx(Pe,{primaryName:p.localisedName,secondaryName:p.localisedSecondaryName,stationState:a,flipped:180===z,express:p.services.includes(l.express)})}),y&&n.jsx(_e,{transform:`translate(0,${_})`,clockwise:g,anchorAt:i>0?"text":"circle"})]})}const Ce=e=>n.jsxs(n.Fragment,{children:[n.jsx(Me,{strokeWidth:4,...e}),n.jsx(Re,{transform:`translate(0,${180===e.tickRotation?-47:23})`,...e})]}),Me=e=>{const{intInfos:t,stnState:r,tickRotation:a,spanDigits:s,...o}=e;return n.jsx("g",{...o,children:t.map(((e,s)=>n.jsx("use",{xlinkHref:"#inttick",stroke:-1===r?"#aaa":e.theme?.[2],transform:`translate(${-2*(t.length-1)+4*s},0)rotate(${180===a?180:0})`},s)))})},Re=e=>{const{intInfos:t,tickRotation:r,stnState:s,spanDigits:o,...l}=e;return n.jsx("g",{...l,children:t.map(((e,t)=>n.jsx("g",{transform:`translate(0,${28*t*(180===r?-1:1)})`,children:n.jsx(T,{zhName:e.name[0],enName:e.name[1],foregroundColour:e.theme?.[3]??a.white,backgroundColour:e.theme?.[2]??"#aaaaaa",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",passed:-1===s,spanDigits:o})},t)))})};function Ie(e){const{xs:t,ys:r,stnStates:a}=e,{stn_list:s,loop:l}=o((e=>e.param)),{branches:i}=o((e=>e.helper)),c=l?i[0].slice(1,-1):Object.keys(s);return n.jsx("g",{id:"stn_icons",children:c.filter((e=>!["linestart","lineend"].includes(e))).map((e=>n.jsx("g",{style:{transform:`translate(${t[e]}px,${r[e]}px)`},children:n.jsx(Be,{stnId:e,stnState:a[e],stnY:r[e]})},e)))})}const Ae=(e,t)=>2===e[t].parents.length||2===e[t].children.length?.25:0,Ee=(e,t,n)=>{const r=u("linestart","lineend",t);if(r.nodes.includes(e))return u(r.nodes[1],e,t).len;{const a=n.filter((t=>t.includes(e)))[0];let s=e;for(;!r.nodes.includes(s);)s=a[a.indexOf(s)-1];let o=e;for(;!r.nodes.includes(o);)o=a[a.indexOf(o)+1];const l="linestart"===s,i="lineend"===o;if(a.toString()===n[0].toString()){const n=[];return l||i?l?(n[0]=0,n[1]=u(r.nodes[1],o,t).len,n[2]=u(a[1],e,t).len,n[3]=u(e,o,t).len):(n[0]=u(r.nodes[1],s,t).len,n[1]=u(s,r.nodes.slice(-2)[0],t).len,n[2]=u(s,e,t).len,n[3]=u(e,a.slice(-2)[0],t).len):(n[0]=u(r.nodes[1],s,t).len,n[1]=u(s,o,t).len,n[2]=u(s,e,t).len,n[3]=u(e,o,t).len),n[0]+n[2]*n[1]/(n[2]+n[3])}if(l||i)return l?u(r.nodes[1],o,t).len-u(e,o,t).len:u(r.nodes[1],s,t).len+u(s,e,t).len;{const n=[];return n[0]=u(r.nodes[1],s,t).len,n[1]=u(s,o,t).len,n[2]=u(s,e,t).len,n[3]=u(e,o,t).len,n[0]+n[2]*n[1]/(n[2]+n[3])}}},We=()=>{const{branches:e,routes:t,depsStr:a}=o((e=>e.helper)),{svgWidth:s,svg_height:l,y_pc:h,padding:x,branchSpacingPct:g,direction:p,line_name:y,spanLineNum:j,current_stn_idx:v,stn_list:S}=o((e=>e.param)),w=d(S,Ae,Ae),z=r.useMemo((()=>(console.log("computing x shares"),Object.keys(S).reduce(((t,n)=>({...t,[n]:Ee(n,w,e)})),{}))),[e.toString(),JSON.stringify(w)]),N=u("linestart","lineend",w),b=u(N.nodes[1],N.nodes.slice(-2)[0],w),_=p===i.right?[s[c.RailMap]*x/100+65,s[c.RailMap]*(1-x/100)-20]:[s[c.RailMap]*x/100,s[c.RailMap]*(1-x/100)-65],O=Object.keys(z).reduce(((e,t)=>({...e,[t]:_[0]+z[t]/b.len*(_[1]-_[0])})),{}),k=r.useMemo((()=>(console.log("computing y shares"),Object.keys(S).reduce(((t,n)=>{if(e[0].includes(n))return{...t,[n]:0};{const r=e.slice(1).filter((e=>e.includes(n)))[0];return{...t,[n]:S[r[0]].children.indexOf(r[1])?-2:2}}}),{}))),[a]),$=Object.keys(k).reduce(((e,t)=>({...e,[t]:-k[t]*g*l/200})),{}),P=r.useMemo((()=>m(v,t,p)),[v,p,t.toString()]),B=e.map((e=>f(e,P))).reduce(((e,t)=>(e.main.push(t.main),e.pass.push(t.pass),e)),{main:[],pass:[]}),C=Object.keys(B).reduce(((e,t)=>({...e,[t]:B[t].map((e=>He(e,O,$)))})),{});return n.jsxs("g",{id:"main",style:{"--y-percentage":h,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[n.jsx(De,{paths:C}),n.jsx(Ie,{xs:O,ys:$,stnStates:P}),n.jsx("g",{id:"line_name",style:{"--translate-x":p===i.right?_[0]-65+"px":`${_[1]+65}px`},children:n.jsx(T,{zhName:y[0],enName:y[1],foregroundColour:"var(--rmg-theme-fg)",backgroundColour:"var(--rmg-theme-colour)",zhClassName:"rmg-name__zh",enClassName:"rmg-name__en",spanDigits:j})})]})},De=r.memo((function(e){return n.jsxs("g",{fill:"none",strokeWidth:4,children:[n.jsx("g",{stroke:"#aaa",strokeDasharray:4,children:e.paths.pass.map(((e,t)=>n.jsx("path",{d:e},t)))}),n.jsx("g",{stroke:"var(--rmg-theme-colour)",children:e.paths.main.map(((e,t)=>n.jsx("path",{d:e},t)))})]})}),((e,t)=>JSON.stringify(e.paths)===JSON.stringify(t.paths))),He=(e,t,n)=>{let r;const a=[];return e.forEach((e=>{const s=t[e],o=n[e];if(!r&&0!==r)return r=o,void a.push(`M ${s},${o}`);0===o?(or&&a.push("H "+(s-40),"a 40,40 0 0,1 40,40",`V ${o}`)):(or&&a.push("V "+(o-40),"a 40,40 0 0,0 40,40",`H ${s}`)),a.push(`H ${s}`),r=o})),a.join(" ").replace(/( H ([\d.]+))+/g," H $2")};function Fe(e){return n.jsx("path",{d:"M60,60 L0,0 L60,-60 H90 L40,-10 H150 V10 H40 L90,60z",fill:"black",...e})}function Le(e){const{destIds:t,textAnchor:a,...s}=e,l=o((e=>e.param.direction)),c=o((e=>e.param.stn_list)),h=t.map((e=>c[e].localisedName.zh?.length??0)),d=Math.min(...h),u=d>1&&h[0]!==h[1]?Math.abs(h[0]-h[1])/(d-1):0;return n.jsxs("g",{textAnchor:a,...s,children:[t.map(((e,t)=>{const s=h[t]>h[1-t],o=!g()&&"end"===a&&!s;return n.jsxs(r.Fragment,{children:[n.jsx("text",{className:"rmg-name__zh",fontSize:25,x:l===i.left?0:-75,y:42*t-21,letterSpacing:s?"0em":`${u}em`,dx:o?`${u}em`:"0em",children:c[e].localisedName.zh}),n.jsx("text",{className:"rmg-name__en",fontSize:11.5,x:l===i.left?0:-75,y:42*t-1,children:"Towards "+c[e].localisedName.en?.replace("\\"," ")})]},e)})),n.jsx("text",{className:"rmg-name__zh",fontSize:28,x:l===i.left?25*(Math.max(...h)+1):0,y:5,children:"方向"})]})}const Ue=(e,t,n)=>{const r=Math.min(...Object.values(e)),a=Math.max(...Object.values(e)),s=Math.min(...Object.values(t)),o=Math.max(...Object.values(t))-s,l=o/2;return`M${a},${s} H${r} h-${n/2} a${l},${l} 0 0,0 0,${o} H${a} h${n/2} a${l},${l} 0 0,0 0,-${o}Z`};function Te({currentStationX:e,currentStationY:t,stationGap:r,loopClockwise:a}){const s=t>0?a?-1:1:a?1:-1,o=(r/3-6)*s,l=e+o+6*s,i=(t-12)*-s;return n.jsx("g",{transform:`scale(1,${-s})`,children:n.jsx("path",{d:`M${l},${i} h${o}`,strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)"})})}function Je({clockwise:e,...t}){return n.jsx("g",{...t,children:n.jsxs("g",{textAnchor:"middle",transform:"translate(0,-4)",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:16,children:e?"内环":"外环"}),n.jsx("text",{className:"rmg-name__en",y:13,fontSize:9,children:e?"Inner Circle":"Outer Circle"})]})})}const Ve=2/3,Ze=2-Ve,Ye=25*Math.PI/180,Ge=Math.asin(Math.sin(35*Math.PI/180)/2);function Xe({cxLeft:e,cxRight:t,yGap:r,clockwise:a}){const s=r/2,o=s*(a?Ve:Ze),l=a?Ye:Ge,i=o*Math.cos(l),c=a?1:-1,h=a?1:0,d=o*Math.sin(l)*c,u=2*d,m={rotate:a?"-4deg":"2deg"};return n.jsxs(n.Fragment,{children:[n.jsxs("g",{transform:`translate(${e},0)`,children:[n.jsx("path",{d:`M${-i},${d} a${o},${o} 0 0,${h} 0,${-u}`,fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:m}),n.jsx(Je,{transform:`translate(${a?0:-2*s},0)`,clockwise:a})]}),n.jsxs("g",{transform:`translate(${t},0)`,children:[n.jsx("path",{d:`M${i},${-d} a${o},${o} 0 0,${h} 0,${u}`,fill:"none",strokeWidth:4,stroke:"black",markerEnd:"url(#loop_arrow)",style:m}),n.jsx(Je,{transform:`translate(${a?0:2*s},0)`,clockwise:a})]})]})}function qe(){const{branches:e}=o((e=>e.helper)),{svgWidth:t,svg_height:a,y_pc:l,padding:i,branchSpacingPct:h,current_stn_idx:d,loop_info:{midpoint_station:u,clockwise:m}}=o((e=>e.param)),f=e[0].slice(1,-1),x=Math.ceil(f.length/2),g=r.useMemo((()=>(console.log("computing x shares"),f.reduce(((e,t,n,r)=>{let a;return n{const a=e-(e*(1-2*t/100)*(n-1)/n-r);return[a/2,e-a/2]})(t[c.RailMap],i,x,p),j=(y[1]-y[0])/(x-1),v=Object.keys(g).reduce(((e,t)=>({...e,[t]:y[0]+g[t]*j})),{}),S=r.useMemo((()=>(console.log("computing y shares"),f.reduce(((e,t,n)=>({...e,[t]:n({...e,[t]:-S[t]*p/2})),{}),z=((e,t,n,r)=>{const a=e.indexOf(n),o=e.indexOf(r??n);let l;return l=o<0?e:t?a<=o?[...e.slice(0,a+1),...e.slice(o)]:e.slice(o,a+1):aa===n?{...e,[t]:s.CURRENT}:l.includes(t)?{...e,[t]:s.FUTURE}:{...e,[t]:s.PASSED}),{})})(f,m??!1,d,u);return n.jsxs("g",{id:"main",style:{"--y-percentage":l,transform:"translateY(calc(var(--y-percentage) * var(--rmg-svg-height) / 100))"},children:[n.jsx("path",{d:Ue(v,w,j),fill:"none",strokeWidth:6,stroke:"var(--rmg-theme-colour)"}),n.jsx(Ie,{xs:v,ys:w,stnStates:z}),n.jsx(Te,{currentStationX:v[d],currentStationY:w[d],stationGap:j,loopClockwise:m}),n.jsx(Xe,{cxLeft:y[0]-j/2,cxRight:y[1]+j/2,yGap:p,clockwise:m})]})}const Ke=c.RailMap,Qe=()=>{const{canvasScale:e}=o((e=>e.app)),{svgWidth:t,svg_height:r,direction:a,psd_num:s,info_panel_type:l,notesGZMTR:c,current_stn_idx:d,stn_list:u,theme:m,loop:f}=o((e=>e.param)),g=t[Ke],y=u[d];return n.jsxs(x,{type:Ke,svgWidth:g,svgHeight:r,canvasScale:e,theme:m,children:[n.jsx(et,{}),n.jsx(p,{variant:l,isShowLight:l===h.gz2otis,isShowPSD:l===h.gz2otis&&s}),a===i.left&&y.parents.includes("linestart")||a===i.right&&y.children.includes("lineend")?n.jsx(rt,{}):n.jsxs(n.Fragment,{children:[f?n.jsx(qe,{}):n.jsx(We,{}),!f&&n.jsx(tt,{}),c?.map(((e,t)=>n.jsx(at,{note:e},t)))]}),l===h.gz2otis&&n.jsx("line",{x2:g,transform:"translate(0,90)",strokeWidth:3,stroke:"black"})]})},et=r.memo((function(){return n.jsxs("defs",{children:[n.jsx("path",{id:"inttick",d:"M 0,0 v 18",strokeLinecap:"square"}),n.jsx("marker",{id:"loop_arrow",refX:.05,refY:.5,orient:"auto",children:n.jsx("path",{d:"M0,0V2L2,0z",fill:"black"})})]})})),tt=()=>{const{routes:e}=o((e=>e.helper)),{direction:t,direction_gz_x:a,direction_gz_y:s,current_stn_idx:l}=o((e=>e.param)),c=r.useMemo((()=>[...new Set(e.reduce(((e,n)=>n.includes(l)?e.concat(n.filter((e=>!["linestart","lineend"].includes(e))).slice(t===i.left?0:-1)[0]):e),[]).filter((e=>e!==l)))]),[l,t,e.toString()]),h={textAnchor:t===i.left?"start":"end",transform:`translate(${t===i.left?65:-65},-5)`,destIds:c};return n.jsxs("g",{id:"direction_gz",style:{"--x-percentage":a,"--y-percentage":s},children:[n.jsx(Fe,{transform:`scale(0.35)rotate(${t===i.left?0:180})`}),2!==c.length?n.jsx(nt,{...h}):n.jsx(Le,{...h})]})},nt=e=>{const{destIds:t,...r}=e,a=o((e=>e.param.stn_list));return n.jsxs("g",{...r,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:28,children:t.map((e=>a[e].localisedName.zh)).join("/")+"方向"}),n.jsx("text",{className:"rmg-name__en",fontSize:14,dy:22,children:"Towards "+t.map((e=>a[e].localisedName.en?.replace("\\"," "))).join("/")})]})},rt=r.memo((function(){return n.jsxs("g",{id:"terminus_gz",textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:90,children:"终 点 站"}),n.jsx("text",{dy:70,className:"rmg-name__en",fontSize:36,children:"Terminal"}),n.jsxs("g",{strokeWidth:8,stroke:"#000",children:[n.jsx("path",{d:"M -160,68 h -160"}),n.jsx("path",{d:"M 160,68 h 160"})]})]})})),at=r.memo((function(e){const t=r.useRef(null),[a,s]=r.useState({width:0,height:0,y:0});return r.useEffect((()=>{t.current&&s(t.current.getBBox())}),[e.note[0],e.note[1]]),n.jsxs("g",{className:"note-box",style:{"--x-percentage":e.note[2],"--y-percentage":e.note[3]},children:[e.note[4]&&n.jsx("rect",{height:a.height+4,width:a.width+4,x:-2,y:a.y-2,fill:"none",stroke:"black",strokeWidth:.5}),n.jsxs("g",{ref:t,children:[n.jsx("g",{fontSize:16,letterSpacing:1.2,children:e.note[0].split("\n").map(((e,t)=>n.jsx("text",{className:"rmg-name__zh",y:18*t,children:e},t)))}),n.jsx("g",{fontSize:10,letterSpacing:.33,transform:`translate(0,${18*e.note[0].split("\n").length})`,children:e.note[1].split("\n").map(((t,r)=>n.jsx("text",{className:"rmg-name__en",y:11*r,textLength:r<(e.note[1].match(/\n/g)?.length||0)?a.width:navigator.userAgent.includes("Firefox")?-1:0,lengthAdjust:"spacing",children:t},r)))})]})]})}),((e,t)=>e.note.toString()===t.note.toString())),st=r.memo((function(e){const{stnName:t,onUpdate:a}=e,s=r.useRef(null);return r.useEffect((()=>{s.current&&a&&a(s.current.getBBox())}),[JSON.stringify(t)]),n.jsxs("g",{ref:s,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:92,children:t.zh}),n.jsx("g",{fontSize:40,children:t.en?.split("\\")?.map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:72+42*t,children:e},t)))})]})}),((e,t)=>JSON.stringify(e.stnName)===JSON.stringify(t.stnName))),ot=e=>{const{secondaryName:t,transform:a}=e,s=r.useRef(null),[o,l]=r.useState({x:0,width:0});return r.useEffect((()=>{s.current&&l(s.current.getBBox())}),[t.toString()]),n.jsxs("g",{transform:a,children:[n.jsxs("g",{transform:"translate(0,4.5)",fontSize:36,children:[n.jsx("text",{textAnchor:"end",x:o.x-3,className:"rmg-name__zh",children:"("}),n.jsx("text",{textAnchor:"start",x:o.width+o.x+3,className:"rmg-name__zh",children:")"})]}),n.jsxs("g",{ref:s,textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:26,children:t.zh}),n.jsx("text",{dy:22,className:"rmg-name__en",fontSize:14,children:t.en})]})]})},lt=()=>{const{svg_height:e,svgWidth:t,theme:a,direction:s,info_panel_type:l,line_num:d,current_stn_idx:u,stn_list:m}=o((e=>e.param)),f=m[u],{localisedName:x,localisedSecondaryName:g}=f,[p,y]=r.useState({width:0}),j=x.en?.split("\\")?.length??1,v=f[s===i.left?"parents":"children"],S=[h.gz7w,h.gz11].includes(l),w={name:`translate(${(s===i.left?1:-1)*t[c.RunIn]/4},45)`,next:`translate(${(s===i.left?1:-1)*t[c.RunIn]/10},45)`},z=(t[c.RunIn]+p.width)/2+55,N={x:t.runin/2,y:.5*e-50-18*(j-1)-(g?29:0)},b={x:0,y:70+36*j},_={x:z,y:.5*e-30-18*(j-1)-(g?29:0)},O={x:s===i.left?z:(t[c.RunIn]-p.width)/2-55,y:.5*e-18*(j-1)-(g?29:0)};return n.jsxs("g",{children:[n.jsxs("g",{transform:l===h.gz2otis?w.name:"",children:[n.jsxs("g",{textAnchor:"middle",transform:`translate(${N.x},${N.y})`,children:[n.jsx(st,{stnName:x,onUpdate:y}),g&&n.jsx(ot,{secondaryName:g,transform:`translate(${b.x},${b.y})`})]}),n.jsx(le,{lineNum:d,stnNum:f.num,strokeColour:a[2],textClassName:"rmg-name__zh",transform:S?`translate(${O.x},${O.y})`:`translate(${_.x},${_.y})`,size:"lg"})]}),n.jsx("g",{transform:l===h.gz2otis?w.next:"",children:!v||v.includes("linestart")||v.includes("lineend")?n.jsx(n.Fragment,{}):1===v.length?n.jsx(it,{nextId:v[0],nameBBox:p,ignoreNumWidth:S}):n.jsx(ht,{nextIds:v,nameBBox:p,ignoreNumWidth:S})})]})},it=e=>{const{nextId:t,nameBBox:a,ignoreNumWidth:s}=e,l=o((e=>e.param.svgWidth)),h=o((e=>e.param.direction)),d=o((e=>e.param.stn_list[t])),{localisedName:u,localisedSecondaryName:m}=d,{zh:f="",en:x=""}=u,[g,p]=r.useState({width:0}),y=r.useRef(null);r.useEffect((()=>{y.current&&p(y.current.getBBox())}),[f,x]);const j=f.length,v=(l[c.RunIn]-a.width)/2;return n.jsxs(n.Fragment,{children:[n.jsxs("g",{id:"big_next",children:[n.jsxs("g",{textAnchor:"middle",style:{"--translate-x":h===i.left?"80px":j<=2?l[c.RunIn]-45-g.width-70+"px":l[c.RunIn]-45-g.width-52.5+"px"},children:[n.jsx("text",{className:"rmg-name__zh",fontSize:35,children:"下站"}),n.jsx("text",{className:"rmg-name__en",fontSize:17,dy:30,children:"Next"})]}),n.jsxs("g",{textAnchor:"start",ref:y,style:{"--translate-x":h===i.left?j<=2?"150px":"132.5px":l[c.RunIn]-45-g.width+"px"},children:[n.jsx("text",{className:"rmg-name__zh",fontSize:35,children:f}),n.jsx("g",{fontSize:17,children:x.split("\\").map(((e,t)=>n.jsx("text",{className:"rmg-name__en",dy:30+17*t,children:e},t)))})]}),m&&n.jsx("g",{textAnchor:"middle",style:{"--translate-x":h===i.left?j<=2?"150px":"132.5px":l[c.RunIn]-45-g.width+"px"},children:n.jsx(ct,{secName:m,transform:`translate(${g.width/2},${30+17*x.split("\\").length+5})`})})]}),n.jsx(Fe,{id:"arrow",style:{"--translate-x":h===i.left?(115+35*((j<=2?1:.5)+j)+v)/2-20+"px":(l[c.RunIn]-45-g.width-(j<=2?105:87.5)+v+e.nameBBox.width+(s?0:80.9))/2+20+"px","--rotate":h===i.left?"0deg":"180deg"}})]})},ct=e=>{const{secName:t,...a}=e,{zh:s,en:o}=t,l=r.useRef(null),[i,c]=r.useState({x:0,width:0});return r.useEffect((()=>{l.current&&c(l.current.getBBox())}),[s,o]),n.jsxs("g",{...a,children:[n.jsxs("g",{transform:"translate(0,2.5)",fontSize:25,children:[n.jsx("text",{textAnchor:"end",x:i.x-3,className:"rmg-name__zh",children:"("}),n.jsx("text",{textAnchor:"start",x:i.width+i.x+3,className:"rmg-name__zh",children:")"})]}),n.jsxs("g",{ref:l,children:[n.jsx("text",{className:"rmg-name__zh",fontSize:18,children:s}),n.jsx("text",{className:"rmg-name__en",fontSize:10,dy:15,children:o})]})]})},ht=e=>{const{nextIds:t,nameBBox:a,ignoreNumWidth:s}=e,{routes:l}=o((e=>e.helper)),h=o((e=>e.param.svgWidth)),d=o((e=>e.param.direction)),u=o((e=>e.param.stn_list)),m=t.map((e=>u[e].localisedName)),[f,x]=r.useState({width:0}),g=r.useRef([]);r.useEffect((()=>{x((e=>({...e,width:0}))),g.current.forEach((e=>{const t=e?.getBBox();x((e=>t?e.width>t.width?e:t:e))}))}),[m.toString()]);const p=e.nextIds.map((e=>l.reduce(((t,n)=>n.includes(e)?t.concat(n.filter((e=>!["linestart","lineend"].includes(e))).slice(d===i.left?0:-1)[0]):t),[]))),y=Math.max(...m.map((e=>e.zh?.length??0))),j=(h[c.RunIn]-a.width)/2;return n.jsxs(n.Fragment,{children:[n.jsx("g",{id:"big_next_2",children:m.map(((e,t)=>n.jsxs(r.Fragment,{children:[n.jsxs("g",{textAnchor:"middle",style:{"--translate-x":d===i.left?"72px":h[c.RunIn]-45-f.width-41+"px"},children:[n.jsx("text",{className:"rmg-name__zh",children:"下站"}),n.jsx("text",{className:"rmg-name__en",y:22,children:"Next"})]}),n.jsxs("g",{ref:e=>g.current[t]=e,textAnchor:"start",style:{"--translate-x":d===i.left?"113px":h[c.RunIn]-45-f.width+"px"},children:[n.jsx("text",{className:"rmg-name__zh",children:e.zh}),e.en?.split("\\")?.map(((e,t)=>n.jsx("text",{className:"rmg-name__en",y:22+13*t,children:e},t))),n.jsx("text",{className:"rmg-name__zh",y:-35,children:p[t].map((e=>u[e].localisedName.zh)).join("/")+"方向"}),n.jsx("text",{className:"rmg-name__en rmg-name__gzmtr--next2-dest",y:-20,children:"Towards "+p[t].map((e=>u[e].localisedName.en)).join("/").replace("\\"," ")})]})]},t)))}),n.jsx(Fe,{id:"arrow",style:{"--translate-x":d===i.left?(99+27*(1+y)+j)/2-20+"px":(h[c.RunIn]-45-f.width-41-27+j+e.nameBBox.width+(s?0:80.9))/2+20+"px","--rotate":d===i.left?"0deg":"180deg"}})]})};function dt(e){const{num:t,...r}=e;return n.jsxs("g",{textAnchor:"middle",fill:"var(--rmg-theme-fg)",...r,children:[n.jsx("circle",{cx:0,cy:0,r:33,fill:"var(--rmg-theme-colour)"}),n.jsx("text",{className:"rmg-name__en",fontSize:41,dy:-9,children:t}),n.jsx("text",{className:"rmg-name__zh",fontSize:14,dy:11,children:"站台"}),n.jsx("text",{className:"rmg-name__en",fontSize:10,dy:24,children:"Platform"})]})}function ut(e){const{canvasType:t}=e,{svgWidth:r,svg_height:a}=o((e=>e.param));return n.jsxs("g",{id:"otis_frame",strokeWidth:3,stroke:"black",children:[n.jsx("line",{y2:a,transform:`translate(${r[t]/2},0)`}),n.jsx("line",{x2:r[t],transform:"translate(0,90)"})]})}function mt({coachNumber:e,...t}){return n.jsxs("g",{...t,children:[n.jsx("path",{d:"M-24,-24 a24,24 0 0,0 0,48 h48 a24,24, 0 0,0 0,-48Z",fill:"whitesmoke",stroke:"lightgrey"}),n.jsxs("g",{textAnchor:"middle",transform:"translate(-15,-7)",children:[n.jsx("text",{className:"rmg-name__zh",fontSize:20,children:"车厢"}),n.jsx("text",{className:"rmg-name__en",fontSize:16,y:20,children:"Car"})]}),n.jsx("g",{textAnchor:"middle",transform:"translate(25,0)",children:n.jsx("text",{className:"rmg-name__zh",fontSize:28,children:e})})]})}const ft=c.RunIn;function xt(){const{canvasScale:e}=o((e=>e.app)),{svgWidth:t,svg_height:r,direction:a,info_panel_type:s,platform_num:l,psd_num:c,coachNum:d,theme:u}=o((e=>e.param)),m=t[ft],f=[h.gz7w,h.gz11].includes(s)?r-60:r/2-30,g={platform:`translate(${a===i.left?50:-50},45)`};return n.jsxs(x,{type:ft,svgWidth:m,svgHeight:r,canvasScale:e,theme:u,children:[n.jsx(p,{variant:s,isShowLight:s!==h.gz2otis,isShowPSD:s!==h.gz2otis&&c}),n.jsx("g",{transform:s===h.gz2otis?g.platform:"",children:n.jsx(dt,{num:l,style:{"--translate-x":(a===i.left?m-100:100)+"px","--translate-y":f+"px",transform:"translate(var(--translate-x, 100px), var(--translate-y))"}})}),n.jsx(mt,{coachNumber:d,transform:`translate(${.85*m},${.65*r})`}),n.jsx(lt,{}),s===h.gz2otis&&n.jsx(ut,{canvasType:ft})]})}e("default",{runin:n.jsx(xt,{}),railmap:n.jsx(Qe,{})})}}})); diff --git a/assets/index-legacy-DeqkMXhX.js b/assets/index-legacy-DgYeI7we.js similarity index 96% rename from assets/index-legacy-DeqkMXhX.js rename to assets/index-legacy-DgYeI7we.js index 633ed2f9..bcbee98f 100644 --- a/assets/index-legacy-DeqkMXhX.js +++ b/assets/index-legacy-DgYeI7we.js @@ -1 +1 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-CCR6yT8f.js","./svg-wrapper-legacy-BDwOt7GE.js"],(function(e,t){"use strict";var n,r,s,a,i;return{setters:[e=>{n=e.j},e=>{r=e.a},e=>{s=e.aR,a=e.u},e=>{i=e.S}],execute:function(){const t=s.Destination;function l(){const{canvasScale:e}=a((e=>e.app)),{svgWidth:r,svg_height:s,theme:l}=a((e=>e.param)),o=r[t];return n.jsxs(i,{type:t,svgWidth:o,svgHeight:s,canvasScale:e,theme:l,children:[n.jsx(c,{}),n.jsx(m,{})]})}const c=r.memo((function(){return n.jsx("defs",{children:n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})})),m=()=>{const{routes:e}=a((e=>e.helper)),{current_stn_idx:t,direction:r,stn_list:s}=a((e=>e.param));var i,l;const c=(i=r,l=t,[...new Set(e.filter((e=>e.includes(l))).map((e=>{const t=e.filter((e=>!["linestart","lineend"].includes(e)));return"l"===i?t[0]:t.reverse()[0]})))]).map((e=>[s[e].localisedName.zh,s[e].localisedName.en].filter((e=>void 0!==e)).map((e=>e.replace("\\",""))))).at(0)??["",""];return n.jsx(o,{dest_name:c})},o=e=>{const{dest_name:t}=e,{direction:r,svgWidth:s,svg_height:i,theme:l}=a((e=>e.param));return n.jsxs("g",{transform:`translate(0,${i-300})`,children:[n.jsx("path",{stroke:l[2],strokeWidth:12,d:"l"===r?`M${s.destination-24},16 H 36`:"M24,16 H "+(s.destination-36),transform:"translate(0,220)",markerEnd:"url(#slope)"}),n.jsx(d,{dest_name:t})]})},d=e=>{const{dest_name:t}=e,{direction:s,svgWidth:i}=a((e=>e.param)),l=r.useRef(null),c=r.useRef(null),[m,o]=r.useState(0);r.useEffect((()=>{if(l.current&&c.current){const e=Math.max(l.current.getBBox().width,c.current.getBBox().width);o(e)}}),[...t]);const d=m+24+20+128;return n.jsxs("g",{transform:"translate(0,145)",children:[n.jsx("g",{transform:`translate(${"l"===s?i.destination-d:d},20)`,children:n.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:`rotate(${"l"===s?0:180})scale(0.8)`})}),n.jsx("g",{ref:l,transform:`translate(${"l"===s?i.destination-24:24},25)`,textAnchor:"l"===s?"end":"start",children:n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:7,children:"往"+t[0]})}),n.jsx("g",{ref:c,transform:`translate(${"l"===s?i.destination-24:24},25)`,children:n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dx:"l"===s?-m:0,dy:40,children:"To "+t[1]})})]})},h=s.Platform,g=()=>{const{canvasScale:e}=a((e=>e.app)),{svgWidth:t,svg_height:r,theme:s}=a((e=>e.param)),l=t[h];return n.jsx(i,{type:h,svgWidth:l,svgHeight:r,canvasScale:e,theme:s,children:n.jsx(x,{})})},x=()=>{const{svgWidth:e,svg_height:t,platform_num:r}=a((e=>e.param)),s=e.platform/2;return n.jsxs("g",{transform:`translate(${s},${t-140})`,children:[n.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"end",children:r}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:50,x:10,dy:10,children:"站台"}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:30,x:10,dy:50,children:"Platform"})]})},u=s.RunIn,f=()=>{const{canvasScale:e}=a((e=>e.app)),{svgWidth:t,svg_height:r,theme:s}=a((e=>e.param)),l=t[u],c=r-300;return n.jsxs(i,{type:u,svgWidth:l,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(j,{}),n.jsx("g",{transform:`translate(0,${c})`,children:n.jsx(p,{})})]})},j=r.memo((function(){return n.jsx("defs",{children:n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})})),p=()=>{const{svgWidth:e,stn_list:t,current_stn_idx:r}=a((e=>e.param)),{localisedName:s,character_spacing:i}=t[r],{zh:l="",en:c=""}=s,m=e.runin/2;return n.jsxs("g",{transform:`translate(${m},160)`,textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,dx:i/2,letterSpacing:i,children:l.replace("\\","")}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:75,children:c.replace("\\","")})]})};e("default",{destination:n.jsx(l,{}),runin:n.jsx(f,{}),platform:n.jsx(g,{})})}}})); +System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js","./index-legacy-Dwehuq_g.js","./svg-wrapper-legacy-BDwOt7GE.js"],(function(e,t){"use strict";var n,r,s,a,i;return{setters:[e=>{n=e.j},e=>{r=e.a},e=>{s=e.aS,a=e.u},e=>{i=e.S}],execute:function(){const t=s.Destination;function l(){const{canvasScale:e}=a((e=>e.app)),{svgWidth:r,svg_height:s,theme:l}=a((e=>e.param)),o=r[t];return n.jsxs(i,{type:t,svgWidth:o,svgHeight:s,canvasScale:e,theme:l,children:[n.jsx(c,{}),n.jsx(m,{})]})}const c=r.memo((function(){return n.jsx("defs",{children:n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})})),m=()=>{const{routes:e}=a((e=>e.helper)),{current_stn_idx:t,direction:r,stn_list:s}=a((e=>e.param));var i,l;const c=(i=r,l=t,[...new Set(e.filter((e=>e.includes(l))).map((e=>{const t=e.filter((e=>!["linestart","lineend"].includes(e)));return"l"===i?t[0]:t.reverse()[0]})))]).map((e=>[s[e].localisedName.zh,s[e].localisedName.en].filter((e=>void 0!==e)).map((e=>e.replace("\\",""))))).at(0)??["",""];return n.jsx(o,{dest_name:c})},o=e=>{const{dest_name:t}=e,{direction:r,svgWidth:s,svg_height:i,theme:l}=a((e=>e.param));return n.jsxs("g",{transform:`translate(0,${i-300})`,children:[n.jsx("path",{stroke:l[2],strokeWidth:12,d:"l"===r?`M${s.destination-24},16 H 36`:"M24,16 H "+(s.destination-36),transform:"translate(0,220)",markerEnd:"url(#slope)"}),n.jsx(d,{dest_name:t})]})},d=e=>{const{dest_name:t}=e,{direction:s,svgWidth:i}=a((e=>e.param)),l=r.useRef(null),c=r.useRef(null),[m,o]=r.useState(0);r.useEffect((()=>{if(l.current&&c.current){const e=Math.max(l.current.getBBox().width,c.current.getBBox().width);o(e)}}),[...t]);const d=m+24+20+128;return n.jsxs("g",{transform:"translate(0,145)",children:[n.jsx("g",{transform:`translate(${"l"===s?i.destination-d:d},20)`,children:n.jsx("path",{d:"M60,60L0,0L60-60H100L55-15H160V15H55L100,60z",fill:"black",transform:`rotate(${"l"===s?0:180})scale(0.8)`})}),n.jsx("g",{ref:l,transform:`translate(${"l"===s?i.destination-24:24},25)`,textAnchor:"l"===s?"end":"start",children:n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:70,dy:7,children:"往"+t[0]})}),n.jsx("g",{ref:c,transform:`translate(${"l"===s?i.destination-24:24},25)`,children:n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:25,dx:"l"===s?-m:0,dy:40,children:"To "+t[1]})})]})},h=s.Platform,g=()=>{const{canvasScale:e}=a((e=>e.app)),{svgWidth:t,svg_height:r,theme:s}=a((e=>e.param)),l=t[h];return n.jsx(i,{type:h,svgWidth:l,svgHeight:r,canvasScale:e,theme:s,children:n.jsx(x,{})})},x=()=>{const{svgWidth:e,svg_height:t,platform_num:r}=a((e=>e.param)),s=e.platform/2;return n.jsxs("g",{transform:`translate(${s},${t-140})`,children:[n.jsx("text",{className:"rmg-name__en rmg-outline",dominantBaseline:"central",fontSize:120,textAnchor:"end",children:r}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:50,x:10,dy:10,children:"站台"}),n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:30,x:10,dy:50,children:"Platform"})]})},u=s.RunIn,f=()=>{const{canvasScale:e}=a((e=>e.app)),{svgWidth:t,svg_height:r,theme:s}=a((e=>e.param)),l=t[u],c=r-300;return n.jsxs(i,{type:u,svgWidth:l,svgHeight:r,canvasScale:e,theme:s,children:[n.jsx(j,{}),n.jsx("g",{transform:`translate(0,${c})`,children:n.jsx(p,{})})]})},j=r.memo((function(){return n.jsx("defs",{children:n.jsx("marker",{id:"slope",viewBox:"-1.5 0 3 1.5",refY:.5,children:n.jsx("path",{d:"M0,0L1,1H-1z",fill:"var(--rmg-theme-colour)"})})})})),p=()=>{const{svgWidth:e,stn_list:t,current_stn_idx:r}=a((e=>e.param)),{localisedName:s,character_spacing:i}=t[r],{zh:l="",en:c=""}=s,m=e.runin/2;return n.jsxs("g",{transform:`translate(${m},160)`,textAnchor:"middle",children:[n.jsx("text",{className:"rmg-name__zh rmg-outline",fontSize:112,dx:i/2,letterSpacing:i,children:l.replace("\\","")}),n.jsx("text",{className:"rmg-name__en rmg-outline",fontSize:36,dy:75,children:c.replace("\\","")})]})};e("default",{destination:n.jsx(l,{}),runin:n.jsx(f,{}),platform:n.jsx(g,{})})}}})); diff --git a/assets/index-legacy-CCR6yT8f.js b/assets/index-legacy-Dwehuq_g.js similarity index 71% rename from assets/index-legacy-CCR6yT8f.js rename to assets/index-legacy-Dwehuq_g.js index d056b668..d63055de 100644 --- a/assets/index-legacy-CCR6yT8f.js +++ b/assets/index-legacy-Dwehuq_g.js @@ -1 +1 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js"],(function(e,a){"use strict";var t,o,r,i,n,l,g,c,s,d,p,u,h,f,v,m,b,y,w,x,k,z,M,j,S,N,O,A,I,E,D,L,C,T,R,P,_,U,B,H,V,G,F,Y,W,Q,J,$,K,Z,q,X,ee,ae,te,oe,re,ie,ne,le,ge,ce,se,de,pe,ue,he,fe,ve,me,be,ye,we,xe,ke,ze,Me,je,Se,Ne,Oe,Ae,Ie,Ee,De,Le,Ce,Te,Re,Pe,_e,Ue,Be,He,Ve,Ge,Fe;return{setters:[e=>{t=e.u,o=e.a,r=e.j,i=e.P,n=e.c,l=e.F,g=e.f,c=e.W,s=e.T,d=e.b,p=e.d,u=e.e,h=e.g,f=e.h,v=e.B,m=e.D,b=e.I,y=e.i,w=e.k,x=e.S,k=e.l,z=e.m,M=e.n,j=e.o,S=e.C,N=e.p,O=e.q,A=e.r,I=e.s,E=e.t,D=e.v,L=e.w,C=e.x,T=e.y,R=e.z,P=e.A,_=e.E,U=e.G,B=e.M,H=e.H,V=e.J,G=e.K,F=e.L,Y=e.N,W=e.O,Q=e.Q,J=e.R,$=e.U,K=e.V,Z=e.X,q=e.Y,X=e.Z,ee=e._,ae=e.$,te=e.a0,oe=e.a1,re=e.a2,ie=e.a3,ne=e.a4,le=e.a5,ge=e.a6,ce=e.a7,se=e.a8,de=e.a9,pe=e.aa,ue=e.ab,he=e.ac,fe=e.ad,ve=e.ae,me=e.af,be=e.ag,ye=e.ah,we=e.ai,xe=e.aj,ke=e.ak,ze=e.al,Me=e.am,je=e.an,Se=e.ao},e=>{Ne=e.f,Oe=e.i,Ae=e.a,Ie=e.d,Ee=e.u,De=e.H,Le=e.h,Ce=e.j,Te=e.N,Re=e.k,Pe=e.l,_e=e.m,Ue=e.n,Be=e.o,He=e.p,Ve=e.q,Ge=e.P,Fe=e.I}],execute:function(){var Ye=document.createElement("style");Ye.textContent='.ag-measurement-container{--ag-legacy-styles-loaded: "true"}.ag-icon{font-family:var(--ag-icon-font-family);font-weight:var(--ag-icon-font-weight);color:var(--ag-icon-font-color);font-size:var(--ag-icon-size);line-height:var(--ag-icon-size);font-style:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:var(--ag-icon-size);height:var(--ag-icon-size);position:relative}.ag-icon:before{content:"";font-family:inherit}.ag-icon:after{background:transparent var(--ag-icon-image, none) center/contain no-repeat;display:var(--ag-icon-image-display);opacity:var(--ag-icon-image-opacity, .9);position:absolute;top:0;right:0;bottom:0;left:0;content:""}.ag-icon-aggregation{font-family:var(--ag-icon-font-family-aggregation, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-aggregation, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-aggregation, var(--ag-icon-font-color))}.ag-icon-aggregation:before{content:var(--ag-icon-font-code-aggregation, "");display:var(--ag-icon-font-display-aggregation, var(--ag-icon-font-display))}.ag-icon-aggregation:after{background-image:var(--ag-icon-image-aggregation, var(--ag-icon-image));display:var(--ag-icon-image-display-aggregation, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-aggregation, var(--ag-icon-image-opacity, .9))}.ag-icon-arrows{font-family:var(--ag-icon-font-family-arrows, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-arrows, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-arrows, var(--ag-icon-font-color))}.ag-icon-arrows:before{content:var(--ag-icon-font-code-arrows, "");display:var(--ag-icon-font-display-arrows, var(--ag-icon-font-display))}.ag-icon-arrows:after{background-image:var(--ag-icon-image-arrows, var(--ag-icon-image));display:var(--ag-icon-image-display-arrows, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-arrows, var(--ag-icon-image-opacity, .9))}.ag-icon-asc{font-family:var(--ag-icon-font-family-asc, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-asc, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-asc, var(--ag-icon-font-color))}.ag-icon-asc:before{content:var(--ag-icon-font-code-asc, "");display:var(--ag-icon-font-display-asc, var(--ag-icon-font-display))}.ag-icon-asc:after{background-image:var(--ag-icon-image-asc, var(--ag-icon-image));display:var(--ag-icon-image-display-asc, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-asc, var(--ag-icon-image-opacity, .9))}.ag-icon-cancel{font-family:var(--ag-icon-font-family-cancel, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-cancel, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-cancel, var(--ag-icon-font-color))}.ag-icon-cancel:before{content:var(--ag-icon-font-code-cancel, "");display:var(--ag-icon-font-display-cancel, var(--ag-icon-font-display))}.ag-icon-cancel:after{background-image:var(--ag-icon-image-cancel, var(--ag-icon-image));display:var(--ag-icon-image-display-cancel, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-cancel, var(--ag-icon-image-opacity, .9))}.ag-icon-chart{font-family:var(--ag-icon-font-family-chart, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-chart, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-chart, var(--ag-icon-font-color))}.ag-icon-chart:before{content:var(--ag-icon-font-code-chart, "");display:var(--ag-icon-font-display-chart, var(--ag-icon-font-display))}.ag-icon-chart:after{background-image:var(--ag-icon-image-chart, var(--ag-icon-image));display:var(--ag-icon-image-display-chart, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-chart, var(--ag-icon-image-opacity, .9))}.ag-icon-checkbox-checked{font-family:var(--ag-icon-font-family-checkbox-checked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-checkbox-checked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-checkbox-checked, var(--ag-icon-font-color))}.ag-icon-checkbox-checked:before{content:var(--ag-icon-font-code-checkbox-checked, "");display:var(--ag-icon-font-display-checkbox-checked, var(--ag-icon-font-display))}.ag-icon-checkbox-checked:after{background-image:var(--ag-icon-image-checkbox-checked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-checked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-checked, var(--ag-icon-image-opacity, .9))}.ag-icon-checkbox-indeterminate{font-family:var(--ag-icon-font-family-checkbox-indeterminate, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-checkbox-indeterminate, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-checkbox-indeterminate, var(--ag-icon-font-color))}.ag-icon-checkbox-indeterminate:before{content:var(--ag-icon-font-code-checkbox-indeterminate, "");display:var(--ag-icon-font-display-checkbox-indeterminate, var(--ag-icon-font-display))}.ag-icon-checkbox-indeterminate:after{background-image:var(--ag-icon-image-checkbox-indeterminate, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-indeterminate, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-indeterminate, var(--ag-icon-image-opacity, .9))}.ag-icon-checkbox-unchecked{font-family:var(--ag-icon-font-family-checkbox-unchecked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-checkbox-unchecked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-checkbox-unchecked, var(--ag-icon-font-color))}.ag-icon-checkbox-unchecked:before{content:var(--ag-icon-font-code-checkbox-unchecked, "");display:var(--ag-icon-font-display-checkbox-unchecked, var(--ag-icon-font-display))}.ag-icon-checkbox-unchecked:after{background-image:var(--ag-icon-image-checkbox-unchecked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-unchecked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-unchecked, var(--ag-icon-image-opacity, .9))}.ag-icon-color-picker{font-family:var(--ag-icon-font-family-color-picker, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-color-picker, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-color-picker, var(--ag-icon-font-color))}.ag-icon-color-picker:before{content:var(--ag-icon-font-code-color-picker, "");display:var(--ag-icon-font-display-color-picker, var(--ag-icon-font-display))}.ag-icon-color-picker:after{background-image:var(--ag-icon-image-color-picker, var(--ag-icon-image));display:var(--ag-icon-image-display-color-picker, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-color-picker, var(--ag-icon-image-opacity, .9))}.ag-icon-columns{font-family:var(--ag-icon-font-family-columns, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-columns, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-columns, var(--ag-icon-font-color))}.ag-icon-columns:before{content:var(--ag-icon-font-code-columns, "");display:var(--ag-icon-font-display-columns, var(--ag-icon-font-display))}.ag-icon-columns:after{background-image:var(--ag-icon-image-columns, var(--ag-icon-image));display:var(--ag-icon-image-display-columns, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-columns, var(--ag-icon-image-opacity, .9))}.ag-icon-contracted{font-family:var(--ag-icon-font-family-contracted, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-contracted, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-contracted, var(--ag-icon-font-color))}.ag-icon-contracted:before{content:var(--ag-icon-font-code-contracted, "");display:var(--ag-icon-font-display-contracted, var(--ag-icon-font-display))}.ag-icon-contracted:after{background-image:var(--ag-icon-image-contracted, var(--ag-icon-image));display:var(--ag-icon-image-display-contracted, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-contracted, var(--ag-icon-image-opacity, .9))}.ag-icon-copy{font-family:var(--ag-icon-font-family-copy, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-copy, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-copy, var(--ag-icon-font-color))}.ag-icon-copy:before{content:var(--ag-icon-font-code-copy, "");display:var(--ag-icon-font-display-copy, var(--ag-icon-font-display))}.ag-icon-copy:after{background-image:var(--ag-icon-image-copy, var(--ag-icon-image));display:var(--ag-icon-image-display-copy, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-copy, var(--ag-icon-image-opacity, .9))}.ag-icon-cross{font-family:var(--ag-icon-font-family-cross, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-cross, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-cross, var(--ag-icon-font-color))}.ag-icon-cross:before{content:var(--ag-icon-font-code-cross, "");display:var(--ag-icon-font-display-cross, var(--ag-icon-font-display))}.ag-icon-cross:after{background-image:var(--ag-icon-image-cross, var(--ag-icon-image));display:var(--ag-icon-image-display-cross, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-cross, var(--ag-icon-image-opacity, .9))}.ag-icon-csv{font-family:var(--ag-icon-font-family-csv, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-csv, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-csv, var(--ag-icon-font-color))}.ag-icon-csv:before{content:var(--ag-icon-font-code-csv, "");display:var(--ag-icon-font-display-csv, var(--ag-icon-font-display))}.ag-icon-csv:after{background-image:var(--ag-icon-image-csv, var(--ag-icon-image));display:var(--ag-icon-image-display-csv, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-csv, var(--ag-icon-image-opacity, .9))}.ag-icon-cut{font-family:var(--ag-icon-font-family-cut, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-cut, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-cut, var(--ag-icon-font-color))}.ag-icon-cut:before{content:var(--ag-icon-font-code-cut, "");display:var(--ag-icon-font-display-cut, var(--ag-icon-font-display))}.ag-icon-cut:after{background-image:var(--ag-icon-image-cut, var(--ag-icon-image));display:var(--ag-icon-image-display-cut, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-cut, var(--ag-icon-image-opacity, .9))}.ag-icon-desc{font-family:var(--ag-icon-font-family-desc, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-desc, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-desc, var(--ag-icon-font-color))}.ag-icon-desc:before{content:var(--ag-icon-font-code-desc, "");display:var(--ag-icon-font-display-desc, var(--ag-icon-font-display))}.ag-icon-desc:after{background-image:var(--ag-icon-image-desc, var(--ag-icon-image));display:var(--ag-icon-image-display-desc, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-desc, var(--ag-icon-image-opacity, .9))}.ag-icon-excel{font-family:var(--ag-icon-font-family-excel, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-excel, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-excel, var(--ag-icon-font-color))}.ag-icon-excel:before{content:var(--ag-icon-font-code-excel, "");display:var(--ag-icon-font-display-excel, var(--ag-icon-font-display))}.ag-icon-excel:after{background-image:var(--ag-icon-image-excel, var(--ag-icon-image));display:var(--ag-icon-image-display-excel, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-excel, var(--ag-icon-image-opacity, .9))}.ag-icon-expanded{font-family:var(--ag-icon-font-family-expanded, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-expanded, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-expanded, var(--ag-icon-font-color))}.ag-icon-expanded:before{content:var(--ag-icon-font-code-expanded, "");display:var(--ag-icon-font-display-expanded, var(--ag-icon-font-display))}.ag-icon-expanded:after{background-image:var(--ag-icon-image-expanded, var(--ag-icon-image));display:var(--ag-icon-image-display-expanded, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-expanded, var(--ag-icon-image-opacity, .9))}.ag-icon-eye-slash{font-family:var(--ag-icon-font-family-eye-slash, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-eye-slash, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-eye-slash, var(--ag-icon-font-color))}.ag-icon-eye-slash:before{content:var(--ag-icon-font-code-eye-slash, "");display:var(--ag-icon-font-display-eye-slash, var(--ag-icon-font-display))}.ag-icon-eye-slash:after{background-image:var(--ag-icon-image-eye-slash, var(--ag-icon-image));display:var(--ag-icon-image-display-eye-slash, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-eye-slash, var(--ag-icon-image-opacity, .9))}.ag-icon-eye{font-family:var(--ag-icon-font-family-eye, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-eye, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-eye, var(--ag-icon-font-color))}.ag-icon-eye:before{content:var(--ag-icon-font-code-eye, "");display:var(--ag-icon-font-display-eye, var(--ag-icon-font-display))}.ag-icon-eye:after{background-image:var(--ag-icon-image-eye, var(--ag-icon-image));display:var(--ag-icon-image-display-eye, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-eye, var(--ag-icon-image-opacity, .9))}.ag-icon-filter{font-family:var(--ag-icon-font-family-filter, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-filter, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-filter, var(--ag-icon-font-color))}.ag-icon-filter:before{content:var(--ag-icon-font-code-filter, "");display:var(--ag-icon-font-display-filter, var(--ag-icon-font-display))}.ag-icon-filter:after{background-image:var(--ag-icon-image-filter, var(--ag-icon-image));display:var(--ag-icon-image-display-filter, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-filter, var(--ag-icon-image-opacity, .9))}.ag-icon-first{font-family:var(--ag-icon-font-family-first, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-first, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-first, var(--ag-icon-font-color))}.ag-icon-first:before{content:var(--ag-icon-font-code-first, "");display:var(--ag-icon-font-display-first, var(--ag-icon-font-display))}.ag-icon-first:after{background-image:var(--ag-icon-image-first, var(--ag-icon-image));display:var(--ag-icon-image-display-first, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-first, var(--ag-icon-image-opacity, .9))}.ag-icon-grip{font-family:var(--ag-icon-font-family-grip, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-grip, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-grip, var(--ag-icon-font-color))}.ag-icon-grip:before{content:var(--ag-icon-font-code-grip, "");display:var(--ag-icon-font-display-grip, var(--ag-icon-font-display))}.ag-icon-grip:after{background-image:var(--ag-icon-image-grip, var(--ag-icon-image));display:var(--ag-icon-image-display-grip, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-grip, var(--ag-icon-image-opacity, .9))}.ag-icon-group{font-family:var(--ag-icon-font-family-group, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-group, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-group, var(--ag-icon-font-color))}.ag-icon-group:before{content:var(--ag-icon-font-code-group, "");display:var(--ag-icon-font-display-group, var(--ag-icon-font-display))}.ag-icon-group:after{background-image:var(--ag-icon-image-group, var(--ag-icon-image));display:var(--ag-icon-image-display-group, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-group, var(--ag-icon-image-opacity, .9))}.ag-icon-last{font-family:var(--ag-icon-font-family-last, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-last, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-last, var(--ag-icon-font-color))}.ag-icon-last:before{content:var(--ag-icon-font-code-last, "");display:var(--ag-icon-font-display-last, var(--ag-icon-font-display))}.ag-icon-last:after{background-image:var(--ag-icon-image-last, var(--ag-icon-image));display:var(--ag-icon-image-display-last, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-last, var(--ag-icon-image-opacity, .9))}.ag-icon-left{font-family:var(--ag-icon-font-family-left, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-left, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-left, var(--ag-icon-font-color))}.ag-icon-left:before{content:var(--ag-icon-font-code-left, "");display:var(--ag-icon-font-display-left, var(--ag-icon-font-display))}.ag-icon-left:after{background-image:var(--ag-icon-image-left, var(--ag-icon-image));display:var(--ag-icon-image-display-left, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-left, var(--ag-icon-image-opacity, .9))}.ag-icon-linked{font-family:var(--ag-icon-font-family-linked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-linked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-linked, var(--ag-icon-font-color))}.ag-icon-linked:before{content:var(--ag-icon-font-code-linked, "");display:var(--ag-icon-font-display-linked, var(--ag-icon-font-display))}.ag-icon-linked:after{background-image:var(--ag-icon-image-linked, var(--ag-icon-image));display:var(--ag-icon-image-display-linked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-linked, var(--ag-icon-image-opacity, .9))}.ag-icon-loading{font-family:var(--ag-icon-font-family-loading, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-loading, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-loading, var(--ag-icon-font-color))}.ag-icon-loading:before{content:var(--ag-icon-font-code-loading, "");display:var(--ag-icon-font-display-loading, var(--ag-icon-font-display))}.ag-icon-loading:after{background-image:var(--ag-icon-image-loading, var(--ag-icon-image));display:var(--ag-icon-image-display-loading, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-loading, var(--ag-icon-image-opacity, .9))}.ag-icon-maximize{font-family:var(--ag-icon-font-family-maximize, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-maximize, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-maximize, var(--ag-icon-font-color))}.ag-icon-maximize:before{content:var(--ag-icon-font-code-maximize, "");display:var(--ag-icon-font-display-maximize, var(--ag-icon-font-display))}.ag-icon-maximize:after{background-image:var(--ag-icon-image-maximize, var(--ag-icon-image));display:var(--ag-icon-image-display-maximize, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-maximize, var(--ag-icon-image-opacity, .9))}.ag-icon-menu{font-family:var(--ag-icon-font-family-menu, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-menu, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-menu, var(--ag-icon-font-color))}.ag-icon-menu:before{content:var(--ag-icon-font-code-menu, "");display:var(--ag-icon-font-display-menu, var(--ag-icon-font-display))}.ag-icon-menu:after{background-image:var(--ag-icon-image-menu, var(--ag-icon-image));display:var(--ag-icon-image-display-menu, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-menu, var(--ag-icon-image-opacity, .9))}.ag-icon-minimize{font-family:var(--ag-icon-font-family-minimize, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-minimize, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-minimize, var(--ag-icon-font-color))}.ag-icon-minimize:before{content:var(--ag-icon-font-code-minimize, "");display:var(--ag-icon-font-display-minimize, var(--ag-icon-font-display))}.ag-icon-minimize:after{background-image:var(--ag-icon-image-minimize, var(--ag-icon-image));display:var(--ag-icon-image-display-minimize, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-minimize, var(--ag-icon-image-opacity, .9))}.ag-icon-next{font-family:var(--ag-icon-font-family-next, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-next, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-next, var(--ag-icon-font-color))}.ag-icon-next:before{content:var(--ag-icon-font-code-next, "");display:var(--ag-icon-font-display-next, var(--ag-icon-font-display))}.ag-icon-next:after{background-image:var(--ag-icon-image-next, var(--ag-icon-image));display:var(--ag-icon-image-display-next, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-next, var(--ag-icon-image-opacity, .9))}.ag-icon-none{font-family:var(--ag-icon-font-family-none, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-none, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-none, var(--ag-icon-font-color))}.ag-icon-none:before{content:var(--ag-icon-font-code-none, "");display:var(--ag-icon-font-display-none, var(--ag-icon-font-display))}.ag-icon-none:after{background-image:var(--ag-icon-image-none, var(--ag-icon-image));display:var(--ag-icon-image-display-none, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-none, var(--ag-icon-image-opacity, .9))}.ag-icon-not-allowed{font-family:var(--ag-icon-font-family-not-allowed, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-not-allowed, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-not-allowed, var(--ag-icon-font-color))}.ag-icon-not-allowed:before{content:var(--ag-icon-font-code-not-allowed, "");display:var(--ag-icon-font-display-not-allowed, var(--ag-icon-font-display))}.ag-icon-not-allowed:after{background-image:var(--ag-icon-image-not-allowed, var(--ag-icon-image));display:var(--ag-icon-image-display-not-allowed, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-not-allowed, var(--ag-icon-image-opacity, .9))}.ag-icon-paste{font-family:var(--ag-icon-font-family-paste, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-paste, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-paste, var(--ag-icon-font-color))}.ag-icon-paste:before{content:var(--ag-icon-font-code-paste, "");display:var(--ag-icon-font-display-paste, var(--ag-icon-font-display))}.ag-icon-paste:after{background-image:var(--ag-icon-image-paste, var(--ag-icon-image));display:var(--ag-icon-image-display-paste, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-paste, var(--ag-icon-image-opacity, .9))}.ag-icon-pin{font-family:var(--ag-icon-font-family-pin, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-pin, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-pin, var(--ag-icon-font-color))}.ag-icon-pin:before{content:var(--ag-icon-font-code-pin, "");display:var(--ag-icon-font-display-pin, var(--ag-icon-font-display))}.ag-icon-pin:after{background-image:var(--ag-icon-image-pin, var(--ag-icon-image));display:var(--ag-icon-image-display-pin, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-pin, var(--ag-icon-image-opacity, .9))}.ag-icon-pivot{font-family:var(--ag-icon-font-family-pivot, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-pivot, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-pivot, var(--ag-icon-font-color))}.ag-icon-pivot:before{content:var(--ag-icon-font-code-pivot, "");display:var(--ag-icon-font-display-pivot, var(--ag-icon-font-display))}.ag-icon-pivot:after{background-image:var(--ag-icon-image-pivot, var(--ag-icon-image));display:var(--ag-icon-image-display-pivot, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-pivot, var(--ag-icon-image-opacity, .9))}.ag-icon-previous{font-family:var(--ag-icon-font-family-previous, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-previous, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-previous, var(--ag-icon-font-color))}.ag-icon-previous:before{content:var(--ag-icon-font-code-previous, "");display:var(--ag-icon-font-display-previous, var(--ag-icon-font-display))}.ag-icon-previous:after{background-image:var(--ag-icon-image-previous, var(--ag-icon-image));display:var(--ag-icon-image-display-previous, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-previous, var(--ag-icon-image-opacity, .9))}.ag-icon-radio-button-off{font-family:var(--ag-icon-font-family-radio-button-off, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-radio-button-off, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-radio-button-off, var(--ag-icon-font-color))}.ag-icon-radio-button-off:before{content:var(--ag-icon-font-code-radio-button-off, "");display:var(--ag-icon-font-display-radio-button-off, var(--ag-icon-font-display))}.ag-icon-radio-button-off:after{background-image:var(--ag-icon-image-radio-button-off, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-off, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-off, var(--ag-icon-image-opacity, .9))}.ag-icon-radio-button-on{font-family:var(--ag-icon-font-family-radio-button-on, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-radio-button-on, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-radio-button-on, var(--ag-icon-font-color))}.ag-icon-radio-button-on:before{content:var(--ag-icon-font-code-radio-button-on, "");display:var(--ag-icon-font-display-radio-button-on, var(--ag-icon-font-display))}.ag-icon-radio-button-on:after{background-image:var(--ag-icon-image-radio-button-on, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-on, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-on, var(--ag-icon-image-opacity, .9))}.ag-icon-right{font-family:var(--ag-icon-font-family-right, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-right, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-right, var(--ag-icon-font-color))}.ag-icon-right:before{content:var(--ag-icon-font-code-right, "");display:var(--ag-icon-font-display-right, var(--ag-icon-font-display))}.ag-icon-right:after{background-image:var(--ag-icon-image-right, var(--ag-icon-image));display:var(--ag-icon-image-display-right, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-right, var(--ag-icon-image-opacity, .9))}.ag-icon-save{font-family:var(--ag-icon-font-family-save, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-save, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-save, var(--ag-icon-font-color))}.ag-icon-save:before{content:var(--ag-icon-font-code-save, "");display:var(--ag-icon-font-display-save, var(--ag-icon-font-display))}.ag-icon-save:after{background-image:var(--ag-icon-image-save, var(--ag-icon-image));display:var(--ag-icon-image-display-save, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-save, var(--ag-icon-image-opacity, .9))}.ag-icon-small-down{font-family:var(--ag-icon-font-family-small-down, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-down, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-down, var(--ag-icon-font-color))}.ag-icon-small-down:before{content:var(--ag-icon-font-code-small-down, "");display:var(--ag-icon-font-display-small-down, var(--ag-icon-font-display))}.ag-icon-small-down:after{background-image:var(--ag-icon-image-small-down, var(--ag-icon-image));display:var(--ag-icon-image-display-small-down, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-down, var(--ag-icon-image-opacity, .9))}.ag-icon-small-left{font-family:var(--ag-icon-font-family-small-left, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-left, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-left, var(--ag-icon-font-color))}.ag-icon-small-left:before{content:var(--ag-icon-font-code-small-left, "");display:var(--ag-icon-font-display-small-left, var(--ag-icon-font-display))}.ag-icon-small-left:after{background-image:var(--ag-icon-image-small-left, var(--ag-icon-image));display:var(--ag-icon-image-display-small-left, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-left, var(--ag-icon-image-opacity, .9))}.ag-icon-small-right{font-family:var(--ag-icon-font-family-small-right, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-right, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-right, var(--ag-icon-font-color))}.ag-icon-small-right:before{content:var(--ag-icon-font-code-small-right, "");display:var(--ag-icon-font-display-small-right, var(--ag-icon-font-display))}.ag-icon-small-right:after{background-image:var(--ag-icon-image-small-right, var(--ag-icon-image));display:var(--ag-icon-image-display-small-right, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-right, var(--ag-icon-image-opacity, .9))}.ag-icon-small-up{font-family:var(--ag-icon-font-family-small-up, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-up, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-up, var(--ag-icon-font-color))}.ag-icon-small-up:before{content:var(--ag-icon-font-code-small-up, "");display:var(--ag-icon-font-display-small-up, var(--ag-icon-font-display))}.ag-icon-small-up:after{background-image:var(--ag-icon-image-small-up, var(--ag-icon-image));display:var(--ag-icon-image-display-small-up, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-up, var(--ag-icon-image-opacity, .9))}.ag-icon-tick{font-family:var(--ag-icon-font-family-tick, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tick, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tick, var(--ag-icon-font-color))}.ag-icon-tick:before{content:var(--ag-icon-font-code-tick, "");display:var(--ag-icon-font-display-tick, var(--ag-icon-font-display))}.ag-icon-tick:after{background-image:var(--ag-icon-image-tick, var(--ag-icon-image));display:var(--ag-icon-image-display-tick, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tick, var(--ag-icon-image-opacity, .9))}.ag-icon-tree-closed{font-family:var(--ag-icon-font-family-tree-closed, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tree-closed, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tree-closed, var(--ag-icon-font-color))}.ag-icon-tree-closed:before{content:var(--ag-icon-font-code-tree-closed, "");display:var(--ag-icon-font-display-tree-closed, var(--ag-icon-font-display))}.ag-icon-tree-closed:after{background-image:var(--ag-icon-image-tree-closed, var(--ag-icon-image));display:var(--ag-icon-image-display-tree-closed, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tree-closed, var(--ag-icon-image-opacity, .9))}.ag-icon-tree-indeterminate{font-family:var(--ag-icon-font-family-tree-indeterminate, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tree-indeterminate, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tree-indeterminate, var(--ag-icon-font-color))}.ag-icon-tree-indeterminate:before{content:var(--ag-icon-font-code-tree-indeterminate, "");display:var(--ag-icon-font-display-tree-indeterminate, var(--ag-icon-font-display))}.ag-icon-tree-indeterminate:after{background-image:var(--ag-icon-image-tree-indeterminate, var(--ag-icon-image));display:var(--ag-icon-image-display-tree-indeterminate, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tree-indeterminate, var(--ag-icon-image-opacity, .9))}.ag-icon-tree-open{font-family:var(--ag-icon-font-family-tree-open, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tree-open, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tree-open, var(--ag-icon-font-color))}.ag-icon-tree-open:before{content:var(--ag-icon-font-code-tree-open, "");display:var(--ag-icon-font-display-tree-open, var(--ag-icon-font-display))}.ag-icon-tree-open:after{background-image:var(--ag-icon-image-tree-open, var(--ag-icon-image));display:var(--ag-icon-image-display-tree-open, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tree-open, var(--ag-icon-image-opacity, .9))}.ag-icon-unlinked{font-family:var(--ag-icon-font-family-unlinked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-unlinked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-unlinked, var(--ag-icon-font-color))}.ag-icon-unlinked:before{content:var(--ag-icon-font-code-unlinked, "");display:var(--ag-icon-font-display-unlinked, var(--ag-icon-font-display))}.ag-icon-unlinked:after{background-image:var(--ag-icon-image-unlinked, var(--ag-icon-image));display:var(--ag-icon-image-display-unlinked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-unlinked, var(--ag-icon-image-opacity, .9))}.ag-icon-up{font-family:var(--ag-icon-font-family-up, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-up, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-up, var(--ag-icon-font-color))}.ag-icon-up:before{content:var(--ag-icon-font-code-up, "");display:var(--ag-icon-font-display-up, var(--ag-icon-font-display))}.ag-icon-up:after{background-image:var(--ag-icon-image-up, var(--ag-icon-image));display:var(--ag-icon-image-display-up, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-up, var(--ag-icon-image-opacity, .9))}.ag-icon-down{font-family:var(--ag-icon-font-family-down, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-down, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-down, var(--ag-icon-font-color))}.ag-icon-down:before{content:var(--ag-icon-font-code-down, "");display:var(--ag-icon-font-display-down, var(--ag-icon-font-display))}.ag-icon-down:after{background-image:var(--ag-icon-image-down, var(--ag-icon-image));display:var(--ag-icon-image-display-down, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-down, var(--ag-icon-image-opacity, .9))}.ag-icon-plus{font-family:var(--ag-icon-font-family-plus, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-plus, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-plus, var(--ag-icon-font-color))}.ag-icon-plus:before{content:var(--ag-icon-font-code-plus, "");display:var(--ag-icon-font-display-plus, var(--ag-icon-font-display))}.ag-icon-plus:after{background-image:var(--ag-icon-image-plus, var(--ag-icon-image));display:var(--ag-icon-image-display-plus, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-plus, var(--ag-icon-image-opacity, .9))}.ag-icon-minus{font-family:var(--ag-icon-font-family-minus, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-minus, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-minus, var(--ag-icon-font-color))}.ag-icon-minus:before{content:var(--ag-icon-font-code-minus, "");display:var(--ag-icon-font-display-minus, var(--ag-icon-font-display))}.ag-icon-minus:after{background-image:var(--ag-icon-image-minus, var(--ag-icon-image));display:var(--ag-icon-image-display-minus, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-minus, var(--ag-icon-image-opacity, .9))}.ag-icon-menu-alt{font-family:var(--ag-icon-font-family-menu-alt, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-menu-alt, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-menu-alt, var(--ag-icon-font-color))}.ag-icon-menu-alt:before{content:var(--ag-icon-font-code-menu-alt, "");display:var(--ag-icon-font-display-menu-alt, var(--ag-icon-font-display))}.ag-icon-menu-alt:after{background-image:var(--ag-icon-image-menu-alt, var(--ag-icon-image));display:var(--ag-icon-image-display-menu-alt, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-menu-alt, var(--ag-icon-image-opacity, .9))}.ag-icon-settings{font-family:var(--ag-icon-font-family-settings, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-settings, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-settings, var(--ag-icon-font-color))}.ag-icon-settings:before{content:var(--ag-icon-font-code-settings, "");display:var(--ag-icon-font-display-settings, var(--ag-icon-font-display))}.ag-icon-settings:after{background-image:var(--ag-icon-image-settings, var(--ag-icon-image));display:var(--ag-icon-image-display-settings, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-settings, var(--ag-icon-image-opacity, .9))}.ag-icon-row-drag:before{content:var(--ag-icon-font-code-grip)}.ag-left-arrow:before{content:var(--ag-icon-font-code-left)}.ag-right-arrow:before{content:var(--ag-icon-font-code-right)}[class*=ag-theme-]{--ag-foreground-color: #000;--ag-data-color: var(--ag-foreground-color);--ag-secondary-foreground-color: var(--ag-foreground-color);--ag-header-foreground-color: var(--ag-secondary-foreground-color);--ag-disabled-foreground-color: rgba(0, 0, 0, .5);--ag-background-color: #fff;--ag-header-background-color: transparent;--ag-tooltip-background-color: transparent;--ag-subheader-background-color: transparent;--ag-subheader-toolbar-background-color: transparent;--ag-control-panel-background-color: transparent;--ag-side-button-selected-background-color: var(--ag-control-panel-background-color);--ag-selected-row-background-color: #bbb;--ag-odd-row-background-color: var(--ag-background-color);--ag-modal-overlay-background-color: rgba(255, 255, 255, .66);--ag-menu-background-color: var(--ag-background-color);--ag-menu-border-color: var(--ag-border-color);--ag-panel-background-color: var(--ag-background-color);--ag-panel-border-color: var(--ag-border-color);--ag-row-hover-color: transparent;--ag-column-hover-color: transparent;--ag-range-selection-border-color: var(--ag-foreground-color);--ag-range-selection-border-style: solid;--ag-range-selection-background-color: rgba(0, 0, 0, .2);--ag-range-selection-background-color-2: var(--ag-range-selection-background-color);--ag-range-selection-background-color-3: var(--ag-range-selection-background-color);--ag-range-selection-background-color-4: var(--ag-range-selection-background-color);--ag-range-selection-highlight-color: var(--ag-range-selection-border-color);--ag-selected-tab-underline-color: var(--ag-range-selection-border-color);--ag-selected-tab-underline-width: 0;--ag-selected-tab-underline-transition-speed: 0s;--ag-range-selection-chart-category-background-color: rgba(0, 255, 132, .1);--ag-range-selection-chart-background-color: rgba(0, 88, 255, .1);--ag-header-cell-hover-background-color: transparent;--ag-header-cell-moving-background-color: var(--ag-background-color);--ag-value-change-value-highlight-background-color: rgba(22, 160, 133, .5);--ag-value-change-delta-up-color: #43a047;--ag-value-change-delta-down-color: #e53935;--ag-row-loading-skeleton-effect-color: rgba(66, 66, 66, .2);--ag-chip-background-color: transparent;--ag-chip-border-color: var(--ag-chip-background-color);--ag-borders: solid 1px;--ag-border-color: rgba(0, 0, 0, .25);--ag-borders-critical: var(--ag-borders);--ag-borders-secondary: var(--ag-borders);--ag-secondary-border-color: var(--ag-border-color);--ag-row-border-style: solid;--ag-row-border-width: 1px;--ag-cell-horizontal-border: solid transparent;--ag-borders-input: var(--ag-borders-secondary);--ag-input-border-color: var(--ag-secondary-border-color);--ag-borders-input-invalid: solid 2px;--ag-input-border-color-invalid: var(--ag-invalid-color);--ag-borders-side-button: var(--ag-borders);--ag-border-radius: 0px;--ag-wrapper-border-radius: var(--ag-border-radius);--ag-row-border-color: var(--ag-secondary-border-color);--ag-header-column-separator-display: none;--ag-header-column-separator-height: 100%;--ag-header-column-separator-width: 1px;--ag-header-column-separator-color: var(--ag-secondary-border-color);--ag-header-column-resize-handle-display: none;--ag-header-column-resize-handle-height: 50%;--ag-header-column-resize-handle-width: 1px;--ag-header-column-resize-handle-color: var(--ag-secondary-border-color);--ag-invalid-color: red;--ag-input-disabled-border-color: var(--ag-input-border-color);--ag-input-disabled-background-color: transparent;--ag-checkbox-background-color: transparent;--ag-checkbox-border-radius: var(--ag-border-radius);--ag-checkbox-checked-color: var(--ag-foreground-color);--ag-checkbox-unchecked-color: var(--ag-foreground-color);--ag-checkbox-indeterminate-color: var(--ag-checkbox-unchecked-color);--ag-toggle-button-off-border-color: var(--ag-checkbox-unchecked-color);--ag-toggle-button-off-background-color: var(--ag-checkbox-unchecked-color);--ag-toggle-button-on-border-color: var(--ag-checkbox-checked-color);--ag-toggle-button-on-background-color: var(--ag-checkbox-checked-color);--ag-toggle-button-switch-background-color: var(--ag-background-color);--ag-toggle-button-switch-border-color: var(--ag-toggle-button-off-border-color);--ag-toggle-button-border-width: 1px;--ag-toggle-button-height: var(--ag-icon-size);--ag-toggle-button-width: calc(var(--ag-toggle-button-height) * 2);--ag-input-focus-box-shadow: none;--ag-input-focus-border-color: none;--ag-minichart-selected-chart-color: var(--ag-checkbox-checked-color);--ag-minichart-selected-page-color: var(--ag-checkbox-checked-color);--ag-grid-size: 4px;--ag-icon-size: 12px;--ag-icon-font-weight: normal;--ag-icon-font-color: var(--ag-foreground-color);--ag-icon-image-display: block;--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: var(--ag-grid-size);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-cell-widget-spacing: var(--ag-cell-horizontal-padding);--ag-row-height: calc(var(--ag-grid-size) * 6 + 1px);--ag-header-height: var(--ag-row-height);--ag-list-item-height: calc(var(--ag-grid-size) * 5);--ag-column-select-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));--ag-set-filter-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));--ag-advanced-filter-builder-indent-size: calc(var(--ag-grid-size) * 2 + var(--ag-icon-size));--ag-row-group-indent-size: calc(var(--ag-cell-widget-spacing) + var(--ag-icon-size));--ag-filter-tool-panel-group-indent: 16px;--ag-tab-min-width: 220px;--ag-chart-menu-panel-width: var(--ag-tab-min-width);--ag-menu-min-width: 181px;--ag-side-bar-panel-width: 200px;--ag-font-family: "Helvetica Neue", sans-serif;--ag-font-size: 14px;--ag-card-radius: var(--ag-border-radius);--ag-card-shadow: none;--ag-popup-shadow: 5px 5px 10px rgba(0, 0, 0, .3);--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4}.ag-root-wrapper,.ag-sticky-top,.ag-sticky-bottom,.ag-dnd-ghost{background-color:var(--ag-background-color)}.ag-sticky-bottom{border-top:var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width)}.ag-root-wrapper,.ag-popup{--ag-indentation-level: 0}[class*=ag-theme-]{-webkit-font-smoothing:antialiased;font-family:var(--ag-font-family);font-size:var(--ag-font-size);line-height:normal;color:var(--ag-foreground-color)}ag-grid,ag-grid-angular,ag-grid-ng2,ag-grid-polymer,ag-grid-aurelia{display:block}.ag-aria-description-container{z-index:9999;border:0px;clip:rect(1px,1px,1px,1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap}.ag-hidden{display:none!important}.ag-invisible{visibility:hidden!important}.ag-drag-handle{cursor:grab}.ag-column-drop-wrapper{display:flex}.ag-column-drop-horizontal-half-width{display:inline-block;width:50%!important}.ag-unselectable{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}.ag-tab{position:relative}.ag-tab-guard{position:absolute;width:0;height:0;display:block}.ag-virtual-list-viewport .ag-tab-guard{position:sticky}.ag-tab-guard-top{top:1px}.ag-tab-guard-bottom{bottom:1px}.ag-select-agg-func-popup{position:absolute}.ag-input-wrapper,.ag-picker-field-wrapper{display:flex;flex:1 1 auto;align-items:center;line-height:normal;position:relative}.ag-shake-left-to-right{animation-direction:alternate;animation-duration:.2s;animation-iteration-count:infinite;animation-name:ag-shake-left-to-right}@keyframes ag-shake-left-to-right{0%{padding-left:6px;padding-right:2px}to{padding-left:2px;padding-right:6px}}.ag-root-wrapper{cursor:default;position:relative;display:flex;flex-direction:column;overflow:hidden;white-space:normal}.ag-root-wrapper.ag-layout-normal{height:100%}.ag-watermark{position:absolute;bottom:20px;right:25px;opacity:.7;transition:opacity 1s ease-out 3s;color:#9b9b9b}.ag-watermark:before{content:"";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjA5IiBoZWlnaHQ9IjM2IiB2aWV3Qm94PSIwIDAgMjA5IDM2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTkyLjk5MyAyMy42NTgyVjE1LjcxMTdIMTc5LjQ1MkwxNzEuNTA1IDIzLjY1ODJIMTkyLjk5M1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTIwOC4yNSAzLjk1MDgxSDE5MS4yNzZMMTgzLjI2NiAxMS44OTczSDIwOC4yNVYzLjk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTYzLjYyMiAzMS42MDQ4TDE2Ny42OTEgMjcuNTM2MUgxODEuNDIzVjM1LjQ4MjdIMTYzLjYyMlYzMS42MDQ4WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTY2LjYxIDE5Ljc4MDNIMTc1LjM4M0wxODMuMzkzIDExLjgzMzdIMTY2LjYxVjE5Ljc4MDNaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xNTcuMDExIDMxLjYwNDdIMTYzLjYyMkwxNzEuNTA1IDIzLjY1ODJIMTU3LjAxMVYzMS42MDQ3WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTkxLjI3NiAzLjk1MDgxTDE4Ny4yMDggOC4wMTk0MUgxNjEuMjdWMC4wNzI4NzZIMTkxLjI3NlYzLjk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMjAuODM5MSAzMC4yMDYxSDguMzc4OTJMNi4yMTc0NSAzNS41NDYySDAuNzUwMjQ0TDEyLjI1NjggOC41OTE1NUgxNy4wMjQ3TDI4LjUzMTMgMzUuNTQ2MkgyMy4wMDA1TDIwLjgzOTEgMzAuMjA2MVpNMTkuMTIyNyAyNS45NDY4TDE0LjYwOSAxNC45NDg4TDEwLjA5NTQgMjUuOTQ2OEgxOS4xMjI3WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTA0LjQzNyAxOC41MDg5QzEwNi4wMjYgMTYuMTU2NyAxMTAuMDMxIDE1LjkwMjQgMTExLjY4NCAxNS45MDI0VjIwLjQ3OTZDMTA5LjY1IDIwLjQ3OTYgMTA3LjYxNSAyMC41NDMyIDEwNi40MDcgMjEuNDMzMkMxMDUuMiAyMi4zMjMyIDEwNC41NjQgMjMuNTMxMSAxMDQuNTY0IDI0Ljk5MzJWMzUuNTQ2Mkg5OS42MDUxVjE1LjkwMjRIMTA0LjM3M0wxMDQuNDM3IDE4LjUwODlaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xMTkuMzc2IDE1LjkwMjRIMTE0LjQxOFYzNS41NDYySDExOS4zNzZWMTUuOTAyNFoiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTExOS4zNzYgNy4xMjkzOUgxMTQuNDE4VjEyLjk3OEgxMTkuMzc2VjcuMTI5MzlaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xNDMuOTc5IDcuMTI5MzlWMzUuNTQ2MkgxMzkuMjExTDEzOS4wODQgMzIuNTU4M0MxMzguMzg0IDMzLjU3NTUgMTM3LjQ5NCAzNC40MDE5IDEzNi40MTQgMzUuMDM3NkMxMzUuMzMzIDM1LjYwOTggMTMzLjk5OCAzNS45Mjc2IDEzMi40NzIgMzUuOTI3NkMxMzEuMTM3IDM1LjkyNzYgMTI5Ljg2NiAzNS42NzMzIDEyOC43ODUgMzUuMjI4M0MxMjcuNjQxIDM0LjcxOTcgMTI2LjYyMyAzNC4wODQgMTI1Ljc5NyAzMy4xOTRDMTI0Ljk3MSAzMi4zMDQgMTI0LjI3MSAzMS4yMjMzIDEyMy44MjYgMzAuMDE1NEMxMjMuMzE4IDI4LjgwNzUgMTIzLjEyNyAyNy40MDkgMTIzLjEyNyAyNS44ODMyQzEyMy4xMjcgMjQuMzU3NSAxMjMuMzgxIDIyLjk1ODkgMTIzLjgyNiAyMS42ODc0QzEyNC4zMzUgMjAuNDE2IDEyNC45NzEgMTkuMzM1MyAxMjUuNzk3IDE4LjQ0NTNDMTI2LjYyMyAxNy41NTUyIDEyNy42NDEgMTYuODU2IDEyOC43ODUgMTYuMzQ3NEMxMjkuOTI5IDE1LjgzODggMTMxLjEzNyAxNS41ODQ1IDEzMi40NzIgMTUuNTg0NUMxMzMuOTk4IDE1LjU4NDUgMTM1LjI2OSAxNS44Mzg4IDEzNi4zNSAxNi40MTA5QzEzNy40MzEgMTYuOTgzMSAxMzguMzIxIDE3Ljc0NTkgMTM5LjAyIDE4LjgyNjdWNy4xOTI5NUgxNDMuOTc5VjcuMTI5MzlaTTEzMy41NTMgMzEuNjY4M0MxMzUuMjA2IDMxLjY2ODMgMTM2LjQ3NyAzMS4wOTYyIDEzNy40OTQgMzAuMDE1NEMxMzguNTExIDI4LjkzNDcgMTM5LjAyIDI3LjQ3MjUgMTM5LjAyIDI1LjY5MjVDMTM5LjAyIDIzLjkxMjUgMTM4LjUxMSAyMi41MTM5IDEzNy40OTQgMjEuMzY5NkMxMzYuNDc3IDIwLjI4ODggMTM1LjIwNiAxOS43MTY3IDEzMy41NTMgMTkuNzE2N0MxMzEuOTYzIDE5LjcxNjcgMTMwLjYyOCAyMC4yODg4IDEyOS42NzUgMjEuMzY5NkMxMjguNjU4IDIyLjQ1MDMgMTI4LjE0OSAyMy45MTI1IDEyOC4xNDkgMjUuNjkyNUMxMjguMTQ5IDI3LjQ3MjUgMTI4LjY1OCAyOC44NzExIDEyOS42NzUgMjkuOTUxOEMxMzAuNjkyIDMxLjA5NjEgMTMxLjk2MyAzMS42NjgzIDEzMy41NTMgMzEuNjY4M1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTU3LjIwMjQgMjAuMzUyNUg0NC45MzNWMjQuNjExOEg1MS45MjU5QzUxLjczNTIgMjYuNzczMyA1MC45MDg4IDI4LjQyNjEgNDkuNTEwMiAyOS43NjExQzQ4LjExMTYgMzEuMDMyNiA0Ni4zMzE1IDMxLjY2ODMgNDQuMDQyOSAzMS42NjgzQzQyLjc3MTUgMzEuNjY4MyA0MS41NjM2IDMxLjQxNCA0MC41NDY1IDMwLjk2OUMzOS40NjU3IDMwLjUyNCAzOC41NzU3IDI5Ljg4ODMgMzcuODEyOSAyOC45OTgzQzM3LjA1IDI4LjE3MTggMzYuNDc3OCAyNy4xNTQ3IDM2LjAzMjggMjUuOTQ2OEMzNS41ODc4IDI0LjczODkgMzUuMzk3MSAyMy40Njc1IDM1LjM5NzEgMjIuMDA1M0MzNS4zOTcxIDIwLjU0MzIgMzUuNTg3OCAxOS4yNzE3IDM2LjAzMjggMTguMDYzOEMzNi40MTQzIDE2Ljg1NiAzNy4wNSAxNS45MDI0IDM3LjgxMjkgMTUuMDEyNEMzOC41NzU3IDE0LjE4NTkgMzkuNDY1NyAxMy41NTAyIDQwLjU0NjUgMTMuMDQxNkM0MS42MjcyIDEyLjU5NjYgNDIuNzcxNSAxMi4zNDIzIDQ0LjEwNjUgMTIuMzQyM0M0Ni43NzY2IDEyLjM0MjMgNDguODEwOSAxMi45NzggNTAuMjA5NSAxNC4yNDk1TDUzLjUxNTIgMTAuOTQzOEM1MS4wMzU5IDkuMDM2NTkgNDcuODU3MyA4LjAxOTQxIDQ0LjEwNjUgOC4wMTk0MUM0Mi4wMDg2IDguMDE5NDEgNDAuMTAxNSA4LjMzNzI5IDM4LjM4NSA5LjAzNjU5QzM2LjY2ODYgOS43MzU4OCAzNS4yMDY0IDEwLjYyNTkgMzMuOTk4NSAxMS44MzM3QzMyLjc5MDYgMTMuMDQxNiAzMS44MzcxIDE0LjUwMzggMzEuMjAxNCAxNi4yMjAzQzMwLjU2NTYgMTcuOTM2NyAzMC4yNDc4IDE5Ljg0MzggMzAuMjQ3OCAyMS44NzgyQzMwLjI0NzggMjMuOTEyNSAzMC41NjU2IDI1LjgxOTcgMzEuMjY0OSAyNy41MzYxQzMxLjk2NDIgMjkuMjUyNiAzMi44NTQyIDMwLjcxNDcgMzQuMDYyMSAzMS45MjI2QzM1LjI3IDMzLjEzMDUgMzYuNzMyMSAzNC4wODQxIDM4LjQ0ODYgMzQuNzE5OEM0MC4xNjUgMzUuNDE5MSA0Mi4wNzIyIDM1LjczNyA0NC4xMDY1IDM1LjczN0M0Ni4xNDA4IDM1LjczNyA0Ny45ODQ0IDM1LjQxOTEgNDkuNjM3MyAzNC43MTk4QzUxLjI5MDIgMzQuMDIwNSA1Mi42ODg4IDMzLjEzMDUgNTMuODMzMSAzMS45MjI2QzU0Ljk3NzQgMzAuNzE0NyA1NS44Njc0IDI5LjI1MjYgNTYuNTAzMSAyNy41MzYxQzU3LjEzODggMjUuODE5NyA1Ny40NTY3IDIzLjkxMjUgNTcuNDU2NyAyMS44NzgyVjIxLjA1MTdDNTcuMjY2IDIwLjkyNDYgNTcuMjAyNCAyMC42MDY3IDU3LjIwMjQgMjAuMzUyNVoiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTk1Ljk4MTUgMjAuMzUyNUg4My43MTIxVjI0LjYxMThIOTAuNzA1QzkwLjUxNDMgMjYuNzczMyA4OS42ODc5IDI4LjQyNjEgODguMjg5MyAyOS43NjExQzg2Ljg5MDcgMzEuMDMyNiA4NS4xMTA2IDMxLjY2ODMgODIuODIyIDMxLjY2ODNDODEuNTUwNiAzMS42NjgzIDgwLjM0MjcgMzEuNDE0IDc5LjMyNTYgMzAuOTY5Qzc4LjI0NDggMzAuNTI0IDc3LjM1NDggMjkuODg4MyA3Ni41OTIgMjguOTk4M0M3NS44MjkxIDI4LjE3MTggNzUuMjU3IDI3LjE1NDcgNzQuODExOSAyNS45NDY4Qzc0LjM2NjkgMjQuNzM4OSA3NC4xNzYyIDIzLjQ2NzUgNzQuMTc2MiAyMi4wMDUzQzc0LjE3NjIgMjAuNTQzMiA3NC4zNjY5IDE5LjI3MTcgNzQuODExOSAxOC4wNjM4Qzc1LjE5MzQgMTYuODU2IDc1LjgyOTEgMTUuOTAyNCA3Ni41OTIgMTUuMDEyNEM3Ny4zNTQ4IDE0LjE4NTkgNzguMjQ0OCAxMy41NTAyIDc5LjMyNTYgMTMuMDQxNkM4MC40MDYzIDEyLjU5NjYgODEuNTUwNiAxMi4zNDIzIDgyLjg4NTYgMTIuMzQyM0M4NS41NTU3IDEyLjM0MjMgODcuNTkgMTIuOTc4IDg4Ljk4ODYgMTQuMjQ5NUw5Mi4yOTQzIDEwLjk0MzhDODkuODE1IDkuMDM2NTkgODYuNjM2NCA4LjAxOTQxIDgyLjg4NTYgOC4wMTk0MUM4MC43ODc4IDguMDE5NDEgNzguODgwNiA4LjMzNzI5IDc3LjE2NDEgOS4wMzY1OUM3NS40NDc3IDkuNzM1ODggNzMuOTg1NSAxMC42MjU5IDcyLjc3NzYgMTEuODMzN0M3MS41Njk4IDEzLjA0MTYgNzAuNjE2MiAxNC41MDM4IDY5Ljk4MDUgMTYuMjIwM0M2OS4zNDQ3IDE3LjkzNjcgNjkuMDI2OSAxOS44NDM4IDY5LjAyNjkgMjEuODc4MkM2OS4wMjY5IDIzLjkxMjUgNjkuMzQ0NyAyNS44MTk3IDcwLjA0NCAyNy41MzYxQzcwLjc0MzMgMjkuMjUyNiA3MS42MzM0IDMwLjcxNDcgNzIuODQxMiAzMS45MjI2Qzc0LjA0OTEgMzMuMTMwNSA3NS41MTEyIDM0LjA4NDEgNzcuMjI3NyAzNC43MTk4Qzc4Ljk0NDEgMzUuNDE5MSA4MC44NTEzIDM1LjczNyA4Mi44ODU2IDM1LjczN0M4NC45MiAzNS43MzcgODYuNzYzNiAzNS40MTkxIDg4LjQxNjQgMzQuNzE5OEM5MC4wNjkzIDM0LjAyMDUgOTEuNDY3OSAzMy4xMzA1IDkyLjYxMjIgMzEuOTIyNkM5My43NTY1IDMwLjcxNDcgOTQuNjQ2NSAyOS4yNTI2IDk1LjI4MjIgMjcuNTM2MUM5NS45MTggMjUuODE5NyA5Ni4yMzU4IDIzLjkxMjUgOTYuMjM1OCAyMS44NzgyVjIxLjA1MTdDOTYuMDQ1MSAyMC45MjQ2IDk1Ljk4MTUgMjAuNjA2NyA5NS45ODE1IDIwLjM1MjVaIiBmaWxsPSIjOUI5QjlCIi8+Cjwvc3ZnPgo=);background-repeat:no-repeat;background-size:170px 40px;display:block;height:40px;width:170px}.ag-watermark-text{opacity:.5;font-weight:700;font-family:Impact,sans-serif;font-size:19px;padding-left:.7rem}.ag-root-wrapper-body{display:flex;flex-direction:row}.ag-root-wrapper-body.ag-layout-normal{flex:1 1 auto;height:0;min-height:0}.ag-root{position:relative;display:flex;flex-direction:column}.ag-root.ag-layout-normal,.ag-root.ag-layout-auto-height{overflow:hidden;flex:1 1 auto;width:0}.ag-root.ag-layout-normal{height:100%}.ag-header-viewport,.ag-floating-top-viewport,.ag-body-viewport,.ag-center-cols-viewport,.ag-floating-bottom-viewport,.ag-body-horizontal-scroll-viewport,.ag-body-vertical-scroll-viewport,.ag-virtual-list-viewport,.ag-sticky-top-viewport,.ag-sticky-bottom-viewport{position:relative;height:100%;min-width:0px;overflow:hidden;flex:1 1 auto}.ag-body-viewport,.ag-center-cols-viewport,.ag-header-viewport,.ag-floating-top-viewport,.ag-floating-bottom-viewport,.ag-sticky-top-viewport,.ag-sticky-bottom-viewport{overflow-x:auto;-ms-overflow-style:none!important;scrollbar-width:none!important}.ag-body-viewport::-webkit-scrollbar,.ag-center-cols-viewport::-webkit-scrollbar,.ag-header-viewport::-webkit-scrollbar,.ag-floating-top-viewport::-webkit-scrollbar,.ag-floating-bottom-viewport::-webkit-scrollbar,.ag-sticky-top-viewport::-webkit-scrollbar,.ag-sticky-bottom-viewport::-webkit-scrollbar{display:none!important}.ag-body-viewport{display:flex;overflow-x:hidden}.ag-body-viewport.ag-layout-normal{overflow-y:auto;-webkit-overflow-scrolling:touch}.ag-sticky-top-container,.ag-sticky-bottom-container{min-height:1px}.ag-center-cols-viewport{min-height:100%;width:100%}.ag-body-horizontal-scroll-viewport{overflow-x:scroll}.ag-body-vertical-scroll-viewport{overflow-y:scroll}.ag-virtual-list-viewport{overflow:auto;width:100%}.ag-header-container,.ag-floating-top-container,.ag-body-container,.ag-pinned-right-cols-container,.ag-center-cols-container,.ag-pinned-left-cols-container,.ag-floating-bottom-container,.ag-body-horizontal-scroll-container,.ag-body-vertical-scroll-container,.ag-full-width-container,.ag-floating-bottom-full-width-container,.ag-virtual-list-container,.ag-sticky-top-container,.ag-sticky-bottom-container{position:relative}.ag-header-container,.ag-floating-top-container,.ag-floating-bottom-container,.ag-sticky-top-container,.ag-sticky-bottom-container{height:100%;white-space:nowrap}.ag-center-cols-container,.ag-pinned-right-cols-container{display:block}.ag-body-horizontal-scroll-container{height:100%}.ag-body-vertical-scroll-container{width:100%}.ag-full-width-container,.ag-floating-top-full-width-container,.ag-floating-bottom-full-width-container,.ag-sticky-top-full-width-container,.ag-sticky-bottom-full-width-container{position:absolute;top:0;pointer-events:none}.ag-ltr .ag-full-width-container,.ag-ltr .ag-floating-top-full-width-container,.ag-ltr .ag-floating-bottom-full-width-container,.ag-ltr .ag-sticky-top-full-width-container,.ag-ltr .ag-sticky-bottom-full-width-container{left:0}.ag-rtl .ag-full-width-container,.ag-rtl .ag-floating-top-full-width-container,.ag-rtl .ag-floating-bottom-full-width-container,.ag-rtl .ag-sticky-top-full-width-container,.ag-rtl .ag-sticky-bottom-full-width-container{right:0}.ag-full-width-container{width:100%}.ag-floating-bottom-full-width-container,.ag-floating-top-full-width-container{display:inline-block;overflow:hidden;height:100%;width:100%}.ag-virtual-list-container{overflow:hidden}.ag-body{position:relative;display:flex;flex:1 1 auto;flex-direction:row!important;min-height:0}.ag-body-horizontal-scroll,.ag-body-vertical-scroll{min-height:0;min-width:0;display:flex;position:relative}.ag-body-horizontal-scroll.ag-scrollbar-invisible,.ag-body-vertical-scroll.ag-scrollbar-invisible{position:absolute;bottom:0}.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar,.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar{opacity:0;transition:opacity .4s;visibility:hidden}.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active,.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active{visibility:visible;opacity:1}.ag-body-horizontal-scroll{width:100%}.ag-body-horizontal-scroll.ag-scrollbar-invisible{left:0;right:0}.ag-body-vertical-scroll{height:100%}.ag-body-vertical-scroll.ag-scrollbar-invisible{top:0;z-index:10}.ag-ltr .ag-body-vertical-scroll.ag-scrollbar-invisible{right:0}.ag-rtl .ag-body-vertical-scroll.ag-scrollbar-invisible{left:0}.ag-force-vertical-scroll{overflow-y:scroll!important}.ag-horizontal-left-spacer,.ag-horizontal-right-spacer{height:100%;min-width:0;overflow-x:scroll}.ag-horizontal-left-spacer.ag-scroller-corner,.ag-horizontal-right-spacer.ag-scroller-corner{overflow-x:hidden}.ag-header,.ag-pinned-left-header,.ag-pinned-right-header{display:inline-block;overflow:hidden;position:relative}.ag-header-cell-sortable .ag-header-cell-label{cursor:pointer}.ag-header{display:flex;width:100%;white-space:nowrap}.ag-pinned-left-header,.ag-pinned-right-header{height:100%}.ag-header-row{position:absolute}.ag-header-row:not(.ag-header-row-column-group){overflow:hidden}.ag-header.ag-header-allow-overflow .ag-header-row{overflow:visible}.ag-header-cell{display:inline-flex;align-items:center;position:absolute;height:100%;overflow:hidden}.ag-header-cell.ag-header-active .ag-header-cell-menu-button,.ag-header-cell-filter-button{opacity:1}.ag-header-cell-menu-button:not(.ag-header-menu-always-show){transition:opacity .2s;opacity:0}.ag-header-group-cell-label,.ag-header-cell-label{display:flex;flex:1 1 auto;align-self:stretch;align-items:center;overflow:hidden}.ag-header-cell-label{text-overflow:ellipsis}.ag-header-group-cell-label.ag-sticky-label{position:sticky;flex:none;max-width:100%;overflow:visible}.ag-header-group-text{overflow:hidden;text-overflow:ellipsis}.ag-header-cell-text{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.ag-header-group-cell .ag-header-cell-comp-wrapper{display:flex}.ag-header-cell:not(.ag-header-cell-auto-height) .ag-header-cell-comp-wrapper{height:100%;display:flex;align-items:center}.ag-header-cell-comp-wrapper{width:100%}.ag-header-cell-wrap-text .ag-header-cell-comp-wrapper{white-space:normal}.ag-header-cell-comp-wrapper-limited-height>div{overflow:hidden}.ag-right-aligned-header .ag-header-cell-label{flex-direction:row-reverse}.ag-header-cell-resize{position:absolute;z-index:2;height:100%;width:8px;top:0;cursor:ew-resize}.ag-ltr .ag-header-cell-resize{right:-3px}.ag-rtl .ag-header-cell-resize{left:-3px}.ag-pinned-left-header .ag-header-cell-resize{right:-3px}.ag-pinned-right-header .ag-header-cell-resize{left:-3px}.ag-header-select-all{display:flex}.ag-header-cell-menu-button,.ag-header-cell-filter-button,.ag-side-button-button,.ag-panel-title-bar-button,.ag-floating-filter-button-button{cursor:pointer}.ag-column-moving .ag-cell,.ag-column-moving .ag-header-cell{transition:left .2s}.ag-column-moving .ag-header-group-cell{transition:left .2s,width .2s}.ag-column-panel{display:flex;flex-direction:column;overflow:hidden;flex:1 1 auto}.ag-column-select{position:relative;display:flex;flex-direction:column;overflow:hidden;flex:3 1 0px}.ag-column-select-header{position:relative;display:flex;flex:none}.ag-column-select-header-icon{position:relative}.ag-column-select-header-filter-wrapper{flex:1 1 auto}.ag-column-select-header-filter{width:100%}.ag-column-select-list{flex:1 1 0px;overflow:hidden}.ag-column-drop{position:relative;display:inline-flex;align-items:center;overflow:auto;width:100%}.ag-column-drop-list{display:flex;align-items:center}.ag-column-drop-cell{position:relative;display:flex;align-items:center}.ag-column-drop-cell-text{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.ag-column-drop-vertical{display:flex;flex-direction:column;overflow:hidden;align-items:stretch;flex:1 1 0px}.ag-column-drop-vertical-title-bar{display:flex;align-items:center;flex:none}.ag-column-drop-vertical-list{position:relative;align-items:stretch;flex-grow:1;flex-direction:column;overflow-x:auto}.ag-column-drop-vertical-list>*{flex:none}.ag-column-drop-empty .ag-column-drop-vertical-list{overflow:hidden}.ag-column-drop-vertical-empty-message{display:block}.ag-column-drop.ag-column-drop-horizontal{white-space:nowrap;overflow:hidden}.ag-column-drop-cell-button{cursor:pointer}.ag-filter-toolpanel{flex:1 1 0px;min-width:0}.ag-filter-toolpanel-header{position:relative}.ag-filter-toolpanel-header,.ag-filter-toolpanel-search{display:flex;align-items:center}.ag-filter-toolpanel-header>*,.ag-filter-toolpanel-search>*{display:flex;align-items:center}.ag-filter-apply-panel{display:flex;justify-content:flex-end;overflow:hidden}.ag-row-animation .ag-row{transition:transform .4s,top .4s,opacity .2s}.ag-row-animation .ag-row.ag-after-created{transition:transform .4s,top .4s,height .4s,opacity .2s}.ag-row-no-animation .ag-row{transition:none}.ag-row{white-space:nowrap;width:100%}.ag-row-loading{display:flex;align-items:center}.ag-row-position-absolute{position:absolute}.ag-row-position-relative{position:relative}.ag-full-width-row{overflow:hidden;pointer-events:all}.ag-row-inline-editing{z-index:1}.ag-row-dragging{z-index:2}.ag-stub-cell{display:flex;align-items:center}.ag-cell{display:inline-block;position:absolute;white-space:nowrap;height:100%}.ag-cell-value{flex:1 1 auto}.ag-cell-value,.ag-group-value{overflow:hidden;text-overflow:ellipsis}.ag-cell-wrap-text{white-space:normal;word-break:break-word}.ag-cell-wrapper{display:flex;align-items:center}.ag-cell-wrapper.ag-row-group{align-items:flex-start}.ag-sparkline-wrapper{position:absolute;height:100%;width:100%;left:0;top:0}.ag-sparkline-wrapper :where(canvas){position:absolute}.ag-full-width-row .ag-cell-wrapper.ag-row-group{height:100%;align-items:center}.ag-cell-inline-editing{z-index:1}.ag-cell-inline-editing .ag-cell-wrapper,.ag-cell-inline-editing .ag-cell-edit-wrapper,.ag-cell-inline-editing .ag-cell-editor,.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,.ag-cell-inline-editing .ag-cell-editor input{height:100%;width:100%;line-height:normal}.ag-cell .ag-icon{display:inline-block;vertical-align:middle}.ag-set-filter-item{display:flex;align-items:center;height:100%}.ag-set-filter-item-checkbox{display:flex;width:100%;height:100%}.ag-set-filter-group-icons{display:block}.ag-set-filter-group-icons>*{cursor:pointer}.ag-filter-body-wrapper{display:flex;flex-direction:column}.ag-filter-filter{flex:1 1 0px}.ag-filter-condition{display:flex;justify-content:center}.ag-floating-filter-body{position:relative;display:flex;flex:1 1 auto;height:100%}.ag-floating-filter-full-body{display:flex;flex:1 1 auto;height:100%;width:100%;align-items:center;overflow:hidden}.ag-floating-filter-full-body>div{flex:1 1 auto}.ag-floating-filter-input{align-items:center;display:flex;width:100%}.ag-floating-filter-input>*{flex:1 1 auto}.ag-floating-filter-button{display:flex;flex:none}.ag-set-floating-filter-input input[disabled]{pointer-events:none}.ag-dnd-ghost{display:inline-flex;align-items:center;cursor:move;white-space:nowrap}.ag-overlay{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:2}.ag-overlay-panel{display:flex;height:100%;width:100%}.ag-overlay-wrapper{display:flex;flex:none;width:100%;height:100%;align-items:center;justify-content:center;text-align:center}.ag-overlay-loading-wrapper{pointer-events:all}.ag-popup-child{z-index:5;top:0}.ag-popup-editor{position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-large-text-input{display:block}.ag-virtual-list-item{position:absolute;width:100%}.ag-floating-top{overflow:hidden;white-space:nowrap;width:100%;position:relative;display:flex}.ag-pinned-left-floating-top,.ag-pinned-right-floating-top{display:inline-block;overflow:hidden;position:relative;min-width:0px}.ag-floating-bottom{overflow:hidden;white-space:nowrap;width:100%;position:relative;display:flex}.ag-pinned-left-floating-bottom,.ag-pinned-right-floating-bottom{display:inline-block;overflow:hidden;position:relative;min-width:0px}.ag-sticky-top,.ag-sticky-bottom{position:absolute;display:flex;width:100%;overflow:hidden;height:0px}.ag-sticky-bottom{box-sizing:content-box!important}.ag-pinned-left-sticky-top,.ag-pinned-right-sticky-top{position:relative;height:100%;overflow:hidden}.ag-sticky-top-full-width-container,.ag-sticky-bottom-full-width-container{overflow:hidden;width:100%;height:100%}.ag-dialog,.ag-panel{display:flex;flex-direction:column;position:relative;overflow:hidden}.ag-panel-title-bar{display:flex;flex:none;align-items:center;cursor:default}.ag-panel-title-bar-title{flex:1 1 auto}.ag-panel-title-bar-buttons{display:flex}.ag-panel-title-bar-button{cursor:pointer}.ag-panel-content-wrapper{display:flex;flex:1 1 auto;position:relative;overflow:hidden}.ag-dialog{position:absolute}.ag-resizer{position:absolute;pointer-events:none;z-index:1;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-resizer.ag-resizer-topLeft{top:0;left:0;height:5px;width:5px;cursor:nwse-resize}.ag-resizer.ag-resizer-top{top:0;left:5px;right:5px;height:5px;cursor:ns-resize}.ag-resizer.ag-resizer-topRight{top:0;right:0;height:5px;width:5px;cursor:nesw-resize}.ag-resizer.ag-resizer-right{top:5px;right:0;bottom:5px;width:5px;cursor:ew-resize}.ag-resizer.ag-resizer-bottomRight{bottom:0;right:0;height:5px;width:5px;cursor:nwse-resize}.ag-resizer.ag-resizer-bottom{bottom:0;left:5px;right:5px;height:5px;cursor:ns-resize}.ag-resizer.ag-resizer-bottomLeft{bottom:0;left:0;height:5px;width:5px;cursor:nesw-resize}.ag-resizer.ag-resizer-left{left:0;top:5px;bottom:5px;width:5px;cursor:ew-resize}.ag-tooltip,.ag-tooltip-custom{position:absolute;z-index:99999}.ag-tooltip:not(.ag-tooltip-interactive),.ag-tooltip-custom:not(.ag-tooltip-interactive){pointer-events:none}.ag-value-slide-out{margin-right:5px;opacity:1;transition:opacity 3s,margin-right 3s;transition-timing-function:linear}.ag-value-slide-out-end{margin-right:10px;opacity:0}.ag-opacity-zero{opacity:0!important}.ag-menu{max-height:100%;overflow-y:auto;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-menu-column-select-wrapper{height:265px;overflow:auto}.ag-menu-column-select-wrapper .ag-column-select{height:100%}.ag-dialog .ag-panel-content-wrapper .ag-column-select{user-select:none}.ag-menu-list{display:table;width:100%}.ag-menu-option,.ag-menu-separator{display:table-row}.ag-menu-option-part,.ag-menu-separator-part{display:table-cell;vertical-align:middle}.ag-menu-option-text{white-space:nowrap}.ag-menu-option-custom{display:contents}.ag-compact-menu-option{width:100%;display:flex;flex-wrap:nowrap}.ag-compact-menu-option-text{white-space:nowrap;flex:1 1 auto}.ag-context-menu-loading-icon{position:absolute;pointer-events:none}.ag-pill-container{display:flex;gap:.25rem;flex-wrap:nowrap}.ag-pill{display:flex;white-space:nowrap;padding:0 .25rem;align-items:center}.ag-pill .ag-pill-button{border:none;padding:0}.ag-rich-select{cursor:default;outline:none;height:100%}.ag-rich-select-value{display:flex;align-items:center;height:100%}.ag-rich-select-value .ag-picker-field-display{overflow:hidden;text-overflow:ellipsis}.ag-rich-select-value .ag-picker-field-display.ag-display-as-placeholder{opacity:.5}.ag-rich-select-list{position:relative}.ag-rich-select-list .ag-loading-text{min-height:2rem}.ag-rich-select-row{display:flex;flex:1 1 auto;align-items:center;white-space:nowrap;overflow:hidden;height:100%}.ag-rich-select-field-input{flex:1 1 auto}.ag-rich-select-field-input .ag-input-field-input{padding:0!important;border:none!important;box-shadow:none!important;text-overflow:ellipsis}.ag-rich-select-field-input .ag-input-field-input::placeholder{opacity:.8}.ag-autocomplete{align-items:center;display:flex}.ag-autocomplete>*{flex:1 1 auto}.ag-autocomplete-list-popup{position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-autocomplete-list{position:relative}.ag-autocomplete-virtual-list-item{display:flex}.ag-autocomplete-row{display:flex;flex:1 1 auto;align-items:center;overflow:hidden}.ag-autocomplete-row-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-paging-panel{align-items:center;display:flex;justify-content:flex-end}.ag-paging-page-summary-panel{display:flex;align-items:center}.ag-paging-button{position:relative}.ag-disabled .ag-paging-page-summary-panel{pointer-events:none}.ag-tool-panel-wrapper{display:flex;overflow-y:auto;overflow-x:hidden;cursor:default;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-column-select-column,.ag-column-select-column-group,.ag-select-agg-func-item{position:relative;align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;height:100%}.ag-column-select-column>*,.ag-column-select-column-group>*,.ag-select-agg-func-item>*{flex:none}.ag-select-agg-func-item,.ag-column-select-column-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-column-select-checkbox{display:flex}.ag-tool-panel-horizontal-resize{cursor:ew-resize;height:100%;position:absolute;top:0;width:5px;z-index:1}.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize{right:-3px}.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize,.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize{left:-3px}.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize{right:-3px}.ag-details-row{width:100%}.ag-details-row-fixed-height{height:100%}.ag-details-grid{width:100%}.ag-details-grid-fixed-height{height:100%}.ag-header-group-cell{display:flex;align-items:center;height:100%;position:absolute}.ag-header-group-cell-no-group.ag-header-span-height{display:none}.ag-cell-label-container{display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;height:100%;width:100%}.ag-header-group-cell-label,.ag-cell-label-container{padding:5px 0}.ag-right-aligned-header .ag-cell-label-container{flex-direction:row}.ag-right-aligned-header .ag-header-cell-text{text-align:end}.ag-side-bar{display:flex;flex-direction:row-reverse}.ag-side-bar-left{order:-1;flex-direction:row}.ag-side-button-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-wrap:nowrap;white-space:nowrap;outline:none;cursor:pointer}.ag-side-button-label{writing-mode:vertical-lr}.ag-status-bar{display:flex;justify-content:space-between;overflow:hidden}.ag-status-panel{display:inline-flex}.ag-status-name-value{white-space:nowrap}.ag-status-bar-left,.ag-status-bar-center,.ag-status-bar-right{display:inline-flex}.ag-icon{display:block;speak:none}.ag-group{position:relative;width:100%}.ag-group-title-bar{display:flex;align-items:center}.ag-group-title{display:inline;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-group-title-bar .ag-group-title{cursor:default}.ag-group-toolbar{display:flex;align-items:center}.ag-group-container{display:flex}.ag-disabled .ag-group-container{pointer-events:none}.ag-group-container-horizontal{flex-direction:row;flex-wrap:wrap}.ag-group-container-vertical{flex-direction:column}.ag-column-group-icons{display:block}.ag-column-group-icons>*{cursor:pointer}.ag-group-item-alignment-stretch .ag-group-item{align-items:stretch}.ag-group-item-alignment-start .ag-group-item{align-items:flex-start}.ag-group-item-alignment-end .ag-group-item{align-items:flex-end}.ag-toggle-button-icon{transition:right .3s;position:absolute;top:-1px}.ag-input-field,.ag-select{display:flex;flex-direction:row;align-items:center}.ag-input-field-input{flex:1 1 auto}.ag-floating-filter-input .ag-input-field-input[type=date]{width:1px}.ag-range-field,.ag-angle-select{display:flex;align-items:center}.ag-angle-select-wrapper{display:flex}.ag-angle-select-parent-circle{display:block;position:relative}.ag-angle-select-child-circle{position:absolute}.ag-slider-wrapper{display:flex}.ag-slider-wrapper .ag-input-field,.ag-picker-field-display{flex:1 1 auto}.ag-picker-field{display:flex;align-items:center}.ag-picker-field-icon{display:flex;border:0;padding:0;margin:0;cursor:pointer}.ag-picker-field-wrapper{overflow:hidden}.ag-label-align-right .ag-label{order:1}.ag-label-align-right>*{flex:none}.ag-label-align-top{flex-direction:column;align-items:flex-start}.ag-label-align-top>*{align-self:stretch}.ag-label-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.ag-color-panel{width:100%;display:flex;flex-direction:column;text-align:center}.ag-spectrum-color{flex:1 1 auto;position:relative;overflow:visible;cursor:default}.ag-spectrum-fill{position:absolute;top:0;left:0;right:0;bottom:0}.ag-spectrum-val{cursor:pointer}.ag-spectrum-dragger{position:absolute;pointer-events:none;cursor:pointer}.ag-spectrum-hue,.ag-spectrum-alpha{cursor:default}.ag-spectrum-hue-background{background:linear-gradient(to left,red 3%,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);width:100%;height:100%}.ag-spectrum-alpha{--ag-spectrum-alpha-background-checked: url(\'data:image/svg+xml;utf8,\')}.ag-spectrum-alpha-background{background:linear-gradient(to right,var(--ag-internal-spectrum-alpha-color-from),var(--ag-internal-spectrum-alpha-color-to)),var(--ag-spectrum-alpha-background-checked) top left/4px 4px;width:100%;height:100%}.ag-spectrum-tool{cursor:pointer;position:relative}.ag-spectrum-slider{position:absolute;pointer-events:none}.ag-spectrum-alpha .ag-spectrum-slider{background:linear-gradient(to bottom,var(--ag-internal-spectrum-alpha-color),var(--ag-internal-spectrum-alpha-color)) #fff}.ag-recent-colors{display:flex}.ag-recent-color{cursor:pointer}.ag-pill-select{display:flex;flex-direction:column}.ag-pill-select .ag-column-drop{flex:unset}.ag-ltr{direction:ltr}.ag-ltr .ag-body,.ag-ltr .ag-floating-top,.ag-ltr .ag-floating-bottom,.ag-ltr .ag-header,.ag-ltr .ag-sticky-top,.ag-ltr .ag-sticky-bottom,.ag-ltr .ag-body-viewport,.ag-ltr .ag-body-horizontal-scroll{flex-direction:row}.ag-rtl{direction:rtl}.ag-rtl .ag-body,.ag-rtl .ag-floating-top,.ag-rtl .ag-floating-bottom,.ag-rtl .ag-header,.ag-rtl .ag-sticky-top,.ag-rtl .ag-sticky-bottom,.ag-rtl .ag-body-viewport,.ag-rtl .ag-body-horizontal-scroll{flex-direction:row-reverse}.ag-rtl .ag-icon-contracted,.ag-rtl .ag-icon-expanded,.ag-rtl .ag-icon-tree-closed{display:block;transform:rotate(180deg)}.ag-body .ag-body-viewport{-webkit-overflow-scrolling:touch}.ag-measurement-container{width:0;overflow:hidden;visibility:hidden}.ag-measurement-container div{position:absolute}.ag-layout-print.ag-body{display:block;height:unset}.ag-layout-print.ag-root-wrapper{display:inline-block}.ag-layout-print .ag-body-vertical-scroll,.ag-layout-print .ag-body-horizontal-scroll{display:none}.ag-layout-print.ag-force-vertical-scroll{overflow-y:visible!important}@media print{.ag-root-wrapper.ag-layout-print{display:table}.ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,.ag-root-wrapper.ag-layout-print .ag-root,.ag-root-wrapper.ag-layout-print .ag-body-viewport,.ag-root-wrapper.ag-layout-print .ag-center-cols-container,.ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,.ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,.ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport{height:auto!important;overflow:hidden!important;display:block!important}.ag-root-wrapper.ag-layout-print .ag-row,.ag-root-wrapper.ag-layout-print .ag-cell{break-inside:avoid}}[class^=ag-],[class^=ag-]:focus,[class^=ag-]:after,[class^=ag-]:before{box-sizing:border-box;outline:none}[class^=ag-]::-ms-clear{display:none}.ag-checkbox .ag-input-wrapper,.ag-radio-button .ag-input-wrapper{overflow:visible}.ag-range-field .ag-input-wrapper{height:100%}.ag-toggle-button{flex:none;width:unset;min-width:unset}.ag-button{border-radius:0;color:var(--ag-foreground-color)}.ag-button:hover{background-color:transparent}.ag-ltr .ag-label-align-right .ag-label{margin-left:var(--ag-grid-size)}.ag-rtl .ag-label-align-right .ag-label{margin-right:var(--ag-grid-size)}input[class^=ag-]{margin:0;background-color:var(--ag-background-color)}textarea[class^=ag-],select[class^=ag-]{background-color:var(--ag-background-color)}input[class^=ag-]:not([type]),input[class^=ag-][type=text],input[class^=ag-][type=number],input[class^=ag-][type=tel],input[class^=ag-][type=date],input[class^=ag-][type=datetime-local],textarea[class^=ag-]{font-size:inherit;line-height:inherit;color:inherit;font-family:inherit;border:var(--ag-borders-input) var(--ag-input-border-color)}input[class^=ag-]:not([type]):disabled,input[class^=ag-][type=text]:disabled,input[class^=ag-][type=number]:disabled,input[class^=ag-][type=tel]:disabled,input[class^=ag-][type=date]:disabled,input[class^=ag-][type=datetime-local]:disabled,textarea[class^=ag-]:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}input[class^=ag-]:not([type]):focus,input[class^=ag-][type=text]:focus,input[class^=ag-][type=number]:focus,input[class^=ag-][type=tel]:focus,input[class^=ag-][type=date]:focus,input[class^=ag-][type=datetime-local]:focus,textarea[class^=ag-]:focus{outline:none;box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-input-focus-border-color)}input[class^=ag-]:not([type]):invalid,input[class^=ag-][type=text]:invalid,input[class^=ag-][type=number]:invalid,input[class^=ag-][type=tel]:invalid,input[class^=ag-][type=date]:invalid,input[class^=ag-][type=datetime-local]:invalid,textarea[class^=ag-]:invalid{border:var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid)}input[class^=ag-][type=number]:not(.ag-number-field-input-stepper){-moz-appearance:textfield}input[class^=ag-][type=number]:not(.ag-number-field-input-stepper)::-webkit-outer-spin-button,input[class^=ag-][type=number]:not(.ag-number-field-input-stepper)::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[class^=ag-][type=range]{padding:0}input[class^=ag-][type=button]:focus,button[class^=ag-]:focus{box-shadow:var(--ag-input-focus-box-shadow)}.ag-drag-handle{color:var(--ag-secondary-foreground-color)}.ag-list-item,.ag-virtual-list-item{height:var(--ag-list-item-height)}.ag-virtual-list-item:focus-visible{outline:none}.ag-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-select-list{background-color:var(--ag-background-color);overflow-y:auto;overflow-x:hidden;border-radius:var(--ag-border-radius);border:var(--ag-borders) var(--ag-border-color)}.ag-list-item{display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-list-item.ag-active-item{background-color:var(--ag-row-hover-color)}.ag-select-list-item{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ag-ltr .ag-select-list-item{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-select-list-item{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-select-list-item span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ag-row-drag,.ag-selection-checkbox,.ag-group-expanded,.ag-group-contracted{color:var(--ag-secondary-foreground-color)}.ag-ltr .ag-row-drag,.ag-ltr .ag-selection-checkbox,.ag-ltr .ag-group-expanded,.ag-ltr .ag-group-contracted{margin-right:var(--ag-cell-widget-spacing)}.ag-rtl .ag-row-drag,.ag-rtl .ag-selection-checkbox,.ag-rtl .ag-group-expanded,.ag-rtl .ag-group-contracted{margin-left:var(--ag-cell-widget-spacing)}.ag-cell-wrapper>*:not(.ag-cell-value):not(.ag-group-value){--ag-internal-calculated-line-height: var( --ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)) );--ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));height:min(var(--ag-internal-calculated-line-height),var(--ag-internal-padded-row-height));display:flex;align-items:center;flex:none}.ag-group-expanded,.ag-group-contracted{cursor:pointer}.ag-group-title-bar-icon{cursor:pointer;flex:none;color:var(--ag-secondary-foreground-color)}.ag-ltr .ag-group-child-count{margin-left:2px}.ag-rtl .ag-group-child-count{margin-right:2px}.ag-group-title-bar{background-color:var(--ag-subheader-background-color);padding:var(--ag-grid-size)}.ag-group-toolbar{padding:var(--ag-grid-size);background-color:var(--ag-subheader-toolbar-background-color)}.ag-disabled-group-title-bar,.ag-disabled-group-container{opacity:.5}.group-item{margin:calc(var(--ag-grid-size) * .5) 0}.ag-label{white-space:nowrap}.ag-ltr .ag-label{margin-right:var(--ag-grid-size)}.ag-rtl .ag-label{margin-left:var(--ag-grid-size)}.ag-label-align-top .ag-label{margin-bottom:calc(var(--ag-grid-size) * .5)}.ag-angle-select[disabled]{color:var(--ag-disabled-foreground-color);pointer-events:none}.ag-angle-select[disabled] .ag-angle-select-field{opacity:.4}.ag-ltr .ag-slider-field,.ag-ltr .ag-angle-select-field{margin-right:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-slider-field,.ag-rtl .ag-angle-select-field{margin-left:calc(var(--ag-grid-size) * 2)}.ag-angle-select-parent-circle{width:24px;height:24px;border-radius:12px;border:solid 1px;border-color:var(--ag-border-color);background-color:var(--ag-background-color)}.ag-angle-select-child-circle{top:4px;left:12px;width:6px;height:6px;margin-left:-3px;margin-top:-4px;border-radius:3px;background-color:var(--ag-secondary-foreground-color)}.ag-picker-field-wrapper{border:var(--ag-borders);border-color:var(--ag-border-color);border-radius:5px;background-color:var(--ag-background-color)}.ag-picker-field-wrapper:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-picker-field-wrapper.ag-picker-has-focus,.ag-picker-field-wrapper:focus-within{outline:none;box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-input-focus-border-color)}.ag-picker-field-button{background-color:var(--ag-background-color);color:var(--ag-secondary-foreground-color)}.ag-dialog.ag-color-dialog{border-radius:5px}.ag-color-picker .ag-picker-field-wrapper{padding-left:var(--ag-grid-size);padding-right:var(--ag-grid-size)}.ag-color-picker .ag-picker-field-display{display:flex;flex-direction:row;align-items:center;min-height:var(--ag-list-item-height)}.ag-ltr .ag-color-picker-color,.ag-ltr .ag-color-picker-value{margin-right:var(--ag-grid-size)}.ag-rtl .ag-color-picker-color,.ag-rtl .ag-color-picker-value{margin-left:var(--ag-grid-size)}.ag-color-panel{padding:var(--ag-grid-size)}.ag-spectrum-color{background-color:red;border-radius:2px}.ag-spectrum-tools{padding:10px}.ag-spectrum-sat{background-image:linear-gradient(to right,#fff,rgba(204,154,129,0))}.ag-spectrum-val{background-image:linear-gradient(to top,#000,rgba(204,154,129,0))}.ag-spectrum-dragger{border-radius:12px;height:12px;width:12px;border:2px solid white;background:#000;box-shadow:0 0 2px rgba(0,0,0,.24)}.ag-spectrum-hue-background,.ag-spectrum-alpha-background{border-radius:2px}.ag-spectrum-tool{margin-bottom:10px;height:11px;border-radius:2px}.ag-spectrum-slider{margin-top:-12px;width:13px;height:13px;border-radius:13px;border:2px solid white;box-shadow:0 1px 4px rgba(0,0,0,.37)}.ag-recent-colors{margin-top:10px}.ag-recent-color{margin:0 3px}.ag-recent-color:first-child{margin-left:0}.ag-recent-color:last-child{margin-right:0}.ag-spectrum-color:focus-visible:not(:disabled):not([readonly]),.ag-spectrum-slider:focus-visible:not(:disabled):not([readonly]),.ag-recent-color:focus-visible:not(:disabled):not([readonly]){box-shadow:var(--ag-input-focus-box-shadow)}.ag-ltr .ag-color-input input[class^=ag-][type=text].ag-input-field-input{padding-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-rtl .ag-color-input input[class^=ag-][type=text].ag-input-field-input{padding-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-color-input .ag-color-input-color{position:absolute}.ag-ltr .ag-color-input .ag-color-input-color{margin-left:var(--ag-grid-size)}.ag-rtl .ag-color-input .ag-color-input-color{margin-right:var(--ag-grid-size)}.ag-color-picker-color,.ag-color-input-color{width:var(--ag-icon-size);height:var(--ag-icon-size);border:var(--ag-borders-secondary) var(--ag-secondary-border-color);border-radius:2px}.ag-dnd-ghost{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);overflow:hidden;text-overflow:ellipsis;border:var(--ag-borders-secondary) var(--ag-secondary-border-color);color:var(--ag-secondary-foreground-color);height:var(--ag-header-height);line-height:var(--ag-header-height);margin:0;padding:0 calc(var(--ag-grid-size) * 2);transform:translateY(calc(var(--ag-grid-size) * 2))}.ag-dnd-ghost-icon{margin-right:var(--ag-grid-size);color:var(--ag-foreground-color)}.ag-popup-child:not(.ag-tooltip-custom){box-shadow:var(--ag-popup-shadow)}.ag-select .ag-picker-field-wrapper{min-height:var(--ag-list-item-height);cursor:default}.ag-ltr .ag-select .ag-picker-field-wrapper{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-select .ag-picker-field-wrapper{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-ltr .ag-select .ag-picker-field-wrapper{padding-right:var(--ag-grid-size)}.ag-rtl .ag-select .ag-picker-field-wrapper{padding-left:var(--ag-grid-size)}.ag-select.ag-disabled .ag-picker-field-wrapper:focus{box-shadow:none}.ag-select:not(.ag-cell-editor,.ag-label-align-top){min-height:var(--ag-list-item-height)}.ag-select .ag-picker-field-display{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-select .ag-picker-field-icon{display:flex;align-items:center}.ag-select.ag-disabled{opacity:.5}.ag-rich-select-value,.ag-rich-select-list{background-color:var(--ag-background-color)}.ag-rich-select-list{width:100%;height:auto;border-radius:var(--ag-border-radius);border:var(--ag-borders) var(--ag-border-color)}.ag-rich-select-list .ag-loading-text{padding:var(--ag-widget-vertical-spacing) var(--ag-widget-horizontal-spacing)}.ag-rich-select-value{border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color);padding-top:0;padding-bottom:0}.ag-ltr .ag-rich-select-value{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-rich-select-value{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-ltr .ag-rich-select-value{padding-right:var(--ag-grid-size)}.ag-rtl .ag-rich-select-value{padding-left:var(--ag-grid-size)}.ag-ltr .ag-rich-select-field-input{left:calc(var(--ag-cell-horizontal-padding))}.ag-rtl .ag-rich-select-field-input{right:calc(var(--ag-cell-horizontal-padding))}.ag-popup-editor .ag-rich-select-value{height:var(--ag-row-height);min-width:200px}.ag-rich-select-virtual-list-item{cursor:default;height:var(--ag-list-item-height)}.ag-rich-select-virtual-list-item:focus-visible:after{content:none}.ag-ltr .ag-rich-select-row{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-rich-select-row{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rich-select-row-selected{background-color:var(--ag-selected-row-background-color)}.ag-rich-select-row:hover,.ag-rich-select-row-highlighted{background-image:linear-gradient(var(--ag-row-hover-color),var(--ag-row-hover-color))}.ag-rich-select-row-text-highlight{font-weight:700}.ag-autocomplete{width:100%}.ag-autocomplete-list{width:100%;min-width:200px;height:calc(var(--ag-row-height) * 6.5)}.ag-autocomplete-virtual-list-item{cursor:default;height:var(--ag-list-item-height)}.ag-autocomplete-virtual-list-item:focus-visible:after{content:none}.ag-autocomplete-virtual-list-item:hover{background-color:var(--ag-row-hover-color)}.ag-autocomplete-row-label{margin:0px var(--ag-widget-container-horizontal-padding)}.ag-autocomplete-row-selected{background-color:var(--ag-selected-row-background-color)}.ag-pill{border:1px solid var(--ag-chip-border-color);border-radius:var(--ag-border-radius);background-color:var(--ag-chip-background-color)}.ag-ltr .ag-pill .ag-pill-button{margin-left:var(--ag-grid-size)}.ag-rtl .ag-pill .ag-pill-button{margin-right:var(--ag-grid-size)}.ag-pill:focus-visible{border-color:var(--ag-input-focus-border-color)}.ag-pill .ag-pill-button:hover{cursor:pointer}.ag-dragging-range-handle .ag-dialog,.ag-dragging-fill-handle .ag-dialog{opacity:.7;pointer-events:none}.ag-dialog{border-radius:var(--ag-border-radius);border:var(--ag-borders) var(--ag-border-color);box-shadow:var(--ag-popup-shadow)}.ag-panel{background-color:var(--ag-panel-background-color);border-color:var(--ag-panel-border-color)}.ag-panel-title-bar{color:var(--ag-header-foreground-color);height:var(--ag-header-height);padding:var(--ag-grid-size) var(--ag-cell-horizontal-padding);border-bottom:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-panel-title-bar-button{margin-left:var(--ag-grid-size)}.ag-rtl .ag-panel-title-bar-button{margin-right:var(--ag-grid-size)}.ag-tooltip{background-color:var(--ag-tooltip-background-color);color:var(--ag-foreground-color);padding:var(--ag-grid-size);border:var(--ag-borders) var(--ag-border-color);border-radius:var(--ag-card-radius);white-space:normal}.ag-tooltip.ag-tooltip-animate,.ag-tooltip-custom.ag-tooltip-animate{transition:opacity 1s}.ag-tooltip.ag-tooltip-animate.ag-tooltip-hiding,.ag-tooltip-custom.ag-tooltip-animate.ag-tooltip-hiding{opacity:0}.ag-ltr .ag-column-select-column,.ag-ltr .ag-column-select-column-group{padding-left:calc(var(--ag-indentation-level) * var(--ag-column-select-indent-size))}.ag-rtl .ag-column-select-column,.ag-rtl .ag-column-select-column-group{padding-right:calc(var(--ag-indentation-level) * var(--ag-column-select-indent-size))}.ag-column-select-header-icon{cursor:pointer}.ag-column-select-header-icon:focus-visible{outline:none}.ag-column-select-header-icon:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:0;left:0;display:block;width:calc(100% + -0px);height:calc(100% + -0px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-ltr .ag-column-group-icons:not(:last-child),.ag-ltr .ag-column-select-header-icon:not(:last-child),.ag-ltr .ag-column-select-header-checkbox:not(:last-child),.ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child),.ag-ltr .ag-column-select-checkbox:not(:last-child),.ag-ltr .ag-column-select-column-drag-handle:not(:last-child),.ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child),.ag-ltr .ag-column-select-column-label:not(:last-child){margin-right:var(--ag-widget-horizontal-spacing)}.ag-rtl .ag-column-group-icons:not(:last-child),.ag-rtl .ag-column-select-header-icon:not(:last-child),.ag-rtl .ag-column-select-header-checkbox:not(:last-child),.ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child),.ag-rtl .ag-column-select-checkbox:not(:last-child),.ag-rtl .ag-column-select-column-drag-handle:not(:last-child),.ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child),.ag-rtl .ag-column-select-column-label:not(:last-child){margin-left:var(--ag-widget-horizontal-spacing)}.ag-column-select-virtual-list-item:focus-visible{outline:none}.ag-column-select-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:1px;left:1px;display:block;width:calc(100% - 2px);height:calc(100% - 2px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-column-select-column-group:not(:last-child),.ag-column-select-column:not(:last-child){margin-bottom:var(--ag-widget-vertical-spacing)}.ag-column-select-column-readonly,.ag-column-select-column-group-readonly{color:var(--ag-disabled-foreground-color);pointer-events:none}.ag-ltr .ag-column-select-add-group-indent{margin-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-rtl .ag-column-select-add-group-indent{margin-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-column-select-virtual-list-viewport{padding:calc(var(--ag-widget-container-vertical-padding) * .5) 0px}.ag-column-select-virtual-list-item{padding:0 var(--ag-widget-container-horizontal-padding)}.ag-checkbox-edit{padding-left:var(--ag-cell-horizontal-padding);padding-right:var(--ag-cell-horizontal-padding)}.ag-pill-select .ag-column-drop{border-bottom:0;min-height:unset}.ag-pill-select .ag-column-drop-list{padding:0}.ag-pill-select .ag-select{padding-top:var(--ag-grid-size)}.ag-pill-select .ag-picker-field-wrapper{background-color:transparent;border:0}.ag-pill-select .ag-picker-field-display{cursor:pointer}.ag-rtl{text-align:right}.ag-root-wrapper{border-radius:var(--ag-wrapper-border-radius);border:var(--ag-borders) var(--ag-border-color)}.ag-row>.ag-cell-wrapper.ag-row-group{padding-left:calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * var(--ag-indentation-level))}.ag-cell-wrapper.ag-row-group,.ag-cell-wrapper.ag-row-group-leaf-indent,.ag-cell-wrapper.ag-pivot-leaf-group{padding-left:calc(var(--ag-indentation-level) * var(--ag-row-group-indent-size))}.ag-ltr .ag-row-group-leaf-indent{margin-left:var(--ag-row-group-indent-size)}.ag-rtl .ag-row-group-leaf-indent{margin-right:var(--ag-row-group-indent-size)}.ag-row:not(.ag-row-level-0) .ag-pivot-leaf-group{margin-left:var(--ag-row-group-indent-size)}.ag-value-change-delta{padding-right:2px}.ag-value-change-delta-up{color:var(--ag-value-change-delta-up-color)}.ag-value-change-delta-down{color:var(--ag-value-change-delta-down-color)}.ag-value-change-value{background-color:transparent;border-radius:1px;padding-left:1px;padding-right:1px;transition:background-color 1s}.ag-value-change-value-highlight{background-color:var(--ag-value-change-value-highlight-background-color);transition:background-color .1s}.ag-cell-data-changed{background-color:var(--ag-value-change-value-highlight-background-color)!important}.ag-cell-data-changed-animation{background-color:transparent}.ag-cell-highlight{background-color:var(--ag-range-selection-highlight-color)!important}.ag-row{height:var(--ag-row-height);background-color:var(--ag-background-color);color:var(--ag-data-color);border-bottom:var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width)}.ag-row-highlight-above:after,.ag-row-highlight-below:after{content:"";position:absolute;width:calc(100% - 1px);height:1px;background-color:var(--ag-range-selection-border-color);left:1px}.ag-row-highlight-above:after{top:0}.ag-row-highlight-below:after{bottom:0}.ag-row-odd{background-color:var(--ag-odd-row-background-color)}.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-left-spacer:not(.ag-scroller-corner){border-right:var(--ag-borders-critical) var(--ag-border-color)}.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-right-spacer:not(.ag-scroller-corner){border-left:var(--ag-borders-critical) var(--ag-border-color)}.ag-row-selected:before{content:"";background-color:var(--ag-selected-row-background-color);display:block;position:absolute;top:0;left:0;right:0;bottom:0}.ag-row-hover:not(.ag-full-width-row):before,.ag-row-hover.ag-full-width-row.ag-row-group:before{content:"";background-color:var(--ag-row-hover-color);display:block;position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.ag-row-hover.ag-full-width-row.ag-row-group>*{position:relative}.ag-row-hover.ag-row-selected:before{background-color:var(--ag-row-hover-color);background-image:linear-gradient(var(--ag-selected-row-background-color),var(--ag-selected-row-background-color))}.ag-column-hover{background-color:var(--ag-column-hover-color)}.ag-ltr .ag-right-aligned-cell{text-align:right}.ag-rtl .ag-right-aligned-cell{text-align:left}.ag-ltr .ag-right-aligned-cell .ag-cell-value,.ag-ltr .ag-right-aligned-cell .ag-group-value{margin-left:auto}.ag-rtl .ag-right-aligned-cell .ag-cell-value,.ag-rtl .ag-right-aligned-cell .ag-group-value{margin-right:auto}.ag-ltr .ag-right-aligned-cell .ag-skeleton-effect{margin-left:auto}.ag-rtl .ag-right-aligned-cell .ag-skeleton-effect{margin-right:auto}.ag-cell,.ag-full-width-row .ag-cell-wrapper.ag-row-group{--ag-internal-calculated-line-height: var( --ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)) );--ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));border:1px solid transparent;line-height:min(var(--ag-internal-calculated-line-height),var(--ag-internal-padded-row-height));padding-left:calc(var(--ag-cell-horizontal-padding) - 1px + var(--ag-row-group-indent-size) * var(--ag-indentation-level));padding-right:calc(var(--ag-cell-horizontal-padding) - 1px);-webkit-font-smoothing:subpixel-antialiased}.ag-row>.ag-cell-wrapper{padding-left:calc(var(--ag-cell-horizontal-padding) - 1px);padding-right:calc(var(--ag-cell-horizontal-padding) - 1px)}.ag-row-dragging{cursor:move;opacity:.5}.ag-cell-inline-editing{border:1px solid var(--ag-border-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:0;background-color:var(--ag-control-panel-background-color)}.ag-popup-editor .ag-large-text,.ag-autocomplete-list-popup{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);background-color:var(--ag-control-panel-background-color);padding:0}.ag-large-text-input{height:auto;padding:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-large-text-input textarea{resize:none}.ag-details-row{padding:calc(var(--ag-grid-size) * 5);background-color:var(--ag-background-color)}.ag-layout-auto-height .ag-center-cols-viewport,.ag-layout-auto-height .ag-center-cols-container,.ag-layout-print .ag-center-cols-viewport,.ag-layout-print .ag-center-cols-container{min-height:50px}.ag-overlay-loading-wrapper{background-color:var(--ag-modal-overlay-background-color)}.ag-overlay-loading-center{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size)}.ag-skeleton-container{width:100%;height:100%;align-content:center}.ag-skeleton-effect{background-color:var(--ag-row-loading-skeleton-effect-color);width:100%;height:1em;border-radius:.25rem;animation:ag-skeleton-loading 1.5s ease-in-out .5s infinite}@keyframes ag-skeleton-loading{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.ag-loading{display:flex;height:100%;align-items:center}.ag-ltr .ag-loading{padding-left:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-loading{padding-right:var(--ag-cell-horizontal-padding)}.ag-ltr .ag-loading-icon{padding-right:var(--ag-cell-widget-spacing)}.ag-rtl .ag-loading-icon{padding-left:var(--ag-cell-widget-spacing)}.ag-icon-loading{animation-name:spin;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ag-floating-top{border-bottom:var(--ag-borders-critical) var(--ag-border-color)}.ag-floating-bottom{border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-ltr .ag-cell{border-right:var(--ag-cell-horizontal-border)}.ag-rtl .ag-cell{border-left:var(--ag-cell-horizontal-border)}.ag-ltr .ag-cell{border-right-width:1px}.ag-rtl .ag-cell{border-left-width:1px}.ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell){border-left:var(--ag-borders-critical) var(--ag-border-color)}.ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell){border-right:var(--ag-borders-critical) var(--ag-border-color)}.ag-cell-range-selected:not(.ag-cell-focus),.ag-cell-range-selected.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing){background-color:var(--ag-range-selection-background-color)}.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,.ag-cell-range-selected.ag-cell-range-chart.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart{background-color:var(--ag-range-selection-chart-background-color)!important}.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,.ag-cell-range-selected.ag-cell-range-chart.ag-cell-range-chart.ag-cell-range-chart-category,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category{background-color:var(--ag-range-selection-chart-category-background-color)!important}.ag-cell-range-selected-1:not(.ag-cell-focus),.ag-cell-range-selected-1.ag-cell-range-chart,.ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing){background-color:var(--ag-range-selection-background-color)}.ag-cell-range-selected-2:not(.ag-cell-focus),.ag-cell-range-selected-2.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2{background-color:var(--ag-range-selection-background-color-2)}.ag-cell-range-selected-3:not(.ag-cell-focus),.ag-cell-range-selected-3.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3{background-color:var(--ag-range-selection-background-color-3)}.ag-cell-range-selected-4:not(.ag-cell-focus),.ag-cell-range-selected-4.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4{background-color:var(--ag-range-selection-background-color-4)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top{border-top-color:var(--ag-range-selection-border-color);border-top-style:var(--ag-range-selection-border-style)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right{border-right-color:var(--ag-range-selection-border-color);border-right-style:var(--ag-range-selection-border-style)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom{border-bottom-color:var(--ag-range-selection-border-color);border-bottom-style:var(--ag-range-selection-border-style)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left{border-left-color:var(--ag-range-selection-border-color);border-left-style:var(--ag-range-selection-border-style)}.ag-ltr .ag-cell-focus:not(.ag-cell-range-selected):focus-within,.ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),.ag-ltr .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,.ag-ltr .ag-cell-range-single-cell,.ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle,.ag-rtl .ag-cell-focus:not(.ag-cell-range-selected):focus-within,.ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),.ag-rtl .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,.ag-rtl .ag-cell-range-single-cell,.ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle{border:1px solid;border-color:var(--ag-range-selection-border-color);border-style:var(--ag-range-selection-border-style);outline:initial}.ag-cell.ag-selection-fill-top,.ag-cell.ag-selection-fill-top.ag-cell-range-selected{border-top:1px dashed;border-top-color:var(--ag-range-selection-border-color)}.ag-ltr .ag-cell.ag-selection-fill-right,.ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected{border-right:1px dashed var(--ag-range-selection-border-color)!important}.ag-rtl .ag-cell.ag-selection-fill-right,.ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected{border-left:1px dashed var(--ag-range-selection-border-color)!important}.ag-cell.ag-selection-fill-bottom,.ag-cell.ag-selection-fill-bottom.ag-cell-range-selected{border-bottom:1px dashed;border-bottom-color:var(--ag-range-selection-border-color)}.ag-ltr .ag-cell.ag-selection-fill-left,.ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected{border-left:1px dashed var(--ag-range-selection-border-color)!important}.ag-rtl .ag-cell.ag-selection-fill-left,.ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected{border-right:1px dashed var(--ag-range-selection-border-color)!important}.ag-fill-handle,.ag-range-handle{position:absolute;width:6px;height:6px;bottom:-1px;background-color:var(--ag-range-selection-border-color)}.ag-ltr .ag-fill-handle,.ag-ltr .ag-range-handle{right:-1px}.ag-rtl .ag-fill-handle,.ag-rtl .ag-range-handle{left:-1px}.ag-fill-handle{cursor:cell}.ag-range-handle{cursor:nwse-resize}.ag-cell-inline-editing{border-color:var(--ag-input-focus-border-color)!important}.ag-menu{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);background-color:var(--ag-menu-background-color);border-color:var(--ag-menu-border-color);padding:0}.ag-menu.ag-tabs{min-width:var(--ag-tab-min-width)}.ag-menu-list{cursor:default;padding:var(--ag-grid-size) 0}.ag-menu-separator{height:calc(var(--ag-grid-size) * 2 + 1px)}.ag-menu-separator-part:after{content:"";display:block;border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-menu-option-active,.ag-compact-menu-option-active{background-color:var(--ag-row-hover-color)}.ag-menu-option-part,.ag-compact-menu-option-part{line-height:var(--ag-icon-size);padding:calc(var(--ag-grid-size) + 2px) 0}.ag-menu-option-disabled,.ag-compact-menu-option-disabled{opacity:.5}.ag-menu-option-icon,.ag-compact-menu-option-icon{width:var(--ag-icon-size)}.ag-ltr .ag-menu-option-icon,.ag-ltr .ag-compact-menu-option-icon{padding-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-menu-option-icon,.ag-rtl .ag-compact-menu-option-icon{padding-right:calc(var(--ag-grid-size) * 2)}.ag-menu-option-text,.ag-compact-menu-option-text{padding-left:calc(var(--ag-grid-size) * 2);padding-right:calc(var(--ag-grid-size) * 2)}.ag-ltr .ag-menu-option-shortcut,.ag-ltr .ag-compact-menu-option-shortcut{padding-right:var(--ag-grid-size)}.ag-rtl .ag-menu-option-shortcut,.ag-rtl .ag-compact-menu-option-shortcut{padding-left:var(--ag-grid-size)}.ag-ltr .ag-menu-option-popup-pointer,.ag-ltr .ag-compact-menu-option-popup-pointer{padding-right:var(--ag-grid-size)}.ag-rtl .ag-menu-option-popup-pointer,.ag-rtl .ag-compact-menu-option-popup-pointer{padding-left:var(--ag-grid-size)}.ag-tabs-header,.ag-tabs-header-wrapper{display:flex}.ag-tabs-header-wrapper .ag-tabs-header{flex:1}.ag-tabs-close-button-wrapper{border:0;border-right:var(--ag-borders) var(--ag-border-color);padding:var(--ag-grid-size)}.ag-tabs-close-button{border:0;background-color:unset;cursor:pointer;padding:0}.ag-tab{border-bottom:var(--ag-selected-tab-underline-width) solid transparent;transition:border-bottom var(--ag-selected-tab-underline-transition-speed);display:flex;flex:none;align-items:center;justify-content:center;cursor:pointer}.ag-tab:focus-visible{outline:none}.ag-tab:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-tab-selected{border-bottom-color:var(--ag-selected-tab-underline-color)}.ag-menu-header{color:var(--ag-secondary-foreground-color)}.ag-filter-separator{border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-filter-select .ag-picker-field-wrapper{width:0}.ag-filter-condition-operator{height:17px}.ag-ltr .ag-filter-condition-operator-or{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-filter-condition-operator-or{margin-right:calc(var(--ag-grid-size) * 2)}.ag-set-filter-select-all{padding-top:var(--ag-widget-container-vertical-padding)}.ag-set-filter-list,.ag-filter-no-matches{height:calc(var(--ag-list-item-height) * 6)}.ag-set-filter-tree-list{height:calc(var(--ag-list-item-height) * 10)}.ag-set-filter-filter{margin-top:var(--ag-widget-container-vertical-padding);margin-left:var(--ag-widget-container-horizontal-padding);margin-right:var(--ag-widget-container-horizontal-padding)}.ag-filter-to{margin-top:var(--ag-widget-vertical-spacing)}.ag-mini-filter{margin:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding)}.ag-set-filter{--ag-indentation-level: 0}.ag-ltr .ag-set-filter-item{padding-left:calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size))}.ag-rtl .ag-set-filter-item{padding-right:calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size))}.ag-ltr .ag-set-filter-add-group-indent{margin-left:calc(var(--ag-icon-size) + var(--ag-widget-container-horizontal-padding))}.ag-rtl .ag-set-filter-add-group-indent{margin-right:calc(var(--ag-icon-size) + var(--ag-widget-container-horizontal-padding))}.ag-ltr .ag-set-filter-group-icons{margin-right:var(--ag-widget-container-horizontal-padding)}.ag-rtl .ag-set-filter-group-icons{margin-left:var(--ag-widget-container-horizontal-padding)}.ag-filter-menu .ag-set-filter-list{min-width:200px}.ag-filter-virtual-list-item:focus-visible{outline:none}.ag-filter-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:1px;left:1px;display:block;width:calc(100% - 2px);height:calc(100% - 2px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-filter-apply-panel{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-filter-apply-panel-button{line-height:1.5}.ag-ltr .ag-filter-apply-panel-button{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-filter-apply-panel-button{margin-right:calc(var(--ag-grid-size) * 2)}.ag-simple-filter-body-wrapper{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);padding-bottom:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));overflow-y:auto;min-height:calc(var(--ag-list-item-height) + var(--ag-widget-container-vertical-padding) + var(--ag-widget-vertical-spacing))}.ag-simple-filter-body-wrapper>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-simple-filter-body-wrapper .ag-resizer-wrapper{margin:0}.ag-menu:not(.ag-tabs) .ag-filter .ag-filter-body-wrapper,.ag-menu:not(.ag-tabs) .ag-filter>*:not(.ag-filter-wrapper){min-width:calc(var(--ag-menu-min-width) - 2px)}.ag-filter-no-matches{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding)}.ag-multi-filter-menu-item{margin:var(--ag-grid-size) 0}.ag-multi-filter-group-title-bar{padding:calc(var(--ag-grid-size) * 2) var(--ag-grid-size);background-color:transparent}.ag-group-filter-field-select-wrapper{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);padding-bottom:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing))}.ag-group-filter-field-select-wrapper>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-multi-filter-group-title-bar:focus-visible{outline:none}.ag-multi-filter-group-title-bar:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-side-bar{position:relative}.ag-tool-panel-wrapper{width:var(--ag-side-bar-panel-width);background-color:var(--ag-control-panel-background-color)}.ag-side-buttons{padding-top:calc(var(--ag-grid-size) * 4);width:calc(var(--ag-icon-size) + 4px);position:relative;overflow:hidden}button.ag-side-button-button{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;background:transparent;padding:calc(var(--ag-grid-size) * 2) 0 calc(var(--ag-grid-size) * 2) 0;width:100%;margin:0;min-height:calc(var(--ag-grid-size) * 18);background-position-y:center;background-position-x:center;background-repeat:no-repeat;border:none;border-top:var(--ag-borders-side-button) var(--ag-border-color);border-bottom:var(--ag-borders-side-button) var(--ag-border-color)}button.ag-side-button-button:focus{box-shadow:none}.ag-side-button-button:focus-visible{outline:none}.ag-side-button-button:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-selected button.ag-side-button-button{background-color:var(--ag-side-button-selected-background-color)}.ag-side-button-icon-wrapper{margin-bottom:3px}.ag-ltr .ag-side-bar-left,.ag-rtl .ag-side-bar-right{border-right:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,.ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper{border-left:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-side-bar-left .ag-side-button-button,.ag-rtl .ag-side-bar-right .ag-side-button-button{border-right:var(--ag-selected-tab-underline-width) solid transparent;transition:border-right var(--ag-selected-tab-underline-transition-speed)}.ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,.ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button{border-right-color:var(--ag-selected-tab-underline-color)}.ag-rtl .ag-side-bar-left,.ag-ltr .ag-side-bar-right{border-left:var(--ag-borders) var(--ag-border-color)}.ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,.ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper{border-right:var(--ag-borders) var(--ag-border-color)}.ag-rtl .ag-side-bar-left .ag-side-button-button,.ag-ltr .ag-side-bar-right .ag-side-button-button{border-left:var(--ag-selected-tab-underline-width) solid transparent;transition:border-left var(--ag-selected-tab-underline-transition-speed)}.ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,.ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button{border-left-color:var(--ag-selected-tab-underline-color)}.ag-filter-toolpanel-header{height:calc(var(--ag-grid-size) * 6)}.ag-filter-toolpanel-header,.ag-filter-toolpanel-search{padding:0 var(--ag-grid-size)}.ag-filter-toolpanel-header:focus-visible{outline:none}.ag-filter-toolpanel-header:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-filter-toolpanel-group:not(.ag-has-filter)>.ag-group-title-bar .ag-filter-toolpanel-group-instance-header-icon{display:none}.ag-filter-toolpanel-group-level-0-header{height:calc(var(--ag-grid-size) * 8)}.ag-filter-toolpanel-group-item{margin-top:calc(var(--ag-grid-size) * .5);margin-bottom:calc(var(--ag-grid-size) * .5)}.ag-filter-toolpanel-search{height:var(--ag-header-height)}.ag-filter-toolpanel-search-input{flex-grow:1;height:calc(var(--ag-grid-size) * 4)}.ag-ltr .ag-filter-toolpanel-search-input{margin-right:var(--ag-grid-size)}.ag-rtl .ag-filter-toolpanel-search-input{margin-left:var(--ag-grid-size)}.ag-filter-toolpanel-group-level-0{border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-ltr .ag-filter-toolpanel-expand,.ag-ltr .ag-filter-toolpanel-group-title-bar-icon{margin-right:var(--ag-grid-size)}.ag-rtl .ag-filter-toolpanel-expand,.ag-rtl .ag-filter-toolpanel-group-title-bar-icon{margin-left:var(--ag-grid-size)}.ag-filter-toolpanel-group-title-bar{background-color:transparent}.ag-ltr .ag-filter-toolpanel-header{padding-left:calc(var(--ag-filter-tool-panel-group-indent) * var(--ag-indentation-level, 0) + var(--ag-grid-size))}.ag-rtl .ag-filter-toolpanel-header{padding-right:calc(var(--ag-filter-tool-panel-group-indent) * var(--ag-indentation-level, 0) + var(--ag-grid-size))}.ag-filter-toolpanel-instance-filter{border-bottom:var(--ag-borders) var(--ag-border-color);border-top:var(--ag-borders) var(--ag-border-color);margin-top:var(--ag-grid-size)}.ag-ltr .ag-filter-toolpanel-group-instance-header-icon,.ag-ltr .ag-filter-toolpanel-instance-header-icon{margin-left:var(--ag-grid-size)}.ag-rtl .ag-filter-toolpanel-group-instance-header-icon,.ag-rtl .ag-filter-toolpanel-instance-header-icon{margin-right:var(--ag-grid-size)}.ag-set-filter-group-icons{color:var(--ag-secondary-foreground-color)}.ag-pivot-mode-panel{min-height:var(--ag-header-height);height:var(--ag-header-height);display:flex}.ag-pivot-mode-select{display:flex;align-items:center}.ag-ltr .ag-pivot-mode-select{margin-left:var(--ag-widget-container-horizontal-padding)}.ag-rtl .ag-pivot-mode-select{margin-right:var(--ag-widget-container-horizontal-padding)}.ag-column-select-header:focus-visible{outline:none}.ag-column-select-header:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-column-select-header{height:var(--ag-header-height);align-items:center;padding:0 var(--ag-widget-container-horizontal-padding);border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-column-panel-column-select{border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color);border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-column-group-icons,.ag-column-select-header-icon{color:var(--ag-secondary-foreground-color)}.ag-column-select-list .ag-list-item-hovered:after{content:"";position:absolute;left:0;right:0;height:1px}.ag-column-select-list .ag-item-highlight-top:after{top:0}.ag-column-select-list .ag-item-highlight-bottom:after{bottom:0}.ag-header,.ag-advanced-filter-header{background-color:var(--ag-header-background-color);border-bottom:var(--ag-borders-critical) var(--ag-border-color)}.ag-header-row{color:var(--ag-header-foreground-color);height:var(--ag-header-height)}.ag-pinned-right-header{border-left:var(--ag-borders-critical) var(--ag-border-color)}.ag-pinned-left-header{border-right:var(--ag-borders-critical) var(--ag-border-color)}.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon,.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-menu-icon{margin-left:var(--ag-grid-size)}.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon,.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-menu-icon{margin-right:var(--ag-grid-size)}.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon,.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-menu-icon{margin-right:var(--ag-grid-size)}.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon,.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-menu-icon{margin-left:var(--ag-grid-size)}.ag-header-cell,.ag-header-group-cell{padding-left:var(--ag-cell-horizontal-padding);padding-right:var(--ag-cell-horizontal-padding)}.ag-header-cell.ag-header-cell-moving,.ag-header-group-cell.ag-header-cell-moving{background-color:var(--ag-header-cell-moving-background-color)}.ag-ltr .ag-header-group-cell-label.ag-sticky-label{left:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-header-group-cell-label.ag-sticky-label{right:var(--ag-cell-horizontal-padding)}.ag-header-cell:focus-visible{outline:none}.ag-header-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-header-group-cell:focus-visible{outline:none}.ag-header-group-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-advanced-filter-header-cell:focus-visible{outline:none}.ag-advanced-filter-header-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-header-icon{color:var(--ag-secondary-foreground-color)}.ag-header-expand-icon{cursor:pointer}.ag-ltr .ag-header-expand-icon{margin-left:4px}.ag-rtl .ag-header-expand-icon{margin-right:4px}.ag-header-row:not(:first-child) .ag-header-cell:not(.ag-header-span-height.ag-header-span-total,.ag-header-parent-hidden),.ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group{border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-header-group-cell:not(.ag-column-resizing)+.ag-header-group-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,.ag-header-group-cell:not(.ag-column-resizing)+.ag-header-group-cell:not(.ag-column-hover).ag-column-resizing,.ag-header-cell:not(.ag-column-resizing)+.ag-header-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,.ag-header-cell:not(.ag-column-resizing)+.ag-header-cell:not(.ag-column-hover).ag-column-resizing,.ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,.ag-header-group-cell:first-of-type.ag-column-resizing,.ag-header-cell:not(.ag-column-hover):first-of-type:not(.ag-header-cell-moving):hover,.ag-header-cell:not(.ag-column-hover):first-of-type.ag-column-resizing{background-color:var(--ag-header-cell-hover-background-color)}.ag-header-cell:before,.ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group):before{content:"";position:absolute;z-index:1;display:var(--ag-header-column-separator-display);width:var(--ag-header-column-separator-width);height:var(--ag-header-column-separator-height);top:calc(50% - var(--ag-header-column-separator-height) * .5);background-color:var(--ag-header-column-separator-color)}.ag-ltr .ag-header-cell:before,.ag-ltr .ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group):before{right:0}.ag-rtl .ag-header-cell:before,.ag-rtl .ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group):before{left:0}.ag-header-highlight-before:after,.ag-header-highlight-after:after{content:"";position:absolute;height:100%;width:1px}.ag-header-highlight-before:after{left:0}.ag-header-highlight-after:after{right:0}.ag-pinned-left-header .ag-header-highlight-after:after{right:1px}.ag-header-cell-resize{display:flex;align-items:center}.ag-header-cell-resize:after{content:"";position:absolute;z-index:1;display:var(--ag-header-column-resize-handle-display);width:var(--ag-header-column-resize-handle-width);height:var(--ag-header-column-resize-handle-height);top:calc(50% - var(--ag-header-column-resize-handle-height) * .5);background-color:var(--ag-header-column-resize-handle-color)}.ag-header-cell.ag-header-span-height .ag-header-cell-resize:after{height:calc(100% - var(--ag-grid-size) * 4);top:calc(var(--ag-grid-size) * 2)}.ag-ltr .ag-header-viewport .ag-header-cell-resize:after{left:calc(50% - var(--ag-header-column-resize-handle-width))}.ag-rtl .ag-header-viewport .ag-header-cell-resize:after{right:calc(50% - var(--ag-header-column-resize-handle-width))}.ag-pinned-left-header .ag-header-cell-resize:after{left:calc(50% - var(--ag-header-column-resize-handle-width))}.ag-pinned-right-header .ag-header-cell-resize:after{left:50%}.ag-ltr .ag-header-select-all{margin-right:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-header-select-all{margin-left:var(--ag-cell-horizontal-padding)}.ag-ltr .ag-floating-filter-button{margin-left:var(--ag-cell-widget-spacing)}.ag-rtl .ag-floating-filter-button{margin-right:var(--ag-cell-widget-spacing)}.ag-floating-filter-button-button{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;-webkit-appearance:none;appearance:none;background:transparent;border:none;height:var(--ag-icon-size);padding:0;width:var(--ag-icon-size)}.ag-filter-loading{background-color:var(--ag-control-panel-background-color);height:100%;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);position:absolute;width:100%;z-index:1}.ag-paging-panel{border-top:1px solid;border-top-color:var(--ag-border-color);color:var(--ag-secondary-foreground-color);height:var(--ag-header-height)}.ag-paging-panel>*{margin:0 var(--ag-cell-horizontal-padding)}.ag-paging-panel>.ag-paging-page-size .ag-wrapper{min-width:calc(var(--ag-grid-size) * 10)}.ag-paging-button{cursor:pointer}.ag-paging-button.ag-disabled{cursor:default;color:var(--ag-disabled-foreground-color)}.ag-paging-button:focus-visible{outline:none}.ag-paging-button:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:0;left:0;display:block;width:calc(100% + -0px);height:calc(100% + -0px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-paging-button,.ag-paging-description{margin:0 var(--ag-grid-size)}.ag-status-bar{border-top:var(--ag-borders) var(--ag-border-color);color:var(--ag-disabled-foreground-color);padding-right:calc(var(--ag-grid-size) * 4);padding-left:calc(var(--ag-grid-size) * 4);line-height:1.5}.ag-status-name-value-value{color:var(--ag-foreground-color)}.ag-status-bar-center{text-align:center}.ag-status-name-value{margin-left:var(--ag-grid-size);margin-right:var(--ag-grid-size);padding-top:calc(var(--ag-grid-size) * 2);padding-bottom:calc(var(--ag-grid-size) * 2)}.ag-column-drop-cell{background:var(--ag-chip-background-color);border-radius:calc(var(--ag-grid-size) * 4);height:calc(var(--ag-grid-size) * 4);padding:0 calc(var(--ag-grid-size) * .5);border:1px solid var(--ag-chip-border-color)}.ag-column-drop-cell:focus-visible{outline:none}.ag-column-drop-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:2px;left:2px;display:block;width:calc(100% - 4px);height:calc(100% - 4px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-column-drop-cell-text{margin:0 var(--ag-grid-size)}.ag-column-drop-cell-button{min-width:calc(var(--ag-grid-size) * 4);margin:0 calc(var(--ag-grid-size) * .5);color:var(--ag-secondary-foreground-color)}.ag-column-drop-cell-drag-handle{margin-left:calc(var(--ag-grid-size) * 2)}.ag-column-drop-cell-ghost{opacity:.5}.ag-column-drop-horizontal{background-color:var(--ag-header-background-color);color:var(--ag-secondary-foreground-color);height:var(--ag-header-height);border-bottom:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-column-drop-horizontal{padding-left:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-column-drop-horizontal{padding-right:var(--ag-cell-horizontal-padding)}.ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child){border-right:var(--ag-borders) var(--ag-border-color)}.ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child){border-left:var(--ag-borders) var(--ag-border-color)}.ag-column-drop-horizontal-cell-separator{margin:0 var(--ag-grid-size);color:var(--ag-secondary-foreground-color)}.ag-column-drop-horizontal-empty-message{color:var(--ag-disabled-foreground-color)}.ag-ltr .ag-column-drop-horizontal-icon{margin-right:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-column-drop-horizontal-icon{margin-left:var(--ag-cell-horizontal-padding)}.ag-column-drop-vertical-list{padding-bottom:var(--ag-grid-size);padding-right:var(--ag-grid-size);padding-left:var(--ag-grid-size)}.ag-column-drop-vertical-cell{margin-top:var(--ag-grid-size)}.ag-column-drop-vertical{min-height:50px;border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-column-drop-vertical.ag-last-column-drop{border-bottom:none}.ag-column-drop-vertical-icon{margin-left:var(--ag-grid-size);margin-right:var(--ag-grid-size)}.ag-column-drop-vertical-empty-message{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;color:var(--ag-disabled-foreground-color);margin-top:var(--ag-grid-size)}.ag-select-agg-func-popup{border:var(--ag-borders) var(--ag-border-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);background:var(--ag-background-color);height:calc(var(--ag-grid-size) * 5 * 3.5);padding:0}.ag-select-agg-func-virtual-list-item{cursor:default}.ag-ltr .ag-select-agg-func-virtual-list-item{padding-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-select-agg-func-virtual-list-item{padding-right:calc(var(--ag-grid-size) * 2)}.ag-select-agg-func-virtual-list-item:hover{background-color:var(--ag-selected-row-background-color)}.ag-select-agg-func-virtual-list-item:focus-visible{outline:none}.ag-select-agg-func-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:1px;left:1px;display:block;width:calc(100% - 2px);height:calc(100% - 2px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-sort-indicator-container{display:flex}.ag-ltr .ag-sort-indicator-icon{padding-left:var(--ag-grid-size)}.ag-rtl .ag-sort-indicator-icon{padding-right:var(--ag-grid-size)}.ag-chart{position:relative;display:flex;width:100%;height:100%}.ag-chart-components-wrapper{position:relative;display:flex;flex:1 1 auto}.ag-chart-canvas-wrapper{position:relative;flex:1 1 auto}.ag-chart-menu{position:absolute;top:16px;display:flex;flex-direction:column}.ag-ltr .ag-chart-menu{right:20px}.ag-rtl .ag-chart-menu{left:20px}.ag-chart-docked-container{position:relative;min-width:var(--ag-chart-menu-panel-width)}.ag-chart-menu-hidden~.ag-chart-docked-container{display:none}.ag-chart-tabbed-menu{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.ag-chart-tabbed-menu-header{flex:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ag-chart-tabbed-menu-body{display:flex;flex:1 1 auto;align-items:stretch;overflow:hidden}.ag-chart-tab{width:100%;overflow:hidden;overflow-y:auto}.ag-chart-settings{overflow-x:hidden}.ag-chart-settings-wrapper{position:relative;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.ag-chart-settings-nav-bar{display:flex;align-items:center;width:100%;height:30px;padding:0 10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-chart-settings-card-selector{display:flex;align-items:center;justify-content:space-around;flex:1 1 auto;height:100%;padding:0 10px}.ag-chart-settings-card-item{cursor:pointer;width:10px;height:10px;background-color:#000;position:relative}.ag-chart-settings-card-item.ag-not-selected{opacity:.2}.ag-chart-settings-card-item:before{content:" ";display:block;position:absolute;background-color:transparent;left:50%;top:50%;margin-left:-10px;margin-top:-10px;width:20px;height:20px}.ag-chart-settings-prev,.ag-chart-settings-next{position:relative;flex:none}.ag-chart-settings-prev:focus-within,.ag-chart-settings-next:focus-within{box-shadow:var(--ag-input-focus-box-shadow);border-radius:1px}.ag-chart-settings-prev-button,.ag-chart-settings-next-button{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;opacity:0}.ag-chart-settings-mini-charts-container{position:relative;flex:1 1 auto;overflow-x:hidden;overflow-y:auto}.ag-chart-settings-mini-wrapper{position:absolute;top:0;left:0;display:flex;flex-direction:column;width:100%;min-height:100%;overflow:hidden}.ag-chart-settings-mini-wrapper.ag-animating{transition:left .3s;transition-timing-function:ease-in-out}.ag-chart-mini-thumbnail{cursor:pointer}.ag-chart-mini-thumbnail-canvas{display:block}.ag-chart-data-wrapper,.ag-chart-format-wrapper,.ag-chart-advanced-settings-wrapper{display:flex;flex-direction:column;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding-bottom:16px}.ag-chart-data-wrapper,.ag-chart-advanced-settings-wrapper{height:100%;overflow-y:auto}.ag-chart-advanced-settings{background-color:var(--ag-control-panel-background-color)}.ag-chart-advanced-settings-wrapper,.ag-chart-advanced-settings{width:100%}.ag-chart-advanced-settings-wrapper{padding-bottom:0}.ag-chart-data-section,.ag-chart-format-section,.ag-chart-advanced-settings-section{display:flex;margin:0}.ag-chart-advanced-settings-section{padding-top:var(--ag-grid-size);padding-bottom:var(--ag-grid-size)}.ag-chart-advanced-settings-section:not(:last-child){border-bottom:1px solid var(--ag-secondary-border-color)}.ag-chart-empty-text{display:flex;top:0;width:100%;height:100%;align-items:center;justify-content:center;background-color:var(--ag-background-color)}.ag-chart .ag-chart-menu{display:none}.ag-chart-menu-hidden:hover .ag-chart-menu{display:block}.ag-chart .ag-chart-menu-wrapper .ag-chart-menu{display:flex;flex-direction:row;top:8px;gap:20px;width:auto}.ag-ltr .ag-chart .ag-chart-menu-wrapper .ag-chart-menu{right:calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);justify-content:right}.ag-rtl .ag-chart .ag-chart-menu-wrapper .ag-chart-menu{left:calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);justify-content:left}.ag-charts-font-size-color{display:flex;align-self:stretch;justify-content:space-between}.ag-charts-data-group-item{position:relative}.ag-charts-data-group-item:not(:last-child){margin-bottom:var(--ag-grid-size)}.ag-chart-menu{border-radius:var(--ag-card-radius);background:var(--ag-background-color)}.ag-chart-menu-icon{opacity:.5;margin:2px 0;cursor:pointer;border-radius:var(--ag-card-radius);color:var(--ag-secondary-foreground-color)}.ag-chart-menu-icon:hover{opacity:1}.ag-chart-menu-toolbar-button{border:0;background-color:unset;padding:0 2px;border-radius:1px}.ag-chart-mini-thumbnail{border:1px solid var(--ag-secondary-border-color);border-radius:5px}.ag-chart-mini-thumbnail.ag-selected{border-color:var(--ag-minichart-selected-chart-color);border-width:2px}.ag-chart-mini-thumbnail:focus-visible{outline:none;border-color:var(--ag-minichart-selected-chart-color);box-shadow:var(--ag-input-focus-box-shadow)}.ag-chart-settings-card-item{background:var(--ag-foreground-color);width:8px;height:8px;border-radius:4px}.ag-chart-settings-card-item.ag-selected{background-color:var(--ag-minichart-selected-page-color)}.ag-chart-data-column-drag-handle{margin-left:var(--ag-grid-size)}.ag-charts-settings-group-title-bar,.ag-charts-data-group-title-bar,.ag-charts-format-top-level-group-title-bar{border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color);position:relative}.ag-charts-advanced-settings-top-level-group-title-bar{position:relative;background-color:unset}.ag-charts-data-group-title-bar:focus-visible{outline:none}.ag-charts-data-group-title-bar:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-charts-format-top-level-group-title-bar:focus-visible{outline:none}.ag-charts-format-top-level-group-title-bar:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-charts-data-group-title-bar .ag-charts-data-group-title,.ag-charts-format-top-level-group-title-bar .ag-charts-format-top-level-group-title{cursor:pointer}.ag-charts-data-group-container{padding:calc(var(--ag-widget-container-vertical-padding) * .5) var(--ag-widget-container-horizontal-padding)}.ag-charts-data-group-container .ag-charts-data-group-item:not(.ag-charts-format-sub-level-group):not(.ag-pill-select):not(.ag-select){height:var(--ag-list-item-height)}.ag-charts-data-group-container .ag-charts-data-group-item.ag-picker-field{margin-top:var(--ag-grid-size)}.ag-charts-data-group-container .ag-list-item-hovered:after{content:"";position:absolute;left:0;right:0;height:1px}.ag-charts-data-group-container .ag-item-highlight-top:after{top:0}.ag-charts-data-group-container .ag-item-highlight-bottom:after{bottom:0}.ag-charts-format-top-level-group-container,.ag-charts-advanced-settings-top-level-group-container{padding:var(--ag-grid-size)}.ag-ltr .ag-charts-format-top-level-group-container,.ag-ltr .ag-charts-advanced-settings-top-level-group-container{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-charts-format-top-level-group-container,.ag-rtl .ag-charts-advanced-settings-top-level-group-container{margin-right:calc(var(--ag-grid-size) * 2)}.ag-charts-format-top-level-group-item,.ag-charts-advanced-settings-top-level-group-item{margin:var(--ag-grid-size) 0}.ag-charts-format-sub-level-group-container{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);padding-bottom:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing))}.ag-charts-format-sub-level-group-container>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-charts-format-sub-level-no-header-group-container>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-charts-format-sub-level-group-container .ag-charts-format-sub-level-group-item.ag-font-panel-no-header{margin:0}.ag-charts-settings-group-container{padding:var(--ag-grid-size);row-gap:8px;display:grid;grid-template-columns:60px 1fr 60px 1fr 60px}.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+1){grid-column:1}.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+2){grid-column:3}.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+3){grid-column:5}.ag-chart-menu-panel{background-color:var(--ag-control-panel-background-color)}.ag-ltr .ag-chart-menu-panel{border-left:solid 1px var(--ag-border-color)}.ag-rtl .ag-chart-menu-panel{border-right:solid 1px var(--ag-border-color)}.ag-charts-theme-default{--ag-charts-align: none !important;--ag-charts-justify: none !important}.ag-date-time-list-page-title-bar{display:flex}.ag-date-time-list-page-title{flex-grow:1;text-align:center}.ag-date-time-list-page-column-labels-row,.ag-date-time-list-page-entries-row{display:flex}.ag-date-time-list-page-column-label,.ag-date-time-list-page-entry{flex-basis:0;flex-grow:1}.ag-date-time-list-page-entry{cursor:pointer;text-align:center}.ag-date-time-list-page-column-label{text-align:center}.ag-advanced-filter-header{position:relative;display:flex;align-items:center;padding-left:var(--ag-cell-horizontal-padding);padding-right:var(--ag-cell-horizontal-padding)}.ag-advanced-filter{display:flex;align-items:center;width:100%}.ag-advanced-filter-apply-button,.ag-advanced-filter-builder-button{line-height:normal;white-space:nowrap}.ag-ltr .ag-advanced-filter-apply-button,.ag-ltr .ag-advanced-filter-builder-button{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-advanced-filter-apply-button,.ag-rtl .ag-advanced-filter-builder-button{margin-right:calc(var(--ag-grid-size) * 2)}.ag-advanced-filter-builder-button{display:flex;align-items:center;border:0;background-color:unset;color:var(--ag-foreground-color);font-size:var(--ag-font-size);font-weight:600}.ag-advanced-filter-builder-button:hover:not(:disabled){background-color:var(--ag-row-hover-color)}.ag-advanced-filter-builder-button:not(:disabled){cursor:pointer}.ag-advanced-filter-builder-button-label{margin-left:var(--ag-grid-size)}.ag-advanced-filter-builder{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%;background-color:var(--ag-control-panel-background-color);display:flex;flex-direction:column}.ag-advanced-filter-builder-list{flex:1;overflow:auto}.ag-advanced-filter-builder-list .ag-list-item-hovered:after{content:"";position:absolute;left:0;right:0;height:1px}.ag-advanced-filter-builder-list .ag-item-highlight-top:after{top:0}.ag-advanced-filter-builder-list .ag-item-highlight-bottom:after{bottom:0}.ag-advanced-filter-builder-button-panel{display:flex;justify-content:flex-end;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-advanced-filter-builder .ag-advanced-filter-builder-button-panel .ag-advanced-filter-builder-apply-button,.ag-advanced-filter-builder .ag-advanced-filter-builder-button-panel .ag-advanced-filter-builder-cancel-button{margin-left:calc(var(--ag-grid-size) * 2)}.ag-advanced-filter-builder-item-wrapper{display:flex;flex:1 1 auto;align-items:center;justify-content:space-between;overflow:hidden;padding-left:calc(var(--ag-icon-size) / 2);padding-right:var(--ag-icon-size)}.ag-virtual-list-viewport .ag-advanced-filter-builder-item-wrapper .ag-tab-guard{position:absolute}.ag-advanced-filter-builder-item-tree-lines>*{width:var(--ag-advanced-filter-builder-indent-size)}.ag-advanced-filter-builder-item-tree-lines .ag-advanced-filter-builder-item-tree-line-root{width:var(--ag-icon-size)}.ag-advanced-filter-builder-item-tree-lines .ag-advanced-filter-builder-item-tree-line-root:before{top:50%;height:50%}.ag-advanced-filter-builder-item-tree-line-horizontal,.ag-advanced-filter-builder-item-tree-line-vertical,.ag-advanced-filter-builder-item-tree-line-vertical-top,.ag-advanced-filter-builder-item-tree-line-vertical-bottom{position:relative;height:100%;display:flex;align-items:center}.ag-advanced-filter-builder-item-tree-line-horizontal:before,.ag-advanced-filter-builder-item-tree-line-horizontal:after,.ag-advanced-filter-builder-item-tree-line-vertical:before,.ag-advanced-filter-builder-item-tree-line-vertical:after,.ag-advanced-filter-builder-item-tree-line-vertical-top:before,.ag-advanced-filter-builder-item-tree-line-vertical-top:after,.ag-advanced-filter-builder-item-tree-line-vertical-bottom:before,.ag-advanced-filter-builder-item-tree-line-vertical-bottom:after{content:"";position:absolute;height:100%}.ag-advanced-filter-builder-item-tree-line-horizontal:after{height:50%;width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size));top:0;left:calc(var(--ag-icon-size) / 2);border-bottom:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-tree-line-vertical:before{width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size) / 2);top:0;left:calc(var(--ag-icon-size) / 2);border-left:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-tree-line-vertical-top:before{height:50%;width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size) / 2);top:0;left:calc(var(--ag-icon-size) / 2);border-left:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-tree-line-vertical-bottom:before{height:calc((100% - 1.5 * var(--ag-icon-size)) / 2);width:calc(var(--ag-icon-size) / 2);top:calc((100% + 1.5 * var(--ag-icon-size)) / 2);left:calc(var(--ag-icon-size) / 2);border-left:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-condition{padding-top:var(--ag-grid-size);padding-bottom:var(--ag-grid-size)}.ag-advanced-filter-builder-item,.ag-advanced-filter-builder-item-condition,.ag-advanced-filter-builder-pill-wrapper,.ag-advanced-filter-builder-pill,.ag-advanced-filter-builder-item-buttons,.ag-advanced-filter-builder-item-tree-lines{display:flex;align-items:center;height:100%}.ag-advanced-filter-builder-pill-wrapper{margin:0px var(--ag-grid-size)}.ag-advanced-filter-builder-pill{position:relative;border-radius:var(--ag-border-radius);padding:var(--ag-grid-size) calc(var(--ag-grid-size) * 2);min-height:calc(100% - var(--ag-grid-size) * 3);min-width:calc(var(--ag-grid-size) * 2)}.ag-advanced-filter-builder-pill .ag-picker-field-display{margin-right:var(--ag-grid-size)}.ag-advanced-filter-builder-pill .ag-advanced-filter-builder-value-number{font-family:monospace;font-weight:700}.ag-advanced-filter-builder-pill .ag-advanced-filter-builder-value-empty{color:var(--ag-disabled-foreground-color)}.ag-advanced-filter-builder-pill:focus-visible{outline:none}.ag-advanced-filter-builder-pill:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:-4px;left:-4px;display:block;width:calc(100% + 8px);height:calc(100% + 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-advanced-filter-builder-item-button:focus-visible{outline:none}.ag-advanced-filter-builder-item-button:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:-4px;left:-4px;display:block;width:calc(100% + 8px);height:calc(100% + 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-advanced-filter-builder-pill-display{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.ag-advanced-filter-builder-join-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-join-pill-color);cursor:pointer}.ag-advanced-filter-builder-column-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-column-pill-color);cursor:pointer}.ag-advanced-filter-builder-option-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-option-pill-color);cursor:pointer}.ag-advanced-filter-builder-value-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-value-pill-color);cursor:text;max-width:140px}.ag-advanced-filter-builder-value-pill .ag-advanced-filter-builder-pill-display{display:block}.ag-advanced-filter-builder-item-buttons>*{margin:0 calc(var(--ag-grid-size) * .5)}.ag-advanced-filter-builder-item-button{position:relative;cursor:pointer;color:var(--ag-secondary-foreground-color);opacity:50%}.ag-advanced-filter-builder-item-button-disabled{color:var(--ag-disabled-foreground-color);cursor:default}.ag-advanced-filter-builder-virtual-list-container{top:var(--ag-grid-size)}.ag-advanced-filter-builder-virtual-list-item{display:flex;cursor:default;height:var(--ag-list-item-height)}.ag-advanced-filter-builder-virtual-list-item:hover{background-color:var(--ag-row-hover-color)}.ag-advanced-filter-builder-virtual-list-item:hover .ag-advanced-filter-builder-item-button{opacity:100%}.ag-advanced-filter-builder-virtual-list-item-highlight .ag-advanced-filter-builder-item-button:focus-visible,.ag-advanced-filter-builder-validation .ag-advanced-filter-builder-invalid{opacity:100%}.ag-advanced-filter-builder-invalid{margin:0 var(--ag-grid-size);color:var(--ag-invalid-color);cursor:default}.ag-input-field-input{width:100%;min-width:0}.ag-checkbox-input-wrapper{font-family:var(--ag-icon-font-family);font-weight:var(--ag-icon-font-weight);color:var(--ag-icon-font-color);font-size:var(--ag-icon-size);line-height:var(--ag-icon-size);font-style:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-checkbox-background-color);border-radius:var(--ag-checkbox-border-radius);display:inline-block;vertical-align:middle;flex:none}.ag-checkbox-input-wrapper input{-webkit-appearance:none;opacity:0;width:100%;height:100%}.ag-checkbox-input-wrapper:focus-within,.ag-checkbox-input-wrapper:active{outline:none;box-shadow:var(--ag-input-focus-box-shadow)}.ag-checkbox-input-wrapper.ag-disabled{opacity:.5}.ag-checkbox-input-wrapper:after{content:var(--ag-icon-font-code-checkbox-unchecked, "");font-family:inherit;color:var(--ag-checkbox-unchecked-color);display:var(--ag-icon-font-display-checkbox-unchecked, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-checkbox-input-wrapper.ag-checked:after{content:var(--ag-icon-font-code-checkbox-checked, "");color:var(--ag-checkbox-checked-color);display:var(--ag-icon-font-display-checkbox-checked, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-checkbox-input-wrapper.ag-indeterminate:after{content:var(--ag-icon-font-code-checkbox-indeterminate, "");color:var(--ag-checkbox-indeterminate-color);display:var(--ag-icon-font-display-checkbox-indeterminate, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-checkbox-input-wrapper:before{content:"";background:transparent center/contain no-repeat;position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--ag-icon-image-checkbox-unchecked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-unchecked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-unchecked, var(--ag-icon-image-opacity, .9))}.ag-checkbox-input-wrapper.ag-checked:before{background-image:var(--ag-icon-image-checkbox-checked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-checked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-checked, var(--ag-icon-image-opacity, .9))}.ag-checkbox-input-wrapper.ag-indeterminate:before{background-image:var(--ag-icon-image-checkbox-indeterminate, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-indeterminate, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-indeterminate, var(--ag-icon-image-opacity, .9))}.ag-toggle-button-input-wrapper{box-sizing:border-box;width:var(--ag-toggle-button-width);min-width:var(--ag-toggle-button-width);max-width:var(--ag-toggle-button-width);height:var(--ag-toggle-button-height);background-color:var(--ag-toggle-button-off-background-color);border-radius:calc(var(--ag-toggle-button-height) * .5);position:relative;flex:none;border:var(--ag-toggle-button-border-width) solid;border-color:var(--ag-toggle-button-off-border-color)}.ag-toggle-button-input-wrapper input{opacity:0;height:100%;width:100%}.ag-toggle-button-input-wrapper:focus-within{outline:none;box-shadow:var(--ag-input-focus-box-shadow)}.ag-toggle-button-input-wrapper.ag-disabled{opacity:.5}.ag-toggle-button-input-wrapper.ag-checked{background-color:var(--ag-toggle-button-on-background-color);border-color:var(--ag-toggle-button-on-border-color)}.ag-toggle-button-input-wrapper:before{content:" ";position:absolute;top:calc(0px - var(--ag-toggle-button-border-width));left:calc(0px - var(--ag-toggle-button-border-width));display:block;box-sizing:border-box;height:var(--ag-toggle-button-height);width:var(--ag-toggle-button-height);background-color:var(--ag-toggle-button-switch-background-color);border-radius:100%;transition:left .1s;border:var(--ag-toggle-button-border-width) solid;border-color:var(--ag-toggle-button-switch-border-color)}.ag-toggle-button-input-wrapper.ag-checked:before{left:calc(100% - var(--ag-toggle-button-height) + var(--ag-toggle-button-border-width));border-color:var(--ag-toggle-button-on-border-color)}.ag-radio-button-input-wrapper{font-family:var(--ag-icon-font-family);font-weight:var(--ag-icon-font-weight);color:var(--ag-icon-font-color);font-size:var(--ag-icon-size);line-height:var(--ag-icon-size);font-style:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-checkbox-background-color);border-radius:var(--ag-checkbox-border-radius);display:inline-block;vertical-align:middle;flex:none;border-radius:var(--ag-icon-size)}.ag-radio-button-input-wrapper input{-webkit-appearance:none;opacity:0;width:100%;height:100%}.ag-radio-button-input-wrapper:focus-within,.ag-radio-button-input-wrapper:active{outline:none;box-shadow:var(--ag-input-focus-box-shadow)}.ag-radio-button-input-wrapper.ag-disabled{opacity:.5}.ag-radio-button-input-wrapper:after{content:var(--ag-icon-font-code-radio-button-off, "");color:var(--ag-checkbox-unchecked-color);display:var(--ag-icon-font-display-radio-button-off, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-radio-button-input-wrapper.ag-checked:after{content:var(--ag-icon-font-code-radio-button-on, "");color:var(--ag-checkbox-checked-color);display:var(--ag-icon-font-display-radio-button-on, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-radio-button-input-wrapper:before{content:"";background:transparent center/contain no-repeat;position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--ag-icon-image-radio-button-off, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-off, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-off, var(--ag-icon-image-opacity, .9))}.ag-radio-button-input-wrapper.ag-checked:before{background-image:var(--ag-icon-image-radio-button-on, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-on, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-on, var(--ag-icon-image-opacity, .9))}input[class^=ag-][type=range]{-webkit-appearance:none;width:100%;height:100%;background:none;overflow:visible}input[class^=ag-][type=range]::-webkit-slider-runnable-track{margin:0;padding:0;width:100%;height:3px;background-color:var(--ag-border-color);border-radius:var(--ag-border-radius);border-radius:var(--ag-checkbox-border-radius)}input[class^=ag-][type=range]::-moz-range-track{margin:0;padding:0;width:100%;height:3px;background-color:var(--ag-border-color);border-radius:var(--ag-border-radius);border-radius:var(--ag-checkbox-border-radius)}input[class^=ag-][type=range]::-ms-track{margin:0;padding:0;width:100%;height:3px;background-color:var(--ag-border-color);border-radius:var(--ag-border-radius);border-radius:var(--ag-checkbox-border-radius);color:transparent;width:calc(100% - 2px)}input[class^=ag-][type=range]::-webkit-slider-thumb{margin:0;padding:0;-webkit-appearance:none;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-background-color);border:1px solid;border-color:var(--ag-checkbox-unchecked-color);border-radius:var(--ag-icon-size);transform:translateY(calc(var(--ag-icon-size) * -.5 + 1.5px))}input[class^=ag-][type=range]::-ms-thumb{margin:0;padding:0;-webkit-appearance:none;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-background-color);border:1px solid;border-color:var(--ag-checkbox-unchecked-color);border-radius:var(--ag-icon-size)}input[class^=ag-][type=range]::-moz-ag-range-thumb{margin:0;padding:0;-webkit-appearance:none;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-background-color);border:1px solid;border-color:var(--ag-checkbox-unchecked-color);border-radius:var(--ag-icon-size)}input[class^=ag-][type=range]:focus{outline:none}input[class^=ag-][type=range]:focus::-webkit-slider-thumb{box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-checkbox-checked-color)}input[class^=ag-][type=range]:focus::-ms-thumb{box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-checkbox-checked-color)}input[class^=ag-][type=range]:focus::-moz-ag-range-thumb{box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-checkbox-checked-color)}input[class^=ag-][type=range]:active::-webkit-slider-runnable-track{background-color:var(--ag-input-focus-border-color)}input[class^=ag-][type=range]:active::-moz-ag-range-track{background-color:var(--ag-input-focus-border-color)}input[class^=ag-][type=range]:active::-ms-track{background-color:var(--ag-input-focus-border-color)}input[class^=ag-][type=range]:disabled{opacity:.5}@font-face{font-family:agGridAlpine;src:url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABMUAAsAAAAAKMwAABLCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIlWBmAAi34KqmyjKwE2AiQDgkALgSIABCAFhEYHhUEbnyMzg/aatGqziOpJNvu/JGhLhnjjdVVKiQVRRpQIMYb+arBrcnXzpDWxiZ/03+6d7uYA0kgNGvfxjeHHsZxySFI0efhYa+/v7iGeriQ0iXmiiXjIROjWyEwnREJiiNL8r7ned9lNjoj/UviIZqqAwagvZXWN7vQH2uY/PCuxGixE3Zco9c7GTcI4jGiM5Ixl6zZYJOu4deqq/4JF6qJ74B9A4MjcdjWnBf6vzeoX1p0qiEwH0j3ielqTJCVtAmTUucAVrqMqJHm7J9HDZROQwmB/an6zL7XMHhb7kozZWv+/7xgEJkGCJ4SvEGy5v2EaHaSESvAJKgL+b+1f7X9BlMATAqHj4/Ts7Pz/9965+zA0mU+02dBmQ5sfphJYIEX8Xjanfa8cAFStrQKWdRW+vpqEqbN1cToVOJ6CtsfmMoLfUD/X9o81JEiwSx5ix9/Y/D1YFRZgNHb89HY+AigxopP6BiQ4BLYXmusgA7t/bICvlWN7o7wQXGc5eKRfcJ1eti2g4qav/kYgjmNd0tLkOJ2Z/s9UagziUjLg4EUfjozhKEJQaXQSBRvG1xhMyJishB+RIifj9w6SMEZ1KBbXsdcUQmxLtN9Y2RPEjbehOT882Zbg6JXTtclU1IKAeRSMqKLcjrgNk40wT889wmXtgNBtcVthsjULZ4tB2WK6N7J190VFqlzEbaj5YYFjdj8VOa0t8WaELTaNWbZ2zJ36dM0BpxvCVJZlmP07Ku01wgZhT+xoxJdg3JpQhms8MU4R0KC64anv+rx2E9QmUFl/ortRSm2LPVbXu/6mNu5MGHAN4b2DK64KlaiuEGXqwIjTcKY+GVvvXXv07MWrT/8ARxGnhMUgqnrxK5p1WI/vEslM7FNW4qVzW4pQxmZGfTcfLa5FzMYh1DDHeHmEBYawVuhveThz4/Z2dCZM6QPZepCtu0Awgr9fxzGZfEA7NUeBnvZPglAHxmEeGS0TuaKyQz0dlSU+5CaqdHjGJPZMGbqSalOhn8ZkfcgmGZmvf+NtZ3kuxJoanXfBFT1apf/pNpfg7r5/jDDbG8TMmArFxZdY2RunTLjo7A1bhEgOKxy/44qp4TPcaX8TBaqr5I03XL2wOnWsmcJR+qYaVC4sUcTEa3fttqtEtmJTFzkEkKOHEg0IW2xbu847njOcPMS1HEguk4O4evv+401DJCAhp+5PaGo1rgT+qPli3jGfRZOPcxsxeZA4fApUAxlI8uONUTX04VdDPKlrg/1DGRcJ1vfKR7+/mgs1Hnnj81f8qLjXwfcQzmm4Aq0wK9YeoM575jiqJZvSu0mGAXtHYlg7unCQIJhMGY7Vxc3Dy8cvICgkLCIabTAhKSXtT4BZOXkFRSVlFVU1dQ1NLW0dXT19A0MlI2MTSMjUzNwViAL3M3lQqcZ+K0F0pgsVlj2jUW27//+7xP6ErY9y4JcBemZdmAFqntggsMAagUXWDyyxbmCZDQErrAVYZRPAGmsC1lkvsMHagC3WB2yzHmCHDQO7rAPYY+3APhsFDlkzcMS6gGPWCpywEeCUjQNnrBM4ZwPABRsDLkdPgi8AvREIIQhCMIQQCKEQwiCEQ4iAEAkhCkI0hBgIsRDiIMRDSICQCCEJQjKEFAipENIgpEPIgJAJIQtCNoQcCLkQ8iDkQyiAUAihCEIxhBIIpRDKIJRDqIBQCaEKQjWEGgi1EOog1LM3nQboL40QmiA0m0QKvha7bbRCebRBaIfQAWjE1KT6Mbe4oaAEFD15V8c1Npu8CiuJ+AgmZ+ibQWlcWmSAxALcWmEZSyAXGzLeJkSCSHP7vut0TVNSh01dwfysllW0nFagpJbIKHpGxmNm9hthJGqxHh2r9a1LpXoZteJbRCtpSsJSTEsukVAcjaubhmElaof2qUe+BlVN1Giq1mAaAZwEyNjKPVCn9M/ombCZRJqctqcDmwMD6YIbHZTN5WLZAkbni25GeSMT81p3zBduRVryQiIyK7q2F9KY/XxW7heJar+AV/4A237mtCB4kYk89YiCOQFcIhL20uGLC5C//SXJRK8vo5pgx6uNrmAl9nqbrUmU8rR0zekKrHF/ZrbTLBjbkj1RfwZ8jD6jIGTXaC+ppjqxRFrkNJGP9hy7FDGeHl4FhagGY/X+NWKIFlCDQdymq8aSUjqFqWvzkiu8bbxidd5BC5FI3fF2jDbWGGyHuZOQtm5/x4kTONSe2rVrHwpWnb9Nov1nwZZwm7XrFA63gb0no9N9tm+PtjL/zA0c+m27WJbiO3duJdFGFKiPWcdOnQvOn15mzcmdkfJv2xWeAFu3msOOmlv/ywgmtudQ7OBWH57bsiXY22Zxy0oiunOJu23/6avmojw/8UbZj+OwUkFBDKcnL4LlKINqlUTcrvDGGf/szej2+eDcraXhh5YpEnwqsZbt+05dyXoFKq+nwn92ShXNCF6yaHCcROsbmMjVyCpwAIykbGupvSPhMYsX7aOP4HADCurdUp6yJYUFrFqsL8zM7IV47ry5hRjHlQq3cper7EY8sVz1JEovtIkocwPG87er0DaWVUVFTeGaqMp0HFOhdHeVMhkVV0tzq8tXBfsy//f1KNCUo9RSBsUQa7goUOYSCQuMCJP3Zbl1eg901ANJ1JRAwAFWOYEiMGh9B6P5mSBGbmFdFGynyI2W4PF7ElIWwub1lx8hNmUO1YOBRJcelh+8wWAXdQFOYZnMheiyn3mxR0fGUhmEAcuc0OnNoWUCwy9APEPC6JLB3qh3kZxqcakMAz8X5/svbeB0nmCM8gVMTMCsHehWTxx6nn2v4oSV+aW7ZfBDrePhfZfDN33xNOiUOjI9Wu+fCE8FpxclVQIGIiWe206+Due/uv6F2Dfh9JzjOWfkmZE3plNza8PBsWdmDuV0/pIj2R1mA3029clIJ3d6wO7BvYW5lWx1PN6He1fL5X6/NO6J46m/dV+rVPr/2rK/Wp3xZ1dSKYvrnwdUl/rm3o/ThqFSdj1Ba/Tqqdhcb67xvOzTGc/HnB6w3B9EEI8HEiTC8ENfShDpAdJ/36fp3UfwVDATzzCQDf0hai8P8iAP1iG7MWwHe49R29iVpyW9Jvtm//FoVsNrHYxLzl1zj65MQXIJUXDHTCplOz0lt6XklEpsrSs6PLMb6BSjDSNiDdgbT82/rqLjG1PMyGr2IobBMyLY+X4EAyY1FNd7H4onDuKwRiWMHcCARyf3nsBnvo5KE1xM9KRgXZq0hw+FgIGlhoMR4oeQzvBT8Dn66H9YSWzWsLV9s7jHRfgE/EbI/8Ej2I93AzqCDlA9AK8XIc7u5PFcBFOLkAMDS9PTM9JhLmbk04cZURi0w2qd7hf+66VugwSKgGdMv7JAkMfj5QkKnobP8+fxCgRPHXzPW9Q/37AIkv38NMC12IJgEeQP4ifR2kq0EcCfpzP1CB70OLWDwR7ww/Gmm9rbS6VnTq9ZI5UFe9OZQQ1B3ukO03qi/5bXB+aH18eWL1cXFenpRYSf8ZmdOX1ma8SmTTNeK5xpEAc0Z/zNDGBd/alkK3erypElW5WytjZwbAoWVH/+gx9HCEzk8AgdaGJcPKJKuUADupgGNFpHE9PBedUXxBdgmJuRGR2dKetggTA4nAwcEfAGX5aXttT3xW6n+Jf7h/qX+fPke2vc5J1XXf9vbZ9CuW4cEGl9l1K//Kb5TPdBO+vy0J/LYu1pJ1sQW8cwP6rJUouO8Ga2leNOlteBUq/0dOduyyXbLJ2d7B3cLc+PUM1mWHZWNLwxt0mjWi53/MJbCSF2Tx2oKv02+2UWlSLZEw+qhUnWumgHh9WnqYvDZgQeYJBOgWDfYdYqMTVw4gw51S2w2pfrxLoUYmy6jKqEzebc7sO8W6mXh6IiGWxFKEtRln4KVtmHhyrYaGRhe26Tf7YX2+mU4QwUoWw/9+WJLucWczXnuPs13MX7EYp/m7xNhgMG5WFjfnJSewnFh4FjMzKGtkvD3L7BMxntY6pm1IxxwKxsaN/CMrHMpdfwk8ZWo8xtJNKa1PbD86kznOycuOndaR3cSQbGVl5WVGgg+ZUTvO++r47jqoukWKwIyE/TxDR1uskZgbyYnOOXyNIcVnUaaGKbOlzlImGitKTA+GJMSqhzZEFRLy8hOYG+fimXmcBgxDO5pkb5bexUo6AYZ4vFUhE9yymyUKBtBiBO4uEPv+XJmZWmgiLnyPjrip65yps6NTGb8zyI4WYOucqFEzWBqfHwSSm4Bt6OItctPkBmdBu2NRm9W6u/W3znLnzlHDls3FCbwPlhfASHOb0+gZIqjMAOqPgDsVDnDCKsDIooUQHKJzEWptpNYETVo8QPFQtuacUEmOqHGXb71sLHHTli235ZDtXjl063vvdgfVcWhZXDdJcddK1cK8zn8/MawweElsPRd7jQ1zNkuKx1za4W4gLD9MxX5gEXCUcy2ffr1zJhoDJdWWY4R8LZmZjNabLmXvN8MuyroYrDbrStLeMBhRIVRaE8MBqy/fTKvF/oPrCuCZWoklBi8rNRJaC78aN5225GCoBjavCGP+/x1wv48Mz9Y3fy5FzmBH27rG6nemh5dpCEmZjIlARlC8vpKwYHXejlEltICf1KQei46i3X/yT9ObmVBjSNTAk0EG8ziT6JBl9+zrsEDU4sJ3BIIubMMXYRyaadUeuqigpmrwtHPW67uyfufhofX15ioO/kI5Kfrurv//9/8tnMUbN2EF80mtxGqqmzc0uxg1GTzfz+pnlmj286fhoaglDb9Q2xDEasEeJmx4j8hQa2B8R5BTt+CfnvDd4Ze7Opxu++XbSxorK9P3btt1xI4ngqTk5uCGDExwUqmyeT5iuEk4s+chzm3jDhuccbqbo7D8FofaIH/c5JbNGHvE4MO9il6qTE/mh3vW3C2aqew6oGcXcPbP60YUXV6//8adz8urIcvwzfqVN9M/xyLoZPeurU+4lz/C565DcsHl+bw8vkcDJ5OXfF9fyZnBzeXcfqMPwutjE6unEyOVOT+X8u5kc+jZ4xUeuXsvKJUAvPdIOnmFvGNmyb4B3KQuGZ2lLqemDsRLRBliB5lnsm8Ti6Spdv36KjRUIPj6goIKOUeUr4tHlcZtT8VqqGEycmUYwZL1Z9UYQWhgvnzK8JWJOTmmosru7rXSCuiBROt9PwvhU9rFB44o15uQkJWi17334wH3JVYwu1Gd7cvBDT8tnEsljHw4eG0DaKtfuJw3C/f5mMzPX7wbsMnxaIVr7vW6OIb8Djd+9D9+3B4xoUcdo+ZzQgLglliur21l6/uv3Y/t3DEY1f0+sUEaBIwvEHKEDV86+/PX/hvdTfI8H/fqEb8m4cgE20TZ1+lAcpS6tpR0rACZbtRdvoIL3IEWc22wH0G6lD3qJHLUPupbURVMZxp6VZQd1qGPjt791g2KxXZdkyeqdw1T/kYxszbYM3jeNchQ3ulriPeY5Y12m2mjIbFdIFzhZvIlqZh5Eg1TAA0dPwvg+C0AqvZmsQ27zdGORuyWvX6jzLUXOUVJC/L7O75APlycErPsjuSM39f5PI/wGg5sSf93y0cf9U14K0beNCvem/gM1t/pdv/YhgcZT0X4L81ycKtSDt2zC32xwwPgjgI0h12mmkkIA0tAQ1Jwkgc7cOEkrnAUwFAmOYBjpMB+zhRsOnE6hTSwakJABBvd4dkyAJO0B+dNaCAp0PMxUsN0GDzm8ZBh7Kb0ZgeDQva7gn9uYmJE/wG1wJiu2boG/zHzj7SM1ld+F2ek9AwErANP2iyaO7ErGN5YjNY6R1QiHEJnH8Ai3dIJKup1OLz7jTEVcU5wnzjBtB4hHwG5xeuSJQWGCrkP4PjpDhhxaRxqXOhWDiSVCRBwgEjUZvoUazkXNFiLYa2WMRcvWYqhCEQCDeVfL2vgCNTWeI4SXXpmR3VtR0dCpyLiujaovvj5+KtUgji1wURGEURfHfW2t7xN78uHdWCaIkK6qmG6ZlO67nB2EUJ2mWF2VVN23XD+M0L+u2H+d1P+/3c+PWnXsPHj159uLVm3cfPv3w06+1E4djcEp8pIkajrO8rrae6CANodanYjnsMOjvPs5bVgvm3PY5ngwIMHpSAsduswsJRXd1h8ht8qbuvHEFC1Le1k3CSguYSnda1Hpizut6j+v6lcpk1jV8WTubnUkq9YJmC35oc1B5WOf1E1shw7y1Lc5SufGpPvWxpMrXEQTTyiQU5XykG6GV8eQ2MeYe/RIqTCqbJZWWI6WcS0VNsEMtrQohzsDUKYUjhPVUVKcao2ymgdHHkg85oe8mtn0RidRGaw9spajmcoNUOUbYzvdjUWvijHRRJNoBOwxt3qwSgzTM8xwLA7Sk2rIvHxPQZnnqEqjSVXLtxxs3a2EV10pDp0j97k5eVRwGhBeRmUwLBt96c+0fKpKFkbVcKwAA);font-weight:400;font-style:normal}.ag-theme-alpine,.ag-theme-alpine-dark,.ag-theme-alpine-auto-dark{--ag-alpine-active-color: #2196f3;--ag-selected-row-background-color: rgba(33, 150, 243, .3);--ag-row-hover-color: rgba(33, 150, 243, .1);--ag-column-hover-color: rgba(33, 150, 243, .1);--ag-input-focus-border-color: rgba(33, 150, 243, .4);--ag-range-selection-background-color: rgba(33, 150, 243, .2);--ag-range-selection-background-color-2: rgba(33, 150, 243, .36);--ag-range-selection-background-color-3: rgba(33, 150, 243, .49);--ag-range-selection-background-color-4: rgba(33, 150, 243, .59);--ag-background-color: #fff;--ag-foreground-color: #181d1f;--ag-border-color: #babfc7;--ag-secondary-border-color: #dde2eb;--ag-header-background-color: #f8f8f8;--ag-tooltip-background-color: #f8f8f8;--ag-odd-row-background-color: #fcfcfc;--ag-control-panel-background-color: #f8f8f8;--ag-subheader-background-color: #fff;--ag-invalid-color: #e02525;--ag-checkbox-unchecked-color: #999;--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4;--ag-checkbox-background-color: var(--ag-background-color);--ag-checkbox-checked-color: var(--ag-alpine-active-color);--ag-range-selection-border-color: var(--ag-alpine-active-color);--ag-secondary-foreground-color: var(--ag-foreground-color);--ag-input-border-color: var(--ag-border-color);--ag-input-border-color-invalid: var(--ag-invalid-color);--ag-input-focus-box-shadow: 0 0 2px .1rem var(--ag-input-focus-border-color);--ag-panel-background-color: var(--ag-header-background-color);--ag-menu-background-color: var(--ag-header-background-color);--ag-disabled-foreground-color: rgba(24, 29, 31, .5);--ag-chip-background-color: rgba(24, 29, 31, .07);--ag-input-disabled-border-color: rgba(186, 191, 199, .3);--ag-input-disabled-background-color: rgba(186, 191, 199, .15);--ag-borders: solid 1px;--ag-border-radius: 3px;--ag-borders-side-button: none;--ag-side-button-selected-background-color: transparent;--ag-header-column-resize-handle-display: block;--ag-header-column-resize-handle-width: 2px;--ag-header-column-resize-handle-height: 30%;--ag-grid-size: 6px;--ag-icon-size: 16px;--ag-row-height: calc(var(--ag-grid-size) * 7);--ag-header-height: calc(var(--ag-grid-size) * 8);--ag-list-item-height: calc(var(--ag-grid-size) * 4);--ag-column-select-indent-size: var(--ag-icon-size);--ag-set-filter-indent-size: var(--ag-icon-size);--ag-advanced-filter-builder-indent-size: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-cell-widget-spacing: calc(var(--ag-grid-size) * 2);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.5);--ag-toggle-button-height: 18px;--ag-toggle-button-width: 28px;--ag-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--ag-font-size: 13px;--ag-icon-font-family: agGridAlpine;--ag-selected-tab-underline-color: var(--ag-alpine-active-color);--ag-selected-tab-underline-width: 2px;--ag-selected-tab-underline-transition-speed: .3s;--ag-tab-min-width: 240px;--ag-card-shadow: 0 1px 4px 1px rgba(186, 191, 199, .4);--ag-popup-shadow: var(--ag-card-shadow);--ag-side-bar-panel-width: 250px}.ag-theme-alpine-dark{--ag-background-color: #181d1f;--ag-foreground-color: #fff;--ag-border-color: #68686e;--ag-secondary-border-color: rgba(88, 86, 82, .5);--ag-modal-overlay-background-color: rgba(24, 29, 31, .66);--ag-header-background-color: #222628;--ag-tooltip-background-color: #222628;--ag-odd-row-background-color: #222628;--ag-control-panel-background-color: #222628;--ag-subheader-background-color: #000;--ag-input-disabled-background-color: #282c2f;--ag-input-focus-box-shadow: 0 0 2px .5px rgba(255, 255, 255, .5), 0 0 4px 3px var(--ag-input-focus-border-color);--ag-card-shadow: 0 1px 20px 1px black;--ag-disabled-foreground-color: rgba(255, 255, 255, .5);--ag-chip-background-color: rgba(255, 255, 255, .07);--ag-input-disabled-border-color: rgba(104, 104, 110, .3);--ag-input-disabled-background-color: rgba(104, 104, 110, .07);--ag-advanced-filter-join-pill-color: #7a3a37;--ag-advanced-filter-column-pill-color: #355f2d;--ag-advanced-filter-option-pill-color: #5a3168;--ag-advanced-filter-value-pill-color: #374c86;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}@media (prefers-color-scheme: dark){.ag-theme-alpine-auto-dark{--ag-background-color: #181d1f;--ag-foreground-color: #fff;--ag-border-color: #68686e;--ag-secondary-border-color: rgba(88, 86, 82, .5);--ag-modal-overlay-background-color: rgba(24, 29, 31, .66);--ag-header-background-color: #222628;--ag-tooltip-background-color: #222628;--ag-odd-row-background-color: #222628;--ag-control-panel-background-color: #222628;--ag-subheader-background-color: #000;--ag-input-disabled-background-color: #282c2f;--ag-input-focus-box-shadow: 0 0 2px .5px rgba(255, 255, 255, .5), 0 0 4px 3px var(--ag-input-focus-border-color);--ag-card-shadow: 0 1px 20px 1px black;--ag-disabled-foreground-color: rgba(255, 255, 255, .5);--ag-chip-background-color: rgba(255, 255, 255, .07);--ag-input-disabled-border-color: rgba(104, 104, 110, .3);--ag-input-disabled-background-color: rgba(104, 104, 110, .07);--ag-advanced-filter-join-pill-color: #7a3a37;--ag-advanced-filter-column-pill-color: #355f2d;--ag-advanced-filter-option-pill-color: #5a3168;--ag-advanced-filter-value-pill-color: #374c86;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}}.ag-theme-alpine .ag-filter-toolpanel-header,.ag-theme-alpine .ag-filter-toolpanel-search,.ag-theme-alpine .ag-status-bar,.ag-theme-alpine .ag-header-row,.ag-theme-alpine .ag-panel-title-bar-title,.ag-theme-alpine .ag-multi-filter-group-title-bar,.ag-theme-alpine-dark .ag-filter-toolpanel-header,.ag-theme-alpine-dark .ag-filter-toolpanel-search,.ag-theme-alpine-dark .ag-status-bar,.ag-theme-alpine-dark .ag-header-row,.ag-theme-alpine-dark .ag-panel-title-bar-title,.ag-theme-alpine-dark .ag-multi-filter-group-title-bar,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-header,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-search,.ag-theme-alpine-auto-dark .ag-status-bar,.ag-theme-alpine-auto-dark .ag-header-row,.ag-theme-alpine-auto-dark .ag-panel-title-bar-title,.ag-theme-alpine-auto-dark .ag-multi-filter-group-title-bar{font-weight:700;color:var(--ag-header-foreground-color)}.ag-theme-alpine .ag-row,.ag-theme-alpine-dark .ag-row,.ag-theme-alpine-auto-dark .ag-row{font-size:calc(var(--ag-font-size) + 1px)}.ag-theme-alpine input[class^=ag-]:not([type]),.ag-theme-alpine input[class^=ag-][type=text],.ag-theme-alpine input[class^=ag-][type=number],.ag-theme-alpine input[class^=ag-][type=tel],.ag-theme-alpine input[class^=ag-][type=date],.ag-theme-alpine input[class^=ag-][type=datetime-local],.ag-theme-alpine textarea[class^=ag-],.ag-theme-alpine-dark input[class^=ag-]:not([type]),.ag-theme-alpine-dark input[class^=ag-][type=text],.ag-theme-alpine-dark input[class^=ag-][type=number],.ag-theme-alpine-dark input[class^=ag-][type=tel],.ag-theme-alpine-dark input[class^=ag-][type=date],.ag-theme-alpine-dark input[class^=ag-][type=datetime-local],.ag-theme-alpine-dark textarea[class^=ag-],.ag-theme-alpine-auto-dark input[class^=ag-]:not([type]),.ag-theme-alpine-auto-dark input[class^=ag-][type=text],.ag-theme-alpine-auto-dark input[class^=ag-][type=number],.ag-theme-alpine-auto-dark input[class^=ag-][type=tel],.ag-theme-alpine-auto-dark input[class^=ag-][type=date],.ag-theme-alpine-auto-dark input[class^=ag-][type=datetime-local],.ag-theme-alpine-auto-dark textarea[class^=ag-]{min-height:calc(var(--ag-grid-size) * 4);border-radius:var(--ag-border-radius)}.ag-theme-alpine .ag-ltr input[class^=ag-]:not([type]),.ag-theme-alpine .ag-ltr input[class^=ag-][type=text],.ag-theme-alpine .ag-ltr input[class^=ag-][type=number],.ag-theme-alpine .ag-ltr input[class^=ag-][type=tel],.ag-theme-alpine .ag-ltr input[class^=ag-][type=date],.ag-theme-alpine .ag-ltr input[class^=ag-][type=datetime-local],.ag-theme-alpine .ag-ltr textarea[class^=ag-],.ag-theme-alpine-dark .ag-ltr input[class^=ag-]:not([type]),.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=text],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=number],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=tel],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=date],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=datetime-local],.ag-theme-alpine-dark .ag-ltr textarea[class^=ag-],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-]:not([type]),.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=text],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=number],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=tel],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=date],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=datetime-local],.ag-theme-alpine-auto-dark .ag-ltr textarea[class^=ag-]{padding-left:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl input[class^=ag-]:not([type]),.ag-theme-alpine .ag-rtl input[class^=ag-][type=text],.ag-theme-alpine .ag-rtl input[class^=ag-][type=number],.ag-theme-alpine .ag-rtl input[class^=ag-][type=tel],.ag-theme-alpine .ag-rtl input[class^=ag-][type=date],.ag-theme-alpine .ag-rtl input[class^=ag-][type=datetime-local],.ag-theme-alpine .ag-rtl textarea[class^=ag-],.ag-theme-alpine-dark .ag-rtl input[class^=ag-]:not([type]),.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=text],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=number],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=tel],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=date],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=datetime-local],.ag-theme-alpine-dark .ag-rtl textarea[class^=ag-],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-]:not([type]),.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=text],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=number],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=tel],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=date],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=datetime-local],.ag-theme-alpine-auto-dark .ag-rtl textarea[class^=ag-]{padding-right:var(--ag-grid-size)}.ag-theme-alpine .ag-tab,.ag-theme-alpine-dark .ag-tab,.ag-theme-alpine-auto-dark .ag-tab{padding:calc(var(--ag-grid-size) * 1.5);transition:color .4s;flex:1 1 auto}.ag-theme-alpine .ag-tab-selected,.ag-theme-alpine-dark .ag-tab-selected,.ag-theme-alpine-auto-dark .ag-tab-selected{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-menu,.ag-theme-alpine-dark .ag-menu,.ag-theme-alpine-auto-dark .ag-menu,.ag-theme-alpine .ag-panel-content-wrapper .ag-column-select,.ag-theme-alpine-dark .ag-panel-content-wrapper .ag-column-select,.ag-theme-alpine-auto-dark .ag-panel-content-wrapper .ag-column-select{background-color:var(--ag-control-panel-background-color)}.ag-theme-alpine .ag-menu-header,.ag-theme-alpine-dark .ag-menu-header,.ag-theme-alpine-auto-dark .ag-menu-header{background-color:var(--ag-control-panel-background-color);padding-top:1px}.ag-theme-alpine .ag-tabs-header,.ag-theme-alpine-dark .ag-tabs-header,.ag-theme-alpine-auto-dark .ag-tabs-header{border-bottom:var(--ag-borders) var(--ag-border-color)}.ag-theme-alpine .ag-charts-settings-group-title-bar,.ag-theme-alpine .ag-charts-data-group-title-bar,.ag-theme-alpine .ag-charts-format-top-level-group-title-bar,.ag-theme-alpine .ag-charts-advanced-settings-top-level-group-title-bar,.ag-theme-alpine-dark .ag-charts-settings-group-title-bar,.ag-theme-alpine-dark .ag-charts-data-group-title-bar,.ag-theme-alpine-dark .ag-charts-format-top-level-group-title-bar,.ag-theme-alpine-dark .ag-charts-advanced-settings-top-level-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-settings-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-data-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-format-top-level-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-advanced-settings-top-level-group-title-bar{padding:var(--ag-grid-size) calc(var(--ag-grid-size) * 2);line-height:calc(var(--ag-icon-size) + var(--ag-grid-size) - 2px)}.ag-theme-alpine .ag-chart-mini-thumbnail,.ag-theme-alpine-dark .ag-chart-mini-thumbnail,.ag-theme-alpine-auto-dark .ag-chart-mini-thumbnail{background-color:var(--ag-background-color)}.ag-theme-alpine .ag-chart-settings-nav-bar,.ag-theme-alpine-dark .ag-chart-settings-nav-bar,.ag-theme-alpine-auto-dark .ag-chart-settings-nav-bar{border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-theme-alpine .ag-ltr .ag-group-title-bar-icon,.ag-theme-alpine-dark .ag-ltr .ag-group-title-bar-icon,.ag-theme-alpine-auto-dark .ag-ltr .ag-group-title-bar-icon{margin-right:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl .ag-group-title-bar-icon,.ag-theme-alpine-dark .ag-rtl .ag-group-title-bar-icon,.ag-theme-alpine-auto-dark .ag-rtl .ag-group-title-bar-icon{margin-left:var(--ag-grid-size)}.ag-theme-alpine .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-dark .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-dark .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-charts-advanced-settings-top-level-group-toolbar{margin-top:var(--ag-grid-size)}.ag-theme-alpine .ag-ltr .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine .ag-ltr .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-dark .ag-ltr .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-dark .ag-ltr .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-ltr .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-ltr .ag-charts-advanced-settings-top-level-group-toolbar{padding-left:calc(var(--ag-icon-size) * .5 + var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-rtl .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine .ag-rtl .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-dark .ag-rtl .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-dark .ag-rtl .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-rtl .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-rtl .ag-charts-advanced-settings-top-level-group-toolbar{padding-right:calc(var(--ag-icon-size) * .5 + var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-charts-format-sub-level-group,.ag-theme-alpine-dark .ag-charts-format-sub-level-group,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group{border-left:dashed 1px;border-left-color:var(--ag-border-color);padding-left:var(--ag-grid-size);margin-bottom:calc(var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-charts-format-sub-level-group-title-bar,.ag-theme-alpine-dark .ag-charts-format-sub-level-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group-title-bar{padding-top:0;padding-bottom:0;background:none;font-weight:700}.ag-theme-alpine .ag-charts-format-sub-level-group-container,.ag-theme-alpine-dark .ag-charts-format-sub-level-group-container,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group-container{padding-bottom:0}.ag-theme-alpine .ag-charts-format-sub-level-group-item:last-child,.ag-theme-alpine-dark .ag-charts-format-sub-level-group-item:last-child,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group-item:last-child{margin-bottom:0}.ag-theme-alpine.ag-dnd-ghost,.ag-theme-alpine-dark.ag-dnd-ghost,.ag-theme-alpine-auto-dark.ag-dnd-ghost{font-size:calc(var(--ag-font-size) - 1px);font-weight:700}.ag-theme-alpine .ag-side-buttons,.ag-theme-alpine-dark .ag-side-buttons,.ag-theme-alpine-auto-dark .ag-side-buttons{width:calc(var(--ag-grid-size) * 5)}.ag-theme-alpine .ag-standard-button,.ag-theme-alpine-dark .ag-standard-button,.ag-theme-alpine-auto-dark .ag-standard-button{font-family:inherit;appearance:none;-webkit-appearance:none;border-radius:var(--ag-border-radius);border:1px solid;border-color:var(--ag-alpine-active-color);color:var(--ag-alpine-active-color);background-color:var(--ag-background-color);font-weight:600;padding:var(--ag-grid-size) calc(var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-standard-button:hover,.ag-theme-alpine-dark .ag-standard-button:hover,.ag-theme-alpine-auto-dark .ag-standard-button:hover{border-color:var(--ag-alpine-active-color);background-color:var(--ag-row-hover-color)}.ag-theme-alpine .ag-standard-button:active,.ag-theme-alpine-dark .ag-standard-button:active,.ag-theme-alpine-auto-dark .ag-standard-button:active{border-color:var(--ag-alpine-active-color);background-color:var(--ag-alpine-active-color);color:var(--ag-background-color)}.ag-theme-alpine .ag-standard-button:disabled,.ag-theme-alpine-dark .ag-standard-button:disabled,.ag-theme-alpine-auto-dark .ag-standard-button:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-theme-alpine .ag-column-drop-vertical,.ag-theme-alpine-dark .ag-column-drop-vertical,.ag-theme-alpine-auto-dark .ag-column-drop-vertical{min-height:75px}.ag-theme-alpine .ag-column-drop-vertical-title-bar,.ag-theme-alpine-dark .ag-column-drop-vertical-title-bar,.ag-theme-alpine-auto-dark .ag-column-drop-vertical-title-bar{padding:calc(var(--ag-grid-size) * 2);padding-bottom:0}.ag-theme-alpine .ag-column-drop-vertical-empty-message,.ag-theme-alpine-dark .ag-column-drop-vertical-empty-message,.ag-theme-alpine-auto-dark .ag-column-drop-vertical-empty-message{display:flex;align-items:center;border:dashed 1px;border-color:var(--ag-border-color);margin:calc(var(--ag-grid-size) * 2);padding:calc(var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-column-drop-empty-message,.ag-theme-alpine-dark .ag-column-drop-empty-message,.ag-theme-alpine-auto-dark .ag-column-drop-empty-message{color:var(--ag-foreground-color);opacity:.75}.ag-theme-alpine .ag-pill-select .ag-column-drop,.ag-theme-alpine-dark .ag-pill-select .ag-column-drop,.ag-theme-alpine-auto-dark .ag-pill-select .ag-column-drop{min-height:unset}.ag-theme-alpine .ag-status-bar,.ag-theme-alpine-dark .ag-status-bar,.ag-theme-alpine-auto-dark .ag-status-bar{font-weight:400}.ag-theme-alpine .ag-status-name-value-value,.ag-theme-alpine-dark .ag-status-name-value-value,.ag-theme-alpine-auto-dark .ag-status-name-value-value,.ag-theme-alpine .ag-paging-number,.ag-theme-alpine .ag-paging-row-summary-panel-number,.ag-theme-alpine-dark .ag-paging-number,.ag-theme-alpine-dark .ag-paging-row-summary-panel-number,.ag-theme-alpine-auto-dark .ag-paging-number,.ag-theme-alpine-auto-dark .ag-paging-row-summary-panel-number{font-weight:700}.ag-theme-alpine .ag-column-drop-cell-button,.ag-theme-alpine-dark .ag-column-drop-cell-button,.ag-theme-alpine-auto-dark .ag-column-drop-cell-button{opacity:.5}.ag-theme-alpine .ag-column-drop-cell-button:hover,.ag-theme-alpine-dark .ag-column-drop-cell-button:hover,.ag-theme-alpine-auto-dark .ag-column-drop-cell-button:hover{opacity:.75}.ag-theme-alpine .ag-column-select-column-readonly.ag-icon-grip,.ag-theme-alpine .ag-column-select-column-readonly .ag-icon-grip,.ag-theme-alpine-dark .ag-column-select-column-readonly.ag-icon-grip,.ag-theme-alpine-dark .ag-column-select-column-readonly .ag-icon-grip,.ag-theme-alpine-auto-dark .ag-column-select-column-readonly.ag-icon-grip,.ag-theme-alpine-auto-dark .ag-column-select-column-readonly .ag-icon-grip{opacity:.35}.ag-theme-alpine .ag-header-cell-menu-button:hover,.ag-theme-alpine .ag-header-cell-filter-button:hover,.ag-theme-alpine .ag-side-button-button:hover,.ag-theme-alpine .ag-tab:hover,.ag-theme-alpine .ag-panel-title-bar-button:hover,.ag-theme-alpine .ag-header-expand-icon:hover,.ag-theme-alpine .ag-column-group-icons:hover,.ag-theme-alpine .ag-set-filter-group-icons:hover,.ag-theme-alpine .ag-group-expanded .ag-icon:hover,.ag-theme-alpine .ag-group-contracted .ag-icon:hover,.ag-theme-alpine .ag-chart-settings-prev:hover,.ag-theme-alpine .ag-chart-settings-next:hover,.ag-theme-alpine .ag-group-title-bar-icon:hover,.ag-theme-alpine .ag-column-select-header-icon:hover,.ag-theme-alpine .ag-floating-filter-button-button:hover,.ag-theme-alpine .ag-filter-toolpanel-expand:hover,.ag-theme-alpine .ag-chart-menu-icon:hover,.ag-theme-alpine-dark .ag-header-cell-menu-button:hover,.ag-theme-alpine-dark .ag-header-cell-filter-button:hover,.ag-theme-alpine-dark .ag-side-button-button:hover,.ag-theme-alpine-dark .ag-tab:hover,.ag-theme-alpine-dark .ag-panel-title-bar-button:hover,.ag-theme-alpine-dark .ag-header-expand-icon:hover,.ag-theme-alpine-dark .ag-column-group-icons:hover,.ag-theme-alpine-dark .ag-set-filter-group-icons:hover,.ag-theme-alpine-dark .ag-group-expanded .ag-icon:hover,.ag-theme-alpine-dark .ag-group-contracted .ag-icon:hover,.ag-theme-alpine-dark .ag-chart-settings-prev:hover,.ag-theme-alpine-dark .ag-chart-settings-next:hover,.ag-theme-alpine-dark .ag-group-title-bar-icon:hover,.ag-theme-alpine-dark .ag-column-select-header-icon:hover,.ag-theme-alpine-dark .ag-floating-filter-button-button:hover,.ag-theme-alpine-dark .ag-filter-toolpanel-expand:hover,.ag-theme-alpine-dark .ag-chart-menu-icon:hover,.ag-theme-alpine-auto-dark .ag-header-cell-menu-button:hover,.ag-theme-alpine-auto-dark .ag-header-cell-filter-button:hover,.ag-theme-alpine-auto-dark .ag-side-button-button:hover,.ag-theme-alpine-auto-dark .ag-tab:hover,.ag-theme-alpine-auto-dark .ag-panel-title-bar-button:hover,.ag-theme-alpine-auto-dark .ag-header-expand-icon:hover,.ag-theme-alpine-auto-dark .ag-column-group-icons:hover,.ag-theme-alpine-auto-dark .ag-set-filter-group-icons:hover,.ag-theme-alpine-auto-dark .ag-group-expanded .ag-icon:hover,.ag-theme-alpine-auto-dark .ag-group-contracted .ag-icon:hover,.ag-theme-alpine-auto-dark .ag-chart-settings-prev:hover,.ag-theme-alpine-auto-dark .ag-chart-settings-next:hover,.ag-theme-alpine-auto-dark .ag-group-title-bar-icon:hover,.ag-theme-alpine-auto-dark .ag-column-select-header-icon:hover,.ag-theme-alpine-auto-dark .ag-floating-filter-button-button:hover,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-expand:hover,.ag-theme-alpine-auto-dark .ag-chart-menu-icon:hover{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-header-cell-menu-button:hover .ag-icon,.ag-theme-alpine .ag-header-cell-filter-button:hover .ag-icon,.ag-theme-alpine .ag-side-button-button:hover .ag-icon,.ag-theme-alpine .ag-panel-title-bar-button:hover .ag-icon,.ag-theme-alpine .ag-floating-filter-button-button:hover .ag-icon,.ag-theme-alpine-dark .ag-header-cell-menu-button:hover .ag-icon,.ag-theme-alpine-dark .ag-header-cell-filter-button:hover .ag-icon,.ag-theme-alpine-dark .ag-side-button-button:hover .ag-icon,.ag-theme-alpine-dark .ag-panel-title-bar-button:hover .ag-icon,.ag-theme-alpine-dark .ag-floating-filter-button-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-header-cell-menu-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-header-cell-filter-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-side-button-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-panel-title-bar-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-floating-filter-button-button:hover .ag-icon{color:inherit}.ag-theme-alpine .ag-filter-active .ag-icon-filter,.ag-theme-alpine-dark .ag-filter-active .ag-icon-filter,.ag-theme-alpine-auto-dark .ag-filter-active .ag-icon-filter{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-chart-settings-card-item.ag-not-selected:hover,.ag-theme-alpine-dark .ag-chart-settings-card-item.ag-not-selected:hover,.ag-theme-alpine-auto-dark .ag-chart-settings-card-item.ag-not-selected:hover{opacity:.35}.ag-theme-alpine .ag-ltr .ag-panel-title-bar-button,.ag-theme-alpine-dark .ag-ltr .ag-panel-title-bar-button,.ag-theme-alpine-auto-dark .ag-ltr .ag-panel-title-bar-button{margin-left:calc(var(--ag-grid-size) * 2);margin-right:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl .ag-panel-title-bar-button,.ag-theme-alpine-dark .ag-rtl .ag-panel-title-bar-button,.ag-theme-alpine-auto-dark .ag-rtl .ag-panel-title-bar-button{margin-right:calc(var(--ag-grid-size) * 2);margin-left:var(--ag-grid-size)}.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-container,.ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-container,.ag-theme-alpine-auto-dark .ag-ltr .ag-filter-toolpanel-group-container{padding-left:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-container,.ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-container,.ag-theme-alpine-auto-dark .ag-rtl .ag-filter-toolpanel-group-container{padding-right:var(--ag-grid-size)}.ag-theme-alpine .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-dark .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-instance-filter{border:none;background-color:var(--ag-control-panel-background-color)}.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-auto-dark .ag-ltr .ag-filter-toolpanel-instance-filter{border-left:dashed 1px;border-left-color:var(--ag-border-color);margin-left:calc(var(--ag-icon-size) * .5)}.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-auto-dark .ag-rtl .ag-filter-toolpanel-instance-filter{border-right:dashed 1px;border-right-color:var(--ag-border-color);margin-right:calc(var(--ag-icon-size) * .5)}.ag-theme-alpine .ag-set-filter-list,.ag-theme-alpine-dark .ag-set-filter-list,.ag-theme-alpine-auto-dark .ag-set-filter-list{padding-top:calc(var(--ag-grid-size) * .5);padding-bottom:calc(var(--ag-grid-size) * .5)}.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-container,.ag-theme-alpine .ag-layout-print .ag-center-cols-viewport,.ag-theme-alpine .ag-layout-print .ag-center-cols-container,.ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-alpine-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-alpine-dark .ag-layout-print .ag-center-cols-container,.ag-theme-alpine-auto-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-alpine-auto-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-alpine-auto-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-alpine-auto-dark .ag-layout-print .ag-center-cols-container{min-height:150px}.ag-theme-alpine .ag-date-time-list-page-entry-is-current,.ag-theme-alpine-dark .ag-date-time-list-page-entry-is-current,.ag-theme-alpine-auto-dark .ag-date-time-list-page-entry-is-current{background-color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-advanced-filter-builder-button,.ag-theme-alpine-dark .ag-advanced-filter-builder-button,.ag-theme-alpine-auto-dark .ag-advanced-filter-builder-button{padding:var(--ag-grid-size);font-weight:600}.ag-theme-alpine .ag-list-item-hovered:after,.ag-theme-alpine-dark .ag-list-item-hovered:after,.ag-theme-alpine-auto-dark .ag-list-item-hovered:after{background-color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-pill .ag-pill-button:hover,.ag-theme-alpine-dark .ag-pill .ag-pill-button:hover,.ag-theme-alpine-auto-dark .ag-pill .ag-pill-button:hover{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-header-highlight-before:after,.ag-theme-alpine .ag-header-highlight-after:after,.ag-theme-alpine-dark .ag-header-highlight-before:after,.ag-theme-alpine-dark .ag-header-highlight-after:after,.ag-theme-alpine-auto-dark .ag-header-highlight-before:after,.ag-theme-alpine-auto-dark .ag-header-highlight-after:after{background-color:var(--ag-alpine-active-color)}:root{background-color:#fff}@media (prefers-color-scheme: dark){:root{background-color:#1a202c;color:#fff}}html{height:100%}body{margin:0;overflow:hidden;height:100%;width:100%;width:-webkit-fill-available;padding:env(safe-area-inset-top,20px) env(safe-area-inset-right,20px) env(safe-area-inset-bottom,20px) env(safe-area-inset-left,20px)}div#root{height:100%;width:100%}*{box-sizing:border-box}\n/*$vite$:1*/',document.head.appendChild(Ye),e({G:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m14 7-5 5 5 5V7z"},child:[]},{tag:"path",attr:{fill:"none",d:"M24 0v24H0V0h24z"},child:[]}]})(e)},H:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m10 17 5-5-5-5v10z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 24V0h24v24H0z"},child:[]}]})(e)},M:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z"},child:[]}]})(e)},R:Kr,X:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3 5 6.99h3V14h2V6.99h3L9 3z"},child:[]}]})(e)},aA:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"},child:[]},{tag:"path",attr:{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"},child:[]}]})(e)},aI:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"},child:[]}]})(e)},aJ:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M5 20h14v-2H5v2zm0-10h4v6h6v-6h4l-7-7-7 7z"},child:[]}]})(e)},aK:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm-7 6-4 4h3v6h2v-6h3l-4-4z"},child:[]}]})(e)},aN:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"},child:[]}]})(e)},aO:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},child:[]}]})(e)},aP:function(e){var a=e.defaultValue,o=e.min,i=e.max,n=e.step,l=e.onThrottledChange,g=e.leftIcon,c=e.rightIcon,s=t("RmgThrottledSlider"),d=Hr(Ae.useState(null!=a?a:0),2),p=d[0],u=d[1];Ae.useEffect((function(){void 0!==a&&p!==a&&u(a)}),[a]);var h=Br(null!=l?l:function(){},500);return r.jsxs(f,{sx:s,children:[g&&r.jsx(re,{size:"xs",variant:"ghost","aria-label":"Drag left",icon:g,onClick:function(){var e=Math.max(p-10*(null!=n?n:1),null!=o?o:0);null==l||l(e),u(e)}}),r.jsxs(ie,{value:p,min:o,max:i,step:n,onChange:function(e){h(e),u(e)},children:[r.jsx(ne,{children:r.jsx(le,{})}),r.jsx(ge,{})]}),c&&r.jsx(re,{size:"xs",variant:"ghost","aria-label":"Drag right",icon:c,onClick:function(){var e=Math.min(p+10*(null!=n?n:1),null!=i?i:100);null==l||l(e),u(e)}})]})},aU:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},child:[]}]})(e)},ai:function(e){var a=e.defaultValue,t=e.options,o=e.disabledOptions,i=Rr(e,["defaultValue","options","disabledOptions"]),n=Ae.useRef(null);Ae.useEffect((function(){n.current&&(n.current.value=(null==a?void 0:a.toString())||"")}),[a]);var l=function(e,a){return r.jsx("option",{value:e,disabled:void 0!==(null==o?void 0:o.find((function(a){return a.toString()===e}))),children:a},e)};return r.jsx(oe,Tr({ref:n,variant:"flushed",size:"sm",h:6},i,{children:Object.entries(t).map((function(e){var a=Pr(e,2),t=a[0],o=a[1];return"object"==typeof o?r.jsx("optgroup",{label:t,children:Object.entries(o).map((function(e){var a=Pr(e,2),t=a[0],o=a[1];return l(t,o)}))},t):l(t,o)}))}))},aj:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"},child:[]}]})(e)},ak:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m19 8-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 0 1-2.8-.7l-1.46 1.46A7.93 7.93 0 0 0 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0 0 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"},child:[]}]})(e)},as:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"},child:[]}]})(e)},at:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"},child:[]}]})(e)},au:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10a2.5 2.5 0 0 0 2.5-2.5c0-.61-.23-1.2-.64-1.67a.528.528 0 0 1-.13-.33c0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zM5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S7.33 13 6.5 13 5 12.33 5 11.5zm6-4c0 .83-.67 1.5-1.5 1.5S8 8.33 8 7.5 8.67 6 9.5 6s1.5.67 1.5 1.5z"},child:[]}]})(e)},az:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"},child:[]}]})(e)},f:function(e){var a=e.selections,t=e.defaultValue,o=e.onChange,i=e.multiSelect,n=lr(Ae.useState(t),2),l=n[0],g=n[1];return Ae.useEffect((function(){t.toString()&&g(t)}),[t.toString()]),r.jsx(I,{size:"xs",isAttached:!0,colorScheme:"primary",variant:"outline",children:a.map((function(e,t){var n="object"==typeof l&&l.includes(e.value)||l===e.value,c=t===a.length-1||n?void 0:"-px";return r.jsx(E,{role:"checkbox","aria-checked":n,variant:n?"solid":"outline",mr:c,flex:1,isDisabled:e.disabled,onClick:function(){return function(e){if(i){var a=l,t=a.includes(e)?a.filter((function(a){return a!==e})):gr(gr([],lr(a),!1),[e],!1);g(t),null==o||o(t)}else g(e),null==o||o(e)}(e.value)},children:e.label},e.value.toString())}))})},i:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"},child:[]}]})(e)},k:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"},child:[]}]})(e)},l:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"},child:[]}]})(e)},w:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m7 14 5-5 5 5z"},child:[]}]})(e)},x:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m7 10 5 5 5-5z"},child:[]}]})(e)},z:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 13H5v-2h14v2z"},child:[]}]})(e)}});var We=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(a){i(a)}}function l(e){try{g(o.throw(e))}catch(a){i(a)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};const Qe=e=>new Promise((a=>{setTimeout(a,e,`Timeout after ${e/1e3} seconds`)})),Je=e=>{let a=0;for(let t=0;t{const a=(16777215&e).toString(16).toUpperCase();return"#"+"00000".substring(0,6-a.length)+a};var Ke;!function(e){e.DEV="DEV",e.UAT="UAT",e.PRD="PRD"}(Ke||(Ke={}));const Ze="rmg-runtime__language",qe="rmg-runtime__colourMode",Xe="rmg-runtime__allowAnalytics",ea="rmg-unknown";let aa=ea,ta=$e(Je(ea));const oa=()=>`[${aa}]`,ra=()=>ta,ia=(e,a,t)=>(...o)=>{"string"==typeof o[0]?e(`%c${a()}%c ${o[0]}`,`color: ${t()}`,"",...o.slice(1)):e(`%c${a()}%c`,`color: ${t()}`,"",...o)},na={debug:ia(console.debug,oa,ra),info:ia(console.info,oa,ra),warn:ia(console.warn,oa,ra),error:ia(console.error,oa,ra)},la=()=>aa===ea?"[runtime]":`[runtime@${aa}]`,ga=$e(Je("runtime")),ca=()=>ga,sa={setup:e=>{aa=e,ta=$e(Je(e))},logger:na,debug:ia(console.debug,la,ca),info:ia(console.info,la,ca),warn:ia(console.warn,la,ca),error:ia(console.error,la,ca),group:ia(console.group,la,ca),groupEnd:console.groupEnd};var da=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(a){i(a)}}function l(e){try{g(o.throw(e))}catch(a){i(a)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};let pa,ua,ha,fa,va;const ma=()=>{pa=!1,ua=ea,ha="unknown",fa=Ke.PRD,va="unknown"},ba=()=>"railmapgen.github.io"===ua;ma();const ya={loadWithTimeout:()=>da(void 0,void 0,void 0,(function*(){try{sa.group("Loading config...");const e=yield Promise.race([da(void 0,void 0,void 0,(function*(){const e=window.location.pathname.split("/")[1],a=e?`/${e}/info.json`:"/info.json",t=yield fetch(a);if(!t.ok)throw new Error(`Failed to fetch config from ${a}`);{const e=yield t.json();sa.info("Received info.json",e),ua=e.component,ha=e.version,fa=e.environment,va=e.instance}})),Qe(1e4)]);e?sa.error("❌ Failed to load config.",e):(pa=!0,sa.info("✅ Config loaded!"))}catch(e){sa.error("❌ Failed to load config.",e)}finally{sa.groupEnd()}})),isInitialised:()=>pa,getComponent:()=>ba()?"rmg-home":ua,getVersion:()=>ha,getEnvironment:()=>fa,getInstance:()=>va,isRMT:ba,_resetConfig:ma};function wa(...e){if(ya.getEnvironment()!==Ke.DEV)return window.dataLayer.push(arguments);sa.info("Not going to send event in DEV environment",e)}window.dataLayer=window.dataLayer||[];const xa={init:()=>{(()=>{const e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-2HP8Y4MRRQ",document.head.append(e)})(),wa("js",new Date),wa("config","G-2HP8Y4MRRQ",{appName:ya.getComponent(),version:ya.getVersion(),environment:ya.getEnvironment(),instance:ya.getInstance()})},customEvent:(e,a={})=>{wa("event",e,a)}},ka={};let za;try{za=new BroadcastChannel("rmg-runtime-channel"),za.onmessage=e=>{var a;const{event:t,data:o,frameId:r}=e.data;null===(a=ka[t])||void 0===a||a.forEach((e=>e(o,r)))}}catch(il){sa.warn("Failed to initiate broadcast channel. Some features may be unavailable.",il)}const Ma={postEvent:(e,a)=>{var t;sa.debug(`Broadcasting event ${e} with data`,a),null==za||za.postMessage({event:e,data:a,frameId:null===(t=window.frameElement)||void 0===t?void 0:t.id})},onMessage:(e,a)=>{var t;e in ka?null===(t=ka[e])||void 0===t||t.push(a):ka[e]=[a]}},ja="TOGGLE_NAV_MENU",Sa="OPEN_APP",Na="CLOSE_APP",Oa="UPDATE_APP_METADATA",Aa="UPDATE_URL",Ia=()=>!window.frameElement,Ea={isStandaloneWindow:Ia,injectUITools:()=>{if(!Ia()){const e=document.createElement("style");e.textContent="body{padding: 0;}",document.head.appendChild(e)}const e=document.createElement("style");var a;e.textContent=".rmg-window__header:not(.rmg-window__app-clip-header){margin-left: 40px;}",Ia()||(null===(a=window.frameElement)||void 0===a?void 0:a.closest(".show-menu"))||document.head.appendChild(e),Ia()||Ma.onMessage(ja,(a=>{if(a)try{document.head.removeChild(e)}catch(il){sa.warn("Unable to remove indent style from RmgWindowHeader",il)}else document.head.appendChild(e)}))},openApp:e=>{Ma.postEvent(Sa,e)},onAppOpen:e=>{Ma.onMessage(Sa,e)},closeApp:e=>{Ma.postEvent(Na,e)},onAppClose:e=>{Ma.onMessage(Na,e)},updateAppMetadata:e=>{Ma.postEvent(Oa,e)},onAppMetadataUpdate:e=>{Ma.onMessage(Oa,e)},updateUrl:e=>{Ma.postEvent(Aa,e)},onUrlUpdate:e=>{Ma.onMessage(Aa,e)},toggleNavMenu:e=>{Ma.postEvent(ja,e)}},Da="SET_LANGUAGE",La="SET_COLOUR_MODE",Ca=["light","dark","system"],Ta=()=>"true"===window.localStorage.getItem(Xe),Ra={setLanguage:e=>{Ma.postEvent(Da,e),window.localStorage.setItem(Ze,e)},getLanguage:()=>window.localStorage.getItem(Ze)||"en",onLanguageChange:e=>{Ma.onMessage(Da,e)},setColourMode:e=>{Ca.includes(e)&&(Ma.postEvent(La,e),window.localStorage.setItem(qe,e))},getColourMode:()=>{const e=window.localStorage.getItem(qe);return a=e,Boolean(a&&Ca.includes(a))?e:"system";var a},onColourModeChange:e=>{Ma.onMessage(La,e)},isAnalyticsQADone:()=>null!==window.localStorage.getItem(Xe),isAllowAnalytics:Ta,allowAnalytics:e=>{const a=Ta();return e?(a||(window.localStorage.setItem(Xe,e.toString()),xa.init()),{refreshRequired:!1}):a?(window.localStorage.setItem(Xe,e.toString()),{refreshRequired:!0}):{refreshRequired:!1}}},Pa=(new Date).getTime(),_a={getMsSinceStartUp:function(){const e=ya.getComponent(),a=window.localStorage.getItem(e+"__startTime");return null===a?(new Date).getTime()-Pa:(new Date).getTime()-Number(a)}},Ua={},Ba=()=>{const e=ya.getComponent();if(e===ea)throw new Error("Unable to clear storage for unknown app");return e};window.addEventListener("storage",(e=>{var a;const{key:t,newValue:o}=e;t&&(null===(a=Ua[t])||void 0===a||a.forEach((e=>e(o))))}));const Ha={on:(e,a)=>{var t;const o=`${Ba()}__${e}`;o in Ua?null===(t=Ua[o])||void 0===t||t.push(a):Ua[o]=[a]},get:e=>{const a=Ba();return window.localStorage.getItem(`${a}__${e}`)},getAll:()=>{const e=Ba(),a={};let t=0;for(;t{const t=Ba();window.localStorage.setItem(`${t}__${e}`,a)},remove:e=>{const a=Ba();window.localStorage.removeItem(`${a}__${e}`)},clear:()=>{const e=Ba();let a=0;for(;a1&&void 0!==arguments[1]?arguments[1]:{};this.init(e,a)}init(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=a.prefix||"i18next:",this.logger=e||Va,this.options=a,this.debug=a.debug}log(){for(var e=arguments.length,a=new Array(e),t=0;t{this.observers[e]||(this.observers[e]=new Map);const t=this.observers[e].get(a)||0;this.observers[e].set(a,t+1)})),this}off(e,a){this.observers[e]&&(a?this.observers[e].delete(a):delete this.observers[e])}emit(e){for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o{let[a,o]=e;for(let r=0;r{let[o,r]=a;for(let i=0;i{let e,a;const t=new Promise(((t,o)=>{e=t,a=o}));return t.resolve=e,t.reject=a,t},Qa=e=>null==e?"":""+e,Ja=/###/g,$a=e=>e&&e.indexOf("###")>-1?e.replace(Ja,"."):e,Ka=e=>!e||"string"==typeof e,Za=(e,a,t)=>{const o="string"!=typeof a?a:a.split(".");let r=0;for(;r{const{obj:o,k:r}=Za(e,a,Object);if(void 0!==o||1===a.length)return void(o[r]=t);let i=a[a.length-1],n=a.slice(0,a.length-1),l=Za(e,n,Object);for(;void 0===l.obj&&n.length;)i=`${n[n.length-1]}.${i}`,n=n.slice(0,n.length-1),l=Za(e,n,Object),l&&l.obj&&void 0!==l.obj[`${l.k}.${i}`]&&(l.obj=void 0);l.obj[`${l.k}.${i}`]=t},Xa=(e,a)=>{const{obj:t,k:o}=Za(e,a);if(t)return t[o]},et=(e,a,t)=>{for(const o in a)"__proto__"!==o&&"constructor"!==o&&(o in e?"string"==typeof e[o]||e[o]instanceof String||"string"==typeof a[o]||a[o]instanceof String?t&&(e[o]=a[o]):et(e[o],a[o],t):e[o]=a[o]);return e},at=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var tt={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ot=e=>"string"==typeof e?e.replace(/[&<>"'\/]/g,(e=>tt[e])):e,rt=[" ",",","?","!",";"],it=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const a=this.regExpMap.get(e);if(void 0!==a)return a;const t=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,t),this.regExpQueue.push(e),t}}(20),nt=function(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!e)return;if(e[a])return e[a];const o=a.split(t);let r=e;for(let i=0;i-1&&ne&&e.indexOf("_")>0?e.replace("_","-"):e;class gt extends Ya{constructor(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=a,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const a=this.options.ns.indexOf(e);a>-1&&this.options.ns.splice(a,1)}getResource(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,i=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let n;e.indexOf(".")>-1?n=e.split("."):(n=[e,a],t&&(Array.isArray(t)?n.push(...t):"string"==typeof t&&r?n.push(...t.split(r)):n.push(t)));const l=Xa(this.data,n);return!l&&!a&&!t&&e.indexOf(".")>-1&&(e=n[0],a=n[1],t=n.slice(2).join(".")),l||!i||"string"!=typeof t?l:nt(this.data&&this.data[e]&&this.data[e][a],t,r)}addResource(e,a,t,o){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1};const i=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator;let n=[e,a];t&&(n=n.concat(i?t.split(i):t)),e.indexOf(".")>-1&&(n=e.split("."),o=a,a=n[1]),this.addNamespaces(a),qa(this.data,n,o),r.silent||this.emit("added",e,a,t,o)}addResources(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(const r in t)("string"==typeof t[r]||Array.isArray(t[r]))&&this.addResource(e,a,r,t[r],{silent:!0});o.silent||this.emit("added",e,a,t)}addResourceBundle(e,a,t,o,r){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1,skipCopy:!1},n=[e,a];e.indexOf(".")>-1&&(n=e.split("."),o=t,t=a,a=n[1]),this.addNamespaces(a);let l=Xa(this.data,n)||{};i.skipCopy||(t=JSON.parse(JSON.stringify(t))),o?et(l,t,r):l={...l,...t},qa(this.data,n,l),i.silent||this.emit("added",e,a,t)}removeResourceBundle(e,a){this.hasResourceBundle(e,a)&&delete this.data[e][a],this.removeNamespaces(a),this.emit("removed",e,a)}hasResourceBundle(e,a){return void 0!==this.getResource(e,a)}getResourceBundle(e,a){return a||(a=this.options.defaultNS),"v1"===this.options.compatibilityAPI?{...this.getResource(e,a)}:this.getResource(e,a)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const a=this.getDataByLanguage(e);return!!(a&&Object.keys(a)||[]).find((e=>a[e]&&Object.keys(a[e]).length>0))}toJSON(){return this.data}}var ct={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,a,t,o,r){return e.forEach((e=>{this.processors[e]&&(a=this.processors[e].process(a,t,o,r))})),a}};const st={};class dt extends Ya{constructor(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var t,o;super(),t=e,o=this,["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"].forEach((e=>{t[e]&&(o[e]=t[e])})),this.options=a,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=Fa.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;const t=this.resolve(e,a);return t&&void 0!==t.res}extractFromKey(e,a){let t=void 0!==a.nsSeparator?a.nsSeparator:this.options.nsSeparator;void 0===t&&(t=":");const o=void 0!==a.keySeparator?a.keySeparator:this.options.keySeparator;let r=a.ns||this.options.defaultNS||[];const i=t&&e.indexOf(t)>-1,n=!(this.options.userDefinedKeySeparator||a.keySeparator||this.options.userDefinedNsSeparator||a.nsSeparator||((e,a,t)=>{a=a||"",t=t||"";const o=rt.filter((e=>a.indexOf(e)<0&&t.indexOf(e)<0));if(0===o.length)return!0;const r=it.getRegExp(`(${o.map((e=>"?"===e?"\\?":e)).join("|")})`);let i=!r.test(e);if(!i){const a=e.indexOf(t);a>0&&!r.test(e.substring(0,a))&&(i=!0)}return i})(e,t,o));if(i&&!n){const a=e.match(this.interpolator.nestingRegexp);if(a&&a.length>0)return{key:e,namespaces:r};const i=e.split(t);(t!==o||t===o&&this.options.ns.indexOf(i[0])>-1)&&(r=i.shift()),e=i.join(o)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}translate(e,a,t){if("object"!=typeof a&&this.options.overloadTranslationOptionHandler&&(a=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof a&&(a={...a}),a||(a={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);const o=void 0!==a.returnDetails?a.returnDetails:this.options.returnDetails,r=void 0!==a.keySeparator?a.keySeparator:this.options.keySeparator,{key:i,namespaces:n}=this.extractFromKey(e[e.length-1],a),l=n[n.length-1],g=a.lng||this.language,c=a.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(g&&"cimode"===g.toLowerCase()){if(c){const e=a.nsSeparator||this.options.nsSeparator;return o?{res:`${l}${e}${i}`,usedKey:i,exactUsedKey:i,usedLng:g,usedNS:l,usedParams:this.getUsedParamsDetails(a)}:`${l}${e}${i}`}return o?{res:i,usedKey:i,exactUsedKey:i,usedLng:g,usedNS:l,usedParams:this.getUsedParamsDetails(a)}:i}const s=this.resolve(e,a);let d=s&&s.res;const p=s&&s.usedKey||i,u=s&&s.exactUsedKey||i,h=Object.prototype.toString.apply(d),f=void 0!==a.joinArrays?a.joinArrays:this.options.joinArrays,v=!this.i18nFormat||this.i18nFormat.handleAsObject;if(v&&d&&"string"!=typeof d&&"boolean"!=typeof d&&"number"!=typeof d&&["[object Number]","[object Function]","[object RegExp]"].indexOf(h)<0&&("string"!=typeof f||!Array.isArray(d))){if(!a.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,d,{...a,ns:n}):`key '${i} (${this.language})' returned an object instead of string.`;return o?(s.res=e,s.usedParams=this.getUsedParamsDetails(a),s):e}if(r){const e=Array.isArray(d),t=e?[]:{},o=e?u:p;for(const i in d)if(Object.prototype.hasOwnProperty.call(d,i)){const e=`${o}${r}${i}`;t[i]=this.translate(e,{...a,joinArrays:!1,ns:n}),t[i]===e&&(t[i]=d[i])}d=t}}else if(v&&"string"==typeof f&&Array.isArray(d))d=d.join(f),d&&(d=this.extendTranslation(d,e,a,t));else{let o=!1,n=!1;const c=void 0!==a.count&&"string"!=typeof a.count,p=dt.hasDefaultValue(a),u=c?this.pluralResolver.getSuffix(g,a.count,a):"",h=a.ordinal&&c?this.pluralResolver.getSuffix(g,a.count,{ordinal:!1}):"",f=c&&!a.ordinal&&0===a.count&&this.pluralResolver.shouldUseIntlApi(),v=f&&a[`defaultValue${this.options.pluralSeparator}zero`]||a[`defaultValue${u}`]||a[`defaultValue${h}`]||a.defaultValue;!this.isValidLookup(d)&&p&&(o=!0,d=v),this.isValidLookup(d)||(n=!0,d=i);const m=(a.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:d,b=p&&v!==d&&this.options.updateMissing;if(n||o||b){if(this.logger.log(b?"updateKey":"missingKey",g,l,i,b?v:d),r){const e=this.resolve(i,{...a,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,a.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let a=0;a{const r=p&&o!==d?o:m;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,b,a):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,b,a),this.emit("missingKey",e,l,t,d)};this.options.saveMissing&&(this.options.saveMissingPlurals&&c?e.forEach((e=>{const t=this.pluralResolver.getSuffixes(e,a);f&&a[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach((t=>{o([e],i+t,a[`defaultValue${t}`]||v)}))})):o(e,i,v))}d=this.extendTranslation(d,e,a,s,t),n&&d===i&&this.options.appendNamespaceToMissingKey&&(d=`${l}:${i}`),(n||o)&&this.options.parseMissingKeyHandler&&(d="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${i}`:i,o?d:void 0):this.options.parseMissingKeyHandler(d))}return o?(s.res=d,s.usedParams=this.getUsedParamsDetails(a),s):d}extendTranslation(e,a,t,o,r){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...t},t.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!t.skipInterpolation){t.interpolation&&this.interpolator.init({...t,interpolation:{...this.options.interpolation,...t.interpolation}});const n="string"==typeof e&&(t&&t.interpolation&&void 0!==t.interpolation.skipOnVariables?t.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let l;if(n){const a=e.match(this.interpolator.nestingRegexp);l=a&&a.length}let g=t.replace&&"string"!=typeof t.replace?t.replace:t;if(this.options.interpolation.defaultVariables&&(g={...this.options.interpolation.defaultVariables,...g}),e=this.interpolator.interpolate(e,g,t.lng||this.language||o.usedLng,t),n){const a=e.match(this.interpolator.nestingRegexp);l<(a&&a.length)&&(t.nest=!1)}!t.lng&&"v1"!==this.options.compatibilityAPI&&o&&o.res&&(t.lng=this.language||o.usedLng),!1!==t.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,o=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((e=>{if(this.isValidLookup(a))return;const l=this.extractFromKey(e,n),g=l.key;t=g;let c=l.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const s=void 0!==n.count&&"string"!=typeof n.count,d=s&&!n.ordinal&&0===n.count&&this.pluralResolver.shouldUseIntlApi(),p=void 0!==n.context&&("string"==typeof n.context||"number"==typeof n.context)&&""!==n.context,u=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);c.forEach((e=>{this.isValidLookup(a)||(i=e,!st[`${u[0]}-${e}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(i)&&(st[`${u[0]}-${e}`]=!0,this.logger.warn(`key "${t}" for languages "${u.join(", ")}" won't get resolved as namespace "${i}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),u.forEach((t=>{if(this.isValidLookup(a))return;r=t;const i=[g];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(i,g,t,e,n);else{let e;s&&(e=this.pluralResolver.getSuffix(t,n.count,n));const a=`${this.options.pluralSeparator}zero`,o=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(s&&(i.push(g+e),n.ordinal&&0===e.indexOf(o)&&i.push(g+e.replace(o,this.options.pluralSeparator)),d&&i.push(g+a)),p){const t=`${g}${this.options.contextSeparator}${n.context}`;i.push(t),s&&(i.push(t+e),n.ordinal&&0===e.indexOf(o)&&i.push(t+e.replace(o,this.options.pluralSeparator)),d&&i.push(t+a))}}let l;for(;l=i.pop();)this.isValidLookup(a)||(o=l,a=this.getResource(t,e,l,n))})))}))})),{res:a,usedKey:t,exactUsedKey:o,usedLng:r,usedNS:i}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,a,t,o):this.resourceStore.getResource(e,a,t,o)}getUsedParamsDetails(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],t=e.replace&&"string"!=typeof e.replace;let o=t?e.replace:e;if(t&&void 0!==e.count&&(o.count=e.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!t){o={...o};for(const e of a)delete o[e]}return o}static hasDefaultValue(e){const a="defaultValue";for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&a===t.substring(0,12)&&void 0!==e[t])return!0;return!1}}const pt=e=>e.charAt(0).toUpperCase()+e.slice(1);class ut{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Fa.create("languageUtils")}getScriptPartFromCode(e){if(!(e=lt(e))||e.indexOf("-")<0)return null;const a=e.split("-");return 2===a.length?null:(a.pop(),"x"===a[a.length-1].toLowerCase()?null:this.formatLanguageCode(a.join("-")))}getLanguagePartFromCode(e){if(!(e=lt(e))||e.indexOf("-")<0)return e;const a=e.split("-");return this.formatLanguageCode(a[0])}formatLanguageCode(e){if("string"==typeof e&&e.indexOf("-")>-1){const a=["hans","hant","latn","cyrl","cans","mong","arab"];let t=e.split("-");return this.options.lowerCaseLng?t=t.map((e=>e.toLowerCase())):2===t.length?(t[0]=t[0].toLowerCase(),t[1]=t[1].toUpperCase(),a.indexOf(t[1].toLowerCase())>-1&&(t[1]=pt(t[1].toLowerCase()))):3===t.length&&(t[0]=t[0].toLowerCase(),2===t[1].length&&(t[1]=t[1].toUpperCase()),"sgn"!==t[0]&&2===t[2].length&&(t[2]=t[2].toUpperCase()),a.indexOf(t[1].toLowerCase())>-1&&(t[1]=pt(t[1].toLowerCase())),a.indexOf(t[2].toLowerCase())>-1&&(t[2]=pt(t[2].toLowerCase()))),t.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let a;return e.forEach((e=>{if(a)return;const t=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(t)||(a=t)})),!a&&this.options.supportedLngs&&e.forEach((e=>{if(a)return;const t=this.getLanguagePartFromCode(e);if(this.isSupportedCode(t))return a=t;a=this.options.supportedLngs.find((e=>e===t?e:e.indexOf("-")<0&&t.indexOf("-")<0?void 0:e.indexOf("-")>0&&t.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===t||0===e.indexOf(t)&&t.length>1?e:void 0))})),a||(a=this.getFallbackCodes(this.options.fallbackLng)[0]),a}getFallbackCodes(e,a){if(!e)return[];if("function"==typeof e&&(e=e(a)),"string"==typeof e&&(e=[e]),Array.isArray(e))return e;if(!a)return e.default||[];let t=e[a];return t||(t=e[this.getScriptPartFromCode(a)]),t||(t=e[this.formatLanguageCode(a)]),t||(t=e[this.getLanguagePartFromCode(a)]),t||(t=e.default),t||[]}toResolveHierarchy(e,a){const t=this.getFallbackCodes(a||this.options.fallbackLng||[],e),o=[],r=e=>{e&&(this.isSupportedCode(e)?o.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return"string"==typeof e&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?("languageOnly"!==this.options.load&&r(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&r(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&r(this.getLanguagePartFromCode(e))):"string"==typeof e&&r(this.formatLanguageCode(e)),t.forEach((e=>{o.indexOf(e)<0&&r(this.formatLanguageCode(e))})),o}}let ht=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],ft={1:e=>Number(e>1),2:e=>Number(1!=e),3:e=>0,4:e=>Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2),5:e=>Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5),6:e=>Number(1==e?0:e>=2&&e<=4?1:2),7:e=>Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2),8:e=>Number(1==e?0:2==e?1:8!=e&&11!=e?2:3),9:e=>Number(e>=2),10:e=>Number(1==e?0:2==e?1:e<7?2:e<11?3:4),11:e=>Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3),12:e=>Number(e%10!=1||e%100==11),13:e=>Number(0!==e),14:e=>Number(1==e?0:2==e?1:3==e?2:3),15:e=>Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2),16:e=>Number(e%10==1&&e%100!=11?0:0!==e?1:2),17:e=>Number(1==e||e%10==1&&e%100!=11?0:1),18:e=>Number(0==e?0:1==e?1:2),19:e=>Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3),20:e=>Number(1==e?0:0==e||e%100>0&&e%100<20?1:2),21:e=>Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0),22:e=>Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)};const vt=["v1","v2","v3"],mt=["v4"],bt={zero:0,one:1,two:2,few:3,many:4,other:5};class yt{constructor(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.languageUtils=e,this.options=a,this.logger=Fa.create("pluralResolver"),this.options.compatibilityJSON&&!mt.includes(this.options.compatibilityJSON)||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=(()=>{const e={};return ht.forEach((a=>{a.lngs.forEach((t=>{e[t]={numbers:a.nr,plurals:ft[a.fc]}}))})),e})(),this.pluralRulesCache={}}addRule(e,a){this.rules[e]=a}clearCache(){this.pluralRulesCache={}}getRule(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{const t=lt("dev"===e?"en":e),o=a.ordinal?"ordinal":"cardinal",r=JSON.stringify({cleanedCode:t,type:o});if(r in this.pluralRulesCache)return this.pluralRulesCache[r];const i=new Intl.PluralRules(t,{type:o});return this.pluralRulesCache[r]=i,i}catch(t){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=this.getRule(e,a);return this.shouldUseIntlApi()?t&&t.resolvedOptions().pluralCategories.length>1:t&&t.numbers.length>1}getPluralFormsOfKey(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,t).map((e=>`${a}${e}`))}getSuffixes(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=this.getRule(e,a);return t?this.shouldUseIntlApi()?t.resolvedOptions().pluralCategories.sort(((e,a)=>bt[e]-bt[a])).map((e=>`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${e}`)):t.numbers.map((t=>this.getSuffix(e,t,a))):[]}getSuffix(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=this.getRule(e,t);return o?this.shouldUseIntlApi()?`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${o.select(a)}`:this.getSuffixRetroCompatible(o,a):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,a){const t=e.noAbs?e.plurals(a):e.plurals(Math.abs(a));let o=e.numbers[t];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===o?o="plural":1===o&&(o=""));const r=()=>this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString();return"v1"===this.options.compatibilityJSON?1===o?"":"number"==typeof o?`_plural_${o.toString()}`:r():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?r():this.options.prepend&&t.toString()?this.options.prepend+t.toString():t.toString()}shouldUseIntlApi(){return!vt.includes(this.options.compatibilityJSON)}}const wt=function(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=((e,a,t)=>{const o=Xa(e,t);return void 0!==o?o:Xa(a,t)})(e,a,t);return!i&&r&&"string"==typeof t&&(i=nt(e,t,o),void 0===i&&(i=nt(a,t,o))),i},xt=e=>e.replace(/\$/g,"$$$$");class kt{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=Fa.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(e=>e),this.init(e)}init(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:a,escapeValue:t,useRawValueToEscape:o,prefix:r,prefixEscaped:i,suffix:n,suffixEscaped:l,formatSeparator:g,unescapeSuffix:c,unescapePrefix:s,nestingPrefix:d,nestingPrefixEscaped:p,nestingSuffix:u,nestingSuffixEscaped:h,nestingOptionsSeparator:f,maxReplaces:v,alwaysFormat:m}=e.interpolation;this.escape=void 0!==a?a:ot,this.escapeValue=void 0===t||t,this.useRawValueToEscape=void 0!==o&&o,this.prefix=r?at(r):i||"{{",this.suffix=n?at(n):l||"}}",this.formatSeparator=g||",",this.unescapePrefix=c?"":s||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=d?at(d):p||at("$t("),this.nestingSuffix=u?at(u):h||at(")"),this.nestingOptionsSeparator=f||",",this.maxReplaces=v||1e3,this.alwaysFormat=void 0!==m&&m,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,a)=>e&&e.source===a?(e.lastIndex=0,e):new RegExp(a,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,a,t,o){let r,i,n;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},g=e=>{if(e.indexOf(this.formatSeparator)<0){const r=wt(a,l,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(r,void 0,t,{...o,...a,interpolationkey:e}):r}const r=e.split(this.formatSeparator),i=r.shift().trim(),n=r.join(this.formatSeparator).trim();return this.format(wt(a,l,i,this.options.keySeparator,this.options.ignoreJSONStructure),n,t,{...o,...a,interpolationkey:i})};this.resetRegExp();const c=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,s=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>xt(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?xt(this.escape(e)):xt(e)}].forEach((a=>{for(n=0;r=a.regex.exec(e);){const t=r[1].trim();if(i=g(t),void 0===i)if("function"==typeof c){const a=c(e,r,o);i="string"==typeof a?a:""}else if(o&&Object.prototype.hasOwnProperty.call(o,t))i="";else{if(s){i=r[0];continue}this.logger.warn(`missed to pass in variable ${t} for interpolating ${e}`),i=""}else"string"==typeof i||this.useRawValueToEscape||(i=Qa(i));const l=a.safeValue(i);if(e=e.replace(r[0],l),s?(a.regex.lastIndex+=i.length,a.regex.lastIndex-=r[0].length):a.regex.lastIndex=0,n++,n>=this.maxReplaces)break}})),e}nest(e,a){let t,o,r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=(e,a)=>{const t=this.nestingOptionsSeparator;if(e.indexOf(t)<0)return e;const o=e.split(new RegExp(`${t}[ ]*{`));let i=`{${o[1]}`;e=o[0],i=this.interpolate(i,r);const n=i.match(/'/g),l=i.match(/"/g);(n&&n.length%2==0&&!l||l.length%2!=0)&&(i=i.replace(/'/g,'"'));try{r=JSON.parse(i),a&&(r={...a,...r})}catch(il){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,il),`${e}${t}${i}`}return r.defaultValue&&r.defaultValue.indexOf(this.prefix)>-1&&delete r.defaultValue,e};for(;t=this.nestingRegexp.exec(e);){let l=[];r={...i},r=r.replace&&"string"!=typeof r.replace?r.replace:r,r.applyPostProcessor=!1,delete r.defaultValue;let g=!1;if(-1!==t[0].indexOf(this.formatSeparator)&&!/{.*}/.test(t[1])){const e=t[1].split(this.formatSeparator).map((e=>e.trim()));t[1]=e.shift(),l=e,g=!0}if(o=a(n.call(this,t[1].trim(),r),r),o&&t[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=Qa(o)),o||(this.logger.warn(`missed to resolve ${t[1]} for nesting ${e}`),o=""),g&&(o=l.reduce(((e,a)=>this.format(e,a,i.lng,{...i,interpolationkey:t[1].trim()})),o.trim())),e=e.replace(t[0],o),this.regexp.lastIndex=0}return e}}const zt=e=>{const a={};return(t,o,r)=>{let i=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(i={...i,[r.interpolationkey]:void 0});const n=o+JSON.stringify(i);let l=a[n];return l||(l=e(lt(o),r),a[n]=l),l(t)}};class Mt{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=Fa.create("formatter"),this.options=e,this.formats={number:zt(((e,a)=>{const t=new Intl.NumberFormat(e,{...a});return e=>t.format(e)})),currency:zt(((e,a)=>{const t=new Intl.NumberFormat(e,{...a,style:"currency"});return e=>t.format(e)})),datetime:zt(((e,a)=>{const t=new Intl.DateTimeFormat(e,{...a});return e=>t.format(e)})),relativetime:zt(((e,a)=>{const t=new Intl.RelativeTimeFormat(e,{...a});return e=>t.format(e,a.range||"day")})),list:zt(((e,a)=>{const t=new Intl.ListFormat(e,{...a});return e=>t.format(e)}))},this.init(e)}init(e){const a=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=a.formatSeparator?a.formatSeparator:a.formatSeparator||","}add(e,a){this.formats[e.toLowerCase().trim()]=a}addCached(e,a){this.formats[e.toLowerCase().trim()]=zt(a)}format(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const r=a.split(this.formatSeparator);if(r.length>1&&r[0].indexOf("(")>1&&r[0].indexOf(")")<0&&r.find((e=>e.indexOf(")")>-1))){const e=r.findIndex((e=>e.indexOf(")")>-1));r[0]=[r[0],...r.splice(1,e)].join(this.formatSeparator)}return r.reduce(((e,a)=>{const{formatName:r,formatOptions:i}=(e=>{let a=e.toLowerCase().trim();const t={};if(e.indexOf("(")>-1){const o=e.split("(");a=o[0].toLowerCase().trim();const r=o[1].substring(0,o[1].length-1);"currency"===a&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):"relativetime"===a&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach((e=>{if(e){const[a,...o]=e.split(":"),r=o.join(":").trim().replace(/^'+|'+$/g,""),i=a.trim();t[i]||(t[i]=r),"false"===r&&(t[i]=!1),"true"===r&&(t[i]=!0),isNaN(r)||(t[i]=parseInt(r,10))}}))}return{formatName:a,formatOptions:t}})(a);if(this.formats[r]){let a=e;try{const n=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},l=n.locale||n.lng||o.locale||o.lng||t;a=this.formats[r](e,l,{...i,...o,...n})}catch(n){this.logger.warn(n)}return a}return this.logger.warn(`there was no format function for ${r}`),e}),e)}}class jt extends Ya{constructor(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(),this.backend=e,this.store=a,this.services=t,this.languageUtils=t.languageUtils,this.options=o,this.logger=Fa.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(t,o.backend,o)}queueLoad(e,a,t,o){const r={},i={},n={},l={};return e.forEach((e=>{let o=!0;a.forEach((a=>{const n=`${e}|${a}`;!t.reload&&this.store.hasResourceBundle(e,a)?this.state[n]=2:this.state[n]<0||(1===this.state[n]?void 0===i[n]&&(i[n]=!0):(this.state[n]=1,o=!1,void 0===i[n]&&(i[n]=!0),void 0===r[n]&&(r[n]=!0),void 0===l[a]&&(l[a]=!0)))})),o||(n[e]=!0)})),(Object.keys(r).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(r),pending:Object.keys(i),toLoadLanguages:Object.keys(n),toLoadNamespaces:Object.keys(l)}}loaded(e,a,t){const o=e.split("|"),r=o[0],i=o[1];a&&this.emit("failedLoading",r,i,a),!a&&t&&this.store.addResourceBundle(r,i,t,void 0,void 0,{skipCopy:!0}),this.state[e]=a?-1:2,a&&t&&(this.state[e]=0);const n={};this.queue.forEach((t=>{((e,a,t)=>{const{obj:o,k:r}=Za(e,a,Object);o[r]=o[r]||[],o[r].push(t)})(t.loaded,[r],i),((e,a)=>{void 0!==e.pending[a]&&(delete e.pending[a],e.pendingCount--)})(t,e),a&&t.errors.push(a),0!==t.pendingCount||t.done||(Object.keys(t.loaded).forEach((e=>{n[e]||(n[e]={});const a=t.loaded[e];a.length&&a.forEach((a=>{void 0===n[e][a]&&(n[e][a]=!0)}))})),t.done=!0,t.errors.length?t.callback(t.errors):t.callback())})),this.emit("loaded",n),this.queue=this.queue.filter((e=>!e.done))}read(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:a,fcName:t,tried:o,wait:r,callback:i});this.readingCalls++;const n=(n,l)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}n&&l&&o{this.read.call(this,e,a,t,o+1,2*r,i)}),r):i(n,l)},l=this.backend[t].bind(this.backend);if(2!==l.length)return l(e,a,n);try{const t=l(e,a);t&&"function"==typeof t.then?t.then((e=>n(null,e))).catch(n):n(null,t)}catch(g){n(g)}}prepareLoading(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof a&&(a=[a]);const r=this.queueLoad(e,a,t,o);if(!r.toLoad.length)return r.pending.length||o(),null;r.toLoad.forEach((e=>{this.loadOne(e)}))}load(e,a,t){this.prepareLoading(e,a,{},t)}reload(e,a,t){this.prepareLoading(e,a,{reload:!0},t)}loadOne(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const t=e.split("|"),o=t[0],r=t[1];this.read(o,r,"read",void 0,void 0,((t,i)=>{t&&this.logger.warn(`${a}loading namespace ${r} for language ${o} failed`,t),!t&&i&&this.logger.log(`${a}loaded namespace ${r} for language ${o}`,i),this.loaded(e,t,i)}))}saveMissing(e,a,t,o,r){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(a))this.logger.warn(`did not save key "${t}" as the namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=t&&""!==t){if(this.backend&&this.backend.create){const g={...i,isUpdate:r},c=this.backend.create.bind(this.backend);if(c.length<6)try{let r;r=5===c.length?c(e,a,t,o,g):c(e,a,t,o),r&&"function"==typeof r.then?r.then((e=>n(null,e))).catch(n):n(null,r)}catch(l){n(l)}else c(e,a,t,o,n,g)}e&&e[0]&&this.store.addResource(e[0],a,t,o)}}}const St=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let a={};if("object"==typeof e[1]&&(a=e[1]),"string"==typeof e[1]&&(a.defaultValue=e[1]),"string"==typeof e[2]&&(a.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const t=e[3]||e[2];Object.keys(t).forEach((e=>{a[e]=t[e]}))}return a},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Nt=e=>("string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),Ot=()=>{};class At extends Ya{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;var t;if(super(),this.options=Nt(e),this.services={},this.logger=Fa,this.modules={external:[]},t=this,Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach((e=>{"function"==typeof t[e]&&(t[e]=t[e].bind(t))})),a&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,a),this;setTimeout((()=>{this.init(e,a)}),0)}}init(){var e=this;let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,"function"==typeof a&&(t=a,a={}),!a.defaultNS&&!1!==a.defaultNS&&a.ns&&("string"==typeof a.ns?a.defaultNS=a.ns:a.ns.indexOf("translation")<0&&(a.defaultNS=a.ns[0]));const o=St();this.options={...o,...this.options,...Nt(a)},"v1"!==this.options.compatibilityAPI&&(this.options.interpolation={...o.interpolation,...this.options.interpolation}),void 0!==a.keySeparator&&(this.options.userDefinedKeySeparator=a.keySeparator),void 0!==a.nsSeparator&&(this.options.userDefinedNsSeparator=a.nsSeparator);const r=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let a;this.modules.logger?Fa.init(r(this.modules.logger),this.options):Fa.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=Mt);const t=new ut(this.options);this.store=new gt(this.options.resources,this.options);const i=this.services;i.logger=Fa,i.resourceStore=this.store,i.languageUtils=t,i.pluralResolver=new yt(t,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!a||this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format||(i.formatter=r(a),i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new kt(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new jt(r(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",(function(a){for(var t=arguments.length,o=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r{e.init&&e.init(this)}))}if(this.format=this.options.interpolation.format,t||(t=Ot),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((a=>{this[a]=function(){return e.store[a](...arguments)}})),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((a=>{this[a]=function(){return e.store[a](...arguments),e}}));const i=Wa(),n=()=>{const e=(e,a)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),i.resolve(a),t(e,a)};if(this.languages&&"v1"!==this.options.compatibilityAPI&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initImmediate?n():setTimeout(n,0),i}loadResources(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ot;const t="string"==typeof e?e:this.language;if("function"==typeof e&&(a=e),!this.options.resources||this.options.partialBundledLanguages){if(t&&"cimode"===t.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return a();const e=[],o=a=>{a&&"cimode"!==a&&this.services.languageUtils.toResolveHierarchy(a).forEach((a=>{"cimode"!==a&&e.indexOf(a)<0&&e.push(a)}))};t?o(t):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((e=>o(e))),this.options.preload&&this.options.preload.forEach((e=>o(e))),this.services.backendConnector.load(e,this.options.ns,(e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),a(e)}))}else a(null)}reloadResources(e,a,t){const o=Wa();return"function"==typeof e&&(t=e,e=void 0),"function"==typeof a&&(t=a,a=void 0),e||(e=this.languages),a||(a=this.options.ns),t||(t=Ot),this.services.backendConnector.reload(e,a,(e=>{o.resolve(),t(e)})),o}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&ct.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(let a=0;a-1)&&this.store.hasLanguageSomeTranslations(e)){this.resolvedLanguage=e;break}}}changeLanguage(e,a){var t=this;this.isLanguageChangingTo=e;const o=Wa();this.emit("languageChanging",e);const r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(e,i)=>{i?(r(i),this.translator.changeLanguage(i),this.isLanguageChangingTo=void 0,this.emit("languageChanged",i),this.logger.log("languageChanged",i)):this.isLanguageChangingTo=void 0,o.resolve((function(){return t.t(...arguments)})),a&&a(e,(function(){return t.t(...arguments)}))},n=a=>{e||a||!this.services.languageDetector||(a=[]);const t="string"==typeof a?a:this.services.languageUtils.getBestMatchFromCodes(a);t&&(this.language||r(t),this.translator.language||this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(t,(e=>{i(e,t)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(n):this.services.languageDetector.detect(n):n(e):n(this.services.languageDetector.detect()),o}getFixedT(e,a,t){var o=this;const r=function(e,a){let i;if("object"!=typeof a){for(var n=arguments.length,l=new Array(n>2?n-2:0),g=2;g`${i.keyPrefix}${c}${e}`)):i.keyPrefix?`${i.keyPrefix}${c}${e}`:e,o.t(s,i)};return"string"==typeof e?r.lng=e:r.lngs=e,r.ns=a,r.keyPrefix=t,r}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const t=a.lng||this.resolvedLanguage||this.languages[0],o=!!this.options&&this.options.fallbackLng,r=this.languages[this.languages.length-1];if("cimode"===t.toLowerCase())return!0;const i=(e,a)=>{const t=this.services.backendConnector.state[`${e}|${a}`];return-1===t||0===t||2===t};if(a.precheck){const e=a.precheck(this,i);if(void 0!==e)return e}return!(!this.hasResourceBundle(t,e)&&this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages)&&(!i(t,e)||o&&!i(r,e)))}loadNamespaces(e,a){const t=Wa();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)})),this.loadResources((e=>{t.resolve(),a&&a(e)})),t):(a&&a(),Promise.resolve())}loadLanguages(e,a){const t=Wa();"string"==typeof e&&(e=[e]);const o=this.options.preload||[],r=e.filter((e=>o.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e)));return r.length?(this.options.preload=o.concat(r),this.loadResources((e=>{t.resolve(),a&&a(e)})),t):(a&&a(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const a=this.services&&this.services.languageUtils||new ut(St());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(a.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){return new At(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}cloneInstance(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ot;const t=e.forkResourceStore;t&&delete e.forkResourceStore;const o={...this.options,...e,isClone:!0},r=new At(o);return void 0===e.debug&&void 0===e.prefix||(r.logger=r.logger.clone(e)),["store","services","language"].forEach((e=>{r[e]=this[e]})),r.services={...this.services},r.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},t&&(r.store=new gt(this.store.data,o),r.services.resourceStore=r.store),r.translator=new dt(r.services,o),r.translator.on("*",(function(e){for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;oe.source.startsWith("local"),Rt=(e,a)=>{var t;return`@font-face {\n font-family: '${e}';\n src: ${a.source};\n ${Object.entries(null!==(t=a.descriptors)&&void 0!==t?t:{}).map((([e,a])=>`${e}: ${a};`)).join("\n")}\n}`};let Pt=(e=>{let a,t=!1;return o=>We(void 0,void 0,void 0,(function*(){return!a||!t&&o?(a=e(),t=!0,a.then((e=>(t=!1,e))).catch((e=>{throw a=null,e}))):a}))})((()=>fetch("/fonts/config.json").then((e=>e.json()))));const _t=(e,a,t)=>Dt(void 0,void 0,void 0,(function*(){try{const o=new FontFace(e,a.source,a.descriptors);return Tt(a)?yield o.load():o.loaded.then(t),document.fonts.add(o),Lt[e]={configs:[Object.assign(Object.assign({},a),{font:o})]},!0}catch(il){return sa.warn(`Failed to load font ${e} with source ${a.source}`,il),!1}})),Ut=(e,a,t)=>Dt(void 0,void 0,void 0,(function*(){if(a.some(Tt))return sa.error(`Unable to load multiple FontFace for the same family ${e}`),!1;const o=[];return a.forEach((a=>{const r=new FontFace(e,a.source,a.descriptors);r.loaded.then(t),document.fonts.add(r),o.push(Object.assign(Object.assign({},a),{font:r}))})),Lt[e]={configs:o},!0})),Bt={getAllFonts:Pt,getLoadedFonts:()=>Lt,loadFont:(e,a)=>Dt(void 0,void 0,void 0,(function*(){if(e in Lt)return Lt[e];let t;if(a)t=a;else try{t=(yield Pt())[e]}catch(il){const t=il instanceof Error?" due to "+il.message:"";throw new Error("Unable to load font definition of "+e+t)}const o=()=>{((e,a)=>{Ma.postEvent(Ct,{family:e,definition:a})})(e,t)};for(const a of t.configs)if(Array.isArray(a)?yield Ut(e,a,o):yield _t(e,a,o))break;const r=Lt[e];return r?(r.displayName=t.displayName,r.url=t.url,Lt[e]):void 0})),getFontCSS:e=>Dt(void 0,void 0,void 0,(function*(){const a=Lt[e];if(!a)throw new Error(`Font family ${e} is not loaded`);const t=yield Promise.all(a.configs.filter((a=>{const t="loaded"===a.font.status;return t||sa.warn(`Font family ${e} is not loaded completely. Some FontFaceRules may be missing`),t})).map((a=>Dt(void 0,void 0,void 0,(function*(){if(Tt(a))return Rt(e,a);const t=(e=>{var a;const t=null===(a=e.source.match(/url\(['"](\S+)['"]\)/))||void 0===a?void 0:a[1];if(!t)throw new Error("Invalid URL in source "+e.source);return new URL(t,window.location.href)})(a),o=yield fetch(t),r=yield(i=yield o.blob(),new Promise((e=>{const a=new FileReader;a.onloadend=()=>e(a.result),a.readAsDataURL(i)})));var i;return Rt(e,Object.assign(Object.assign({},a),{source:`url('${r}')`}))})))));return t.join("\n\n")})),onRemoteFontLoaded:e=>{Ma.onMessage(Ct,e)}},Ht=()=>{if("PRD"!==ya.getEnvironment()||!ya.isRMT())if(document.querySelector('meta[name="robots"]'))sa.info("Noindex meta tag already presents.");else{sa.info("Injecting noindex meta tag as this app is not PRD RMT.");const e=document.createElement("meta");e.name="robots",e.content="noindex",document.head.appendChild(e)}};var Vt=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(il){i(il)}}function l(e){try{g(o.throw(e))}catch(il){i(il)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};let Gt=!1;const Ft=e("r",{ready:()=>Vt(void 0,void 0,void 0,(function*(){let e=0;for(;e<=10&&!Gt;)yield Qe(1e3),e+=1})),getAppName:ya.getComponent,getAppVersion:ya.getVersion,getEnv:ya.getEnvironment,getInstance:ya.getInstance,event:xa.customEvent,isStandaloneWindow:Ea.isStandaloneWindow,injectUITools:Ea.injectUITools,openApp:Ea.openApp,onAppOpen:Ea.onAppOpen,closeApp:Ea.closeApp,onAppClose:Ea.onAppClose,updateAppMetadata:Ea.updateAppMetadata,onAppMetadataUpdate:Ea.onAppMetadataUpdate,updateUrl:Ea.updateUrl,onUrlUpdate:Ea.onUrlUpdate,toggleNavMenu:Ea.toggleNavMenu,postEvent:Ma.postEvent,onMessage:Ma.onMessage,setLanguage:Ra.setLanguage,getLanguage:Ra.getLanguage,onLanguageChange:Ra.onLanguageChange,setColourMode:Ra.setColourMode,getColourMode:Ra.getColourMode,onColourModeChange:Ra.onColourModeChange,isAnalyticsQADone:Ra.isAnalyticsQADone,isAllowAnalytics:Ra.isAllowAnalytics,allowAnalytics:Ra.allowAnalytics,storage:{on:Ha.on,get:Ha.get,getAll:Ha.getAll,set:Ha.set,remove:Ha.remove,clear:Ha.clear},getMsSinceStartUp:_a.getMsSinceStartUp,I18nBuilder:class{constructor(){this._appName="RMG",this._lng=void 0,this._defaultResources={},this._resources={}}use(e){return It.use(e),this}withAppName(e){return this._appName=e,this}withLng(e){return this._lng=e,this}withDefaultResource(e){return Object.entries(e).forEach((([e,a])=>{this._defaultResources[e]=a})),this}withResource(e,a){return this._resources[e]=a,this}combineResource(){const e={};return Object.entries(this._defaultResources).forEach((([a,t])=>{e[a]={translation:t}})),Object.entries(this._resources).forEach((([a,t])=>{a in e?e[a].translation=Object.assign(Object.assign({},e[a].translation),t):e[a]={translation:t}})),e}build(){return Et=It.createInstance({lng:this._lng,fallbackLng:{"zh-CN":["zh-Hans","zh-Hant","en"],"zh-HK":["zh-Hant","zh-Hans","en"],"zh-TW":["zh-Hant","zh-Hans","en"],default:["en"]},resources:this.combineResource()},((e,a)=>{var t;e?sa.error("unexpected error occurs while initialising i18n",e):(document.title=a(this._appName),document.documentElement.lang=null!==(t=this._lng)&&void 0!==t?t:"en")})),Et.on("languageChanged",(e=>{document.title=Et.t(this._appName),document.documentElement.lang=e})),(e=>{Ra.onLanguageChange((a=>e.changeLanguage(a)))})(Et),Et}},getI18nInstance:()=>Et,getAllFonts:Bt.getAllFonts,getLoadedFonts:Bt.getLoadedFonts,loadFont:Bt.loadFont,getFontCSS:Bt.getFontCSS,onRemoteFontLoaded:Bt.onRemoteFontLoaded});Vt(void 0,void 0,void 0,(function*(){yield ya.loadWithTimeout(),sa.setup(ya.getComponent()),Ht(),Ra.isAnalyticsQADone()?Ra.isAllowAnalytics()&&(sa.info("User has previously allowed GA"),xa.init()):Ea.isStandaloneWindow()&&!ya.isRMT()&&(sa.warn("App is opened in standalone window but analytics Q&A is not finished. GA will be init by default."),xa.init()),Gt=!0})).then(),window.rmgRuntime=Ft,e("aM",sa.logger);var Yt,Wt={},Qt=function(){if(Yt)return Wt;Yt=1;var e=Ne();return Wt.createRoot=e.createRoot,Wt.hydrateRoot=e.hydrateRoot,Wt}(),Jt={en:{},"zh-Hans":{Action:"操作",Apps:"应用程序","Back to list":"返回列表","Background colour":"背景色",Black:"黑",Cancel:"取消",City:"城市",Components:"组件","Configuration file":"配置文件",Confirm:"确定",Continue:"继续","Country/Region":"国家/地区",Copy:"复制",Edit:"编辑","Foreground colour":"前景色","Go back":"返回",Language:"语言/Language",Justification:"理由",Name:"名称",Next:"下一步",Open:"打开",Palette:"调色板","Please select...":"请选择...",Previous:"上一步","Rail Map Generator":"铁路线路图生成器","Rail Map Painter":"地铁线路图绘制器","Rail Map Toolkit":"线路图工具包",Remove:"删除",Reset:"重置","RMG Templates":"RMG 模板","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 设计师","Seed Project":"种子项目",Settings:"设置",Submit:"提交",Translate:"翻译",Upload:"上传",White:"白"},"zh-Hant":{Action:"動作",Apps:"應用程式","Back to list":"返回列表","Background colour":"背景色",Black:"黑",Cancel:"取消",City:"城市",Components:"元件","Configuration file":"設定檔",Confirm:"確定",Continue:"繼續",Copy:"複製","Country/Region":"國家/地區",Edit:"編輯","Foreground colour":"前景色","Go back":"返回",Language:"語言/Language",Justification:"理由",Name:"名稱",Next:"下一步",Open:"開啟",Palette:"調色盤","Please select...":"請選擇...",Previous:"上一步","Rail Map Generator":"鐵路路綫圖產生器","Rail Map Painter":"地鐵路綫圖繪製器","Rail Map Toolkit":"路綫圖工具組",Remove:"移除",Reset:"重設","RMG Templates":"RMG 範本","RMP Gallery":"RMP 畫廊","RMP Designer":"RMP 設計師","Seed Project":"種子項目",Settings:"設定",Submit:"提交",Translate:"翻譯",Upload:"上載",White:"白"},ja:{Language:"言語/Language",Palette:"調色板","Rail Map Generator":"鉄道路線図ジェネレータ","Rail Map Painter":"鉄道路線図画家","Rail Map Toolkit":"路線図ツールキット",Remove:"削除","RMG Templates":"RMG テンプレート","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 図案家"},ko:{Action:"조작",Apps:"앱","Back to list":"다시 목록으로","Background colour":"배경색",Black:"블랙",Cancel:"취소",City:"도시",Components:"요소","Configuration file":"환경 설정 파일",Confirm:"확인",Copy:"복사","Country/Region":"국가/지역",Edit:"편집","Foreground colour":"전경색","Go back":"되돌아가",Language:"언어/Language",Justification:"이유",Name:"명칭",Next:"다음",Open:"열기",Palette:"팔레트","Please select...":"선택해주세요",Previous:"나아가","Rail Map Generator":"철도 노선도 생성기","Rail Map Painter":"지하철 노선도 그리기","Rail Map Toolkit":"노선도 툴킷",Remove:"삭제",Reset:"리셋","RMG Templates":"RMG 템플릿","RMP Gallery":"RMP 갤러리","RMP Designer":"RMP 디자이너","Seed Project":"종자 프로젝트",Settings:"설치",Submit:"제출",Translate:"번역",Upload:"업로드",White:"화이트"}};const $t={HeaderActions:{editStyle:"Edit style"},DownloadActions:{downloads:"Downloads",configFile:"Configuration file",images:"Images"},OpenActions:{invalidType:"Invalid file type! Only file in JSON format is accepted.",unknownError:"Unknown error occurred while parsing the uploaded file! Please try again."},DownloadModal:{title:"Download images",canvas:"Canvas",transparent:"Transparent background",showBorder:"Display border",scale:"Scale",format:"Format",pleaseSelect:"Please select...",png:"PNG",svg:"SVG (Web use)",downloadOne:"Download current station",downloadAll:"Download all stations"},GridTabs:{main:"Main line",branch:"Branch",external:"External line",addStation:"Add station",editLine:"Edit line section"},StationAgGrid:{num:"Station code",zhName:"Chinese name",enName:"English name",interchange:"Interchanges",coline:"Tracks sharing"},StyleSidePanel:{header:"Edit style",layout:{title:"Layout",canvasHeight:"Canvas height",destinationWidth:"Destination width",runinWidth:"Running-in width",railmapWidth:"Rail map width",indoorWidth:"Indoor width",verticalPosition:"Vertical position",branchSpacing:"Branch spacing",branchSpacingLoop:"Vertical padding",padding:"Rail map padding",directionGzX:"Direction horizontal position",directionGzY:"Direction vertical position"},design:{title:"Design",zhLineName:"Chinese line name",enLineName:"English line name",lineNum:"Line code",direction:"Train direction at this station",left:"Left",right:"Right",platformNum:"Platform number",psdNum:"Platform door number",panelType:"Panel type",gz1:"Line 1",gz28:"Line 2/8 (Panasonic)",gz2otis:"Line 2/8 (Otis)",gz3:"Line 3",gz1421:"2017 style",gz6:"2010 style",gzgf:"2016 style",gz4:"Line 4",gz5:"Line 5",sh:"Default",sh2020:"2020 (Beta)",nameDisplay:"Display station names",alternatively:"Alternatively",onOneSide:"Same side",flip:"Flip position",firstStationNameDisplay:"Display the first station's name at",upwards:"Top",downward:"Bottom",legacyDestination:"Display line name on direction sign",overrideTerminal:"Override terminal",terminalZhName:"Terminal Chinese name",terminalEnName:"Terminal English name"},note:{title:"Notes",add:"Add note",zhNote:"Chinese note",enNote:"English note",positionX:"Horizontal position",positionY:"Vertical position",border:"Display border",remove:"Remove note"},loop:{title:"Loop",isLoop:"Treat as loop line",isBank:"Display loop as a parallelogram in Rail map",leftRightFactor:"Left and right factor",bottomFactor:"Bottom factor"}},BranchSidePanel:{header:"Edit line section",branch:{title:"Branch"},coline:{title:"Tracks sharing",add:"Add sharing track"},action:{title:"Actions",autoNum:"Auto numbering stations",reverse:"Rotate entire line",flip:"Flip entire line"}},StationSidePanel:{info:{title:"Station info",num:"Station code",zhName:"Chinese name",enName:"English name",zhSecondary:"Chinese secondary",enSecondary:"English secondary"},interchange:{title:"Interchanges",within:"Within-station interchange",outStation:"Out-of-station interchange",outSystem:"Out-of-system interchange",addGroup:"Add interchange group",noInterchanges:"No interchanges",zhName:"Chinese name",enName:"English name",add:"Add interchange",copy:"Copy interchange",remove:"Remove interchange"},branch:{type:"Type",through:"Through",nonThrough:"Non-through",firstStation:"First station",position:"Position",upper:"Upper",lower:"Lower"},more:{title:"More settings",service:"Train services",local:"Local",express:"Express",direct:"Direct",facility:"Nearby facility",none:"None",pivot:"Pivot station on loop line",oneLine:"Display Chinese and English in one line",intPadding:"Padding between station name and interchange box",intPaddingApplyGlobal:"Apply current padding to all stations",apply:"Apply",characterSpacing:"Station Name Letter Spacing"},footer:{current:"Set as current",remove:"Remove"}},AddStationModal:{title:"Add station",where:"Target location",main:"Main line",branch:"Branch",external:"External line",preposition:"Preposition",before:"Before",after:"After",pivot:"Pivot station",pleaseSelect:"Please select...",error:"Failed to add station. Please check your selections and try again."},NewBranchModal:{title:"Create a new branch or external line",where:"Target location",new:"Create a new branch",ext:"Create an external line",from:"Between",to:"and",position:"Position",upper:"Upper",lower:"Lower"},AutoNumModal:{title:"Station auto numbering",where:"Target location",main:"Main line",branch:"Branch",external:"External line",from:"Starting index",maxLength:"Number of digits",sort:"Sorting",asc:"Ascending",desc:"Descending"},CanvasType:{all:"All",destination:"Destination",runin:"Running-in",railmap:"Rail map",indoor:"Indoor",platform:"Platform Num"},RmgStyle:{mtr:"MTR",gzmtr:"Guangzhou Metro",shmetro:"Shanghai Metro",shsubrwy:"Shanghai Suburban Railway"}},Kt={HeaderActions:{editStyle:"风格化设置"},DownloadActions:{downloads:"下载",configFile:"配置文件",images:"图像"},OpenActions:{invalidType:"无效的文件种类!只接受JSON种类的文件。",unknownError:"导入上传的文件时发生错误!请重试。"},DownloadModal:{title:"下载图像",canvas:"画面",transparent:"透明背景",showBorder:"显示边框",scale:"缩放级别",format:"文件种类",pleaseSelect:"请选择...",png:"PNG图像",svg:"SVG图像(网页用)",downloadOne:"下载当前车站",downloadAll:"下载所有车站"},GridTabs:{main:"主线",branch:"支线",external:"外部路线",addStation:"添加车站",editLine:"路线段设置"},StationAgGrid:{num:"车站编号",interchange:"换乘",coline:"共线"},StyleSidePanel:{header:"风格化设置",layout:{title:"布局",canvasHeight:"画面高度",destinationWidth:"终点站牌宽度",runinWidth:"当前站名牌宽度",railmapWidth:"站台门路线图宽度",indoorWidth:"车內路线图宽度",verticalPosition:"垂直方向位置",branchSpacing:"支线间距",branchSpacingLoop:"垂直边距",padding:"路线图边距",directionGzX:"终点站水平方向位置",directionGzY:"终点站垂直方向位置"},design:{title:"设计",zhLineName:"路线中文名称",enLineName:"路线英文名称",lineNum:"路线编号",direction:"当前车站行车方向",left:"向左",right:"向右",platformNum:"站台编号",psdNum:"站台门编号",panelType:"站台门盖板样式",gz1:"1号线",gz28:"2/8号线(松下)",gz2otis:"2/8号线(奥的斯)",gz3:"3号线",gz1421:"2017样式",gz6:"2010样式",gzgf:"2016样式",gz4:"4号线",gz5:"5号线",sh:"默认",sh2020:"2020样式(预览版)",nameDisplay:"显示车站名称",alternatively:"交错显示",onOneSide:"同一侧",flip:"翻转位置",firstStationNameDisplay:"显示第一个站点的名称",upwards:"顶部",downward:"底部",legacyDestination:"在终点站牌显示路线名称",overrideTerminal:"重写终点站",terminalZhName:"终点站中文名称",terminalEnName:"终点站英文名称"},note:{title:"备注",add:"添加备注",zhNote:"中文备注",enNote:"英文备注",positionX:"水平方向位置",positionY:"垂直方向位置",border:"显示边框",remove:"删除备注"},loop:{title:"环线",isLoop:"视为环线",isBank:"在站台门路线图中以平行四边形显示环线",leftRightFactor:"左右参数",bottomFactor:"底部参数"}},BranchSidePanel:{header:"路线段设置",branch:{title:"支线"},coline:{title:"共线",add:"添加共线"},action:{title:"操作",autoNum:"车站自动编号",reverse:"旋转整条路线",flip:"翻转整条路线"}},StationSidePanel:{info:{title:"车站资讯",num:"车站编号",zhSecondary:"中文第二名称",enSecondary:"英文第二名称"},interchange:{title:"换乘",within:"同站换乘",outStation:"出站换乘",outSystem:"系统外换乘",addGroup:"添加换乘组合",noInterchanges:"非换乘站",add:"添加换乘",copy:"复制换乘",remove:"删除换乘"},branch:{type:"类型",through:"贯通(无需换乘)",nonThrough:"非贯通(需换乘)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多设置",service:"列车类别",local:"普通车",express:"快车",direct:"直达车",facility:"附近设施",pivot:"环线上的枢纽车站",oneLine:"在一行内展示中英文站名",intPadding:"车站名与换乘线路间的间距",intPaddingApplyGlobal:"将当前的间距应用到所有车站上",apply:"应用",characterSpacing:"车站名文字间距"},footer:{current:"设置为当前车站",remove:"删除"}},AddStationModal:{title:"添加车站",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",preposition:"相对位置",before:"先于",after:"后于",pivot:"定位车站",pleaseSelect:"请选择...",error:"添加车站失败,请检查您的选项后重试。"},NewBranchModal:{title:"添加支线或外部路线",where:"目标位置",new:"添加一条支线",ext:"添加一条外部路线",from:"介于",to:"和",position:"位置",upper:"上方",lower:"下方"},AutoNumModal:{title:"车站自动编号",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",from:"起始编号",maxLength:"编号位数",sort:"排序方式",asc:"升序",desc:"降序"},Airport:"机场","All projects":"所有项目",Anticlockwise:"逆时针","Are you sure to remove station? You cannot undo this action.":"您确定刪除此车站吗?您不能撤销此操作。","Blank project":"空白项目","Branch left end":"支线左端","Branch on the left":"左侧支线","Branch on the right":"右侧支线","Branch right end":"支线右端","Branch spacing":"支线间距",Branches:"支线",by:"来自","Canvas scale":"画面缩放级别","Chinese name":"中文名称","Circle line":"环线",Clockwise:"顺时针",Close:"关闭",Colour:"颜色","Connect to main line":"连接至主线","day ago":"天前","days ago":"天前","Disconnect from main line":"从主线断开","Disneyland resort":"迪士尼","Don't show me again":"不再显示","Edit project info":"编辑项目信息","Empty template":"空白模板","English name":"英文名称","Help and support":"帮助和支持","High speed rail":"高速铁路","hour ago":"小时前","hours ago":"小时前",Import:"导入","Import project":"导入项目","Just now":"刚刚","Last modified":"上次编辑","LEFT END":"线路左端","Loop direction":"环线方向","Loop line":"环线",Manage:"管理","Manage projects":"管理项目","minute ago":"分钟前","minutes ago":"分钟前","National rail":"国家铁路","Ngong Ping 360":"昂坪360",No:"否","No branches found":"未找到支线",None:"无","now and enjoy an even better rail map design experience!":",享受更好的线路图设计体验!","Open selected":"打开选中项目","Open template":"打开模板","Paid area":"付费区换乘",Project:"项目","Project selected is invalid or corrupted.":"选中的项目无效或已损坏。","Project Selector":"项目选择器","Project name":"项目名称",Reload:"重新加载","Remove project":"删除项目","Remove station":"删除车站","RIGHT END":"线路右端","Saved projects":"保存的项目","Secondary names":"第二名称","Select canvas":"选择画面","Set as midpoint":"设置为半环站","Span digits over rows":"跨行显示数字",Style:"风格","Station Chinese name":"车站中文名称","Station English name":"车站英文名称","Station name":"车站名称","Target station":"目标车站","Terms and conditions":"条款及细则","Text on the left":"换乘文字靠左","Text on the right":"换乘文字靠右","Try out":"马上试用","Unable to connect to main line.":"无法连接至主线。","Unable to disconnect from main line.":"无法从主线断开。","Unable to remove this station.":"无法删除此车站。",Unknown:"未知",View:"查看",Visit:"访问","Visit GitHub":"访问GitHub",Yes:"是","You have reached the maximum number of projects.":"您已到达项目数量上限。",CanvasType:{all:"全部",destination:"终点站站牌",runin:"当前站名牌",railmap:"站台门路线图",indoor:"车内路线图",platform:"站台编号"},RmgStyle:{mtr:"港铁",gzmtr:"广州地铁",shmetro:"上海地铁",shsubrwy:"上海市域铁路"}},Zt={HeaderActions:{editStyle:"風格化設定"},DownloadActions:{downloads:"下載",configFile:"設定檔",images:"圖像"},OpenActions:{invalidType:"無效的檔案種類!只接受JSON種類的檔案。",unknownError:"讀取上載的檔案時發生錯誤!請重試。"},DownloadModal:{title:"下載圖像",canvas:"畫面",transparent:"透明背景",showBorder:"顯示邊綫",scale:"縮放比例",format:"檔案種類",pleaseSelect:"請選擇...",png:"PNG影像",svg:"SVG影像(網頁用)",downloadOne:"下載當前車站",downloadAll:"下載所有車站"},GridTabs:{main:"主綫",branch:"支綫",external:"外部路綫",addStation:"新增車站",editLine:"路綫段設定"},StationAgGrid:{num:"車站編碼",interchange:"轉車",coline:"共綫"},StyleSidePanel:{header:"風格化設定",layout:{title:"佈局",canvasHeight:"畫面高度",destinationWidth:"終點站牌闊度",runinWidth:"當前站名牌闊度",railmapWidth:"幕門路綫圖闊度",indoorWidth:"車內路綫圖闊度",verticalPosition:"垂直方向位置",branchSpacing:"支綫間距",branchSpacingLoop:"垂直邊距",padding:"路綫圖邊距",directionGzX:"終點站水平方向位置",directionGzY:"終點站垂直方向位置"},design:{title:"設計",zhLineName:"路綫中文名稱",enLineName:"路綫英文名稱",lineNum:"路綫編碼",direction:"當前車站行車方向",left:"向左",right:"向右",platformNum:"月台編號",psdNum:"幕門編號",panelType:"資訊板樣式",gz1:"1號線",gz28:"2/8號線(松下)",gz2otis:"2/8號線(奧的斯)",gz3:"3號線",gz1421:"2017樣式",gz6:"2010樣式",gzgf:"2016樣式",gz4:"4號線",gz5:"5號線",sh:"預設",sh2020:"2020樣式(預覽版)",nameDisplay:"顯示車站名稱",alternatively:"交錯顯示",onOneSide:"同一側",flip:"反轉位置",firstStationNameDisplay:"顯示第一個車站的名稱",upwards:"頂部",downward:"底部",legacyDestination:"於終點站牌顯示路綫名稱",overrideTerminal:"覆寫終點站",terminalZhName:"終點站中文名稱",terminalEnName:"終點站英文名稱"},note:{title:"備註",add:"新增備註",zhNote:"中文備註",enNote:"英文備註",positionX:"水平方向位置",positionY:"垂直方向位置",border:"顯示邊線",remove:"移除備註"},loop:{title:"環綫",isLoop:"視作環綫",isBank:"在幕門路綫圖中以平行四邊形顯示環綫",leftRightFactor:"左右參數",bottomFactor:"底部參數"}},BranchSidePanel:{header:"路綫段設定",branch:{title:"支綫"},coline:{title:"共綫",add:"新增共綫"},action:{title:"動作",autoNum:"車站自動編碼",reverse:"旋轉整條路綫",flip:"反轉整條路綫"}},StationSidePanel:{info:{title:"車站資訊",num:"車站編碼",zhSecondary:"中文第二名稱",enSecondary:"英文第二名稱"},interchange:{title:"轉車",within:"同站轉車",outStation:"出站轉車",outSystem:"系統外轉車",addGroup:"新增轉車組合",noInterchanges:"非轉車站",add:"新增轉綫",copy:"製作轉綫副本",remove:"移除轉綫"},branch:{type:"種類",through:"直通(無需轉車)",nonThrough:"非直通(需轉車)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多設定",service:"列車類別",local:"普通",express:"快速",direct:"直達",facility:"周邊設施",none:"無",pivot:"環綫上的樞紐車站",oneLine:"在一行內展示中英文站名",intPadding:"車站名與換乘線路間的間距",intPaddingApplyGlobal:"將當前的間距應用到所有車站上",apply:"應用",characterSpacing:"車站名文字間距"},footer:{current:"設定為當前車站",remove:"移除"}},AddStationModal:{title:"新增車站",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",preposition:"相對位置",before:"先於",after:"後於",pivot:"定位車站",pleaseSelect:"請選擇...",error:"新增車站失敗,請檢查你的選擇後重試。"},NewBranchModal:{title:"新增支綫或外部路綫",where:"目標位置",new:"新增一條支綫",ext:"新增一條外部路綫",from:"介乎於",to:"與",position:"位置",upper:"上方",lower:"下方"},AutoNumModal:{title:"車站自動編碼",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",from:"起始編碼",maxLength:"編碼位數",sort:"排序方式",asc:"升序",desc:"降序"},Airport:"機場","All projects":"所有專案",Anticlockwise:"反時針","Are you sure to remove station? You cannot undo this action.":"確定移除該車站嗎?此動作無法還原。","Blank project":"空白專案","Branch left end":"支綫左端","Branch on the left":"左側支綫","Branch on the right":"右側支綫","Branch right end":"支綫右端","Branch spacing":"支綫間距",Branches:"支綫",by:"來自","Canvas scale":"畫面縮放比例","Chinese name":"中文名稱","Circle line":"環綫",Clockwise:"順時針",Close:"關閉",Colour:"顏色","Connect to main line":"連接至主綫","day ago":"日前","days ago":"日前","Disconnect from main line":"从主綫斷開","Disneyland resort":"迪士尼","Don't show me again":"不再顯示","Edit project info":"修改專案資訊","Empty template":"空白範本","English name":"英文名稱","Help and support":"幫助及支援","High speed rail":"高速鐵路","hour ago":"小时前","hours ago":"小时前",Import:"匯入","Import project":"匯入專案","Just now":"剛才","Last modified":"上次修改","LEFT END":"路綫左端","Loop direction":"環綫方向","Loop line":"環綫",Manage:"管理","Manage projects":"管理專案","minute ago":"分鐘前","minutes ago":"分鐘前","National rail":"國家鐵路","Ngong Ping 360":"昂坪360",No:"否","No branches found":"未找到支綫",None:"無","now and enjoy an even better rail map design experience!":",享受更好的路綫圖設計體驗!","Open selected":"開啟所選專案","Open template":"開啟範本","Paid area":"付費區轉車",Project:"專案","Project selected is invalid or corrupted.":"所選專案無效或者已損壞。","Project Selector":"專案選擇器","Project name":"專案名稱",Reload:"重新載入","Remove project":"移除專案","Remove station":"移除車站","RIGHT END":"路綫右端","Saved projects":"儲存的專案","Secondary names":"第二名稱","Select canvas":"選擇畫面","Set as midpoint":"設定為半環站","Span digits over rows":"跨行顯示數字",Style:"風格","Station Chinese name":"車站中文名稱","Station English name":"車站英文名稱","Station name":"車站名稱","Target station":"目標車站","Terms and conditions":"條款及細則","Text on the left":"轉乘文字置左","Text on the right":"轉乘文字置右","Try out":"立即試用","Unable to connect to main line.":"無法連接至主綫。","Unable to disconnect from main line.":"無法從主綫斷開。","Unable to remove this station.":"無法移除該車站。",Unknown:"未知",View:"檢視",Visit:"造訪","Visit GitHub":"造訪GitHub",Yes:"是","You have reached the maximum number of projects.":"你已到達專案數量上限。",CanvasType:{all:"全部",destination:"終點站牌",runin:"當前站名牌",railmap:"幕門路綫圖",indoor:"車內路綫圖",platform:"站台編號"},RmgStyle:{mtr:"港鐵",gzmtr:"廣州地鐵",shmetro:"上海地鐵",shsubrwy:"上海市域鐵路"}},qt={HeaderActions:{editStyle:"스타일 설정"},DownloadActions:{downloads:"다운로드",configFile:"설정 파일",images:"이미지"},OpenActions:{invalidType:"잘못된 파일 종류! JSON 종류의 파일만 받습니다.",unknownError:"업로드한 파일을 가져오는 중 오류가 발생했습니다! 다시 시도해 주세요."},DownloadModal:{title:"이미지 다운로드",canvas:"화면",transparent:"투명 배경",showBorder:"테두리 보이기",scale:"확대/ 축소 수준",format:"파일 종류",pleaseSelect:"선택해주세요",png:"PNG 이미지",svg:"SVG 이미지(웹용)",downloadOne:"현재 역 다운로드",downloadAll:"모든 역 다운로드"},GridTabs:{main:"주노선",branch:"지노선",external:"외부 노선",addStation:"역 추가",editLine:"노선 구간 설정"},StationAgGrid:{num:"역 번호",interchange:"환승",coline:"공용"},StyleSidePanel:{header:"스타일 설정",layout:{title:"구성",canvasHeight:"화면 고도",destinationWidth:"터미널 정거장 너비",runinWidth:"현재 정거장 너비",railmapWidth:"승강장문 노선도 폭",indoorWidth:"차내 노선도 폭",verticalPosition:"수직 방향 위치",branchSpacing:"지선 간격",branchSpacingLoop:"수직 여백",padding:"로드맵 여백",directionGzX:"터미널 수평 방향 위치",directionGzY:"터미널 수직 방향 위치"},design:{title:"디자인",zhLineName:"노선 한자 명칭",enLineName:"노선 영문 명칭",lineNum:"노선 번호",direction:"주행 방향",left:"왼쪽으로",right:"오른쪽으로",platformNum:"플랫폼 번호",psdNum:"플랫폼 도어 번호",panelType:"플랫폼 도어 패널 스타일",gz1:"1호선",gz28:"2/8호선(파나소닉)",gz2otis:"2/8호선(오디스)",gz3:"3호선",gz1421:"2017년 모양",gz6:"2010년 모양",gzgf:"2016년 모양",gz4:"4호선",gz5:"5호선",sh:"묵인",sh2020:"2020모양(사전 검토)",nameDisplay:"역 명칭 보이기",alternatively:"교차 표시",onOneSide:"같은 쪽",flip:"위치를 뒤집다",firstStationNameDisplay:"첫 번째 역 이름 표시 위치",upwards:"위쪽",downward:"아래쪽",legacyDestination:"터미널에 경로 명칭 표시",overrideTerminal:"끝점 다시 쓰기",terminalZhName:"터미널 한자 명칭",terminalEnName:"터미널 영문 명칭"},note:{title:"설명",add:"설명 추가",zhNote:"한자 설명",enNote:"영문 설명",positionX:"수평 방향 위치",positionY:"수직 방향 위치",border:"테두리 보이기",remove:"설명 삭제"},loop:{title:"환상선",isLoop:"순환선으로 간주하기",isBank:"승강장 도면에 평행사변형으로 순환선을 표시하기",leftRightFactor:"좌우 파라미터",bottomFactor:"바닥 인자"}},BranchSidePanel:{header:"노선 구간 설정",branch:{title:"지선"},coline:{title:"공선",add:"공선 추가"},action:{title:"조작",autoNum:"역 자동 번호 매기기",reverse:"전체 노선을 회전하기",flip:"전체 노선을 뒤집기"}},StationSidePanel:{info:{title:"역 정보",num:"역 번호",zhSecondary:"한자 제2명칭",enSecondary:"영문 제2명칭"},interchange:{title:"환승",within:"같은 역에서 환승",outStation:"역을 나가 환승",outSystem:"시스템외환승",addGroup:"환승 조합 추가",noInterchanges:"비환승역",add:"환승 추가",copy:"환승 복사",remove:"환승 삭제"},branch:{type:"유형",through:"관통(환승 불필요)",nonThrough:"비관통(환승 필요)",firstStation:"첫 번째 역",position:"위치",upper:"위쪽",lower:"아래쪽"},more:{title:"자세한 설정",service:"열차 종류",local:"서행",express:"급행",direct:"특급",facility:"인근 시설",pivot:"순환선의 허브 역",oneLine:"한 줄 안에 한자와 영문의 역명을 전시하기",intPadding:"역명과 환승 노선 사이의 간격",intPaddingApplyGlobal:"현재 간격을 모든 역에 적용",apply:"응용"},footer:{current:"현재 역으로 설정",remove:"삭제"}},AddStationModal:{title:"역 추가",where:"목표 위치",main:"주선로",branch:"지선",external:"외부 노선",preposition:"상대 위치",before:"전에",after:"후에",pivot:"위치추적역",pleaseSelect:"선택해주세요",error:"스테이션 추가에 실패하였습니다, 옵션을 확인하신 후 다시 시도하십시오."},NewBranchModal:{title:"지선 또는 외부 노선 추가",where:"목표 위치",new:"지선을 첨가",ext:"외부 노선 추가",from:"부터",to:"까지",position:"위치",upper:"위쪽",lower:"아래쪽"},AutoNumModal:{title:"역 자동 번호 매기기",where:"목표 위치",main:"주선",branch:"지선",external:"외부 노선",from:"시작 번호",maxLength:"번호 자릿수",sort:"정렬 방식",asc:"오름차순",desc:"내림차순"},Airport:"공항","All projects":"모든 프로젝트","Are you sure to remove station? You cannot undo this action.":"이 역을 삭제하시겠습니까? 이 작업을 취소할 수 없습니다.","Blank project":"백지 프로젝트","Branch left end":"지선 좌단","Branch on the left":"좌측 지선","Branch on the right":"우측 지선","Branch right end":"지선 우단","Branch spacing":"지선 간격",Branches:"지선",by:"에서 오다","Canvas scale":"화면 크기 조정 단계","Chinese name":"한자 명칭",Colour:"색깔","Connect to main line":"메인 라인에 연결","day ago":"일 전","days ago":"일 전","Disconnect from main line":"본선에서 끊기다","Disneyland resort":"디즈니","Edit project info":"프로젝트 정보 편집","Empty template":"공백 틀","English name":"영문 명칭","Help and support":"도움과 지지","High speed rail":"고속 철도","hour ago":"시간 전","hours ago":"시간 전","Import project":"프로젝트 가져오기","Just now":"방금","Last modified":"마지막 편집","minute ago":"분 전에","minutes ago":"분 전에","National rail":"국가 철도","No branches found":"지선을 찾지 못했다.",None:"무","Open selected":"선택한 프로젝트 열기","Open template":"틀 열기","Paid area":"유료환승",Project:"프로젝트","Project selected is invalid or corrupted.":"선택한 항목이 잘못되었거나 손상되었습니다.","Project name":"프로젝트 명칭","Remove project":"프로젝트 삭제","Remove station":"역 삭제","Saved projects":"저장된 프로젝트","Select canvas":"화면 선택",Style:"스타일","Station Chinese name":"역 한자 명칭","Station English name":"역 영문 명칭","Station name":"역 명칭","Target station":"목표 역","Terms and conditions":"조관 및 세칙","Text on the left":"글로 갈아타면 왼쪽으로 붙다","Text on the right":"글로 갈아타면 오른쪽으로 붙다","Unable to connect to main line.":"메인 라인에 연결할 수 없습니다.","Unable to disconnect from main line.":"메인라인에서 연결이 되지 않습니다.","Unable to remove this station.":"이 역은 삭제할 수 없습니다.",Unknown:"미지",View:"찾아 보기",Visit:"방문","Visit GitHub":"GitHub 방문하기","You have reached the maximum number of projects.":"프로젝트 수량 상한에 도달했습니다.",CanvasType:{all:"모두",destination:"터미널 번호판",runin:"현재 역 번호판",railmap:"플랫폼 도어 노선도",indoor:"차내 노선도"},RmgStyle:{mtr:"홍콩 지하철",gzmtr:"광저우 지하철",shmetro:"상해 지하철"}},Xt=(new Ft.I18nBuilder).use(Oe).withAppName("Rail Map Generator").withLng(Ft.getLanguage()).withDefaultResource(Jt).withResource("en",$t).withResource("zh-Hans",Kt).withResource("zh-Hant",Zt).withResource("ja",{}).withResource("ko",qt).build(),eo=e("_",(function(e,a,t){let o=Promise.resolve();function r(e){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=e,window.dispatchEvent(a),!a.defaultPrevented)throw e}return o.then((a=>{for(const e of a||[])"rejected"===e.status&&r(e.reason);return e().catch(r)}))}));var ao=function(){if("undefined"!=typeof Map)return Map;function e(e,a){var t=-1;return e.some((function(e,o){return e[0]===a&&(t=o,!0)})),t}return function(){function a(){this.__entries__=[]}return Object.defineProperty(a.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),a.prototype.get=function(a){var t=e(this.__entries__,a),o=this.__entries__[t];return o&&o[1]},a.prototype.set=function(a,t){var o=e(this.__entries__,a);~o?this.__entries__[o][1]=t:this.__entries__.push([a,t])},a.prototype.delete=function(a){var t=this.__entries__,o=e(t,a);~o&&t.splice(o,1)},a.prototype.has=function(a){return!!~e(this.__entries__,a)},a.prototype.clear=function(){this.__entries__.splice(0)},a.prototype.forEach=function(e,a){void 0===a&&(a=null);for(var t=0,o=this.__entries__;t0},e.prototype.connect_=function(){to&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),no?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){to&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var a=e.propertyName,t=void 0===a?"":a;io.some((function(e){return!!~t.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),go=function(e,a){for(var t=0,o=Object.keys(a);t0},e}(),xo="undefined"!=typeof WeakMap?new WeakMap:new ao,ko=function e(a){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var t=lo.getInstance(),o=new wo(a,t,this);xo.set(this,o)};["observe","unobserve","disconnect"].forEach((function(e){ko.prototype[e]=function(){var a;return(a=xo.get(this))[e].apply(a,arguments)}}));var zo=void 0!==oo.ResizeObserver?oo.ResizeObserver:ko;window.ResizeObserver||(window.ResizeObserver=zo);var Mo=function(){return Mo=Object.assign||function(e){for(var a,t=1,o=arguments.length;t`";if(!o){const e=new Error(r);throw e.name="ContextError",null==(t=Error.captureStackTrace)||t.call(Error,e,a),e}return o},e]}();function Oo(e){return null!=e&&e.length?e[e.length-1]:void 0}function Ao(e,a,t=1,o=!0){if(0===a)return-1;let r=e+t;return-1===e&&(r=t>0?0:a-1),r=o?(r%a+a)%a:Math.max(0,Math.min(r,a-1)),r}function Io(e,a,t=!0){const o=function(e,a,t=!0){return Ao(e,a,-1,t)}(e,a.length,t);return a[o]}function Eo(e){return Array.isArray(e)}function Do(e){return null!==e&&"object"==typeof e&&!Eo(e)}function Lo(e){return Eo(e)?function(e){return Eo(e)&&0===e.length}(e):Do(e)?function(e){return Do(e)&&0===Object.keys(e).length}(e):null==e||""===e}function Co(e){return typeof e>"u"}function To(e){return typeof e<"u"}function Ro(e,a){const t={...e};return a.forEach((e=>{delete t[e]})),t}function Po(e,...a){return function(e){return"function"==typeof e}(e)?e(...a):e}var _o=function(e,a){for(var t,o=0,r=Ae.Children.toArray(e);o{var a;return null==(a="string"==typeof e||"number"==typeof e?e:e[Object.keys(e)[0]])?void 0:a.toString()},Go=(e,a)=>"string"!=typeof e||Lo(a)?e:e.toString().replace(new RegExp(function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}(a),"gi"),(e=>`${e}`)),Fo=(e,a,t)=>(null==a?void 0:a.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||(null==t?void 0:t.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||Ho(e,a)>=.5||Ho(e,t)>=.5,Yo=(e,a)=>_o(e,(e=>{var t;return"AutoCompleteItem"===(null==(t=null==e?void 0:e.type)?void 0:t.displayName)&&e.props.value===(null==a?void 0:a.value)})),Wo=(e,a)=>_o(e,(e=>{var t;return"AutoCompleteItem"===(null==(t=null==e?void 0:e.type)?void 0:t.displayName)&&e.props.value===(null==a?void 0:a.value)})),Qo=(e,a)=>{const t={},o={},{field:r}=e;return r&&Object.keys(r).forEach((e=>{if(!1===e.startsWith("--input"))t[e]=r[e];else{let a=r[e];const t=e.replace("--input-","").replace(/-([a-z])/g,(function(e){return e[1].toUpperCase()}));-1!==a.indexOf(".")&&(a=a.substring(a.indexOf(".")+1)),o[t]=a}})),{...a&&{...t,...o,_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3},cursor:"text",h:"fit-content"}};function Jo(e){var a;let{prefocusFirstItem:t=!0,closeOnBlur:o=!0,creatable:r,emphasize:i,emptyState:n=!0,defaultEmptyStateProps:l={},freeSolo:g,isReadOnly:c,listAllValuesOnFocus:s,maxSuggestions:d,multiple:p,closeOnSelect:u=!p,defaultValue:h,defaultValues:f=(h?[h]:[]),onReady:v,defaultIsOpen:m,disableFilter:b,isLoading:y=!1,placement:w="bottom",restoreOnBlurIfEmpty:x=!g,shouldRenderSuggestions:k=()=>!0,submitKeys:z=[],suggestWhenEmpty:M,value:j,values:S=(j?"string"==typeof j?[j]:[...j]:void 0)}=e;g=g||!!p||e.freeSolo;const{isOpen:I,onClose:E,onOpen:D}=N({defaultIsOpen:m}),L=Ae.useMemo((()=>Po(e.children,{isOpen:I,onClose:E,onOpen:D})),[e.children,I]),C=Ae.useMemo((()=>(e=>Bo(e,(e=>{var a;return"AutoCompleteItem"===(null==(a=null==e?void 0:e.type)?void 0:a.displayName)})).map((e=>{const a=function(e){const a={};return["value","label","fixed","disabled"].forEach((t=>{t in e&&(a[t]=e[t])})),a}(e.props),{getValue:t=Vo}=e.props,o=t(a.value);return{...To(a.label)?a:{...a,label:o},value:o,originalValue:a.value}})))(L)),[L]),T=Ae.useRef(null),R=Ae.useRef(null),P=Ae.useRef(null),_=Ae.useRef(null),[U,B]=Ae.useState(!1);let H="";p?H="":Co(f)?Co(S)||(H=S[0]):H=f[0];const[V,G]=Ae.useState(H??""),F=Ae.useMemo((()=>b?C:C.filter((a=>a.fixed||Po(e.filter||Fo,V,a.value,a.label)||U)).filter(((e,a)=>!d||e.fixed||a[...F,...Y]),[F,Y]),[Q,J]=O({defaultValue:f.map((e=>null==e?void 0:e.toString())),value:S,onChange:a=>{const t=W.find((e=>e.value===a[0]));if(!t)return;const o=a.map((e=>W.find((a=>a.value===e))));Po(e.onChange,p?a:a[0],p?o:t)}});Ae.useEffect((()=>{0===W.length&&!n&&I&&E()}),[W.length,n,I]);const[$,K]=Ae.useState(t?null==(a=C[0])?void 0:a.value:null),Z=e.maxSelections||Q.length+1,q=W.findIndex((e=>e.value===$)),X=function(e,a,t=!0){return a[Ao(e,a.length,1,t)]}(q,W,!!e.rollNavigation),ee=Io(q,W,!!e.rollNavigation),ae=function(e){return null==e?void 0:e[0]}(W),te=Oo(W),oe=!W.some((e=>e.value===$));Ae.useEffect((()=>{var e;oe&&K(t?null==(e=C[0])?void 0:e.value:null)}),[oe]),A((()=>{t&&K(null==ae?void 0:ae.value)}),[V,null==ae?void 0:ae.value]),Ae.useEffect((()=>{var e;!I&&t&&K(null==(e=C[0])?void 0:e.value)}),[I]),Ae.useEffect((()=>{I&&s&&B(!0)}),[I,s,B]),Ae.useEffect((()=>{const a=C.find((e=>e.value===$));Po(e.onOptionFocus,{item:a,focusMethod:_.current,isNewInput:null==a?void 0:a.creatable})}),[$,e.onOptionFocus]);const re=a=>{var t,o;const r=W.find((e=>e.value===a)),i=(null==r?void 0:r.label)||(null==r?void 0:r.value);G((()=>p?"":i??"")),!Q.includes(a)&&Q.lengthp?[...e,a]:[a])),p&&(null==(t=T.current)||t.focus()),e.focusInputOnSelect&&(null==(o=T.current)||o.focus()),Po(e.onSelectOption,{item:r,selectMethod:_.current,isNewInput:null==r?void 0:r.creatable}),null!=r&&r.creatable&&Po(e.onCreateOption,{item:Ro(r,["noFilter"]),selectMethod:_.current}),u&&E()},ie=(a,t)=>{var o;J((t=>{const o=C.find((e=>e.value===a));return o?(Po(e.onTagRemoved,a,o,t),t.filter((e=>e!==a))):t}));const r=C.find((e=>e.value===a)),i=(null==r?void 0:r.label)||(null==r?void 0:r.value);V===i&&G(""),t&&(null==(o=T.current)||o.focus())},ne=p?Q.map((e=>{var a;return{label:(null==(a=C.find((a=>a.value===(null==e?void 0:e.toString()))))?void 0:a.label)||e,onRemove:()=>ie(e)}})):[];return Ae.useEffect((()=>{Po(v,{tags:ne})}),[Q]),{autoCompleteProps:e,children:L,filteredList:W,filteredResults:F,focusedValue:$,defaultEmptyStateProps:l,getEmptyStateProps:e=>{if(W.every((e=>e.noFilter))&&n&&!r)return"boolean"==typeof n?e:Po(n,{query:V})},getGroupProps:e=>{const a=((e,a)=>To(_o(e,(e=>{var t,o;const r=Po((null==(t=e.props)?void 0:t.getValue)||Vo,(null==(o=e.props)?void 0:o.value)||{});return a.some((e=>e.value===r))}))))(e.children,W);return{divider:{hasFirstChild:Yo(e.children,ae),hasLastChild:Wo(e.children,Oo(W.filter((e=>Co(null==e?void 0:e.noFilter)))))},group:{display:a?"initial":"none"}}},getInputProps:(a,t)=>{const{onBlur:r,onChange:i,onFocus:n,onKeyDown:l,variant:g,...d}=a;return{wrapper:{ref:R,onClick:()=>{var e;null==(e=null==T?void 0:T.current)||e.focus()},...Qo(t,p),...d},input:{isReadOnly:c,onFocus:a=>{Po(n,a),e.openOnFocus&&!c&&D(),e.selectOnFocus&&a.target.select(),s&&B(!0)},onBlur:e=>{var a,t;Po(r,e);const i=e.relatedTarget===(null==P?void 0:P.current)||(null==(a=P.current)?void 0:a.contains(e.relatedTarget)),n=null==(t=R.current)?void 0:t.contains(e.relatedTarget);if(!i&&!n&&(o&&E(),!Q.includes(e.target.value)&&x)){const e=Oo(Q),a=C.find((a=>a.value===e)),t=(null==a?void 0:a.label)||(null==a?void 0:a.value)||"";G(t)}},onChange:e=>{const a=e.target.value;Po(i,e),G(a);const t=Lo(a);!Po(k,a)||t&&!M?E():D(),B(!1)},onKeyDown:e=>{var a;Po(l,e),_.current="keyboard";const{key:t}=e,o=W[q];return["Enter",...z].includes(t)?(!o||null!=o&&o.disabled||!I?null==(a=T.current)||a.focus():re(null==o?void 0:o.value),void e.preventDefault()):"ArrowDown"===t?(I?K(null==X?void 0:X.value):D(),void e.preventDefault()):"ArrowUp"===t?(I?K(null==ee?void 0:ee.value):D(),void e.preventDefault()):"Tab"!==t?"Home"===t?(K(null==ae?void 0:ae.value),void e.preventDefault()):"End"===t?(K(null==te?void 0:te.value),void e.preventDefault()):void("Escape"===t&&(E(),e.preventDefault())):void(!I||!o||null!=o&&o.disabled?E():re(null==o?void 0:o.value))},value:V,variant:p?"unstyled":g,...d}}},getItemProps:(e,a)=>{var t;const{_fixed:o,_focus:r,children:n,disabled:l,label:g,value:c,fixed:s,getValue:d=Vo,onClick:p,onMouseOver:u,sx:h,...f}=e,v=a?c:null==(t=d(c))?void 0:t.toString(),m=v===$,b=W.findIndex((e=>e.value===v))>=0,y=n||g||v;return{item:{..."string"==typeof y&&i?{dangerouslySetInnerHTML:{__html:Go(y,V)}}:{children:y},"aria-selected":Q.includes(v),"aria-disabled":l,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:e=>{var a;Po(p,e),l?null==(a=T.current)||a.focus():re(v)},onMouseOver:e=>{Po(u,e),K(v),_.current="mouse"},sx:{...h,mark:{color:"inherit",bg:"transparent",...Do(i)?i:{fontWeight:i?"extrabold":"inherit"}}},...m&&(r||{bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),...s&&o,...f},root:{isValidSuggestion:b,value:v}}},inputRef:T,interactionRef:_,isLoading:y,isOpen:I,itemList:C,listRef:P,onClose:E,onOpen:D,placement:w,query:V,removeItem:ie,resetItems:e=>{var a;J([]),e&&(null==(a=T.current)||a.focus())},setQuery:G,tags:ne,value:j,values:Q}}g(((e,a)=>{const t=Jo(e),{children:o,isOpen:i,onClose:l,onOpen:g,placement:c,resetItems:s,removeItem:d}=t;Ae.useImperativeHandle(a,(()=>({resetItems:s,removeItem:d})));const{matchWidth:p=!0}=t.autoCompleteProps;return r.jsx(So,{value:t,children:r.jsx(u,{isLazy:!0,isOpen:i,onClose:l,onOpen:g,autoFocus:!1,placement:c,closeOnBlur:!0,matchWidth:p,children:r.jsx(n.div,{w:"full",ref:a,children:o})})})})).displayName="AutoComplete",g(((e,a)=>{const{focusedValue:t,getItemProps:o,interactionRef:i}=No(),n=Ae.useRef(),l=h(a,n),g=o(e),{isValidSuggestion:c,value:s}=g.root,d=t===s;Ae.useEffect((()=>{var e;d&&"keyboard"===i.current&&(null==(e=null==n?void 0:n.current)||e.scrollIntoView({behavior:"smooth",block:"nearest"}))}),[d,i]),Ae.useEffect((()=>{"string"!=typeof s&&console.warn("wow"),"string"!=typeof s&&Co(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")}),[]);const{children:p,dangerouslySetInnerHTML:u,...v}=g.item,m=Ro(v,["groupId"]);return c?r.jsx(f,{ref:l,...$o,...m,children:p||r.jsx("span",{dangerouslySetInnerHTML:u})}):null})).displayName="AutoCompleteItem";const $o={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},Ko=g(((e,a)=>{const{children:t,showDivider:o,...i}=e,n=Ro(i,["groupSibling"]),{getGroupProps:l}=No(),{group:g}=l(e),c=Xo(e);return r.jsxs(v,{ref:a,...g,...n,children:[r.jsx(m,{...c.top}),t,r.jsx(m,{...c.bottom})]})})),Zo=g(((e,a)=>r.jsx(f,{...qo,...e,ref:a})));Ko.displayName="AutoCompleteGroup",Zo.displayName="AutoCompleteGroupTitle";const qo={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},Xo=e=>{const{getGroupProps:a}=No(),t=e.groupSibling,{divider:{hasFirstChild:o,hasLastChild:r}}=a(e),i={my:2,borderColor:e.dividerColor};return{top:{...i,mb:4,display:!e.showDivider||o?"none":""},bottom:{...i,display:!e.showDivider||r||t?"none":""}}},er=g(((e,a)=>{const{isLoading:t}=No(),{loadingIcon:o,...i}=e;return r.jsxs(b,{children:[r.jsx(y,{...i,ref:a}),t&&r.jsx(w,{children:o||r.jsx(x,{})})]})})),ar=g(((e,a)=>{const{autoCompleteProps:t,inputRef:o,getInputProps:i,tags:n,setQuery:l,value:g,itemList:s}=No(),{children:d,isInvalid:p,hidePlaceholder:u,...f}=e,{value:v}=f;Ae.useEffect((()=>{if(void 0!==g&&("string"==typeof g||g instanceof String)){const e=s.find((e=>e.value===g)),a=void 0===e?g:e.label;l(a)}}),[g]),Ae.useEffect((()=>{void 0!==v&&("string"==typeof v||v instanceof String)&&l(v)}),[v]);const m=k("Input",e);let{wrapper:b,input:y}=i(f,m);const{ref:w,...x}=b,j=h(a,o),S=Po(d,{tags:n});u&&(y={...y,placeholder:Array.isArray(S)&&S.length?void 0:y.placeholder});const N=r.jsx(er,{isInvalid:p,...y,ref:j}),O=r.jsxs(z,{"aria-invalid":p,...x,ref:w,children:[S,r.jsx(c,{as:er,...y,ref:j})]});return r.jsx(M,{children:t.multiple?O:N})}));ar.displayName="Input",ar.id="Input";const tr=e=>{const{getEmptyStateProps:a,defaultEmptyStateProps:t}=No(),o=a(r.jsx(f,{...or,...t,children:"No options found!"}));return r.jsx(v,{...e,children:o})},or={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},rr=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"];g(((e,a)=>{const{children:t,loadingState:o,...i}=e,{listRef:n,isLoading:l}=No(),g=h(a,n),[c,s]=(e=>{const a=Ie.Children.map(e,((a,t)=>{var o;if("AutoCompleteGroup"===(null==(o=null==a?void 0:a.type)?void 0:o.displayName)){const o=Ie.Children.toArray(e)[t+1];return Ie.cloneElement(a,{groupSibling:!!o&&"AutoCompleteGroup"===o.type.displayName})}return a})),t=Ie.Children.toArray(a).filter((e=>{var a;return!rr.includes(null==(a=null==e?void 0:e.type)?void 0:a.displayName)}));return[Ie.Children.toArray(a).filter((e=>{var a;return rr.includes(null==(a=null==e?void 0:e.type)?void 0:a.displayName)})),t]})(t);return r.jsxs(j,{ref:g,w:"inherit",...ir,...i,children:[l&&r.jsx(S,{children:o||r.jsx(x,{size:"md"})}),!l&&r.jsxs(r.Fragment,{children:[c,r.jsx(tr,{}),s]})]})})).displayName="AutoCompleteList";const ir={py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}};Ae.memo((e=>{const{label:a,onRemove:t,disabled:o,...i}=e;return r.jsx(c,{children:r.jsxs(s,{borderRadius:"md",fontWeight:"normal",...o&&nr,...i,children:[r.jsx(d,{children:a}),r.jsx(p,{onClick:()=>!o&&Po(t),cursor:"pointer",...o&&nr})]})})}));const nr={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};var lr=function(e,a){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,i=t.call(e),n=[];try{for(;(void 0===a||a-- >0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},gr=function(e,a,t){if(t||2===arguments.length)for(var o,r=0,i=a.length;r0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},hr=(e("ah",Ae.forwardRef((function(e,a){var t=e.validator,o=e.onDebouncedChange,i=e.delay,n=e.optionList,l=e.defaultValue;e.onChange;var g=pr(e,["validator","onDebouncedChange","delay","optionList","defaultValue","onChange"]),c=Ae.useRef(null),s=h(c,a),d=Ae.useRef("datalist-"+(new Date).valueOf()),p=ur(Ae.useState(!1),2),u=p[0],f=p[1],v=Ae.useRef();return Ae.useEffect((function(){c.current&&(c.current.value=(null==l?void 0:l.toString())||"")}),[l]),r.jsxs(r.Fragment,{children:[r.jsx(y,dr({ref:s,list:d.current,variant:"flushed",size:"sm",h:6,onChange:function(e){var a=e.target.value;window.clearTimeout(v.current),t&&f(!t(a)),v.current=window.setTimeout((function(){null==o||o(a),v.current=void 0}),null!=i?i:500)},onBlur:function(e){var a=e.target.value;void 0!==v.current&&(window.clearTimeout(v.current),t&&f(!t(a)),null==o||o(a),v.current=void 0)},isInvalid:u},g)),n&&r.jsx("datalist",{id:d.current,children:null==n?void 0:n.map((function(e,a){return r.jsx("option",{children:e},a)}))})]})}))),function(){return hr=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n}),yr=function(e){switch(e){case Ke.DEV:return"red";case Ke.UAT:return"orange";case Ke.PRD:return"green"}};function wr(e){var a=e.environment,t=e.version,o=e.popoverHeader,i=e.popoverBody,n=br(Ae.useState(!1),2),l=n[0],g=n[1];return r.jsxs(u,{isOpen:l,onOpen:function(){return o&&g(!0)},onClose:function(){return g(!1)},children:[r.jsx(L,{children:r.jsx(C,{ml:1,colorScheme:yr(a),title:"".concat(a,": ").concat(t),cursor:o?"pointer":"help",children:a===Ke.PRD?t:a})}),r.jsxs(j,{children:[r.jsx(T,{}),r.jsx(R,{}),r.jsx(P,{children:o}),r.jsx(_,{children:i})]})]})}var xr=function(e,a){var t=window.URL.createObjectURL(a),o=document.createElement("a");o.href=t,o.download=e,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(t)},kr=function(e,a){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,i=t.call(e),n=[];try{for(;(void 0===a||a-- >0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n};function zr(e){var a=e.cancelRef,t=e.isOpen,o=e.onClose,i=kr(Ae.useState(!1),2),n=i[0],l=i[1];return r.jsxs(U,{leastDestructiveRef:a,isOpen:t,onClose:o,children:[r.jsx(B,{}),r.jsxs(H,{children:[r.jsx(V,{children:"Warning 警告"}),r.jsx(G,{}),r.jsxs(F,{sx:{"& p":{my:1}},children:[r.jsx(Y,{children:"Are you sure you want to reset the app? The webpage local storage for this app will be cleared. A copy of the local storage will be downloaded and it may be used for restoration (varies with app)."}),r.jsx(Y,{children:"確定重設該應用程式嗎?應用程式的網頁本地儲存將會被清除。本地儲存的副本可供下載及用於復原(因應用程式而異)。"}),r.jsx(Y,{children:"确定重置本应用程序吗?应用程序的网页本地存储将会被清除。本地存储的拷贝可供下载以及用于还原(因应用程序而異)。"})]}),r.jsxs(W,{children:[r.jsx(E,{ref:a,onClick:o,children:"Cancel"}),r.jsx(E,{isLoading:n,colorScheme:"red",ml:3,onClick:function(){l(!0);var e,a,t,o,r=Ft.storage.getAll(),i=Ft.getAppName(),n="".concat(i,"_BACKUP_").concat((new Date).toISOString(),".json");e=n,a="application/json",t=JSON.stringify(r),o=new Blob([t],{type:a}),xr(e,o),Ft.storage.clear(),setTimeout((function(){window.location.reload()}),2e3)},children:"Confirm and reload"})]})]})]})}var Mr=function(){return Mr=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n};function Nr(e){var a=e.error,o=e.errorInfo,i=e.allowReset,n=e.sx,l=jr(e,["error","errorInfo","allowReset","sx"]),g=t("RmgErrorBoundary"),c=Q("primary.500","primary.300"),s=Sr(Ae.useState(!1),2),d=s[0],p=s[1],u=Ae.useRef(null),h=function(e){return r.jsx(J,{color:c,role:"button",onClick:function(){return p(!0)},children:e})},f=Ft.getAppName(),v=r.jsx(J,{color:c,href:"https://github.com/railmapgen/".concat("rmg-home"===f?"railmapgen.github.io":f,"/issues"),isExternal:!0,children:"GitHub Issue"});return r.jsxs($,Mr({status:"error",sx:Mr(Mr({},g),n)},l,{children:[r.jsx(K,{}),r.jsx(Z,{children:"Something went wrong!"}),r.jsxs(q,{children:[r.jsxs(Y,{children:["Please try to refresh or re-import your configuration files. If the issue still persists, please consider upgrading your browser",i?r.jsxs(r.Fragment,{children:[" or ",h("reset this app")]}):"",". Should you need any help, please contact us by submitting an issue in ",v," with the details shown below."]}),r.jsxs(Y,{children:["請嘗試重新整理或重新上載設定檔。如果問題仍然存在,請考慮更新你的瀏覽器",i?r.jsxs(r.Fragment,{children:["或",h("重設該應用程式")]}):"","。如需協助或與我們聯絡,請前往 ",v," 提交一個 Issue 並附以詳細資料。"]}),r.jsxs(Y,{children:["请尝试刷新或者重新上传配置文件。如果问题仍然存在,请考虑更新您的浏览器",i?r.jsxs(r.Fragment,{children:["或者",h("重置本应用程序")]}):"","。如需帮助或者联系我们,请前往 ",v," 提交一个 Issue 并附上详细信息。"]}),r.jsxs(Y,{as:"details",children:[null==a?void 0:a.toString(),r.jsx("br",{}),null==o?void 0:o.componentStack]}),i&&r.jsx(zr,{cancelRef:u,isOpen:d,onClose:function(){return p(!1)}})]})]}))}var Or,Ar=(Or=function(e,a){return Or=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,a){e.__proto__=a}||function(e,a){for(var t in a)Object.prototype.hasOwnProperty.call(a,t)&&(e[t]=a[t])},Or(e,a)},function(e,a){if("function"!=typeof a&&null!==a)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");function t(){this.constructor=e}Or(e,a),e.prototype=null===a?Object.create(a):(t.prototype=a.prototype,new t)}),Ir=function(){return Ir=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},_r=function(e,a){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,i=t.call(e),n=[];try{for(;(void 0===a||a-- >0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},Ur=function(e,a,t){if(t||2===arguments.length)for(var o,r=0,i=a.length;r0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},Vr=function(){return Vr=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},qr=function(e,a,t){if(t||2===arguments.length)for(var o,r=0,i=a.length;r span:last-of-type":{position:"absolute",right:8}},"& .rmg-multi-select__icon-wrapper":{display:"inline-flex",justifyContent:"center",w:6,h:"100%",position:"absolute",right:2,top:0,fontSize:"xl","& svg":{h:"1em",w:"1em"}},"& .chakra-popover__content":{w:"unset",minW:200},"& .chakra-popover__body":{p:0,"li label":{p:2,w:"100%",_hover:{bg:"dark"===t?"whiteAlpha.200":"gray.100"},_active:{bg:"dark"===t?"whiteAlpha.300":"gray.200"}}}}}},ni=function(){return ni=Object.assign||function(e){for(var a,t=1,o=arguments.length;t button:first-of-type":{ml:1}}},RmgLoader:{baseStyle:{w:"100%",h:"100%",position:"absolute",top:0,right:0,alignItems:"center",justifyContent:"center","& .rmg-loader__backdrop":{position:"absolute",w:"100%",h:"100%",zIndex:1500,bg:"blackAlpha.400"},"& .chakra-progress":{zIndex:2e3}}},RmgMultiSelect:ii,RmgOutput:{baseStyle:function(e){var a=e.noWrap;return ni({minH:6,fontSize:"sm"},a?li:{textWrap:"pretty"})}},RmgPage:{baseStyle:{position:"relative",flexDirection:"column",flex:1,overflow:"hidden",background:"inherit"}},RmgPageHeader:{baseStyle:{alignItems:"center",flexWrap:"wrap",pl:2,pr:3,py:1,zIndex:10}},RmgSection:{baseStyle:{position:"relative",background:"inherit"}},RmgSectionHeader:{baseStyle:{display:"flex",alignItems:"center",flexWrap:"wrap",position:"sticky",top:0,background:"inherit",px:2,py:1,zIndex:5}},RmgSidePanel:{baseStyle:function(e){var a=e.colorMode,t=e.width,o=e.alwaysOverlay;return{height:"100%",position:o?"absolute":{base:"absolute",lg:"relative"},right:o?0:{base:0,lg:"unset"},background:"light"===a?"white":"gray.800",boxShadow:"lg",flexShrink:0,flexDirection:"column",transition:"0.3s ease-in-out",maxW:0,visibility:"hidden",zIndex:5,"&.show-side-panel":{maxW:{base:"100%",sm:t},w:{base:"100%",sm:"unset"},visibility:"initial"},"& .rmg-side-panel__inner":{flexDirection:"column",h:"100%",w:{base:"100vw",sm:t}},"& .rmg-side-panel__header":{flexShrink:0,pl:3,pr:1,py:0,"& button":{ml:"auto"}},"& .rmg-side-panel__body":{display:"flex",flexDirection:"column",flex:1,overflowY:"auto",p:1},"& .rmg-side-panel__footer":{display:"flex",justifyContent:"flex-end",p:1}}}},RmgThrottledSlider:{baseStyle:{h:6,alignItems:"center","& .chakra-button:first-of-type":{mr:1},"& .chakra-button:last-of-type":{ml:1}}},RmgWindow:{baseStyle:{position:"relative",flexDirection:"column",height:"100%",overflow:"hidden",background:"inherit"}},RmgWindowHeader:{baseStyle:{px:2,alignItems:"center",zIndex:15,minH:10,transition:"0.3s ease-in-out"}}},ci=function(){return ci=Object.assign||function(e){for(var a,t=1,o=arguments.length;twindow.open("https://github.com/railmapgen/rmg","_blank"),children:o("Visit GitHub")})})]})]})}const bi=()=>{const{t:e}=Ee(),a=Ft.getEnv(),t=Ft.getAppVersion(),[o,i]=Ae.useState(!1);return r.jsxs(Yr,{children:[r.jsx(ze,{as:"h4",size:"md",children:e("Rail Map Generator")}),r.jsx(wr,{environment:a,version:t}),r.jsx(Se,{ml:"auto",children:r.jsx(re,{size:"sm",variant:"ghost","aria-label":"Help",icon:r.jsx(fi,{}),onClick:()=>i(!0)})}),r.jsx(mi,{isOpen:o,onClose:()=>i(!1)})]})},yi=()=>{const{t:e}=Ee();return r.jsx(Yr,{isAppClipHeader:!0,children:r.jsx(ze,{as:"h4",size:"md",children:e("Rail Map Generator")+" - "+e("Project Selector")})})},wi=Ae.lazy((()=>eo((()=>a.import("./app-router-legacy-ilk_ckFL.js").then((e=>e.a))),void 0))),xi=Ae.lazy((()=>eo((()=>a.import("./app-clip-view-legacy-DhJN-lkK.js")),void 0)));function ki(){return r.jsx(De,{children:r.jsx(ui,{children:r.jsx(Fr,{children:r.jsxs(Le,{children:[r.jsx(Ce,{path:"/import",element:r.jsxs(Dr,{suspenseFallback:r.jsx(Kr,{isIndeterminate:!0}),children:[r.jsx(yi,{}),r.jsx(xi,{})]})}),r.jsx(Ce,{path:"/",element:r.jsxs(Dr,{suspenseFallback:r.jsx(Kr,{isIndeterminate:!0}),allowReset:!0,children:[r.jsx(bi,{}),r.jsx(wi,{})]})}),r.jsx(Ce,{path:"*",element:r.jsx(Te,{to:"/"})})]})})})})}Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var zi=e("e",(e=>(e.MTR="mtr",e.GZMTR="gzmtr",e.SHMetro="shmetro",e.SHSuburbanRailway="shsubrwy",e))(zi||{})),Mi=e("aR",(e=>(e.Destination="destination",e.RunIn="runin",e.RailMap="railmap",e.Indoor="indoor",e.Platform="platform",e))(Mi||{}));e("p",{mtr:["destination","railmap"],gzmtr:["runin","railmap"],shmetro:["destination","runin","railmap","indoor"],shsubrwy:["destination","runin","platform"]});var ji=e("ab",(e=>(e.CLOSE="CLOSE",e.STATION="STATION",e.STYLE="STYLE",e.BRANCH="BRANCH",e))(ji||{})),Si=e("D",(e=>(e.left="left",e.right="right",e))(Si||{})),Ni=e("S",(e=>(e.left="l",e.right="r",e))(Ni||{})),Oi=e("B",(e=>(e.through="through",e.nonThrough="nonthrough",e))(Oi||{})),Ai=e("m",(e=>(e.local="local",e.express="express",e.direct="direct",e))(Ai||{}));e("F",{airport:"Airport",hsr:"High speed rail",railway:"National rail",disney:"Disneyland resort",np360:"Ngong Ping 360"});var Ii=e("P",(e=>(e.gz1="gz1",e.gz28="gz28",e.gz2otis="gz2otis",e.gz3="gz3",e.gz4="gz4",e.gz5="gz5",e.gz1421="gz1421",e.gz6="gz6",e.gzgf="gzgf",e))(Ii||{})),Ei=e("K",(e=>(e.sh="sh",e.sh2020="sh2020",e))(Ei||{})),Di=e("aY",(e=>(e[e.PASSED=-1]="PASSED",e[e.CURRENT=0]="CURRENT",e[e.FUTURE=1]="FUTURE",e))(Di||{})),Li=e("aX",(e=>(e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT",e))(Li||{})),Ci=e("aG",(e=>(e.CANVAS_TO_SHOW="canvasToShow",e.CANVAS_SCALE="canvasScale",e.PARAM_BY_ID="param:",e.PARAM_CONFIG_BY_ID="paramConfig:",e.DO_NOT_SHOW_RMT_MSG="doNotShowRMTMsg",e))(Ci||{})),Ti=e("E",(e=>(e.APP_LOAD="APP_LOAD",e.STYLE_CHANGE="STYLE_CHANGE",e.OPEN_PARAM="OPEN_PARAM",e.NEW_PARAM="NEW_PARAM",e.UPLOAD_PARAM="UPLOAD_PARAM",e.OPEN_TEMPLATE="OPEN_TEMPLATE",e.REMOVE_PARAM="REMOVE_PARAM",e.UPDATE_PARAM_CONFIG="UPDATE_PARAM_CONFIG",e.ADD_STATION="ADD_STATION",e.REMOVE_STATION="REMOVE_STATION",e.ADD_BRANCH="ADD_BRANCH",e.AUTO_NUMBERING="AUTO_NUMBERING",e.REVERSE_STATIONS="REVERSE_STATIONS",e.CONNECT_BRANCH="CONNECT_BRANCH",e.DISCONNECT_BRANCH="DISCONNECT_BRANCH",e.SELECT_COLOUR="SELECT_COLOUR",e.DOWNLOAD_PARAM="DOWNLOAD_PARAM",e.DOWNLOAD_IMAGES="DOWNLOAD_IMAGES",e.APP_CLIP_VIEW_OPENED="APP_CLIP_VIEW_OPENED",e.APP_CLIP_VIEW_CLOSED="APP_CLIP_VIEW_CLOSED",e.APP_CLIP_VIEW_IMPORT="APP_CLIP_VIEW_IMPORT",e))(Ti||{}));const Ri={rmgStyle:zi.MTR,paramConfig:void 0,canvasScale:1,canvasToShow:Object.values(Mi),sidePanelMode:ji.CLOSE,selectedStation:"linestart",selectedColine:void 0,selectedBranch:0,isShareTrackEnabled:void 0,globalAlerts:{},isLoading:void 0},Pi=Re({name:"app",initialState:Ri,reducers:{setParamConfig:(e,a)=>{e.paramConfig=a.payload},updateParamModifiedTime:(e,a)=>{e.paramConfig&&(e.paramConfig.lastModified=a.payload)},setCanvasScale:(e,a)=>{e.canvasScale=a.payload},setCanvasToShow:(e,a)=>{e.canvasToShow=a.payload},setSidePanelMode:(e,a)=>{e.sidePanelMode=a.payload},setSelectedStation:(e,a)=>{e.selectedStation=a.payload},setSelectedColine:(e,a)=>{e.selectedColine=a.payload},setSelectedBranch:(e,a)=>{e.selectedBranch=a.payload},setIsShareTrackEnabled:(e,a)=>{e.isShareTrackEnabled=a.payload},setGlobalAlert:(e,a)=>{const{status:t,message:o,url:r,linkedApp:i}=a.payload;e.globalAlerts[t]={message:o,url:r,linkedApp:i}},closeGlobalAlert:(e,a)=>{delete e.globalAlerts[a.payload]},startLoading:e=>{e.isLoading=-1},setLoadingProgress:(e,a)=>{e.isLoading=a.payload},stopLoading:e=>{e.isLoading=void 0},openPaletteAppClip:(e,a)=>{e.paletteAppClipInput=a.payload,e.paletteAppClipOutput=void 0},closePaletteAppClip:e=>{e.paletteAppClipInput=void 0},onPaletteAppClipEmit:(e,a)=>{e.paletteAppClipOutput=a.payload,e.paletteAppClipInput=void 0}}}),{setParamConfig:_i,updateParamModifiedTime:Ui,setCanvasScale:Bi,setCanvasToShow:Hi,setSidePanelMode:Vi,setSelectedStation:Gi,setSelectedColine:Fi,setSelectedBranch:Yi,setIsShareTrackEnabled:Wi,setGlobalAlert:Qi,closeGlobalAlert:Ji,startLoading:$i,setLoadingProgress:Ki,stopLoading:Zi,openPaletteAppClip:qi,closePaletteAppClip:Xi,onPaletteAppClipEmit:en}=Pi.actions;e({av:_i,ay:Bi,ax:Hi,aa:Vi,ac:Gi,aE:Yi,aW:Wi,ag:Qi,aF:Ji,aq:Ki,ar:Zi,o:qi,ao:Xi,ap:en});const an=Pi.reducer;var tn;e("h",tn),function(e){e.black="#000",e.white="#fff"}(tn||e("h",tn={}));var on=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(il){i(il)}}function l(e){try{g(o.throw(e))}catch(il){i(il)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};let rn={};const nn=(e,a)=>on(void 0,void 0,void 0,(function*(){return yield((e,a)=>on(void 0,void 0,void 0,(function*(){if(e in rn)return rn[e];const t=yield fetch(e,a),o=yield t.json();return rn[e]=o,o})))(`/rmg-palette/resources/palettes/${e}.json`,{signal:a})}));var ln=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(il){i(il)}}function l(e){try{g(o.throw(e))}catch(il){i(il)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};e("aS",((e,a,t)=>ln(void 0,void 0,void 0,(function*(){const[a,t]=e;if("other"===a)return e;try{const o=(yield nn(a)).find((e=>e.id===t));return o?[a,t,o.colour,o.fg||tn.white]:(console.warn(`[rmg-palette] updateTheme(${a}, ${t}), line does not exist, returning old theme`),e)}catch(il){return console.warn(`[rmg-palette] updateTheme(${a}, ${t}), unexpected error occurs, returning old theme`,il),e}}))));let gn=e("a9",((e=21)=>{let a="",t=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)a+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[e]];return a}));const cn=e=>{switch(e){case zi.MTR:return["hongkong","twl","#E2231A",tn.white];case zi.GZMTR:return["guangzhou","gz1","#F3D03E",tn.black];case zi.SHMetro:return["shanghai","sh1","#E4002B",tn.white];default:return["other","other","#AAAAAA",tn.white]}},sn=e=>{switch(e){case"zh-Hans":return["1号线","Line 1"];case"zh-Hant":return["荃灣綫","Tsuen Wan Line"];default:return["地鐵線","Metro Line"]}},dn=e("aD",(e=>({localisedName:{zh:"未命名 "+e,en:"Unnamed "+e},num:"00",services:[Ai.local],parents:[],children:[],transfer:{groups:[{}],tick_direc:Ni.right,paid_area:!0},loop_pivot:!1,one_line:!0,int_padding:355,character_spacing:75}))),pn=e("aL",((e,a)=>{const t=dn("linestart");t.localisedName={en:"LEFT END"};const o=dn("lineend");o.localisedName={en:"RIGHT END"};const r=gn(6),i=dn(r);i.num="01";const n=gn(6),l=dn(n);return l.num="02",t.children=[r],i.parents=["linestart"],i.children=[n],l.parents=[r],l.children=["lineend"],o.parents=[n],{svgWidth:{destination:1200,runin:1200,railmap:1200,indoor:1200,platform:1200},svg_height:300,style:e,y_pc:50,padding:10,branchSpacingPct:33,direction:Ni.left,platform_num:"1",theme:cn(e),line_name:sn(a),current_stn_idx:n,stn_list:{linestart:t,[r]:i,[n]:l,lineend:o},namePosMTR:{isStagger:!0,isFlip:!0},customiseMTRDest:{isLegacy:!1,terminal:!1},line_num:"1",spanLineNum:!0,psd_num:"1",info_panel_type:e===zi.SHMetro?Ei.sh:Ii.gz1,direction_gz_x:40,direction_gz_y:70,coline:{},loop:!1,loop_info:{bank:!0,left_and_right_factor:1,bottom_factor:1}}})),un=Re({name:"param",initialState:pn(zi.MTR,"en"),reducers:{setSvgHeight:(e,a)=>{e.svg_height=a.payload},setSvgWidth:(e,a)=>{const{width:t,canvas:o}=a.payload;e.svgWidth[o]=t},setStyle:(e,a)=>{e.style=a.payload},setYPercentage:(e,a)=>{e.y_pc=a.payload},setBranchSpacingPct:(e,a)=>{e.branchSpacingPct=a.payload},setPaddingPercentage:(e,a)=>{e.padding=a.payload},setDirectionIndicatorX:(e,a)=>{e.direction_gz_x=a.payload},setDirectionIndicatorY:(e,a)=>{e.direction_gz_y=a.payload},setTheme:(e,a)=>{e.theme=a.payload},setLineName:(e,a)=>{e.line_name=a.payload},setDirection:(e,a)=>{e.direction=a.payload},setPlatform:(e,a)=>{e.platform_num=a.payload},setLineNum:(e,a)=>{e.line_num=a.payload},setSpanLineNum:(e,a)=>{e.spanLineNum=a.payload},setPsdNum:(e,a)=>{e.psd_num=a.payload},setPanelType:(e,a)=>{e.info_panel_type=a.payload},addNote:e=>{e.notesGZMTR=(e.notesGZMTR||[]).concat([["","",10,10,!1]])},updateNote:(e,a)=>{if(e.notesGZMTR){const{index:t,note:o}=a.payload;e.notesGZMTR[t]=o}},removeNote:(e,a)=>{e.notesGZMTR&&e.notesGZMTR.splice(a.payload,1)},staggerStationNames:(e,a)=>{e.namePosMTR.isStagger=a.payload},flipStationNames:(e,a)=>{void 0===a.payload?e.namePosMTR.isFlip=!Pe(e).namePosMTR.isFlip:e.namePosMTR.isFlip=a.payload},toggleLineNameBeforeDestination:(e,a)=>{e.customiseMTRDest.isLegacy=a.payload},customiseDestinationName:(e,a)=>{e.customiseMTRDest.terminal=a.payload},setLoop:(e,a)=>{e.loop_info={bank:!0,left_and_right_factor:0,bottom_factor:1},e.loop=a.payload},setLoopBank:(e,a)=>{e.loop_info.bank=a.payload},setLoopLeftAndRightFactor:(e,a)=>{e.loop_info.left_and_right_factor=a.payload},setLoopBottomFactor:(e,a)=>{e.loop_info.bottom_factor=a.payload},setLoopMidpointStation:(e,a)=>{e.loop_info.midpoint_station=a.payload},setLoopClockwise:(e,a)=>{e.loop_info.clockwise=a.payload},setCurrentStation:(e,a)=>{e.current_stn_idx=a.payload},setStation:(e,a)=>{e.stn_list[a.payload.id]=a.payload.station},setStations:(e,a)=>{e.stn_list=a.payload},setColine:(e,a)=>{e.coline=a.payload},setFullParam:(e,a)=>a.payload}}),{setSvgHeight:hn,setSvgWidth:fn,setStyle:vn,setYPercentage:mn,setBranchSpacingPct:bn,setPaddingPercentage:yn,setDirectionIndicatorX:wn,setDirectionIndicatorY:xn,setTheme:kn,setLineName:zn,setDirection:Mn,setPlatform:jn,setLineNum:Sn,setSpanLineNum:Nn,setPsdNum:On,setPanelType:An,addNote:In,updateNote:En,removeNote:Dn,staggerStationNames:Ln,flipStationNames:Cn,toggleLineNameBeforeDestination:Tn,customiseDestinationName:Rn,setLoop:Pn,setLoopBank:_n,setLoopLeftAndRightFactor:Un,setLoopBottomFactor:Bn,setLoopMidpointStation:Hn,setLoopClockwise:Vn,setCurrentStation:Gn,setStation:Fn,setStations:Yn,setColine:Wn,setFullParam:Qn}=un.actions;e({t:hn,q:fn,aC:vn,v:mn,y:bn,A:yn,C:wn,I:xn,J:kn,L:zn,V:Mn,Q:jn,N:Sn,O:Nn,T:On,U:An,a7:In,a5:En,a6:Dn,Y:Ln,W:Cn,Z:Tn,$:Rn,a0:Pn,a1:_n,a2:Un,a3:Bn,af:Hn,a4:Vn,ae:Gn,c:Yn,a8:Wn,s:Qn});const Jn=un.reducer,$n=Re({name:"helper",initialState:{depsStr:"",branches:[],routes:[],tpo:[]},reducers:{updateHelper:(e,a)=>{const t=(o=a.payload,Object.entries(o).map((([e,a])=>e+a.parents.toString()+a.children.toString()+JSON.stringify(a.branch))).join(""));var o,r;if(Pe(e).depsStr!==t){e.depsStr=t,console.log("Re-calculating routes..."),e.routes=(e=>{const a=["linestart"],t=[["linestart"]];let o=0;for(;a.length;){let r=a.shift(),i=t[o].slice(-1)[0]||null;for(i&&"linestart"!==r?t[o].push(r):t[o]=[r];"lineend"!==r;){i=r;const n=e[i].children;switch(n.length){case 1:r=n[0];break;case 2:{const l=e[i].branch.right,g=l[1];"through"===l[0]?(t.push(t[o].slice()),a.push(g)):0===o&&(t.push([i]),a.push(g)),r=n.filter((e=>e!==g))[0];break}}if(t[o].push(r),i===e[r].branch?.left?.[1]&&"nonthrough"===e[r].branch?.left?.[0])break}o++}return t})(a.payload),console.log("Re-calculating branches...");const o=(e=>{const a=["linestart"],t=[["linestart"]];let o=0;for(;a.length;){let r=a.shift(),i=t[o].slice(-1)[0]||null;for(i&&"linestart"!==r?t[o].push(r):t[o]=[r];"lineend"!==r;){i=r;const n=e[i].children;switch(n.length){case 1:r=n[0];break;case 2:{const l=e[i].branch.right,g=l[1];"through"===l[0]?(t.push([r]),a.push(g)):0===o&&(t.push([i]),a.push(g)),r=n.filter((e=>e!==g))[0];break}}if(t[o].push(r),i===e[r].branch?.left?.[1])break}o++}return t})(a.payload);Pe(e).branches.toString()!==o.toString()&&(e.branches=o,console.log("Re-calculating topology ordering..."),e.tpo=1===(r=o).length?r[0].slice(1,-1):r.reduce(((e,a)=>{const t=e.indexOf(a[a.length-1]);return[...e.slice(0,t),...a.slice(1),...e.slice(t+1)]}),["lineend"]).slice(0,-1))}}},extraReducers:e=>{e.addMatcher((e=>"param/setStations"===e.type),(()=>{}))}}),{updateHelper:Kn}=$n.actions;e("b",Kn);const Zn=$n.reducer,qn=_e({app:an,param:Jn,helper:Zn}),Xn=Ue(),el=((e={})=>Ve({reducer:qn,middleware:e=>e().prepend(Xn.middleware),preloadedState:e}))(),al=(e("d",(()=>Be())),e("u",He),Xn.startListening);window.rmgStore=el;const tl=e=>{(e=>{try{const a=Ft.storage.get(Ci.CANVAS_SCALE),t=Number(a);t>=.1&&e.dispatch(Bi(t))}catch(a){console.warn("Error in reading canvas scale. Initiating as 1...",a),e.dispatch(Bi(1))}})(e),(e=>{try{const a=Ft.storage.get(Ci.CANVAS_TO_SHOW);if(null!==a){const t=JSON.parse(a);if(Array.isArray(t))return void e.dispatch(Hi(t))}}catch(a){console.warn("Error in reading canvas to show. Initiating as all...",a)}})(e),al({predicate:(e,a,t)=>a.app.canvasScale.toString()!==t.app.canvasScale.toString(),effect:(e,a)=>{Ft.storage.set(Ci.CANVAS_SCALE,a.getState().app.canvasScale.toString())}}),al({predicate:(e,a,t)=>a.app.canvasToShow.toString()!==t.app.canvasToShow.toString(),effect:(e,a)=>{Ft.storage.set(Ci.CANVAS_TO_SHOW,JSON.stringify(a.getState().app.canvasToShow))}}),al({predicate:(e,a,t)=>JSON.stringify(a.param)!==JSON.stringify(t.param),effect:ol})},ol=(e,a)=>{const{id:t,...o}=a.getState().app.paramConfig??{};if(t){const e=Ft.storage.get(Ci.PARAM_BY_ID+t),r=JSON.stringify(a.getState().param);if(e!==r){console.log("ListenerMiddleware:: Writing param and paramConfig to localStorage, ID="+t),Ft.storage.set(Ci.PARAM_BY_ID+t,r);const e=Date.now();a.dispatch(Ui(e)),Ft.storage.set(Ci.PARAM_CONFIG_BY_ID+t,JSON.stringify({...o,lastModified:e}))}else console.log("ListenerMiddleware:: Do not write to localStorage as no changes in param, ID="+t)}};let rl;"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((e=>{e.unregister()})).catch((e=>{console.error(e.message)})),document.head.append(...["share",...Object.values(Mi)].map((e=>{const a=document.createElement("link");return a.rel="stylesheet",a.id="css_"+e,a}))),Ft.ready().then((()=>{tl(el),rl=Qt.createRoot(document.getElementById("root")),rl.render(r.jsx(Ae.StrictMode,{children:r.jsx(Ge,{store:el,children:r.jsx(Fe,{i18n:Xt,children:r.jsx(ki,{})})})})),Ft.injectUITools(),Ft.event(Ti.APP_LOAD,{isStandaloneWindow:Ft.isStandaloneWindow})})).catch((e=>{const a=document.querySelector("#root");a&&(a.innerHTML=`
\n Failed to load Rail Map Generator!\n
\n ${e.toString()}\n
\n Please contact us in \n GitHub.\n
`)}))}}})); +System.register(["./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js"],(function(e,a){"use strict";var t,o,r,i,n,l,g,c,s,d,p,u,h,f,v,m,b,y,w,x,k,z,M,j,S,N,O,A,I,E,D,L,C,T,R,P,_,U,B,H,V,G,F,Y,W,Q,J,$,K,Z,q,X,ee,ae,te,oe,re,ie,ne,le,ge,ce,se,de,pe,ue,he,fe,ve,me,be,ye,we,xe,ke,ze,Me,je,Se,Ne,Oe,Ae,Ie,Ee,De,Le,Ce,Te,Re,Pe,_e,Ue,Be,He,Ve,Ge,Fe;return{setters:[e=>{t=e.u,o=e.a,r=e.j,i=e.P,n=e.c,l=e.F,g=e.f,c=e.W,s=e.T,d=e.b,p=e.d,u=e.e,h=e.g,f=e.h,v=e.B,m=e.D,b=e.I,y=e.i,w=e.k,x=e.S,k=e.l,z=e.m,M=e.n,j=e.o,S=e.C,N=e.p,O=e.q,A=e.r,I=e.s,E=e.t,D=e.v,L=e.w,C=e.x,T=e.y,R=e.z,P=e.A,_=e.E,U=e.G,B=e.M,H=e.H,V=e.J,G=e.K,F=e.L,Y=e.N,W=e.O,Q=e.Q,J=e.R,$=e.U,K=e.V,Z=e.X,q=e.Y,X=e.Z,ee=e._,ae=e.$,te=e.a0,oe=e.a1,re=e.a2,ie=e.a3,ne=e.a4,le=e.a5,ge=e.a6,ce=e.a7,se=e.a8,de=e.a9,pe=e.aa,ue=e.ab,he=e.ac,fe=e.ad,ve=e.ae,me=e.af,be=e.ag,ye=e.ah,we=e.ai,xe=e.aj,ke=e.ak,ze=e.al,Me=e.am,je=e.an,Se=e.ao},e=>{Ne=e.f,Oe=e.i,Ae=e.a,Ie=e.d,Ee=e.u,De=e.H,Le=e.h,Ce=e.j,Te=e.N,Re=e.k,Pe=e.l,_e=e.m,Ue=e.n,Be=e.o,He=e.p,Ve=e.q,Ge=e.P,Fe=e.I}],execute:function(){var Ye=document.createElement("style");Ye.textContent='.ag-measurement-container{--ag-legacy-styles-loaded: "true"}.ag-icon{font-family:var(--ag-icon-font-family);font-weight:var(--ag-icon-font-weight);color:var(--ag-icon-font-color);font-size:var(--ag-icon-size);line-height:var(--ag-icon-size);font-style:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:var(--ag-icon-size);height:var(--ag-icon-size);position:relative}.ag-icon:before{content:"";font-family:inherit}.ag-icon:after{background:transparent var(--ag-icon-image, none) center/contain no-repeat;display:var(--ag-icon-image-display);opacity:var(--ag-icon-image-opacity, .9);position:absolute;top:0;right:0;bottom:0;left:0;content:""}.ag-icon-aggregation{font-family:var(--ag-icon-font-family-aggregation, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-aggregation, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-aggregation, var(--ag-icon-font-color))}.ag-icon-aggregation:before{content:var(--ag-icon-font-code-aggregation, "");display:var(--ag-icon-font-display-aggregation, var(--ag-icon-font-display))}.ag-icon-aggregation:after{background-image:var(--ag-icon-image-aggregation, var(--ag-icon-image));display:var(--ag-icon-image-display-aggregation, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-aggregation, var(--ag-icon-image-opacity, .9))}.ag-icon-arrows{font-family:var(--ag-icon-font-family-arrows, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-arrows, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-arrows, var(--ag-icon-font-color))}.ag-icon-arrows:before{content:var(--ag-icon-font-code-arrows, "");display:var(--ag-icon-font-display-arrows, var(--ag-icon-font-display))}.ag-icon-arrows:after{background-image:var(--ag-icon-image-arrows, var(--ag-icon-image));display:var(--ag-icon-image-display-arrows, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-arrows, var(--ag-icon-image-opacity, .9))}.ag-icon-asc{font-family:var(--ag-icon-font-family-asc, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-asc, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-asc, var(--ag-icon-font-color))}.ag-icon-asc:before{content:var(--ag-icon-font-code-asc, "");display:var(--ag-icon-font-display-asc, var(--ag-icon-font-display))}.ag-icon-asc:after{background-image:var(--ag-icon-image-asc, var(--ag-icon-image));display:var(--ag-icon-image-display-asc, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-asc, var(--ag-icon-image-opacity, .9))}.ag-icon-cancel{font-family:var(--ag-icon-font-family-cancel, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-cancel, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-cancel, var(--ag-icon-font-color))}.ag-icon-cancel:before{content:var(--ag-icon-font-code-cancel, "");display:var(--ag-icon-font-display-cancel, var(--ag-icon-font-display))}.ag-icon-cancel:after{background-image:var(--ag-icon-image-cancel, var(--ag-icon-image));display:var(--ag-icon-image-display-cancel, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-cancel, var(--ag-icon-image-opacity, .9))}.ag-icon-chart{font-family:var(--ag-icon-font-family-chart, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-chart, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-chart, var(--ag-icon-font-color))}.ag-icon-chart:before{content:var(--ag-icon-font-code-chart, "");display:var(--ag-icon-font-display-chart, var(--ag-icon-font-display))}.ag-icon-chart:after{background-image:var(--ag-icon-image-chart, var(--ag-icon-image));display:var(--ag-icon-image-display-chart, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-chart, var(--ag-icon-image-opacity, .9))}.ag-icon-checkbox-checked{font-family:var(--ag-icon-font-family-checkbox-checked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-checkbox-checked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-checkbox-checked, var(--ag-icon-font-color))}.ag-icon-checkbox-checked:before{content:var(--ag-icon-font-code-checkbox-checked, "");display:var(--ag-icon-font-display-checkbox-checked, var(--ag-icon-font-display))}.ag-icon-checkbox-checked:after{background-image:var(--ag-icon-image-checkbox-checked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-checked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-checked, var(--ag-icon-image-opacity, .9))}.ag-icon-checkbox-indeterminate{font-family:var(--ag-icon-font-family-checkbox-indeterminate, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-checkbox-indeterminate, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-checkbox-indeterminate, var(--ag-icon-font-color))}.ag-icon-checkbox-indeterminate:before{content:var(--ag-icon-font-code-checkbox-indeterminate, "");display:var(--ag-icon-font-display-checkbox-indeterminate, var(--ag-icon-font-display))}.ag-icon-checkbox-indeterminate:after{background-image:var(--ag-icon-image-checkbox-indeterminate, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-indeterminate, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-indeterminate, var(--ag-icon-image-opacity, .9))}.ag-icon-checkbox-unchecked{font-family:var(--ag-icon-font-family-checkbox-unchecked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-checkbox-unchecked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-checkbox-unchecked, var(--ag-icon-font-color))}.ag-icon-checkbox-unchecked:before{content:var(--ag-icon-font-code-checkbox-unchecked, "");display:var(--ag-icon-font-display-checkbox-unchecked, var(--ag-icon-font-display))}.ag-icon-checkbox-unchecked:after{background-image:var(--ag-icon-image-checkbox-unchecked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-unchecked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-unchecked, var(--ag-icon-image-opacity, .9))}.ag-icon-color-picker{font-family:var(--ag-icon-font-family-color-picker, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-color-picker, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-color-picker, var(--ag-icon-font-color))}.ag-icon-color-picker:before{content:var(--ag-icon-font-code-color-picker, "");display:var(--ag-icon-font-display-color-picker, var(--ag-icon-font-display))}.ag-icon-color-picker:after{background-image:var(--ag-icon-image-color-picker, var(--ag-icon-image));display:var(--ag-icon-image-display-color-picker, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-color-picker, var(--ag-icon-image-opacity, .9))}.ag-icon-columns{font-family:var(--ag-icon-font-family-columns, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-columns, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-columns, var(--ag-icon-font-color))}.ag-icon-columns:before{content:var(--ag-icon-font-code-columns, "");display:var(--ag-icon-font-display-columns, var(--ag-icon-font-display))}.ag-icon-columns:after{background-image:var(--ag-icon-image-columns, var(--ag-icon-image));display:var(--ag-icon-image-display-columns, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-columns, var(--ag-icon-image-opacity, .9))}.ag-icon-contracted{font-family:var(--ag-icon-font-family-contracted, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-contracted, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-contracted, var(--ag-icon-font-color))}.ag-icon-contracted:before{content:var(--ag-icon-font-code-contracted, "");display:var(--ag-icon-font-display-contracted, var(--ag-icon-font-display))}.ag-icon-contracted:after{background-image:var(--ag-icon-image-contracted, var(--ag-icon-image));display:var(--ag-icon-image-display-contracted, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-contracted, var(--ag-icon-image-opacity, .9))}.ag-icon-copy{font-family:var(--ag-icon-font-family-copy, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-copy, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-copy, var(--ag-icon-font-color))}.ag-icon-copy:before{content:var(--ag-icon-font-code-copy, "");display:var(--ag-icon-font-display-copy, var(--ag-icon-font-display))}.ag-icon-copy:after{background-image:var(--ag-icon-image-copy, var(--ag-icon-image));display:var(--ag-icon-image-display-copy, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-copy, var(--ag-icon-image-opacity, .9))}.ag-icon-cross{font-family:var(--ag-icon-font-family-cross, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-cross, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-cross, var(--ag-icon-font-color))}.ag-icon-cross:before{content:var(--ag-icon-font-code-cross, "");display:var(--ag-icon-font-display-cross, var(--ag-icon-font-display))}.ag-icon-cross:after{background-image:var(--ag-icon-image-cross, var(--ag-icon-image));display:var(--ag-icon-image-display-cross, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-cross, var(--ag-icon-image-opacity, .9))}.ag-icon-csv{font-family:var(--ag-icon-font-family-csv, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-csv, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-csv, var(--ag-icon-font-color))}.ag-icon-csv:before{content:var(--ag-icon-font-code-csv, "");display:var(--ag-icon-font-display-csv, var(--ag-icon-font-display))}.ag-icon-csv:after{background-image:var(--ag-icon-image-csv, var(--ag-icon-image));display:var(--ag-icon-image-display-csv, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-csv, var(--ag-icon-image-opacity, .9))}.ag-icon-cut{font-family:var(--ag-icon-font-family-cut, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-cut, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-cut, var(--ag-icon-font-color))}.ag-icon-cut:before{content:var(--ag-icon-font-code-cut, "");display:var(--ag-icon-font-display-cut, var(--ag-icon-font-display))}.ag-icon-cut:after{background-image:var(--ag-icon-image-cut, var(--ag-icon-image));display:var(--ag-icon-image-display-cut, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-cut, var(--ag-icon-image-opacity, .9))}.ag-icon-desc{font-family:var(--ag-icon-font-family-desc, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-desc, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-desc, var(--ag-icon-font-color))}.ag-icon-desc:before{content:var(--ag-icon-font-code-desc, "");display:var(--ag-icon-font-display-desc, var(--ag-icon-font-display))}.ag-icon-desc:after{background-image:var(--ag-icon-image-desc, var(--ag-icon-image));display:var(--ag-icon-image-display-desc, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-desc, var(--ag-icon-image-opacity, .9))}.ag-icon-excel{font-family:var(--ag-icon-font-family-excel, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-excel, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-excel, var(--ag-icon-font-color))}.ag-icon-excel:before{content:var(--ag-icon-font-code-excel, "");display:var(--ag-icon-font-display-excel, var(--ag-icon-font-display))}.ag-icon-excel:after{background-image:var(--ag-icon-image-excel, var(--ag-icon-image));display:var(--ag-icon-image-display-excel, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-excel, var(--ag-icon-image-opacity, .9))}.ag-icon-expanded{font-family:var(--ag-icon-font-family-expanded, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-expanded, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-expanded, var(--ag-icon-font-color))}.ag-icon-expanded:before{content:var(--ag-icon-font-code-expanded, "");display:var(--ag-icon-font-display-expanded, var(--ag-icon-font-display))}.ag-icon-expanded:after{background-image:var(--ag-icon-image-expanded, var(--ag-icon-image));display:var(--ag-icon-image-display-expanded, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-expanded, var(--ag-icon-image-opacity, .9))}.ag-icon-eye-slash{font-family:var(--ag-icon-font-family-eye-slash, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-eye-slash, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-eye-slash, var(--ag-icon-font-color))}.ag-icon-eye-slash:before{content:var(--ag-icon-font-code-eye-slash, "");display:var(--ag-icon-font-display-eye-slash, var(--ag-icon-font-display))}.ag-icon-eye-slash:after{background-image:var(--ag-icon-image-eye-slash, var(--ag-icon-image));display:var(--ag-icon-image-display-eye-slash, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-eye-slash, var(--ag-icon-image-opacity, .9))}.ag-icon-eye{font-family:var(--ag-icon-font-family-eye, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-eye, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-eye, var(--ag-icon-font-color))}.ag-icon-eye:before{content:var(--ag-icon-font-code-eye, "");display:var(--ag-icon-font-display-eye, var(--ag-icon-font-display))}.ag-icon-eye:after{background-image:var(--ag-icon-image-eye, var(--ag-icon-image));display:var(--ag-icon-image-display-eye, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-eye, var(--ag-icon-image-opacity, .9))}.ag-icon-filter{font-family:var(--ag-icon-font-family-filter, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-filter, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-filter, var(--ag-icon-font-color))}.ag-icon-filter:before{content:var(--ag-icon-font-code-filter, "");display:var(--ag-icon-font-display-filter, var(--ag-icon-font-display))}.ag-icon-filter:after{background-image:var(--ag-icon-image-filter, var(--ag-icon-image));display:var(--ag-icon-image-display-filter, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-filter, var(--ag-icon-image-opacity, .9))}.ag-icon-first{font-family:var(--ag-icon-font-family-first, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-first, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-first, var(--ag-icon-font-color))}.ag-icon-first:before{content:var(--ag-icon-font-code-first, "");display:var(--ag-icon-font-display-first, var(--ag-icon-font-display))}.ag-icon-first:after{background-image:var(--ag-icon-image-first, var(--ag-icon-image));display:var(--ag-icon-image-display-first, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-first, var(--ag-icon-image-opacity, .9))}.ag-icon-grip{font-family:var(--ag-icon-font-family-grip, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-grip, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-grip, var(--ag-icon-font-color))}.ag-icon-grip:before{content:var(--ag-icon-font-code-grip, "");display:var(--ag-icon-font-display-grip, var(--ag-icon-font-display))}.ag-icon-grip:after{background-image:var(--ag-icon-image-grip, var(--ag-icon-image));display:var(--ag-icon-image-display-grip, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-grip, var(--ag-icon-image-opacity, .9))}.ag-icon-group{font-family:var(--ag-icon-font-family-group, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-group, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-group, var(--ag-icon-font-color))}.ag-icon-group:before{content:var(--ag-icon-font-code-group, "");display:var(--ag-icon-font-display-group, var(--ag-icon-font-display))}.ag-icon-group:after{background-image:var(--ag-icon-image-group, var(--ag-icon-image));display:var(--ag-icon-image-display-group, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-group, var(--ag-icon-image-opacity, .9))}.ag-icon-last{font-family:var(--ag-icon-font-family-last, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-last, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-last, var(--ag-icon-font-color))}.ag-icon-last:before{content:var(--ag-icon-font-code-last, "");display:var(--ag-icon-font-display-last, var(--ag-icon-font-display))}.ag-icon-last:after{background-image:var(--ag-icon-image-last, var(--ag-icon-image));display:var(--ag-icon-image-display-last, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-last, var(--ag-icon-image-opacity, .9))}.ag-icon-left{font-family:var(--ag-icon-font-family-left, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-left, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-left, var(--ag-icon-font-color))}.ag-icon-left:before{content:var(--ag-icon-font-code-left, "");display:var(--ag-icon-font-display-left, var(--ag-icon-font-display))}.ag-icon-left:after{background-image:var(--ag-icon-image-left, var(--ag-icon-image));display:var(--ag-icon-image-display-left, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-left, var(--ag-icon-image-opacity, .9))}.ag-icon-linked{font-family:var(--ag-icon-font-family-linked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-linked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-linked, var(--ag-icon-font-color))}.ag-icon-linked:before{content:var(--ag-icon-font-code-linked, "");display:var(--ag-icon-font-display-linked, var(--ag-icon-font-display))}.ag-icon-linked:after{background-image:var(--ag-icon-image-linked, var(--ag-icon-image));display:var(--ag-icon-image-display-linked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-linked, var(--ag-icon-image-opacity, .9))}.ag-icon-loading{font-family:var(--ag-icon-font-family-loading, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-loading, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-loading, var(--ag-icon-font-color))}.ag-icon-loading:before{content:var(--ag-icon-font-code-loading, "");display:var(--ag-icon-font-display-loading, var(--ag-icon-font-display))}.ag-icon-loading:after{background-image:var(--ag-icon-image-loading, var(--ag-icon-image));display:var(--ag-icon-image-display-loading, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-loading, var(--ag-icon-image-opacity, .9))}.ag-icon-maximize{font-family:var(--ag-icon-font-family-maximize, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-maximize, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-maximize, var(--ag-icon-font-color))}.ag-icon-maximize:before{content:var(--ag-icon-font-code-maximize, "");display:var(--ag-icon-font-display-maximize, var(--ag-icon-font-display))}.ag-icon-maximize:after{background-image:var(--ag-icon-image-maximize, var(--ag-icon-image));display:var(--ag-icon-image-display-maximize, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-maximize, var(--ag-icon-image-opacity, .9))}.ag-icon-menu{font-family:var(--ag-icon-font-family-menu, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-menu, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-menu, var(--ag-icon-font-color))}.ag-icon-menu:before{content:var(--ag-icon-font-code-menu, "");display:var(--ag-icon-font-display-menu, var(--ag-icon-font-display))}.ag-icon-menu:after{background-image:var(--ag-icon-image-menu, var(--ag-icon-image));display:var(--ag-icon-image-display-menu, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-menu, var(--ag-icon-image-opacity, .9))}.ag-icon-minimize{font-family:var(--ag-icon-font-family-minimize, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-minimize, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-minimize, var(--ag-icon-font-color))}.ag-icon-minimize:before{content:var(--ag-icon-font-code-minimize, "");display:var(--ag-icon-font-display-minimize, var(--ag-icon-font-display))}.ag-icon-minimize:after{background-image:var(--ag-icon-image-minimize, var(--ag-icon-image));display:var(--ag-icon-image-display-minimize, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-minimize, var(--ag-icon-image-opacity, .9))}.ag-icon-next{font-family:var(--ag-icon-font-family-next, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-next, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-next, var(--ag-icon-font-color))}.ag-icon-next:before{content:var(--ag-icon-font-code-next, "");display:var(--ag-icon-font-display-next, var(--ag-icon-font-display))}.ag-icon-next:after{background-image:var(--ag-icon-image-next, var(--ag-icon-image));display:var(--ag-icon-image-display-next, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-next, var(--ag-icon-image-opacity, .9))}.ag-icon-none{font-family:var(--ag-icon-font-family-none, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-none, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-none, var(--ag-icon-font-color))}.ag-icon-none:before{content:var(--ag-icon-font-code-none, "");display:var(--ag-icon-font-display-none, var(--ag-icon-font-display))}.ag-icon-none:after{background-image:var(--ag-icon-image-none, var(--ag-icon-image));display:var(--ag-icon-image-display-none, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-none, var(--ag-icon-image-opacity, .9))}.ag-icon-not-allowed{font-family:var(--ag-icon-font-family-not-allowed, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-not-allowed, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-not-allowed, var(--ag-icon-font-color))}.ag-icon-not-allowed:before{content:var(--ag-icon-font-code-not-allowed, "");display:var(--ag-icon-font-display-not-allowed, var(--ag-icon-font-display))}.ag-icon-not-allowed:after{background-image:var(--ag-icon-image-not-allowed, var(--ag-icon-image));display:var(--ag-icon-image-display-not-allowed, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-not-allowed, var(--ag-icon-image-opacity, .9))}.ag-icon-paste{font-family:var(--ag-icon-font-family-paste, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-paste, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-paste, var(--ag-icon-font-color))}.ag-icon-paste:before{content:var(--ag-icon-font-code-paste, "");display:var(--ag-icon-font-display-paste, var(--ag-icon-font-display))}.ag-icon-paste:after{background-image:var(--ag-icon-image-paste, var(--ag-icon-image));display:var(--ag-icon-image-display-paste, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-paste, var(--ag-icon-image-opacity, .9))}.ag-icon-pin{font-family:var(--ag-icon-font-family-pin, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-pin, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-pin, var(--ag-icon-font-color))}.ag-icon-pin:before{content:var(--ag-icon-font-code-pin, "");display:var(--ag-icon-font-display-pin, var(--ag-icon-font-display))}.ag-icon-pin:after{background-image:var(--ag-icon-image-pin, var(--ag-icon-image));display:var(--ag-icon-image-display-pin, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-pin, var(--ag-icon-image-opacity, .9))}.ag-icon-pivot{font-family:var(--ag-icon-font-family-pivot, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-pivot, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-pivot, var(--ag-icon-font-color))}.ag-icon-pivot:before{content:var(--ag-icon-font-code-pivot, "");display:var(--ag-icon-font-display-pivot, var(--ag-icon-font-display))}.ag-icon-pivot:after{background-image:var(--ag-icon-image-pivot, var(--ag-icon-image));display:var(--ag-icon-image-display-pivot, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-pivot, var(--ag-icon-image-opacity, .9))}.ag-icon-previous{font-family:var(--ag-icon-font-family-previous, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-previous, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-previous, var(--ag-icon-font-color))}.ag-icon-previous:before{content:var(--ag-icon-font-code-previous, "");display:var(--ag-icon-font-display-previous, var(--ag-icon-font-display))}.ag-icon-previous:after{background-image:var(--ag-icon-image-previous, var(--ag-icon-image));display:var(--ag-icon-image-display-previous, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-previous, var(--ag-icon-image-opacity, .9))}.ag-icon-radio-button-off{font-family:var(--ag-icon-font-family-radio-button-off, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-radio-button-off, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-radio-button-off, var(--ag-icon-font-color))}.ag-icon-radio-button-off:before{content:var(--ag-icon-font-code-radio-button-off, "");display:var(--ag-icon-font-display-radio-button-off, var(--ag-icon-font-display))}.ag-icon-radio-button-off:after{background-image:var(--ag-icon-image-radio-button-off, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-off, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-off, var(--ag-icon-image-opacity, .9))}.ag-icon-radio-button-on{font-family:var(--ag-icon-font-family-radio-button-on, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-radio-button-on, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-radio-button-on, var(--ag-icon-font-color))}.ag-icon-radio-button-on:before{content:var(--ag-icon-font-code-radio-button-on, "");display:var(--ag-icon-font-display-radio-button-on, var(--ag-icon-font-display))}.ag-icon-radio-button-on:after{background-image:var(--ag-icon-image-radio-button-on, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-on, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-on, var(--ag-icon-image-opacity, .9))}.ag-icon-right{font-family:var(--ag-icon-font-family-right, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-right, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-right, var(--ag-icon-font-color))}.ag-icon-right:before{content:var(--ag-icon-font-code-right, "");display:var(--ag-icon-font-display-right, var(--ag-icon-font-display))}.ag-icon-right:after{background-image:var(--ag-icon-image-right, var(--ag-icon-image));display:var(--ag-icon-image-display-right, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-right, var(--ag-icon-image-opacity, .9))}.ag-icon-save{font-family:var(--ag-icon-font-family-save, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-save, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-save, var(--ag-icon-font-color))}.ag-icon-save:before{content:var(--ag-icon-font-code-save, "");display:var(--ag-icon-font-display-save, var(--ag-icon-font-display))}.ag-icon-save:after{background-image:var(--ag-icon-image-save, var(--ag-icon-image));display:var(--ag-icon-image-display-save, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-save, var(--ag-icon-image-opacity, .9))}.ag-icon-small-down{font-family:var(--ag-icon-font-family-small-down, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-down, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-down, var(--ag-icon-font-color))}.ag-icon-small-down:before{content:var(--ag-icon-font-code-small-down, "");display:var(--ag-icon-font-display-small-down, var(--ag-icon-font-display))}.ag-icon-small-down:after{background-image:var(--ag-icon-image-small-down, var(--ag-icon-image));display:var(--ag-icon-image-display-small-down, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-down, var(--ag-icon-image-opacity, .9))}.ag-icon-small-left{font-family:var(--ag-icon-font-family-small-left, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-left, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-left, var(--ag-icon-font-color))}.ag-icon-small-left:before{content:var(--ag-icon-font-code-small-left, "");display:var(--ag-icon-font-display-small-left, var(--ag-icon-font-display))}.ag-icon-small-left:after{background-image:var(--ag-icon-image-small-left, var(--ag-icon-image));display:var(--ag-icon-image-display-small-left, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-left, var(--ag-icon-image-opacity, .9))}.ag-icon-small-right{font-family:var(--ag-icon-font-family-small-right, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-right, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-right, var(--ag-icon-font-color))}.ag-icon-small-right:before{content:var(--ag-icon-font-code-small-right, "");display:var(--ag-icon-font-display-small-right, var(--ag-icon-font-display))}.ag-icon-small-right:after{background-image:var(--ag-icon-image-small-right, var(--ag-icon-image));display:var(--ag-icon-image-display-small-right, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-right, var(--ag-icon-image-opacity, .9))}.ag-icon-small-up{font-family:var(--ag-icon-font-family-small-up, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-small-up, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-small-up, var(--ag-icon-font-color))}.ag-icon-small-up:before{content:var(--ag-icon-font-code-small-up, "");display:var(--ag-icon-font-display-small-up, var(--ag-icon-font-display))}.ag-icon-small-up:after{background-image:var(--ag-icon-image-small-up, var(--ag-icon-image));display:var(--ag-icon-image-display-small-up, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-small-up, var(--ag-icon-image-opacity, .9))}.ag-icon-tick{font-family:var(--ag-icon-font-family-tick, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tick, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tick, var(--ag-icon-font-color))}.ag-icon-tick:before{content:var(--ag-icon-font-code-tick, "");display:var(--ag-icon-font-display-tick, var(--ag-icon-font-display))}.ag-icon-tick:after{background-image:var(--ag-icon-image-tick, var(--ag-icon-image));display:var(--ag-icon-image-display-tick, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tick, var(--ag-icon-image-opacity, .9))}.ag-icon-tree-closed{font-family:var(--ag-icon-font-family-tree-closed, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tree-closed, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tree-closed, var(--ag-icon-font-color))}.ag-icon-tree-closed:before{content:var(--ag-icon-font-code-tree-closed, "");display:var(--ag-icon-font-display-tree-closed, var(--ag-icon-font-display))}.ag-icon-tree-closed:after{background-image:var(--ag-icon-image-tree-closed, var(--ag-icon-image));display:var(--ag-icon-image-display-tree-closed, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tree-closed, var(--ag-icon-image-opacity, .9))}.ag-icon-tree-indeterminate{font-family:var(--ag-icon-font-family-tree-indeterminate, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tree-indeterminate, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tree-indeterminate, var(--ag-icon-font-color))}.ag-icon-tree-indeterminate:before{content:var(--ag-icon-font-code-tree-indeterminate, "");display:var(--ag-icon-font-display-tree-indeterminate, var(--ag-icon-font-display))}.ag-icon-tree-indeterminate:after{background-image:var(--ag-icon-image-tree-indeterminate, var(--ag-icon-image));display:var(--ag-icon-image-display-tree-indeterminate, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tree-indeterminate, var(--ag-icon-image-opacity, .9))}.ag-icon-tree-open{font-family:var(--ag-icon-font-family-tree-open, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-tree-open, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-tree-open, var(--ag-icon-font-color))}.ag-icon-tree-open:before{content:var(--ag-icon-font-code-tree-open, "");display:var(--ag-icon-font-display-tree-open, var(--ag-icon-font-display))}.ag-icon-tree-open:after{background-image:var(--ag-icon-image-tree-open, var(--ag-icon-image));display:var(--ag-icon-image-display-tree-open, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-tree-open, var(--ag-icon-image-opacity, .9))}.ag-icon-unlinked{font-family:var(--ag-icon-font-family-unlinked, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-unlinked, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-unlinked, var(--ag-icon-font-color))}.ag-icon-unlinked:before{content:var(--ag-icon-font-code-unlinked, "");display:var(--ag-icon-font-display-unlinked, var(--ag-icon-font-display))}.ag-icon-unlinked:after{background-image:var(--ag-icon-image-unlinked, var(--ag-icon-image));display:var(--ag-icon-image-display-unlinked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-unlinked, var(--ag-icon-image-opacity, .9))}.ag-icon-up{font-family:var(--ag-icon-font-family-up, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-up, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-up, var(--ag-icon-font-color))}.ag-icon-up:before{content:var(--ag-icon-font-code-up, "");display:var(--ag-icon-font-display-up, var(--ag-icon-font-display))}.ag-icon-up:after{background-image:var(--ag-icon-image-up, var(--ag-icon-image));display:var(--ag-icon-image-display-up, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-up, var(--ag-icon-image-opacity, .9))}.ag-icon-down{font-family:var(--ag-icon-font-family-down, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-down, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-down, var(--ag-icon-font-color))}.ag-icon-down:before{content:var(--ag-icon-font-code-down, "");display:var(--ag-icon-font-display-down, var(--ag-icon-font-display))}.ag-icon-down:after{background-image:var(--ag-icon-image-down, var(--ag-icon-image));display:var(--ag-icon-image-display-down, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-down, var(--ag-icon-image-opacity, .9))}.ag-icon-plus{font-family:var(--ag-icon-font-family-plus, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-plus, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-plus, var(--ag-icon-font-color))}.ag-icon-plus:before{content:var(--ag-icon-font-code-plus, "");display:var(--ag-icon-font-display-plus, var(--ag-icon-font-display))}.ag-icon-plus:after{background-image:var(--ag-icon-image-plus, var(--ag-icon-image));display:var(--ag-icon-image-display-plus, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-plus, var(--ag-icon-image-opacity, .9))}.ag-icon-minus{font-family:var(--ag-icon-font-family-minus, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-minus, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-minus, var(--ag-icon-font-color))}.ag-icon-minus:before{content:var(--ag-icon-font-code-minus, "");display:var(--ag-icon-font-display-minus, var(--ag-icon-font-display))}.ag-icon-minus:after{background-image:var(--ag-icon-image-minus, var(--ag-icon-image));display:var(--ag-icon-image-display-minus, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-minus, var(--ag-icon-image-opacity, .9))}.ag-icon-menu-alt{font-family:var(--ag-icon-font-family-menu-alt, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-menu-alt, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-menu-alt, var(--ag-icon-font-color))}.ag-icon-menu-alt:before{content:var(--ag-icon-font-code-menu-alt, "");display:var(--ag-icon-font-display-menu-alt, var(--ag-icon-font-display))}.ag-icon-menu-alt:after{background-image:var(--ag-icon-image-menu-alt, var(--ag-icon-image));display:var(--ag-icon-image-display-menu-alt, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-menu-alt, var(--ag-icon-image-opacity, .9))}.ag-icon-settings{font-family:var(--ag-icon-font-family-settings, var(--ag-icon-font-family));font-weight:var(--ag-icon-font-weight-settings, var(--ag-icon-font-weight));color:var(--ag-icon-font-color-settings, var(--ag-icon-font-color))}.ag-icon-settings:before{content:var(--ag-icon-font-code-settings, "");display:var(--ag-icon-font-display-settings, var(--ag-icon-font-display))}.ag-icon-settings:after{background-image:var(--ag-icon-image-settings, var(--ag-icon-image));display:var(--ag-icon-image-display-settings, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-settings, var(--ag-icon-image-opacity, .9))}.ag-icon-row-drag:before{content:var(--ag-icon-font-code-grip)}.ag-left-arrow:before{content:var(--ag-icon-font-code-left)}.ag-right-arrow:before{content:var(--ag-icon-font-code-right)}[class*=ag-theme-]{--ag-foreground-color: #000;--ag-data-color: var(--ag-foreground-color);--ag-secondary-foreground-color: var(--ag-foreground-color);--ag-header-foreground-color: var(--ag-secondary-foreground-color);--ag-disabled-foreground-color: rgba(0, 0, 0, .5);--ag-background-color: #fff;--ag-header-background-color: transparent;--ag-tooltip-background-color: transparent;--ag-subheader-background-color: transparent;--ag-subheader-toolbar-background-color: transparent;--ag-control-panel-background-color: transparent;--ag-side-button-selected-background-color: var(--ag-control-panel-background-color);--ag-selected-row-background-color: #bbb;--ag-odd-row-background-color: var(--ag-background-color);--ag-modal-overlay-background-color: rgba(255, 255, 255, .66);--ag-menu-background-color: var(--ag-background-color);--ag-menu-border-color: var(--ag-border-color);--ag-panel-background-color: var(--ag-background-color);--ag-panel-border-color: var(--ag-border-color);--ag-row-hover-color: transparent;--ag-column-hover-color: transparent;--ag-range-selection-border-color: var(--ag-foreground-color);--ag-range-selection-border-style: solid;--ag-range-selection-background-color: rgba(0, 0, 0, .2);--ag-range-selection-background-color-2: var(--ag-range-selection-background-color);--ag-range-selection-background-color-3: var(--ag-range-selection-background-color);--ag-range-selection-background-color-4: var(--ag-range-selection-background-color);--ag-range-selection-highlight-color: var(--ag-range-selection-border-color);--ag-selected-tab-underline-color: var(--ag-range-selection-border-color);--ag-selected-tab-underline-width: 0;--ag-selected-tab-underline-transition-speed: 0s;--ag-range-selection-chart-category-background-color: rgba(0, 255, 132, .1);--ag-range-selection-chart-background-color: rgba(0, 88, 255, .1);--ag-header-cell-hover-background-color: transparent;--ag-header-cell-moving-background-color: var(--ag-background-color);--ag-value-change-value-highlight-background-color: rgba(22, 160, 133, .5);--ag-value-change-delta-up-color: #43a047;--ag-value-change-delta-down-color: #e53935;--ag-row-loading-skeleton-effect-color: rgba(66, 66, 66, .2);--ag-chip-background-color: transparent;--ag-chip-border-color: var(--ag-chip-background-color);--ag-borders: solid 1px;--ag-border-color: rgba(0, 0, 0, .25);--ag-borders-critical: var(--ag-borders);--ag-borders-secondary: var(--ag-borders);--ag-secondary-border-color: var(--ag-border-color);--ag-row-border-style: solid;--ag-row-border-width: 1px;--ag-cell-horizontal-border: solid transparent;--ag-borders-input: var(--ag-borders-secondary);--ag-input-border-color: var(--ag-secondary-border-color);--ag-borders-input-invalid: solid 2px;--ag-input-border-color-invalid: var(--ag-invalid-color);--ag-borders-side-button: var(--ag-borders);--ag-border-radius: 0px;--ag-wrapper-border-radius: var(--ag-border-radius);--ag-row-border-color: var(--ag-secondary-border-color);--ag-header-column-separator-display: none;--ag-header-column-separator-height: 100%;--ag-header-column-separator-width: 1px;--ag-header-column-separator-color: var(--ag-secondary-border-color);--ag-header-column-resize-handle-display: none;--ag-header-column-resize-handle-height: 50%;--ag-header-column-resize-handle-width: 1px;--ag-header-column-resize-handle-color: var(--ag-secondary-border-color);--ag-invalid-color: red;--ag-input-disabled-border-color: var(--ag-input-border-color);--ag-input-disabled-background-color: transparent;--ag-checkbox-background-color: transparent;--ag-checkbox-border-radius: var(--ag-border-radius);--ag-checkbox-checked-color: var(--ag-foreground-color);--ag-checkbox-unchecked-color: var(--ag-foreground-color);--ag-checkbox-indeterminate-color: var(--ag-checkbox-unchecked-color);--ag-toggle-button-off-border-color: var(--ag-checkbox-unchecked-color);--ag-toggle-button-off-background-color: var(--ag-checkbox-unchecked-color);--ag-toggle-button-on-border-color: var(--ag-checkbox-checked-color);--ag-toggle-button-on-background-color: var(--ag-checkbox-checked-color);--ag-toggle-button-switch-background-color: var(--ag-background-color);--ag-toggle-button-switch-border-color: var(--ag-toggle-button-off-border-color);--ag-toggle-button-border-width: 1px;--ag-toggle-button-height: var(--ag-icon-size);--ag-toggle-button-width: calc(var(--ag-toggle-button-height) * 2);--ag-input-focus-box-shadow: none;--ag-input-focus-border-color: none;--ag-minichart-selected-chart-color: var(--ag-checkbox-checked-color);--ag-minichart-selected-page-color: var(--ag-checkbox-checked-color);--ag-grid-size: 4px;--ag-icon-size: 12px;--ag-icon-font-weight: normal;--ag-icon-font-color: var(--ag-foreground-color);--ag-icon-image-display: block;--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: var(--ag-grid-size);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-cell-widget-spacing: var(--ag-cell-horizontal-padding);--ag-row-height: calc(var(--ag-grid-size) * 6 + 1px);--ag-header-height: var(--ag-row-height);--ag-list-item-height: calc(var(--ag-grid-size) * 5);--ag-column-select-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));--ag-set-filter-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));--ag-advanced-filter-builder-indent-size: calc(var(--ag-grid-size) * 2 + var(--ag-icon-size));--ag-row-group-indent-size: calc(var(--ag-cell-widget-spacing) + var(--ag-icon-size));--ag-filter-tool-panel-group-indent: 16px;--ag-tab-min-width: 220px;--ag-chart-menu-panel-width: var(--ag-tab-min-width);--ag-menu-min-width: 181px;--ag-side-bar-panel-width: 200px;--ag-font-family: "Helvetica Neue", sans-serif;--ag-font-size: 14px;--ag-card-radius: var(--ag-border-radius);--ag-card-shadow: none;--ag-popup-shadow: 5px 5px 10px rgba(0, 0, 0, .3);--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4}.ag-root-wrapper,.ag-sticky-top,.ag-sticky-bottom,.ag-dnd-ghost{background-color:var(--ag-background-color)}.ag-sticky-bottom{border-top:var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width)}.ag-root-wrapper,.ag-popup{--ag-indentation-level: 0}[class*=ag-theme-]{-webkit-font-smoothing:antialiased;font-family:var(--ag-font-family);font-size:var(--ag-font-size);line-height:normal;color:var(--ag-foreground-color)}ag-grid,ag-grid-angular,ag-grid-ng2,ag-grid-polymer,ag-grid-aurelia{display:block}.ag-aria-description-container{z-index:9999;border:0px;clip:rect(1px,1px,1px,1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap}.ag-hidden{display:none!important}.ag-invisible{visibility:hidden!important}.ag-drag-handle{cursor:grab}.ag-column-drop-wrapper{display:flex}.ag-column-drop-horizontal-half-width{display:inline-block;width:50%!important}.ag-unselectable{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}.ag-tab{position:relative}.ag-tab-guard{position:absolute;width:0;height:0;display:block}.ag-virtual-list-viewport .ag-tab-guard{position:sticky}.ag-tab-guard-top{top:1px}.ag-tab-guard-bottom{bottom:1px}.ag-select-agg-func-popup{position:absolute}.ag-input-wrapper,.ag-picker-field-wrapper{display:flex;flex:1 1 auto;align-items:center;line-height:normal;position:relative}.ag-shake-left-to-right{animation-direction:alternate;animation-duration:.2s;animation-iteration-count:infinite;animation-name:ag-shake-left-to-right}@keyframes ag-shake-left-to-right{0%{padding-left:6px;padding-right:2px}to{padding-left:2px;padding-right:6px}}.ag-root-wrapper{cursor:default;position:relative;display:flex;flex-direction:column;overflow:hidden;white-space:normal}.ag-root-wrapper.ag-layout-normal{height:100%}.ag-watermark{position:absolute;bottom:20px;right:25px;opacity:.7;transition:opacity 1s ease-out 3s;color:#9b9b9b}.ag-watermark:before{content:"";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjA5IiBoZWlnaHQ9IjM2IiB2aWV3Qm94PSIwIDAgMjA5IDM2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTkyLjk5MyAyMy42NTgyVjE1LjcxMTdIMTc5LjQ1MkwxNzEuNTA1IDIzLjY1ODJIMTkyLjk5M1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTIwOC4yNSAzLjk1MDgxSDE5MS4yNzZMMTgzLjI2NiAxMS44OTczSDIwOC4yNVYzLjk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTYzLjYyMiAzMS42MDQ4TDE2Ny42OTEgMjcuNTM2MUgxODEuNDIzVjM1LjQ4MjdIMTYzLjYyMlYzMS42MDQ4WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTY2LjYxIDE5Ljc4MDNIMTc1LjM4M0wxODMuMzkzIDExLjgzMzdIMTY2LjYxVjE5Ljc4MDNaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xNTcuMDExIDMxLjYwNDdIMTYzLjYyMkwxNzEuNTA1IDIzLjY1ODJIMTU3LjAxMVYzMS42MDQ3WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTkxLjI3NiAzLjk1MDgxTDE4Ny4yMDggOC4wMTk0MUgxNjEuMjdWMC4wNzI4NzZIMTkxLjI3NlYzLjk1MDgxWiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMjAuODM5MSAzMC4yMDYxSDguMzc4OTJMNi4yMTc0NSAzNS41NDYySDAuNzUwMjQ0TDEyLjI1NjggOC41OTE1NUgxNy4wMjQ3TDI4LjUzMTMgMzUuNTQ2MkgyMy4wMDA1TDIwLjgzOTEgMzAuMjA2MVpNMTkuMTIyNyAyNS45NDY4TDE0LjYwOSAxNC45NDg4TDEwLjA5NTQgMjUuOTQ2OEgxOS4xMjI3WiIgZmlsbD0iIzlCOUI5QiIvPgo8cGF0aCBkPSJNMTA0LjQzNyAxOC41MDg5QzEwNi4wMjYgMTYuMTU2NyAxMTAuMDMxIDE1LjkwMjQgMTExLjY4NCAxNS45MDI0VjIwLjQ3OTZDMTA5LjY1IDIwLjQ3OTYgMTA3LjYxNSAyMC41NDMyIDEwNi40MDcgMjEuNDMzMkMxMDUuMiAyMi4zMjMyIDEwNC41NjQgMjMuNTMxMSAxMDQuNTY0IDI0Ljk5MzJWMzUuNTQ2Mkg5OS42MDUxVjE1LjkwMjRIMTA0LjM3M0wxMDQuNDM3IDE4LjUwODlaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xMTkuMzc2IDE1LjkwMjRIMTE0LjQxOFYzNS41NDYySDExOS4zNzZWMTUuOTAyNFoiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTExOS4zNzYgNy4xMjkzOUgxMTQuNDE4VjEyLjk3OEgxMTkuMzc2VjcuMTI5MzlaIiBmaWxsPSIjOUI5QjlCIi8+CjxwYXRoIGQ9Ik0xNDMuOTc5IDcuMTI5MzlWMzUuNTQ2MkgxMzkuMjExTDEzOS4wODQgMzIuNTU4M0MxMzguMzg0IDMzLjU3NTUgMTM3LjQ5NCAzNC40MDE5IDEzNi40MTQgMzUuMDM3NkMxMzUuMzMzIDM1LjYwOTggMTMzLjk5OCAzNS45Mjc2IDEzMi40NzIgMzUuOTI3NkMxMzEuMTM3IDM1LjkyNzYgMTI5Ljg2NiAzNS42NzMzIDEyOC43ODUgMzUuMjI4M0MxMjcuNjQxIDM0LjcxOTcgMTI2LjYyMyAzNC4wODQgMTI1Ljc5NyAzMy4xOTRDMTI0Ljk3MSAzMi4zMDQgMTI0LjI3MSAzMS4yMjMzIDEyMy44MjYgMzAuMDE1NEMxMjMuMzE4IDI4LjgwNzUgMTIzLjEyNyAyNy40MDkgMTIzLjEyNyAyNS44ODMyQzEyMy4xMjcgMjQuMzU3NSAxMjMuMzgxIDIyLjk1ODkgMTIzLjgyNiAyMS42ODc0QzEyNC4zMzUgMjAuNDE2IDEyNC45NzEgMTkuMzM1MyAxMjUuNzk3IDE4LjQ0NTNDMTI2LjYyMyAxNy41NTUyIDEyNy42NDEgMTYuODU2IDEyOC43ODUgMTYuMzQ3NEMxMjkuOTI5IDE1LjgzODggMTMxLjEzNyAxNS41ODQ1IDEzMi40NzIgMTUuNTg0NUMxMzMuOTk4IDE1LjU4NDUgMTM1LjI2OSAxNS44Mzg4IDEzNi4zNSAxNi40MTA5QzEzNy40MzEgMTYuOTgzMSAxMzguMzIxIDE3Ljc0NTkgMTM5LjAyIDE4LjgyNjdWNy4xOTI5NUgxNDMuOTc5VjcuMTI5MzlaTTEzMy41NTMgMzEuNjY4M0MxMzUuMjA2IDMxLjY2ODMgMTM2LjQ3NyAzMS4wOTYyIDEzNy40OTQgMzAuMDE1NEMxMzguNTExIDI4LjkzNDcgMTM5LjAyIDI3LjQ3MjUgMTM5LjAyIDI1LjY5MjVDMTM5LjAyIDIzLjkxMjUgMTM4LjUxMSAyMi41MTM5IDEzNy40OTQgMjEuMzY5NkMxMzYuNDc3IDIwLjI4ODggMTM1LjIwNiAxOS43MTY3IDEzMy41NTMgMTkuNzE2N0MxMzEuOTYzIDE5LjcxNjcgMTMwLjYyOCAyMC4yODg4IDEyOS42NzUgMjEuMzY5NkMxMjguNjU4IDIyLjQ1MDMgMTI4LjE0OSAyMy45MTI1IDEyOC4xNDkgMjUuNjkyNUMxMjguMTQ5IDI3LjQ3MjUgMTI4LjY1OCAyOC44NzExIDEyOS42NzUgMjkuOTUxOEMxMzAuNjkyIDMxLjA5NjEgMTMxLjk2MyAzMS42NjgzIDEzMy41NTMgMzEuNjY4M1oiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTU3LjIwMjQgMjAuMzUyNUg0NC45MzNWMjQuNjExOEg1MS45MjU5QzUxLjczNTIgMjYuNzczMyA1MC45MDg4IDI4LjQyNjEgNDkuNTEwMiAyOS43NjExQzQ4LjExMTYgMzEuMDMyNiA0Ni4zMzE1IDMxLjY2ODMgNDQuMDQyOSAzMS42NjgzQzQyLjc3MTUgMzEuNjY4MyA0MS41NjM2IDMxLjQxNCA0MC41NDY1IDMwLjk2OUMzOS40NjU3IDMwLjUyNCAzOC41NzU3IDI5Ljg4ODMgMzcuODEyOSAyOC45OTgzQzM3LjA1IDI4LjE3MTggMzYuNDc3OCAyNy4xNTQ3IDM2LjAzMjggMjUuOTQ2OEMzNS41ODc4IDI0LjczODkgMzUuMzk3MSAyMy40Njc1IDM1LjM5NzEgMjIuMDA1M0MzNS4zOTcxIDIwLjU0MzIgMzUuNTg3OCAxOS4yNzE3IDM2LjAzMjggMTguMDYzOEMzNi40MTQzIDE2Ljg1NiAzNy4wNSAxNS45MDI0IDM3LjgxMjkgMTUuMDEyNEMzOC41NzU3IDE0LjE4NTkgMzkuNDY1NyAxMy41NTAyIDQwLjU0NjUgMTMuMDQxNkM0MS42MjcyIDEyLjU5NjYgNDIuNzcxNSAxMi4zNDIzIDQ0LjEwNjUgMTIuMzQyM0M0Ni43NzY2IDEyLjM0MjMgNDguODEwOSAxMi45NzggNTAuMjA5NSAxNC4yNDk1TDUzLjUxNTIgMTAuOTQzOEM1MS4wMzU5IDkuMDM2NTkgNDcuODU3MyA4LjAxOTQxIDQ0LjEwNjUgOC4wMTk0MUM0Mi4wMDg2IDguMDE5NDEgNDAuMTAxNSA4LjMzNzI5IDM4LjM4NSA5LjAzNjU5QzM2LjY2ODYgOS43MzU4OCAzNS4yMDY0IDEwLjYyNTkgMzMuOTk4NSAxMS44MzM3QzMyLjc5MDYgMTMuMDQxNiAzMS44MzcxIDE0LjUwMzggMzEuMjAxNCAxNi4yMjAzQzMwLjU2NTYgMTcuOTM2NyAzMC4yNDc4IDE5Ljg0MzggMzAuMjQ3OCAyMS44NzgyQzMwLjI0NzggMjMuOTEyNSAzMC41NjU2IDI1LjgxOTcgMzEuMjY0OSAyNy41MzYxQzMxLjk2NDIgMjkuMjUyNiAzMi44NTQyIDMwLjcxNDcgMzQuMDYyMSAzMS45MjI2QzM1LjI3IDMzLjEzMDUgMzYuNzMyMSAzNC4wODQxIDM4LjQ0ODYgMzQuNzE5OEM0MC4xNjUgMzUuNDE5MSA0Mi4wNzIyIDM1LjczNyA0NC4xMDY1IDM1LjczN0M0Ni4xNDA4IDM1LjczNyA0Ny45ODQ0IDM1LjQxOTEgNDkuNjM3MyAzNC43MTk4QzUxLjI5MDIgMzQuMDIwNSA1Mi42ODg4IDMzLjEzMDUgNTMuODMzMSAzMS45MjI2QzU0Ljk3NzQgMzAuNzE0NyA1NS44Njc0IDI5LjI1MjYgNTYuNTAzMSAyNy41MzYxQzU3LjEzODggMjUuODE5NyA1Ny40NTY3IDIzLjkxMjUgNTcuNDU2NyAyMS44NzgyVjIxLjA1MTdDNTcuMjY2IDIwLjkyNDYgNTcuMjAyNCAyMC42MDY3IDU3LjIwMjQgMjAuMzUyNVoiIGZpbGw9IiM5QjlCOUIiLz4KPHBhdGggZD0iTTk1Ljk4MTUgMjAuMzUyNUg4My43MTIxVjI0LjYxMThIOTAuNzA1QzkwLjUxNDMgMjYuNzczMyA4OS42ODc5IDI4LjQyNjEgODguMjg5MyAyOS43NjExQzg2Ljg5MDcgMzEuMDMyNiA4NS4xMTA2IDMxLjY2ODMgODIuODIyIDMxLjY2ODNDODEuNTUwNiAzMS42NjgzIDgwLjM0MjcgMzEuNDE0IDc5LjMyNTYgMzAuOTY5Qzc4LjI0NDggMzAuNTI0IDc3LjM1NDggMjkuODg4MyA3Ni41OTIgMjguOTk4M0M3NS44MjkxIDI4LjE3MTggNzUuMjU3IDI3LjE1NDcgNzQuODExOSAyNS45NDY4Qzc0LjM2NjkgMjQuNzM4OSA3NC4xNzYyIDIzLjQ2NzUgNzQuMTc2MiAyMi4wMDUzQzc0LjE3NjIgMjAuNTQzMiA3NC4zNjY5IDE5LjI3MTcgNzQuODExOSAxOC4wNjM4Qzc1LjE5MzQgMTYuODU2IDc1LjgyOTEgMTUuOTAyNCA3Ni41OTIgMTUuMDEyNEM3Ny4zNTQ4IDE0LjE4NTkgNzguMjQ0OCAxMy41NTAyIDc5LjMyNTYgMTMuMDQxNkM4MC40MDYzIDEyLjU5NjYgODEuNTUwNiAxMi4zNDIzIDgyLjg4NTYgMTIuMzQyM0M4NS41NTU3IDEyLjM0MjMgODcuNTkgMTIuOTc4IDg4Ljk4ODYgMTQuMjQ5NUw5Mi4yOTQzIDEwLjk0MzhDODkuODE1IDkuMDM2NTkgODYuNjM2NCA4LjAxOTQxIDgyLjg4NTYgOC4wMTk0MUM4MC43ODc4IDguMDE5NDEgNzguODgwNiA4LjMzNzI5IDc3LjE2NDEgOS4wMzY1OUM3NS40NDc3IDkuNzM1ODggNzMuOTg1NSAxMC42MjU5IDcyLjc3NzYgMTEuODMzN0M3MS41Njk4IDEzLjA0MTYgNzAuNjE2MiAxNC41MDM4IDY5Ljk4MDUgMTYuMjIwM0M2OS4zNDQ3IDE3LjkzNjcgNjkuMDI2OSAxOS44NDM4IDY5LjAyNjkgMjEuODc4MkM2OS4wMjY5IDIzLjkxMjUgNjkuMzQ0NyAyNS44MTk3IDcwLjA0NCAyNy41MzYxQzcwLjc0MzMgMjkuMjUyNiA3MS42MzM0IDMwLjcxNDcgNzIuODQxMiAzMS45MjI2Qzc0LjA0OTEgMzMuMTMwNSA3NS41MTEyIDM0LjA4NDEgNzcuMjI3NyAzNC43MTk4Qzc4Ljk0NDEgMzUuNDE5MSA4MC44NTEzIDM1LjczNyA4Mi44ODU2IDM1LjczN0M4NC45MiAzNS43MzcgODYuNzYzNiAzNS40MTkxIDg4LjQxNjQgMzQuNzE5OEM5MC4wNjkzIDM0LjAyMDUgOTEuNDY3OSAzMy4xMzA1IDkyLjYxMjIgMzEuOTIyNkM5My43NTY1IDMwLjcxNDcgOTQuNjQ2NSAyOS4yNTI2IDk1LjI4MjIgMjcuNTM2MUM5NS45MTggMjUuODE5NyA5Ni4yMzU4IDIzLjkxMjUgOTYuMjM1OCAyMS44NzgyVjIxLjA1MTdDOTYuMDQ1MSAyMC45MjQ2IDk1Ljk4MTUgMjAuNjA2NyA5NS45ODE1IDIwLjM1MjVaIiBmaWxsPSIjOUI5QjlCIi8+Cjwvc3ZnPgo=);background-repeat:no-repeat;background-size:170px 40px;display:block;height:40px;width:170px}.ag-watermark-text{opacity:.5;font-weight:700;font-family:Impact,sans-serif;font-size:19px;padding-left:.7rem}.ag-root-wrapper-body{display:flex;flex-direction:row}.ag-root-wrapper-body.ag-layout-normal{flex:1 1 auto;height:0;min-height:0}.ag-root{position:relative;display:flex;flex-direction:column}.ag-root.ag-layout-normal,.ag-root.ag-layout-auto-height{overflow:hidden;flex:1 1 auto;width:0}.ag-root.ag-layout-normal{height:100%}.ag-header-viewport,.ag-floating-top-viewport,.ag-body-viewport,.ag-center-cols-viewport,.ag-floating-bottom-viewport,.ag-body-horizontal-scroll-viewport,.ag-body-vertical-scroll-viewport,.ag-virtual-list-viewport,.ag-sticky-top-viewport,.ag-sticky-bottom-viewport{position:relative;height:100%;min-width:0px;overflow:hidden;flex:1 1 auto}.ag-body-viewport,.ag-center-cols-viewport,.ag-header-viewport,.ag-floating-top-viewport,.ag-floating-bottom-viewport,.ag-sticky-top-viewport,.ag-sticky-bottom-viewport{overflow-x:auto;-ms-overflow-style:none!important;scrollbar-width:none!important}.ag-body-viewport::-webkit-scrollbar,.ag-center-cols-viewport::-webkit-scrollbar,.ag-header-viewport::-webkit-scrollbar,.ag-floating-top-viewport::-webkit-scrollbar,.ag-floating-bottom-viewport::-webkit-scrollbar,.ag-sticky-top-viewport::-webkit-scrollbar,.ag-sticky-bottom-viewport::-webkit-scrollbar{display:none!important}.ag-body-viewport{display:flex;overflow-x:hidden}.ag-body-viewport.ag-layout-normal{overflow-y:auto;-webkit-overflow-scrolling:touch}.ag-sticky-top-container,.ag-sticky-bottom-container{min-height:1px}.ag-center-cols-viewport{min-height:100%;width:100%}.ag-body-horizontal-scroll-viewport{overflow-x:scroll}.ag-body-vertical-scroll-viewport{overflow-y:scroll}.ag-virtual-list-viewport{overflow:auto;width:100%}.ag-header-container,.ag-floating-top-container,.ag-body-container,.ag-pinned-right-cols-container,.ag-center-cols-container,.ag-pinned-left-cols-container,.ag-floating-bottom-container,.ag-body-horizontal-scroll-container,.ag-body-vertical-scroll-container,.ag-full-width-container,.ag-floating-bottom-full-width-container,.ag-virtual-list-container,.ag-sticky-top-container,.ag-sticky-bottom-container{position:relative}.ag-header-container,.ag-floating-top-container,.ag-floating-bottom-container,.ag-sticky-top-container,.ag-sticky-bottom-container{height:100%;white-space:nowrap}.ag-center-cols-container,.ag-pinned-right-cols-container{display:block}.ag-body-horizontal-scroll-container{height:100%}.ag-body-vertical-scroll-container{width:100%}.ag-full-width-container,.ag-floating-top-full-width-container,.ag-floating-bottom-full-width-container,.ag-sticky-top-full-width-container,.ag-sticky-bottom-full-width-container{position:absolute;top:0;pointer-events:none}.ag-ltr .ag-full-width-container,.ag-ltr .ag-floating-top-full-width-container,.ag-ltr .ag-floating-bottom-full-width-container,.ag-ltr .ag-sticky-top-full-width-container,.ag-ltr .ag-sticky-bottom-full-width-container{left:0}.ag-rtl .ag-full-width-container,.ag-rtl .ag-floating-top-full-width-container,.ag-rtl .ag-floating-bottom-full-width-container,.ag-rtl .ag-sticky-top-full-width-container,.ag-rtl .ag-sticky-bottom-full-width-container{right:0}.ag-full-width-container{width:100%}.ag-floating-bottom-full-width-container,.ag-floating-top-full-width-container{display:inline-block;overflow:hidden;height:100%;width:100%}.ag-virtual-list-container{overflow:hidden}.ag-body{position:relative;display:flex;flex:1 1 auto;flex-direction:row!important;min-height:0}.ag-body-horizontal-scroll,.ag-body-vertical-scroll{min-height:0;min-width:0;display:flex;position:relative}.ag-body-horizontal-scroll.ag-scrollbar-invisible,.ag-body-vertical-scroll.ag-scrollbar-invisible{position:absolute;bottom:0}.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar,.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar{opacity:0;transition:opacity .4s;visibility:hidden}.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active,.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active{visibility:visible;opacity:1}.ag-body-horizontal-scroll{width:100%}.ag-body-horizontal-scroll.ag-scrollbar-invisible{left:0;right:0}.ag-body-vertical-scroll{height:100%}.ag-body-vertical-scroll.ag-scrollbar-invisible{top:0;z-index:10}.ag-ltr .ag-body-vertical-scroll.ag-scrollbar-invisible{right:0}.ag-rtl .ag-body-vertical-scroll.ag-scrollbar-invisible{left:0}.ag-force-vertical-scroll{overflow-y:scroll!important}.ag-horizontal-left-spacer,.ag-horizontal-right-spacer{height:100%;min-width:0;overflow-x:scroll}.ag-horizontal-left-spacer.ag-scroller-corner,.ag-horizontal-right-spacer.ag-scroller-corner{overflow-x:hidden}.ag-header,.ag-pinned-left-header,.ag-pinned-right-header{display:inline-block;overflow:hidden;position:relative}.ag-header-cell-sortable .ag-header-cell-label{cursor:pointer}.ag-header{display:flex;width:100%;white-space:nowrap}.ag-pinned-left-header,.ag-pinned-right-header{height:100%}.ag-header-row{position:absolute}.ag-header-row:not(.ag-header-row-column-group){overflow:hidden}.ag-header.ag-header-allow-overflow .ag-header-row{overflow:visible}.ag-header-cell{display:inline-flex;align-items:center;position:absolute;height:100%;overflow:hidden}.ag-header-cell.ag-header-active .ag-header-cell-menu-button,.ag-header-cell-filter-button{opacity:1}.ag-header-cell-menu-button:not(.ag-header-menu-always-show){transition:opacity .2s;opacity:0}.ag-header-group-cell-label,.ag-header-cell-label{display:flex;flex:1 1 auto;align-self:stretch;align-items:center;overflow:hidden}.ag-header-cell-label{text-overflow:ellipsis}.ag-header-group-cell-label.ag-sticky-label{position:sticky;flex:none;max-width:100%;overflow:visible}.ag-header-group-text{overflow:hidden;text-overflow:ellipsis}.ag-header-cell-text{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.ag-header-group-cell .ag-header-cell-comp-wrapper{display:flex}.ag-header-cell:not(.ag-header-cell-auto-height) .ag-header-cell-comp-wrapper{height:100%;display:flex;align-items:center}.ag-header-cell-comp-wrapper{width:100%}.ag-header-cell-wrap-text .ag-header-cell-comp-wrapper{white-space:normal}.ag-header-cell-comp-wrapper-limited-height>div{overflow:hidden}.ag-right-aligned-header .ag-header-cell-label{flex-direction:row-reverse}.ag-header-cell-resize{position:absolute;z-index:2;height:100%;width:8px;top:0;cursor:ew-resize}.ag-ltr .ag-header-cell-resize{right:-3px}.ag-rtl .ag-header-cell-resize{left:-3px}.ag-pinned-left-header .ag-header-cell-resize{right:-3px}.ag-pinned-right-header .ag-header-cell-resize{left:-3px}.ag-header-select-all{display:flex}.ag-header-cell-menu-button,.ag-header-cell-filter-button,.ag-side-button-button,.ag-panel-title-bar-button,.ag-floating-filter-button-button{cursor:pointer}.ag-column-moving .ag-cell,.ag-column-moving .ag-header-cell{transition:left .2s}.ag-column-moving .ag-header-group-cell{transition:left .2s,width .2s}.ag-column-panel{display:flex;flex-direction:column;overflow:hidden;flex:1 1 auto}.ag-column-select{position:relative;display:flex;flex-direction:column;overflow:hidden;flex:3 1 0px}.ag-column-select-header{position:relative;display:flex;flex:none}.ag-column-select-header-icon{position:relative}.ag-column-select-header-filter-wrapper{flex:1 1 auto}.ag-column-select-header-filter{width:100%}.ag-column-select-list{flex:1 1 0px;overflow:hidden}.ag-column-drop{position:relative;display:inline-flex;align-items:center;overflow:auto;width:100%}.ag-column-drop-list{display:flex;align-items:center}.ag-column-drop-cell{position:relative;display:flex;align-items:center}.ag-column-drop-cell-text{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.ag-column-drop-vertical{display:flex;flex-direction:column;overflow:hidden;align-items:stretch;flex:1 1 0px}.ag-column-drop-vertical-title-bar{display:flex;align-items:center;flex:none}.ag-column-drop-vertical-list{position:relative;align-items:stretch;flex-grow:1;flex-direction:column;overflow-x:auto}.ag-column-drop-vertical-list>*{flex:none}.ag-column-drop-empty .ag-column-drop-vertical-list{overflow:hidden}.ag-column-drop-vertical-empty-message{display:block}.ag-column-drop.ag-column-drop-horizontal{white-space:nowrap;overflow:hidden}.ag-column-drop-cell-button{cursor:pointer}.ag-filter-toolpanel{flex:1 1 0px;min-width:0}.ag-filter-toolpanel-header{position:relative}.ag-filter-toolpanel-header,.ag-filter-toolpanel-search{display:flex;align-items:center}.ag-filter-toolpanel-header>*,.ag-filter-toolpanel-search>*{display:flex;align-items:center}.ag-filter-apply-panel{display:flex;justify-content:flex-end;overflow:hidden}.ag-row-animation .ag-row{transition:transform .4s,top .4s,opacity .2s}.ag-row-animation .ag-row.ag-after-created{transition:transform .4s,top .4s,height .4s,opacity .2s}.ag-row-no-animation .ag-row{transition:none}.ag-row{white-space:nowrap;width:100%}.ag-row-loading{display:flex;align-items:center}.ag-row-position-absolute{position:absolute}.ag-row-position-relative{position:relative}.ag-full-width-row{overflow:hidden;pointer-events:all}.ag-row-inline-editing{z-index:1}.ag-row-dragging{z-index:2}.ag-stub-cell{display:flex;align-items:center}.ag-cell{display:inline-block;position:absolute;white-space:nowrap;height:100%}.ag-cell-value{flex:1 1 auto}.ag-cell-value,.ag-group-value{overflow:hidden;text-overflow:ellipsis}.ag-cell-wrap-text{white-space:normal;word-break:break-word}.ag-cell-wrapper{display:flex;align-items:center}.ag-cell-wrapper.ag-row-group{align-items:flex-start}.ag-sparkline-wrapper{position:absolute;height:100%;width:100%;left:0;top:0}.ag-sparkline-wrapper :where(canvas){position:absolute}.ag-full-width-row .ag-cell-wrapper.ag-row-group{height:100%;align-items:center}.ag-cell-inline-editing{z-index:1}.ag-cell-inline-editing .ag-cell-wrapper,.ag-cell-inline-editing .ag-cell-edit-wrapper,.ag-cell-inline-editing .ag-cell-editor,.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,.ag-cell-inline-editing .ag-cell-editor input{height:100%;width:100%;line-height:normal}.ag-cell .ag-icon{display:inline-block;vertical-align:middle}.ag-set-filter-item{display:flex;align-items:center;height:100%}.ag-set-filter-item-checkbox{display:flex;width:100%;height:100%}.ag-set-filter-group-icons{display:block}.ag-set-filter-group-icons>*{cursor:pointer}.ag-filter-body-wrapper{display:flex;flex-direction:column}.ag-filter-filter{flex:1 1 0px}.ag-filter-condition{display:flex;justify-content:center}.ag-floating-filter-body{position:relative;display:flex;flex:1 1 auto;height:100%}.ag-floating-filter-full-body{display:flex;flex:1 1 auto;height:100%;width:100%;align-items:center;overflow:hidden}.ag-floating-filter-full-body>div{flex:1 1 auto}.ag-floating-filter-input{align-items:center;display:flex;width:100%}.ag-floating-filter-input>*{flex:1 1 auto}.ag-floating-filter-button{display:flex;flex:none}.ag-set-floating-filter-input input[disabled]{pointer-events:none}.ag-dnd-ghost{display:inline-flex;align-items:center;cursor:move;white-space:nowrap}.ag-overlay{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:2}.ag-overlay-panel{display:flex;height:100%;width:100%}.ag-overlay-wrapper{display:flex;flex:none;width:100%;height:100%;align-items:center;justify-content:center;text-align:center}.ag-overlay-loading-wrapper{pointer-events:all}.ag-popup-child{z-index:5;top:0}.ag-popup-editor{position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-large-text-input{display:block}.ag-virtual-list-item{position:absolute;width:100%}.ag-floating-top{overflow:hidden;white-space:nowrap;width:100%;position:relative;display:flex}.ag-pinned-left-floating-top,.ag-pinned-right-floating-top{display:inline-block;overflow:hidden;position:relative;min-width:0px}.ag-floating-bottom{overflow:hidden;white-space:nowrap;width:100%;position:relative;display:flex}.ag-pinned-left-floating-bottom,.ag-pinned-right-floating-bottom{display:inline-block;overflow:hidden;position:relative;min-width:0px}.ag-sticky-top,.ag-sticky-bottom{position:absolute;display:flex;width:100%;overflow:hidden;height:0px}.ag-sticky-bottom{box-sizing:content-box!important}.ag-pinned-left-sticky-top,.ag-pinned-right-sticky-top{position:relative;height:100%;overflow:hidden}.ag-sticky-top-full-width-container,.ag-sticky-bottom-full-width-container{overflow:hidden;width:100%;height:100%}.ag-dialog,.ag-panel{display:flex;flex-direction:column;position:relative;overflow:hidden}.ag-panel-title-bar{display:flex;flex:none;align-items:center;cursor:default}.ag-panel-title-bar-title{flex:1 1 auto}.ag-panel-title-bar-buttons{display:flex}.ag-panel-title-bar-button{cursor:pointer}.ag-panel-content-wrapper{display:flex;flex:1 1 auto;position:relative;overflow:hidden}.ag-dialog{position:absolute}.ag-resizer{position:absolute;pointer-events:none;z-index:1;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-resizer.ag-resizer-topLeft{top:0;left:0;height:5px;width:5px;cursor:nwse-resize}.ag-resizer.ag-resizer-top{top:0;left:5px;right:5px;height:5px;cursor:ns-resize}.ag-resizer.ag-resizer-topRight{top:0;right:0;height:5px;width:5px;cursor:nesw-resize}.ag-resizer.ag-resizer-right{top:5px;right:0;bottom:5px;width:5px;cursor:ew-resize}.ag-resizer.ag-resizer-bottomRight{bottom:0;right:0;height:5px;width:5px;cursor:nwse-resize}.ag-resizer.ag-resizer-bottom{bottom:0;left:5px;right:5px;height:5px;cursor:ns-resize}.ag-resizer.ag-resizer-bottomLeft{bottom:0;left:0;height:5px;width:5px;cursor:nesw-resize}.ag-resizer.ag-resizer-left{left:0;top:5px;bottom:5px;width:5px;cursor:ew-resize}.ag-tooltip,.ag-tooltip-custom{position:absolute;z-index:99999}.ag-tooltip:not(.ag-tooltip-interactive),.ag-tooltip-custom:not(.ag-tooltip-interactive){pointer-events:none}.ag-value-slide-out{margin-right:5px;opacity:1;transition:opacity 3s,margin-right 3s;transition-timing-function:linear}.ag-value-slide-out-end{margin-right:10px;opacity:0}.ag-opacity-zero{opacity:0!important}.ag-menu{max-height:100%;overflow-y:auto;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-menu-column-select-wrapper{height:265px;overflow:auto}.ag-menu-column-select-wrapper .ag-column-select{height:100%}.ag-dialog .ag-panel-content-wrapper .ag-column-select{user-select:none}.ag-menu-list{display:table;width:100%}.ag-menu-option,.ag-menu-separator{display:table-row}.ag-menu-option-part,.ag-menu-separator-part{display:table-cell;vertical-align:middle}.ag-menu-option-text{white-space:nowrap}.ag-menu-option-custom{display:contents}.ag-compact-menu-option{width:100%;display:flex;flex-wrap:nowrap}.ag-compact-menu-option-text{white-space:nowrap;flex:1 1 auto}.ag-context-menu-loading-icon{position:absolute;pointer-events:none}.ag-pill-container{display:flex;gap:.25rem;flex-wrap:nowrap}.ag-pill{display:flex;white-space:nowrap;padding:0 .25rem;align-items:center}.ag-pill .ag-pill-button{border:none;padding:0}.ag-rich-select{cursor:default;outline:none;height:100%}.ag-rich-select-value{display:flex;align-items:center;height:100%}.ag-rich-select-value .ag-picker-field-display{overflow:hidden;text-overflow:ellipsis}.ag-rich-select-value .ag-picker-field-display.ag-display-as-placeholder{opacity:.5}.ag-rich-select-list{position:relative}.ag-rich-select-list .ag-loading-text{min-height:2rem}.ag-rich-select-row{display:flex;flex:1 1 auto;align-items:center;white-space:nowrap;overflow:hidden;height:100%}.ag-rich-select-field-input{flex:1 1 auto}.ag-rich-select-field-input .ag-input-field-input{padding:0!important;border:none!important;box-shadow:none!important;text-overflow:ellipsis}.ag-rich-select-field-input .ag-input-field-input::placeholder{opacity:.8}.ag-autocomplete{align-items:center;display:flex}.ag-autocomplete>*{flex:1 1 auto}.ag-autocomplete-list-popup{position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-autocomplete-list{position:relative}.ag-autocomplete-virtual-list-item{display:flex}.ag-autocomplete-row{display:flex;flex:1 1 auto;align-items:center;overflow:hidden}.ag-autocomplete-row-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-paging-panel{align-items:center;display:flex;justify-content:flex-end}.ag-paging-page-summary-panel{display:flex;align-items:center}.ag-paging-button{position:relative}.ag-disabled .ag-paging-page-summary-panel{pointer-events:none}.ag-tool-panel-wrapper{display:flex;overflow-y:auto;overflow-x:hidden;cursor:default;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-column-select-column,.ag-column-select-column-group,.ag-select-agg-func-item{position:relative;align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;height:100%}.ag-column-select-column>*,.ag-column-select-column-group>*,.ag-select-agg-func-item>*{flex:none}.ag-select-agg-func-item,.ag-column-select-column-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-column-select-checkbox{display:flex}.ag-tool-panel-horizontal-resize{cursor:ew-resize;height:100%;position:absolute;top:0;width:5px;z-index:1}.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize{right:-3px}.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize,.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize{left:-3px}.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize{right:-3px}.ag-details-row{width:100%}.ag-details-row-fixed-height{height:100%}.ag-details-grid{width:100%}.ag-details-grid-fixed-height{height:100%}.ag-header-group-cell{display:flex;align-items:center;height:100%;position:absolute}.ag-header-group-cell-no-group.ag-header-span-height{display:none}.ag-cell-label-container{display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;height:100%;width:100%}.ag-header-group-cell-label,.ag-cell-label-container{padding:5px 0}.ag-right-aligned-header .ag-cell-label-container{flex-direction:row}.ag-right-aligned-header .ag-header-cell-text{text-align:end}.ag-side-bar{display:flex;flex-direction:row-reverse}.ag-side-bar-left{order:-1;flex-direction:row}.ag-side-button-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-wrap:nowrap;white-space:nowrap;outline:none;cursor:pointer}.ag-side-button-label{writing-mode:vertical-lr}.ag-status-bar{display:flex;justify-content:space-between;overflow:hidden}.ag-status-panel{display:inline-flex}.ag-status-name-value{white-space:nowrap}.ag-status-bar-left,.ag-status-bar-center,.ag-status-bar-right{display:inline-flex}.ag-icon{display:block;speak:none}.ag-group{position:relative;width:100%}.ag-group-title-bar{display:flex;align-items:center}.ag-group-title{display:inline;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ag-group-title-bar .ag-group-title{cursor:default}.ag-group-toolbar{display:flex;align-items:center}.ag-group-container{display:flex}.ag-disabled .ag-group-container{pointer-events:none}.ag-group-container-horizontal{flex-direction:row;flex-wrap:wrap}.ag-group-container-vertical{flex-direction:column}.ag-column-group-icons{display:block}.ag-column-group-icons>*{cursor:pointer}.ag-group-item-alignment-stretch .ag-group-item{align-items:stretch}.ag-group-item-alignment-start .ag-group-item{align-items:flex-start}.ag-group-item-alignment-end .ag-group-item{align-items:flex-end}.ag-toggle-button-icon{transition:right .3s;position:absolute;top:-1px}.ag-input-field,.ag-select{display:flex;flex-direction:row;align-items:center}.ag-input-field-input{flex:1 1 auto}.ag-floating-filter-input .ag-input-field-input[type=date]{width:1px}.ag-range-field,.ag-angle-select{display:flex;align-items:center}.ag-angle-select-wrapper{display:flex}.ag-angle-select-parent-circle{display:block;position:relative}.ag-angle-select-child-circle{position:absolute}.ag-slider-wrapper{display:flex}.ag-slider-wrapper .ag-input-field,.ag-picker-field-display{flex:1 1 auto}.ag-picker-field{display:flex;align-items:center}.ag-picker-field-icon{display:flex;border:0;padding:0;margin:0;cursor:pointer}.ag-picker-field-wrapper{overflow:hidden}.ag-label-align-right .ag-label{order:1}.ag-label-align-right>*{flex:none}.ag-label-align-top{flex-direction:column;align-items:flex-start}.ag-label-align-top>*{align-self:stretch}.ag-label-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.ag-color-panel{width:100%;display:flex;flex-direction:column;text-align:center}.ag-spectrum-color{flex:1 1 auto;position:relative;overflow:visible;cursor:default}.ag-spectrum-fill{position:absolute;top:0;left:0;right:0;bottom:0}.ag-spectrum-val{cursor:pointer}.ag-spectrum-dragger{position:absolute;pointer-events:none;cursor:pointer}.ag-spectrum-hue,.ag-spectrum-alpha{cursor:default}.ag-spectrum-hue-background{background:linear-gradient(to left,red 3%,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);width:100%;height:100%}.ag-spectrum-alpha{--ag-spectrum-alpha-background-checked: url(\'data:image/svg+xml;utf8,\')}.ag-spectrum-alpha-background{background:linear-gradient(to right,var(--ag-internal-spectrum-alpha-color-from),var(--ag-internal-spectrum-alpha-color-to)),var(--ag-spectrum-alpha-background-checked) top left/4px 4px;width:100%;height:100%}.ag-spectrum-tool{cursor:pointer;position:relative}.ag-spectrum-slider{position:absolute;pointer-events:none}.ag-spectrum-alpha .ag-spectrum-slider{background:linear-gradient(to bottom,var(--ag-internal-spectrum-alpha-color),var(--ag-internal-spectrum-alpha-color)) #fff}.ag-recent-colors{display:flex}.ag-recent-color{cursor:pointer}.ag-pill-select{display:flex;flex-direction:column}.ag-pill-select .ag-column-drop{flex:unset}.ag-ltr{direction:ltr}.ag-ltr .ag-body,.ag-ltr .ag-floating-top,.ag-ltr .ag-floating-bottom,.ag-ltr .ag-header,.ag-ltr .ag-sticky-top,.ag-ltr .ag-sticky-bottom,.ag-ltr .ag-body-viewport,.ag-ltr .ag-body-horizontal-scroll{flex-direction:row}.ag-rtl{direction:rtl}.ag-rtl .ag-body,.ag-rtl .ag-floating-top,.ag-rtl .ag-floating-bottom,.ag-rtl .ag-header,.ag-rtl .ag-sticky-top,.ag-rtl .ag-sticky-bottom,.ag-rtl .ag-body-viewport,.ag-rtl .ag-body-horizontal-scroll{flex-direction:row-reverse}.ag-rtl .ag-icon-contracted,.ag-rtl .ag-icon-expanded,.ag-rtl .ag-icon-tree-closed{display:block;transform:rotate(180deg)}.ag-body .ag-body-viewport{-webkit-overflow-scrolling:touch}.ag-measurement-container{width:0;overflow:hidden;visibility:hidden}.ag-measurement-container div{position:absolute}.ag-layout-print.ag-body{display:block;height:unset}.ag-layout-print.ag-root-wrapper{display:inline-block}.ag-layout-print .ag-body-vertical-scroll,.ag-layout-print .ag-body-horizontal-scroll{display:none}.ag-layout-print.ag-force-vertical-scroll{overflow-y:visible!important}@media print{.ag-root-wrapper.ag-layout-print{display:table}.ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,.ag-root-wrapper.ag-layout-print .ag-root,.ag-root-wrapper.ag-layout-print .ag-body-viewport,.ag-root-wrapper.ag-layout-print .ag-center-cols-container,.ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,.ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,.ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport{height:auto!important;overflow:hidden!important;display:block!important}.ag-root-wrapper.ag-layout-print .ag-row,.ag-root-wrapper.ag-layout-print .ag-cell{break-inside:avoid}}[class^=ag-],[class^=ag-]:focus,[class^=ag-]:after,[class^=ag-]:before{box-sizing:border-box;outline:none}[class^=ag-]::-ms-clear{display:none}.ag-checkbox .ag-input-wrapper,.ag-radio-button .ag-input-wrapper{overflow:visible}.ag-range-field .ag-input-wrapper{height:100%}.ag-toggle-button{flex:none;width:unset;min-width:unset}.ag-button{border-radius:0;color:var(--ag-foreground-color)}.ag-button:hover{background-color:transparent}.ag-ltr .ag-label-align-right .ag-label{margin-left:var(--ag-grid-size)}.ag-rtl .ag-label-align-right .ag-label{margin-right:var(--ag-grid-size)}input[class^=ag-]{margin:0;background-color:var(--ag-background-color)}textarea[class^=ag-],select[class^=ag-]{background-color:var(--ag-background-color)}input[class^=ag-]:not([type]),input[class^=ag-][type=text],input[class^=ag-][type=number],input[class^=ag-][type=tel],input[class^=ag-][type=date],input[class^=ag-][type=datetime-local],textarea[class^=ag-]{font-size:inherit;line-height:inherit;color:inherit;font-family:inherit;border:var(--ag-borders-input) var(--ag-input-border-color)}input[class^=ag-]:not([type]):disabled,input[class^=ag-][type=text]:disabled,input[class^=ag-][type=number]:disabled,input[class^=ag-][type=tel]:disabled,input[class^=ag-][type=date]:disabled,input[class^=ag-][type=datetime-local]:disabled,textarea[class^=ag-]:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}input[class^=ag-]:not([type]):focus,input[class^=ag-][type=text]:focus,input[class^=ag-][type=number]:focus,input[class^=ag-][type=tel]:focus,input[class^=ag-][type=date]:focus,input[class^=ag-][type=datetime-local]:focus,textarea[class^=ag-]:focus{outline:none;box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-input-focus-border-color)}input[class^=ag-]:not([type]):invalid,input[class^=ag-][type=text]:invalid,input[class^=ag-][type=number]:invalid,input[class^=ag-][type=tel]:invalid,input[class^=ag-][type=date]:invalid,input[class^=ag-][type=datetime-local]:invalid,textarea[class^=ag-]:invalid{border:var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid)}input[class^=ag-][type=number]:not(.ag-number-field-input-stepper){-moz-appearance:textfield}input[class^=ag-][type=number]:not(.ag-number-field-input-stepper)::-webkit-outer-spin-button,input[class^=ag-][type=number]:not(.ag-number-field-input-stepper)::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[class^=ag-][type=range]{padding:0}input[class^=ag-][type=button]:focus,button[class^=ag-]:focus{box-shadow:var(--ag-input-focus-box-shadow)}.ag-drag-handle{color:var(--ag-secondary-foreground-color)}.ag-list-item,.ag-virtual-list-item{height:var(--ag-list-item-height)}.ag-virtual-list-item:focus-visible{outline:none}.ag-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-select-list{background-color:var(--ag-background-color);overflow-y:auto;overflow-x:hidden;border-radius:var(--ag-border-radius);border:var(--ag-borders) var(--ag-border-color)}.ag-list-item{display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-list-item.ag-active-item{background-color:var(--ag-row-hover-color)}.ag-select-list-item{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ag-ltr .ag-select-list-item{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-select-list-item{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-select-list-item span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ag-row-drag,.ag-selection-checkbox,.ag-group-expanded,.ag-group-contracted{color:var(--ag-secondary-foreground-color)}.ag-ltr .ag-row-drag,.ag-ltr .ag-selection-checkbox,.ag-ltr .ag-group-expanded,.ag-ltr .ag-group-contracted{margin-right:var(--ag-cell-widget-spacing)}.ag-rtl .ag-row-drag,.ag-rtl .ag-selection-checkbox,.ag-rtl .ag-group-expanded,.ag-rtl .ag-group-contracted{margin-left:var(--ag-cell-widget-spacing)}.ag-cell-wrapper>*:not(.ag-cell-value):not(.ag-group-value){--ag-internal-calculated-line-height: var( --ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)) );--ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));height:min(var(--ag-internal-calculated-line-height),var(--ag-internal-padded-row-height));display:flex;align-items:center;flex:none}.ag-group-expanded,.ag-group-contracted{cursor:pointer}.ag-group-title-bar-icon{cursor:pointer;flex:none;color:var(--ag-secondary-foreground-color)}.ag-ltr .ag-group-child-count{margin-left:2px}.ag-rtl .ag-group-child-count{margin-right:2px}.ag-group-title-bar{background-color:var(--ag-subheader-background-color);padding:var(--ag-grid-size)}.ag-group-toolbar{padding:var(--ag-grid-size);background-color:var(--ag-subheader-toolbar-background-color)}.ag-disabled-group-title-bar,.ag-disabled-group-container{opacity:.5}.group-item{margin:calc(var(--ag-grid-size) * .5) 0}.ag-label{white-space:nowrap}.ag-ltr .ag-label{margin-right:var(--ag-grid-size)}.ag-rtl .ag-label{margin-left:var(--ag-grid-size)}.ag-label-align-top .ag-label{margin-bottom:calc(var(--ag-grid-size) * .5)}.ag-angle-select[disabled]{color:var(--ag-disabled-foreground-color);pointer-events:none}.ag-angle-select[disabled] .ag-angle-select-field{opacity:.4}.ag-ltr .ag-slider-field,.ag-ltr .ag-angle-select-field{margin-right:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-slider-field,.ag-rtl .ag-angle-select-field{margin-left:calc(var(--ag-grid-size) * 2)}.ag-angle-select-parent-circle{width:24px;height:24px;border-radius:12px;border:solid 1px;border-color:var(--ag-border-color);background-color:var(--ag-background-color)}.ag-angle-select-child-circle{top:4px;left:12px;width:6px;height:6px;margin-left:-3px;margin-top:-4px;border-radius:3px;background-color:var(--ag-secondary-foreground-color)}.ag-picker-field-wrapper{border:var(--ag-borders);border-color:var(--ag-border-color);border-radius:5px;background-color:var(--ag-background-color)}.ag-picker-field-wrapper:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-picker-field-wrapper.ag-picker-has-focus,.ag-picker-field-wrapper:focus-within{outline:none;box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-input-focus-border-color)}.ag-picker-field-button{background-color:var(--ag-background-color);color:var(--ag-secondary-foreground-color)}.ag-dialog.ag-color-dialog{border-radius:5px}.ag-color-picker .ag-picker-field-wrapper{padding-left:var(--ag-grid-size);padding-right:var(--ag-grid-size)}.ag-color-picker .ag-picker-field-display{display:flex;flex-direction:row;align-items:center;min-height:var(--ag-list-item-height)}.ag-ltr .ag-color-picker-color,.ag-ltr .ag-color-picker-value{margin-right:var(--ag-grid-size)}.ag-rtl .ag-color-picker-color,.ag-rtl .ag-color-picker-value{margin-left:var(--ag-grid-size)}.ag-color-panel{padding:var(--ag-grid-size)}.ag-spectrum-color{background-color:red;border-radius:2px}.ag-spectrum-tools{padding:10px}.ag-spectrum-sat{background-image:linear-gradient(to right,#fff,rgba(204,154,129,0))}.ag-spectrum-val{background-image:linear-gradient(to top,#000,rgba(204,154,129,0))}.ag-spectrum-dragger{border-radius:12px;height:12px;width:12px;border:2px solid white;background:#000;box-shadow:0 0 2px rgba(0,0,0,.24)}.ag-spectrum-hue-background,.ag-spectrum-alpha-background{border-radius:2px}.ag-spectrum-tool{margin-bottom:10px;height:11px;border-radius:2px}.ag-spectrum-slider{margin-top:-12px;width:13px;height:13px;border-radius:13px;border:2px solid white;box-shadow:0 1px 4px rgba(0,0,0,.37)}.ag-recent-colors{margin-top:10px}.ag-recent-color{margin:0 3px}.ag-recent-color:first-child{margin-left:0}.ag-recent-color:last-child{margin-right:0}.ag-spectrum-color:focus-visible:not(:disabled):not([readonly]),.ag-spectrum-slider:focus-visible:not(:disabled):not([readonly]),.ag-recent-color:focus-visible:not(:disabled):not([readonly]){box-shadow:var(--ag-input-focus-box-shadow)}.ag-ltr .ag-color-input input[class^=ag-][type=text].ag-input-field-input{padding-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-rtl .ag-color-input input[class^=ag-][type=text].ag-input-field-input{padding-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-color-input .ag-color-input-color{position:absolute}.ag-ltr .ag-color-input .ag-color-input-color{margin-left:var(--ag-grid-size)}.ag-rtl .ag-color-input .ag-color-input-color{margin-right:var(--ag-grid-size)}.ag-color-picker-color,.ag-color-input-color{width:var(--ag-icon-size);height:var(--ag-icon-size);border:var(--ag-borders-secondary) var(--ag-secondary-border-color);border-radius:2px}.ag-dnd-ghost{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);overflow:hidden;text-overflow:ellipsis;border:var(--ag-borders-secondary) var(--ag-secondary-border-color);color:var(--ag-secondary-foreground-color);height:var(--ag-header-height);line-height:var(--ag-header-height);margin:0;padding:0 calc(var(--ag-grid-size) * 2);transform:translateY(calc(var(--ag-grid-size) * 2))}.ag-dnd-ghost-icon{margin-right:var(--ag-grid-size);color:var(--ag-foreground-color)}.ag-popup-child:not(.ag-tooltip-custom){box-shadow:var(--ag-popup-shadow)}.ag-select .ag-picker-field-wrapper{min-height:var(--ag-list-item-height);cursor:default}.ag-ltr .ag-select .ag-picker-field-wrapper{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-select .ag-picker-field-wrapper{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-ltr .ag-select .ag-picker-field-wrapper{padding-right:var(--ag-grid-size)}.ag-rtl .ag-select .ag-picker-field-wrapper{padding-left:var(--ag-grid-size)}.ag-select.ag-disabled .ag-picker-field-wrapper:focus{box-shadow:none}.ag-select:not(.ag-cell-editor,.ag-label-align-top){min-height:var(--ag-list-item-height)}.ag-select .ag-picker-field-display{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-select .ag-picker-field-icon{display:flex;align-items:center}.ag-select.ag-disabled{opacity:.5}.ag-rich-select-value,.ag-rich-select-list{background-color:var(--ag-background-color)}.ag-rich-select-list{width:100%;height:auto;border-radius:var(--ag-border-radius);border:var(--ag-borders) var(--ag-border-color)}.ag-rich-select-list .ag-loading-text{padding:var(--ag-widget-vertical-spacing) var(--ag-widget-horizontal-spacing)}.ag-rich-select-value{border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color);padding-top:0;padding-bottom:0}.ag-ltr .ag-rich-select-value{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-rich-select-value{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-ltr .ag-rich-select-value{padding-right:var(--ag-grid-size)}.ag-rtl .ag-rich-select-value{padding-left:var(--ag-grid-size)}.ag-ltr .ag-rich-select-field-input{left:calc(var(--ag-cell-horizontal-padding))}.ag-rtl .ag-rich-select-field-input{right:calc(var(--ag-cell-horizontal-padding))}.ag-popup-editor .ag-rich-select-value{height:var(--ag-row-height);min-width:200px}.ag-rich-select-virtual-list-item{cursor:default;height:var(--ag-list-item-height)}.ag-rich-select-virtual-list-item:focus-visible:after{content:none}.ag-ltr .ag-rich-select-row{padding-left:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rtl .ag-rich-select-row{padding-right:calc(var(--ag-cell-horizontal-padding) / 2)}.ag-rich-select-row-selected{background-color:var(--ag-selected-row-background-color)}.ag-rich-select-row:hover,.ag-rich-select-row-highlighted{background-image:linear-gradient(var(--ag-row-hover-color),var(--ag-row-hover-color))}.ag-rich-select-row-text-highlight{font-weight:700}.ag-autocomplete{width:100%}.ag-autocomplete-list{width:100%;min-width:200px;height:calc(var(--ag-row-height) * 6.5)}.ag-autocomplete-virtual-list-item{cursor:default;height:var(--ag-list-item-height)}.ag-autocomplete-virtual-list-item:focus-visible:after{content:none}.ag-autocomplete-virtual-list-item:hover{background-color:var(--ag-row-hover-color)}.ag-autocomplete-row-label{margin:0px var(--ag-widget-container-horizontal-padding)}.ag-autocomplete-row-selected{background-color:var(--ag-selected-row-background-color)}.ag-pill{border:1px solid var(--ag-chip-border-color);border-radius:var(--ag-border-radius);background-color:var(--ag-chip-background-color)}.ag-ltr .ag-pill .ag-pill-button{margin-left:var(--ag-grid-size)}.ag-rtl .ag-pill .ag-pill-button{margin-right:var(--ag-grid-size)}.ag-pill:focus-visible{border-color:var(--ag-input-focus-border-color)}.ag-pill .ag-pill-button:hover{cursor:pointer}.ag-dragging-range-handle .ag-dialog,.ag-dragging-fill-handle .ag-dialog{opacity:.7;pointer-events:none}.ag-dialog{border-radius:var(--ag-border-radius);border:var(--ag-borders) var(--ag-border-color);box-shadow:var(--ag-popup-shadow)}.ag-panel{background-color:var(--ag-panel-background-color);border-color:var(--ag-panel-border-color)}.ag-panel-title-bar{color:var(--ag-header-foreground-color);height:var(--ag-header-height);padding:var(--ag-grid-size) var(--ag-cell-horizontal-padding);border-bottom:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-panel-title-bar-button{margin-left:var(--ag-grid-size)}.ag-rtl .ag-panel-title-bar-button{margin-right:var(--ag-grid-size)}.ag-tooltip{background-color:var(--ag-tooltip-background-color);color:var(--ag-foreground-color);padding:var(--ag-grid-size);border:var(--ag-borders) var(--ag-border-color);border-radius:var(--ag-card-radius);white-space:normal}.ag-tooltip.ag-tooltip-animate,.ag-tooltip-custom.ag-tooltip-animate{transition:opacity 1s}.ag-tooltip.ag-tooltip-animate.ag-tooltip-hiding,.ag-tooltip-custom.ag-tooltip-animate.ag-tooltip-hiding{opacity:0}.ag-ltr .ag-column-select-column,.ag-ltr .ag-column-select-column-group{padding-left:calc(var(--ag-indentation-level) * var(--ag-column-select-indent-size))}.ag-rtl .ag-column-select-column,.ag-rtl .ag-column-select-column-group{padding-right:calc(var(--ag-indentation-level) * var(--ag-column-select-indent-size))}.ag-column-select-header-icon{cursor:pointer}.ag-column-select-header-icon:focus-visible{outline:none}.ag-column-select-header-icon:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:0;left:0;display:block;width:calc(100% + -0px);height:calc(100% + -0px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-ltr .ag-column-group-icons:not(:last-child),.ag-ltr .ag-column-select-header-icon:not(:last-child),.ag-ltr .ag-column-select-header-checkbox:not(:last-child),.ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child),.ag-ltr .ag-column-select-checkbox:not(:last-child),.ag-ltr .ag-column-select-column-drag-handle:not(:last-child),.ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child),.ag-ltr .ag-column-select-column-label:not(:last-child){margin-right:var(--ag-widget-horizontal-spacing)}.ag-rtl .ag-column-group-icons:not(:last-child),.ag-rtl .ag-column-select-header-icon:not(:last-child),.ag-rtl .ag-column-select-header-checkbox:not(:last-child),.ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child),.ag-rtl .ag-column-select-checkbox:not(:last-child),.ag-rtl .ag-column-select-column-drag-handle:not(:last-child),.ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child),.ag-rtl .ag-column-select-column-label:not(:last-child){margin-left:var(--ag-widget-horizontal-spacing)}.ag-column-select-virtual-list-item:focus-visible{outline:none}.ag-column-select-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:1px;left:1px;display:block;width:calc(100% - 2px);height:calc(100% - 2px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-column-select-column-group:not(:last-child),.ag-column-select-column:not(:last-child){margin-bottom:var(--ag-widget-vertical-spacing)}.ag-column-select-column-readonly,.ag-column-select-column-group-readonly{color:var(--ag-disabled-foreground-color);pointer-events:none}.ag-ltr .ag-column-select-add-group-indent{margin-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-rtl .ag-column-select-add-group-indent{margin-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2)}.ag-column-select-virtual-list-viewport{padding:calc(var(--ag-widget-container-vertical-padding) * .5) 0px}.ag-column-select-virtual-list-item{padding:0 var(--ag-widget-container-horizontal-padding)}.ag-checkbox-edit{padding-left:var(--ag-cell-horizontal-padding);padding-right:var(--ag-cell-horizontal-padding)}.ag-pill-select .ag-column-drop{border-bottom:0;min-height:unset}.ag-pill-select .ag-column-drop-list{padding:0}.ag-pill-select .ag-select{padding-top:var(--ag-grid-size)}.ag-pill-select .ag-picker-field-wrapper{background-color:transparent;border:0}.ag-pill-select .ag-picker-field-display{cursor:pointer}.ag-rtl{text-align:right}.ag-root-wrapper{border-radius:var(--ag-wrapper-border-radius);border:var(--ag-borders) var(--ag-border-color)}.ag-row>.ag-cell-wrapper.ag-row-group{padding-left:calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * var(--ag-indentation-level))}.ag-cell-wrapper.ag-row-group,.ag-cell-wrapper.ag-row-group-leaf-indent,.ag-cell-wrapper.ag-pivot-leaf-group{padding-left:calc(var(--ag-indentation-level) * var(--ag-row-group-indent-size))}.ag-ltr .ag-row-group-leaf-indent{margin-left:var(--ag-row-group-indent-size)}.ag-rtl .ag-row-group-leaf-indent{margin-right:var(--ag-row-group-indent-size)}.ag-row:not(.ag-row-level-0) .ag-pivot-leaf-group{margin-left:var(--ag-row-group-indent-size)}.ag-value-change-delta{padding-right:2px}.ag-value-change-delta-up{color:var(--ag-value-change-delta-up-color)}.ag-value-change-delta-down{color:var(--ag-value-change-delta-down-color)}.ag-value-change-value{background-color:transparent;border-radius:1px;padding-left:1px;padding-right:1px;transition:background-color 1s}.ag-value-change-value-highlight{background-color:var(--ag-value-change-value-highlight-background-color);transition:background-color .1s}.ag-cell-data-changed{background-color:var(--ag-value-change-value-highlight-background-color)!important}.ag-cell-data-changed-animation{background-color:transparent}.ag-cell-highlight{background-color:var(--ag-range-selection-highlight-color)!important}.ag-row{height:var(--ag-row-height);background-color:var(--ag-background-color);color:var(--ag-data-color);border-bottom:var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width)}.ag-row-highlight-above:after,.ag-row-highlight-below:after{content:"";position:absolute;width:calc(100% - 1px);height:1px;background-color:var(--ag-range-selection-border-color);left:1px}.ag-row-highlight-above:after{top:0}.ag-row-highlight-below:after{bottom:0}.ag-row-odd{background-color:var(--ag-odd-row-background-color)}.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-left-spacer:not(.ag-scroller-corner){border-right:var(--ag-borders-critical) var(--ag-border-color)}.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-right-spacer:not(.ag-scroller-corner){border-left:var(--ag-borders-critical) var(--ag-border-color)}.ag-row-selected:before{content:"";background-color:var(--ag-selected-row-background-color);display:block;position:absolute;top:0;left:0;right:0;bottom:0}.ag-row-hover:not(.ag-full-width-row):before,.ag-row-hover.ag-full-width-row.ag-row-group:before{content:"";background-color:var(--ag-row-hover-color);display:block;position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.ag-row-hover.ag-full-width-row.ag-row-group>*{position:relative}.ag-row-hover.ag-row-selected:before{background-color:var(--ag-row-hover-color);background-image:linear-gradient(var(--ag-selected-row-background-color),var(--ag-selected-row-background-color))}.ag-column-hover{background-color:var(--ag-column-hover-color)}.ag-ltr .ag-right-aligned-cell{text-align:right}.ag-rtl .ag-right-aligned-cell{text-align:left}.ag-ltr .ag-right-aligned-cell .ag-cell-value,.ag-ltr .ag-right-aligned-cell .ag-group-value{margin-left:auto}.ag-rtl .ag-right-aligned-cell .ag-cell-value,.ag-rtl .ag-right-aligned-cell .ag-group-value{margin-right:auto}.ag-ltr .ag-right-aligned-cell .ag-skeleton-effect{margin-left:auto}.ag-rtl .ag-right-aligned-cell .ag-skeleton-effect{margin-right:auto}.ag-cell,.ag-full-width-row .ag-cell-wrapper.ag-row-group{--ag-internal-calculated-line-height: var( --ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)) );--ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));border:1px solid transparent;line-height:min(var(--ag-internal-calculated-line-height),var(--ag-internal-padded-row-height));padding-left:calc(var(--ag-cell-horizontal-padding) - 1px + var(--ag-row-group-indent-size) * var(--ag-indentation-level));padding-right:calc(var(--ag-cell-horizontal-padding) - 1px);-webkit-font-smoothing:subpixel-antialiased}.ag-row>.ag-cell-wrapper{padding-left:calc(var(--ag-cell-horizontal-padding) - 1px);padding-right:calc(var(--ag-cell-horizontal-padding) - 1px)}.ag-row-dragging{cursor:move;opacity:.5}.ag-cell-inline-editing{border:1px solid var(--ag-border-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:0;background-color:var(--ag-control-panel-background-color)}.ag-popup-editor .ag-large-text,.ag-autocomplete-list-popup{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);background-color:var(--ag-control-panel-background-color);padding:0}.ag-large-text-input{height:auto;padding:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-large-text-input textarea{resize:none}.ag-details-row{padding:calc(var(--ag-grid-size) * 5);background-color:var(--ag-background-color)}.ag-layout-auto-height .ag-center-cols-viewport,.ag-layout-auto-height .ag-center-cols-container,.ag-layout-print .ag-center-cols-viewport,.ag-layout-print .ag-center-cols-container{min-height:50px}.ag-overlay-loading-wrapper{background-color:var(--ag-modal-overlay-background-color)}.ag-overlay-loading-center{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size)}.ag-skeleton-container{width:100%;height:100%;align-content:center}.ag-skeleton-effect{background-color:var(--ag-row-loading-skeleton-effect-color);width:100%;height:1em;border-radius:.25rem;animation:ag-skeleton-loading 1.5s ease-in-out .5s infinite}@keyframes ag-skeleton-loading{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.ag-loading{display:flex;height:100%;align-items:center}.ag-ltr .ag-loading{padding-left:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-loading{padding-right:var(--ag-cell-horizontal-padding)}.ag-ltr .ag-loading-icon{padding-right:var(--ag-cell-widget-spacing)}.ag-rtl .ag-loading-icon{padding-left:var(--ag-cell-widget-spacing)}.ag-icon-loading{animation-name:spin;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ag-floating-top{border-bottom:var(--ag-borders-critical) var(--ag-border-color)}.ag-floating-bottom{border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-ltr .ag-cell{border-right:var(--ag-cell-horizontal-border)}.ag-rtl .ag-cell{border-left:var(--ag-cell-horizontal-border)}.ag-ltr .ag-cell{border-right-width:1px}.ag-rtl .ag-cell{border-left-width:1px}.ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell){border-left:var(--ag-borders-critical) var(--ag-border-color)}.ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell){border-right:var(--ag-borders-critical) var(--ag-border-color)}.ag-cell-range-selected:not(.ag-cell-focus),.ag-cell-range-selected.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing){background-color:var(--ag-range-selection-background-color)}.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,.ag-cell-range-selected.ag-cell-range-chart.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart{background-color:var(--ag-range-selection-chart-background-color)!important}.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,.ag-cell-range-selected.ag-cell-range-chart.ag-cell-range-chart.ag-cell-range-chart-category,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category{background-color:var(--ag-range-selection-chart-category-background-color)!important}.ag-cell-range-selected-1:not(.ag-cell-focus),.ag-cell-range-selected-1.ag-cell-range-chart,.ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing){background-color:var(--ag-range-selection-background-color)}.ag-cell-range-selected-2:not(.ag-cell-focus),.ag-cell-range-selected-2.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2{background-color:var(--ag-range-selection-background-color-2)}.ag-cell-range-selected-3:not(.ag-cell-focus),.ag-cell-range-selected-3.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3{background-color:var(--ag-range-selection-background-color-3)}.ag-cell-range-selected-4:not(.ag-cell-focus),.ag-cell-range-selected-4.ag-cell-range-chart,.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4{background-color:var(--ag-range-selection-background-color-4)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top{border-top-color:var(--ag-range-selection-border-color);border-top-style:var(--ag-range-selection-border-style)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right{border-right-color:var(--ag-range-selection-border-color);border-right-style:var(--ag-range-selection-border-style)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom{border-bottom-color:var(--ag-range-selection-border-color);border-bottom-style:var(--ag-range-selection-border-style)}.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left{border-left-color:var(--ag-range-selection-border-color);border-left-style:var(--ag-range-selection-border-style)}.ag-ltr .ag-cell-focus:not(.ag-cell-range-selected):focus-within,.ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),.ag-ltr .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,.ag-ltr .ag-cell-range-single-cell,.ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle,.ag-rtl .ag-cell-focus:not(.ag-cell-range-selected):focus-within,.ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),.ag-rtl .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,.ag-rtl .ag-cell-range-single-cell,.ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle{border:1px solid;border-color:var(--ag-range-selection-border-color);border-style:var(--ag-range-selection-border-style);outline:initial}.ag-cell.ag-selection-fill-top,.ag-cell.ag-selection-fill-top.ag-cell-range-selected{border-top:1px dashed;border-top-color:var(--ag-range-selection-border-color)}.ag-ltr .ag-cell.ag-selection-fill-right,.ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected{border-right:1px dashed var(--ag-range-selection-border-color)!important}.ag-rtl .ag-cell.ag-selection-fill-right,.ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected{border-left:1px dashed var(--ag-range-selection-border-color)!important}.ag-cell.ag-selection-fill-bottom,.ag-cell.ag-selection-fill-bottom.ag-cell-range-selected{border-bottom:1px dashed;border-bottom-color:var(--ag-range-selection-border-color)}.ag-ltr .ag-cell.ag-selection-fill-left,.ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected{border-left:1px dashed var(--ag-range-selection-border-color)!important}.ag-rtl .ag-cell.ag-selection-fill-left,.ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected{border-right:1px dashed var(--ag-range-selection-border-color)!important}.ag-fill-handle,.ag-range-handle{position:absolute;width:6px;height:6px;bottom:-1px;background-color:var(--ag-range-selection-border-color)}.ag-ltr .ag-fill-handle,.ag-ltr .ag-range-handle{right:-1px}.ag-rtl .ag-fill-handle,.ag-rtl .ag-range-handle{left:-1px}.ag-fill-handle{cursor:cell}.ag-range-handle{cursor:nwse-resize}.ag-cell-inline-editing{border-color:var(--ag-input-focus-border-color)!important}.ag-menu{border:var(--ag-borders) var(--ag-border-color);background:var(--ag-background-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);background-color:var(--ag-menu-background-color);border-color:var(--ag-menu-border-color);padding:0}.ag-menu.ag-tabs{min-width:var(--ag-tab-min-width)}.ag-menu-list{cursor:default;padding:var(--ag-grid-size) 0}.ag-menu-separator{height:calc(var(--ag-grid-size) * 2 + 1px)}.ag-menu-separator-part:after{content:"";display:block;border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-menu-option-active,.ag-compact-menu-option-active{background-color:var(--ag-row-hover-color)}.ag-menu-option-part,.ag-compact-menu-option-part{line-height:var(--ag-icon-size);padding:calc(var(--ag-grid-size) + 2px) 0}.ag-menu-option-disabled,.ag-compact-menu-option-disabled{opacity:.5}.ag-menu-option-icon,.ag-compact-menu-option-icon{width:var(--ag-icon-size)}.ag-ltr .ag-menu-option-icon,.ag-ltr .ag-compact-menu-option-icon{padding-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-menu-option-icon,.ag-rtl .ag-compact-menu-option-icon{padding-right:calc(var(--ag-grid-size) * 2)}.ag-menu-option-text,.ag-compact-menu-option-text{padding-left:calc(var(--ag-grid-size) * 2);padding-right:calc(var(--ag-grid-size) * 2)}.ag-ltr .ag-menu-option-shortcut,.ag-ltr .ag-compact-menu-option-shortcut{padding-right:var(--ag-grid-size)}.ag-rtl .ag-menu-option-shortcut,.ag-rtl .ag-compact-menu-option-shortcut{padding-left:var(--ag-grid-size)}.ag-ltr .ag-menu-option-popup-pointer,.ag-ltr .ag-compact-menu-option-popup-pointer{padding-right:var(--ag-grid-size)}.ag-rtl .ag-menu-option-popup-pointer,.ag-rtl .ag-compact-menu-option-popup-pointer{padding-left:var(--ag-grid-size)}.ag-tabs-header,.ag-tabs-header-wrapper{display:flex}.ag-tabs-header-wrapper .ag-tabs-header{flex:1}.ag-tabs-close-button-wrapper{border:0;border-right:var(--ag-borders) var(--ag-border-color);padding:var(--ag-grid-size)}.ag-tabs-close-button{border:0;background-color:unset;cursor:pointer;padding:0}.ag-tab{border-bottom:var(--ag-selected-tab-underline-width) solid transparent;transition:border-bottom var(--ag-selected-tab-underline-transition-speed);display:flex;flex:none;align-items:center;justify-content:center;cursor:pointer}.ag-tab:focus-visible{outline:none}.ag-tab:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-tab-selected{border-bottom-color:var(--ag-selected-tab-underline-color)}.ag-menu-header{color:var(--ag-secondary-foreground-color)}.ag-filter-separator{border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-filter-select .ag-picker-field-wrapper{width:0}.ag-filter-condition-operator{height:17px}.ag-ltr .ag-filter-condition-operator-or{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-filter-condition-operator-or{margin-right:calc(var(--ag-grid-size) * 2)}.ag-set-filter-select-all{padding-top:var(--ag-widget-container-vertical-padding)}.ag-set-filter-list,.ag-filter-no-matches{height:calc(var(--ag-list-item-height) * 6)}.ag-set-filter-tree-list{height:calc(var(--ag-list-item-height) * 10)}.ag-set-filter-filter{margin-top:var(--ag-widget-container-vertical-padding);margin-left:var(--ag-widget-container-horizontal-padding);margin-right:var(--ag-widget-container-horizontal-padding)}.ag-filter-to{margin-top:var(--ag-widget-vertical-spacing)}.ag-mini-filter{margin:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding)}.ag-set-filter{--ag-indentation-level: 0}.ag-ltr .ag-set-filter-item{padding-left:calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size))}.ag-rtl .ag-set-filter-item{padding-right:calc(var(--ag-widget-container-horizontal-padding) + var(--ag-indentation-level) * var(--ag-set-filter-indent-size))}.ag-ltr .ag-set-filter-add-group-indent{margin-left:calc(var(--ag-icon-size) + var(--ag-widget-container-horizontal-padding))}.ag-rtl .ag-set-filter-add-group-indent{margin-right:calc(var(--ag-icon-size) + var(--ag-widget-container-horizontal-padding))}.ag-ltr .ag-set-filter-group-icons{margin-right:var(--ag-widget-container-horizontal-padding)}.ag-rtl .ag-set-filter-group-icons{margin-left:var(--ag-widget-container-horizontal-padding)}.ag-filter-menu .ag-set-filter-list{min-width:200px}.ag-filter-virtual-list-item:focus-visible{outline:none}.ag-filter-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:1px;left:1px;display:block;width:calc(100% - 2px);height:calc(100% - 2px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-filter-apply-panel{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-filter-apply-panel-button{line-height:1.5}.ag-ltr .ag-filter-apply-panel-button{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-filter-apply-panel-button{margin-right:calc(var(--ag-grid-size) * 2)}.ag-simple-filter-body-wrapper{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);padding-bottom:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));overflow-y:auto;min-height:calc(var(--ag-list-item-height) + var(--ag-widget-container-vertical-padding) + var(--ag-widget-vertical-spacing))}.ag-simple-filter-body-wrapper>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-simple-filter-body-wrapper .ag-resizer-wrapper{margin:0}.ag-menu:not(.ag-tabs) .ag-filter .ag-filter-body-wrapper,.ag-menu:not(.ag-tabs) .ag-filter>*:not(.ag-filter-wrapper){min-width:calc(var(--ag-menu-min-width) - 2px)}.ag-filter-no-matches{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding)}.ag-multi-filter-menu-item{margin:var(--ag-grid-size) 0}.ag-multi-filter-group-title-bar{padding:calc(var(--ag-grid-size) * 2) var(--ag-grid-size);background-color:transparent}.ag-group-filter-field-select-wrapper{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);padding-bottom:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing))}.ag-group-filter-field-select-wrapper>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-multi-filter-group-title-bar:focus-visible{outline:none}.ag-multi-filter-group-title-bar:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-side-bar{position:relative}.ag-tool-panel-wrapper{width:var(--ag-side-bar-panel-width);background-color:var(--ag-control-panel-background-color)}.ag-side-buttons{padding-top:calc(var(--ag-grid-size) * 4);width:calc(var(--ag-icon-size) + 4px);position:relative;overflow:hidden}button.ag-side-button-button{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;background:transparent;padding:calc(var(--ag-grid-size) * 2) 0 calc(var(--ag-grid-size) * 2) 0;width:100%;margin:0;min-height:calc(var(--ag-grid-size) * 18);background-position-y:center;background-position-x:center;background-repeat:no-repeat;border:none;border-top:var(--ag-borders-side-button) var(--ag-border-color);border-bottom:var(--ag-borders-side-button) var(--ag-border-color)}button.ag-side-button-button:focus{box-shadow:none}.ag-side-button-button:focus-visible{outline:none}.ag-side-button-button:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-selected button.ag-side-button-button{background-color:var(--ag-side-button-selected-background-color)}.ag-side-button-icon-wrapper{margin-bottom:3px}.ag-ltr .ag-side-bar-left,.ag-rtl .ag-side-bar-right{border-right:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,.ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper{border-left:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-side-bar-left .ag-side-button-button,.ag-rtl .ag-side-bar-right .ag-side-button-button{border-right:var(--ag-selected-tab-underline-width) solid transparent;transition:border-right var(--ag-selected-tab-underline-transition-speed)}.ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,.ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button{border-right-color:var(--ag-selected-tab-underline-color)}.ag-rtl .ag-side-bar-left,.ag-ltr .ag-side-bar-right{border-left:var(--ag-borders) var(--ag-border-color)}.ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,.ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper{border-right:var(--ag-borders) var(--ag-border-color)}.ag-rtl .ag-side-bar-left .ag-side-button-button,.ag-ltr .ag-side-bar-right .ag-side-button-button{border-left:var(--ag-selected-tab-underline-width) solid transparent;transition:border-left var(--ag-selected-tab-underline-transition-speed)}.ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,.ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button{border-left-color:var(--ag-selected-tab-underline-color)}.ag-filter-toolpanel-header{height:calc(var(--ag-grid-size) * 6)}.ag-filter-toolpanel-header,.ag-filter-toolpanel-search{padding:0 var(--ag-grid-size)}.ag-filter-toolpanel-header:focus-visible{outline:none}.ag-filter-toolpanel-header:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-filter-toolpanel-group:not(.ag-has-filter)>.ag-group-title-bar .ag-filter-toolpanel-group-instance-header-icon{display:none}.ag-filter-toolpanel-group-level-0-header{height:calc(var(--ag-grid-size) * 8)}.ag-filter-toolpanel-group-item{margin-top:calc(var(--ag-grid-size) * .5);margin-bottom:calc(var(--ag-grid-size) * .5)}.ag-filter-toolpanel-search{height:var(--ag-header-height)}.ag-filter-toolpanel-search-input{flex-grow:1;height:calc(var(--ag-grid-size) * 4)}.ag-ltr .ag-filter-toolpanel-search-input{margin-right:var(--ag-grid-size)}.ag-rtl .ag-filter-toolpanel-search-input{margin-left:var(--ag-grid-size)}.ag-filter-toolpanel-group-level-0{border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-ltr .ag-filter-toolpanel-expand,.ag-ltr .ag-filter-toolpanel-group-title-bar-icon{margin-right:var(--ag-grid-size)}.ag-rtl .ag-filter-toolpanel-expand,.ag-rtl .ag-filter-toolpanel-group-title-bar-icon{margin-left:var(--ag-grid-size)}.ag-filter-toolpanel-group-title-bar{background-color:transparent}.ag-ltr .ag-filter-toolpanel-header{padding-left:calc(var(--ag-filter-tool-panel-group-indent) * var(--ag-indentation-level, 0) + var(--ag-grid-size))}.ag-rtl .ag-filter-toolpanel-header{padding-right:calc(var(--ag-filter-tool-panel-group-indent) * var(--ag-indentation-level, 0) + var(--ag-grid-size))}.ag-filter-toolpanel-instance-filter{border-bottom:var(--ag-borders) var(--ag-border-color);border-top:var(--ag-borders) var(--ag-border-color);margin-top:var(--ag-grid-size)}.ag-ltr .ag-filter-toolpanel-group-instance-header-icon,.ag-ltr .ag-filter-toolpanel-instance-header-icon{margin-left:var(--ag-grid-size)}.ag-rtl .ag-filter-toolpanel-group-instance-header-icon,.ag-rtl .ag-filter-toolpanel-instance-header-icon{margin-right:var(--ag-grid-size)}.ag-set-filter-group-icons{color:var(--ag-secondary-foreground-color)}.ag-pivot-mode-panel{min-height:var(--ag-header-height);height:var(--ag-header-height);display:flex}.ag-pivot-mode-select{display:flex;align-items:center}.ag-ltr .ag-pivot-mode-select{margin-left:var(--ag-widget-container-horizontal-padding)}.ag-rtl .ag-pivot-mode-select{margin-right:var(--ag-widget-container-horizontal-padding)}.ag-column-select-header:focus-visible{outline:none}.ag-column-select-header:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-column-select-header{height:var(--ag-header-height);align-items:center;padding:0 var(--ag-widget-container-horizontal-padding);border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-column-panel-column-select{border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color);border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-column-group-icons,.ag-column-select-header-icon{color:var(--ag-secondary-foreground-color)}.ag-column-select-list .ag-list-item-hovered:after{content:"";position:absolute;left:0;right:0;height:1px}.ag-column-select-list .ag-item-highlight-top:after{top:0}.ag-column-select-list .ag-item-highlight-bottom:after{bottom:0}.ag-header,.ag-advanced-filter-header{background-color:var(--ag-header-background-color);border-bottom:var(--ag-borders-critical) var(--ag-border-color)}.ag-header-row{color:var(--ag-header-foreground-color);height:var(--ag-header-height)}.ag-pinned-right-header{border-left:var(--ag-borders-critical) var(--ag-border-color)}.ag-pinned-left-header{border-right:var(--ag-borders-critical) var(--ag-border-color)}.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon,.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-menu-icon{margin-left:var(--ag-grid-size)}.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon,.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-menu-icon{margin-right:var(--ag-grid-size)}.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon,.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-menu-icon{margin-right:var(--ag-grid-size)}.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon,.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-menu-icon{margin-left:var(--ag-grid-size)}.ag-header-cell,.ag-header-group-cell{padding-left:var(--ag-cell-horizontal-padding);padding-right:var(--ag-cell-horizontal-padding)}.ag-header-cell.ag-header-cell-moving,.ag-header-group-cell.ag-header-cell-moving{background-color:var(--ag-header-cell-moving-background-color)}.ag-ltr .ag-header-group-cell-label.ag-sticky-label{left:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-header-group-cell-label.ag-sticky-label{right:var(--ag-cell-horizontal-padding)}.ag-header-cell:focus-visible{outline:none}.ag-header-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-header-group-cell:focus-visible{outline:none}.ag-header-group-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-advanced-filter-header-cell:focus-visible{outline:none}.ag-advanced-filter-header-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-header-icon{color:var(--ag-secondary-foreground-color)}.ag-header-expand-icon{cursor:pointer}.ag-ltr .ag-header-expand-icon{margin-left:4px}.ag-rtl .ag-header-expand-icon{margin-right:4px}.ag-header-row:not(:first-child) .ag-header-cell:not(.ag-header-span-height.ag-header-span-total,.ag-header-parent-hidden),.ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group{border-top:var(--ag-borders-critical) var(--ag-border-color)}.ag-header-group-cell:not(.ag-column-resizing)+.ag-header-group-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,.ag-header-group-cell:not(.ag-column-resizing)+.ag-header-group-cell:not(.ag-column-hover).ag-column-resizing,.ag-header-cell:not(.ag-column-resizing)+.ag-header-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,.ag-header-cell:not(.ag-column-resizing)+.ag-header-cell:not(.ag-column-hover).ag-column-resizing,.ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,.ag-header-group-cell:first-of-type.ag-column-resizing,.ag-header-cell:not(.ag-column-hover):first-of-type:not(.ag-header-cell-moving):hover,.ag-header-cell:not(.ag-column-hover):first-of-type.ag-column-resizing{background-color:var(--ag-header-cell-hover-background-color)}.ag-header-cell:before,.ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group):before{content:"";position:absolute;z-index:1;display:var(--ag-header-column-separator-display);width:var(--ag-header-column-separator-width);height:var(--ag-header-column-separator-height);top:calc(50% - var(--ag-header-column-separator-height) * .5);background-color:var(--ag-header-column-separator-color)}.ag-ltr .ag-header-cell:before,.ag-ltr .ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group):before{right:0}.ag-rtl .ag-header-cell:before,.ag-rtl .ag-header-group-cell:not(.ag-header-span-height.ag-header-group-cell-no-group):before{left:0}.ag-header-highlight-before:after,.ag-header-highlight-after:after{content:"";position:absolute;height:100%;width:1px}.ag-header-highlight-before:after{left:0}.ag-header-highlight-after:after{right:0}.ag-pinned-left-header .ag-header-highlight-after:after{right:1px}.ag-header-cell-resize{display:flex;align-items:center}.ag-header-cell-resize:after{content:"";position:absolute;z-index:1;display:var(--ag-header-column-resize-handle-display);width:var(--ag-header-column-resize-handle-width);height:var(--ag-header-column-resize-handle-height);top:calc(50% - var(--ag-header-column-resize-handle-height) * .5);background-color:var(--ag-header-column-resize-handle-color)}.ag-header-cell.ag-header-span-height .ag-header-cell-resize:after{height:calc(100% - var(--ag-grid-size) * 4);top:calc(var(--ag-grid-size) * 2)}.ag-ltr .ag-header-viewport .ag-header-cell-resize:after{left:calc(50% - var(--ag-header-column-resize-handle-width))}.ag-rtl .ag-header-viewport .ag-header-cell-resize:after{right:calc(50% - var(--ag-header-column-resize-handle-width))}.ag-pinned-left-header .ag-header-cell-resize:after{left:calc(50% - var(--ag-header-column-resize-handle-width))}.ag-pinned-right-header .ag-header-cell-resize:after{left:50%}.ag-ltr .ag-header-select-all{margin-right:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-header-select-all{margin-left:var(--ag-cell-horizontal-padding)}.ag-ltr .ag-floating-filter-button{margin-left:var(--ag-cell-widget-spacing)}.ag-rtl .ag-floating-filter-button{margin-right:var(--ag-cell-widget-spacing)}.ag-floating-filter-button-button{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;-webkit-appearance:none;appearance:none;background:transparent;border:none;height:var(--ag-icon-size);padding:0;width:var(--ag-icon-size)}.ag-filter-loading{background-color:var(--ag-control-panel-background-color);height:100%;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);position:absolute;width:100%;z-index:1}.ag-paging-panel{border-top:1px solid;border-top-color:var(--ag-border-color);color:var(--ag-secondary-foreground-color);height:var(--ag-header-height)}.ag-paging-panel>*{margin:0 var(--ag-cell-horizontal-padding)}.ag-paging-panel>.ag-paging-page-size .ag-wrapper{min-width:calc(var(--ag-grid-size) * 10)}.ag-paging-button{cursor:pointer}.ag-paging-button.ag-disabled{cursor:default;color:var(--ag-disabled-foreground-color)}.ag-paging-button:focus-visible{outline:none}.ag-paging-button:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:0;left:0;display:block;width:calc(100% + -0px);height:calc(100% + -0px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-paging-button,.ag-paging-description{margin:0 var(--ag-grid-size)}.ag-status-bar{border-top:var(--ag-borders) var(--ag-border-color);color:var(--ag-disabled-foreground-color);padding-right:calc(var(--ag-grid-size) * 4);padding-left:calc(var(--ag-grid-size) * 4);line-height:1.5}.ag-status-name-value-value{color:var(--ag-foreground-color)}.ag-status-bar-center{text-align:center}.ag-status-name-value{margin-left:var(--ag-grid-size);margin-right:var(--ag-grid-size);padding-top:calc(var(--ag-grid-size) * 2);padding-bottom:calc(var(--ag-grid-size) * 2)}.ag-column-drop-cell{background:var(--ag-chip-background-color);border-radius:calc(var(--ag-grid-size) * 4);height:calc(var(--ag-grid-size) * 4);padding:0 calc(var(--ag-grid-size) * .5);border:1px solid var(--ag-chip-border-color)}.ag-column-drop-cell:focus-visible{outline:none}.ag-column-drop-cell:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:2px;left:2px;display:block;width:calc(100% - 4px);height:calc(100% - 4px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-column-drop-cell-text{margin:0 var(--ag-grid-size)}.ag-column-drop-cell-button{min-width:calc(var(--ag-grid-size) * 4);margin:0 calc(var(--ag-grid-size) * .5);color:var(--ag-secondary-foreground-color)}.ag-column-drop-cell-drag-handle{margin-left:calc(var(--ag-grid-size) * 2)}.ag-column-drop-cell-ghost{opacity:.5}.ag-column-drop-horizontal{background-color:var(--ag-header-background-color);color:var(--ag-secondary-foreground-color);height:var(--ag-header-height);border-bottom:var(--ag-borders) var(--ag-border-color)}.ag-ltr .ag-column-drop-horizontal{padding-left:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-column-drop-horizontal{padding-right:var(--ag-cell-horizontal-padding)}.ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child){border-right:var(--ag-borders) var(--ag-border-color)}.ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child){border-left:var(--ag-borders) var(--ag-border-color)}.ag-column-drop-horizontal-cell-separator{margin:0 var(--ag-grid-size);color:var(--ag-secondary-foreground-color)}.ag-column-drop-horizontal-empty-message{color:var(--ag-disabled-foreground-color)}.ag-ltr .ag-column-drop-horizontal-icon{margin-right:var(--ag-cell-horizontal-padding)}.ag-rtl .ag-column-drop-horizontal-icon{margin-left:var(--ag-cell-horizontal-padding)}.ag-column-drop-vertical-list{padding-bottom:var(--ag-grid-size);padding-right:var(--ag-grid-size);padding-left:var(--ag-grid-size)}.ag-column-drop-vertical-cell{margin-top:var(--ag-grid-size)}.ag-column-drop-vertical{min-height:50px;border-bottom:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-column-drop-vertical.ag-last-column-drop{border-bottom:none}.ag-column-drop-vertical-icon{margin-left:var(--ag-grid-size);margin-right:var(--ag-grid-size)}.ag-column-drop-vertical-empty-message{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;color:var(--ag-disabled-foreground-color);margin-top:var(--ag-grid-size)}.ag-select-agg-func-popup{border:var(--ag-borders) var(--ag-border-color);border-radius:var(--ag-card-radius);box-shadow:var(--ag-card-shadow);padding:var(--ag-grid-size);background:var(--ag-background-color);height:calc(var(--ag-grid-size) * 5 * 3.5);padding:0}.ag-select-agg-func-virtual-list-item{cursor:default}.ag-ltr .ag-select-agg-func-virtual-list-item{padding-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-select-agg-func-virtual-list-item{padding-right:calc(var(--ag-grid-size) * 2)}.ag-select-agg-func-virtual-list-item:hover{background-color:var(--ag-selected-row-background-color)}.ag-select-agg-func-virtual-list-item:focus-visible{outline:none}.ag-select-agg-func-virtual-list-item:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:1px;left:1px;display:block;width:calc(100% - 2px);height:calc(100% - 2px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-sort-indicator-container{display:flex}.ag-ltr .ag-sort-indicator-icon{padding-left:var(--ag-grid-size)}.ag-rtl .ag-sort-indicator-icon{padding-right:var(--ag-grid-size)}.ag-chart{position:relative;display:flex;width:100%;height:100%}.ag-chart-components-wrapper{position:relative;display:flex;flex:1 1 auto}.ag-chart-canvas-wrapper{position:relative;flex:1 1 auto}.ag-chart-menu{position:absolute;top:16px;display:flex;flex-direction:column}.ag-ltr .ag-chart-menu{right:20px}.ag-rtl .ag-chart-menu{left:20px}.ag-chart-docked-container{position:relative;min-width:var(--ag-chart-menu-panel-width)}.ag-chart-menu-hidden~.ag-chart-docked-container{display:none}.ag-chart-tabbed-menu{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.ag-chart-tabbed-menu-header{flex:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ag-chart-tabbed-menu-body{display:flex;flex:1 1 auto;align-items:stretch;overflow:hidden}.ag-chart-tab{width:100%;overflow:hidden;overflow-y:auto}.ag-chart-settings{overflow-x:hidden}.ag-chart-settings-wrapper{position:relative;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.ag-chart-settings-nav-bar{display:flex;align-items:center;width:100%;height:30px;padding:0 10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ag-chart-settings-card-selector{display:flex;align-items:center;justify-content:space-around;flex:1 1 auto;height:100%;padding:0 10px}.ag-chart-settings-card-item{cursor:pointer;width:10px;height:10px;background-color:#000;position:relative}.ag-chart-settings-card-item.ag-not-selected{opacity:.2}.ag-chart-settings-card-item:before{content:" ";display:block;position:absolute;background-color:transparent;left:50%;top:50%;margin-left:-10px;margin-top:-10px;width:20px;height:20px}.ag-chart-settings-prev,.ag-chart-settings-next{position:relative;flex:none}.ag-chart-settings-prev:focus-within,.ag-chart-settings-next:focus-within{box-shadow:var(--ag-input-focus-box-shadow);border-radius:1px}.ag-chart-settings-prev-button,.ag-chart-settings-next-button{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;opacity:0}.ag-chart-settings-mini-charts-container{position:relative;flex:1 1 auto;overflow-x:hidden;overflow-y:auto}.ag-chart-settings-mini-wrapper{position:absolute;top:0;left:0;display:flex;flex-direction:column;width:100%;min-height:100%;overflow:hidden}.ag-chart-settings-mini-wrapper.ag-animating{transition:left .3s;transition-timing-function:ease-in-out}.ag-chart-mini-thumbnail{cursor:pointer}.ag-chart-mini-thumbnail-canvas{display:block}.ag-chart-data-wrapper,.ag-chart-format-wrapper,.ag-chart-advanced-settings-wrapper{display:flex;flex-direction:column;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding-bottom:16px}.ag-chart-data-wrapper,.ag-chart-advanced-settings-wrapper{height:100%;overflow-y:auto}.ag-chart-advanced-settings{background-color:var(--ag-control-panel-background-color)}.ag-chart-advanced-settings-wrapper,.ag-chart-advanced-settings{width:100%}.ag-chart-advanced-settings-wrapper{padding-bottom:0}.ag-chart-data-section,.ag-chart-format-section,.ag-chart-advanced-settings-section{display:flex;margin:0}.ag-chart-advanced-settings-section{padding-top:var(--ag-grid-size);padding-bottom:var(--ag-grid-size)}.ag-chart-advanced-settings-section:not(:last-child){border-bottom:1px solid var(--ag-secondary-border-color)}.ag-chart-empty-text{display:flex;top:0;width:100%;height:100%;align-items:center;justify-content:center;background-color:var(--ag-background-color)}.ag-chart .ag-chart-menu{display:none}.ag-chart-menu-hidden:hover .ag-chart-menu{display:block}.ag-chart .ag-chart-menu-wrapper .ag-chart-menu{display:flex;flex-direction:row;top:8px;gap:20px;width:auto}.ag-ltr .ag-chart .ag-chart-menu-wrapper .ag-chart-menu{right:calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);justify-content:right}.ag-rtl .ag-chart .ag-chart-menu-wrapper .ag-chart-menu{left:calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);justify-content:left}.ag-charts-font-size-color{display:flex;align-self:stretch;justify-content:space-between}.ag-charts-data-group-item{position:relative}.ag-charts-data-group-item:not(:last-child){margin-bottom:var(--ag-grid-size)}.ag-chart-menu{border-radius:var(--ag-card-radius);background:var(--ag-background-color)}.ag-chart-menu-icon{opacity:.5;margin:2px 0;cursor:pointer;border-radius:var(--ag-card-radius);color:var(--ag-secondary-foreground-color)}.ag-chart-menu-icon:hover{opacity:1}.ag-chart-menu-toolbar-button{border:0;background-color:unset;padding:0 2px;border-radius:1px}.ag-chart-mini-thumbnail{border:1px solid var(--ag-secondary-border-color);border-radius:5px}.ag-chart-mini-thumbnail.ag-selected{border-color:var(--ag-minichart-selected-chart-color);border-width:2px}.ag-chart-mini-thumbnail:focus-visible{outline:none;border-color:var(--ag-minichart-selected-chart-color);box-shadow:var(--ag-input-focus-box-shadow)}.ag-chart-settings-card-item{background:var(--ag-foreground-color);width:8px;height:8px;border-radius:4px}.ag-chart-settings-card-item.ag-selected{background-color:var(--ag-minichart-selected-page-color)}.ag-chart-data-column-drag-handle{margin-left:var(--ag-grid-size)}.ag-charts-settings-group-title-bar,.ag-charts-data-group-title-bar,.ag-charts-format-top-level-group-title-bar{border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color);position:relative}.ag-charts-advanced-settings-top-level-group-title-bar{position:relative;background-color:unset}.ag-charts-data-group-title-bar:focus-visible{outline:none}.ag-charts-data-group-title-bar:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-charts-format-top-level-group-title-bar:focus-visible{outline:none}.ag-charts-format-top-level-group-title-bar:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:4px;left:4px;display:block;width:calc(100% - 8px);height:calc(100% - 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-charts-data-group-title-bar .ag-charts-data-group-title,.ag-charts-format-top-level-group-title-bar .ag-charts-format-top-level-group-title{cursor:pointer}.ag-charts-data-group-container{padding:calc(var(--ag-widget-container-vertical-padding) * .5) var(--ag-widget-container-horizontal-padding)}.ag-charts-data-group-container .ag-charts-data-group-item:not(.ag-charts-format-sub-level-group):not(.ag-pill-select):not(.ag-select){height:var(--ag-list-item-height)}.ag-charts-data-group-container .ag-charts-data-group-item.ag-picker-field{margin-top:var(--ag-grid-size)}.ag-charts-data-group-container .ag-list-item-hovered:after{content:"";position:absolute;left:0;right:0;height:1px}.ag-charts-data-group-container .ag-item-highlight-top:after{top:0}.ag-charts-data-group-container .ag-item-highlight-bottom:after{bottom:0}.ag-charts-format-top-level-group-container,.ag-charts-advanced-settings-top-level-group-container{padding:var(--ag-grid-size)}.ag-ltr .ag-charts-format-top-level-group-container,.ag-ltr .ag-charts-advanced-settings-top-level-group-container{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-charts-format-top-level-group-container,.ag-rtl .ag-charts-advanced-settings-top-level-group-container{margin-right:calc(var(--ag-grid-size) * 2)}.ag-charts-format-top-level-group-item,.ag-charts-advanced-settings-top-level-group-item{margin:var(--ag-grid-size) 0}.ag-charts-format-sub-level-group-container{padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);padding-bottom:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing))}.ag-charts-format-sub-level-group-container>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-charts-format-sub-level-no-header-group-container>*{margin-bottom:var(--ag-widget-vertical-spacing)}.ag-charts-format-sub-level-group-container .ag-charts-format-sub-level-group-item.ag-font-panel-no-header{margin:0}.ag-charts-settings-group-container{padding:var(--ag-grid-size);row-gap:8px;display:grid;grid-template-columns:60px 1fr 60px 1fr 60px}.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+1){grid-column:1}.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+2){grid-column:3}.ag-charts-settings-group-container .ag-chart-mini-thumbnail:nth-child(3n+3){grid-column:5}.ag-chart-menu-panel{background-color:var(--ag-control-panel-background-color)}.ag-ltr .ag-chart-menu-panel{border-left:solid 1px var(--ag-border-color)}.ag-rtl .ag-chart-menu-panel{border-right:solid 1px var(--ag-border-color)}.ag-charts-theme-default{--ag-charts-align: none !important;--ag-charts-justify: none !important}.ag-date-time-list-page-title-bar{display:flex}.ag-date-time-list-page-title{flex-grow:1;text-align:center}.ag-date-time-list-page-column-labels-row,.ag-date-time-list-page-entries-row{display:flex}.ag-date-time-list-page-column-label,.ag-date-time-list-page-entry{flex-basis:0;flex-grow:1}.ag-date-time-list-page-entry{cursor:pointer;text-align:center}.ag-date-time-list-page-column-label{text-align:center}.ag-advanced-filter-header{position:relative;display:flex;align-items:center;padding-left:var(--ag-cell-horizontal-padding);padding-right:var(--ag-cell-horizontal-padding)}.ag-advanced-filter{display:flex;align-items:center;width:100%}.ag-advanced-filter-apply-button,.ag-advanced-filter-builder-button{line-height:normal;white-space:nowrap}.ag-ltr .ag-advanced-filter-apply-button,.ag-ltr .ag-advanced-filter-builder-button{margin-left:calc(var(--ag-grid-size) * 2)}.ag-rtl .ag-advanced-filter-apply-button,.ag-rtl .ag-advanced-filter-builder-button{margin-right:calc(var(--ag-grid-size) * 2)}.ag-advanced-filter-builder-button{display:flex;align-items:center;border:0;background-color:unset;color:var(--ag-foreground-color);font-size:var(--ag-font-size);font-weight:600}.ag-advanced-filter-builder-button:hover:not(:disabled){background-color:var(--ag-row-hover-color)}.ag-advanced-filter-builder-button:not(:disabled){cursor:pointer}.ag-advanced-filter-builder-button-label{margin-left:var(--ag-grid-size)}.ag-advanced-filter-builder{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%;background-color:var(--ag-control-panel-background-color);display:flex;flex-direction:column}.ag-advanced-filter-builder-list{flex:1;overflow:auto}.ag-advanced-filter-builder-list .ag-list-item-hovered:after{content:"";position:absolute;left:0;right:0;height:1px}.ag-advanced-filter-builder-list .ag-item-highlight-top:after{top:0}.ag-advanced-filter-builder-list .ag-item-highlight-bottom:after{bottom:0}.ag-advanced-filter-builder-button-panel{display:flex;justify-content:flex-end;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-advanced-filter-builder .ag-advanced-filter-builder-button-panel .ag-advanced-filter-builder-apply-button,.ag-advanced-filter-builder .ag-advanced-filter-builder-button-panel .ag-advanced-filter-builder-cancel-button{margin-left:calc(var(--ag-grid-size) * 2)}.ag-advanced-filter-builder-item-wrapper{display:flex;flex:1 1 auto;align-items:center;justify-content:space-between;overflow:hidden;padding-left:calc(var(--ag-icon-size) / 2);padding-right:var(--ag-icon-size)}.ag-virtual-list-viewport .ag-advanced-filter-builder-item-wrapper .ag-tab-guard{position:absolute}.ag-advanced-filter-builder-item-tree-lines>*{width:var(--ag-advanced-filter-builder-indent-size)}.ag-advanced-filter-builder-item-tree-lines .ag-advanced-filter-builder-item-tree-line-root{width:var(--ag-icon-size)}.ag-advanced-filter-builder-item-tree-lines .ag-advanced-filter-builder-item-tree-line-root:before{top:50%;height:50%}.ag-advanced-filter-builder-item-tree-line-horizontal,.ag-advanced-filter-builder-item-tree-line-vertical,.ag-advanced-filter-builder-item-tree-line-vertical-top,.ag-advanced-filter-builder-item-tree-line-vertical-bottom{position:relative;height:100%;display:flex;align-items:center}.ag-advanced-filter-builder-item-tree-line-horizontal:before,.ag-advanced-filter-builder-item-tree-line-horizontal:after,.ag-advanced-filter-builder-item-tree-line-vertical:before,.ag-advanced-filter-builder-item-tree-line-vertical:after,.ag-advanced-filter-builder-item-tree-line-vertical-top:before,.ag-advanced-filter-builder-item-tree-line-vertical-top:after,.ag-advanced-filter-builder-item-tree-line-vertical-bottom:before,.ag-advanced-filter-builder-item-tree-line-vertical-bottom:after{content:"";position:absolute;height:100%}.ag-advanced-filter-builder-item-tree-line-horizontal:after{height:50%;width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size));top:0;left:calc(var(--ag-icon-size) / 2);border-bottom:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-tree-line-vertical:before{width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size) / 2);top:0;left:calc(var(--ag-icon-size) / 2);border-left:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-tree-line-vertical-top:before{height:50%;width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size) / 2);top:0;left:calc(var(--ag-icon-size) / 2);border-left:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-tree-line-vertical-bottom:before{height:calc((100% - 1.5 * var(--ag-icon-size)) / 2);width:calc(var(--ag-icon-size) / 2);top:calc((100% + 1.5 * var(--ag-icon-size)) / 2);left:calc(var(--ag-icon-size) / 2);border-left:1px solid;border-color:var(--ag-border-color)}.ag-advanced-filter-builder-item-condition{padding-top:var(--ag-grid-size);padding-bottom:var(--ag-grid-size)}.ag-advanced-filter-builder-item,.ag-advanced-filter-builder-item-condition,.ag-advanced-filter-builder-pill-wrapper,.ag-advanced-filter-builder-pill,.ag-advanced-filter-builder-item-buttons,.ag-advanced-filter-builder-item-tree-lines{display:flex;align-items:center;height:100%}.ag-advanced-filter-builder-pill-wrapper{margin:0px var(--ag-grid-size)}.ag-advanced-filter-builder-pill{position:relative;border-radius:var(--ag-border-radius);padding:var(--ag-grid-size) calc(var(--ag-grid-size) * 2);min-height:calc(100% - var(--ag-grid-size) * 3);min-width:calc(var(--ag-grid-size) * 2)}.ag-advanced-filter-builder-pill .ag-picker-field-display{margin-right:var(--ag-grid-size)}.ag-advanced-filter-builder-pill .ag-advanced-filter-builder-value-number{font-family:monospace;font-weight:700}.ag-advanced-filter-builder-pill .ag-advanced-filter-builder-value-empty{color:var(--ag-disabled-foreground-color)}.ag-advanced-filter-builder-pill:focus-visible{outline:none}.ag-advanced-filter-builder-pill:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:-4px;left:-4px;display:block;width:calc(100% + 8px);height:calc(100% + 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-advanced-filter-builder-item-button:focus-visible{outline:none}.ag-advanced-filter-builder-item-button:focus-visible:after{content:"";position:absolute;background-color:transparent;pointer-events:none;top:-4px;left:-4px;display:block;width:calc(100% + 8px);height:calc(100% + 8px);border:1px solid;border-color:var(--ag-input-focus-border-color)}.ag-advanced-filter-builder-pill-display{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.ag-advanced-filter-builder-join-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-join-pill-color);cursor:pointer}.ag-advanced-filter-builder-column-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-column-pill-color);cursor:pointer}.ag-advanced-filter-builder-option-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-option-pill-color);cursor:pointer}.ag-advanced-filter-builder-value-pill{color:var(--ag-foreground-color);background-color:var(--ag-advanced-filter-value-pill-color);cursor:text;max-width:140px}.ag-advanced-filter-builder-value-pill .ag-advanced-filter-builder-pill-display{display:block}.ag-advanced-filter-builder-item-buttons>*{margin:0 calc(var(--ag-grid-size) * .5)}.ag-advanced-filter-builder-item-button{position:relative;cursor:pointer;color:var(--ag-secondary-foreground-color);opacity:50%}.ag-advanced-filter-builder-item-button-disabled{color:var(--ag-disabled-foreground-color);cursor:default}.ag-advanced-filter-builder-virtual-list-container{top:var(--ag-grid-size)}.ag-advanced-filter-builder-virtual-list-item{display:flex;cursor:default;height:var(--ag-list-item-height)}.ag-advanced-filter-builder-virtual-list-item:hover{background-color:var(--ag-row-hover-color)}.ag-advanced-filter-builder-virtual-list-item:hover .ag-advanced-filter-builder-item-button{opacity:100%}.ag-advanced-filter-builder-virtual-list-item-highlight .ag-advanced-filter-builder-item-button:focus-visible,.ag-advanced-filter-builder-validation .ag-advanced-filter-builder-invalid{opacity:100%}.ag-advanced-filter-builder-invalid{margin:0 var(--ag-grid-size);color:var(--ag-invalid-color);cursor:default}.ag-input-field-input{width:100%;min-width:0}.ag-checkbox-input-wrapper{font-family:var(--ag-icon-font-family);font-weight:var(--ag-icon-font-weight);color:var(--ag-icon-font-color);font-size:var(--ag-icon-size);line-height:var(--ag-icon-size);font-style:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-checkbox-background-color);border-radius:var(--ag-checkbox-border-radius);display:inline-block;vertical-align:middle;flex:none}.ag-checkbox-input-wrapper input{-webkit-appearance:none;opacity:0;width:100%;height:100%}.ag-checkbox-input-wrapper:focus-within,.ag-checkbox-input-wrapper:active{outline:none;box-shadow:var(--ag-input-focus-box-shadow)}.ag-checkbox-input-wrapper.ag-disabled{opacity:.5}.ag-checkbox-input-wrapper:after{content:var(--ag-icon-font-code-checkbox-unchecked, "");font-family:inherit;color:var(--ag-checkbox-unchecked-color);display:var(--ag-icon-font-display-checkbox-unchecked, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-checkbox-input-wrapper.ag-checked:after{content:var(--ag-icon-font-code-checkbox-checked, "");color:var(--ag-checkbox-checked-color);display:var(--ag-icon-font-display-checkbox-checked, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-checkbox-input-wrapper.ag-indeterminate:after{content:var(--ag-icon-font-code-checkbox-indeterminate, "");color:var(--ag-checkbox-indeterminate-color);display:var(--ag-icon-font-display-checkbox-indeterminate, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-checkbox-input-wrapper:before{content:"";background:transparent center/contain no-repeat;position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--ag-icon-image-checkbox-unchecked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-unchecked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-unchecked, var(--ag-icon-image-opacity, .9))}.ag-checkbox-input-wrapper.ag-checked:before{background-image:var(--ag-icon-image-checkbox-checked, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-checked, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-checked, var(--ag-icon-image-opacity, .9))}.ag-checkbox-input-wrapper.ag-indeterminate:before{background-image:var(--ag-icon-image-checkbox-indeterminate, var(--ag-icon-image));display:var(--ag-icon-image-display-checkbox-indeterminate, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-checkbox-indeterminate, var(--ag-icon-image-opacity, .9))}.ag-toggle-button-input-wrapper{box-sizing:border-box;width:var(--ag-toggle-button-width);min-width:var(--ag-toggle-button-width);max-width:var(--ag-toggle-button-width);height:var(--ag-toggle-button-height);background-color:var(--ag-toggle-button-off-background-color);border-radius:calc(var(--ag-toggle-button-height) * .5);position:relative;flex:none;border:var(--ag-toggle-button-border-width) solid;border-color:var(--ag-toggle-button-off-border-color)}.ag-toggle-button-input-wrapper input{opacity:0;height:100%;width:100%}.ag-toggle-button-input-wrapper:focus-within{outline:none;box-shadow:var(--ag-input-focus-box-shadow)}.ag-toggle-button-input-wrapper.ag-disabled{opacity:.5}.ag-toggle-button-input-wrapper.ag-checked{background-color:var(--ag-toggle-button-on-background-color);border-color:var(--ag-toggle-button-on-border-color)}.ag-toggle-button-input-wrapper:before{content:" ";position:absolute;top:calc(0px - var(--ag-toggle-button-border-width));left:calc(0px - var(--ag-toggle-button-border-width));display:block;box-sizing:border-box;height:var(--ag-toggle-button-height);width:var(--ag-toggle-button-height);background-color:var(--ag-toggle-button-switch-background-color);border-radius:100%;transition:left .1s;border:var(--ag-toggle-button-border-width) solid;border-color:var(--ag-toggle-button-switch-border-color)}.ag-toggle-button-input-wrapper.ag-checked:before{left:calc(100% - var(--ag-toggle-button-height) + var(--ag-toggle-button-border-width));border-color:var(--ag-toggle-button-on-border-color)}.ag-radio-button-input-wrapper{font-family:var(--ag-icon-font-family);font-weight:var(--ag-icon-font-weight);color:var(--ag-icon-font-color);font-size:var(--ag-icon-size);line-height:var(--ag-icon-size);font-style:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-checkbox-background-color);border-radius:var(--ag-checkbox-border-radius);display:inline-block;vertical-align:middle;flex:none;border-radius:var(--ag-icon-size)}.ag-radio-button-input-wrapper input{-webkit-appearance:none;opacity:0;width:100%;height:100%}.ag-radio-button-input-wrapper:focus-within,.ag-radio-button-input-wrapper:active{outline:none;box-shadow:var(--ag-input-focus-box-shadow)}.ag-radio-button-input-wrapper.ag-disabled{opacity:.5}.ag-radio-button-input-wrapper:after{content:var(--ag-icon-font-code-radio-button-off, "");color:var(--ag-checkbox-unchecked-color);display:var(--ag-icon-font-display-radio-button-off, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-radio-button-input-wrapper.ag-checked:after{content:var(--ag-icon-font-code-radio-button-on, "");color:var(--ag-checkbox-checked-color);display:var(--ag-icon-font-display-radio-button-on, var(--ag-icon-font-display));position:absolute;top:0;left:0;pointer-events:none}.ag-radio-button-input-wrapper:before{content:"";background:transparent center/contain no-repeat;position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--ag-icon-image-radio-button-off, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-off, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-off, var(--ag-icon-image-opacity, .9))}.ag-radio-button-input-wrapper.ag-checked:before{background-image:var(--ag-icon-image-radio-button-on, var(--ag-icon-image));display:var(--ag-icon-image-display-radio-button-on, var(--ag-icon-image-display));opacity:var(--ag-icon-image-opacity-radio-button-on, var(--ag-icon-image-opacity, .9))}input[class^=ag-][type=range]{-webkit-appearance:none;width:100%;height:100%;background:none;overflow:visible}input[class^=ag-][type=range]::-webkit-slider-runnable-track{margin:0;padding:0;width:100%;height:3px;background-color:var(--ag-border-color);border-radius:var(--ag-border-radius);border-radius:var(--ag-checkbox-border-radius)}input[class^=ag-][type=range]::-moz-range-track{margin:0;padding:0;width:100%;height:3px;background-color:var(--ag-border-color);border-radius:var(--ag-border-radius);border-radius:var(--ag-checkbox-border-radius)}input[class^=ag-][type=range]::-ms-track{margin:0;padding:0;width:100%;height:3px;background-color:var(--ag-border-color);border-radius:var(--ag-border-radius);border-radius:var(--ag-checkbox-border-radius);color:transparent;width:calc(100% - 2px)}input[class^=ag-][type=range]::-webkit-slider-thumb{margin:0;padding:0;-webkit-appearance:none;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-background-color);border:1px solid;border-color:var(--ag-checkbox-unchecked-color);border-radius:var(--ag-icon-size);transform:translateY(calc(var(--ag-icon-size) * -.5 + 1.5px))}input[class^=ag-][type=range]::-ms-thumb{margin:0;padding:0;-webkit-appearance:none;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-background-color);border:1px solid;border-color:var(--ag-checkbox-unchecked-color);border-radius:var(--ag-icon-size)}input[class^=ag-][type=range]::-moz-ag-range-thumb{margin:0;padding:0;-webkit-appearance:none;width:var(--ag-icon-size);height:var(--ag-icon-size);background-color:var(--ag-background-color);border:1px solid;border-color:var(--ag-checkbox-unchecked-color);border-radius:var(--ag-icon-size)}input[class^=ag-][type=range]:focus{outline:none}input[class^=ag-][type=range]:focus::-webkit-slider-thumb{box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-checkbox-checked-color)}input[class^=ag-][type=range]:focus::-ms-thumb{box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-checkbox-checked-color)}input[class^=ag-][type=range]:focus::-moz-ag-range-thumb{box-shadow:var(--ag-input-focus-box-shadow);border-color:var(--ag-checkbox-checked-color)}input[class^=ag-][type=range]:active::-webkit-slider-runnable-track{background-color:var(--ag-input-focus-border-color)}input[class^=ag-][type=range]:active::-moz-ag-range-track{background-color:var(--ag-input-focus-border-color)}input[class^=ag-][type=range]:active::-ms-track{background-color:var(--ag-input-focus-border-color)}input[class^=ag-][type=range]:disabled{opacity:.5}@font-face{font-family:agGridAlpine;src:url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABMUAAsAAAAAKMwAABLCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIlWBmAAi34KqmyjKwE2AiQDgkALgSIABCAFhEYHhUEbnyMzg/aatGqziOpJNvu/JGhLhnjjdVVKiQVRRpQIMYb+arBrcnXzpDWxiZ/03+6d7uYA0kgNGvfxjeHHsZxySFI0efhYa+/v7iGeriQ0iXmiiXjIROjWyEwnREJiiNL8r7ned9lNjoj/UviIZqqAwagvZXWN7vQH2uY/PCuxGixE3Zco9c7GTcI4jGiM5Ixl6zZYJOu4deqq/4JF6qJ74B9A4MjcdjWnBf6vzeoX1p0qiEwH0j3ielqTJCVtAmTUucAVrqMqJHm7J9HDZROQwmB/an6zL7XMHhb7kozZWv+/7xgEJkGCJ4SvEGy5v2EaHaSESvAJKgL+b+1f7X9BlMATAqHj4/Ts7Pz/9965+zA0mU+02dBmQ5sfphJYIEX8Xjanfa8cAFStrQKWdRW+vpqEqbN1cToVOJ6CtsfmMoLfUD/X9o81JEiwSx5ix9/Y/D1YFRZgNHb89HY+AigxopP6BiQ4BLYXmusgA7t/bICvlWN7o7wQXGc5eKRfcJ1eti2g4qav/kYgjmNd0tLkOJ2Z/s9UagziUjLg4EUfjozhKEJQaXQSBRvG1xhMyJishB+RIifj9w6SMEZ1KBbXsdcUQmxLtN9Y2RPEjbehOT882Zbg6JXTtclU1IKAeRSMqKLcjrgNk40wT889wmXtgNBtcVthsjULZ4tB2WK6N7J190VFqlzEbaj5YYFjdj8VOa0t8WaELTaNWbZ2zJ36dM0BpxvCVJZlmP07Ku01wgZhT+xoxJdg3JpQhms8MU4R0KC64anv+rx2E9QmUFl/ortRSm2LPVbXu/6mNu5MGHAN4b2DK64KlaiuEGXqwIjTcKY+GVvvXXv07MWrT/8ARxGnhMUgqnrxK5p1WI/vEslM7FNW4qVzW4pQxmZGfTcfLa5FzMYh1DDHeHmEBYawVuhveThz4/Z2dCZM6QPZepCtu0Awgr9fxzGZfEA7NUeBnvZPglAHxmEeGS0TuaKyQz0dlSU+5CaqdHjGJPZMGbqSalOhn8ZkfcgmGZmvf+NtZ3kuxJoanXfBFT1apf/pNpfg7r5/jDDbG8TMmArFxZdY2RunTLjo7A1bhEgOKxy/44qp4TPcaX8TBaqr5I03XL2wOnWsmcJR+qYaVC4sUcTEa3fttqtEtmJTFzkEkKOHEg0IW2xbu847njOcPMS1HEguk4O4evv+401DJCAhp+5PaGo1rgT+qPli3jGfRZOPcxsxeZA4fApUAxlI8uONUTX04VdDPKlrg/1DGRcJ1vfKR7+/mgs1Hnnj81f8qLjXwfcQzmm4Aq0wK9YeoM575jiqJZvSu0mGAXtHYlg7unCQIJhMGY7Vxc3Dy8cvICgkLCIabTAhKSXtT4BZOXkFRSVlFVU1dQ1NLW0dXT19A0MlI2MTSMjUzNwViAL3M3lQqcZ+K0F0pgsVlj2jUW27//+7xP6ErY9y4JcBemZdmAFqntggsMAagUXWDyyxbmCZDQErrAVYZRPAGmsC1lkvsMHagC3WB2yzHmCHDQO7rAPYY+3APhsFDlkzcMS6gGPWCpywEeCUjQNnrBM4ZwPABRsDLkdPgi8AvREIIQhCMIQQCKEQwiCEQ4iAEAkhCkI0hBgIsRDiIMRDSICQCCEJQjKEFAipENIgpEPIgJAJIQtCNoQcCLkQ8iDkQyiAUAihCEIxhBIIpRDKIJRDqIBQCaEKQjWEGgi1EOog1LM3nQboL40QmiA0m0QKvha7bbRCebRBaIfQAWjE1KT6Mbe4oaAEFD15V8c1Npu8CiuJ+AgmZ+ibQWlcWmSAxALcWmEZSyAXGzLeJkSCSHP7vut0TVNSh01dwfysllW0nFagpJbIKHpGxmNm9hthJGqxHh2r9a1LpXoZteJbRCtpSsJSTEsukVAcjaubhmElaof2qUe+BlVN1Giq1mAaAZwEyNjKPVCn9M/ombCZRJqctqcDmwMD6YIbHZTN5WLZAkbni25GeSMT81p3zBduRVryQiIyK7q2F9KY/XxW7heJar+AV/4A237mtCB4kYk89YiCOQFcIhL20uGLC5C//SXJRK8vo5pgx6uNrmAl9nqbrUmU8rR0zekKrHF/ZrbTLBjbkj1RfwZ8jD6jIGTXaC+ppjqxRFrkNJGP9hy7FDGeHl4FhagGY/X+NWKIFlCDQdymq8aSUjqFqWvzkiu8bbxidd5BC5FI3fF2jDbWGGyHuZOQtm5/x4kTONSe2rVrHwpWnb9Nov1nwZZwm7XrFA63gb0no9N9tm+PtjL/zA0c+m27WJbiO3duJdFGFKiPWcdOnQvOn15mzcmdkfJv2xWeAFu3msOOmlv/ywgmtudQ7OBWH57bsiXY22Zxy0oiunOJu23/6avmojw/8UbZj+OwUkFBDKcnL4LlKINqlUTcrvDGGf/szej2+eDcraXhh5YpEnwqsZbt+05dyXoFKq+nwn92ShXNCF6yaHCcROsbmMjVyCpwAIykbGupvSPhMYsX7aOP4HADCurdUp6yJYUFrFqsL8zM7IV47ry5hRjHlQq3cper7EY8sVz1JEovtIkocwPG87er0DaWVUVFTeGaqMp0HFOhdHeVMhkVV0tzq8tXBfsy//f1KNCUo9RSBsUQa7goUOYSCQuMCJP3Zbl1eg901ANJ1JRAwAFWOYEiMGh9B6P5mSBGbmFdFGynyI2W4PF7ElIWwub1lx8hNmUO1YOBRJcelh+8wWAXdQFOYZnMheiyn3mxR0fGUhmEAcuc0OnNoWUCwy9APEPC6JLB3qh3kZxqcakMAz8X5/svbeB0nmCM8gVMTMCsHehWTxx6nn2v4oSV+aW7ZfBDrePhfZfDN33xNOiUOjI9Wu+fCE8FpxclVQIGIiWe206+Due/uv6F2Dfh9JzjOWfkmZE3plNza8PBsWdmDuV0/pIj2R1mA3029clIJ3d6wO7BvYW5lWx1PN6He1fL5X6/NO6J46m/dV+rVPr/2rK/Wp3xZ1dSKYvrnwdUl/rm3o/ThqFSdj1Ba/Tqqdhcb67xvOzTGc/HnB6w3B9EEI8HEiTC8ENfShDpAdJ/36fp3UfwVDATzzCQDf0hai8P8iAP1iG7MWwHe49R29iVpyW9Jvtm//FoVsNrHYxLzl1zj65MQXIJUXDHTCplOz0lt6XklEpsrSs6PLMb6BSjDSNiDdgbT82/rqLjG1PMyGr2IobBMyLY+X4EAyY1FNd7H4onDuKwRiWMHcCARyf3nsBnvo5KE1xM9KRgXZq0hw+FgIGlhoMR4oeQzvBT8Dn66H9YSWzWsLV9s7jHRfgE/EbI/8Ej2I93AzqCDlA9AK8XIc7u5PFcBFOLkAMDS9PTM9JhLmbk04cZURi0w2qd7hf+66VugwSKgGdMv7JAkMfj5QkKnobP8+fxCgRPHXzPW9Q/37AIkv38NMC12IJgEeQP4ifR2kq0EcCfpzP1CB70OLWDwR7ww/Gmm9rbS6VnTq9ZI5UFe9OZQQ1B3ukO03qi/5bXB+aH18eWL1cXFenpRYSf8ZmdOX1ma8SmTTNeK5xpEAc0Z/zNDGBd/alkK3erypElW5WytjZwbAoWVH/+gx9HCEzk8AgdaGJcPKJKuUADupgGNFpHE9PBedUXxBdgmJuRGR2dKetggTA4nAwcEfAGX5aXttT3xW6n+Jf7h/qX+fPke2vc5J1XXf9vbZ9CuW4cEGl9l1K//Kb5TPdBO+vy0J/LYu1pJ1sQW8cwP6rJUouO8Ga2leNOlteBUq/0dOduyyXbLJ2d7B3cLc+PUM1mWHZWNLwxt0mjWi53/MJbCSF2Tx2oKv02+2UWlSLZEw+qhUnWumgHh9WnqYvDZgQeYJBOgWDfYdYqMTVw4gw51S2w2pfrxLoUYmy6jKqEzebc7sO8W6mXh6IiGWxFKEtRln4KVtmHhyrYaGRhe26Tf7YX2+mU4QwUoWw/9+WJLucWczXnuPs13MX7EYp/m7xNhgMG5WFjfnJSewnFh4FjMzKGtkvD3L7BMxntY6pm1IxxwKxsaN/CMrHMpdfwk8ZWo8xtJNKa1PbD86kznOycuOndaR3cSQbGVl5WVGgg+ZUTvO++r47jqoukWKwIyE/TxDR1uskZgbyYnOOXyNIcVnUaaGKbOlzlImGitKTA+GJMSqhzZEFRLy8hOYG+fimXmcBgxDO5pkb5bexUo6AYZ4vFUhE9yymyUKBtBiBO4uEPv+XJmZWmgiLnyPjrip65yps6NTGb8zyI4WYOucqFEzWBqfHwSSm4Bt6OItctPkBmdBu2NRm9W6u/W3znLnzlHDls3FCbwPlhfASHOb0+gZIqjMAOqPgDsVDnDCKsDIooUQHKJzEWptpNYETVo8QPFQtuacUEmOqHGXb71sLHHTli235ZDtXjl063vvdgfVcWhZXDdJcddK1cK8zn8/MawweElsPRd7jQ1zNkuKx1za4W4gLD9MxX5gEXCUcy2ffr1zJhoDJdWWY4R8LZmZjNabLmXvN8MuyroYrDbrStLeMBhRIVRaE8MBqy/fTKvF/oPrCuCZWoklBi8rNRJaC78aN5225GCoBjavCGP+/x1wv48Mz9Y3fy5FzmBH27rG6nemh5dpCEmZjIlARlC8vpKwYHXejlEltICf1KQei46i3X/yT9ObmVBjSNTAk0EG8ziT6JBl9+zrsEDU4sJ3BIIubMMXYRyaadUeuqigpmrwtHPW67uyfufhofX15ioO/kI5Kfrurv//9/8tnMUbN2EF80mtxGqqmzc0uxg1GTzfz+pnlmj286fhoaglDb9Q2xDEasEeJmx4j8hQa2B8R5BTt+CfnvDd4Ze7Opxu++XbSxorK9P3btt1xI4ngqTk5uCGDExwUqmyeT5iuEk4s+chzm3jDhuccbqbo7D8FofaIH/c5JbNGHvE4MO9il6qTE/mh3vW3C2aqew6oGcXcPbP60YUXV6//8adz8urIcvwzfqVN9M/xyLoZPeurU+4lz/C565DcsHl+bw8vkcDJ5OXfF9fyZnBzeXcfqMPwutjE6unEyOVOT+X8u5kc+jZ4xUeuXsvKJUAvPdIOnmFvGNmyb4B3KQuGZ2lLqemDsRLRBliB5lnsm8Ti6Spdv36KjRUIPj6goIKOUeUr4tHlcZtT8VqqGEycmUYwZL1Z9UYQWhgvnzK8JWJOTmmosru7rXSCuiBROt9PwvhU9rFB44o15uQkJWi17334wH3JVYwu1Gd7cvBDT8tnEsljHw4eG0DaKtfuJw3C/f5mMzPX7wbsMnxaIVr7vW6OIb8Djd+9D9+3B4xoUcdo+ZzQgLglliur21l6/uv3Y/t3DEY1f0+sUEaBIwvEHKEDV86+/PX/hvdTfI8H/fqEb8m4cgE20TZ1+lAcpS6tpR0rACZbtRdvoIL3IEWc22wH0G6lD3qJHLUPupbURVMZxp6VZQd1qGPjt791g2KxXZdkyeqdw1T/kYxszbYM3jeNchQ3ulriPeY5Y12m2mjIbFdIFzhZvIlqZh5Eg1TAA0dPwvg+C0AqvZmsQ27zdGORuyWvX6jzLUXOUVJC/L7O75APlycErPsjuSM39f5PI/wGg5sSf93y0cf9U14K0beNCvem/gM1t/pdv/YhgcZT0X4L81ycKtSDt2zC32xwwPgjgI0h12mmkkIA0tAQ1Jwkgc7cOEkrnAUwFAmOYBjpMB+zhRsOnE6hTSwakJABBvd4dkyAJO0B+dNaCAp0PMxUsN0GDzm8ZBh7Kb0ZgeDQva7gn9uYmJE/wG1wJiu2boG/zHzj7SM1ld+F2ek9AwErANP2iyaO7ErGN5YjNY6R1QiHEJnH8Ai3dIJKup1OLz7jTEVcU5wnzjBtB4hHwG5xeuSJQWGCrkP4PjpDhhxaRxqXOhWDiSVCRBwgEjUZvoUazkXNFiLYa2WMRcvWYqhCEQCDeVfL2vgCNTWeI4SXXpmR3VtR0dCpyLiujaovvj5+KtUgji1wURGEURfHfW2t7xN78uHdWCaIkK6qmG6ZlO67nB2EUJ2mWF2VVN23XD+M0L+u2H+d1P+/3c+PWnXsPHj159uLVm3cfPv3w06+1E4djcEp8pIkajrO8rrae6CANodanYjnsMOjvPs5bVgvm3PY5ngwIMHpSAsduswsJRXd1h8ht8qbuvHEFC1Le1k3CSguYSnda1Hpizut6j+v6lcpk1jV8WTubnUkq9YJmC35oc1B5WOf1E1shw7y1Lc5SufGpPvWxpMrXEQTTyiQU5XykG6GV8eQ2MeYe/RIqTCqbJZWWI6WcS0VNsEMtrQohzsDUKYUjhPVUVKcao2ymgdHHkg85oe8mtn0RidRGaw9spajmcoNUOUbYzvdjUWvijHRRJNoBOwxt3qwSgzTM8xwLA7Sk2rIvHxPQZnnqEqjSVXLtxxs3a2EV10pDp0j97k5eVRwGhBeRmUwLBt96c+0fKpKFkbVcKwAA);font-weight:400;font-style:normal}.ag-theme-alpine,.ag-theme-alpine-dark,.ag-theme-alpine-auto-dark{--ag-alpine-active-color: #2196f3;--ag-selected-row-background-color: rgba(33, 150, 243, .3);--ag-row-hover-color: rgba(33, 150, 243, .1);--ag-column-hover-color: rgba(33, 150, 243, .1);--ag-input-focus-border-color: rgba(33, 150, 243, .4);--ag-range-selection-background-color: rgba(33, 150, 243, .2);--ag-range-selection-background-color-2: rgba(33, 150, 243, .36);--ag-range-selection-background-color-3: rgba(33, 150, 243, .49);--ag-range-selection-background-color-4: rgba(33, 150, 243, .59);--ag-background-color: #fff;--ag-foreground-color: #181d1f;--ag-border-color: #babfc7;--ag-secondary-border-color: #dde2eb;--ag-header-background-color: #f8f8f8;--ag-tooltip-background-color: #f8f8f8;--ag-odd-row-background-color: #fcfcfc;--ag-control-panel-background-color: #f8f8f8;--ag-subheader-background-color: #fff;--ag-invalid-color: #e02525;--ag-checkbox-unchecked-color: #999;--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4;--ag-checkbox-background-color: var(--ag-background-color);--ag-checkbox-checked-color: var(--ag-alpine-active-color);--ag-range-selection-border-color: var(--ag-alpine-active-color);--ag-secondary-foreground-color: var(--ag-foreground-color);--ag-input-border-color: var(--ag-border-color);--ag-input-border-color-invalid: var(--ag-invalid-color);--ag-input-focus-box-shadow: 0 0 2px .1rem var(--ag-input-focus-border-color);--ag-panel-background-color: var(--ag-header-background-color);--ag-menu-background-color: var(--ag-header-background-color);--ag-disabled-foreground-color: rgba(24, 29, 31, .5);--ag-chip-background-color: rgba(24, 29, 31, .07);--ag-input-disabled-border-color: rgba(186, 191, 199, .3);--ag-input-disabled-background-color: rgba(186, 191, 199, .15);--ag-borders: solid 1px;--ag-border-radius: 3px;--ag-borders-side-button: none;--ag-side-button-selected-background-color: transparent;--ag-header-column-resize-handle-display: block;--ag-header-column-resize-handle-width: 2px;--ag-header-column-resize-handle-height: 30%;--ag-grid-size: 6px;--ag-icon-size: 16px;--ag-row-height: calc(var(--ag-grid-size) * 7);--ag-header-height: calc(var(--ag-grid-size) * 8);--ag-list-item-height: calc(var(--ag-grid-size) * 4);--ag-column-select-indent-size: var(--ag-icon-size);--ag-set-filter-indent-size: var(--ag-icon-size);--ag-advanced-filter-builder-indent-size: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-cell-widget-spacing: calc(var(--ag-grid-size) * 2);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.5);--ag-toggle-button-height: 18px;--ag-toggle-button-width: 28px;--ag-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--ag-font-size: 13px;--ag-icon-font-family: agGridAlpine;--ag-selected-tab-underline-color: var(--ag-alpine-active-color);--ag-selected-tab-underline-width: 2px;--ag-selected-tab-underline-transition-speed: .3s;--ag-tab-min-width: 240px;--ag-card-shadow: 0 1px 4px 1px rgba(186, 191, 199, .4);--ag-popup-shadow: var(--ag-card-shadow);--ag-side-bar-panel-width: 250px}.ag-theme-alpine-dark{--ag-background-color: #181d1f;--ag-foreground-color: #fff;--ag-border-color: #68686e;--ag-secondary-border-color: rgba(88, 86, 82, .5);--ag-modal-overlay-background-color: rgba(24, 29, 31, .66);--ag-header-background-color: #222628;--ag-tooltip-background-color: #222628;--ag-odd-row-background-color: #222628;--ag-control-panel-background-color: #222628;--ag-subheader-background-color: #000;--ag-input-disabled-background-color: #282c2f;--ag-input-focus-box-shadow: 0 0 2px .5px rgba(255, 255, 255, .5), 0 0 4px 3px var(--ag-input-focus-border-color);--ag-card-shadow: 0 1px 20px 1px black;--ag-disabled-foreground-color: rgba(255, 255, 255, .5);--ag-chip-background-color: rgba(255, 255, 255, .07);--ag-input-disabled-border-color: rgba(104, 104, 110, .3);--ag-input-disabled-background-color: rgba(104, 104, 110, .07);--ag-advanced-filter-join-pill-color: #7a3a37;--ag-advanced-filter-column-pill-color: #355f2d;--ag-advanced-filter-option-pill-color: #5a3168;--ag-advanced-filter-value-pill-color: #374c86;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}@media (prefers-color-scheme: dark){.ag-theme-alpine-auto-dark{--ag-background-color: #181d1f;--ag-foreground-color: #fff;--ag-border-color: #68686e;--ag-secondary-border-color: rgba(88, 86, 82, .5);--ag-modal-overlay-background-color: rgba(24, 29, 31, .66);--ag-header-background-color: #222628;--ag-tooltip-background-color: #222628;--ag-odd-row-background-color: #222628;--ag-control-panel-background-color: #222628;--ag-subheader-background-color: #000;--ag-input-disabled-background-color: #282c2f;--ag-input-focus-box-shadow: 0 0 2px .5px rgba(255, 255, 255, .5), 0 0 4px 3px var(--ag-input-focus-border-color);--ag-card-shadow: 0 1px 20px 1px black;--ag-disabled-foreground-color: rgba(255, 255, 255, .5);--ag-chip-background-color: rgba(255, 255, 255, .07);--ag-input-disabled-border-color: rgba(104, 104, 110, .3);--ag-input-disabled-background-color: rgba(104, 104, 110, .07);--ag-advanced-filter-join-pill-color: #7a3a37;--ag-advanced-filter-column-pill-color: #355f2d;--ag-advanced-filter-option-pill-color: #5a3168;--ag-advanced-filter-value-pill-color: #374c86;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}}.ag-theme-alpine .ag-filter-toolpanel-header,.ag-theme-alpine .ag-filter-toolpanel-search,.ag-theme-alpine .ag-status-bar,.ag-theme-alpine .ag-header-row,.ag-theme-alpine .ag-panel-title-bar-title,.ag-theme-alpine .ag-multi-filter-group-title-bar,.ag-theme-alpine-dark .ag-filter-toolpanel-header,.ag-theme-alpine-dark .ag-filter-toolpanel-search,.ag-theme-alpine-dark .ag-status-bar,.ag-theme-alpine-dark .ag-header-row,.ag-theme-alpine-dark .ag-panel-title-bar-title,.ag-theme-alpine-dark .ag-multi-filter-group-title-bar,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-header,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-search,.ag-theme-alpine-auto-dark .ag-status-bar,.ag-theme-alpine-auto-dark .ag-header-row,.ag-theme-alpine-auto-dark .ag-panel-title-bar-title,.ag-theme-alpine-auto-dark .ag-multi-filter-group-title-bar{font-weight:700;color:var(--ag-header-foreground-color)}.ag-theme-alpine .ag-row,.ag-theme-alpine-dark .ag-row,.ag-theme-alpine-auto-dark .ag-row{font-size:calc(var(--ag-font-size) + 1px)}.ag-theme-alpine input[class^=ag-]:not([type]),.ag-theme-alpine input[class^=ag-][type=text],.ag-theme-alpine input[class^=ag-][type=number],.ag-theme-alpine input[class^=ag-][type=tel],.ag-theme-alpine input[class^=ag-][type=date],.ag-theme-alpine input[class^=ag-][type=datetime-local],.ag-theme-alpine textarea[class^=ag-],.ag-theme-alpine-dark input[class^=ag-]:not([type]),.ag-theme-alpine-dark input[class^=ag-][type=text],.ag-theme-alpine-dark input[class^=ag-][type=number],.ag-theme-alpine-dark input[class^=ag-][type=tel],.ag-theme-alpine-dark input[class^=ag-][type=date],.ag-theme-alpine-dark input[class^=ag-][type=datetime-local],.ag-theme-alpine-dark textarea[class^=ag-],.ag-theme-alpine-auto-dark input[class^=ag-]:not([type]),.ag-theme-alpine-auto-dark input[class^=ag-][type=text],.ag-theme-alpine-auto-dark input[class^=ag-][type=number],.ag-theme-alpine-auto-dark input[class^=ag-][type=tel],.ag-theme-alpine-auto-dark input[class^=ag-][type=date],.ag-theme-alpine-auto-dark input[class^=ag-][type=datetime-local],.ag-theme-alpine-auto-dark textarea[class^=ag-]{min-height:calc(var(--ag-grid-size) * 4);border-radius:var(--ag-border-radius)}.ag-theme-alpine .ag-ltr input[class^=ag-]:not([type]),.ag-theme-alpine .ag-ltr input[class^=ag-][type=text],.ag-theme-alpine .ag-ltr input[class^=ag-][type=number],.ag-theme-alpine .ag-ltr input[class^=ag-][type=tel],.ag-theme-alpine .ag-ltr input[class^=ag-][type=date],.ag-theme-alpine .ag-ltr input[class^=ag-][type=datetime-local],.ag-theme-alpine .ag-ltr textarea[class^=ag-],.ag-theme-alpine-dark .ag-ltr input[class^=ag-]:not([type]),.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=text],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=number],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=tel],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=date],.ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=datetime-local],.ag-theme-alpine-dark .ag-ltr textarea[class^=ag-],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-]:not([type]),.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=text],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=number],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=tel],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=date],.ag-theme-alpine-auto-dark .ag-ltr input[class^=ag-][type=datetime-local],.ag-theme-alpine-auto-dark .ag-ltr textarea[class^=ag-]{padding-left:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl input[class^=ag-]:not([type]),.ag-theme-alpine .ag-rtl input[class^=ag-][type=text],.ag-theme-alpine .ag-rtl input[class^=ag-][type=number],.ag-theme-alpine .ag-rtl input[class^=ag-][type=tel],.ag-theme-alpine .ag-rtl input[class^=ag-][type=date],.ag-theme-alpine .ag-rtl input[class^=ag-][type=datetime-local],.ag-theme-alpine .ag-rtl textarea[class^=ag-],.ag-theme-alpine-dark .ag-rtl input[class^=ag-]:not([type]),.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=text],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=number],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=tel],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=date],.ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=datetime-local],.ag-theme-alpine-dark .ag-rtl textarea[class^=ag-],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-]:not([type]),.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=text],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=number],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=tel],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=date],.ag-theme-alpine-auto-dark .ag-rtl input[class^=ag-][type=datetime-local],.ag-theme-alpine-auto-dark .ag-rtl textarea[class^=ag-]{padding-right:var(--ag-grid-size)}.ag-theme-alpine .ag-tab,.ag-theme-alpine-dark .ag-tab,.ag-theme-alpine-auto-dark .ag-tab{padding:calc(var(--ag-grid-size) * 1.5);transition:color .4s;flex:1 1 auto}.ag-theme-alpine .ag-tab-selected,.ag-theme-alpine-dark .ag-tab-selected,.ag-theme-alpine-auto-dark .ag-tab-selected{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-menu,.ag-theme-alpine-dark .ag-menu,.ag-theme-alpine-auto-dark .ag-menu,.ag-theme-alpine .ag-panel-content-wrapper .ag-column-select,.ag-theme-alpine-dark .ag-panel-content-wrapper .ag-column-select,.ag-theme-alpine-auto-dark .ag-panel-content-wrapper .ag-column-select{background-color:var(--ag-control-panel-background-color)}.ag-theme-alpine .ag-menu-header,.ag-theme-alpine-dark .ag-menu-header,.ag-theme-alpine-auto-dark .ag-menu-header{background-color:var(--ag-control-panel-background-color);padding-top:1px}.ag-theme-alpine .ag-tabs-header,.ag-theme-alpine-dark .ag-tabs-header,.ag-theme-alpine-auto-dark .ag-tabs-header{border-bottom:var(--ag-borders) var(--ag-border-color)}.ag-theme-alpine .ag-charts-settings-group-title-bar,.ag-theme-alpine .ag-charts-data-group-title-bar,.ag-theme-alpine .ag-charts-format-top-level-group-title-bar,.ag-theme-alpine .ag-charts-advanced-settings-top-level-group-title-bar,.ag-theme-alpine-dark .ag-charts-settings-group-title-bar,.ag-theme-alpine-dark .ag-charts-data-group-title-bar,.ag-theme-alpine-dark .ag-charts-format-top-level-group-title-bar,.ag-theme-alpine-dark .ag-charts-advanced-settings-top-level-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-settings-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-data-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-format-top-level-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-advanced-settings-top-level-group-title-bar{padding:var(--ag-grid-size) calc(var(--ag-grid-size) * 2);line-height:calc(var(--ag-icon-size) + var(--ag-grid-size) - 2px)}.ag-theme-alpine .ag-chart-mini-thumbnail,.ag-theme-alpine-dark .ag-chart-mini-thumbnail,.ag-theme-alpine-auto-dark .ag-chart-mini-thumbnail{background-color:var(--ag-background-color)}.ag-theme-alpine .ag-chart-settings-nav-bar,.ag-theme-alpine-dark .ag-chart-settings-nav-bar,.ag-theme-alpine-auto-dark .ag-chart-settings-nav-bar{border-top:var(--ag-borders-secondary) var(--ag-secondary-border-color)}.ag-theme-alpine .ag-ltr .ag-group-title-bar-icon,.ag-theme-alpine-dark .ag-ltr .ag-group-title-bar-icon,.ag-theme-alpine-auto-dark .ag-ltr .ag-group-title-bar-icon{margin-right:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl .ag-group-title-bar-icon,.ag-theme-alpine-dark .ag-rtl .ag-group-title-bar-icon,.ag-theme-alpine-auto-dark .ag-rtl .ag-group-title-bar-icon{margin-left:var(--ag-grid-size)}.ag-theme-alpine .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-dark .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-dark .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-charts-advanced-settings-top-level-group-toolbar{margin-top:var(--ag-grid-size)}.ag-theme-alpine .ag-ltr .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine .ag-ltr .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-dark .ag-ltr .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-dark .ag-ltr .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-ltr .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-ltr .ag-charts-advanced-settings-top-level-group-toolbar{padding-left:calc(var(--ag-icon-size) * .5 + var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-rtl .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine .ag-rtl .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-dark .ag-rtl .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-dark .ag-rtl .ag-charts-advanced-settings-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-rtl .ag-charts-format-top-level-group-toolbar,.ag-theme-alpine-auto-dark .ag-rtl .ag-charts-advanced-settings-top-level-group-toolbar{padding-right:calc(var(--ag-icon-size) * .5 + var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-charts-format-sub-level-group,.ag-theme-alpine-dark .ag-charts-format-sub-level-group,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group{border-left:dashed 1px;border-left-color:var(--ag-border-color);padding-left:var(--ag-grid-size);margin-bottom:calc(var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-charts-format-sub-level-group-title-bar,.ag-theme-alpine-dark .ag-charts-format-sub-level-group-title-bar,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group-title-bar{padding-top:0;padding-bottom:0;background:none;font-weight:700}.ag-theme-alpine .ag-charts-format-sub-level-group-container,.ag-theme-alpine-dark .ag-charts-format-sub-level-group-container,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group-container{padding-bottom:0}.ag-theme-alpine .ag-charts-format-sub-level-group-item:last-child,.ag-theme-alpine-dark .ag-charts-format-sub-level-group-item:last-child,.ag-theme-alpine-auto-dark .ag-charts-format-sub-level-group-item:last-child{margin-bottom:0}.ag-theme-alpine.ag-dnd-ghost,.ag-theme-alpine-dark.ag-dnd-ghost,.ag-theme-alpine-auto-dark.ag-dnd-ghost{font-size:calc(var(--ag-font-size) - 1px);font-weight:700}.ag-theme-alpine .ag-side-buttons,.ag-theme-alpine-dark .ag-side-buttons,.ag-theme-alpine-auto-dark .ag-side-buttons{width:calc(var(--ag-grid-size) * 5)}.ag-theme-alpine .ag-standard-button,.ag-theme-alpine-dark .ag-standard-button,.ag-theme-alpine-auto-dark .ag-standard-button{font-family:inherit;appearance:none;-webkit-appearance:none;border-radius:var(--ag-border-radius);border:1px solid;border-color:var(--ag-alpine-active-color);color:var(--ag-alpine-active-color);background-color:var(--ag-background-color);font-weight:600;padding:var(--ag-grid-size) calc(var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-standard-button:hover,.ag-theme-alpine-dark .ag-standard-button:hover,.ag-theme-alpine-auto-dark .ag-standard-button:hover{border-color:var(--ag-alpine-active-color);background-color:var(--ag-row-hover-color)}.ag-theme-alpine .ag-standard-button:active,.ag-theme-alpine-dark .ag-standard-button:active,.ag-theme-alpine-auto-dark .ag-standard-button:active{border-color:var(--ag-alpine-active-color);background-color:var(--ag-alpine-active-color);color:var(--ag-background-color)}.ag-theme-alpine .ag-standard-button:disabled,.ag-theme-alpine-dark .ag-standard-button:disabled,.ag-theme-alpine-auto-dark .ag-standard-button:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-theme-alpine .ag-column-drop-vertical,.ag-theme-alpine-dark .ag-column-drop-vertical,.ag-theme-alpine-auto-dark .ag-column-drop-vertical{min-height:75px}.ag-theme-alpine .ag-column-drop-vertical-title-bar,.ag-theme-alpine-dark .ag-column-drop-vertical-title-bar,.ag-theme-alpine-auto-dark .ag-column-drop-vertical-title-bar{padding:calc(var(--ag-grid-size) * 2);padding-bottom:0}.ag-theme-alpine .ag-column-drop-vertical-empty-message,.ag-theme-alpine-dark .ag-column-drop-vertical-empty-message,.ag-theme-alpine-auto-dark .ag-column-drop-vertical-empty-message{display:flex;align-items:center;border:dashed 1px;border-color:var(--ag-border-color);margin:calc(var(--ag-grid-size) * 2);padding:calc(var(--ag-grid-size) * 2)}.ag-theme-alpine .ag-column-drop-empty-message,.ag-theme-alpine-dark .ag-column-drop-empty-message,.ag-theme-alpine-auto-dark .ag-column-drop-empty-message{color:var(--ag-foreground-color);opacity:.75}.ag-theme-alpine .ag-pill-select .ag-column-drop,.ag-theme-alpine-dark .ag-pill-select .ag-column-drop,.ag-theme-alpine-auto-dark .ag-pill-select .ag-column-drop{min-height:unset}.ag-theme-alpine .ag-status-bar,.ag-theme-alpine-dark .ag-status-bar,.ag-theme-alpine-auto-dark .ag-status-bar{font-weight:400}.ag-theme-alpine .ag-status-name-value-value,.ag-theme-alpine-dark .ag-status-name-value-value,.ag-theme-alpine-auto-dark .ag-status-name-value-value,.ag-theme-alpine .ag-paging-number,.ag-theme-alpine .ag-paging-row-summary-panel-number,.ag-theme-alpine-dark .ag-paging-number,.ag-theme-alpine-dark .ag-paging-row-summary-panel-number,.ag-theme-alpine-auto-dark .ag-paging-number,.ag-theme-alpine-auto-dark .ag-paging-row-summary-panel-number{font-weight:700}.ag-theme-alpine .ag-column-drop-cell-button,.ag-theme-alpine-dark .ag-column-drop-cell-button,.ag-theme-alpine-auto-dark .ag-column-drop-cell-button{opacity:.5}.ag-theme-alpine .ag-column-drop-cell-button:hover,.ag-theme-alpine-dark .ag-column-drop-cell-button:hover,.ag-theme-alpine-auto-dark .ag-column-drop-cell-button:hover{opacity:.75}.ag-theme-alpine .ag-column-select-column-readonly.ag-icon-grip,.ag-theme-alpine .ag-column-select-column-readonly .ag-icon-grip,.ag-theme-alpine-dark .ag-column-select-column-readonly.ag-icon-grip,.ag-theme-alpine-dark .ag-column-select-column-readonly .ag-icon-grip,.ag-theme-alpine-auto-dark .ag-column-select-column-readonly.ag-icon-grip,.ag-theme-alpine-auto-dark .ag-column-select-column-readonly .ag-icon-grip{opacity:.35}.ag-theme-alpine .ag-header-cell-menu-button:hover,.ag-theme-alpine .ag-header-cell-filter-button:hover,.ag-theme-alpine .ag-side-button-button:hover,.ag-theme-alpine .ag-tab:hover,.ag-theme-alpine .ag-panel-title-bar-button:hover,.ag-theme-alpine .ag-header-expand-icon:hover,.ag-theme-alpine .ag-column-group-icons:hover,.ag-theme-alpine .ag-set-filter-group-icons:hover,.ag-theme-alpine .ag-group-expanded .ag-icon:hover,.ag-theme-alpine .ag-group-contracted .ag-icon:hover,.ag-theme-alpine .ag-chart-settings-prev:hover,.ag-theme-alpine .ag-chart-settings-next:hover,.ag-theme-alpine .ag-group-title-bar-icon:hover,.ag-theme-alpine .ag-column-select-header-icon:hover,.ag-theme-alpine .ag-floating-filter-button-button:hover,.ag-theme-alpine .ag-filter-toolpanel-expand:hover,.ag-theme-alpine .ag-chart-menu-icon:hover,.ag-theme-alpine-dark .ag-header-cell-menu-button:hover,.ag-theme-alpine-dark .ag-header-cell-filter-button:hover,.ag-theme-alpine-dark .ag-side-button-button:hover,.ag-theme-alpine-dark .ag-tab:hover,.ag-theme-alpine-dark .ag-panel-title-bar-button:hover,.ag-theme-alpine-dark .ag-header-expand-icon:hover,.ag-theme-alpine-dark .ag-column-group-icons:hover,.ag-theme-alpine-dark .ag-set-filter-group-icons:hover,.ag-theme-alpine-dark .ag-group-expanded .ag-icon:hover,.ag-theme-alpine-dark .ag-group-contracted .ag-icon:hover,.ag-theme-alpine-dark .ag-chart-settings-prev:hover,.ag-theme-alpine-dark .ag-chart-settings-next:hover,.ag-theme-alpine-dark .ag-group-title-bar-icon:hover,.ag-theme-alpine-dark .ag-column-select-header-icon:hover,.ag-theme-alpine-dark .ag-floating-filter-button-button:hover,.ag-theme-alpine-dark .ag-filter-toolpanel-expand:hover,.ag-theme-alpine-dark .ag-chart-menu-icon:hover,.ag-theme-alpine-auto-dark .ag-header-cell-menu-button:hover,.ag-theme-alpine-auto-dark .ag-header-cell-filter-button:hover,.ag-theme-alpine-auto-dark .ag-side-button-button:hover,.ag-theme-alpine-auto-dark .ag-tab:hover,.ag-theme-alpine-auto-dark .ag-panel-title-bar-button:hover,.ag-theme-alpine-auto-dark .ag-header-expand-icon:hover,.ag-theme-alpine-auto-dark .ag-column-group-icons:hover,.ag-theme-alpine-auto-dark .ag-set-filter-group-icons:hover,.ag-theme-alpine-auto-dark .ag-group-expanded .ag-icon:hover,.ag-theme-alpine-auto-dark .ag-group-contracted .ag-icon:hover,.ag-theme-alpine-auto-dark .ag-chart-settings-prev:hover,.ag-theme-alpine-auto-dark .ag-chart-settings-next:hover,.ag-theme-alpine-auto-dark .ag-group-title-bar-icon:hover,.ag-theme-alpine-auto-dark .ag-column-select-header-icon:hover,.ag-theme-alpine-auto-dark .ag-floating-filter-button-button:hover,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-expand:hover,.ag-theme-alpine-auto-dark .ag-chart-menu-icon:hover{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-header-cell-menu-button:hover .ag-icon,.ag-theme-alpine .ag-header-cell-filter-button:hover .ag-icon,.ag-theme-alpine .ag-side-button-button:hover .ag-icon,.ag-theme-alpine .ag-panel-title-bar-button:hover .ag-icon,.ag-theme-alpine .ag-floating-filter-button-button:hover .ag-icon,.ag-theme-alpine-dark .ag-header-cell-menu-button:hover .ag-icon,.ag-theme-alpine-dark .ag-header-cell-filter-button:hover .ag-icon,.ag-theme-alpine-dark .ag-side-button-button:hover .ag-icon,.ag-theme-alpine-dark .ag-panel-title-bar-button:hover .ag-icon,.ag-theme-alpine-dark .ag-floating-filter-button-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-header-cell-menu-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-header-cell-filter-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-side-button-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-panel-title-bar-button:hover .ag-icon,.ag-theme-alpine-auto-dark .ag-floating-filter-button-button:hover .ag-icon{color:inherit}.ag-theme-alpine .ag-filter-active .ag-icon-filter,.ag-theme-alpine-dark .ag-filter-active .ag-icon-filter,.ag-theme-alpine-auto-dark .ag-filter-active .ag-icon-filter{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-chart-settings-card-item.ag-not-selected:hover,.ag-theme-alpine-dark .ag-chart-settings-card-item.ag-not-selected:hover,.ag-theme-alpine-auto-dark .ag-chart-settings-card-item.ag-not-selected:hover{opacity:.35}.ag-theme-alpine .ag-ltr .ag-panel-title-bar-button,.ag-theme-alpine-dark .ag-ltr .ag-panel-title-bar-button,.ag-theme-alpine-auto-dark .ag-ltr .ag-panel-title-bar-button{margin-left:calc(var(--ag-grid-size) * 2);margin-right:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl .ag-panel-title-bar-button,.ag-theme-alpine-dark .ag-rtl .ag-panel-title-bar-button,.ag-theme-alpine-auto-dark .ag-rtl .ag-panel-title-bar-button{margin-right:calc(var(--ag-grid-size) * 2);margin-left:var(--ag-grid-size)}.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-container,.ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-container,.ag-theme-alpine-auto-dark .ag-ltr .ag-filter-toolpanel-group-container{padding-left:var(--ag-grid-size)}.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-container,.ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-container,.ag-theme-alpine-auto-dark .ag-rtl .ag-filter-toolpanel-group-container{padding-right:var(--ag-grid-size)}.ag-theme-alpine .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-dark .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-auto-dark .ag-filter-toolpanel-instance-filter{border:none;background-color:var(--ag-control-panel-background-color)}.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-auto-dark .ag-ltr .ag-filter-toolpanel-instance-filter{border-left:dashed 1px;border-left-color:var(--ag-border-color);margin-left:calc(var(--ag-icon-size) * .5)}.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-instance-filter,.ag-theme-alpine-auto-dark .ag-rtl .ag-filter-toolpanel-instance-filter{border-right:dashed 1px;border-right-color:var(--ag-border-color);margin-right:calc(var(--ag-icon-size) * .5)}.ag-theme-alpine .ag-set-filter-list,.ag-theme-alpine-dark .ag-set-filter-list,.ag-theme-alpine-auto-dark .ag-set-filter-list{padding-top:calc(var(--ag-grid-size) * .5);padding-bottom:calc(var(--ag-grid-size) * .5)}.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-container,.ag-theme-alpine .ag-layout-print .ag-center-cols-viewport,.ag-theme-alpine .ag-layout-print .ag-center-cols-container,.ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-alpine-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-alpine-dark .ag-layout-print .ag-center-cols-container,.ag-theme-alpine-auto-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-alpine-auto-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-alpine-auto-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-alpine-auto-dark .ag-layout-print .ag-center-cols-container{min-height:150px}.ag-theme-alpine .ag-date-time-list-page-entry-is-current,.ag-theme-alpine-dark .ag-date-time-list-page-entry-is-current,.ag-theme-alpine-auto-dark .ag-date-time-list-page-entry-is-current{background-color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-advanced-filter-builder-button,.ag-theme-alpine-dark .ag-advanced-filter-builder-button,.ag-theme-alpine-auto-dark .ag-advanced-filter-builder-button{padding:var(--ag-grid-size);font-weight:600}.ag-theme-alpine .ag-list-item-hovered:after,.ag-theme-alpine-dark .ag-list-item-hovered:after,.ag-theme-alpine-auto-dark .ag-list-item-hovered:after{background-color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-pill .ag-pill-button:hover,.ag-theme-alpine-dark .ag-pill .ag-pill-button:hover,.ag-theme-alpine-auto-dark .ag-pill .ag-pill-button:hover{color:var(--ag-alpine-active-color)}.ag-theme-alpine .ag-header-highlight-before:after,.ag-theme-alpine .ag-header-highlight-after:after,.ag-theme-alpine-dark .ag-header-highlight-before:after,.ag-theme-alpine-dark .ag-header-highlight-after:after,.ag-theme-alpine-auto-dark .ag-header-highlight-before:after,.ag-theme-alpine-auto-dark .ag-header-highlight-after:after{background-color:var(--ag-alpine-active-color)}:root{background-color:#fff}@media (prefers-color-scheme: dark){:root{background-color:#1a202c;color:#fff}}html{height:100%}body{margin:0;overflow:hidden;height:100%;width:100%;width:-webkit-fill-available;padding:env(safe-area-inset-top,20px) env(safe-area-inset-right,20px) env(safe-area-inset-bottom,20px) env(safe-area-inset-left,20px)}div#root{height:100%;width:100%}*{box-sizing:border-box}\n/*$vite$:1*/',document.head.appendChild(Ye),e({G:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m14 7-5 5 5 5V7z"},child:[]},{tag:"path",attr:{fill:"none",d:"M24 0v24H0V0h24z"},child:[]}]})(e)},H:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m10 17 5-5-5-5v10z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 24V0h24v24H0z"},child:[]}]})(e)},M:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z"},child:[]}]})(e)},R:Kr,Y:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3 5 6.99h3V14h2V6.99h3L9 3z"},child:[]}]})(e)},aA:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"},child:[]}]})(e)},aB:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"},child:[]},{tag:"path",attr:{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"},child:[]}]})(e)},aJ:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"},child:[]}]})(e)},aK:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M5 20h14v-2H5v2zm0-10h4v6h6v-6h4l-7-7-7 7z"},child:[]}]})(e)},aL:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm-7 6-4 4h3v6h2v-6h3l-4-4z"},child:[]}]})(e)},aO:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"},child:[]}]})(e)},aP:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},child:[]}]})(e)},aQ:function(e){var a=e.defaultValue,o=e.min,i=e.max,n=e.step,l=e.onThrottledChange,g=e.leftIcon,c=e.rightIcon,s=t("RmgThrottledSlider"),d=Hr(Ae.useState(null!=a?a:0),2),p=d[0],u=d[1];Ae.useEffect((function(){void 0!==a&&p!==a&&u(a)}),[a]);var h=Br(null!=l?l:function(){},500);return r.jsxs(f,{sx:s,children:[g&&r.jsx(re,{size:"xs",variant:"ghost","aria-label":"Drag left",icon:g,onClick:function(){var e=Math.max(p-10*(null!=n?n:1),null!=o?o:0);null==l||l(e),u(e)}}),r.jsxs(ie,{value:p,min:o,max:i,step:n,onChange:function(e){h(e),u(e)},children:[r.jsx(ne,{children:r.jsx(le,{})}),r.jsx(ge,{})]}),c&&r.jsx(re,{size:"xs",variant:"ghost","aria-label":"Drag right",icon:c,onClick:function(){var e=Math.min(p+10*(null!=n?n:1),null!=i?i:100);null==l||l(e),u(e)}})]})},aV:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},child:[]}]})(e)},aj:function(e){var a=e.defaultValue,t=e.options,o=e.disabledOptions,i=Rr(e,["defaultValue","options","disabledOptions"]),n=Ae.useRef(null);Ae.useEffect((function(){n.current&&(n.current.value=(null==a?void 0:a.toString())||"")}),[a]);var l=function(e,a){return r.jsx("option",{value:e,disabled:void 0!==(null==o?void 0:o.find((function(a){return a.toString()===e}))),children:a},e)};return r.jsx(oe,Tr({ref:n,variant:"flushed",size:"sm",h:6},i,{children:Object.entries(t).map((function(e){var a=Pr(e,2),t=a[0],o=a[1];return"object"==typeof o?r.jsx("optgroup",{label:t,children:Object.entries(o).map((function(e){var a=Pr(e,2),t=a[0],o=a[1];return l(t,o)}))},t):l(t,o)}))}))},ak:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"},child:[]}]})(e)},al:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m19 8-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 0 1-2.8-.7l-1.46 1.46A7.93 7.93 0 0 0 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0 0 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"},child:[]}]})(e)},at:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"},child:[]}]})(e)},au:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"},child:[]}]})(e)},av:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10a2.5 2.5 0 0 0 2.5-2.5c0-.61-.23-1.2-.64-1.67a.528.528 0 0 1-.13-.33c0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zM5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S7.33 13 6.5 13 5 12.33 5 11.5zm6-4c0 .83-.67 1.5-1.5 1.5S8 8.33 8 7.5 8.67 6 9.5 6s1.5.67 1.5 1.5z"},child:[]}]})(e)},f:function(e){var a=e.selections,t=e.defaultValue,o=e.onChange,i=e.multiSelect,n=lr(Ae.useState(t),2),l=n[0],g=n[1];return Ae.useEffect((function(){t.toString()&&g(t)}),[t.toString()]),r.jsx(I,{size:"xs",isAttached:!0,colorScheme:"primary",variant:"outline",children:a.map((function(e,t){var n="object"==typeof l&&l.includes(e.value)||l===e.value,c=t===a.length-1||n?void 0:"-px";return r.jsx(E,{role:"checkbox","aria-checked":n,variant:n?"solid":"outline",mr:c,flex:1,isDisabled:e.disabled,onClick:function(){return function(e){if(i){var a=l,t=a.includes(e)?a.filter((function(a){return a!==e})):gr(gr([],lr(a),!1),[e],!1);g(t),null==o||o(t)}else g(e),null==o||o(e)}(e.value)},children:e.label},e.value.toString())}))})},i:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"},child:[]}]})(e)},k:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"},child:[]}]})(e)},l:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"},child:[]}]})(e)},w:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m7 14 5-5 5 5z"},child:[]}]})(e)},x:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m7 10 5 5 5-5z"},child:[]}]})(e)},z:function(e){return we({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 13H5v-2h14v2z"},child:[]}]})(e)}});var We=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(a){i(a)}}function l(e){try{g(o.throw(e))}catch(a){i(a)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};const Qe=e=>new Promise((a=>{setTimeout(a,e,`Timeout after ${e/1e3} seconds`)})),Je=e=>{let a=0;for(let t=0;t{const a=(16777215&e).toString(16).toUpperCase();return"#"+"00000".substring(0,6-a.length)+a};var Ke;!function(e){e.DEV="DEV",e.UAT="UAT",e.PRD="PRD"}(Ke||(Ke={}));const Ze="rmg-runtime__language",qe="rmg-runtime__colourMode",Xe="rmg-runtime__allowAnalytics",ea="rmg-unknown";let aa=ea,ta=$e(Je(ea));const oa=()=>`[${aa}]`,ra=()=>ta,ia=(e,a,t)=>(...o)=>{"string"==typeof o[0]?e(`%c${a()}%c ${o[0]}`,`color: ${t()}`,"",...o.slice(1)):e(`%c${a()}%c`,`color: ${t()}`,"",...o)},na={debug:ia(console.debug,oa,ra),info:ia(console.info,oa,ra),warn:ia(console.warn,oa,ra),error:ia(console.error,oa,ra)},la=()=>aa===ea?"[runtime]":`[runtime@${aa}]`,ga=$e(Je("runtime")),ca=()=>ga,sa={setup:e=>{aa=e,ta=$e(Je(e))},logger:na,debug:ia(console.debug,la,ca),info:ia(console.info,la,ca),warn:ia(console.warn,la,ca),error:ia(console.error,la,ca),group:ia(console.group,la,ca),groupEnd:console.groupEnd};var da=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(a){i(a)}}function l(e){try{g(o.throw(e))}catch(a){i(a)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};let pa,ua,ha,fa,va;const ma=()=>{pa=!1,ua=ea,ha="unknown",fa=Ke.PRD,va="unknown"},ba=()=>"railmapgen.github.io"===ua;ma();const ya={loadWithTimeout:()=>da(void 0,void 0,void 0,(function*(){try{sa.group("Loading config...");const e=yield Promise.race([da(void 0,void 0,void 0,(function*(){const e=window.location.pathname.split("/")[1],a=e?`/${e}/info.json`:"/info.json",t=yield fetch(a);if(!t.ok)throw new Error(`Failed to fetch config from ${a}`);{const e=yield t.json();sa.info("Received info.json",e),ua=e.component,ha=e.version,fa=e.environment,va=e.instance}})),Qe(1e4)]);e?sa.error("❌ Failed to load config.",e):(pa=!0,sa.info("✅ Config loaded!"))}catch(e){sa.error("❌ Failed to load config.",e)}finally{sa.groupEnd()}})),isInitialised:()=>pa,getComponent:()=>ba()?"rmg-home":ua,getVersion:()=>ha,getEnvironment:()=>fa,getInstance:()=>va,isRMT:ba,_resetConfig:ma};function wa(...e){if(ya.getEnvironment()!==Ke.DEV)return window.dataLayer.push(arguments);sa.info("Not going to send event in DEV environment",e)}window.dataLayer=window.dataLayer||[];const xa={init:()=>{(()=>{const e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-2HP8Y4MRRQ",document.head.append(e)})(),wa("js",new Date),wa("config","G-2HP8Y4MRRQ",{appName:ya.getComponent(),version:ya.getVersion(),environment:ya.getEnvironment(),instance:ya.getInstance()})},customEvent:(e,a={})=>{wa("event",e,a)}},ka={};let za;try{za=new BroadcastChannel("rmg-runtime-channel"),za.onmessage=e=>{var a;const{event:t,data:o,frameId:r}=e.data;null===(a=ka[t])||void 0===a||a.forEach((e=>e(o,r)))}}catch(nl){sa.warn("Failed to initiate broadcast channel. Some features may be unavailable.",nl)}const Ma={postEvent:(e,a)=>{var t;sa.debug(`Broadcasting event ${e} with data`,a),null==za||za.postMessage({event:e,data:a,frameId:null===(t=window.frameElement)||void 0===t?void 0:t.id})},onMessage:(e,a)=>{var t;e in ka?null===(t=ka[e])||void 0===t||t.push(a):ka[e]=[a]}},ja="TOGGLE_NAV_MENU",Sa="OPEN_APP",Na="CLOSE_APP",Oa="UPDATE_APP_METADATA",Aa="UPDATE_URL",Ia=()=>!window.frameElement,Ea={isStandaloneWindow:Ia,injectUITools:()=>{if(!Ia()){const e=document.createElement("style");e.textContent="body{padding: 0;}",document.head.appendChild(e)}const e=document.createElement("style");var a;e.textContent=".rmg-window__header:not(.rmg-window__app-clip-header){margin-left: 40px;}",Ia()||(null===(a=window.frameElement)||void 0===a?void 0:a.closest(".show-menu"))||document.head.appendChild(e),Ia()||Ma.onMessage(ja,(a=>{if(a)try{document.head.removeChild(e)}catch(nl){sa.warn("Unable to remove indent style from RmgWindowHeader",nl)}else document.head.appendChild(e)}))},openApp:e=>{Ma.postEvent(Sa,e)},onAppOpen:e=>{Ma.onMessage(Sa,e)},closeApp:e=>{Ma.postEvent(Na,e)},onAppClose:e=>{Ma.onMessage(Na,e)},updateAppMetadata:e=>{Ma.postEvent(Oa,e)},onAppMetadataUpdate:e=>{Ma.onMessage(Oa,e)},updateUrl:e=>{Ma.postEvent(Aa,e)},onUrlUpdate:e=>{Ma.onMessage(Aa,e)},toggleNavMenu:e=>{Ma.postEvent(ja,e)}},Da="SET_LANGUAGE",La="SET_COLOUR_MODE",Ca=["light","dark","system"],Ta=()=>"true"===window.localStorage.getItem(Xe),Ra={setLanguage:e=>{Ma.postEvent(Da,e),window.localStorage.setItem(Ze,e)},getLanguage:()=>window.localStorage.getItem(Ze)||"en",onLanguageChange:e=>{Ma.onMessage(Da,e)},setColourMode:e=>{Ca.includes(e)&&(Ma.postEvent(La,e),window.localStorage.setItem(qe,e))},getColourMode:()=>{const e=window.localStorage.getItem(qe);return a=e,Boolean(a&&Ca.includes(a))?e:"system";var a},onColourModeChange:e=>{Ma.onMessage(La,e)},isAnalyticsQADone:()=>null!==window.localStorage.getItem(Xe),isAllowAnalytics:Ta,allowAnalytics:e=>{const a=Ta();return e?(a||(window.localStorage.setItem(Xe,e.toString()),xa.init()),{refreshRequired:!1}):a?(window.localStorage.setItem(Xe,e.toString()),{refreshRequired:!0}):{refreshRequired:!1}}},Pa=(new Date).getTime(),_a={getMsSinceStartUp:function(){const e=ya.getComponent(),a=window.localStorage.getItem(e+"__startTime");return null===a?(new Date).getTime()-Pa:(new Date).getTime()-Number(a)}},Ua={},Ba=()=>{const e=ya.getComponent();if(e===ea)throw new Error("Unable to clear storage for unknown app");return e};window.addEventListener("storage",(e=>{var a;const{key:t,newValue:o}=e;t&&(null===(a=Ua[t])||void 0===a||a.forEach((e=>e(o))))}));const Ha={on:(e,a)=>{var t;const o=`${Ba()}__${e}`;o in Ua?null===(t=Ua[o])||void 0===t||t.push(a):Ua[o]=[a]},get:e=>{const a=Ba();return window.localStorage.getItem(`${a}__${e}`)},getAll:()=>{const e=Ba(),a={};let t=0;for(;t{const t=Ba();window.localStorage.setItem(`${t}__${e}`,a)},remove:e=>{const a=Ba();window.localStorage.removeItem(`${a}__${e}`)},clear:()=>{const e=Ba();let a=0;for(;a1&&void 0!==arguments[1]?arguments[1]:{};this.init(e,a)}init(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=a.prefix||"i18next:",this.logger=e||Va,this.options=a,this.debug=a.debug}log(){for(var e=arguments.length,a=new Array(e),t=0;t{this.observers[e]||(this.observers[e]=new Map);const t=this.observers[e].get(a)||0;this.observers[e].set(a,t+1)})),this}off(e,a){this.observers[e]&&(a?this.observers[e].delete(a):delete this.observers[e])}emit(e){for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o{let[a,o]=e;for(let r=0;r{let[o,r]=a;for(let i=0;i{let e,a;const t=new Promise(((t,o)=>{e=t,a=o}));return t.resolve=e,t.reject=a,t},Qa=e=>null==e?"":""+e,Ja=/###/g,$a=e=>e&&e.indexOf("###")>-1?e.replace(Ja,"."):e,Ka=e=>!e||"string"==typeof e,Za=(e,a,t)=>{const o="string"!=typeof a?a:a.split(".");let r=0;for(;r{const{obj:o,k:r}=Za(e,a,Object);if(void 0!==o||1===a.length)return void(o[r]=t);let i=a[a.length-1],n=a.slice(0,a.length-1),l=Za(e,n,Object);for(;void 0===l.obj&&n.length;)i=`${n[n.length-1]}.${i}`,n=n.slice(0,n.length-1),l=Za(e,n,Object),l&&l.obj&&void 0!==l.obj[`${l.k}.${i}`]&&(l.obj=void 0);l.obj[`${l.k}.${i}`]=t},Xa=(e,a)=>{const{obj:t,k:o}=Za(e,a);if(t)return t[o]},et=(e,a,t)=>{for(const o in a)"__proto__"!==o&&"constructor"!==o&&(o in e?"string"==typeof e[o]||e[o]instanceof String||"string"==typeof a[o]||a[o]instanceof String?t&&(e[o]=a[o]):et(e[o],a[o],t):e[o]=a[o]);return e},at=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var tt={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ot=e=>"string"==typeof e?e.replace(/[&<>"'\/]/g,(e=>tt[e])):e,rt=[" ",",","?","!",";"],it=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const a=this.regExpMap.get(e);if(void 0!==a)return a;const t=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,t),this.regExpQueue.push(e),t}}(20),nt=function(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!e)return;if(e[a])return e[a];const o=a.split(t);let r=e;for(let i=0;i-1&&ne&&e.indexOf("_")>0?e.replace("_","-"):e;class gt extends Ya{constructor(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=a,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const a=this.options.ns.indexOf(e);a>-1&&this.options.ns.splice(a,1)}getResource(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,i=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let n;e.indexOf(".")>-1?n=e.split("."):(n=[e,a],t&&(Array.isArray(t)?n.push(...t):"string"==typeof t&&r?n.push(...t.split(r)):n.push(t)));const l=Xa(this.data,n);return!l&&!a&&!t&&e.indexOf(".")>-1&&(e=n[0],a=n[1],t=n.slice(2).join(".")),l||!i||"string"!=typeof t?l:nt(this.data&&this.data[e]&&this.data[e][a],t,r)}addResource(e,a,t,o){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1};const i=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator;let n=[e,a];t&&(n=n.concat(i?t.split(i):t)),e.indexOf(".")>-1&&(n=e.split("."),o=a,a=n[1]),this.addNamespaces(a),qa(this.data,n,o),r.silent||this.emit("added",e,a,t,o)}addResources(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(const r in t)("string"==typeof t[r]||Array.isArray(t[r]))&&this.addResource(e,a,r,t[r],{silent:!0});o.silent||this.emit("added",e,a,t)}addResourceBundle(e,a,t,o,r){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1,skipCopy:!1},n=[e,a];e.indexOf(".")>-1&&(n=e.split("."),o=t,t=a,a=n[1]),this.addNamespaces(a);let l=Xa(this.data,n)||{};i.skipCopy||(t=JSON.parse(JSON.stringify(t))),o?et(l,t,r):l={...l,...t},qa(this.data,n,l),i.silent||this.emit("added",e,a,t)}removeResourceBundle(e,a){this.hasResourceBundle(e,a)&&delete this.data[e][a],this.removeNamespaces(a),this.emit("removed",e,a)}hasResourceBundle(e,a){return void 0!==this.getResource(e,a)}getResourceBundle(e,a){return a||(a=this.options.defaultNS),"v1"===this.options.compatibilityAPI?{...this.getResource(e,a)}:this.getResource(e,a)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const a=this.getDataByLanguage(e);return!!(a&&Object.keys(a)||[]).find((e=>a[e]&&Object.keys(a[e]).length>0))}toJSON(){return this.data}}var ct={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,a,t,o,r){return e.forEach((e=>{this.processors[e]&&(a=this.processors[e].process(a,t,o,r))})),a}};const st={};class dt extends Ya{constructor(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var t,o;super(),t=e,o=this,["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"].forEach((e=>{t[e]&&(o[e]=t[e])})),this.options=a,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=Fa.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;const t=this.resolve(e,a);return t&&void 0!==t.res}extractFromKey(e,a){let t=void 0!==a.nsSeparator?a.nsSeparator:this.options.nsSeparator;void 0===t&&(t=":");const o=void 0!==a.keySeparator?a.keySeparator:this.options.keySeparator;let r=a.ns||this.options.defaultNS||[];const i=t&&e.indexOf(t)>-1,n=!(this.options.userDefinedKeySeparator||a.keySeparator||this.options.userDefinedNsSeparator||a.nsSeparator||((e,a,t)=>{a=a||"",t=t||"";const o=rt.filter((e=>a.indexOf(e)<0&&t.indexOf(e)<0));if(0===o.length)return!0;const r=it.getRegExp(`(${o.map((e=>"?"===e?"\\?":e)).join("|")})`);let i=!r.test(e);if(!i){const a=e.indexOf(t);a>0&&!r.test(e.substring(0,a))&&(i=!0)}return i})(e,t,o));if(i&&!n){const a=e.match(this.interpolator.nestingRegexp);if(a&&a.length>0)return{key:e,namespaces:r};const i=e.split(t);(t!==o||t===o&&this.options.ns.indexOf(i[0])>-1)&&(r=i.shift()),e=i.join(o)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}translate(e,a,t){if("object"!=typeof a&&this.options.overloadTranslationOptionHandler&&(a=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof a&&(a={...a}),a||(a={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);const o=void 0!==a.returnDetails?a.returnDetails:this.options.returnDetails,r=void 0!==a.keySeparator?a.keySeparator:this.options.keySeparator,{key:i,namespaces:n}=this.extractFromKey(e[e.length-1],a),l=n[n.length-1],g=a.lng||this.language,c=a.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(g&&"cimode"===g.toLowerCase()){if(c){const e=a.nsSeparator||this.options.nsSeparator;return o?{res:`${l}${e}${i}`,usedKey:i,exactUsedKey:i,usedLng:g,usedNS:l,usedParams:this.getUsedParamsDetails(a)}:`${l}${e}${i}`}return o?{res:i,usedKey:i,exactUsedKey:i,usedLng:g,usedNS:l,usedParams:this.getUsedParamsDetails(a)}:i}const s=this.resolve(e,a);let d=s&&s.res;const p=s&&s.usedKey||i,u=s&&s.exactUsedKey||i,h=Object.prototype.toString.apply(d),f=void 0!==a.joinArrays?a.joinArrays:this.options.joinArrays,v=!this.i18nFormat||this.i18nFormat.handleAsObject;if(v&&d&&"string"!=typeof d&&"boolean"!=typeof d&&"number"!=typeof d&&["[object Number]","[object Function]","[object RegExp]"].indexOf(h)<0&&("string"!=typeof f||!Array.isArray(d))){if(!a.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,d,{...a,ns:n}):`key '${i} (${this.language})' returned an object instead of string.`;return o?(s.res=e,s.usedParams=this.getUsedParamsDetails(a),s):e}if(r){const e=Array.isArray(d),t=e?[]:{},o=e?u:p;for(const i in d)if(Object.prototype.hasOwnProperty.call(d,i)){const e=`${o}${r}${i}`;t[i]=this.translate(e,{...a,joinArrays:!1,ns:n}),t[i]===e&&(t[i]=d[i])}d=t}}else if(v&&"string"==typeof f&&Array.isArray(d))d=d.join(f),d&&(d=this.extendTranslation(d,e,a,t));else{let o=!1,n=!1;const c=void 0!==a.count&&"string"!=typeof a.count,p=dt.hasDefaultValue(a),u=c?this.pluralResolver.getSuffix(g,a.count,a):"",h=a.ordinal&&c?this.pluralResolver.getSuffix(g,a.count,{ordinal:!1}):"",f=c&&!a.ordinal&&0===a.count&&this.pluralResolver.shouldUseIntlApi(),v=f&&a[`defaultValue${this.options.pluralSeparator}zero`]||a[`defaultValue${u}`]||a[`defaultValue${h}`]||a.defaultValue;!this.isValidLookup(d)&&p&&(o=!0,d=v),this.isValidLookup(d)||(n=!0,d=i);const m=(a.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:d,b=p&&v!==d&&this.options.updateMissing;if(n||o||b){if(this.logger.log(b?"updateKey":"missingKey",g,l,i,b?v:d),r){const e=this.resolve(i,{...a,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,a.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let a=0;a{const r=p&&o!==d?o:m;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,b,a):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,b,a),this.emit("missingKey",e,l,t,d)};this.options.saveMissing&&(this.options.saveMissingPlurals&&c?e.forEach((e=>{const t=this.pluralResolver.getSuffixes(e,a);f&&a[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach((t=>{o([e],i+t,a[`defaultValue${t}`]||v)}))})):o(e,i,v))}d=this.extendTranslation(d,e,a,s,t),n&&d===i&&this.options.appendNamespaceToMissingKey&&(d=`${l}:${i}`),(n||o)&&this.options.parseMissingKeyHandler&&(d="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${i}`:i,o?d:void 0):this.options.parseMissingKeyHandler(d))}return o?(s.res=d,s.usedParams=this.getUsedParamsDetails(a),s):d}extendTranslation(e,a,t,o,r){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...t},t.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!t.skipInterpolation){t.interpolation&&this.interpolator.init({...t,interpolation:{...this.options.interpolation,...t.interpolation}});const n="string"==typeof e&&(t&&t.interpolation&&void 0!==t.interpolation.skipOnVariables?t.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let l;if(n){const a=e.match(this.interpolator.nestingRegexp);l=a&&a.length}let g=t.replace&&"string"!=typeof t.replace?t.replace:t;if(this.options.interpolation.defaultVariables&&(g={...this.options.interpolation.defaultVariables,...g}),e=this.interpolator.interpolate(e,g,t.lng||this.language||o.usedLng,t),n){const a=e.match(this.interpolator.nestingRegexp);l<(a&&a.length)&&(t.nest=!1)}!t.lng&&"v1"!==this.options.compatibilityAPI&&o&&o.res&&(t.lng=this.language||o.usedLng),!1!==t.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,o=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((e=>{if(this.isValidLookup(a))return;const l=this.extractFromKey(e,n),g=l.key;t=g;let c=l.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const s=void 0!==n.count&&"string"!=typeof n.count,d=s&&!n.ordinal&&0===n.count&&this.pluralResolver.shouldUseIntlApi(),p=void 0!==n.context&&("string"==typeof n.context||"number"==typeof n.context)&&""!==n.context,u=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);c.forEach((e=>{this.isValidLookup(a)||(i=e,!st[`${u[0]}-${e}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(i)&&(st[`${u[0]}-${e}`]=!0,this.logger.warn(`key "${t}" for languages "${u.join(", ")}" won't get resolved as namespace "${i}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),u.forEach((t=>{if(this.isValidLookup(a))return;r=t;const i=[g];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(i,g,t,e,n);else{let e;s&&(e=this.pluralResolver.getSuffix(t,n.count,n));const a=`${this.options.pluralSeparator}zero`,o=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(s&&(i.push(g+e),n.ordinal&&0===e.indexOf(o)&&i.push(g+e.replace(o,this.options.pluralSeparator)),d&&i.push(g+a)),p){const t=`${g}${this.options.contextSeparator}${n.context}`;i.push(t),s&&(i.push(t+e),n.ordinal&&0===e.indexOf(o)&&i.push(t+e.replace(o,this.options.pluralSeparator)),d&&i.push(t+a))}}let l;for(;l=i.pop();)this.isValidLookup(a)||(o=l,a=this.getResource(t,e,l,n))})))}))})),{res:a,usedKey:t,exactUsedKey:o,usedLng:r,usedNS:i}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,a,t,o):this.resourceStore.getResource(e,a,t,o)}getUsedParamsDetails(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],t=e.replace&&"string"!=typeof e.replace;let o=t?e.replace:e;if(t&&void 0!==e.count&&(o.count=e.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!t){o={...o};for(const e of a)delete o[e]}return o}static hasDefaultValue(e){const a="defaultValue";for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&a===t.substring(0,12)&&void 0!==e[t])return!0;return!1}}const pt=e=>e.charAt(0).toUpperCase()+e.slice(1);class ut{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Fa.create("languageUtils")}getScriptPartFromCode(e){if(!(e=lt(e))||e.indexOf("-")<0)return null;const a=e.split("-");return 2===a.length?null:(a.pop(),"x"===a[a.length-1].toLowerCase()?null:this.formatLanguageCode(a.join("-")))}getLanguagePartFromCode(e){if(!(e=lt(e))||e.indexOf("-")<0)return e;const a=e.split("-");return this.formatLanguageCode(a[0])}formatLanguageCode(e){if("string"==typeof e&&e.indexOf("-")>-1){const a=["hans","hant","latn","cyrl","cans","mong","arab"];let t=e.split("-");return this.options.lowerCaseLng?t=t.map((e=>e.toLowerCase())):2===t.length?(t[0]=t[0].toLowerCase(),t[1]=t[1].toUpperCase(),a.indexOf(t[1].toLowerCase())>-1&&(t[1]=pt(t[1].toLowerCase()))):3===t.length&&(t[0]=t[0].toLowerCase(),2===t[1].length&&(t[1]=t[1].toUpperCase()),"sgn"!==t[0]&&2===t[2].length&&(t[2]=t[2].toUpperCase()),a.indexOf(t[1].toLowerCase())>-1&&(t[1]=pt(t[1].toLowerCase())),a.indexOf(t[2].toLowerCase())>-1&&(t[2]=pt(t[2].toLowerCase()))),t.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let a;return e.forEach((e=>{if(a)return;const t=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(t)||(a=t)})),!a&&this.options.supportedLngs&&e.forEach((e=>{if(a)return;const t=this.getLanguagePartFromCode(e);if(this.isSupportedCode(t))return a=t;a=this.options.supportedLngs.find((e=>e===t?e:e.indexOf("-")<0&&t.indexOf("-")<0?void 0:e.indexOf("-")>0&&t.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===t||0===e.indexOf(t)&&t.length>1?e:void 0))})),a||(a=this.getFallbackCodes(this.options.fallbackLng)[0]),a}getFallbackCodes(e,a){if(!e)return[];if("function"==typeof e&&(e=e(a)),"string"==typeof e&&(e=[e]),Array.isArray(e))return e;if(!a)return e.default||[];let t=e[a];return t||(t=e[this.getScriptPartFromCode(a)]),t||(t=e[this.formatLanguageCode(a)]),t||(t=e[this.getLanguagePartFromCode(a)]),t||(t=e.default),t||[]}toResolveHierarchy(e,a){const t=this.getFallbackCodes(a||this.options.fallbackLng||[],e),o=[],r=e=>{e&&(this.isSupportedCode(e)?o.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return"string"==typeof e&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?("languageOnly"!==this.options.load&&r(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&r(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&r(this.getLanguagePartFromCode(e))):"string"==typeof e&&r(this.formatLanguageCode(e)),t.forEach((e=>{o.indexOf(e)<0&&r(this.formatLanguageCode(e))})),o}}let ht=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],ft={1:e=>Number(e>1),2:e=>Number(1!=e),3:e=>0,4:e=>Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2),5:e=>Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5),6:e=>Number(1==e?0:e>=2&&e<=4?1:2),7:e=>Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2),8:e=>Number(1==e?0:2==e?1:8!=e&&11!=e?2:3),9:e=>Number(e>=2),10:e=>Number(1==e?0:2==e?1:e<7?2:e<11?3:4),11:e=>Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3),12:e=>Number(e%10!=1||e%100==11),13:e=>Number(0!==e),14:e=>Number(1==e?0:2==e?1:3==e?2:3),15:e=>Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2),16:e=>Number(e%10==1&&e%100!=11?0:0!==e?1:2),17:e=>Number(1==e||e%10==1&&e%100!=11?0:1),18:e=>Number(0==e?0:1==e?1:2),19:e=>Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3),20:e=>Number(1==e?0:0==e||e%100>0&&e%100<20?1:2),21:e=>Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0),22:e=>Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)};const vt=["v1","v2","v3"],mt=["v4"],bt={zero:0,one:1,two:2,few:3,many:4,other:5};class yt{constructor(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.languageUtils=e,this.options=a,this.logger=Fa.create("pluralResolver"),this.options.compatibilityJSON&&!mt.includes(this.options.compatibilityJSON)||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=(()=>{const e={};return ht.forEach((a=>{a.lngs.forEach((t=>{e[t]={numbers:a.nr,plurals:ft[a.fc]}}))})),e})(),this.pluralRulesCache={}}addRule(e,a){this.rules[e]=a}clearCache(){this.pluralRulesCache={}}getRule(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{const t=lt("dev"===e?"en":e),o=a.ordinal?"ordinal":"cardinal",r=JSON.stringify({cleanedCode:t,type:o});if(r in this.pluralRulesCache)return this.pluralRulesCache[r];const i=new Intl.PluralRules(t,{type:o});return this.pluralRulesCache[r]=i,i}catch(t){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=this.getRule(e,a);return this.shouldUseIntlApi()?t&&t.resolvedOptions().pluralCategories.length>1:t&&t.numbers.length>1}getPluralFormsOfKey(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,t).map((e=>`${a}${e}`))}getSuffixes(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=this.getRule(e,a);return t?this.shouldUseIntlApi()?t.resolvedOptions().pluralCategories.sort(((e,a)=>bt[e]-bt[a])).map((e=>`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${e}`)):t.numbers.map((t=>this.getSuffix(e,t,a))):[]}getSuffix(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=this.getRule(e,t);return o?this.shouldUseIntlApi()?`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${o.select(a)}`:this.getSuffixRetroCompatible(o,a):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,a){const t=e.noAbs?e.plurals(a):e.plurals(Math.abs(a));let o=e.numbers[t];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===o?o="plural":1===o&&(o=""));const r=()=>this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString();return"v1"===this.options.compatibilityJSON?1===o?"":"number"==typeof o?`_plural_${o.toString()}`:r():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?r():this.options.prepend&&t.toString()?this.options.prepend+t.toString():t.toString()}shouldUseIntlApi(){return!vt.includes(this.options.compatibilityJSON)}}const wt=function(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=((e,a,t)=>{const o=Xa(e,t);return void 0!==o?o:Xa(a,t)})(e,a,t);return!i&&r&&"string"==typeof t&&(i=nt(e,t,o),void 0===i&&(i=nt(a,t,o))),i},xt=e=>e.replace(/\$/g,"$$$$");class kt{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=Fa.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(e=>e),this.init(e)}init(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:a,escapeValue:t,useRawValueToEscape:o,prefix:r,prefixEscaped:i,suffix:n,suffixEscaped:l,formatSeparator:g,unescapeSuffix:c,unescapePrefix:s,nestingPrefix:d,nestingPrefixEscaped:p,nestingSuffix:u,nestingSuffixEscaped:h,nestingOptionsSeparator:f,maxReplaces:v,alwaysFormat:m}=e.interpolation;this.escape=void 0!==a?a:ot,this.escapeValue=void 0===t||t,this.useRawValueToEscape=void 0!==o&&o,this.prefix=r?at(r):i||"{{",this.suffix=n?at(n):l||"}}",this.formatSeparator=g||",",this.unescapePrefix=c?"":s||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=d?at(d):p||at("$t("),this.nestingSuffix=u?at(u):h||at(")"),this.nestingOptionsSeparator=f||",",this.maxReplaces=v||1e3,this.alwaysFormat=void 0!==m&&m,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,a)=>e&&e.source===a?(e.lastIndex=0,e):new RegExp(a,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,a,t,o){let r,i,n;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},g=e=>{if(e.indexOf(this.formatSeparator)<0){const r=wt(a,l,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(r,void 0,t,{...o,...a,interpolationkey:e}):r}const r=e.split(this.formatSeparator),i=r.shift().trim(),n=r.join(this.formatSeparator).trim();return this.format(wt(a,l,i,this.options.keySeparator,this.options.ignoreJSONStructure),n,t,{...o,...a,interpolationkey:i})};this.resetRegExp();const c=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,s=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>xt(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?xt(this.escape(e)):xt(e)}].forEach((a=>{for(n=0;r=a.regex.exec(e);){const t=r[1].trim();if(i=g(t),void 0===i)if("function"==typeof c){const a=c(e,r,o);i="string"==typeof a?a:""}else if(o&&Object.prototype.hasOwnProperty.call(o,t))i="";else{if(s){i=r[0];continue}this.logger.warn(`missed to pass in variable ${t} for interpolating ${e}`),i=""}else"string"==typeof i||this.useRawValueToEscape||(i=Qa(i));const l=a.safeValue(i);if(e=e.replace(r[0],l),s?(a.regex.lastIndex+=i.length,a.regex.lastIndex-=r[0].length):a.regex.lastIndex=0,n++,n>=this.maxReplaces)break}})),e}nest(e,a){let t,o,r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=(e,a)=>{const t=this.nestingOptionsSeparator;if(e.indexOf(t)<0)return e;const o=e.split(new RegExp(`${t}[ ]*{`));let i=`{${o[1]}`;e=o[0],i=this.interpolate(i,r);const n=i.match(/'/g),l=i.match(/"/g);(n&&n.length%2==0&&!l||l.length%2!=0)&&(i=i.replace(/'/g,'"'));try{r=JSON.parse(i),a&&(r={...a,...r})}catch(nl){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,nl),`${e}${t}${i}`}return r.defaultValue&&r.defaultValue.indexOf(this.prefix)>-1&&delete r.defaultValue,e};for(;t=this.nestingRegexp.exec(e);){let l=[];r={...i},r=r.replace&&"string"!=typeof r.replace?r.replace:r,r.applyPostProcessor=!1,delete r.defaultValue;let g=!1;if(-1!==t[0].indexOf(this.formatSeparator)&&!/{.*}/.test(t[1])){const e=t[1].split(this.formatSeparator).map((e=>e.trim()));t[1]=e.shift(),l=e,g=!0}if(o=a(n.call(this,t[1].trim(),r),r),o&&t[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=Qa(o)),o||(this.logger.warn(`missed to resolve ${t[1]} for nesting ${e}`),o=""),g&&(o=l.reduce(((e,a)=>this.format(e,a,i.lng,{...i,interpolationkey:t[1].trim()})),o.trim())),e=e.replace(t[0],o),this.regexp.lastIndex=0}return e}}const zt=e=>{const a={};return(t,o,r)=>{let i=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(i={...i,[r.interpolationkey]:void 0});const n=o+JSON.stringify(i);let l=a[n];return l||(l=e(lt(o),r),a[n]=l),l(t)}};class Mt{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=Fa.create("formatter"),this.options=e,this.formats={number:zt(((e,a)=>{const t=new Intl.NumberFormat(e,{...a});return e=>t.format(e)})),currency:zt(((e,a)=>{const t=new Intl.NumberFormat(e,{...a,style:"currency"});return e=>t.format(e)})),datetime:zt(((e,a)=>{const t=new Intl.DateTimeFormat(e,{...a});return e=>t.format(e)})),relativetime:zt(((e,a)=>{const t=new Intl.RelativeTimeFormat(e,{...a});return e=>t.format(e,a.range||"day")})),list:zt(((e,a)=>{const t=new Intl.ListFormat(e,{...a});return e=>t.format(e)}))},this.init(e)}init(e){const a=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=a.formatSeparator?a.formatSeparator:a.formatSeparator||","}add(e,a){this.formats[e.toLowerCase().trim()]=a}addCached(e,a){this.formats[e.toLowerCase().trim()]=zt(a)}format(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const r=a.split(this.formatSeparator);if(r.length>1&&r[0].indexOf("(")>1&&r[0].indexOf(")")<0&&r.find((e=>e.indexOf(")")>-1))){const e=r.findIndex((e=>e.indexOf(")")>-1));r[0]=[r[0],...r.splice(1,e)].join(this.formatSeparator)}return r.reduce(((e,a)=>{const{formatName:r,formatOptions:i}=(e=>{let a=e.toLowerCase().trim();const t={};if(e.indexOf("(")>-1){const o=e.split("(");a=o[0].toLowerCase().trim();const r=o[1].substring(0,o[1].length-1);"currency"===a&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):"relativetime"===a&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach((e=>{if(e){const[a,...o]=e.split(":"),r=o.join(":").trim().replace(/^'+|'+$/g,""),i=a.trim();t[i]||(t[i]=r),"false"===r&&(t[i]=!1),"true"===r&&(t[i]=!0),isNaN(r)||(t[i]=parseInt(r,10))}}))}return{formatName:a,formatOptions:t}})(a);if(this.formats[r]){let a=e;try{const n=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},l=n.locale||n.lng||o.locale||o.lng||t;a=this.formats[r](e,l,{...i,...o,...n})}catch(n){this.logger.warn(n)}return a}return this.logger.warn(`there was no format function for ${r}`),e}),e)}}class jt extends Ya{constructor(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(),this.backend=e,this.store=a,this.services=t,this.languageUtils=t.languageUtils,this.options=o,this.logger=Fa.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(t,o.backend,o)}queueLoad(e,a,t,o){const r={},i={},n={},l={};return e.forEach((e=>{let o=!0;a.forEach((a=>{const n=`${e}|${a}`;!t.reload&&this.store.hasResourceBundle(e,a)?this.state[n]=2:this.state[n]<0||(1===this.state[n]?void 0===i[n]&&(i[n]=!0):(this.state[n]=1,o=!1,void 0===i[n]&&(i[n]=!0),void 0===r[n]&&(r[n]=!0),void 0===l[a]&&(l[a]=!0)))})),o||(n[e]=!0)})),(Object.keys(r).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(r),pending:Object.keys(i),toLoadLanguages:Object.keys(n),toLoadNamespaces:Object.keys(l)}}loaded(e,a,t){const o=e.split("|"),r=o[0],i=o[1];a&&this.emit("failedLoading",r,i,a),!a&&t&&this.store.addResourceBundle(r,i,t,void 0,void 0,{skipCopy:!0}),this.state[e]=a?-1:2,a&&t&&(this.state[e]=0);const n={};this.queue.forEach((t=>{((e,a,t)=>{const{obj:o,k:r}=Za(e,a,Object);o[r]=o[r]||[],o[r].push(t)})(t.loaded,[r],i),((e,a)=>{void 0!==e.pending[a]&&(delete e.pending[a],e.pendingCount--)})(t,e),a&&t.errors.push(a),0!==t.pendingCount||t.done||(Object.keys(t.loaded).forEach((e=>{n[e]||(n[e]={});const a=t.loaded[e];a.length&&a.forEach((a=>{void 0===n[e][a]&&(n[e][a]=!0)}))})),t.done=!0,t.errors.length?t.callback(t.errors):t.callback())})),this.emit("loaded",n),this.queue=this.queue.filter((e=>!e.done))}read(e,a,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:a,fcName:t,tried:o,wait:r,callback:i});this.readingCalls++;const n=(n,l)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}n&&l&&o{this.read.call(this,e,a,t,o+1,2*r,i)}),r):i(n,l)},l=this.backend[t].bind(this.backend);if(2!==l.length)return l(e,a,n);try{const t=l(e,a);t&&"function"==typeof t.then?t.then((e=>n(null,e))).catch(n):n(null,t)}catch(g){n(g)}}prepareLoading(e,a){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof a&&(a=[a]);const r=this.queueLoad(e,a,t,o);if(!r.toLoad.length)return r.pending.length||o(),null;r.toLoad.forEach((e=>{this.loadOne(e)}))}load(e,a,t){this.prepareLoading(e,a,{},t)}reload(e,a,t){this.prepareLoading(e,a,{reload:!0},t)}loadOne(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const t=e.split("|"),o=t[0],r=t[1];this.read(o,r,"read",void 0,void 0,((t,i)=>{t&&this.logger.warn(`${a}loading namespace ${r} for language ${o} failed`,t),!t&&i&&this.logger.log(`${a}loaded namespace ${r} for language ${o}`,i),this.loaded(e,t,i)}))}saveMissing(e,a,t,o,r){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(a))this.logger.warn(`did not save key "${t}" as the namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=t&&""!==t){if(this.backend&&this.backend.create){const g={...i,isUpdate:r},c=this.backend.create.bind(this.backend);if(c.length<6)try{let r;r=5===c.length?c(e,a,t,o,g):c(e,a,t,o),r&&"function"==typeof r.then?r.then((e=>n(null,e))).catch(n):n(null,r)}catch(l){n(l)}else c(e,a,t,o,n,g)}e&&e[0]&&this.store.addResource(e[0],a,t,o)}}}const St=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let a={};if("object"==typeof e[1]&&(a=e[1]),"string"==typeof e[1]&&(a.defaultValue=e[1]),"string"==typeof e[2]&&(a.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const t=e[3]||e[2];Object.keys(t).forEach((e=>{a[e]=t[e]}))}return a},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Nt=e=>("string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),Ot=()=>{};class At extends Ya{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;var t;if(super(),this.options=Nt(e),this.services={},this.logger=Fa,this.modules={external:[]},t=this,Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach((e=>{"function"==typeof t[e]&&(t[e]=t[e].bind(t))})),a&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,a),this;setTimeout((()=>{this.init(e,a)}),0)}}init(){var e=this;let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,"function"==typeof a&&(t=a,a={}),!a.defaultNS&&!1!==a.defaultNS&&a.ns&&("string"==typeof a.ns?a.defaultNS=a.ns:a.ns.indexOf("translation")<0&&(a.defaultNS=a.ns[0]));const o=St();this.options={...o,...this.options,...Nt(a)},"v1"!==this.options.compatibilityAPI&&(this.options.interpolation={...o.interpolation,...this.options.interpolation}),void 0!==a.keySeparator&&(this.options.userDefinedKeySeparator=a.keySeparator),void 0!==a.nsSeparator&&(this.options.userDefinedNsSeparator=a.nsSeparator);const r=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let a;this.modules.logger?Fa.init(r(this.modules.logger),this.options):Fa.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=Mt);const t=new ut(this.options);this.store=new gt(this.options.resources,this.options);const i=this.services;i.logger=Fa,i.resourceStore=this.store,i.languageUtils=t,i.pluralResolver=new yt(t,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!a||this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format||(i.formatter=r(a),i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new kt(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new jt(r(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",(function(a){for(var t=arguments.length,o=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r{e.init&&e.init(this)}))}if(this.format=this.options.interpolation.format,t||(t=Ot),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((a=>{this[a]=function(){return e.store[a](...arguments)}})),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((a=>{this[a]=function(){return e.store[a](...arguments),e}}));const i=Wa(),n=()=>{const e=(e,a)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),i.resolve(a),t(e,a)};if(this.languages&&"v1"!==this.options.compatibilityAPI&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initImmediate?n():setTimeout(n,0),i}loadResources(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ot;const t="string"==typeof e?e:this.language;if("function"==typeof e&&(a=e),!this.options.resources||this.options.partialBundledLanguages){if(t&&"cimode"===t.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return a();const e=[],o=a=>{a&&"cimode"!==a&&this.services.languageUtils.toResolveHierarchy(a).forEach((a=>{"cimode"!==a&&e.indexOf(a)<0&&e.push(a)}))};t?o(t):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((e=>o(e))),this.options.preload&&this.options.preload.forEach((e=>o(e))),this.services.backendConnector.load(e,this.options.ns,(e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),a(e)}))}else a(null)}reloadResources(e,a,t){const o=Wa();return"function"==typeof e&&(t=e,e=void 0),"function"==typeof a&&(t=a,a=void 0),e||(e=this.languages),a||(a=this.options.ns),t||(t=Ot),this.services.backendConnector.reload(e,a,(e=>{o.resolve(),t(e)})),o}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&ct.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(let a=0;a-1)&&this.store.hasLanguageSomeTranslations(e)){this.resolvedLanguage=e;break}}}changeLanguage(e,a){var t=this;this.isLanguageChangingTo=e;const o=Wa();this.emit("languageChanging",e);const r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(e,i)=>{i?(r(i),this.translator.changeLanguage(i),this.isLanguageChangingTo=void 0,this.emit("languageChanged",i),this.logger.log("languageChanged",i)):this.isLanguageChangingTo=void 0,o.resolve((function(){return t.t(...arguments)})),a&&a(e,(function(){return t.t(...arguments)}))},n=a=>{e||a||!this.services.languageDetector||(a=[]);const t="string"==typeof a?a:this.services.languageUtils.getBestMatchFromCodes(a);t&&(this.language||r(t),this.translator.language||this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(t,(e=>{i(e,t)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(n):this.services.languageDetector.detect(n):n(e):n(this.services.languageDetector.detect()),o}getFixedT(e,a,t){var o=this;const r=function(e,a){let i;if("object"!=typeof a){for(var n=arguments.length,l=new Array(n>2?n-2:0),g=2;g`${i.keyPrefix}${c}${e}`)):i.keyPrefix?`${i.keyPrefix}${c}${e}`:e,o.t(s,i)};return"string"==typeof e?r.lng=e:r.lngs=e,r.ns=a,r.keyPrefix=t,r}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const t=a.lng||this.resolvedLanguage||this.languages[0],o=!!this.options&&this.options.fallbackLng,r=this.languages[this.languages.length-1];if("cimode"===t.toLowerCase())return!0;const i=(e,a)=>{const t=this.services.backendConnector.state[`${e}|${a}`];return-1===t||0===t||2===t};if(a.precheck){const e=a.precheck(this,i);if(void 0!==e)return e}return!(!this.hasResourceBundle(t,e)&&this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages)&&(!i(t,e)||o&&!i(r,e)))}loadNamespaces(e,a){const t=Wa();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)})),this.loadResources((e=>{t.resolve(),a&&a(e)})),t):(a&&a(),Promise.resolve())}loadLanguages(e,a){const t=Wa();"string"==typeof e&&(e=[e]);const o=this.options.preload||[],r=e.filter((e=>o.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e)));return r.length?(this.options.preload=o.concat(r),this.loadResources((e=>{t.resolve(),a&&a(e)})),t):(a&&a(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const a=this.services&&this.services.languageUtils||new ut(St());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(a.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){return new At(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}cloneInstance(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ot;const t=e.forkResourceStore;t&&delete e.forkResourceStore;const o={...this.options,...e,isClone:!0},r=new At(o);return void 0===e.debug&&void 0===e.prefix||(r.logger=r.logger.clone(e)),["store","services","language"].forEach((e=>{r[e]=this[e]})),r.services={...this.services},r.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},t&&(r.store=new gt(this.store.data,o),r.services.resourceStore=r.store),r.translator=new dt(r.services,o),r.translator.on("*",(function(e){for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;oe.source.startsWith("local"),Rt=(e,a)=>{var t;return`@font-face {\n font-family: '${e}';\n src: ${a.source};\n ${Object.entries(null!==(t=a.descriptors)&&void 0!==t?t:{}).map((([e,a])=>`${e}: ${a};`)).join("\n")}\n}`};let Pt=(e=>{let a,t=!1;return o=>We(void 0,void 0,void 0,(function*(){return!a||!t&&o?(a=e(),t=!0,a.then((e=>(t=!1,e))).catch((e=>{throw a=null,e}))):a}))})((()=>fetch("/fonts/config.json").then((e=>e.json()))));const _t=(e,a,t)=>Dt(void 0,void 0,void 0,(function*(){try{const o=new FontFace(e,a.source,a.descriptors);return Tt(a)?yield o.load():o.loaded.then(t),document.fonts.add(o),Lt[e]={configs:[Object.assign(Object.assign({},a),{font:o})]},!0}catch(nl){return sa.warn(`Failed to load font ${e} with source ${a.source}`,nl),!1}})),Ut=(e,a,t)=>Dt(void 0,void 0,void 0,(function*(){if(a.some(Tt))return sa.error(`Unable to load multiple FontFace for the same family ${e}`),!1;const o=[];return a.forEach((a=>{const r=new FontFace(e,a.source,a.descriptors);r.loaded.then(t),document.fonts.add(r),o.push(Object.assign(Object.assign({},a),{font:r}))})),Lt[e]={configs:o},!0})),Bt={getAllFonts:Pt,getLoadedFonts:()=>Lt,loadFont:(e,a)=>Dt(void 0,void 0,void 0,(function*(){if(e in Lt)return Lt[e];let t;if(a)t=a;else try{t=(yield Pt())[e]}catch(nl){const t=nl instanceof Error?" due to "+nl.message:"";throw new Error("Unable to load font definition of "+e+t)}const o=()=>{((e,a)=>{Ma.postEvent(Ct,{family:e,definition:a})})(e,t)};for(const a of t.configs)if(Array.isArray(a)?yield Ut(e,a,o):yield _t(e,a,o))break;const r=Lt[e];return r?(r.displayName=t.displayName,r.url=t.url,Lt[e]):void 0})),getFontCSS:e=>Dt(void 0,void 0,void 0,(function*(){const a=Lt[e];if(!a)throw new Error(`Font family ${e} is not loaded`);const t=yield Promise.all(a.configs.filter((a=>{const t="loaded"===a.font.status;return t||sa.warn(`Font family ${e} is not loaded completely. Some FontFaceRules may be missing`),t})).map((a=>Dt(void 0,void 0,void 0,(function*(){if(Tt(a))return Rt(e,a);const t=(e=>{var a;const t=null===(a=e.source.match(/url\(['"](\S+)['"]\)/))||void 0===a?void 0:a[1];if(!t)throw new Error("Invalid URL in source "+e.source);return new URL(t,window.location.href)})(a),o=yield fetch(t),r=yield(i=yield o.blob(),new Promise((e=>{const a=new FileReader;a.onloadend=()=>e(a.result),a.readAsDataURL(i)})));var i;return Rt(e,Object.assign(Object.assign({},a),{source:`url('${r}')`}))})))));return t.join("\n\n")})),onRemoteFontLoaded:e=>{Ma.onMessage(Ct,e)}},Ht=()=>{if("PRD"!==ya.getEnvironment()||!ya.isRMT())if(document.querySelector('meta[name="robots"]'))sa.info("Noindex meta tag already presents.");else{sa.info("Injecting noindex meta tag as this app is not PRD RMT.");const e=document.createElement("meta");e.name="robots",e.content="noindex",document.head.appendChild(e)}};var Vt=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(nl){i(nl)}}function l(e){try{g(o.throw(e))}catch(nl){i(nl)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};let Gt=!1;const Ft=e("r",{ready:()=>Vt(void 0,void 0,void 0,(function*(){let e=0;for(;e<=10&&!Gt;)yield Qe(1e3),e+=1})),getAppName:ya.getComponent,getAppVersion:ya.getVersion,getEnv:ya.getEnvironment,getInstance:ya.getInstance,event:xa.customEvent,isStandaloneWindow:Ea.isStandaloneWindow,injectUITools:Ea.injectUITools,openApp:Ea.openApp,onAppOpen:Ea.onAppOpen,closeApp:Ea.closeApp,onAppClose:Ea.onAppClose,updateAppMetadata:Ea.updateAppMetadata,onAppMetadataUpdate:Ea.onAppMetadataUpdate,updateUrl:Ea.updateUrl,onUrlUpdate:Ea.onUrlUpdate,toggleNavMenu:Ea.toggleNavMenu,postEvent:Ma.postEvent,onMessage:Ma.onMessage,setLanguage:Ra.setLanguage,getLanguage:Ra.getLanguage,onLanguageChange:Ra.onLanguageChange,setColourMode:Ra.setColourMode,getColourMode:Ra.getColourMode,onColourModeChange:Ra.onColourModeChange,isAnalyticsQADone:Ra.isAnalyticsQADone,isAllowAnalytics:Ra.isAllowAnalytics,allowAnalytics:Ra.allowAnalytics,storage:{on:Ha.on,get:Ha.get,getAll:Ha.getAll,set:Ha.set,remove:Ha.remove,clear:Ha.clear},getMsSinceStartUp:_a.getMsSinceStartUp,I18nBuilder:class{constructor(){this._appName="RMG",this._lng=void 0,this._defaultResources={},this._resources={}}use(e){return It.use(e),this}withAppName(e){return this._appName=e,this}withLng(e){return this._lng=e,this}withDefaultResource(e){return Object.entries(e).forEach((([e,a])=>{this._defaultResources[e]=a})),this}withResource(e,a){return this._resources[e]=a,this}combineResource(){const e={};return Object.entries(this._defaultResources).forEach((([a,t])=>{e[a]={translation:t}})),Object.entries(this._resources).forEach((([a,t])=>{a in e?e[a].translation=Object.assign(Object.assign({},e[a].translation),t):e[a]={translation:t}})),e}build(){return Et=It.createInstance({lng:this._lng,fallbackLng:{"zh-CN":["zh-Hans","zh-Hant","en"],"zh-HK":["zh-Hant","zh-Hans","en"],"zh-TW":["zh-Hant","zh-Hans","en"],default:["en"]},resources:this.combineResource()},((e,a)=>{var t;e?sa.error("unexpected error occurs while initialising i18n",e):(document.title=a(this._appName),document.documentElement.lang=null!==(t=this._lng)&&void 0!==t?t:"en")})),Et.on("languageChanged",(e=>{document.title=Et.t(this._appName),document.documentElement.lang=e})),(e=>{Ra.onLanguageChange((a=>e.changeLanguage(a)))})(Et),Et}},getI18nInstance:()=>Et,getAllFonts:Bt.getAllFonts,getLoadedFonts:Bt.getLoadedFonts,loadFont:Bt.loadFont,getFontCSS:Bt.getFontCSS,onRemoteFontLoaded:Bt.onRemoteFontLoaded});Vt(void 0,void 0,void 0,(function*(){yield ya.loadWithTimeout(),sa.setup(ya.getComponent()),Ht(),Ra.isAnalyticsQADone()?Ra.isAllowAnalytics()&&(sa.info("User has previously allowed GA"),xa.init()):Ea.isStandaloneWindow()&&!ya.isRMT()&&(sa.warn("App is opened in standalone window but analytics Q&A is not finished. GA will be init by default."),xa.init()),Gt=!0})).then(),window.rmgRuntime=Ft,e("aN",sa.logger);var Yt,Wt={},Qt=function(){if(Yt)return Wt;Yt=1;var e=Ne();return Wt.createRoot=e.createRoot,Wt.hydrateRoot=e.hydrateRoot,Wt}(),Jt={en:{},"zh-Hans":{Action:"操作",Apps:"应用程序","Back to list":"返回列表","Background colour":"背景色",Black:"黑",Cancel:"取消",City:"城市",Components:"组件","Configuration file":"配置文件",Confirm:"确定",Continue:"继续","Country/Region":"国家/地区",Copy:"复制",Edit:"编辑","Foreground colour":"前景色","Go back":"返回",Language:"语言/Language",Justification:"理由",Name:"名称",Next:"下一步",Open:"打开",Palette:"调色板","Please select...":"请选择...",Previous:"上一步","Rail Map Generator":"铁路线路图生成器","Rail Map Painter":"地铁线路图绘制器","Rail Map Toolkit":"线路图工具包",Remove:"删除",Reset:"重置","RMG Templates":"RMG 模板","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 设计师","Seed Project":"种子项目",Settings:"设置",Submit:"提交",Translate:"翻译",Upload:"上传",White:"白"},"zh-Hant":{Action:"動作",Apps:"應用程式","Back to list":"返回列表","Background colour":"背景色",Black:"黑",Cancel:"取消",City:"城市",Components:"元件","Configuration file":"設定檔",Confirm:"確定",Continue:"繼續",Copy:"複製","Country/Region":"國家/地區",Edit:"編輯","Foreground colour":"前景色","Go back":"返回",Language:"語言/Language",Justification:"理由",Name:"名稱",Next:"下一步",Open:"開啟",Palette:"調色盤","Please select...":"請選擇...",Previous:"上一步","Rail Map Generator":"鐵路路綫圖產生器","Rail Map Painter":"地鐵路綫圖繪製器","Rail Map Toolkit":"路綫圖工具組",Remove:"移除",Reset:"重設","RMG Templates":"RMG 範本","RMP Gallery":"RMP 畫廊","RMP Designer":"RMP 設計師","Seed Project":"種子項目",Settings:"設定",Submit:"提交",Translate:"翻譯",Upload:"上載",White:"白"},ja:{Language:"言語/Language",Palette:"調色板","Rail Map Generator":"鉄道路線図ジェネレータ","Rail Map Painter":"鉄道路線図画家","Rail Map Toolkit":"路線図ツールキット",Remove:"削除","RMG Templates":"RMG テンプレート","RMP Gallery":"RMP 画廊","RMP Designer":"RMP 図案家"},ko:{Action:"조작",Apps:"앱","Back to list":"다시 목록으로","Background colour":"배경색",Black:"블랙",Cancel:"취소",City:"도시",Components:"요소","Configuration file":"환경 설정 파일",Confirm:"확인",Copy:"복사","Country/Region":"국가/지역",Edit:"편집","Foreground colour":"전경색","Go back":"되돌아가",Language:"언어/Language",Justification:"이유",Name:"명칭",Next:"다음",Open:"열기",Palette:"팔레트","Please select...":"선택해주세요",Previous:"나아가","Rail Map Generator":"철도 노선도 생성기","Rail Map Painter":"지하철 노선도 그리기","Rail Map Toolkit":"노선도 툴킷",Remove:"삭제",Reset:"리셋","RMG Templates":"RMG 템플릿","RMP Gallery":"RMP 갤러리","RMP Designer":"RMP 디자이너","Seed Project":"종자 프로젝트",Settings:"설치",Submit:"제출",Translate:"번역",Upload:"업로드",White:"화이트"}};const $t={HeaderActions:{editStyle:"Edit style"},DownloadActions:{downloads:"Downloads",configFile:"Configuration file",images:"Images"},OpenActions:{invalidType:"Invalid file type! Only file in JSON format is accepted.",unknownError:"Unknown error occurred while parsing the uploaded file! Please try again."},DownloadModal:{title:"Download images",canvas:"Canvas",transparent:"Transparent background",showBorder:"Display border",scale:"Scale",format:"Format",pleaseSelect:"Please select...",png:"PNG",svg:"SVG (Web use)",downloadOne:"Download current station",downloadAll:"Download all stations"},GridTabs:{main:"Main line",branch:"Branch",external:"External line",addStation:"Add station",editLine:"Edit line section"},StationAgGrid:{num:"Station code",zhName:"Chinese name",enName:"English name",interchange:"Interchanges",coline:"Tracks sharing"},StyleSidePanel:{header:"Edit style",layout:{title:"Layout",canvasHeight:"Canvas height",destinationWidth:"Destination width",runinWidth:"Running-in width",railmapWidth:"Rail map width",indoorWidth:"Indoor width",verticalPosition:"Vertical position",branchSpacing:"Branch spacing",branchSpacingLoop:"Vertical padding",padding:"Rail map padding",directionGzX:"Direction horizontal position",directionGzY:"Direction vertical position"},design:{title:"Design",zhLineName:"Chinese line name",enLineName:"English line name",lineNum:"Line code",direction:"Train direction at this station",left:"Left",right:"Right",platformNum:"Platform number",psdNum:"Platform door number",panelType:"Panel type",gz1:"Line 1",gz28:"Line 2/8 (Panasonic)",gz2otis:"Line 2/8 (Otis)",gz3:"Line 3",gz4:"Line 4",gz5:"Line 5",gz11:"Line 11",gz1822:"Line 18/22",gz6:"2010 style",gzgf:"2016 style",gz1421:"2017 style",gz7w:"2022 style",sh:"Default",sh2020:"2020 (Beta)",nameDisplay:"Display station names",alternatively:"Alternatively",onOneSide:"Same side",flip:"Flip position",firstStationNameDisplay:"Display the first station's name at",upwards:"Top",downward:"Bottom",legacyDestination:"Display line name on direction sign",overrideTerminal:"Override terminal",terminalZhName:"Terminal Chinese name",terminalEnName:"Terminal English name"},note:{title:"Notes",add:"Add note",zhNote:"Chinese note",enNote:"English note",positionX:"Horizontal position",positionY:"Vertical position",border:"Display border",remove:"Remove note"},loop:{title:"Loop",isLoop:"Treat as loop line",isBank:"Display loop as a parallelogram in Rail map",leftRightFactor:"Left and right factor",bottomFactor:"Bottom factor"}},BranchSidePanel:{header:"Edit line section",branch:{title:"Branch"},coline:{title:"Tracks sharing",add:"Add sharing track"},action:{title:"Actions",autoNum:"Auto numbering stations",reverse:"Rotate entire line",flip:"Flip entire line"}},StationSidePanel:{info:{title:"Station info",num:"Station code",zhName:"Chinese name",enName:"English name",zhSecondary:"Chinese secondary",enSecondary:"English secondary"},interchange:{title:"Interchanges",within:"Within-station interchange",outStation:"Out-of-station interchange",outSystem:"Out-of-system interchange",addGroup:"Add interchange group",noInterchanges:"No interchanges",zhName:"Chinese name",enName:"English name",add:"Add interchange",copy:"Copy interchange",remove:"Remove interchange"},branch:{type:"Type",through:"Through",nonThrough:"Non-through",firstStation:"First station",position:"Position",upper:"Upper",lower:"Lower"},more:{title:"More settings",service:"Train services",local:"Local",express:"Express",direct:"Direct",facility:"Nearby facility",none:"None",pivot:"Pivot station on loop line",oneLine:"Display Chinese and English in one line",intPadding:"Padding between station name and interchange box",intPaddingApplyGlobal:"Apply current padding to all stations",apply:"Apply",characterSpacing:"Station Name Letter Spacing"},footer:{current:"Set as current",remove:"Remove"}},AddStationModal:{title:"Add station",where:"Target location",main:"Main line",branch:"Branch",external:"External line",preposition:"Preposition",before:"Before",after:"After",pivot:"Pivot station",pleaseSelect:"Please select...",error:"Failed to add station. Please check your selections and try again."},NewBranchModal:{title:"Create a new branch or external line",where:"Target location",new:"Create a new branch",ext:"Create an external line",from:"Between",to:"and",position:"Position",upper:"Upper",lower:"Lower"},AutoNumModal:{title:"Station auto numbering",where:"Target location",main:"Main line",branch:"Branch",external:"External line",from:"Starting index",maxLength:"Number of digits",sort:"Sorting",asc:"Ascending",desc:"Descending"},CanvasType:{all:"All",destination:"Destination",runin:"Running-in",railmap:"Rail map",indoor:"Indoor",platform:"Platform Num"},RmgStyle:{mtr:"MTR",gzmtr:"Guangzhou Metro",shmetro:"Shanghai Metro",shsubrwy:"Shanghai Suburban Railway"}},Kt={HeaderActions:{editStyle:"风格化设置"},DownloadActions:{downloads:"下载",configFile:"配置文件",images:"图像"},OpenActions:{invalidType:"无效的文件种类!只接受JSON种类的文件。",unknownError:"导入上传的文件时发生错误!请重试。"},DownloadModal:{title:"下载图像",canvas:"画面",transparent:"透明背景",showBorder:"显示边框",scale:"缩放级别",format:"文件种类",pleaseSelect:"请选择...",png:"PNG图像",svg:"SVG图像(网页用)",downloadOne:"下载当前车站",downloadAll:"下载所有车站"},GridTabs:{main:"主线",branch:"支线",external:"外部路线",addStation:"添加车站",editLine:"路线段设置"},StationAgGrid:{num:"车站编号",interchange:"换乘",coline:"共线"},StyleSidePanel:{header:"风格化设置",layout:{title:"布局",canvasHeight:"画面高度",destinationWidth:"终点站牌宽度",runinWidth:"当前站名牌宽度",railmapWidth:"站台门路线图宽度",indoorWidth:"车內路线图宽度",verticalPosition:"垂直方向位置",branchSpacing:"支线间距",branchSpacingLoop:"垂直边距",padding:"路线图边距",directionGzX:"终点站水平方向位置",directionGzY:"终点站垂直方向位置"},design:{title:"设计",zhLineName:"路线中文名称",enLineName:"路线英文名称",lineNum:"路线编号",direction:"当前车站行车方向",left:"向左",right:"向右",platformNum:"站台编号",psdNum:"站台门编号",panelType:"站台门盖板样式",gz1:"1号线",gz28:"2/8号线(松下)",gz2otis:"2/8号线(奥的斯)",gz3:"3号线",gz4:"4号线",gz5:"5号线",gz11:"11号线",gz1822:"18/22号线",gz6:"2010样式",gzgf:"2016样式",gz1421:"2017样式",gz7w:"2022样式",sh:"默认",sh2020:"2020样式(预览版)",nameDisplay:"显示车站名称",alternatively:"交错显示",onOneSide:"同一侧",flip:"翻转位置",firstStationNameDisplay:"显示第一个站点的名称",upwards:"顶部",downward:"底部",legacyDestination:"在终点站牌显示路线名称",overrideTerminal:"重写终点站",terminalZhName:"终点站中文名称",terminalEnName:"终点站英文名称"},note:{title:"备注",add:"添加备注",zhNote:"中文备注",enNote:"英文备注",positionX:"水平方向位置",positionY:"垂直方向位置",border:"显示边框",remove:"删除备注"},loop:{title:"环线",isLoop:"视为环线",isBank:"在站台门路线图中以平行四边形显示环线",leftRightFactor:"左右参数",bottomFactor:"底部参数"}},BranchSidePanel:{header:"路线段设置",branch:{title:"支线"},coline:{title:"共线",add:"添加共线"},action:{title:"操作",autoNum:"车站自动编号",reverse:"旋转整条路线",flip:"翻转整条路线"}},StationSidePanel:{info:{title:"车站资讯",num:"车站编号",zhSecondary:"中文第二名称",enSecondary:"英文第二名称"},interchange:{title:"换乘",within:"同站换乘",outStation:"出站换乘",outSystem:"系统外换乘",addGroup:"添加换乘组合",noInterchanges:"非换乘站",add:"添加换乘",copy:"复制换乘",remove:"删除换乘"},branch:{type:"类型",through:"贯通(无需换乘)",nonThrough:"非贯通(需换乘)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多设置",service:"列车类别",local:"普通车",express:"快车",direct:"直达车",facility:"附近设施",pivot:"环线上的枢纽车站",oneLine:"在一行内展示中英文站名",intPadding:"车站名与换乘线路间的间距",intPaddingApplyGlobal:"将当前的间距应用到所有车站上",apply:"应用",characterSpacing:"车站名文字间距"},footer:{current:"设置为当前车站",remove:"删除"}},AddStationModal:{title:"添加车站",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",preposition:"相对位置",before:"先于",after:"后于",pivot:"定位车站",pleaseSelect:"请选择...",error:"添加车站失败,请检查您的选项后重试。"},NewBranchModal:{title:"添加支线或外部路线",where:"目标位置",new:"添加一条支线",ext:"添加一条外部路线",from:"介于",to:"和",position:"位置",upper:"上方",lower:"下方"},AutoNumModal:{title:"车站自动编号",where:"目标位置",main:"主线",branch:"支线",external:"外部路线",from:"起始编号",maxLength:"编号位数",sort:"排序方式",asc:"升序",desc:"降序"},Airport:"机场","All projects":"所有项目",Anticlockwise:"逆时针","Are you sure to remove station? You cannot undo this action.":"您确定刪除此车站吗?您不能撤销此操作。","Blank project":"空白项目","Branch left end":"支线左端","Branch on the left":"左侧支线","Branch on the right":"右侧支线","Branch right end":"支线右端","Branch spacing":"支线间距",Branches:"支线",by:"来自","Canvas scale":"画面缩放级别","Chinese name":"中文名称","Circle line":"环线",Clockwise:"顺时针",Close:"关闭","Coach number":"车厢编号",Colour:"颜色","Connect to main line":"连接至主线","day ago":"天前","days ago":"天前","Disconnect from main line":"从主线断开","Disneyland resort":"迪士尼","Don't show me again":"不再显示","Edit project info":"编辑项目信息","Empty template":"空白模板","English name":"英文名称","Help and support":"帮助和支持","High speed rail":"高速铁路","hour ago":"小时前","hours ago":"小时前",Import:"导入","Import project":"导入项目","Just now":"刚刚","Last modified":"上次编辑","LEFT END":"线路左端","Loop direction":"环线方向","Loop line":"环线",Manage:"管理","Manage projects":"管理项目","minute ago":"分钟前","minutes ago":"分钟前","National rail":"国家铁路","Ngong Ping 360":"昂坪360",No:"否","No branches found":"未找到支线",None:"无","now and enjoy an even better rail map design experience!":",享受更好的线路图设计体验!","Open selected":"打开选中项目","Open template":"打开模板","Paid area":"付费区换乘",Project:"项目","Project selected is invalid or corrupted.":"选中的项目无效或已损坏。","Project Selector":"项目选择器","Project name":"项目名称",Reload:"重新加载","Remove project":"删除项目","Remove station":"删除车站","RIGHT END":"线路右端","Saved projects":"保存的项目","Secondary names":"第二名称","Select canvas":"选择画面","Set as midpoint":"设置为半环站","Span digits over rows":"跨行显示数字",Style:"风格","Station Chinese name":"车站中文名称","Station English name":"车站英文名称","Station name":"车站名称","Target station":"目标车站","Terms and conditions":"条款及细则","Text on the left":"换乘文字靠左","Text on the right":"换乘文字靠右","Try out":"马上试用","Unable to connect to main line.":"无法连接至主线。","Unable to disconnect from main line.":"无法从主线断开。","Unable to remove this station.":"无法删除此车站。",Unknown:"未知",View:"查看",Visit:"访问","Visit GitHub":"访问GitHub",Yes:"是","You have reached the maximum number of projects.":"您已到达项目数量上限。",CanvasType:{all:"全部",destination:"终点站站牌",runin:"当前站名牌",railmap:"站台门路线图",indoor:"车内路线图",platform:"站台编号"},RmgStyle:{mtr:"港铁",gzmtr:"广州地铁",shmetro:"上海地铁",shsubrwy:"上海市域铁路"}},Zt={HeaderActions:{editStyle:"風格化設定"},DownloadActions:{downloads:"下載",configFile:"設定檔",images:"圖像"},OpenActions:{invalidType:"無效的檔案種類!只接受JSON種類的檔案。",unknownError:"讀取上載的檔案時發生錯誤!請重試。"},DownloadModal:{title:"下載圖像",canvas:"畫面",transparent:"透明背景",showBorder:"顯示邊綫",scale:"縮放比例",format:"檔案種類",pleaseSelect:"請選擇...",png:"PNG影像",svg:"SVG影像(網頁用)",downloadOne:"下載當前車站",downloadAll:"下載所有車站"},GridTabs:{main:"主綫",branch:"支綫",external:"外部路綫",addStation:"新增車站",editLine:"路綫段設定"},StationAgGrid:{num:"車站編碼",interchange:"轉車",coline:"共綫"},StyleSidePanel:{header:"風格化設定",layout:{title:"佈局",canvasHeight:"畫面高度",destinationWidth:"終點站牌闊度",runinWidth:"當前站名牌闊度",railmapWidth:"幕門路綫圖闊度",indoorWidth:"車內路綫圖闊度",verticalPosition:"垂直方向位置",branchSpacing:"支綫間距",branchSpacingLoop:"垂直邊距",padding:"路綫圖邊距",directionGzX:"終點站水平方向位置",directionGzY:"終點站垂直方向位置"},design:{title:"設計",zhLineName:"路綫中文名稱",enLineName:"路綫英文名稱",lineNum:"路綫編碼",direction:"當前車站行車方向",left:"向左",right:"向右",platformNum:"月台編號",psdNum:"幕門編號",panelType:"資訊板樣式",gz1:"1號線",gz28:"2/8號線(松下)",gz2otis:"2/8號線(奧的斯)",gz3:"3號線",gz4:"4號線",gz5:"5號線",gz11:"11號線",gz1822:"18/22號線",gz6:"2010樣式",gzgf:"2016樣式",gz1421:"2017樣式",gz7w:"2022樣式",sh:"預設",sh2020:"2020樣式(預覽版)",nameDisplay:"顯示車站名稱",alternatively:"交錯顯示",onOneSide:"同一側",flip:"反轉位置",firstStationNameDisplay:"顯示第一個車站的名稱",upwards:"頂部",downward:"底部",legacyDestination:"於終點站牌顯示路綫名稱",overrideTerminal:"覆寫終點站",terminalZhName:"終點站中文名稱",terminalEnName:"終點站英文名稱"},note:{title:"備註",add:"新增備註",zhNote:"中文備註",enNote:"英文備註",positionX:"水平方向位置",positionY:"垂直方向位置",border:"顯示邊線",remove:"移除備註"},loop:{title:"環綫",isLoop:"視作環綫",isBank:"在幕門路綫圖中以平行四邊形顯示環綫",leftRightFactor:"左右參數",bottomFactor:"底部參數"}},BranchSidePanel:{header:"路綫段設定",branch:{title:"支綫"},coline:{title:"共綫",add:"新增共綫"},action:{title:"動作",autoNum:"車站自動編碼",reverse:"旋轉整條路綫",flip:"反轉整條路綫"}},StationSidePanel:{info:{title:"車站資訊",num:"車站編碼",zhSecondary:"中文第二名稱",enSecondary:"英文第二名稱"},interchange:{title:"轉車",within:"同站轉車",outStation:"出站轉車",outSystem:"系統外轉車",addGroup:"新增轉車組合",noInterchanges:"非轉車站",add:"新增轉綫",copy:"製作轉綫副本",remove:"移除轉綫"},branch:{type:"種類",through:"直通(無需轉車)",nonThrough:"非直通(需轉車)",firstStation:"首站",position:"位置",upper:"上方",lower:"下方"},more:{title:"更多設定",service:"列車類別",local:"普通",express:"快速",direct:"直達",facility:"周邊設施",none:"無",pivot:"環綫上的樞紐車站",oneLine:"在一行內展示中英文站名",intPadding:"車站名與換乘線路間的間距",intPaddingApplyGlobal:"將當前的間距應用到所有車站上",apply:"應用",characterSpacing:"車站名文字間距"},footer:{current:"設定為當前車站",remove:"移除"}},AddStationModal:{title:"新增車站",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",preposition:"相對位置",before:"先於",after:"後於",pivot:"定位車站",pleaseSelect:"請選擇...",error:"新增車站失敗,請檢查你的選擇後重試。"},NewBranchModal:{title:"新增支綫或外部路綫",where:"目標位置",new:"新增一條支綫",ext:"新增一條外部路綫",from:"介乎於",to:"與",position:"位置",upper:"上方",lower:"下方"},AutoNumModal:{title:"車站自動編碼",where:"目標位置",main:"主綫",branch:"支綫",external:"外部路綫",from:"起始編碼",maxLength:"編碼位數",sort:"排序方式",asc:"升序",desc:"降序"},Airport:"機場","All projects":"所有專案",Anticlockwise:"反時針","Are you sure to remove station? You cannot undo this action.":"確定移除該車站嗎?此動作無法還原。","Blank project":"空白專案","Branch left end":"支綫左端","Branch on the left":"左側支綫","Branch on the right":"右側支綫","Branch right end":"支綫右端","Branch spacing":"支綫間距",Branches:"支綫",by:"來自","Canvas scale":"畫面縮放比例","Chinese name":"中文名稱","Circle line":"環綫",Clockwise:"順時針",Close:"關閉","Coach number":"車卡編號",Colour:"顏色","Connect to main line":"連接至主綫","day ago":"日前","days ago":"日前","Disconnect from main line":"从主綫斷開","Disneyland resort":"迪士尼","Don't show me again":"不再顯示","Edit project info":"修改專案資訊","Empty template":"空白範本","English name":"英文名稱","Help and support":"幫助及支援","High speed rail":"高速鐵路","hour ago":"小时前","hours ago":"小时前",Import:"匯入","Import project":"匯入專案","Just now":"剛才","Last modified":"上次修改","LEFT END":"路綫左端","Loop direction":"環綫方向","Loop line":"環綫",Manage:"管理","Manage projects":"管理專案","minute ago":"分鐘前","minutes ago":"分鐘前","National rail":"國家鐵路","Ngong Ping 360":"昂坪360",No:"否","No branches found":"未找到支綫",None:"無","now and enjoy an even better rail map design experience!":",享受更好的路綫圖設計體驗!","Open selected":"開啟所選專案","Open template":"開啟範本","Paid area":"付費區轉車",Project:"專案","Project selected is invalid or corrupted.":"所選專案無效或者已損壞。","Project Selector":"專案選擇器","Project name":"專案名稱",Reload:"重新載入","Remove project":"移除專案","Remove station":"移除車站","RIGHT END":"路綫右端","Saved projects":"儲存的專案","Secondary names":"第二名稱","Select canvas":"選擇畫面","Set as midpoint":"設定為半環站","Span digits over rows":"跨行顯示數字",Style:"風格","Station Chinese name":"車站中文名稱","Station English name":"車站英文名稱","Station name":"車站名稱","Target station":"目標車站","Terms and conditions":"條款及細則","Text on the left":"轉乘文字置左","Text on the right":"轉乘文字置右","Try out":"立即試用","Unable to connect to main line.":"無法連接至主綫。","Unable to disconnect from main line.":"無法從主綫斷開。","Unable to remove this station.":"無法移除該車站。",Unknown:"未知",View:"檢視",Visit:"造訪","Visit GitHub":"造訪GitHub",Yes:"是","You have reached the maximum number of projects.":"你已到達專案數量上限。",CanvasType:{all:"全部",destination:"終點站牌",runin:"當前站名牌",railmap:"幕門路綫圖",indoor:"車內路綫圖",platform:"站台編號"},RmgStyle:{mtr:"港鐵",gzmtr:"廣州地鐵",shmetro:"上海地鐵",shsubrwy:"上海市域鐵路"}},qt={HeaderActions:{editStyle:"스타일 설정"},DownloadActions:{downloads:"다운로드",configFile:"설정 파일",images:"이미지"},OpenActions:{invalidType:"잘못된 파일 종류! JSON 종류의 파일만 받습니다.",unknownError:"업로드한 파일을 가져오는 중 오류가 발생했습니다! 다시 시도해 주세요."},DownloadModal:{title:"이미지 다운로드",canvas:"화면",transparent:"투명 배경",showBorder:"테두리 보이기",scale:"확대/ 축소 수준",format:"파일 종류",pleaseSelect:"선택해주세요",png:"PNG 이미지",svg:"SVG 이미지(웹용)",downloadOne:"현재 역 다운로드",downloadAll:"모든 역 다운로드"},GridTabs:{main:"주노선",branch:"지노선",external:"외부 노선",addStation:"역 추가",editLine:"노선 구간 설정"},StationAgGrid:{num:"역 번호",interchange:"환승",coline:"공용"},StyleSidePanel:{header:"스타일 설정",layout:{title:"구성",canvasHeight:"화면 고도",destinationWidth:"터미널 정거장 너비",runinWidth:"현재 정거장 너비",railmapWidth:"승강장문 노선도 폭",indoorWidth:"차내 노선도 폭",verticalPosition:"수직 방향 위치",branchSpacing:"지선 간격",branchSpacingLoop:"수직 여백",padding:"로드맵 여백",directionGzX:"터미널 수평 방향 위치",directionGzY:"터미널 수직 방향 위치"},design:{title:"디자인",zhLineName:"노선 한자 명칭",enLineName:"노선 영문 명칭",lineNum:"노선 번호",direction:"주행 방향",left:"왼쪽으로",right:"오른쪽으로",platformNum:"플랫폼 번호",psdNum:"플랫폼 도어 번호",panelType:"플랫폼 도어 패널 스타일",gz1:"1호선",gz28:"2/8호선(파나소닉)",gz2otis:"2/8호선(오디스)",gz3:"3호선",gz4:"4호선",gz5:"5호선",gz11:"11호선",gz1822:"18/22호선",gz6:"2010년 모양",gzgf:"2016년 모양",gz1421:"2017년 모양",gz7w:"2022년 모양",sh:"묵인",sh2020:"2020모양(사전 검토)",nameDisplay:"역 명칭 보이기",alternatively:"교차 표시",onOneSide:"같은 쪽",flip:"위치를 뒤집다",firstStationNameDisplay:"첫 번째 역 이름 표시 위치",upwards:"위쪽",downward:"아래쪽",legacyDestination:"터미널에 경로 명칭 표시",overrideTerminal:"끝점 다시 쓰기",terminalZhName:"터미널 한자 명칭",terminalEnName:"터미널 영문 명칭"},note:{title:"설명",add:"설명 추가",zhNote:"한자 설명",enNote:"영문 설명",positionX:"수평 방향 위치",positionY:"수직 방향 위치",border:"테두리 보이기",remove:"설명 삭제"},loop:{title:"환상선",isLoop:"순환선으로 간주하기",isBank:"승강장 도면에 평행사변형으로 순환선을 표시하기",leftRightFactor:"좌우 파라미터",bottomFactor:"바닥 인자"}},BranchSidePanel:{header:"노선 구간 설정",branch:{title:"지선"},coline:{title:"공선",add:"공선 추가"},action:{title:"조작",autoNum:"역 자동 번호 매기기",reverse:"전체 노선을 회전하기",flip:"전체 노선을 뒤집기"}},StationSidePanel:{info:{title:"역 정보",num:"역 번호",zhSecondary:"한자 제2명칭",enSecondary:"영문 제2명칭"},interchange:{title:"환승",within:"같은 역에서 환승",outStation:"역을 나가 환승",outSystem:"시스템외환승",addGroup:"환승 조합 추가",noInterchanges:"비환승역",add:"환승 추가",copy:"환승 복사",remove:"환승 삭제"},branch:{type:"유형",through:"관통(환승 불필요)",nonThrough:"비관통(환승 필요)",firstStation:"첫 번째 역",position:"위치",upper:"위쪽",lower:"아래쪽"},more:{title:"자세한 설정",service:"열차 종류",local:"서행",express:"급행",direct:"특급",facility:"인근 시설",pivot:"순환선의 허브 역",oneLine:"한 줄 안에 한자와 영문의 역명을 전시하기",intPadding:"역명과 환승 노선 사이의 간격",intPaddingApplyGlobal:"현재 간격을 모든 역에 적용",apply:"응용"},footer:{current:"현재 역으로 설정",remove:"삭제"}},AddStationModal:{title:"역 추가",where:"목표 위치",main:"주선로",branch:"지선",external:"외부 노선",preposition:"상대 위치",before:"전에",after:"후에",pivot:"위치추적역",pleaseSelect:"선택해주세요",error:"스테이션 추가에 실패하였습니다, 옵션을 확인하신 후 다시 시도하십시오."},NewBranchModal:{title:"지선 또는 외부 노선 추가",where:"목표 위치",new:"지선을 첨가",ext:"외부 노선 추가",from:"부터",to:"까지",position:"위치",upper:"위쪽",lower:"아래쪽"},AutoNumModal:{title:"역 자동 번호 매기기",where:"목표 위치",main:"주선",branch:"지선",external:"외부 노선",from:"시작 번호",maxLength:"번호 자릿수",sort:"정렬 방식",asc:"오름차순",desc:"내림차순"},Airport:"공항","All projects":"모든 프로젝트","Are you sure to remove station? You cannot undo this action.":"이 역을 삭제하시겠습니까? 이 작업을 취소할 수 없습니다.","Blank project":"백지 프로젝트","Branch left end":"지선 좌단","Branch on the left":"좌측 지선","Branch on the right":"우측 지선","Branch right end":"지선 우단","Branch spacing":"지선 간격",Branches:"지선",by:"에서 오다","Canvas scale":"화면 크기 조정 단계","Chinese name":"한자 명칭",Colour:"색깔","Connect to main line":"메인 라인에 연결","day ago":"일 전","days ago":"일 전","Disconnect from main line":"본선에서 끊기다","Disneyland resort":"디즈니","Edit project info":"프로젝트 정보 편집","Empty template":"공백 틀","English name":"영문 명칭","Help and support":"도움과 지지","High speed rail":"고속 철도","hour ago":"시간 전","hours ago":"시간 전","Import project":"프로젝트 가져오기","Just now":"방금","Last modified":"마지막 편집","minute ago":"분 전에","minutes ago":"분 전에","National rail":"국가 철도","No branches found":"지선을 찾지 못했다.",None:"무","Open selected":"선택한 프로젝트 열기","Open template":"틀 열기","Paid area":"유료환승",Project:"프로젝트","Project selected is invalid or corrupted.":"선택한 항목이 잘못되었거나 손상되었습니다.","Project name":"프로젝트 명칭","Remove project":"프로젝트 삭제","Remove station":"역 삭제","Saved projects":"저장된 프로젝트","Select canvas":"화면 선택",Style:"스타일","Station Chinese name":"역 한자 명칭","Station English name":"역 영문 명칭","Station name":"역 명칭","Target station":"목표 역","Terms and conditions":"조관 및 세칙","Text on the left":"글로 갈아타면 왼쪽으로 붙다","Text on the right":"글로 갈아타면 오른쪽으로 붙다","Unable to connect to main line.":"메인 라인에 연결할 수 없습니다.","Unable to disconnect from main line.":"메인라인에서 연결이 되지 않습니다.","Unable to remove this station.":"이 역은 삭제할 수 없습니다.",Unknown:"미지",View:"찾아 보기",Visit:"방문","Visit GitHub":"GitHub 방문하기","You have reached the maximum number of projects.":"프로젝트 수량 상한에 도달했습니다.",CanvasType:{all:"모두",destination:"터미널 번호판",runin:"현재 역 번호판",railmap:"플랫폼 도어 노선도",indoor:"차내 노선도"},RmgStyle:{mtr:"홍콩 지하철",gzmtr:"광저우 지하철",shmetro:"상해 지하철"}},Xt=(new Ft.I18nBuilder).use(Oe).withAppName("Rail Map Generator").withLng(Ft.getLanguage()).withDefaultResource(Jt).withResource("en",$t).withResource("zh-Hans",Kt).withResource("zh-Hant",Zt).withResource("ja",{}).withResource("ko",qt).build(),eo=e("_",(function(e,a,t){let o=Promise.resolve();function r(e){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=e,window.dispatchEvent(a),!a.defaultPrevented)throw e}return o.then((a=>{for(const e of a||[])"rejected"===e.status&&r(e.reason);return e().catch(r)}))}));var ao=function(){if("undefined"!=typeof Map)return Map;function e(e,a){var t=-1;return e.some((function(e,o){return e[0]===a&&(t=o,!0)})),t}return function(){function a(){this.__entries__=[]}return Object.defineProperty(a.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),a.prototype.get=function(a){var t=e(this.__entries__,a),o=this.__entries__[t];return o&&o[1]},a.prototype.set=function(a,t){var o=e(this.__entries__,a);~o?this.__entries__[o][1]=t:this.__entries__.push([a,t])},a.prototype.delete=function(a){var t=this.__entries__,o=e(t,a);~o&&t.splice(o,1)},a.prototype.has=function(a){return!!~e(this.__entries__,a)},a.prototype.clear=function(){this.__entries__.splice(0)},a.prototype.forEach=function(e,a){void 0===a&&(a=null);for(var t=0,o=this.__entries__;t0},e.prototype.connect_=function(){to&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),no?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){to&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var a=e.propertyName,t=void 0===a?"":a;io.some((function(e){return!!~t.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),go=function(e,a){for(var t=0,o=Object.keys(a);t0},e}(),xo="undefined"!=typeof WeakMap?new WeakMap:new ao,ko=function e(a){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var t=lo.getInstance(),o=new wo(a,t,this);xo.set(this,o)};["observe","unobserve","disconnect"].forEach((function(e){ko.prototype[e]=function(){var a;return(a=xo.get(this))[e].apply(a,arguments)}}));var zo=void 0!==oo.ResizeObserver?oo.ResizeObserver:ko;window.ResizeObserver||(window.ResizeObserver=zo);var Mo=function(){return Mo=Object.assign||function(e){for(var a,t=1,o=arguments.length;t`";if(!o){const e=new Error(r);throw e.name="ContextError",null==(t=Error.captureStackTrace)||t.call(Error,e,a),e}return o},e]}();function Oo(e){return null!=e&&e.length?e[e.length-1]:void 0}function Ao(e,a,t=1,o=!0){if(0===a)return-1;let r=e+t;return-1===e&&(r=t>0?0:a-1),r=o?(r%a+a)%a:Math.max(0,Math.min(r,a-1)),r}function Io(e,a,t=!0){const o=function(e,a,t=!0){return Ao(e,a,-1,t)}(e,a.length,t);return a[o]}function Eo(e){return Array.isArray(e)}function Do(e){return null!==e&&"object"==typeof e&&!Eo(e)}function Lo(e){return Eo(e)?function(e){return Eo(e)&&0===e.length}(e):Do(e)?function(e){return Do(e)&&0===Object.keys(e).length}(e):null==e||""===e}function Co(e){return typeof e>"u"}function To(e){return typeof e<"u"}function Ro(e,a){const t={...e};return a.forEach((e=>{delete t[e]})),t}function Po(e,...a){return function(e){return"function"==typeof e}(e)?e(...a):e}var _o=function(e,a){for(var t,o=0,r=Ae.Children.toArray(e);o{var a;return null==(a="string"==typeof e||"number"==typeof e?e:e[Object.keys(e)[0]])?void 0:a.toString()},Go=(e,a)=>"string"!=typeof e||Lo(a)?e:e.toString().replace(new RegExp(function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}(a),"gi"),(e=>`${e}`)),Fo=(e,a,t)=>(null==a?void 0:a.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||(null==t?void 0:t.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||Ho(e,a)>=.5||Ho(e,t)>=.5,Yo=(e,a)=>_o(e,(e=>{var t;return"AutoCompleteItem"===(null==(t=null==e?void 0:e.type)?void 0:t.displayName)&&e.props.value===(null==a?void 0:a.value)})),Wo=(e,a)=>_o(e,(e=>{var t;return"AutoCompleteItem"===(null==(t=null==e?void 0:e.type)?void 0:t.displayName)&&e.props.value===(null==a?void 0:a.value)})),Qo=(e,a)=>{const t={},o={},{field:r}=e;return r&&Object.keys(r).forEach((e=>{if(!1===e.startsWith("--input"))t[e]=r[e];else{let a=r[e];const t=e.replace("--input-","").replace(/-([a-z])/g,(function(e){return e[1].toUpperCase()}));-1!==a.indexOf(".")&&(a=a.substring(a.indexOf(".")+1)),o[t]=a}})),{...a&&{...t,...o,_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3},cursor:"text",h:"fit-content"}};function Jo(e){var a;let{prefocusFirstItem:t=!0,closeOnBlur:o=!0,creatable:r,emphasize:i,emptyState:n=!0,defaultEmptyStateProps:l={},freeSolo:g,isReadOnly:c,listAllValuesOnFocus:s,maxSuggestions:d,multiple:p,closeOnSelect:u=!p,defaultValue:h,defaultValues:f=(h?[h]:[]),onReady:v,defaultIsOpen:m,disableFilter:b,isLoading:y=!1,placement:w="bottom",restoreOnBlurIfEmpty:x=!g,shouldRenderSuggestions:k=()=>!0,submitKeys:z=[],suggestWhenEmpty:M,value:j,values:S=(j?"string"==typeof j?[j]:[...j]:void 0)}=e;g=g||!!p||e.freeSolo;const{isOpen:I,onClose:E,onOpen:D}=N({defaultIsOpen:m}),L=Ae.useMemo((()=>Po(e.children,{isOpen:I,onClose:E,onOpen:D})),[e.children,I]),C=Ae.useMemo((()=>(e=>Bo(e,(e=>{var a;return"AutoCompleteItem"===(null==(a=null==e?void 0:e.type)?void 0:a.displayName)})).map((e=>{const a=function(e){const a={};return["value","label","fixed","disabled"].forEach((t=>{t in e&&(a[t]=e[t])})),a}(e.props),{getValue:t=Vo}=e.props,o=t(a.value);return{...To(a.label)?a:{...a,label:o},value:o,originalValue:a.value}})))(L)),[L]),T=Ae.useRef(null),R=Ae.useRef(null),P=Ae.useRef(null),_=Ae.useRef(null),[U,B]=Ae.useState(!1);let H="";p?H="":Co(f)?Co(S)||(H=S[0]):H=f[0];const[V,G]=Ae.useState(H??""),F=Ae.useMemo((()=>b?C:C.filter((a=>a.fixed||Po(e.filter||Fo,V,a.value,a.label)||U)).filter(((e,a)=>!d||e.fixed||a[...F,...Y]),[F,Y]),[Q,J]=O({defaultValue:f.map((e=>null==e?void 0:e.toString())),value:S,onChange:a=>{const t=W.find((e=>e.value===a[0]));if(!t)return;const o=a.map((e=>W.find((a=>a.value===e))));Po(e.onChange,p?a:a[0],p?o:t)}});Ae.useEffect((()=>{0===W.length&&!n&&I&&E()}),[W.length,n,I]);const[$,K]=Ae.useState(t?null==(a=C[0])?void 0:a.value:null),Z=e.maxSelections||Q.length+1,q=W.findIndex((e=>e.value===$)),X=function(e,a,t=!0){return a[Ao(e,a.length,1,t)]}(q,W,!!e.rollNavigation),ee=Io(q,W,!!e.rollNavigation),ae=function(e){return null==e?void 0:e[0]}(W),te=Oo(W),oe=!W.some((e=>e.value===$));Ae.useEffect((()=>{var e;oe&&K(t?null==(e=C[0])?void 0:e.value:null)}),[oe]),A((()=>{t&&K(null==ae?void 0:ae.value)}),[V,null==ae?void 0:ae.value]),Ae.useEffect((()=>{var e;!I&&t&&K(null==(e=C[0])?void 0:e.value)}),[I]),Ae.useEffect((()=>{I&&s&&B(!0)}),[I,s,B]),Ae.useEffect((()=>{const a=C.find((e=>e.value===$));Po(e.onOptionFocus,{item:a,focusMethod:_.current,isNewInput:null==a?void 0:a.creatable})}),[$,e.onOptionFocus]);const re=a=>{var t,o;const r=W.find((e=>e.value===a)),i=(null==r?void 0:r.label)||(null==r?void 0:r.value);G((()=>p?"":i??"")),!Q.includes(a)&&Q.lengthp?[...e,a]:[a])),p&&(null==(t=T.current)||t.focus()),e.focusInputOnSelect&&(null==(o=T.current)||o.focus()),Po(e.onSelectOption,{item:r,selectMethod:_.current,isNewInput:null==r?void 0:r.creatable}),null!=r&&r.creatable&&Po(e.onCreateOption,{item:Ro(r,["noFilter"]),selectMethod:_.current}),u&&E()},ie=(a,t)=>{var o;J((t=>{const o=C.find((e=>e.value===a));return o?(Po(e.onTagRemoved,a,o,t),t.filter((e=>e!==a))):t}));const r=C.find((e=>e.value===a)),i=(null==r?void 0:r.label)||(null==r?void 0:r.value);V===i&&G(""),t&&(null==(o=T.current)||o.focus())},ne=p?Q.map((e=>{var a;return{label:(null==(a=C.find((a=>a.value===(null==e?void 0:e.toString()))))?void 0:a.label)||e,onRemove:()=>ie(e)}})):[];return Ae.useEffect((()=>{Po(v,{tags:ne})}),[Q]),{autoCompleteProps:e,children:L,filteredList:W,filteredResults:F,focusedValue:$,defaultEmptyStateProps:l,getEmptyStateProps:e=>{if(W.every((e=>e.noFilter))&&n&&!r)return"boolean"==typeof n?e:Po(n,{query:V})},getGroupProps:e=>{const a=((e,a)=>To(_o(e,(e=>{var t,o;const r=Po((null==(t=e.props)?void 0:t.getValue)||Vo,(null==(o=e.props)?void 0:o.value)||{});return a.some((e=>e.value===r))}))))(e.children,W);return{divider:{hasFirstChild:Yo(e.children,ae),hasLastChild:Wo(e.children,Oo(W.filter((e=>Co(null==e?void 0:e.noFilter)))))},group:{display:a?"initial":"none"}}},getInputProps:(a,t)=>{const{onBlur:r,onChange:i,onFocus:n,onKeyDown:l,variant:g,...d}=a;return{wrapper:{ref:R,onClick:()=>{var e;null==(e=null==T?void 0:T.current)||e.focus()},...Qo(t,p),...d},input:{isReadOnly:c,onFocus:a=>{Po(n,a),e.openOnFocus&&!c&&D(),e.selectOnFocus&&a.target.select(),s&&B(!0)},onBlur:e=>{var a,t;Po(r,e);const i=e.relatedTarget===(null==P?void 0:P.current)||(null==(a=P.current)?void 0:a.contains(e.relatedTarget)),n=null==(t=R.current)?void 0:t.contains(e.relatedTarget);if(!i&&!n&&(o&&E(),!Q.includes(e.target.value)&&x)){const e=Oo(Q),a=C.find((a=>a.value===e)),t=(null==a?void 0:a.label)||(null==a?void 0:a.value)||"";G(t)}},onChange:e=>{const a=e.target.value;Po(i,e),G(a);const t=Lo(a);!Po(k,a)||t&&!M?E():D(),B(!1)},onKeyDown:e=>{var a;Po(l,e),_.current="keyboard";const{key:t}=e,o=W[q];return["Enter",...z].includes(t)?(!o||null!=o&&o.disabled||!I?null==(a=T.current)||a.focus():re(null==o?void 0:o.value),void e.preventDefault()):"ArrowDown"===t?(I?K(null==X?void 0:X.value):D(),void e.preventDefault()):"ArrowUp"===t?(I?K(null==ee?void 0:ee.value):D(),void e.preventDefault()):"Tab"!==t?"Home"===t?(K(null==ae?void 0:ae.value),void e.preventDefault()):"End"===t?(K(null==te?void 0:te.value),void e.preventDefault()):void("Escape"===t&&(E(),e.preventDefault())):void(!I||!o||null!=o&&o.disabled?E():re(null==o?void 0:o.value))},value:V,variant:p?"unstyled":g,...d}}},getItemProps:(e,a)=>{var t;const{_fixed:o,_focus:r,children:n,disabled:l,label:g,value:c,fixed:s,getValue:d=Vo,onClick:p,onMouseOver:u,sx:h,...f}=e,v=a?c:null==(t=d(c))?void 0:t.toString(),m=v===$,b=W.findIndex((e=>e.value===v))>=0,y=n||g||v;return{item:{..."string"==typeof y&&i?{dangerouslySetInnerHTML:{__html:Go(y,V)}}:{children:y},"aria-selected":Q.includes(v),"aria-disabled":l,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:e=>{var a;Po(p,e),l?null==(a=T.current)||a.focus():re(v)},onMouseOver:e=>{Po(u,e),K(v),_.current="mouse"},sx:{...h,mark:{color:"inherit",bg:"transparent",...Do(i)?i:{fontWeight:i?"extrabold":"inherit"}}},...m&&(r||{bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),...s&&o,...f},root:{isValidSuggestion:b,value:v}}},inputRef:T,interactionRef:_,isLoading:y,isOpen:I,itemList:C,listRef:P,onClose:E,onOpen:D,placement:w,query:V,removeItem:ie,resetItems:e=>{var a;J([]),e&&(null==(a=T.current)||a.focus())},setQuery:G,tags:ne,value:j,values:Q}}g(((e,a)=>{const t=Jo(e),{children:o,isOpen:i,onClose:l,onOpen:g,placement:c,resetItems:s,removeItem:d}=t;Ae.useImperativeHandle(a,(()=>({resetItems:s,removeItem:d})));const{matchWidth:p=!0}=t.autoCompleteProps;return r.jsx(So,{value:t,children:r.jsx(u,{isLazy:!0,isOpen:i,onClose:l,onOpen:g,autoFocus:!1,placement:c,closeOnBlur:!0,matchWidth:p,children:r.jsx(n.div,{w:"full",ref:a,children:o})})})})).displayName="AutoComplete",g(((e,a)=>{const{focusedValue:t,getItemProps:o,interactionRef:i}=No(),n=Ae.useRef(),l=h(a,n),g=o(e),{isValidSuggestion:c,value:s}=g.root,d=t===s;Ae.useEffect((()=>{var e;d&&"keyboard"===i.current&&(null==(e=null==n?void 0:n.current)||e.scrollIntoView({behavior:"smooth",block:"nearest"}))}),[d,i]),Ae.useEffect((()=>{"string"!=typeof s&&console.warn("wow"),"string"!=typeof s&&Co(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")}),[]);const{children:p,dangerouslySetInnerHTML:u,...v}=g.item,m=Ro(v,["groupId"]);return c?r.jsx(f,{ref:l,...$o,...m,children:p||r.jsx("span",{dangerouslySetInnerHTML:u})}):null})).displayName="AutoCompleteItem";const $o={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},Ko=g(((e,a)=>{const{children:t,showDivider:o,...i}=e,n=Ro(i,["groupSibling"]),{getGroupProps:l}=No(),{group:g}=l(e),c=Xo(e);return r.jsxs(v,{ref:a,...g,...n,children:[r.jsx(m,{...c.top}),t,r.jsx(m,{...c.bottom})]})})),Zo=g(((e,a)=>r.jsx(f,{...qo,...e,ref:a})));Ko.displayName="AutoCompleteGroup",Zo.displayName="AutoCompleteGroupTitle";const qo={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},Xo=e=>{const{getGroupProps:a}=No(),t=e.groupSibling,{divider:{hasFirstChild:o,hasLastChild:r}}=a(e),i={my:2,borderColor:e.dividerColor};return{top:{...i,mb:4,display:!e.showDivider||o?"none":""},bottom:{...i,display:!e.showDivider||r||t?"none":""}}},er=g(((e,a)=>{const{isLoading:t}=No(),{loadingIcon:o,...i}=e;return r.jsxs(b,{children:[r.jsx(y,{...i,ref:a}),t&&r.jsx(w,{children:o||r.jsx(x,{})})]})})),ar=g(((e,a)=>{const{autoCompleteProps:t,inputRef:o,getInputProps:i,tags:n,setQuery:l,value:g,itemList:s}=No(),{children:d,isInvalid:p,hidePlaceholder:u,...f}=e,{value:v}=f;Ae.useEffect((()=>{if(void 0!==g&&("string"==typeof g||g instanceof String)){const e=s.find((e=>e.value===g)),a=void 0===e?g:e.label;l(a)}}),[g]),Ae.useEffect((()=>{void 0!==v&&("string"==typeof v||v instanceof String)&&l(v)}),[v]);const m=k("Input",e);let{wrapper:b,input:y}=i(f,m);const{ref:w,...x}=b,j=h(a,o),S=Po(d,{tags:n});u&&(y={...y,placeholder:Array.isArray(S)&&S.length?void 0:y.placeholder});const N=r.jsx(er,{isInvalid:p,...y,ref:j}),O=r.jsxs(z,{"aria-invalid":p,...x,ref:w,children:[S,r.jsx(c,{as:er,...y,ref:j})]});return r.jsx(M,{children:t.multiple?O:N})}));ar.displayName="Input",ar.id="Input";const tr=e=>{const{getEmptyStateProps:a,defaultEmptyStateProps:t}=No(),o=a(r.jsx(f,{...or,...t,children:"No options found!"}));return r.jsx(v,{...e,children:o})},or={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},rr=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"];g(((e,a)=>{const{children:t,loadingState:o,...i}=e,{listRef:n,isLoading:l}=No(),g=h(a,n),[c,s]=(e=>{const a=Ie.Children.map(e,((a,t)=>{var o;if("AutoCompleteGroup"===(null==(o=null==a?void 0:a.type)?void 0:o.displayName)){const o=Ie.Children.toArray(e)[t+1];return Ie.cloneElement(a,{groupSibling:!!o&&"AutoCompleteGroup"===o.type.displayName})}return a})),t=Ie.Children.toArray(a).filter((e=>{var a;return!rr.includes(null==(a=null==e?void 0:e.type)?void 0:a.displayName)}));return[Ie.Children.toArray(a).filter((e=>{var a;return rr.includes(null==(a=null==e?void 0:e.type)?void 0:a.displayName)})),t]})(t);return r.jsxs(j,{ref:g,w:"inherit",...ir,...i,children:[l&&r.jsx(S,{children:o||r.jsx(x,{size:"md"})}),!l&&r.jsxs(r.Fragment,{children:[c,r.jsx(tr,{}),s]})]})})).displayName="AutoCompleteList";const ir={py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}};Ae.memo((e=>{const{label:a,onRemove:t,disabled:o,...i}=e;return r.jsx(c,{children:r.jsxs(s,{borderRadius:"md",fontWeight:"normal",...o&&nr,...i,children:[r.jsx(d,{children:a}),r.jsx(p,{onClick:()=>!o&&Po(t),cursor:"pointer",...o&&nr})]})})}));const nr={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};var lr=function(e,a){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,i=t.call(e),n=[];try{for(;(void 0===a||a-- >0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},gr=function(e,a,t){if(t||2===arguments.length)for(var o,r=0,i=a.length;r0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},hr=(e("ai",Ae.forwardRef((function(e,a){var t=e.validator,o=e.onDebouncedChange,i=e.delay,n=e.optionList,l=e.defaultValue;e.onChange;var g=pr(e,["validator","onDebouncedChange","delay","optionList","defaultValue","onChange"]),c=Ae.useRef(null),s=h(c,a),d=Ae.useRef("datalist-"+(new Date).valueOf()),p=ur(Ae.useState(!1),2),u=p[0],f=p[1],v=Ae.useRef();return Ae.useEffect((function(){c.current&&(c.current.value=(null==l?void 0:l.toString())||"")}),[l]),r.jsxs(r.Fragment,{children:[r.jsx(y,dr({ref:s,list:d.current,variant:"flushed",size:"sm",h:6,onChange:function(e){var a=e.target.value;window.clearTimeout(v.current),t&&f(!t(a)),v.current=window.setTimeout((function(){null==o||o(a),v.current=void 0}),null!=i?i:500)},onBlur:function(e){var a=e.target.value;void 0!==v.current&&(window.clearTimeout(v.current),t&&f(!t(a)),null==o||o(a),v.current=void 0)},isInvalid:u},g)),n&&r.jsx("datalist",{id:d.current,children:null==n?void 0:n.map((function(e,a){return r.jsx("option",{children:e},a)}))})]})}))),function(){return hr=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n}),yr=function(e){switch(e){case Ke.DEV:return"red";case Ke.UAT:return"orange";case Ke.PRD:return"green"}};function wr(e){var a=e.environment,t=e.version,o=e.popoverHeader,i=e.popoverBody,n=br(Ae.useState(!1),2),l=n[0],g=n[1];return r.jsxs(u,{isOpen:l,onOpen:function(){return o&&g(!0)},onClose:function(){return g(!1)},children:[r.jsx(L,{children:r.jsx(C,{ml:1,colorScheme:yr(a),title:"".concat(a,": ").concat(t),cursor:o?"pointer":"help",children:a===Ke.PRD?t:a})}),r.jsxs(j,{children:[r.jsx(T,{}),r.jsx(R,{}),r.jsx(P,{children:o}),r.jsx(_,{children:i})]})]})}var xr=function(e,a){var t=window.URL.createObjectURL(a),o=document.createElement("a");o.href=t,o.download=e,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(t)},kr=function(e,a){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,i=t.call(e),n=[];try{for(;(void 0===a||a-- >0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n};function zr(e){var a=e.cancelRef,t=e.isOpen,o=e.onClose,i=kr(Ae.useState(!1),2),n=i[0],l=i[1];return r.jsxs(U,{leastDestructiveRef:a,isOpen:t,onClose:o,children:[r.jsx(B,{}),r.jsxs(H,{children:[r.jsx(V,{children:"Warning 警告"}),r.jsx(G,{}),r.jsxs(F,{sx:{"& p":{my:1}},children:[r.jsx(Y,{children:"Are you sure you want to reset the app? The webpage local storage for this app will be cleared. A copy of the local storage will be downloaded and it may be used for restoration (varies with app)."}),r.jsx(Y,{children:"確定重設該應用程式嗎?應用程式的網頁本地儲存將會被清除。本地儲存的副本可供下載及用於復原(因應用程式而異)。"}),r.jsx(Y,{children:"确定重置本应用程序吗?应用程序的网页本地存储将会被清除。本地存储的拷贝可供下载以及用于还原(因应用程序而異)。"})]}),r.jsxs(W,{children:[r.jsx(E,{ref:a,onClick:o,children:"Cancel"}),r.jsx(E,{isLoading:n,colorScheme:"red",ml:3,onClick:function(){l(!0);var e,a,t,o,r=Ft.storage.getAll(),i=Ft.getAppName(),n="".concat(i,"_BACKUP_").concat((new Date).toISOString(),".json");e=n,a="application/json",t=JSON.stringify(r),o=new Blob([t],{type:a}),xr(e,o),Ft.storage.clear(),setTimeout((function(){window.location.reload()}),2e3)},children:"Confirm and reload"})]})]})]})}var Mr=function(){return Mr=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n};function Nr(e){var a=e.error,o=e.errorInfo,i=e.allowReset,n=e.sx,l=jr(e,["error","errorInfo","allowReset","sx"]),g=t("RmgErrorBoundary"),c=Q("primary.500","primary.300"),s=Sr(Ae.useState(!1),2),d=s[0],p=s[1],u=Ae.useRef(null),h=function(e){return r.jsx(J,{color:c,role:"button",onClick:function(){return p(!0)},children:e})},f=Ft.getAppName(),v=r.jsx(J,{color:c,href:"https://github.com/railmapgen/".concat("rmg-home"===f?"railmapgen.github.io":f,"/issues"),isExternal:!0,children:"GitHub Issue"});return r.jsxs($,Mr({status:"error",sx:Mr(Mr({},g),n)},l,{children:[r.jsx(K,{}),r.jsx(Z,{children:"Something went wrong!"}),r.jsxs(q,{children:[r.jsxs(Y,{children:["Please try to refresh or re-import your configuration files. If the issue still persists, please consider upgrading your browser",i?r.jsxs(r.Fragment,{children:[" or ",h("reset this app")]}):"",". Should you need any help, please contact us by submitting an issue in ",v," with the details shown below."]}),r.jsxs(Y,{children:["請嘗試重新整理或重新上載設定檔。如果問題仍然存在,請考慮更新你的瀏覽器",i?r.jsxs(r.Fragment,{children:["或",h("重設該應用程式")]}):"","。如需協助或與我們聯絡,請前往 ",v," 提交一個 Issue 並附以詳細資料。"]}),r.jsxs(Y,{children:["请尝试刷新或者重新上传配置文件。如果问题仍然存在,请考虑更新您的浏览器",i?r.jsxs(r.Fragment,{children:["或者",h("重置本应用程序")]}):"","。如需帮助或者联系我们,请前往 ",v," 提交一个 Issue 并附上详细信息。"]}),r.jsxs(Y,{as:"details",children:[null==a?void 0:a.toString(),r.jsx("br",{}),null==o?void 0:o.componentStack]}),i&&r.jsx(zr,{cancelRef:u,isOpen:d,onClose:function(){return p(!1)}})]})]}))}var Or,Ar=(Or=function(e,a){return Or=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,a){e.__proto__=a}||function(e,a){for(var t in a)Object.prototype.hasOwnProperty.call(a,t)&&(e[t]=a[t])},Or(e,a)},function(e,a){if("function"!=typeof a&&null!==a)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");function t(){this.constructor=e}Or(e,a),e.prototype=null===a?Object.create(a):(t.prototype=a.prototype,new t)}),Ir=function(){return Ir=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},_r=function(e,a){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,i=t.call(e),n=[];try{for(;(void 0===a||a-- >0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},Ur=function(e,a,t){if(t||2===arguments.length)for(var o,r=0,i=a.length;r0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},Vr=function(){return Vr=Object.assign||function(e){for(var a,t=1,o=arguments.length;t0)&&!(o=i.next()).done;)n.push(o.value)}catch(l){r={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return n},qr=function(e,a,t){if(t||2===arguments.length)for(var o,r=0,i=a.length;r span:last-of-type":{position:"absolute",right:8}},"& .rmg-multi-select__icon-wrapper":{display:"inline-flex",justifyContent:"center",w:6,h:"100%",position:"absolute",right:2,top:0,fontSize:"xl","& svg":{h:"1em",w:"1em"}},"& .chakra-popover__content":{w:"unset",minW:200},"& .chakra-popover__body":{p:0,"li label":{p:2,w:"100%",_hover:{bg:"dark"===t?"whiteAlpha.200":"gray.100"},_active:{bg:"dark"===t?"whiteAlpha.300":"gray.200"}}}}}},ni=function(){return ni=Object.assign||function(e){for(var a,t=1,o=arguments.length;t button:first-of-type":{ml:1}}},RmgLoader:{baseStyle:{w:"100%",h:"100%",position:"absolute",top:0,right:0,alignItems:"center",justifyContent:"center","& .rmg-loader__backdrop":{position:"absolute",w:"100%",h:"100%",zIndex:1500,bg:"blackAlpha.400"},"& .chakra-progress":{zIndex:2e3}}},RmgMultiSelect:ii,RmgOutput:{baseStyle:function(e){var a=e.noWrap;return ni({minH:6,fontSize:"sm"},a?li:{textWrap:"pretty"})}},RmgPage:{baseStyle:{position:"relative",flexDirection:"column",flex:1,overflow:"hidden",background:"inherit"}},RmgPageHeader:{baseStyle:{alignItems:"center",flexWrap:"wrap",pl:2,pr:3,py:1,zIndex:10}},RmgSection:{baseStyle:{position:"relative",background:"inherit"}},RmgSectionHeader:{baseStyle:{display:"flex",alignItems:"center",flexWrap:"wrap",position:"sticky",top:0,background:"inherit",px:2,py:1,zIndex:5}},RmgSidePanel:{baseStyle:function(e){var a=e.colorMode,t=e.width,o=e.alwaysOverlay;return{height:"100%",position:o?"absolute":{base:"absolute",lg:"relative"},right:o?0:{base:0,lg:"unset"},background:"light"===a?"white":"gray.800",boxShadow:"lg",flexShrink:0,flexDirection:"column",transition:"0.3s ease-in-out",maxW:0,visibility:"hidden",zIndex:5,"&.show-side-panel":{maxW:{base:"100%",sm:t},w:{base:"100%",sm:"unset"},visibility:"initial"},"& .rmg-side-panel__inner":{flexDirection:"column",h:"100%",w:{base:"100vw",sm:t}},"& .rmg-side-panel__header":{flexShrink:0,pl:3,pr:1,py:0,"& button":{ml:"auto"}},"& .rmg-side-panel__body":{display:"flex",flexDirection:"column",flex:1,overflowY:"auto",p:1},"& .rmg-side-panel__footer":{display:"flex",justifyContent:"flex-end",p:1}}}},RmgThrottledSlider:{baseStyle:{h:6,alignItems:"center","& .chakra-button:first-of-type":{mr:1},"& .chakra-button:last-of-type":{ml:1}}},RmgWindow:{baseStyle:{position:"relative",flexDirection:"column",height:"100%",overflow:"hidden",background:"inherit"}},RmgWindowHeader:{baseStyle:{px:2,alignItems:"center",zIndex:15,minH:10,transition:"0.3s ease-in-out"}}},ci=function(){return ci=Object.assign||function(e){for(var a,t=1,o=arguments.length;twindow.open("https://github.com/railmapgen/rmg","_blank"),children:o("Visit GitHub")})})]})]})}const bi=()=>{const{t:e}=Ee(),a=Ft.getEnv(),t=Ft.getAppVersion(),[o,i]=Ae.useState(!1);return r.jsxs(Yr,{children:[r.jsx(ze,{as:"h4",size:"md",children:e("Rail Map Generator")}),r.jsx(wr,{environment:a,version:t}),r.jsx(Se,{ml:"auto",children:r.jsx(re,{size:"sm",variant:"ghost","aria-label":"Help",icon:r.jsx(fi,{}),onClick:()=>i(!0)})}),r.jsx(mi,{isOpen:o,onClose:()=>i(!1)})]})},yi=()=>{const{t:e}=Ee();return r.jsx(Yr,{isAppClipHeader:!0,children:r.jsx(ze,{as:"h4",size:"md",children:e("Rail Map Generator")+" - "+e("Project Selector")})})},wi=Ae.lazy((()=>eo((()=>a.import("./app-router-legacy-CLPbLjMe.js").then((e=>e.a))),void 0))),xi=Ae.lazy((()=>eo((()=>a.import("./app-clip-view-legacy-BEZC65g6.js")),void 0)));function ki(){return r.jsx(De,{children:r.jsx(ui,{children:r.jsx(Fr,{children:r.jsxs(Le,{children:[r.jsx(Ce,{path:"/import",element:r.jsxs(Dr,{suspenseFallback:r.jsx(Kr,{isIndeterminate:!0}),children:[r.jsx(yi,{}),r.jsx(xi,{})]})}),r.jsx(Ce,{path:"/",element:r.jsxs(Dr,{suspenseFallback:r.jsx(Kr,{isIndeterminate:!0}),allowReset:!0,children:[r.jsx(bi,{}),r.jsx(wi,{})]})}),r.jsx(Ce,{path:"*",element:r.jsx(Te,{to:"/"})})]})})})})}Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var zi=e("e",(e=>(e.MTR="mtr",e.GZMTR="gzmtr",e.SHMetro="shmetro",e.SHSuburbanRailway="shsubrwy",e))(zi||{})),Mi=e("aS",(e=>(e.Destination="destination",e.RunIn="runin",e.RailMap="railmap",e.Indoor="indoor",e.Platform="platform",e))(Mi||{}));e("p",{mtr:["destination","railmap"],gzmtr:["runin","railmap"],shmetro:["destination","runin","railmap","indoor"],shsubrwy:["destination","runin","platform"]});var ji=e("ac",(e=>(e.CLOSE="CLOSE",e.STATION="STATION",e.STYLE="STYLE",e.BRANCH="BRANCH",e))(ji||{})),Si=e("D",(e=>(e.left="left",e.right="right",e))(Si||{})),Ni=e("S",(e=>(e.left="l",e.right="r",e))(Ni||{})),Oi=e("B",(e=>(e.through="through",e.nonThrough="nonthrough",e))(Oi||{})),Ai=e("m",(e=>(e.local="local",e.express="express",e.direct="direct",e))(Ai||{}));e("F",{airport:"Airport",hsr:"High speed rail",railway:"National rail",disney:"Disneyland resort",np360:"Ngong Ping 360"});var Ii=e("P",(e=>(e.gz1="gz1",e.gz28="gz28",e.gz2otis="gz2otis",e.gz3="gz3",e.gz4="gz4",e.gz5="gz5",e.gz11="gz11",e.gz1822="gz1822",e.gz6="gz6",e.gzgf="gzgf",e.gz1421="gz1421",e.gz7w="gz7w",e))(Ii||{})),Ei=e("K",(e=>(e.sh="sh",e.sh2020="sh2020",e))(Ei||{})),Di=e("aZ",(e=>(e[e.PASSED=-1]="PASSED",e[e.CURRENT=0]="CURRENT",e[e.FUTURE=1]="FUTURE",e))(Di||{})),Li=e("aY",(e=>(e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT",e))(Li||{})),Ci=e("aH",(e=>(e.CANVAS_TO_SHOW="canvasToShow",e.CANVAS_SCALE="canvasScale",e.PARAM_BY_ID="param:",e.PARAM_CONFIG_BY_ID="paramConfig:",e.DO_NOT_SHOW_RMT_MSG="doNotShowRMTMsg",e))(Ci||{})),Ti=e("E",(e=>(e.APP_LOAD="APP_LOAD",e.STYLE_CHANGE="STYLE_CHANGE",e.OPEN_PARAM="OPEN_PARAM",e.NEW_PARAM="NEW_PARAM",e.UPLOAD_PARAM="UPLOAD_PARAM",e.OPEN_TEMPLATE="OPEN_TEMPLATE",e.REMOVE_PARAM="REMOVE_PARAM",e.UPDATE_PARAM_CONFIG="UPDATE_PARAM_CONFIG",e.ADD_STATION="ADD_STATION",e.REMOVE_STATION="REMOVE_STATION",e.ADD_BRANCH="ADD_BRANCH",e.AUTO_NUMBERING="AUTO_NUMBERING",e.REVERSE_STATIONS="REVERSE_STATIONS",e.CONNECT_BRANCH="CONNECT_BRANCH",e.DISCONNECT_BRANCH="DISCONNECT_BRANCH",e.SELECT_COLOUR="SELECT_COLOUR",e.DOWNLOAD_PARAM="DOWNLOAD_PARAM",e.DOWNLOAD_IMAGES="DOWNLOAD_IMAGES",e.APP_CLIP_VIEW_OPENED="APP_CLIP_VIEW_OPENED",e.APP_CLIP_VIEW_CLOSED="APP_CLIP_VIEW_CLOSED",e.APP_CLIP_VIEW_IMPORT="APP_CLIP_VIEW_IMPORT",e))(Ti||{}));const Ri={rmgStyle:zi.MTR,paramConfig:void 0,canvasScale:1,canvasToShow:Object.values(Mi),sidePanelMode:ji.CLOSE,selectedStation:"linestart",selectedColine:void 0,selectedBranch:0,isShareTrackEnabled:void 0,globalAlerts:{},isLoading:void 0},Pi=Re({name:"app",initialState:Ri,reducers:{setParamConfig:(e,a)=>{e.paramConfig=a.payload},updateParamModifiedTime:(e,a)=>{e.paramConfig&&(e.paramConfig.lastModified=a.payload)},setCanvasScale:(e,a)=>{e.canvasScale=a.payload},setCanvasToShow:(e,a)=>{e.canvasToShow=a.payload},setSidePanelMode:(e,a)=>{e.sidePanelMode=a.payload},setSelectedStation:(e,a)=>{e.selectedStation=a.payload},setSelectedColine:(e,a)=>{e.selectedColine=a.payload},setSelectedBranch:(e,a)=>{e.selectedBranch=a.payload},setIsShareTrackEnabled:(e,a)=>{e.isShareTrackEnabled=a.payload},setGlobalAlert:(e,a)=>{const{status:t,message:o,url:r,linkedApp:i}=a.payload;e.globalAlerts[t]={message:o,url:r,linkedApp:i}},closeGlobalAlert:(e,a)=>{delete e.globalAlerts[a.payload]},startLoading:e=>{e.isLoading=-1},setLoadingProgress:(e,a)=>{e.isLoading=a.payload},stopLoading:e=>{e.isLoading=void 0},openPaletteAppClip:(e,a)=>{e.paletteAppClipInput=a.payload,e.paletteAppClipOutput=void 0},closePaletteAppClip:e=>{e.paletteAppClipInput=void 0},onPaletteAppClipEmit:(e,a)=>{e.paletteAppClipOutput=a.payload,e.paletteAppClipInput=void 0}}}),{setParamConfig:_i,updateParamModifiedTime:Ui,setCanvasScale:Bi,setCanvasToShow:Hi,setSidePanelMode:Vi,setSelectedStation:Gi,setSelectedColine:Fi,setSelectedBranch:Yi,setIsShareTrackEnabled:Wi,setGlobalAlert:Qi,closeGlobalAlert:Ji,startLoading:$i,setLoadingProgress:Ki,stopLoading:Zi,openPaletteAppClip:qi,closePaletteAppClip:Xi,onPaletteAppClipEmit:en}=Pi.actions;e({aw:_i,az:Bi,ay:Hi,ab:Vi,ad:Gi,aF:Yi,aX:Wi,ah:Qi,aG:Ji,ar:Ki,as:Zi,o:qi,ap:Xi,aq:en});const an=Pi.reducer;var tn;e("h",tn),function(e){e.black="#000",e.white="#fff"}(tn||e("h",tn={}));var on=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(nl){i(nl)}}function l(e){try{g(o.throw(e))}catch(nl){i(nl)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};let rn={};const nn=(e,a)=>on(void 0,void 0,void 0,(function*(){return yield((e,a)=>on(void 0,void 0,void 0,(function*(){if(e in rn)return rn[e];const t=yield fetch(e,a),o=yield t.json();return rn[e]=o,o})))(`/rmg-palette/resources/palettes/${e}.json`,{signal:a})}));var ln=function(e,a,t,o){return new(t||(t=Promise))((function(r,i){function n(e){try{g(o.next(e))}catch(nl){i(nl)}}function l(e){try{g(o.throw(e))}catch(nl){i(nl)}}function g(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(n,l)}g((o=o.apply(e,a||[])).next())}))};e("aT",((e,a,t)=>ln(void 0,void 0,void 0,(function*(){const[a,t]=e;if("other"===a)return e;try{const o=(yield nn(a)).find((e=>e.id===t));return o?[a,t,o.colour,o.fg||tn.white]:(console.warn(`[rmg-palette] updateTheme(${a}, ${t}), line does not exist, returning old theme`),e)}catch(nl){return console.warn(`[rmg-palette] updateTheme(${a}, ${t}), unexpected error occurs, returning old theme`,nl),e}}))));let gn=e("aa",((e=21)=>{let a="",t=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)a+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[e]];return a}));const cn=e=>{switch(e){case zi.MTR:return["hongkong","twl","#E2231A",tn.white];case zi.GZMTR:return["guangzhou","gz1","#F3D03E",tn.black];case zi.SHMetro:return["shanghai","sh1","#E4002B",tn.white];default:return["other","other","#AAAAAA",tn.white]}},sn=e=>{switch(e){case"zh-Hans":return["1号线","Line 1"];case"zh-Hant":return["荃灣綫","Tsuen Wan Line"];default:return["地鐵線","Metro Line"]}},dn=e("aE",(e=>({localisedName:{zh:"未命名 "+e,en:"Unnamed "+e},num:"00",services:[Ai.local],parents:[],children:[],transfer:{groups:[{}],tick_direc:Ni.right,paid_area:!0},loop_pivot:!1,one_line:!0,int_padding:355,character_spacing:75}))),pn=e("aM",((e,a)=>{const t=dn("linestart");t.localisedName={en:"LEFT END"};const o=dn("lineend");o.localisedName={en:"RIGHT END"};const r=gn(6),i=dn(r);i.num="01";const n=gn(6),l=dn(n);return l.num="02",t.children=[r],i.parents=["linestart"],i.children=[n],l.parents=[r],l.children=["lineend"],o.parents=[n],{svgWidth:{destination:1200,runin:1200,railmap:1200,indoor:1200,platform:1200},svg_height:300,style:e,y_pc:50,padding:10,branchSpacingPct:33,direction:Ni.left,platform_num:"1",theme:cn(e),line_name:sn(a),current_stn_idx:n,stn_list:{linestart:t,[r]:i,[n]:l,lineend:o},namePosMTR:{isStagger:!0,isFlip:!0},customiseMTRDest:{isLegacy:!1,terminal:!1},line_num:"1",spanLineNum:!0,psd_num:"1",coachNum:"1",info_panel_type:e===zi.SHMetro?Ei.sh:Ii.gz1,direction_gz_x:40,direction_gz_y:70,coline:{},loop:!1,loop_info:{bank:!0,left_and_right_factor:1,bottom_factor:1}}})),un=Re({name:"param",initialState:pn(zi.MTR,"en"),reducers:{setSvgHeight:(e,a)=>{e.svg_height=a.payload},setSvgWidth:(e,a)=>{const{width:t,canvas:o}=a.payload;e.svgWidth[o]=t},setStyle:(e,a)=>{e.style=a.payload},setYPercentage:(e,a)=>{e.y_pc=a.payload},setBranchSpacingPct:(e,a)=>{e.branchSpacingPct=a.payload},setPaddingPercentage:(e,a)=>{e.padding=a.payload},setDirectionIndicatorX:(e,a)=>{e.direction_gz_x=a.payload},setDirectionIndicatorY:(e,a)=>{e.direction_gz_y=a.payload},setTheme:(e,a)=>{e.theme=a.payload},setLineName:(e,a)=>{e.line_name=a.payload},setDirection:(e,a)=>{e.direction=a.payload},setPlatform:(e,a)=>{e.platform_num=a.payload},setLineNum:(e,a)=>{e.line_num=a.payload},setSpanLineNum:(e,a)=>{e.spanLineNum=a.payload},setPsdNum:(e,a)=>{e.psd_num=a.payload},setCoachNum:(e,a)=>{e.coachNum=a.payload},setPanelType:(e,a)=>{e.info_panel_type=a.payload},addNote:e=>{e.notesGZMTR=(e.notesGZMTR||[]).concat([["","",10,10,!1]])},updateNote:(e,a)=>{if(e.notesGZMTR){const{index:t,note:o}=a.payload;e.notesGZMTR[t]=o}},removeNote:(e,a)=>{e.notesGZMTR&&e.notesGZMTR.splice(a.payload,1)},staggerStationNames:(e,a)=>{e.namePosMTR.isStagger=a.payload},flipStationNames:(e,a)=>{void 0===a.payload?e.namePosMTR.isFlip=!Pe(e).namePosMTR.isFlip:e.namePosMTR.isFlip=a.payload},toggleLineNameBeforeDestination:(e,a)=>{e.customiseMTRDest.isLegacy=a.payload},customiseDestinationName:(e,a)=>{e.customiseMTRDest.terminal=a.payload},setLoop:(e,a)=>{e.loop_info={bank:!0,left_and_right_factor:0,bottom_factor:1},e.loop=a.payload},setLoopBank:(e,a)=>{e.loop_info.bank=a.payload},setLoopLeftAndRightFactor:(e,a)=>{e.loop_info.left_and_right_factor=a.payload},setLoopBottomFactor:(e,a)=>{e.loop_info.bottom_factor=a.payload},setLoopMidpointStation:(e,a)=>{e.loop_info.midpoint_station=a.payload},setLoopClockwise:(e,a)=>{e.loop_info.clockwise=a.payload},setCurrentStation:(e,a)=>{e.current_stn_idx=a.payload},setStation:(e,a)=>{e.stn_list[a.payload.id]=a.payload.station},setStations:(e,a)=>{e.stn_list=a.payload},setColine:(e,a)=>{e.coline=a.payload},setFullParam:(e,a)=>a.payload}}),{setSvgHeight:hn,setSvgWidth:fn,setStyle:vn,setYPercentage:mn,setBranchSpacingPct:bn,setPaddingPercentage:yn,setDirectionIndicatorX:wn,setDirectionIndicatorY:xn,setTheme:kn,setLineName:zn,setDirection:Mn,setPlatform:jn,setLineNum:Sn,setSpanLineNum:Nn,setPsdNum:On,setCoachNum:An,setPanelType:In,addNote:En,updateNote:Dn,removeNote:Ln,staggerStationNames:Cn,flipStationNames:Tn,toggleLineNameBeforeDestination:Rn,customiseDestinationName:Pn,setLoop:_n,setLoopBank:Un,setLoopLeftAndRightFactor:Bn,setLoopBottomFactor:Hn,setLoopMidpointStation:Vn,setLoopClockwise:Gn,setCurrentStation:Fn,setStation:Yn,setStations:Wn,setColine:Qn,setFullParam:Jn}=un.actions;e({t:hn,q:fn,aD:vn,v:mn,y:bn,A:yn,C:wn,I:xn,J:kn,L:zn,W:Mn,Q:jn,N:Sn,O:Nn,T:On,U:An,V:In,a8:En,a6:Dn,a7:Ln,Z:Cn,X:Tn,$:Rn,a0:Pn,a1:_n,a2:Un,a3:Bn,a4:Hn,ag:Vn,a5:Gn,af:Fn,c:Wn,a9:Qn,s:Jn});const $n=un.reducer,Kn=Re({name:"helper",initialState:{depsStr:"",branches:[],routes:[],tpo:[]},reducers:{updateHelper:(e,a)=>{const t=(o=a.payload,Object.entries(o).map((([e,a])=>e+a.parents.toString()+a.children.toString()+JSON.stringify(a.branch))).join(""));var o,r;if(Pe(e).depsStr!==t){e.depsStr=t,console.log("Re-calculating routes..."),e.routes=(e=>{const a=["linestart"],t=[["linestart"]];let o=0;for(;a.length;){let r=a.shift(),i=t[o].slice(-1)[0]||null;for(i&&"linestart"!==r?t[o].push(r):t[o]=[r];"lineend"!==r;){i=r;const n=e[i].children;switch(n.length){case 1:r=n[0];break;case 2:{const l=e[i].branch.right,g=l[1];"through"===l[0]?(t.push(t[o].slice()),a.push(g)):0===o&&(t.push([i]),a.push(g)),r=n.filter((e=>e!==g))[0];break}}if(t[o].push(r),i===e[r].branch?.left?.[1]&&"nonthrough"===e[r].branch?.left?.[0])break}o++}return t})(a.payload),console.log("Re-calculating branches...");const o=(e=>{const a=["linestart"],t=[["linestart"]];let o=0;for(;a.length;){let r=a.shift(),i=t[o].slice(-1)[0]||null;for(i&&"linestart"!==r?t[o].push(r):t[o]=[r];"lineend"!==r;){i=r;const n=e[i].children;switch(n.length){case 1:r=n[0];break;case 2:{const l=e[i].branch.right,g=l[1];"through"===l[0]?(t.push([r]),a.push(g)):0===o&&(t.push([i]),a.push(g)),r=n.filter((e=>e!==g))[0];break}}if(t[o].push(r),i===e[r].branch?.left?.[1])break}o++}return t})(a.payload);Pe(e).branches.toString()!==o.toString()&&(e.branches=o,console.log("Re-calculating topology ordering..."),e.tpo=1===(r=o).length?r[0].slice(1,-1):r.reduce(((e,a)=>{const t=e.indexOf(a[a.length-1]);return[...e.slice(0,t),...a.slice(1),...e.slice(t+1)]}),["lineend"]).slice(0,-1))}}},extraReducers:e=>{e.addMatcher((e=>"param/setStations"===e.type),(()=>{}))}}),{updateHelper:Zn}=Kn.actions;e("b",Zn);const qn=Kn.reducer,Xn=_e({app:an,param:$n,helper:qn}),el=Ue(),al=((e={})=>Ve({reducer:Xn,middleware:e=>e().prepend(el.middleware),preloadedState:e}))(),tl=(e("d",(()=>Be())),e("u",He),el.startListening);window.rmgStore=al;const ol=e=>{(e=>{try{const a=Ft.storage.get(Ci.CANVAS_SCALE),t=Number(a);t>=.1&&e.dispatch(Bi(t))}catch(a){console.warn("Error in reading canvas scale. Initiating as 1...",a),e.dispatch(Bi(1))}})(e),(e=>{try{const a=Ft.storage.get(Ci.CANVAS_TO_SHOW);if(null!==a){const t=JSON.parse(a);if(Array.isArray(t))return void e.dispatch(Hi(t))}}catch(a){console.warn("Error in reading canvas to show. Initiating as all...",a)}})(e),tl({predicate:(e,a,t)=>a.app.canvasScale.toString()!==t.app.canvasScale.toString(),effect:(e,a)=>{Ft.storage.set(Ci.CANVAS_SCALE,a.getState().app.canvasScale.toString())}}),tl({predicate:(e,a,t)=>a.app.canvasToShow.toString()!==t.app.canvasToShow.toString(),effect:(e,a)=>{Ft.storage.set(Ci.CANVAS_TO_SHOW,JSON.stringify(a.getState().app.canvasToShow))}}),tl({predicate:(e,a,t)=>JSON.stringify(a.param)!==JSON.stringify(t.param),effect:rl})},rl=(e,a)=>{const{id:t,...o}=a.getState().app.paramConfig??{};if(t){const e=Ft.storage.get(Ci.PARAM_BY_ID+t),r=JSON.stringify(a.getState().param);if(e!==r){console.log("ListenerMiddleware:: Writing param and paramConfig to localStorage, ID="+t),Ft.storage.set(Ci.PARAM_BY_ID+t,r);const e=Date.now();a.dispatch(Ui(e)),Ft.storage.set(Ci.PARAM_CONFIG_BY_ID+t,JSON.stringify({...o,lastModified:e}))}else console.log("ListenerMiddleware:: Do not write to localStorage as no changes in param, ID="+t)}};let il;"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((e=>{e.unregister()})).catch((e=>{console.error(e.message)})),document.head.append(...["share",...Object.values(Mi)].map((e=>{const a=document.createElement("link");return a.rel="stylesheet",a.id="css_"+e,a}))),Ft.ready().then((()=>{ol(al),il=Qt.createRoot(document.getElementById("root")),il.render(r.jsx(Ae.StrictMode,{children:r.jsx(Ge,{store:al,children:r.jsx(Fe,{i18n:Xt,children:r.jsx(ki,{})})})})),Ft.injectUITools(),Ft.event(Ti.APP_LOAD,{isStandaloneWindow:Ft.isStandaloneWindow})})).catch((e=>{const a=document.querySelector("#root");a&&(a.innerHTML=`
\n Failed to load Rail Map Generator!\n
\n ${e.toString()}\n
\n Please contact us in \n GitHub.\n
`)}))}}})); diff --git a/assets/mtr-BmcrcPh6.js b/assets/mtr-C3sp7NyA.js similarity index 97% rename from assets/mtr-BmcrcPh6.js rename to assets/mtr-C3sp7NyA.js index 589cc838..7e62a841 100644 --- a/assets/mtr-BmcrcPh6.js +++ b/assets/mtr-C3sp7NyA.js @@ -1 +1 @@ -import{S as c}from"./share-C4aXWUdL.js";const T=(t,i,n)=>{const h=i[0];if(h.includes(t)){if(i.slice(1).find(e=>e.includes(t)))return 0;{const e=i.slice(1).find(r=>{const s=r[0]==="linestart",o=h.indexOf(t)h.indexOf(r[0]);return s&&o||f&&g});return e?n[e[0]].children.indexOf(e[1])===1?-1:1:0}}else{const e=i.slice(1).find(r=>r.includes(t));return e?e[0]!=="linestart"&&e.slice(-1)[0]!=="lineend"?n[e[0]].children.indexOf(e[1])===1?1.2:-1.2:n[e[0]].children.indexOf(e[1])===1?1:-1:0}},U=t=>{const n="a6,6,0,0,1,6,6",h="a6,6,0,0,0,6,6",e="a6,6,0,0,0,6,-6",r="a6,6,0,0,1,6,-6";let s;const o=[];for(const f of t){if(!s)o.push("M"+f.join(","));else if(f[1]===s[1])o.push("H"+f[0]);else{const g=(f[0]+s[0])/2-(s[1]===0?0:12);o.push("H"+g),f[1]>s[1]?(o.push(n),o.push("V"+(f[1]-6)),o.push(h)):(o.push(e),o.push("V"+(f[1]+6)),o.push(r)),o.push("H"+f[0])}s=f}return o.join(" ").replace(/( H([\d.]+))+/g," H$2")},p=(t,i)=>{let n=0;const{transfer:h}=t[i],e=h.groups.map(r=>{var s;return((s=r.lines)==null?void 0:s.length)||0});return h.tick_direc==="l"&&(!e[1]&&e[0]>1&&(n+=.4),e[1]&&(e[0]!==1||e[1]!==2)&&(n+=.4)),e[0]===1&&e[1]===2&&t[i].parents[0]!=="linestart"&&t[i].children[0]!=="lineend"&&(n+=.8),t[i].parents.length===2&&(n+=.2),t[t[i].parents[0]].children.length===2&&(n+=.4),n},S=(t,i)=>{let n=0;const{transfer:h}=t[i],e=h.groups.map(r=>{var s;return((s=r.lines)==null?void 0:s.length)||0});return h.tick_direc==="r"&&(!e[1]&&e[0]>1&&(n+=.4),e[1]&&(e[0]!==1||e[1]!==2)&&(n+=.4)),e[0]===1&&e[1]===2&&t[i].parents[0]!=="linestart"&&t[i].children[0]!=="lineend"&&(n+=.8),t[i].children.length===2&&(n+=.2),t[t[i].children[0]].parents.length===2&&(n+=.4),n};class _ extends c{constructor(){super(...arguments),this.leftWideFactor=i=>p(this.stnList,i),this.rightWideFactor=i=>S(this.stnList,i)}static drawLine(i,n,h,e,r,s,o,f,g=0){const N={main:[],pass:[],sidingMain:[],sidingPass:[]};return i.forEach(l=>{const u=l[0]!=="linestart"&&l.slice(-1)[0]!=="lineend";l=l.filter(d=>!["linestart","lineend"].includes(d));let a=l.filter(d=>n[d]>=0),R=l.filter(d=>n[d]<=0);a.length===1&&(R=l),a.filter(d=>R.indexOf(d)!==-1).length===0&&a.length&&(R[0]===l[0]?R.push(a[0]):a[0]===l[0]&&a[a.length-1]===l[l.length-1]&&R.length?(R=l,a=[]):R.unshift(a[a.length-1])),u?(N.sidingMain.push(U(a.map(d=>[r[d],s[d]]))),N.sidingPass.push(U(R.map(d=>[r[d],s[d]])))):(N.main.push(new this({stnList:h,criticalPath:f})._linePath(a,e,i,r,s,o,f,g)),N.pass.push(new this({stnList:h,criticalPath:f})._linePath(R,e,i,r,s,o,f,g)))}),N}}class A extends _{static drawLine(i,n,h,e,r,s,o,f,g=0){const N={main:[],pass:[],sidingMain:[],sidingPass:[]};return i.forEach(l=>{l=l.filter(R=>!["linestart","lineend"].includes(R));let u=l.filter(R=>n[R]>=0),a=l.filter(R=>n[R]<=0);u.length===1&&(a=l),u.filter(R=>a.indexOf(R)!==-1).length===0&&u.length&&(a[0]===l[0]?a.push(u[0]):u[0]===l[0]&&u[u.length-1]===l[l.length-1]&&a.length?(a=l,u=[]):a.unshift(u[u.length-1])),N.main.push(new this({stnList:h,criticalPath:f})._linePath(u,e,i,r,s,o,f,g)),N.pass.push(new this({stnList:h,criticalPath:f})._linePath(a,e,i,r,s,o,f,g))}),N}}export{_ as S,A as a,T as g,p as l,S as r}; +import{S as c}from"./share-r5pzRDhM.js";const T=(t,i,n)=>{const h=i[0];if(h.includes(t)){if(i.slice(1).find(e=>e.includes(t)))return 0;{const e=i.slice(1).find(r=>{const s=r[0]==="linestart",o=h.indexOf(t)h.indexOf(r[0]);return s&&o||f&&g});return e?n[e[0]].children.indexOf(e[1])===1?-1:1:0}}else{const e=i.slice(1).find(r=>r.includes(t));return e?e[0]!=="linestart"&&e.slice(-1)[0]!=="lineend"?n[e[0]].children.indexOf(e[1])===1?1.2:-1.2:n[e[0]].children.indexOf(e[1])===1?1:-1:0}},U=t=>{const n="a6,6,0,0,1,6,6",h="a6,6,0,0,0,6,6",e="a6,6,0,0,0,6,-6",r="a6,6,0,0,1,6,-6";let s;const o=[];for(const f of t){if(!s)o.push("M"+f.join(","));else if(f[1]===s[1])o.push("H"+f[0]);else{const g=(f[0]+s[0])/2-(s[1]===0?0:12);o.push("H"+g),f[1]>s[1]?(o.push(n),o.push("V"+(f[1]-6)),o.push(h)):(o.push(e),o.push("V"+(f[1]+6)),o.push(r)),o.push("H"+f[0])}s=f}return o.join(" ").replace(/( H([\d.]+))+/g," H$2")},p=(t,i)=>{let n=0;const{transfer:h}=t[i],e=h.groups.map(r=>{var s;return((s=r.lines)==null?void 0:s.length)||0});return h.tick_direc==="l"&&(!e[1]&&e[0]>1&&(n+=.4),e[1]&&(e[0]!==1||e[1]!==2)&&(n+=.4)),e[0]===1&&e[1]===2&&t[i].parents[0]!=="linestart"&&t[i].children[0]!=="lineend"&&(n+=.8),t[i].parents.length===2&&(n+=.2),t[t[i].parents[0]].children.length===2&&(n+=.4),n},S=(t,i)=>{let n=0;const{transfer:h}=t[i],e=h.groups.map(r=>{var s;return((s=r.lines)==null?void 0:s.length)||0});return h.tick_direc==="r"&&(!e[1]&&e[0]>1&&(n+=.4),e[1]&&(e[0]!==1||e[1]!==2)&&(n+=.4)),e[0]===1&&e[1]===2&&t[i].parents[0]!=="linestart"&&t[i].children[0]!=="lineend"&&(n+=.8),t[i].children.length===2&&(n+=.2),t[t[i].children[0]].parents.length===2&&(n+=.4),n};class _ extends c{constructor(){super(...arguments),this.leftWideFactor=i=>p(this.stnList,i),this.rightWideFactor=i=>S(this.stnList,i)}static drawLine(i,n,h,e,r,s,o,f,g=0){const N={main:[],pass:[],sidingMain:[],sidingPass:[]};return i.forEach(l=>{const u=l[0]!=="linestart"&&l.slice(-1)[0]!=="lineend";l=l.filter(d=>!["linestart","lineend"].includes(d));let a=l.filter(d=>n[d]>=0),R=l.filter(d=>n[d]<=0);a.length===1&&(R=l),a.filter(d=>R.indexOf(d)!==-1).length===0&&a.length&&(R[0]===l[0]?R.push(a[0]):a[0]===l[0]&&a[a.length-1]===l[l.length-1]&&R.length?(R=l,a=[]):R.unshift(a[a.length-1])),u?(N.sidingMain.push(U(a.map(d=>[r[d],s[d]]))),N.sidingPass.push(U(R.map(d=>[r[d],s[d]])))):(N.main.push(new this({stnList:h,criticalPath:f})._linePath(a,e,i,r,s,o,f,g)),N.pass.push(new this({stnList:h,criticalPath:f})._linePath(R,e,i,r,s,o,f,g)))}),N}}class A extends _{static drawLine(i,n,h,e,r,s,o,f,g=0){const N={main:[],pass:[],sidingMain:[],sidingPass:[]};return i.forEach(l=>{l=l.filter(R=>!["linestart","lineend"].includes(R));let u=l.filter(R=>n[R]>=0),a=l.filter(R=>n[R]<=0);u.length===1&&(a=l),u.filter(R=>a.indexOf(R)!==-1).length===0&&u.length&&(a[0]===l[0]?a.push(u[0]):u[0]===l[0]&&u[u.length-1]===l[l.length-1]&&a.length?(a=l,u=[]):a.unshift(u[u.length-1])),N.main.push(new this({stnList:h,criticalPath:f})._linePath(u,e,i,r,s,o,f,g)),N.pass.push(new this({stnList:h,criticalPath:f})._linePath(a,e,i,r,s,o,f,g))}),N}}export{_ as S,A as a,T as g,p as l,S as r}; diff --git a/assets/mtr-legacy-Kr1ZTA32.js b/assets/mtr-legacy-QU8RGd-N.js similarity index 98% rename from assets/mtr-legacy-Kr1ZTA32.js rename to assets/mtr-legacy-QU8RGd-N.js index 7c36a2d1..bbb6bc1b 100644 --- a/assets/mtr-legacy-Kr1ZTA32.js +++ b/assets/mtr-legacy-QU8RGd-N.js @@ -1 +1 @@ -System.register(["./share-legacy-CN2pvFRh.js"],(function(e,n){"use strict";var t;return{setters:[e=>{t=e.S}],execute:function(){e("g",((e,n,t)=>{const i=n[0];if(i.includes(e)){if(n.slice(1).find((n=>n.includes(e))))return 0;{const s=n.slice(1).find((n=>{const t="linestart"===n[0],s=i.indexOf(e)i.indexOf(n[0]);return t&&s||l&&r}));return s?1===t[s[0]].children.indexOf(s[1])?-1:1:0}}{const i=n.slice(1).find((n=>n.includes(e)));return i?"linestart"!==i[0]&&"lineend"!==i.slice(-1)[0]?1===t[i[0]].children.indexOf(i[1])?1.2:-1.2:1===t[i[0]].children.indexOf(i[1])?1:-1:0}}));const n=e=>{let n;const t=[];for(const i of e){if(n)if(i[1]===n[1])t.push("H"+i[0]);else{const e=(i[0]+n[0])/2-(0===n[1]?0:12);t.push("H"+e),i[1]>n[1]?(t.push("a6,6,0,0,1,6,6"),t.push("V"+(i[1]-6)),t.push("a6,6,0,0,0,6,6")):(t.push("a6,6,0,0,0,6,-6"),t.push("V"+(i[1]+6)),t.push("a6,6,0,0,1,6,-6")),t.push("H"+i[0])}else t.push("M"+i.join(","));n=i}return t.join(" ").replace(/( H([\d.]+))+/g," H$2")},i=e("l",((e,n)=>{let t=0;const{transfer:i}=e[n],s=i.groups.map((e=>e.lines?.length||0));return"l"===i.tick_direc&&(!s[1]&&s[0]>1&&(t+=.4),!s[1]||1===s[0]&&2===s[1]||(t+=.4)),1===s[0]&&2===s[1]&&"linestart"!==e[n].parents[0]&&"lineend"!==e[n].children[0]&&(t+=.8),2===e[n].parents.length&&(t+=.2),2===e[e[n].parents[0]].children.length&&(t+=.4),t})),s=e("r",((e,n)=>{let t=0;const{transfer:i}=e[n],s=i.groups.map((e=>e.lines?.length||0));return"r"===i.tick_direc&&(!s[1]&&s[0]>1&&(t+=.4),!s[1]||1===s[0]&&2===s[1]||(t+=.4)),1===s[0]&&2===s[1]&&"linestart"!==e[n].parents[0]&&"lineend"!==e[n].children[0]&&(t+=.8),2===e[n].children.length&&(t+=.2),2===e[e[n].children[0]].parents.length&&(t+=.4),t}));class l extends t{constructor(){super(...arguments),this.leftWideFactor=e=>i(this.stnList,e),this.rightWideFactor=e=>s(this.stnList,e)}static drawLine(e,t,i,s,l,r,h,a,c=0){const d={main:[],pass:[],sidingMain:[],sidingPass:[]};return e.forEach((u=>{const f="linestart"!==u[0]&&"lineend"!==u.slice(-1)[0];let p=(u=u.filter((e=>!["linestart","lineend"].includes(e)))).filter((e=>t[e]>=0)),g=u.filter((e=>t[e]<=0));1===p.length&&(g=u),0===p.filter((e=>-1!==g.indexOf(e))).length&&p.length&&(g[0]===u[0]?g.push(p[0]):p[0]===u[0]&&p[p.length-1]===u[u.length-1]&&g.length?(g=u,p=[]):g.unshift(p[p.length-1])),f?(d.sidingMain.push(n(p.map((e=>[l[e],r[e]])))),d.sidingPass.push(n(g.map((e=>[l[e],r[e]]))))):(d.main.push(new this({stnList:i,criticalPath:a})._linePath(p,s,e,l,r,h,a,c)),d.pass.push(new this({stnList:i,criticalPath:a})._linePath(g,s,e,l,r,h,a,c)))})),d}}e("S",l),e("a",class extends l{static drawLine(e,n,t,i,s,l,r,h,a=0){const c={main:[],pass:[],sidingMain:[],sidingPass:[]};return e.forEach((d=>{let u=(d=d.filter((e=>!["linestart","lineend"].includes(e)))).filter((e=>n[e]>=0)),f=d.filter((e=>n[e]<=0));1===u.length&&(f=d),0===u.filter((e=>-1!==f.indexOf(e))).length&&u.length&&(f[0]===d[0]?f.push(u[0]):u[0]===d[0]&&u[u.length-1]===d[d.length-1]&&f.length?(f=d,u=[]):f.unshift(u[u.length-1])),c.main.push(new this({stnList:t,criticalPath:h})._linePath(u,i,e,s,l,r,h,a)),c.pass.push(new this({stnList:t,criticalPath:h})._linePath(f,i,e,s,l,r,h,a))})),c}})}}})); +System.register(["./share-legacy-DDWDkgfB.js"],(function(e,n){"use strict";var t;return{setters:[e=>{t=e.S}],execute:function(){e("g",((e,n,t)=>{const i=n[0];if(i.includes(e)){if(n.slice(1).find((n=>n.includes(e))))return 0;{const s=n.slice(1).find((n=>{const t="linestart"===n[0],s=i.indexOf(e)i.indexOf(n[0]);return t&&s||l&&r}));return s?1===t[s[0]].children.indexOf(s[1])?-1:1:0}}{const i=n.slice(1).find((n=>n.includes(e)));return i?"linestart"!==i[0]&&"lineend"!==i.slice(-1)[0]?1===t[i[0]].children.indexOf(i[1])?1.2:-1.2:1===t[i[0]].children.indexOf(i[1])?1:-1:0}}));const n=e=>{let n;const t=[];for(const i of e){if(n)if(i[1]===n[1])t.push("H"+i[0]);else{const e=(i[0]+n[0])/2-(0===n[1]?0:12);t.push("H"+e),i[1]>n[1]?(t.push("a6,6,0,0,1,6,6"),t.push("V"+(i[1]-6)),t.push("a6,6,0,0,0,6,6")):(t.push("a6,6,0,0,0,6,-6"),t.push("V"+(i[1]+6)),t.push("a6,6,0,0,1,6,-6")),t.push("H"+i[0])}else t.push("M"+i.join(","));n=i}return t.join(" ").replace(/( H([\d.]+))+/g," H$2")},i=e("l",((e,n)=>{let t=0;const{transfer:i}=e[n],s=i.groups.map((e=>e.lines?.length||0));return"l"===i.tick_direc&&(!s[1]&&s[0]>1&&(t+=.4),!s[1]||1===s[0]&&2===s[1]||(t+=.4)),1===s[0]&&2===s[1]&&"linestart"!==e[n].parents[0]&&"lineend"!==e[n].children[0]&&(t+=.8),2===e[n].parents.length&&(t+=.2),2===e[e[n].parents[0]].children.length&&(t+=.4),t})),s=e("r",((e,n)=>{let t=0;const{transfer:i}=e[n],s=i.groups.map((e=>e.lines?.length||0));return"r"===i.tick_direc&&(!s[1]&&s[0]>1&&(t+=.4),!s[1]||1===s[0]&&2===s[1]||(t+=.4)),1===s[0]&&2===s[1]&&"linestart"!==e[n].parents[0]&&"lineend"!==e[n].children[0]&&(t+=.8),2===e[n].children.length&&(t+=.2),2===e[e[n].children[0]].parents.length&&(t+=.4),t}));class l extends t{constructor(){super(...arguments),this.leftWideFactor=e=>i(this.stnList,e),this.rightWideFactor=e=>s(this.stnList,e)}static drawLine(e,t,i,s,l,r,h,a,c=0){const d={main:[],pass:[],sidingMain:[],sidingPass:[]};return e.forEach((u=>{const f="linestart"!==u[0]&&"lineend"!==u.slice(-1)[0];let p=(u=u.filter((e=>!["linestart","lineend"].includes(e)))).filter((e=>t[e]>=0)),g=u.filter((e=>t[e]<=0));1===p.length&&(g=u),0===p.filter((e=>-1!==g.indexOf(e))).length&&p.length&&(g[0]===u[0]?g.push(p[0]):p[0]===u[0]&&p[p.length-1]===u[u.length-1]&&g.length?(g=u,p=[]):g.unshift(p[p.length-1])),f?(d.sidingMain.push(n(p.map((e=>[l[e],r[e]])))),d.sidingPass.push(n(g.map((e=>[l[e],r[e]]))))):(d.main.push(new this({stnList:i,criticalPath:a})._linePath(p,s,e,l,r,h,a,c)),d.pass.push(new this({stnList:i,criticalPath:a})._linePath(g,s,e,l,r,h,a,c)))})),d}}e("S",l),e("a",class extends l{static drawLine(e,n,t,i,s,l,r,h,a=0){const c={main:[],pass:[],sidingMain:[],sidingPass:[]};return e.forEach((d=>{let u=(d=d.filter((e=>!["linestart","lineend"].includes(e)))).filter((e=>n[e]>=0)),f=d.filter((e=>n[e]<=0));1===u.length&&(f=d),0===u.filter((e=>-1!==f.indexOf(e))).length&&u.length&&(f[0]===d[0]?f.push(u[0]):u[0]===d[0]&&u[u.length-1]===d[d.length-1]&&f.length?(f=d,u=[]):f.unshift(u[u.length-1])),c.main.push(new this({stnList:t,criticalPath:h})._linePath(u,i,e,s,l,r,h,a)),c.pass.push(new this({stnList:t,criticalPath:h})._linePath(f,i,e,s,l,r,h,a))})),c}})}}})); diff --git a/assets/param-selector-B7mXBf6L.js b/assets/param-selector-BJ-4ECJo.js similarity index 95% rename from assets/param-selector-B7mXBf6L.js rename to assets/param-selector-BJ-4ECJo.js index 584c7a07..70dfa20b 100644 --- a/assets/param-selector-B7mXBf6L.js +++ b/assets/param-selector-BJ-4ECJo.js @@ -1 +1 @@ -import{j as T,ai as C,aP as O,aQ as A,ah as D,e as j,a9 as S,aR as N,aM as g,aS as P,r as f,h as E,aG as _,aT as x,aU as k,l as W}from"./index-BqOgmhc6.js";import{u as L,j as d,c as F,h as R,aC as B,aj as z,M as $,ak as U,J as G,K as Y,L as J,O as V,t as Z,B as H,s as K,a2 as p,N as Q}from"./chakra-CXrhlirJ.js";import{a as v,u as M}from"./react-Caefwd5V.js";var X=function(e){var n=e.children,o=e.noWrap,s=L("RmgOutput",{noWrap:o});return d.jsx(F.output,{sx:s,children:n})};function q(e){var n=e.fields,o=e.noLabel,s=e.minW;return d.jsx(R,{wrap:"wrap",children:n.map(function(r,a){if(r.hidden)return d.jsx(v.Fragment,{},a);var l=r.minW||s,c=l==="full";return d.jsx(T,{className:c?"mw-full":"",label:r.label,flex:c?void 0:1,minW:c?void 0:l,noLabel:o,oneLine:r.oneLine,helper:r.helper,errorMessage:r.errorMessage,children:function(t){switch(t.type){case"input":return d.jsx(D,{placeholder:t.placeholder,defaultValue:t.value,type:t.variant,validator:t.validator,onDebouncedChange:t.onChange,delay:t.debouncedDelay,optionList:t.optionList,isDisabled:t.isDisabled});case"output":return d.jsx(X,{noWrap:t.noWrap,children:t.value});case"textarea":return d.jsx(A,{placeholder:t.placeholder,defaultValue:t.value,onDebouncedChange:t.onChange,isDisabled:t.isDisabled});case"slider":return d.jsx(O,{defaultValue:t.value,min:t.min,max:t.max,step:t.step,onThrottledChange:t.onChange,leftIcon:t.leftIcon,rightIcon:t.rightIcon,isDisabled:t.isDisabled});case"select":return d.jsx(C,{defaultValue:t.value,onChange:function(i){var u,h=i.target.value;return(u=t.onChange)===null||u===void 0?void 0:u.call(t,typeof t.value=="number"?Number(h):h.toString())},options:t.options,disabledOptions:t.disabledOptions,isInvalid:t.isInvalid,isDisabled:t.isDisabled});case"switch":return d.jsx(B,{isChecked:t.isChecked,isDisabled:t.isDisabled,onChange:function(i){var u,h=i.target.checked;return(u=t.onChange)===null||u===void 0?void 0:u.call(t,h)}});case"custom":return t.component;default:return d.jsx("div",{})}}(r)},a)})})}const ye=(e,n,o)=>{const s=new Blob([o],{type:n});ee(e,s)},ee=(e,n)=>{const o=window.URL.createObjectURL(n),s=document.createElement("a");s.href=o,s.download=e,document.body.appendChild(s),s.click(),document.body.removeChild(s),window.URL.revokeObjectURL(o)},ve=e=>new Promise(n=>{const o=new FileReader;o.onloadend=()=>n(o.result),o.readAsText(e)}),je=()=>navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome"),te=e=>{if(e){const n=new Date().getTime()-e;return n<60*1e3?["Just now"]:n<2*60*1e3?["1","minute ago"]:n<60*60*1e3?[Math.floor(n/1e3/60).toString(),"minutes ago"]:n<2*60*60*1e3?["1","hour ago"]:n<24*60*60*1e3?[Math.floor(n/1e3/60/60).toString(),"hours ago"]:n<48*60*60*1e3?["1","day ago"]:[Math.floor(n/1e3/60/60/24).toString(),"days ago"]}else return["Unknown"]},me=e=>new Promise(n=>{setTimeout(n,e)}),xe=e=>{var n,o,s,r,a,l,c;"line_name"in e||(e.line_name=["路線名","Name of Line"]),delete e.fontZH,delete e.fontEN,delete e.weightZH,delete e.weightEN;for(const[t,i]of Object.entries(e.stn_list))"branch"in i||(e.stn_list[t].branch={},i.children.length===2&&(e.stn_list[t].branch.right=["through",i.children[1]]),i.parents.length===2&&(e.stn_list[t].branch.left=["through",i.parents[1]]),Object.keys(e.stn_list[t].branch).length===0&&delete e.stn_list[t].branch);"psd_num"in e?e.psd_num=e.psd_num.toString():e.psd_num="1","line_num"in e||(e.line_num="1"),e.theme.length===3&&e.theme.push("#fff");for(const[t,i]of Object.entries(e.stn_list))"num"in i||(e.stn_list[t].num="00"),"interchange"in i&&i.interchange.map(u=>u.forEach(h=>{h.length===5&&h.splice(3,0,"#fff")}));for(const[t,i]of Object.entries(e.stn_list))i.change_type==="osi22_end_p"&&(e.stn_list[t].change_type="osi22_pr"),i.change_type==="osi22_end_u"&&(e.stn_list[t].change_type="osi22_ur");for(const[t,i]of Object.entries(e.stn_list))"interchange"in i||(e.stn_list[t].interchange=[[]]);"info_panel_type"in e?e.info_panel_type=(t=>{switch(t){case"gz_1":case"panasonic":return"gz28";case"gz_2":return"gz6";case"gz_3":return"gz3";default:return t}})(e.info_panel_type):e.info_panel_type="gz28","direction_gz_x"in e||(e.direction_gz_x=50),"direction_gz_y"in e||(e.direction_gz_y=70);for(const[t,i]of Object.entries(e.stn_list))"transfer"in i||(e.stn_list[t].transfer={tick_direc:i.change_type==="none"||i.change_type==="int2"?"r":(n=i.change_type)==null?void 0:n.split("_")[1].split("").slice().reverse()[0],paid_area:((o=i.change_type)==null?void 0:o.indexOf("osi"))!==-1?((s=i.change_type)==null?void 0:s.split("_")[1][0])==="p":!0,osi_names:((r=i.change_type)==null?void 0:r.indexOf("osi"))!==-1?[i.interchange[1][0]]:[],info:i.interchange.length===2?[i.interchange[0],i.interchange[1].slice(1)]:i.interchange}),delete e.stn_list[t].change_type,delete e.stn_list[t].interchange;for(const[t,i]of Object.entries(e.stn_list))"services"in i||(e.stn_list[t].services=["local"]),"facility"in i?i.facility===""&&(e.stn_list[t].facility=void 0):e.stn_list[t].facility=i.usage||void 0,delete e.stn_list[t].usage;"customiseMTRDest"in e||(e.customiseMTRDest={isLegacy:e.dest_legacy||!1,terminal:!1}),delete e.dest_legacy,"svgWidth"in e||(e.svgWidth={destination:e.svg_dest_width,runin:e.svg_dest_width,railmap:e.svg_width,indoor:e.svg_width}),"indoor"in e.svgWidth||(e.svgWidth.indoor=e.svgWidth.railmap),delete e.svg_width,delete e.svg_dest_width,e.notesGZMTR=(a=e.notesGZMTR)==null?void 0:a.map(t=>t.length===4?t.concat([!1]):t),delete e.char_form,delete e.show_outer,delete e.strip_pc,delete e.txt_bg_gap,"namePosMTR"in e||(e.namePosMTR={isStagger:!0,isFlip:e.txt_flip}),delete e.txt_flip,Object.keys(e.stn_list).forEach(t=>{"secondaryName"in e.stn_list[t]&&e.stn_list[t].secondaryName===!1&&delete e.stn_list[t].secondaryName,"type"in e.stn_list[t].transfer&&delete e.stn_list[t].transfer.type}),e.style=e.style===void 0||!Object.values(j).includes(e.style)?j.MTR:e.style,e.coline=(l=e.coline)!=null?l:[],e.loop=(c=e.loop)!=null?c:!1,e.loop_info=e.loop_info===void 0?{bank:!0,left_and_right_factor:0,bottom_factor:1}:{...e.loop_info,bottom_factor:Math.max(e.loop_info.bottom_factor,1)};for(const[t,i]of Object.entries(e.stn_list))"loop_pivot"in i||(e.stn_list[t].loop_pivot=!1);return Array.isArray(e.coline)&&(e.coline=e.coline.reduce((t,i)=>({...t,[S(4)]:i}),{})),e.platform_num===!1&&(e.platform_num=""),Object.values(e.stn_list).forEach(t=>{var u,h;const i=t;i.one_line=(u=i.one_line)!=null?u:!1,i.int_padding=(h=i.int_padding)!=null?h:e.loop?250:355}),e.branchSpacingPct===void 0&&(e.style===j.SHMetro?e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*300):e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*200),delete e.branch_spacing),ne(e),se(e),ie(e),ce(e),e},ne=e=>{for(const[n,o]of Object.entries(e.stn_list)){const s=o.transfer.info;s&&(e.stn_list[n].transfer.groups=s.map((r,a)=>r.length?{name:o.transfer.osi_names[a-1],lines:r.map(l=>{const c=l;return{theme:c.slice(0,4),name:c.slice(4,6)}})}:{lines:[]})),delete e.stn_list[n].transfer.info,delete e.stn_list[n].transfer.osi_names}},se=e=>{for(const[n,o]of Object.entries(e.stn_list)){const{name:s,secondaryName:r,localisedName:a,localisedSecondaryName:l}=o;!a&&s&&(e.stn_list[n].localisedName={zh:s[0],en:s[1]},delete e.stn_list[n].name),!l&&r&&(e.stn_list[n].localisedSecondaryName={zh:r[0],en:r[1]},delete e.stn_list[n].secondaryName)}},ie=e=>{const{svgWidth:n}=e;N.Platform in n||(e.svgWidth.platform=1200);for(const[o,s]of Object.entries(e.stn_list)){const{character_spacing:r}=s;r===void 0&&(e.stn_list[o].character_spacing=75)}},w=e=>e.length===4&&e.every(n=>typeof n=="string")&&!!e[2].match(/^#[0-9a-fA-F]{6}$/)&&Object.values(E).includes(e[3]),oe=e=>{const n=[],o=(s,r)=>{if(Array.isArray(s)&&w(s)){n.push({path:r||"",value:s});return}for(const a in s){const l=s[a],c=r?"".concat(r,".").concat(a):a;Array.isArray(l)?w(l)?n.push({path:c,value:l}):l.forEach((t,i)=>o(t,"".concat(c,".").concat(i))):l&&typeof l=="object"&&o(l,c)}};return o(e),n},re=(e,n)=>{const o={},s=(r,a,l)=>{let c=r;for(let i=0;is(c,[...a,...l.slice(0,i)],[u,...l.slice(i+1)]));return}if(c=c==null?void 0:c[l[i]],c===void 0)return}(c==null?void 0:c[l[l.length-1]])!==void 0&&(o[[...a,...l].join(".")]=c==null?void 0:c[l[l.length-1]])};return s(e,[],n.split(".")),o},I=(e,n,o)=>{const s=n.split(".");let r=e;for(let a=0;a{const n=new Date().getTime(),o=oe(e);g.info("Found all themes pending for update",o);const s=JSON.parse(JSON.stringify(e)),r=5e3;let a,l=!1;const c=new Promise((t,i)=>{a=setTimeout(()=>{l=!0,i("Executing time exceeds ".concat(r,"ms"))},r),(async()=>{for(const{path:u,value:h}of o){if(l)throw new Error("Update aborted");const b=await P(h);I(s,u,b)}})().then(t).catch(i)});try{return await c,g.info("Themes update completed, elapsed time ".concat((new Date().getTime()-n)/1e3," sec")),s}catch(t){return g.warn("Error occurs when updating themes, elapsed time ".concat((new Date().getTime()-n)/1e3," sec"),t),s}finally{clearTimeout(a)}},le={notesGZMTR:e=>!(e!=null&&e.length),"stn_list.*.branch.left":e=>!(e!=null&&e.length),"stn_list.*.branch.right":e=>!(e!=null&&e.length),"stn_list.*.branch":e=>!e||Object.keys(e).length===0,"stn_list.*.facility":e=>!e,"stn_list.*.transfer.groups.*.lines":e=>!(e!=null&&e.length)},ce=e=>{const n=structuredClone(e);return Object.entries(le).forEach(([o,s])=>{Object.entries(re(n,o)).forEach(([r,a])=>{g.debug("Sanitising",r,a),s(a)&&I(n,r,void 0)})}),n.version=f.getAppVersion(),n},ae=()=>{const e="".concat(f.getAppName(),"__").concat(_.PARAM_CONFIG_BY_ID),n=Object.entries(f.storage.getAll()).filter(([o])=>o.startsWith(e)).map(([o,s])=>{const r=o.slice(e.length);if(s)try{return{...JSON.parse(s),id:r}}catch(a){return{id:r}}else return{id:r}});return g.info("loadParamRegistry(), Found param config in localStorage",n.map(o=>o.id)),n},we=()=>{const e=ae(),n="".concat(f.getAppName(),"__").concat(_.PARAM_BY_ID),o=Object.keys(f.storage.getAll()).filter(s=>s.startsWith(n)).map(s=>{var a;const r=s.slice(n.length);return(a=e.find(l=>l.id===r))!=null?a:{id:r}});return g.info("getParamRegistry(), Actual param found in localStorage",o.map(s=>s.id)),e.filter(s=>o.every(r=>r.id!==s.id)).forEach(s=>f.storage.remove(_.PARAM_CONFIG_BY_ID+s.id)),o},de=e=>{const n=f.storage.get(_.PARAM_CONFIG_BY_ID+e);return n&&JSON.parse(n)},Se=e=>{const n=f.storage.get(_.PARAM_BY_ID+e);return{param:n&&JSON.parse(n),config:de(e)}},he=(e,n)=>{const o=S();return f.storage.set(_.PARAM_BY_ID+o,e),f.storage.set(_.PARAM_CONFIG_BY_ID+o,JSON.stringify({name:n,lastModified:Date.now()})),o},Re=async e=>{const n=e.split("/").at(-1);try{const o=await fetch(e);if(o.ok){const s=await o.text();return he(s,n)}else return g.warn("Failed to download param"),null}catch(o){return g.warn("Failed to download param.",o),null}};function ue(e){var i;const{config:n,onClose:o,onUpdate:s}=e,{t:r}=M(),[a,l]=v.useState((i=n==null?void 0:n.name)!=null?i:"");v.useEffect(()=>{var u;n&&l((u=n.name)!=null?u:"")},[n]);const c=[{type:"input",label:r("Project name"),value:a,onChange:l,debouncedDelay:0}],t=()=>{var u;n&&((u=n.name)!=null?u:"")!==a&&s({...n,name:a})};return d.jsxs(z,{isOpen:!!n,onClose:o,isCentered:!0,children:[d.jsx($,{}),d.jsxs(U,{children:[d.jsx(G,{children:r("Edit project info")}),d.jsx(Y,{}),d.jsx(J,{children:d.jsx(q,{fields:c})}),d.jsx(V,{children:d.jsx(Z,{colorScheme:"primary",onClick:t,children:r("Confirm")})})]})]})}const fe={flex:"2 1 0%",overflow:"hidden",minW:{base:"unset",md:240},w:{base:"100%",md:"unset"},mr:{base:0,md:2},mb:{base:2,md:0},"& > div":{flexDirection:"column",h:200,overflowX:"hidden",overflowY:"auto",borderRadius:"md",borderWidth:2,"& >.chakra-button":{alignItems:"center"},"& .chakra-button__group":{"& button:not(:first-of-type)":{h:"100%"}}}};function Me(e){const{paramRegistry:n,downloading:o,selectedParam:s,onParamSelect:r,onParamRemove:a,onParamUpdate:l}=e,{t:c}=M(),[t,i]=v.useState(),u=h=>{l==null||l(h),i(void 0)};return d.jsxs(H,{sx:fe,children:[d.jsxs(R,{children:[o&&d.jsx(x,{variant:"ghost",primaryText:c("Downloading")+"...",secondaryText:o,isDisabled:!0}),n.slice().sort((h,b)=>{var y,m;return((y=b.lastModified)!=null?y:0)-((m=h.lastModified)!=null?m:0)}).map(h=>{var b;return d.jsxs(K,{size:"sm",isAttached:!0,colorScheme:s===h.id?"primary":void 0,variant:s===h.id?"solid":"ghost",children:[d.jsx(x,{primaryText:(b=h.name)!=null?b:c("Project")+" "+h.id,secondaryText:c("Last modified")+": "+te(h.lastModified).map(y=>c(y)).join(" "),"aria-pressed":s===h.id,onClick:()=>r(h.id)}),l&&d.jsx(p,{"aria-label":c("Edit project info"),title:c("Edit project info"),icon:d.jsx(k,{}),onClick:()=>i(h)}),a&&d.jsx(p,{"aria-label":c("Remove project"),title:c("Remove project"),icon:d.jsx(W,{}),onClick:()=>a(h.id)})]},h.id)})]}),n.length>=10&&d.jsx(Q,{as:"em",fontSize:"xs",children:c("You have reached the maximum number of projects.")}),d.jsx(ue,{config:t,onClose:()=>i(void 0),onUpdate:u})]})}export{Me as P,q as R,ye as a,he as b,we as c,ee as d,Se as e,pe as f,de as g,Re as h,je as i,ve as r,ce as s,xe as u,me as w}; +import{j as T,aj as C,aQ as O,aR as A,ai as D,e as j,aa as S,aS as N,aN as g,aT as E,r as f,h as P,aH as _,aU as x,aV as k,l as W}from"./index-ChIkpPhE.js";import{u as L,j as d,c as F,h as R,aC as B,aj as z,M as $,ak as U,J as G,K as Y,L as J,O as V,t as H,B as Z,s as K,a2 as p,N as Q}from"./chakra-CXrhlirJ.js";import{a as v,u as M}from"./react-Caefwd5V.js";var X=function(e){var n=e.children,o=e.noWrap,s=L("RmgOutput",{noWrap:o});return d.jsx(F.output,{sx:s,children:n})};function q(e){var n=e.fields,o=e.noLabel,s=e.minW;return d.jsx(R,{wrap:"wrap",children:n.map(function(r,a){if(r.hidden)return d.jsx(v.Fragment,{},a);var l=r.minW||s,c=l==="full";return d.jsx(T,{className:c?"mw-full":"",label:r.label,flex:c?void 0:1,minW:c?void 0:l,noLabel:o,oneLine:r.oneLine,helper:r.helper,errorMessage:r.errorMessage,children:function(t){switch(t.type){case"input":return d.jsx(D,{placeholder:t.placeholder,defaultValue:t.value,type:t.variant,validator:t.validator,onDebouncedChange:t.onChange,delay:t.debouncedDelay,optionList:t.optionList,isDisabled:t.isDisabled});case"output":return d.jsx(X,{noWrap:t.noWrap,children:t.value});case"textarea":return d.jsx(A,{placeholder:t.placeholder,defaultValue:t.value,onDebouncedChange:t.onChange,isDisabled:t.isDisabled});case"slider":return d.jsx(O,{defaultValue:t.value,min:t.min,max:t.max,step:t.step,onThrottledChange:t.onChange,leftIcon:t.leftIcon,rightIcon:t.rightIcon,isDisabled:t.isDisabled});case"select":return d.jsx(C,{defaultValue:t.value,onChange:function(i){var u,h=i.target.value;return(u=t.onChange)===null||u===void 0?void 0:u.call(t,typeof t.value=="number"?Number(h):h.toString())},options:t.options,disabledOptions:t.disabledOptions,isInvalid:t.isInvalid,isDisabled:t.isDisabled});case"switch":return d.jsx(B,{isChecked:t.isChecked,isDisabled:t.isDisabled,onChange:function(i){var u,h=i.target.checked;return(u=t.onChange)===null||u===void 0?void 0:u.call(t,h)}});case"custom":return t.component;default:return d.jsx("div",{})}}(r)},a)})})}const ye=(e,n,o)=>{const s=new Blob([o],{type:n});ee(e,s)},ee=(e,n)=>{const o=window.URL.createObjectURL(n),s=document.createElement("a");s.href=o,s.download=e,document.body.appendChild(s),s.click(),document.body.removeChild(s),window.URL.revokeObjectURL(o)},ve=e=>new Promise(n=>{const o=new FileReader;o.onloadend=()=>n(o.result),o.readAsText(e)}),je=()=>navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome"),te=e=>{if(e){const n=new Date().getTime()-e;return n<60*1e3?["Just now"]:n<2*60*1e3?["1","minute ago"]:n<60*60*1e3?[Math.floor(n/1e3/60).toString(),"minutes ago"]:n<2*60*60*1e3?["1","hour ago"]:n<24*60*60*1e3?[Math.floor(n/1e3/60/60).toString(),"hours ago"]:n<48*60*60*1e3?["1","day ago"]:[Math.floor(n/1e3/60/60/24).toString(),"days ago"]}else return["Unknown"]},me=e=>new Promise(n=>{setTimeout(n,e)}),xe=e=>{var n,o,s,r,a,l,c;"line_name"in e||(e.line_name=["路線名","Name of Line"]),delete e.fontZH,delete e.fontEN,delete e.weightZH,delete e.weightEN;for(const[t,i]of Object.entries(e.stn_list))"branch"in i||(e.stn_list[t].branch={},i.children.length===2&&(e.stn_list[t].branch.right=["through",i.children[1]]),i.parents.length===2&&(e.stn_list[t].branch.left=["through",i.parents[1]]),Object.keys(e.stn_list[t].branch).length===0&&delete e.stn_list[t].branch);"psd_num"in e?e.psd_num=e.psd_num.toString():e.psd_num="1","line_num"in e||(e.line_num="1"),e.theme.length===3&&e.theme.push("#fff");for(const[t,i]of Object.entries(e.stn_list))"num"in i||(e.stn_list[t].num="00"),"interchange"in i&&i.interchange.map(u=>u.forEach(h=>{h.length===5&&h.splice(3,0,"#fff")}));for(const[t,i]of Object.entries(e.stn_list))i.change_type==="osi22_end_p"&&(e.stn_list[t].change_type="osi22_pr"),i.change_type==="osi22_end_u"&&(e.stn_list[t].change_type="osi22_ur");for(const[t,i]of Object.entries(e.stn_list))"interchange"in i||(e.stn_list[t].interchange=[[]]);"info_panel_type"in e?e.info_panel_type=(t=>{switch(t){case"gz_1":case"panasonic":return"gz28";case"gz_2":return"gz6";case"gz_3":return"gz3";default:return t}})(e.info_panel_type):e.info_panel_type="gz28","direction_gz_x"in e||(e.direction_gz_x=50),"direction_gz_y"in e||(e.direction_gz_y=70);for(const[t,i]of Object.entries(e.stn_list))"transfer"in i||(e.stn_list[t].transfer={tick_direc:i.change_type==="none"||i.change_type==="int2"?"r":(n=i.change_type)==null?void 0:n.split("_")[1].split("").slice().reverse()[0],paid_area:((o=i.change_type)==null?void 0:o.indexOf("osi"))!==-1?((s=i.change_type)==null?void 0:s.split("_")[1][0])==="p":!0,osi_names:((r=i.change_type)==null?void 0:r.indexOf("osi"))!==-1?[i.interchange[1][0]]:[],info:i.interchange.length===2?[i.interchange[0],i.interchange[1].slice(1)]:i.interchange}),delete e.stn_list[t].change_type,delete e.stn_list[t].interchange;for(const[t,i]of Object.entries(e.stn_list))"services"in i||(e.stn_list[t].services=["local"]),"facility"in i?i.facility===""&&(e.stn_list[t].facility=void 0):e.stn_list[t].facility=i.usage||void 0,delete e.stn_list[t].usage;"customiseMTRDest"in e||(e.customiseMTRDest={isLegacy:e.dest_legacy||!1,terminal:!1}),delete e.dest_legacy,"svgWidth"in e||(e.svgWidth={destination:e.svg_dest_width,runin:e.svg_dest_width,railmap:e.svg_width,indoor:e.svg_width}),"indoor"in e.svgWidth||(e.svgWidth.indoor=e.svgWidth.railmap),delete e.svg_width,delete e.svg_dest_width,e.notesGZMTR=(a=e.notesGZMTR)==null?void 0:a.map(t=>t.length===4?t.concat([!1]):t),delete e.char_form,delete e.show_outer,delete e.strip_pc,delete e.txt_bg_gap,"namePosMTR"in e||(e.namePosMTR={isStagger:!0,isFlip:e.txt_flip}),delete e.txt_flip,Object.keys(e.stn_list).forEach(t=>{"secondaryName"in e.stn_list[t]&&e.stn_list[t].secondaryName===!1&&delete e.stn_list[t].secondaryName,"type"in e.stn_list[t].transfer&&delete e.stn_list[t].transfer.type}),e.style=e.style===void 0||!Object.values(j).includes(e.style)?j.MTR:e.style,e.coline=(l=e.coline)!=null?l:[],e.loop=(c=e.loop)!=null?c:!1,e.loop_info=e.loop_info===void 0?{bank:!0,left_and_right_factor:0,bottom_factor:1}:{...e.loop_info,bottom_factor:Math.max(e.loop_info.bottom_factor,1)};for(const[t,i]of Object.entries(e.stn_list))"loop_pivot"in i||(e.stn_list[t].loop_pivot=!1);return Array.isArray(e.coline)&&(e.coline=e.coline.reduce((t,i)=>({...t,[S(4)]:i}),{})),e.platform_num===!1&&(e.platform_num=""),Object.values(e.stn_list).forEach(t=>{var u,h;const i=t;i.one_line=(u=i.one_line)!=null?u:!1,i.int_padding=(h=i.int_padding)!=null?h:e.loop?250:355}),e.branchSpacingPct===void 0&&(e.style===j.SHMetro?e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*300):e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*200),delete e.branch_spacing),ne(e),se(e),ie(e),ce(e),e},ne=e=>{for(const[n,o]of Object.entries(e.stn_list)){const s=o.transfer.info;s&&(e.stn_list[n].transfer.groups=s.map((r,a)=>r.length?{name:o.transfer.osi_names[a-1],lines:r.map(l=>{const c=l;return{theme:c.slice(0,4),name:c.slice(4,6)}})}:{lines:[]})),delete e.stn_list[n].transfer.info,delete e.stn_list[n].transfer.osi_names}},se=e=>{for(const[n,o]of Object.entries(e.stn_list)){const{name:s,secondaryName:r,localisedName:a,localisedSecondaryName:l}=o;!a&&s&&(e.stn_list[n].localisedName={zh:s[0],en:s[1]},delete e.stn_list[n].name),!l&&r&&(e.stn_list[n].localisedSecondaryName={zh:r[0],en:r[1]},delete e.stn_list[n].secondaryName)}},ie=e=>{const{svgWidth:n}=e;N.Platform in n||(e.svgWidth.platform=1200);for(const[o,s]of Object.entries(e.stn_list)){const{character_spacing:r}=s;r===void 0&&(e.stn_list[o].character_spacing=75)}},w=e=>e.length===4&&e.every(n=>typeof n=="string")&&!!e[2].match(/^#[0-9a-fA-F]{6}$/)&&Object.values(P).includes(e[3]),oe=e=>{const n=[],o=(s,r)=>{if(Array.isArray(s)&&w(s)){n.push({path:r||"",value:s});return}for(const a in s){const l=s[a],c=r?"".concat(r,".").concat(a):a;Array.isArray(l)?w(l)?n.push({path:c,value:l}):l.forEach((t,i)=>o(t,"".concat(c,".").concat(i))):l&&typeof l=="object"&&o(l,c)}};return o(e),n},re=(e,n)=>{const o={},s=(r,a,l)=>{let c=r;for(let i=0;is(c,[...a,...l.slice(0,i)],[u,...l.slice(i+1)]));return}if(c=c==null?void 0:c[l[i]],c===void 0)return}(c==null?void 0:c[l[l.length-1]])!==void 0&&(o[[...a,...l].join(".")]=c==null?void 0:c[l[l.length-1]])};return s(e,[],n.split(".")),o},I=(e,n,o)=>{const s=n.split(".");let r=e;for(let a=0;a{const n=new Date().getTime(),o=oe(e);g.info("Found all themes pending for update",o);const s=JSON.parse(JSON.stringify(e)),r=5e3;let a,l=!1;const c=new Promise((t,i)=>{a=setTimeout(()=>{l=!0,i("Executing time exceeds ".concat(r,"ms"))},r),(async()=>{for(const{path:u,value:h}of o){if(l)throw new Error("Update aborted");const b=await E(h);I(s,u,b)}})().then(t).catch(i)});try{return await c,g.info("Themes update completed, elapsed time ".concat((new Date().getTime()-n)/1e3," sec")),s}catch(t){return g.warn("Error occurs when updating themes, elapsed time ".concat((new Date().getTime()-n)/1e3," sec"),t),s}finally{clearTimeout(a)}},le={notesGZMTR:e=>!(e!=null&&e.length),"stn_list.*.branch.left":e=>!(e!=null&&e.length),"stn_list.*.branch.right":e=>!(e!=null&&e.length),"stn_list.*.branch":e=>!e||Object.keys(e).length===0,"stn_list.*.facility":e=>!e,"stn_list.*.transfer.groups.*.lines":e=>!(e!=null&&e.length)},ce=e=>{const n=structuredClone(e);return Object.entries(le).forEach(([o,s])=>{Object.entries(re(n,o)).forEach(([r,a])=>{g.debug("Sanitising",r,a),s(a)&&I(n,r,void 0)})}),n.version=f.getAppVersion(),n},ae=()=>{const e="".concat(f.getAppName(),"__").concat(_.PARAM_CONFIG_BY_ID),n=Object.entries(f.storage.getAll()).filter(([o])=>o.startsWith(e)).map(([o,s])=>{const r=o.slice(e.length);if(s)try{return{...JSON.parse(s),id:r}}catch(a){return{id:r}}else return{id:r}});return g.info("loadParamRegistry(), Found param config in localStorage",n.map(o=>o.id)),n},we=()=>{const e=ae(),n="".concat(f.getAppName(),"__").concat(_.PARAM_BY_ID),o=Object.keys(f.storage.getAll()).filter(s=>s.startsWith(n)).map(s=>{var a;const r=s.slice(n.length);return(a=e.find(l=>l.id===r))!=null?a:{id:r}});return g.info("getParamRegistry(), Actual param found in localStorage",o.map(s=>s.id)),e.filter(s=>o.every(r=>r.id!==s.id)).forEach(s=>f.storage.remove(_.PARAM_CONFIG_BY_ID+s.id)),o},de=e=>{const n=f.storage.get(_.PARAM_CONFIG_BY_ID+e);return n&&JSON.parse(n)},Se=e=>{const n=f.storage.get(_.PARAM_BY_ID+e);return{param:n&&JSON.parse(n),config:de(e)}},he=(e,n)=>{const o=S();return f.storage.set(_.PARAM_BY_ID+o,e),f.storage.set(_.PARAM_CONFIG_BY_ID+o,JSON.stringify({name:n,lastModified:Date.now()})),o},Re=async e=>{const n=e.split("/").at(-1);try{const o=await fetch(e);if(o.ok){const s=await o.text();return he(s,n)}else return g.warn("Failed to download param"),null}catch(o){return g.warn("Failed to download param.",o),null}};function ue(e){var i;const{config:n,onClose:o,onUpdate:s}=e,{t:r}=M(),[a,l]=v.useState((i=n==null?void 0:n.name)!=null?i:"");v.useEffect(()=>{var u;n&&l((u=n.name)!=null?u:"")},[n]);const c=[{type:"input",label:r("Project name"),value:a,onChange:l,debouncedDelay:0}],t=()=>{var u;n&&((u=n.name)!=null?u:"")!==a&&s({...n,name:a})};return d.jsxs(z,{isOpen:!!n,onClose:o,isCentered:!0,children:[d.jsx($,{}),d.jsxs(U,{children:[d.jsx(G,{children:r("Edit project info")}),d.jsx(Y,{}),d.jsx(J,{children:d.jsx(q,{fields:c})}),d.jsx(V,{children:d.jsx(H,{colorScheme:"primary",onClick:t,children:r("Confirm")})})]})]})}const fe={flex:"2 1 0%",overflow:"hidden",minW:{base:"unset",md:240},w:{base:"100%",md:"unset"},mr:{base:0,md:2},mb:{base:2,md:0},"& > div":{flexDirection:"column",h:200,overflowX:"hidden",overflowY:"auto",borderRadius:"md",borderWidth:2,"& >.chakra-button":{alignItems:"center"},"& .chakra-button__group":{"& button:not(:first-of-type)":{h:"100%"}}}};function Me(e){const{paramRegistry:n,downloading:o,selectedParam:s,onParamSelect:r,onParamRemove:a,onParamUpdate:l}=e,{t:c}=M(),[t,i]=v.useState(),u=h=>{l==null||l(h),i(void 0)};return d.jsxs(Z,{sx:fe,children:[d.jsxs(R,{children:[o&&d.jsx(x,{variant:"ghost",primaryText:c("Downloading")+"...",secondaryText:o,isDisabled:!0}),n.slice().sort((h,b)=>{var y,m;return((y=b.lastModified)!=null?y:0)-((m=h.lastModified)!=null?m:0)}).map(h=>{var b;return d.jsxs(K,{size:"sm",isAttached:!0,colorScheme:s===h.id?"primary":void 0,variant:s===h.id?"solid":"ghost",children:[d.jsx(x,{primaryText:(b=h.name)!=null?b:c("Project")+" "+h.id,secondaryText:c("Last modified")+": "+te(h.lastModified).map(y=>c(y)).join(" "),"aria-pressed":s===h.id,onClick:()=>r(h.id)}),l&&d.jsx(p,{"aria-label":c("Edit project info"),title:c("Edit project info"),icon:d.jsx(k,{}),onClick:()=>i(h)}),a&&d.jsx(p,{"aria-label":c("Remove project"),title:c("Remove project"),icon:d.jsx(W,{}),onClick:()=>a(h.id)})]},h.id)})]}),n.length>=10&&d.jsx(Q,{as:"em",fontSize:"xs",children:c("You have reached the maximum number of projects.")}),d.jsx(ue,{config:t,onClose:()=>i(void 0),onUpdate:u})]})}export{Me as P,q as R,ye as a,he as b,we as c,ee as d,Se as e,pe as f,de as g,Re as h,je as i,ve as r,ce as s,xe as u,me as w}; diff --git a/assets/param-selector-legacy-C3ApLQi1.js b/assets/param-selector-legacy-DN0AGkfT.js similarity index 93% rename from assets/param-selector-legacy-C3ApLQi1.js rename to assets/param-selector-legacy-DN0AGkfT.js index af736cbe..e6035777 100644 --- a/assets/param-selector-legacy-C3ApLQi1.js +++ b/assets/param-selector-legacy-DN0AGkfT.js @@ -1 +1 @@ -System.register(["./index-legacy-CCR6yT8f.js","./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js"],(function(e,t){"use strict";var n,i,s,a,r,o,l,c,d,h,g,u,p,f,_,m,y,b,v,j,x,w,O,A,C,D,M,R,S,N,P,T,k,E,I;return{setters:[e=>{n=e.j,i=e.ai,s=e.aP,a=e.aQ,r=e.ah,o=e.e,l=e.a9,c=e.aR,d=e.aM,h=e.aS,g=e.r,u=e.h,p=e.aG,f=e.aT,_=e.aU,m=e.l},e=>{y=e.u,b=e.j,v=e.c,j=e.h,x=e.aC,w=e.aj,O=e.M,A=e.ak,C=e.J,D=e.K,M=e.L,R=e.O,S=e.t,N=e.B,P=e.s,T=e.a2,k=e.N},e=>{E=e.a,I=e.u}],execute:function(){e({P:function(e){const{paramRegistry:t,downloading:n,selectedParam:i,onParamSelect:s,onParamRemove:a,onParamUpdate:r}=e,{t:o}=I(),[l,c]=E.useState();return b.jsxs(N,{sx:K,children:[b.jsxs(j,{children:[n&&b.jsx(f,{variant:"ghost",primaryText:o("Downloading")+"...",secondaryText:n,isDisabled:!0}),t.slice().sort(((e,t)=>(t.lastModified??0)-(e.lastModified??0))).map((e=>b.jsxs(P,{size:"sm",isAttached:!0,colorScheme:i===e.id?"primary":void 0,variant:i===e.id?"solid":"ghost",children:[b.jsx(f,{primaryText:e.name??o("Project")+" "+e.id,secondaryText:o("Last modified")+": "+L(e.lastModified).map((e=>o(e))).join(" "),"aria-pressed":i===e.id,onClick:()=>s(e.id)}),r&&b.jsx(T,{"aria-label":o("Edit project info"),title:o("Edit project info"),icon:b.jsx(_,{}),onClick:()=>c(e)}),a&&b.jsx(T,{"aria-label":o("Remove project"),title:o("Remove project"),icon:b.jsx(m,{}),onClick:()=>a(e.id)})]},e.id)))]}),t.length>=10&&b.jsx(k,{as:"em",fontSize:"xs",children:o("You have reached the maximum number of projects.")}),b.jsx(H,{config:l,onClose:()=>c(void 0),onUpdate:e=>{r?.(e),c(void 0)}})]})},R:W});var t=function(e){var t=e.children,n=e.noWrap,i=y("RmgOutput",{noWrap:n});return b.jsx(v.output,{sx:i,children:t})};function W(e){var o=e.fields,l=e.noLabel,c=e.minW;return b.jsx(j,{wrap:"wrap",children:o.map((function(e,o){if(e.hidden)return b.jsx(E.Fragment,{},o);var d=e.minW||c,h="full"===d;return b.jsx(n,{className:h?"mw-full":"",label:e.label,flex:h?void 0:1,minW:h?void 0:d,noLabel:l,oneLine:e.oneLine,helper:e.helper,errorMessage:e.errorMessage,children:function(e){switch(e.type){case"input":return b.jsx(r,{placeholder:e.placeholder,defaultValue:e.value,type:e.variant,validator:e.validator,onDebouncedChange:e.onChange,delay:e.debouncedDelay,optionList:e.optionList,isDisabled:e.isDisabled});case"output":return b.jsx(t,{noWrap:e.noWrap,children:e.value});case"textarea":return b.jsx(a,{placeholder:e.placeholder,defaultValue:e.value,onDebouncedChange:e.onChange,isDisabled:e.isDisabled});case"slider":return b.jsx(s,{defaultValue:e.value,min:e.min,max:e.max,step:e.step,onThrottledChange:e.onChange,leftIcon:e.leftIcon,rightIcon:e.rightIcon,isDisabled:e.isDisabled});case"select":return b.jsx(i,{defaultValue:e.value,onChange:function(t){var n,i=t.target.value;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,"number"==typeof e.value?Number(i):i.toString())},options:e.options,disabledOptions:e.disabledOptions,isInvalid:e.isInvalid,isDisabled:e.isDisabled});case"switch":return b.jsx(x,{isChecked:e.isChecked,isDisabled:e.isDisabled,onChange:function(t){var n,i=t.target.checked;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,i)}});case"custom":return e.component;default:return b.jsx("div",{})}}(e)},o)}))})}e("a",((e,t,n)=>{const i=new Blob([n],{type:t});z(e,i)}));const z=e("d",((e,t)=>{const n=window.URL.createObjectURL(t),i=document.createElement("a");i.href=n,i.download=e,document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(n)})),L=(e("r",(e=>new Promise((t=>{const n=new FileReader;n.onloadend=()=>t(n.result),n.readAsText(e)})))),e("i",(()=>navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome"))),e=>{if(e){const t=(new Date).getTime()-e;return t<6e4?["Just now"]:t<12e4?["1","minute ago"]:t<36e5?[Math.floor(t/1e3/60).toString(),"minutes ago"]:t<72e5?["1","hour ago"]:t<864e5?[Math.floor(t/1e3/60/60).toString(),"hours ago"]:t<1728e5?["1","day ago"]:[Math.floor(t/1e3/60/60/24).toString(),"days ago"]}return["Unknown"]}),F=(e("w",(e=>new Promise((t=>{setTimeout(t,e)})))),e("u",(e=>{"line_name"in e||(e.line_name=["路線名","Name of Line"]),delete e.fontZH,delete e.fontEN,delete e.weightZH,delete e.weightEN;for(const[t,n]of Object.entries(e.stn_list))"branch"in n||(e.stn_list[t].branch={},2===n.children.length&&(e.stn_list[t].branch.right=["through",n.children[1]]),2===n.parents.length&&(e.stn_list[t].branch.left=["through",n.parents[1]]),0===Object.keys(e.stn_list[t].branch).length&&delete e.stn_list[t].branch);e.psd_num="psd_num"in e?e.psd_num.toString():"1","line_num"in e||(e.line_num="1"),3===e.theme.length&&e.theme.push("#fff");for(const[t,n]of Object.entries(e.stn_list))"num"in n||(e.stn_list[t].num="00"),"interchange"in n&&n.interchange.map((e=>e.forEach((e=>{5===e.length&&e.splice(3,0,"#fff")}))));for(const[t,n]of Object.entries(e.stn_list))"osi22_end_p"===n.change_type&&(e.stn_list[t].change_type="osi22_pr"),"osi22_end_u"===n.change_type&&(e.stn_list[t].change_type="osi22_ur");for(const[t,n]of Object.entries(e.stn_list))"interchange"in n||(e.stn_list[t].interchange=[[]]);e.info_panel_type="info_panel_type"in e?(e=>{switch(e){case"gz_1":case"panasonic":return"gz28";case"gz_2":return"gz6";case"gz_3":return"gz3";default:return e}})(e.info_panel_type):"gz28","direction_gz_x"in e||(e.direction_gz_x=50),"direction_gz_y"in e||(e.direction_gz_y=70);for(const[t,n]of Object.entries(e.stn_list))"transfer"in n||(e.stn_list[t].transfer={tick_direc:"none"===n.change_type||"int2"===n.change_type?"r":n.change_type?.split("_")[1].split("").slice().reverse()[0],paid_area:-1===n.change_type?.indexOf("osi")||"p"===n.change_type?.split("_")[1][0],osi_names:-1!==n.change_type?.indexOf("osi")?[n.interchange[1][0]]:[],info:2===n.interchange.length?[n.interchange[0],n.interchange[1].slice(1)]:n.interchange}),delete e.stn_list[t].change_type,delete e.stn_list[t].interchange;for(const[t,n]of Object.entries(e.stn_list))"services"in n||(e.stn_list[t].services=["local"]),"facility"in n?""===n.facility&&(e.stn_list[t].facility=void 0):e.stn_list[t].facility=n.usage||void 0,delete e.stn_list[t].usage;"customiseMTRDest"in e||(e.customiseMTRDest={isLegacy:e.dest_legacy||!1,terminal:!1}),delete e.dest_legacy,"svgWidth"in e||(e.svgWidth={destination:e.svg_dest_width,runin:e.svg_dest_width,railmap:e.svg_width,indoor:e.svg_width}),"indoor"in e.svgWidth||(e.svgWidth.indoor=e.svgWidth.railmap),delete e.svg_width,delete e.svg_dest_width,e.notesGZMTR=e.notesGZMTR?.map((e=>4===e.length?e.concat([!1]):e)),delete e.char_form,delete e.show_outer,delete e.strip_pc,delete e.txt_bg_gap,"namePosMTR"in e||(e.namePosMTR={isStagger:!0,isFlip:e.txt_flip}),delete e.txt_flip,Object.keys(e.stn_list).forEach((t=>{"secondaryName"in e.stn_list[t]&&!1===e.stn_list[t].secondaryName&&delete e.stn_list[t].secondaryName,"type"in e.stn_list[t].transfer&&delete e.stn_list[t].transfer.type})),e.style=void 0!==e.style&&Object.values(o).includes(e.style)?e.style:o.MTR,e.coline=e.coline??[],e.loop=e.loop??!1,e.loop_info=void 0===e.loop_info?{bank:!0,left_and_right_factor:0,bottom_factor:1}:{...e.loop_info,bottom_factor:Math.max(e.loop_info.bottom_factor,1)};for(const[t,n]of Object.entries(e.stn_list))"loop_pivot"in n||(e.stn_list[t].loop_pivot=!1);return Array.isArray(e.coline)&&(e.coline=e.coline.reduce(((e,t)=>({...e,[l(4)]:t})),{})),!1===e.platform_num&&(e.platform_num=""),Object.values(e.stn_list).forEach((t=>{const n=t;n.one_line=n.one_line??!1,n.int_padding=n.int_padding??(e.loop?250:355)})),void 0===e.branchSpacingPct&&(e.style===o.SHMetro?e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*300):e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*200),delete e.branch_spacing),F(e),$(e),U(e),J(e),e})),e=>{for(const[t,n]of Object.entries(e.stn_list)){const i=n.transfer.info;i&&(e.stn_list[t].transfer.groups=i.map(((e,t)=>e.length?{name:n.transfer.osi_names[t-1],lines:e.map((e=>{const t=e;return{theme:t.slice(0,4),name:t.slice(4,6)}}))}:{lines:[]}))),delete e.stn_list[t].transfer.info,delete e.stn_list[t].transfer.osi_names}}),$=e=>{for(const[t,n]of Object.entries(e.stn_list)){const{name:i,secondaryName:s,localisedName:a,localisedSecondaryName:r}=n;!a&&i&&(e.stn_list[t].localisedName={zh:i[0],en:i[1]},delete e.stn_list[t].name),!r&&s&&(e.stn_list[t].localisedSecondaryName={zh:s[0],en:s[1]},delete e.stn_list[t].secondaryName)}},U=e=>{const{svgWidth:t}=e;c.Platform in t||(e.svgWidth.platform=1200);for(const[n,i]of Object.entries(e.stn_list)){const{character_spacing:t}=i;void 0===t&&(e.stn_list[n].character_spacing=75)}},B=e=>4===e.length&&e.every((e=>"string"==typeof e))&&!!e[2].match(/^#[0-9a-fA-F]{6}$/)&&Object.values(u).includes(e[3]),Y=(e,t,n)=>{const i=t.split(".");let s=e;for(let a=0;a{const t=(new Date).getTime(),n=(e=>{const t=[],n=(e,i)=>{if(Array.isArray(e)&&B(e))t.push({path:i||"",value:e});else for(const s in e){const a=e[s],r=i?`${i}.${s}`:s;Array.isArray(a)?B(a)?t.push({path:r,value:a}):a.forEach(((e,t)=>n(e,`${r}.${t}`))):a&&"object"==typeof a&&n(a,r)}};return n(e),t})(e);d.info("Found all themes pending for update",n);const i=JSON.parse(JSON.stringify(e));let s,a=!1;const r=new Promise(((e,t)=>{s=setTimeout((()=>{a=!0,t("Executing time exceeds 5000ms")}),5e3),(async()=>{for(const{path:e,value:t}of n){if(a)throw new Error("Update aborted");const n=await h(t);Y(i,e,n)}})().then(e).catch(t)}));try{return await r,d.info(`Themes update completed, elapsed time ${((new Date).getTime()-t)/1e3} sec`),i}catch(o){return d.warn(`Error occurs when updating themes, elapsed time ${((new Date).getTime()-t)/1e3} sec`,o),i}finally{clearTimeout(s)}})),{notesGZMTR:e=>!e?.length,"stn_list.*.branch.left":e=>!e?.length,"stn_list.*.branch.right":e=>!e?.length,"stn_list.*.branch":e=>!e||0===Object.keys(e).length,"stn_list.*.facility":e=>!e,"stn_list.*.transfer.groups.*.lines":e=>!e?.length}),J=e("s",(e=>{const t=structuredClone(e);return Object.entries(G).forEach((([e,n])=>{Object.entries(((e,t)=>{const n={},i=(e,t,s)=>{let a=e;for(let n=0;ni(a,[...t,...s.slice(0,n)],[e,...s.slice(n+1)])));if(a=a?.[s[n]],void 0===a)return}const r=a?.[s[s.length-1]];void 0!==r&&(n[[...t,...s].join(".")]=a?.[s[s.length-1]])};return i(e,[],t.split(".")),n})(t,e)).forEach((([e,i])=>{d.debug("Sanitising",e,i),n(i)&&Y(t,e,void 0)}))})),t.version=g.getAppVersion(),t})),V=(e("c",(()=>{const e=(()=>{const e=`${g.getAppName()}__${p.PARAM_CONFIG_BY_ID}`,t=Object.entries(g.storage.getAll()).filter((([t])=>t.startsWith(e))).map((([t,n])=>{const i=t.slice(e.length);if(!n)return{id:i};try{return{...JSON.parse(n),id:i}}catch{return{id:i}}}));return d.info("loadParamRegistry(), Found param config in localStorage",t.map((e=>e.id))),t})(),t=`${g.getAppName()}__${p.PARAM_BY_ID}`,n=Object.keys(g.storage.getAll()).filter((e=>e.startsWith(t))).map((n=>{const i=n.slice(t.length);return e.find((e=>e.id===i))??{id:i}}));return d.info("getParamRegistry(), Actual param found in localStorage",n.map((e=>e.id))),e.filter((e=>n.every((t=>t.id!==e.id)))).forEach((e=>g.storage.remove(p.PARAM_CONFIG_BY_ID+e.id))),n})),e("g",(e=>{const t=g.storage.get(p.PARAM_CONFIG_BY_ID+e);return t?JSON.parse(t):t}))),Z=(e("e",(e=>{const t=g.storage.get(p.PARAM_BY_ID+e);return{param:t?JSON.parse(t):t,config:V(e)}})),e("b",((e,t)=>{const n=l();return g.storage.set(p.PARAM_BY_ID+n,e),g.storage.set(p.PARAM_CONFIG_BY_ID+n,JSON.stringify({name:t,lastModified:Date.now()})),n})));function H(e){const{config:t,onClose:n,onUpdate:i}=e,{t:s}=I(),[a,r]=E.useState(t?.name??"");E.useEffect((()=>{t&&r(t.name??"")}),[t]);const o=[{type:"input",label:s("Project name"),value:a,onChange:r,debouncedDelay:0}];return b.jsxs(w,{isOpen:!!t,onClose:n,isCentered:!0,children:[b.jsx(O,{}),b.jsxs(A,{children:[b.jsx(C,{children:s("Edit project info")}),b.jsx(D,{}),b.jsx(M,{children:b.jsx(W,{fields:o})}),b.jsx(R,{children:b.jsx(S,{colorScheme:"primary",onClick:()=>{t&&(t.name??"")!==a&&i({...t,name:a})},children:s("Confirm")})})]})]})}e("h",(async e=>{const t=e.split("/").at(-1);try{const n=await fetch(e);if(n.ok){const e=await n.text();return Z(e,t)}return d.warn("Failed to download param"),null}catch(n){return d.warn("Failed to download param.",n),null}}));const K={flex:"2 1 0%",overflow:"hidden",minW:{base:"unset",md:240},w:{base:"100%",md:"unset"},mr:{base:0,md:2},mb:{base:2,md:0},"& > div":{flexDirection:"column",h:200,overflowX:"hidden",overflowY:"auto",borderRadius:"md",borderWidth:2,"& >.chakra-button":{alignItems:"center"},"& .chakra-button__group":{"& button:not(:first-of-type)":{h:"100%"}}}}}}})); +System.register(["./index-legacy-Dwehuq_g.js","./chakra-legacy-Di7w1ZhB.js","./react-legacy-wexXEtdT.js"],(function(e,t){"use strict";var n,i,s,a,r,o,l,c,d,h,g,u,p,f,_,m,y,b,v,j,x,w,O,A,C,D,R,S,M,N,P,T,k,E,I;return{setters:[e=>{n=e.j,i=e.aj,s=e.aQ,a=e.aR,r=e.ai,o=e.e,l=e.aa,c=e.aS,d=e.aN,h=e.aT,g=e.r,u=e.h,p=e.aH,f=e.aU,_=e.aV,m=e.l},e=>{y=e.u,b=e.j,v=e.c,j=e.h,x=e.aC,w=e.aj,O=e.M,A=e.ak,C=e.J,D=e.K,R=e.L,S=e.O,M=e.t,N=e.B,P=e.s,T=e.a2,k=e.N},e=>{E=e.a,I=e.u}],execute:function(){e({P:function(e){const{paramRegistry:t,downloading:n,selectedParam:i,onParamSelect:s,onParamRemove:a,onParamUpdate:r}=e,{t:o}=I(),[l,c]=E.useState();return b.jsxs(N,{sx:K,children:[b.jsxs(j,{children:[n&&b.jsx(f,{variant:"ghost",primaryText:o("Downloading")+"...",secondaryText:n,isDisabled:!0}),t.slice().sort(((e,t)=>(t.lastModified??0)-(e.lastModified??0))).map((e=>b.jsxs(P,{size:"sm",isAttached:!0,colorScheme:i===e.id?"primary":void 0,variant:i===e.id?"solid":"ghost",children:[b.jsx(f,{primaryText:e.name??o("Project")+" "+e.id,secondaryText:o("Last modified")+": "+L(e.lastModified).map((e=>o(e))).join(" "),"aria-pressed":i===e.id,onClick:()=>s(e.id)}),r&&b.jsx(T,{"aria-label":o("Edit project info"),title:o("Edit project info"),icon:b.jsx(_,{}),onClick:()=>c(e)}),a&&b.jsx(T,{"aria-label":o("Remove project"),title:o("Remove project"),icon:b.jsx(m,{}),onClick:()=>a(e.id)})]},e.id)))]}),t.length>=10&&b.jsx(k,{as:"em",fontSize:"xs",children:o("You have reached the maximum number of projects.")}),b.jsx(H,{config:l,onClose:()=>c(void 0),onUpdate:e=>{r?.(e),c(void 0)}})]})},R:W});var t=function(e){var t=e.children,n=e.noWrap,i=y("RmgOutput",{noWrap:n});return b.jsx(v.output,{sx:i,children:t})};function W(e){var o=e.fields,l=e.noLabel,c=e.minW;return b.jsx(j,{wrap:"wrap",children:o.map((function(e,o){if(e.hidden)return b.jsx(E.Fragment,{},o);var d=e.minW||c,h="full"===d;return b.jsx(n,{className:h?"mw-full":"",label:e.label,flex:h?void 0:1,minW:h?void 0:d,noLabel:l,oneLine:e.oneLine,helper:e.helper,errorMessage:e.errorMessage,children:function(e){switch(e.type){case"input":return b.jsx(r,{placeholder:e.placeholder,defaultValue:e.value,type:e.variant,validator:e.validator,onDebouncedChange:e.onChange,delay:e.debouncedDelay,optionList:e.optionList,isDisabled:e.isDisabled});case"output":return b.jsx(t,{noWrap:e.noWrap,children:e.value});case"textarea":return b.jsx(a,{placeholder:e.placeholder,defaultValue:e.value,onDebouncedChange:e.onChange,isDisabled:e.isDisabled});case"slider":return b.jsx(s,{defaultValue:e.value,min:e.min,max:e.max,step:e.step,onThrottledChange:e.onChange,leftIcon:e.leftIcon,rightIcon:e.rightIcon,isDisabled:e.isDisabled});case"select":return b.jsx(i,{defaultValue:e.value,onChange:function(t){var n,i=t.target.value;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,"number"==typeof e.value?Number(i):i.toString())},options:e.options,disabledOptions:e.disabledOptions,isInvalid:e.isInvalid,isDisabled:e.isDisabled});case"switch":return b.jsx(x,{isChecked:e.isChecked,isDisabled:e.isDisabled,onChange:function(t){var n,i=t.target.checked;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,i)}});case"custom":return e.component;default:return b.jsx("div",{})}}(e)},o)}))})}e("a",((e,t,n)=>{const i=new Blob([n],{type:t});z(e,i)}));const z=e("d",((e,t)=>{const n=window.URL.createObjectURL(t),i=document.createElement("a");i.href=n,i.download=e,document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(n)})),L=(e("r",(e=>new Promise((t=>{const n=new FileReader;n.onloadend=()=>t(n.result),n.readAsText(e)})))),e("i",(()=>navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome"))),e=>{if(e){const t=(new Date).getTime()-e;return t<6e4?["Just now"]:t<12e4?["1","minute ago"]:t<36e5?[Math.floor(t/1e3/60).toString(),"minutes ago"]:t<72e5?["1","hour ago"]:t<864e5?[Math.floor(t/1e3/60/60).toString(),"hours ago"]:t<1728e5?["1","day ago"]:[Math.floor(t/1e3/60/60/24).toString(),"days ago"]}return["Unknown"]}),F=(e("w",(e=>new Promise((t=>{setTimeout(t,e)})))),e("u",(e=>{"line_name"in e||(e.line_name=["路線名","Name of Line"]),delete e.fontZH,delete e.fontEN,delete e.weightZH,delete e.weightEN;for(const[t,n]of Object.entries(e.stn_list))"branch"in n||(e.stn_list[t].branch={},2===n.children.length&&(e.stn_list[t].branch.right=["through",n.children[1]]),2===n.parents.length&&(e.stn_list[t].branch.left=["through",n.parents[1]]),0===Object.keys(e.stn_list[t].branch).length&&delete e.stn_list[t].branch);e.psd_num="psd_num"in e?e.psd_num.toString():"1","line_num"in e||(e.line_num="1"),3===e.theme.length&&e.theme.push("#fff");for(const[t,n]of Object.entries(e.stn_list))"num"in n||(e.stn_list[t].num="00"),"interchange"in n&&n.interchange.map((e=>e.forEach((e=>{5===e.length&&e.splice(3,0,"#fff")}))));for(const[t,n]of Object.entries(e.stn_list))"osi22_end_p"===n.change_type&&(e.stn_list[t].change_type="osi22_pr"),"osi22_end_u"===n.change_type&&(e.stn_list[t].change_type="osi22_ur");for(const[t,n]of Object.entries(e.stn_list))"interchange"in n||(e.stn_list[t].interchange=[[]]);e.info_panel_type="info_panel_type"in e?(e=>{switch(e){case"gz_1":case"panasonic":return"gz28";case"gz_2":return"gz6";case"gz_3":return"gz3";default:return e}})(e.info_panel_type):"gz28","direction_gz_x"in e||(e.direction_gz_x=50),"direction_gz_y"in e||(e.direction_gz_y=70);for(const[t,n]of Object.entries(e.stn_list))"transfer"in n||(e.stn_list[t].transfer={tick_direc:"none"===n.change_type||"int2"===n.change_type?"r":n.change_type?.split("_")[1].split("").slice().reverse()[0],paid_area:-1===n.change_type?.indexOf("osi")||"p"===n.change_type?.split("_")[1][0],osi_names:-1!==n.change_type?.indexOf("osi")?[n.interchange[1][0]]:[],info:2===n.interchange.length?[n.interchange[0],n.interchange[1].slice(1)]:n.interchange}),delete e.stn_list[t].change_type,delete e.stn_list[t].interchange;for(const[t,n]of Object.entries(e.stn_list))"services"in n||(e.stn_list[t].services=["local"]),"facility"in n?""===n.facility&&(e.stn_list[t].facility=void 0):e.stn_list[t].facility=n.usage||void 0,delete e.stn_list[t].usage;"customiseMTRDest"in e||(e.customiseMTRDest={isLegacy:e.dest_legacy||!1,terminal:!1}),delete e.dest_legacy,"svgWidth"in e||(e.svgWidth={destination:e.svg_dest_width,runin:e.svg_dest_width,railmap:e.svg_width,indoor:e.svg_width}),"indoor"in e.svgWidth||(e.svgWidth.indoor=e.svgWidth.railmap),delete e.svg_width,delete e.svg_dest_width,e.notesGZMTR=e.notesGZMTR?.map((e=>4===e.length?e.concat([!1]):e)),delete e.char_form,delete e.show_outer,delete e.strip_pc,delete e.txt_bg_gap,"namePosMTR"in e||(e.namePosMTR={isStagger:!0,isFlip:e.txt_flip}),delete e.txt_flip,Object.keys(e.stn_list).forEach((t=>{"secondaryName"in e.stn_list[t]&&!1===e.stn_list[t].secondaryName&&delete e.stn_list[t].secondaryName,"type"in e.stn_list[t].transfer&&delete e.stn_list[t].transfer.type})),e.style=void 0!==e.style&&Object.values(o).includes(e.style)?e.style:o.MTR,e.coline=e.coline??[],e.loop=e.loop??!1,e.loop_info=void 0===e.loop_info?{bank:!0,left_and_right_factor:0,bottom_factor:1}:{...e.loop_info,bottom_factor:Math.max(e.loop_info.bottom_factor,1)};for(const[t,n]of Object.entries(e.stn_list))"loop_pivot"in n||(e.stn_list[t].loop_pivot=!1);return Array.isArray(e.coline)&&(e.coline=e.coline.reduce(((e,t)=>({...e,[l(4)]:t})),{})),!1===e.platform_num&&(e.platform_num=""),Object.values(e.stn_list).forEach((t=>{const n=t;n.one_line=n.one_line??!1,n.int_padding=n.int_padding??(e.loop?250:355)})),void 0===e.branchSpacingPct&&(e.style===o.SHMetro?e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*300):e.branchSpacingPct=Math.round(e.branch_spacing/e.svg_height*200),delete e.branch_spacing),F(e),$(e),U(e),G(e),e})),e=>{for(const[t,n]of Object.entries(e.stn_list)){const i=n.transfer.info;i&&(e.stn_list[t].transfer.groups=i.map(((e,t)=>e.length?{name:n.transfer.osi_names[t-1],lines:e.map((e=>{const t=e;return{theme:t.slice(0,4),name:t.slice(4,6)}}))}:{lines:[]}))),delete e.stn_list[t].transfer.info,delete e.stn_list[t].transfer.osi_names}}),$=e=>{for(const[t,n]of Object.entries(e.stn_list)){const{name:i,secondaryName:s,localisedName:a,localisedSecondaryName:r}=n;!a&&i&&(e.stn_list[t].localisedName={zh:i[0],en:i[1]},delete e.stn_list[t].name),!r&&s&&(e.stn_list[t].localisedSecondaryName={zh:s[0],en:s[1]},delete e.stn_list[t].secondaryName)}},U=e=>{const{svgWidth:t}=e;c.Platform in t||(e.svgWidth.platform=1200);for(const[n,i]of Object.entries(e.stn_list)){const{character_spacing:t}=i;void 0===t&&(e.stn_list[n].character_spacing=75)}},B=e=>4===e.length&&e.every((e=>"string"==typeof e))&&!!e[2].match(/^#[0-9a-fA-F]{6}$/)&&Object.values(u).includes(e[3]),Y=(e,t,n)=>{const i=t.split(".");let s=e;for(let a=0;a{const t=(new Date).getTime(),n=(e=>{const t=[],n=(e,i)=>{if(Array.isArray(e)&&B(e))t.push({path:i||"",value:e});else for(const s in e){const a=e[s],r=i?`${i}.${s}`:s;Array.isArray(a)?B(a)?t.push({path:r,value:a}):a.forEach(((e,t)=>n(e,`${r}.${t}`))):a&&"object"==typeof a&&n(a,r)}};return n(e),t})(e);d.info("Found all themes pending for update",n);const i=JSON.parse(JSON.stringify(e));let s,a=!1;const r=new Promise(((e,t)=>{s=setTimeout((()=>{a=!0,t("Executing time exceeds 5000ms")}),5e3),(async()=>{for(const{path:e,value:t}of n){if(a)throw new Error("Update aborted");const n=await h(t);Y(i,e,n)}})().then(e).catch(t)}));try{return await r,d.info(`Themes update completed, elapsed time ${((new Date).getTime()-t)/1e3} sec`),i}catch(o){return d.warn(`Error occurs when updating themes, elapsed time ${((new Date).getTime()-t)/1e3} sec`,o),i}finally{clearTimeout(s)}})),{notesGZMTR:e=>!e?.length,"stn_list.*.branch.left":e=>!e?.length,"stn_list.*.branch.right":e=>!e?.length,"stn_list.*.branch":e=>!e||0===Object.keys(e).length,"stn_list.*.facility":e=>!e,"stn_list.*.transfer.groups.*.lines":e=>!e?.length}),G=e("s",(e=>{const t=structuredClone(e);return Object.entries(J).forEach((([e,n])=>{Object.entries(((e,t)=>{const n={},i=(e,t,s)=>{let a=e;for(let n=0;ni(a,[...t,...s.slice(0,n)],[e,...s.slice(n+1)])));if(a=a?.[s[n]],void 0===a)return}const r=a?.[s[s.length-1]];void 0!==r&&(n[[...t,...s].join(".")]=a?.[s[s.length-1]])};return i(e,[],t.split(".")),n})(t,e)).forEach((([e,i])=>{d.debug("Sanitising",e,i),n(i)&&Y(t,e,void 0)}))})),t.version=g.getAppVersion(),t})),V=(e("c",(()=>{const e=(()=>{const e=`${g.getAppName()}__${p.PARAM_CONFIG_BY_ID}`,t=Object.entries(g.storage.getAll()).filter((([t])=>t.startsWith(e))).map((([t,n])=>{const i=t.slice(e.length);if(!n)return{id:i};try{return{...JSON.parse(n),id:i}}catch{return{id:i}}}));return d.info("loadParamRegistry(), Found param config in localStorage",t.map((e=>e.id))),t})(),t=`${g.getAppName()}__${p.PARAM_BY_ID}`,n=Object.keys(g.storage.getAll()).filter((e=>e.startsWith(t))).map((n=>{const i=n.slice(t.length);return e.find((e=>e.id===i))??{id:i}}));return d.info("getParamRegistry(), Actual param found in localStorage",n.map((e=>e.id))),e.filter((e=>n.every((t=>t.id!==e.id)))).forEach((e=>g.storage.remove(p.PARAM_CONFIG_BY_ID+e.id))),n})),e("g",(e=>{const t=g.storage.get(p.PARAM_CONFIG_BY_ID+e);return t?JSON.parse(t):t}))),Z=(e("e",(e=>{const t=g.storage.get(p.PARAM_BY_ID+e);return{param:t?JSON.parse(t):t,config:V(e)}})),e("b",((e,t)=>{const n=l();return g.storage.set(p.PARAM_BY_ID+n,e),g.storage.set(p.PARAM_CONFIG_BY_ID+n,JSON.stringify({name:t,lastModified:Date.now()})),n})));function H(e){const{config:t,onClose:n,onUpdate:i}=e,{t:s}=I(),[a,r]=E.useState(t?.name??"");E.useEffect((()=>{t&&r(t.name??"")}),[t]);const o=[{type:"input",label:s("Project name"),value:a,onChange:r,debouncedDelay:0}];return b.jsxs(w,{isOpen:!!t,onClose:n,isCentered:!0,children:[b.jsx(O,{}),b.jsxs(A,{children:[b.jsx(C,{children:s("Edit project info")}),b.jsx(D,{}),b.jsx(R,{children:b.jsx(W,{fields:o})}),b.jsx(S,{children:b.jsx(M,{colorScheme:"primary",onClick:()=>{t&&(t.name??"")!==a&&i({...t,name:a})},children:s("Confirm")})})]})]})}e("h",(async e=>{const t=e.split("/").at(-1);try{const n=await fetch(e);if(n.ok){const e=await n.text();return Z(e,t)}return d.warn("Failed to download param"),null}catch(n){return d.warn("Failed to download param.",n),null}}));const K={flex:"2 1 0%",overflow:"hidden",minW:{base:"unset",md:240},w:{base:"100%",md:"unset"},mr:{base:0,md:2},mb:{base:2,md:0},"& > div":{flexDirection:"column",h:200,overflowX:"hidden",overflowY:"auto",borderRadius:"md",borderWidth:2,"& >.chakra-button":{alignItems:"center"},"& .chakra-button__group":{"& button:not(:first-of-type)":{h:"100%"}}}}}}})); diff --git a/assets/share-legacy-CN2pvFRh.js b/assets/share-legacy-DDWDkgfB.js similarity index 98% rename from assets/share-legacy-CN2pvFRh.js rename to assets/share-legacy-DDWDkgfB.js index 861bfea7..8b31fadd 100644 --- a/assets/share-legacy-CN2pvFRh.js +++ b/assets/share-legacy-DDWDkgfB.js @@ -1 +1 @@ -System.register(["./index-legacy-CCR6yT8f.js"],(function(t,e){"use strict";var n;return{setters:[t=>{n=t.S}],execute:function(){t("a",((t,e,n)=>Object.keys(t).reduce(((s,i)=>({...s,[i]:t[i].children.reduce(((s,r)=>({...s,[r]:1+e(t,r)+n(t,i)})),{})})),{})));const e=t("c",((t,n,s)=>{if(t===n)return{len:0,nodes:[t]};const i=[],r=[];Object.keys(s[t]).forEach((h=>{const l=e(h,n,s);l.len<0||(i.push(s[t][h]+l.len),l.nodes.unshift(t),r.push(l.nodes))}));const h=Math.max(...i);return{len:h,nodes:r[i.indexOf(h)]}})),s=(t("g",((t,n,s)=>{const i=e("linestart","lineend",n);if(i.nodes.includes(t))return e(i.nodes[1],t,n).len;{const r=s.filter((e=>e.includes(t)))[0];let h=t;for(;!i.nodes.includes(h);)h=r[r.indexOf(h)-1];let l=t;for(;!i.nodes.includes(l);)l=r[r.indexOf(l)+1];const a="linestart"===h,c=[];return a||"lineend"===l?a?(c[0]=0,c[1]=e(i.nodes[1],l,n).len,c[2]=e(r[1],t,n).len,c[3]=e(t,l,n).len):(c[0]=e(i.nodes[1],h,n).len,c[1]=e(h,i.nodes.slice(-2)[0],n).len,c[2]=e(h,t,n).len,c[3]=e(t,r.slice(-2)[0],n).len):(c[0]=e(i.nodes[1],h,n).len,c[1]=e(h,l,n).len,c[2]=e(h,t,n).len,c[3]=e(t,l,n).len),c[0]+c[2]*c[1]/(c[2]+c[3])}})),(t,e,n)=>{for(const s of n){const n=s.indexOf(t),i=s.indexOf(e);if(-1!==i&&i{for(const s of n){const n=s.indexOf(t),i=s.indexOf(e);if(-1!==n&&n(console.log("computing stations' states"),[...new Set([].concat(...e))].reduce(((h,l)=>({...h,[l]:l===t?0:(r===n.right?i(t,l,e):s(t,l,e))?1:-1})),{})))),t("S",class{constructor(t){this.yShares={},this.xShares={},this.namePoss={},this.stnList={},this.criticalPath={},this.leftWideFactor=t=>0,this.rightWideFactor=t=>0,this.pathTurnParams=t=>{const e=35-17.5*Math.sqrt(3),n=t-2*e;return{tr:35,dx_a:17.5,dy_a:e,dx_l:n*Math.sqrt(3),dy_l:n}},this.pathTurnSE=t=>{const{tr:e,dx_a:n,dy_a:s,dx_l:i,dy_l:r}=this.pathTurnParams(t);return`a ${e},${e} 0 0,1 ${n},${s} l ${i},${r} a ${e},${e} 0 0,0 ${n},${s}`},this.pathTurnNE=t=>{const{tr:e,dx_a:n,dy_a:s,dx_l:i,dy_l:r}=this.pathTurnParams(t);return`a ${e},${e} 0 0,0 ${n},${-s} l ${i},${-r} a ${e},${e} 0 0,1 ${n},${-s}`},this.stnList=t.stnList,this.criticalPath=t.criticalPath}getYShare(t){if(t in this.yShares)return this.yShares[t];if(["linestart","lineend"].includes(t)||this.stnList[t].parents.length>1||this.stnList[t].children.length>1)return this.yShares[t]=0,0;const e=this.stnList[t].parents[0];if(e){if(1===this.stnList[e].children.length){const n=this.getYShare(e);return this.yShares[t]=n,n}{const n=0===this.stnList[e].children.indexOf(t)?1:-1;return this.yShares[t]=n,n}}return this.yShares[t]=0,0}static getYShares(t){console.log("computing y shares");const e=new this({stnList:t});return Object.keys(t).forEach((t=>{["linestart","lineend"].includes(t)||t in e.yShares||e.getYShare(t)})),e.yShares}_linePath(t,e,n,s,i,r,h,l){let[a,c,o]=[];const d=[],{dx_a:u,dx_l:f}=this.pathTurnParams(r),$=u+f/2,g=(e[1]-e[0])/h.len*2,p=((e[1]-e[0])/h.len-2*$)/2;return p+g<0&&console.warn(`SVG width too small! ${p+g}`),t.forEach((e=>{const h=s[e],u=i[e];if(!c&&0!==c)return[a,o,c]=[e,h,u],void(1===t.length?d.push(`M ${h},${u}`):n[0].includes(e)?n[0].includes(t[1])?d.push(`M ${h},${u}`):(s[t[1]]>0&&d.push(`M ${h},${u+l}`),i[t[1]]<0&&d.push(`M ${h},${u-l}`)):d.push(`M ${h},${u}`));u>c?(d.push(0===u?"h "+(h-o-g*this.leftWideFactor(e)-p-2*$):`h ${g*this.rightWideFactor(a)+p}`),d.push(this.pathTurnSE(r))):u{let n=(t=t.filter((t=>!["linestart","lineend"].includes(t)))).filter((t=>e[t]>=0)),s=t.filter((t=>e[t]<=0));return 1===n.length&&(s=t),0===n.filter((t=>-1!==s.indexOf(t))).length&&n.length&&(s[0]===t[0]?s.push(n[0]):n[0]===t[0]&&n[n.length-1]===t[t.length-1]&&s.length?(s=t,n=[]):s.unshift(n[n.length-1])),{main:n,pass:s}}))}}})); +System.register(["./index-legacy-Dwehuq_g.js"],(function(t,e){"use strict";var n;return{setters:[t=>{n=t.S}],execute:function(){t("a",((t,e,n)=>Object.keys(t).reduce(((s,i)=>({...s,[i]:t[i].children.reduce(((s,r)=>({...s,[r]:1+e(t,r)+n(t,i)})),{})})),{})));const e=t("c",((t,n,s)=>{if(t===n)return{len:0,nodes:[t]};const i=[],r=[];Object.keys(s[t]).forEach((h=>{const l=e(h,n,s);l.len<0||(i.push(s[t][h]+l.len),l.nodes.unshift(t),r.push(l.nodes))}));const h=Math.max(...i);return{len:h,nodes:r[i.indexOf(h)]}})),s=(t("g",((t,n,s)=>{const i=e("linestart","lineend",n);if(i.nodes.includes(t))return e(i.nodes[1],t,n).len;{const r=s.filter((e=>e.includes(t)))[0];let h=t;for(;!i.nodes.includes(h);)h=r[r.indexOf(h)-1];let l=t;for(;!i.nodes.includes(l);)l=r[r.indexOf(l)+1];const a="linestart"===h,c=[];return a||"lineend"===l?a?(c[0]=0,c[1]=e(i.nodes[1],l,n).len,c[2]=e(r[1],t,n).len,c[3]=e(t,l,n).len):(c[0]=e(i.nodes[1],h,n).len,c[1]=e(h,i.nodes.slice(-2)[0],n).len,c[2]=e(h,t,n).len,c[3]=e(t,r.slice(-2)[0],n).len):(c[0]=e(i.nodes[1],h,n).len,c[1]=e(h,l,n).len,c[2]=e(h,t,n).len,c[3]=e(t,l,n).len),c[0]+c[2]*c[1]/(c[2]+c[3])}})),(t,e,n)=>{for(const s of n){const n=s.indexOf(t),i=s.indexOf(e);if(-1!==i&&i{for(const s of n){const n=s.indexOf(t),i=s.indexOf(e);if(-1!==n&&n(console.log("computing stations' states"),[...new Set([].concat(...e))].reduce(((h,l)=>({...h,[l]:l===t?0:(r===n.right?i(t,l,e):s(t,l,e))?1:-1})),{})))),t("S",class{constructor(t){this.yShares={},this.xShares={},this.namePoss={},this.stnList={},this.criticalPath={},this.leftWideFactor=t=>0,this.rightWideFactor=t=>0,this.pathTurnParams=t=>{const e=35-17.5*Math.sqrt(3),n=t-2*e;return{tr:35,dx_a:17.5,dy_a:e,dx_l:n*Math.sqrt(3),dy_l:n}},this.pathTurnSE=t=>{const{tr:e,dx_a:n,dy_a:s,dx_l:i,dy_l:r}=this.pathTurnParams(t);return`a ${e},${e} 0 0,1 ${n},${s} l ${i},${r} a ${e},${e} 0 0,0 ${n},${s}`},this.pathTurnNE=t=>{const{tr:e,dx_a:n,dy_a:s,dx_l:i,dy_l:r}=this.pathTurnParams(t);return`a ${e},${e} 0 0,0 ${n},${-s} l ${i},${-r} a ${e},${e} 0 0,1 ${n},${-s}`},this.stnList=t.stnList,this.criticalPath=t.criticalPath}getYShare(t){if(t in this.yShares)return this.yShares[t];if(["linestart","lineend"].includes(t)||this.stnList[t].parents.length>1||this.stnList[t].children.length>1)return this.yShares[t]=0,0;const e=this.stnList[t].parents[0];if(e){if(1===this.stnList[e].children.length){const n=this.getYShare(e);return this.yShares[t]=n,n}{const n=0===this.stnList[e].children.indexOf(t)?1:-1;return this.yShares[t]=n,n}}return this.yShares[t]=0,0}static getYShares(t){console.log("computing y shares");const e=new this({stnList:t});return Object.keys(t).forEach((t=>{["linestart","lineend"].includes(t)||t in e.yShares||e.getYShare(t)})),e.yShares}_linePath(t,e,n,s,i,r,h,l){let[a,c,o]=[];const d=[],{dx_a:u,dx_l:f}=this.pathTurnParams(r),$=u+f/2,g=(e[1]-e[0])/h.len*2,p=((e[1]-e[0])/h.len-2*$)/2;return p+g<0&&console.warn(`SVG width too small! ${p+g}`),t.forEach((e=>{const h=s[e],u=i[e];if(!c&&0!==c)return[a,o,c]=[e,h,u],void(1===t.length?d.push(`M ${h},${u}`):n[0].includes(e)?n[0].includes(t[1])?d.push(`M ${h},${u}`):(s[t[1]]>0&&d.push(`M ${h},${u+l}`),i[t[1]]<0&&d.push(`M ${h},${u-l}`)):d.push(`M ${h},${u}`));u>c?(d.push(0===u?"h "+(h-o-g*this.leftWideFactor(e)-p-2*$):`h ${g*this.rightWideFactor(a)+p}`),d.push(this.pathTurnSE(r))):u{let n=(t=t.filter((t=>!["linestart","lineend"].includes(t)))).filter((t=>e[t]>=0)),s=t.filter((t=>e[t]<=0));return 1===n.length&&(s=t),0===n.filter((t=>-1!==s.indexOf(t))).length&&n.length&&(s[0]===t[0]?s.push(n[0]):n[0]===t[0]&&n[n.length-1]===t[t.length-1]&&s.length?(s=t,n=[]):s.unshift(n[n.length-1])),{main:n,pass:s}}))}}})); diff --git a/assets/share-C4aXWUdL.js b/assets/share-r5pzRDhM.js similarity index 98% rename from assets/share-C4aXWUdL.js rename to assets/share-r5pzRDhM.js index 9ea6e44a..c35c9816 100644 --- a/assets/share-C4aXWUdL.js +++ b/assets/share-r5pzRDhM.js @@ -1 +1 @@ -import{S as P}from"./index-BqOgmhc6.js";const E=(i,t,s)=>Object.keys(i).reduce((e,n)=>({...e,[n]:i[n].children.reduce((r,l)=>({...r,[l]:1+t(i,l)+s(i,n)}),{})}),{}),c=(i,t,s)=>{if(i===t)return{len:0,nodes:[i]};const e=[],n=[];Object.keys(s[i]).forEach(l=>{const o=c(l,t,s);o.len<0||(e.push(s[i][l]+o.len),o.nodes.unshift(i),n.push(o.nodes))});const r=Math.max(...e);return{len:r,nodes:n[e.indexOf(r)]}},L=(i,t,s)=>{const e=c("linestart","lineend",t);if(e.nodes.includes(i))return c(e.nodes[1],i,t).len;{const n=s.filter($=>$.includes(i))[0];let r=i;for(;!e.nodes.includes(r);)r=n[n.indexOf(r)-1];let l=i;for(;!e.nodes.includes(l);)l=n[n.indexOf(l)+1];const o=r==="linestart",S=l==="lineend",h=[];return!o&&!S?(h[0]=c(e.nodes[1],r,t).len,h[1]=c(r,l,t).len,h[2]=c(r,i,t).len,h[3]=c(i,l,t).len):o?(h[0]=0,h[1]=c(e.nodes[1],l,t).len,h[2]=c(n[1],i,t).len,h[3]=c(i,l,t).len):(h[0]=c(e.nodes[1],r,t).len,h[1]=c(r,e.nodes.slice(-2)[0],t).len,h[2]=c(r,i,t).len,h[3]=c(i,n.slice(-2)[0],t).len),h[0]+h[2]*h[1]/(h[2]+h[3])}},m=(i,t,s)=>{for(const e of s){const n=e.indexOf(i),r=e.indexOf(t);if(r!==-1&&r{for(const e of s){const n=e.indexOf(i),r=e.indexOf(t);if(n!==-1&&n(console.log("computing stations' states"),[...new Set([].concat(...t))].reduce((e,n)=>({...e,[n]:n===i?0:(s===P.right?w(i,n,t):m(i,n,t))?1:-1}),{}));class W{constructor(t){this.yShares={},this.xShares={},this.namePoss={},this.stnList={},this.criticalPath={},this.leftWideFactor=s=>0,this.rightWideFactor=s=>0,this.pathTurnParams=s=>{const r=35-17.5*Math.sqrt(3),l=s-2*r,o=l*Math.sqrt(3);return{tr:35,dx_a:17.5,dy_a:r,dx_l:o,dy_l:l}},this.pathTurnSE=s=>{const{tr:e,dx_a:n,dy_a:r,dx_l:l,dy_l:o}=this.pathTurnParams(s);return"a ".concat(e,",").concat(e," 0 0,1 ").concat(n,",").concat(r," l ").concat(l,",").concat(o," a ").concat(e,",").concat(e," 0 0,0 ").concat(n,",").concat(r)},this.pathTurnNE=s=>{const{tr:e,dx_a:n,dy_a:r,dx_l:l,dy_l:o}=this.pathTurnParams(s);return"a ".concat(e,",").concat(e," 0 0,0 ").concat(n,",").concat(-r," l ").concat(l,",").concat(-o," a ").concat(e,",").concat(e," 0 0,1 ").concat(n,",").concat(-r)},this.stnList=t.stnList,this.criticalPath=t.criticalPath}getYShare(t){if(t in this.yShares)return this.yShares[t];if(["linestart","lineend"].includes(t)||this.stnList[t].parents.length>1||this.stnList[t].children.length>1)return this.yShares[t]=0,0;const s=this.stnList[t].parents[0];if(s)if(this.stnList[s].children.length===1){const e=this.getYShare(s);return this.yShares[t]=e,e}else{const e=this.stnList[s].children.indexOf(t)===0?1:-1;return this.yShares[t]=e,e}else return this.yShares[t]=0,0}static getYShares(t){console.log("computing y shares");const s=new this({stnList:t});return Object.keys(t).forEach(e=>{["linestart","lineend"].includes(e)||e in s.yShares||s.getYShare(e)}),s.yShares}_linePath(t,s,e,n,r,l,o,S){let[h,$,g]=[];const a=[],{dx_a:_,dx_l:O}=this.pathTurnParams(l),y=_+O/2,d=(s[1]-s[0])/o.len*2,x=((s[1]-s[0])/o.len-2*y)/2;return x+d<0&&console.warn("SVG width too small! ".concat(x+d)),t.forEach(p=>{const f=n[p],u=r[p];if(!$&&$!==0){[h,g,$]=[p,f,u],t.length===1?a.push("M ".concat(f,",").concat(u)):e[0].includes(p)?e[0].includes(t[1])?a.push("M ".concat(f,",").concat(u)):(n[t[1]]>0&&a.push("M ".concat(f,",").concat(u+S)),r[t[1]]<0&&a.push("M ".concat(f,",").concat(u-S))):a.push("M ".concat(f,",").concat(u));return}u>$?(a.push(u===0?"h ".concat(f-g-d*this.leftWideFactor(p)-x-y*2):"h ".concat(d*this.rightWideFactor(h)+x)),a.push(this.pathTurnSE(l))):u<$&&(a.push(u===0?"h ".concat(f-g-d*this.leftWideFactor(p)-x-y*2):"h ".concat(d*this.rightWideFactor(h)+x)),a.push(this.pathTurnNE(l))),a.push("H ".concat(f)),[h,g,$]=[p,f,u]}),a.join(" ").replace(/( H ([\d.]+))+/g," H $2")}}const H=(i,t)=>{i=i.filter(n=>!["linestart","lineend"].includes(n));let s=i.filter(n=>t[n]>=0),e=i.filter(n=>t[n]<=0);return s.length===1&&(e=i),s.filter(n=>e.indexOf(n)!==-1).length===0&&s.length&&(e[0]===i[0]?e.push(s[0]):s[0]===i[0]&&s[s.length-1]===i[i.length-1]&&e.length?(e=i,s=[]):e.unshift(s[s.length-1])),{main:s,pass:e}};export{W as S,E as a,F as b,c,H as d,L as g}; +import{S as P}from"./index-ChIkpPhE.js";const E=(i,t,s)=>Object.keys(i).reduce((e,n)=>({...e,[n]:i[n].children.reduce((r,l)=>({...r,[l]:1+t(i,l)+s(i,n)}),{})}),{}),c=(i,t,s)=>{if(i===t)return{len:0,nodes:[i]};const e=[],n=[];Object.keys(s[i]).forEach(l=>{const o=c(l,t,s);o.len<0||(e.push(s[i][l]+o.len),o.nodes.unshift(i),n.push(o.nodes))});const r=Math.max(...e);return{len:r,nodes:n[e.indexOf(r)]}},L=(i,t,s)=>{const e=c("linestart","lineend",t);if(e.nodes.includes(i))return c(e.nodes[1],i,t).len;{const n=s.filter($=>$.includes(i))[0];let r=i;for(;!e.nodes.includes(r);)r=n[n.indexOf(r)-1];let l=i;for(;!e.nodes.includes(l);)l=n[n.indexOf(l)+1];const o=r==="linestart",S=l==="lineend",h=[];return!o&&!S?(h[0]=c(e.nodes[1],r,t).len,h[1]=c(r,l,t).len,h[2]=c(r,i,t).len,h[3]=c(i,l,t).len):o?(h[0]=0,h[1]=c(e.nodes[1],l,t).len,h[2]=c(n[1],i,t).len,h[3]=c(i,l,t).len):(h[0]=c(e.nodes[1],r,t).len,h[1]=c(r,e.nodes.slice(-2)[0],t).len,h[2]=c(r,i,t).len,h[3]=c(i,n.slice(-2)[0],t).len),h[0]+h[2]*h[1]/(h[2]+h[3])}},m=(i,t,s)=>{for(const e of s){const n=e.indexOf(i),r=e.indexOf(t);if(r!==-1&&r{for(const e of s){const n=e.indexOf(i),r=e.indexOf(t);if(n!==-1&&n(console.log("computing stations' states"),[...new Set([].concat(...t))].reduce((e,n)=>({...e,[n]:n===i?0:(s===P.right?w(i,n,t):m(i,n,t))?1:-1}),{}));class W{constructor(t){this.yShares={},this.xShares={},this.namePoss={},this.stnList={},this.criticalPath={},this.leftWideFactor=s=>0,this.rightWideFactor=s=>0,this.pathTurnParams=s=>{const r=35-17.5*Math.sqrt(3),l=s-2*r,o=l*Math.sqrt(3);return{tr:35,dx_a:17.5,dy_a:r,dx_l:o,dy_l:l}},this.pathTurnSE=s=>{const{tr:e,dx_a:n,dy_a:r,dx_l:l,dy_l:o}=this.pathTurnParams(s);return"a ".concat(e,",").concat(e," 0 0,1 ").concat(n,",").concat(r," l ").concat(l,",").concat(o," a ").concat(e,",").concat(e," 0 0,0 ").concat(n,",").concat(r)},this.pathTurnNE=s=>{const{tr:e,dx_a:n,dy_a:r,dx_l:l,dy_l:o}=this.pathTurnParams(s);return"a ".concat(e,",").concat(e," 0 0,0 ").concat(n,",").concat(-r," l ").concat(l,",").concat(-o," a ").concat(e,",").concat(e," 0 0,1 ").concat(n,",").concat(-r)},this.stnList=t.stnList,this.criticalPath=t.criticalPath}getYShare(t){if(t in this.yShares)return this.yShares[t];if(["linestart","lineend"].includes(t)||this.stnList[t].parents.length>1||this.stnList[t].children.length>1)return this.yShares[t]=0,0;const s=this.stnList[t].parents[0];if(s)if(this.stnList[s].children.length===1){const e=this.getYShare(s);return this.yShares[t]=e,e}else{const e=this.stnList[s].children.indexOf(t)===0?1:-1;return this.yShares[t]=e,e}else return this.yShares[t]=0,0}static getYShares(t){console.log("computing y shares");const s=new this({stnList:t});return Object.keys(t).forEach(e=>{["linestart","lineend"].includes(e)||e in s.yShares||s.getYShare(e)}),s.yShares}_linePath(t,s,e,n,r,l,o,S){let[h,$,g]=[];const a=[],{dx_a:_,dx_l:O}=this.pathTurnParams(l),y=_+O/2,d=(s[1]-s[0])/o.len*2,x=((s[1]-s[0])/o.len-2*y)/2;return x+d<0&&console.warn("SVG width too small! ".concat(x+d)),t.forEach(p=>{const f=n[p],u=r[p];if(!$&&$!==0){[h,g,$]=[p,f,u],t.length===1?a.push("M ".concat(f,",").concat(u)):e[0].includes(p)?e[0].includes(t[1])?a.push("M ".concat(f,",").concat(u)):(n[t[1]]>0&&a.push("M ".concat(f,",").concat(u+S)),r[t[1]]<0&&a.push("M ".concat(f,",").concat(u-S))):a.push("M ".concat(f,",").concat(u));return}u>$?(a.push(u===0?"h ".concat(f-g-d*this.leftWideFactor(p)-x-y*2):"h ".concat(d*this.rightWideFactor(h)+x)),a.push(this.pathTurnSE(l))):u<$&&(a.push(u===0?"h ".concat(f-g-d*this.leftWideFactor(p)-x-y*2):"h ".concat(d*this.rightWideFactor(h)+x)),a.push(this.pathTurnNE(l))),a.push("H ".concat(f)),[h,g,$]=[p,f,u]}),a.join(" ").replace(/( H ([\d.]+))+/g," H $2")}}const H=(i,t)=>{i=i.filter(n=>!["linestart","lineend"].includes(n));let s=i.filter(n=>t[n]>=0),e=i.filter(n=>t[n]<=0);return s.length===1&&(e=i),s.filter(n=>e.indexOf(n)!==-1).length===0&&s.length&&(e[0]===i[0]?e.push(s[0]):s[0]===i[0]&&s[s.length-1]===i[i.length-1]&&e.length?(e=i,s=[]):e.unshift(s[s.length-1])),{main:s,pass:e}};export{W as S,E as a,F as b,c,H as d,L as g}; diff --git a/assets/station-ag-grid-legacy-CvU28TzN.js b/assets/station-ag-grid-legacy-Ck2FW_Yo.js similarity index 89% rename from assets/station-ag-grid-legacy-CvU28TzN.js rename to assets/station-ag-grid-legacy-Ck2FW_Yo.js index 1abca770..4461d494 100644 --- a/assets/station-ag-grid-legacy-CvU28TzN.js +++ b/assets/station-ag-grid-legacy-Ck2FW_Yo.js @@ -1 +1 @@ -System.register(["./chakra-legacy-Di7w1ZhB.js","./index-legacy-CCR6yT8f.js","./react-legacy-wexXEtdT.js","./app-router-legacy-ilk_ckFL.js","./ag-grid-react-legacy-D8O6kZY8.js","./ag-grid-community-legacy-CFNcmYm4.js","./param-selector-legacy-C3ApLQi1.js"],(function(e,a){"use strict";var n,l,r,t,s,i,o,d,c,u,g,h,m,p,f,x,S,b,j,R,y,N,w;return{setters:[e=>{n=e.ag,l=e.u,r=e.j,t=e.B,s=e.h,i=e.ao},e=>{o=e.d,d=e.u,c=e.e,u=e.aV,g=e.h,h=e.ab,m=e.aa,p=e.ac,f=e.aW},e=>{x=e.u,S=e.a},e=>{b=e.g,j=e.R},e=>{R=e.A},e=>{y=e.M,N=e.v,w=e.w},null],execute:function(){e("default",(function(e){const{branchIndex:n}=e,{t:l,i18n:t}=x(),s=o(),y=d((e=>e.app.sidePanelMode)),{style:N,theme:w,stn_list:C,line_num:M,coline:A}=d((e=>e.param)),G=d((e=>e.helper.branches)),[T,k]=S.useState([]);S.useEffect((()=>{const e=G[n].reduce(((e,a)=>["linestart","lineend"].includes(a)?e:[...e,{...C[a],id:a,rowSpan:s(b(a,n))}]),[]);k(e)}),[G,n,C]);const I=S.useMemo((()=>[{headerName:l("StationAgGrid.num"),field:"num",cellRenderer:({value:e})=>r.jsx(v,{lineNumber:M,stationNumber:e,lineColour:w[2]}),pinned:"left",minWidth:110,hide:![c.GZMTR].includes(N)},{headerName:l("Chinese name"),field:"localisedName",valueFormatter:({value:e,data:a})=>e.zh+(N===c.GZMTR&&a?.localisedSecondaryName?.zh?` (${a.localisedSecondaryName.zh})`:"")},{headerName:l("English name"),field:"localisedName",cellRenderer:({value:e,data:a})=>r.jsx(j,{text:e.en+(N===c.GZMTR&&a.localisedSecondaryName?.en?` (${a.localisedSecondaryName.en})`:"")}),minWidth:300},{headerName:l("StationAgGrid.interchange"),field:"transfer",cellRenderer:({value:e})=>r.jsx(i,{children:e.groups.map((e=>e.lines??[])).flat().map(((e,a)=>r.jsx(u,{name:e.name,bg:e.theme?.[2]??"#aaaaaa",fg:e.theme?.[3]??g.white,showShortName:!0},a)))})},{headerName:l("StationAgGrid.coline"),field:"rowSpan",rowSpan:({data:e})=>e?.rowSpan[0]??0,cellClassRules:{"rmg-ag-grid--spanned-cell":({value:e})=>e[0]>0},cellRenderer:({value:e})=>r.jsx(i,{children:A[e[1]]?.colors?.map(((e,a)=>r.jsx(u,{name:[e[4],e[5]],bg:e[2],fg:e[3],showShortName:!0},a)))}),hide:![c.SHMetro].includes(N)}]),[N,w.toString(),t.language,M]),z=S.useRef(null),W=S.useRef(!1);S.useEffect((()=>{W.current&&z.current&&1===z.current.api.getSelectedRows().length&&y!==h.STATION&&z.current.api.deselectAll()}),[W.current,y]);const[D]=S.useState({resizable:!0}),E=S.useCallback((()=>{W.current=!0}),[W.current]),H=S.useCallback((({api:e})=>{const a=e.getSelectedRows()?.map((e=>e.id));console.log("StationAgGrid.handleSelectionChanged():: Row selection changed",a),a?.length&&(s(m(h.STATION)),s(p(a[0])),s(f(void 0)))}),[]),Z=S.useCallback((({data:e})=>e.id),[]);return r.jsx(a,{children:r.jsx(R,{ref:z,rowData:T,defaultColDef:D,columnDefs:I,getRowId:Z,headerHeight:36,rowHeight:36,suppressCellFocus:!0,suppressMovableColumns:!0,suppressRowTransform:!0,rowSelection:"single",onSelectionChanged:H,onGridReady:E,debug:!1})})}));var a=function(e){var a=e.children,s=n().colorMode,i=l("RmgAgGrid");return r.jsx(t,{className:"light"===s?"ag-theme-alpine":"ag-theme-alpine-dark",sx:i,children:a})};function v(e){const{lineNumber:a,stationNumber:n,lineColour:l}=e,t={h:"24px",position:"relative",color:"black","&::before":{content:"''",w:"calc(100% + 2px)",h:"26px",position:"absolute",top:"-1px",left:"-1px",bg:"white",borderRadius:"13px"},span:{display:"flex",justifyContent:"center",alignItems:"center",padding:"3px",minWidth:"24px",border:"2px solid",borderColor:l,zIndex:1,"&:first-of-type":{borderRadius:"12px 0 0 12px"},"&:last-of-type":{borderRadius:"0 12px 12px 0",marginLeft:"-2px"}}};return r.jsxs(s,{sx:t,children:[r.jsx("span",{children:a}),r.jsx("span",{children:n})]})}y.registerModules([N]),w({theme:"legacy"})}}})); +System.register(["./chakra-legacy-Di7w1ZhB.js","./index-legacy-Dwehuq_g.js","./react-legacy-wexXEtdT.js","./app-router-legacy-CLPbLjMe.js","./ag-grid-react-legacy-D8O6kZY8.js","./ag-grid-community-legacy-CFNcmYm4.js","./param-selector-legacy-DN0AGkfT.js"],(function(e,a){"use strict";var n,l,r,t,s,i,o,d,c,u,g,h,m,p,f,x,S,b,j,R,y,N,w;return{setters:[e=>{n=e.ag,l=e.u,r=e.j,t=e.B,s=e.h,i=e.ao},e=>{o=e.d,d=e.u,c=e.e,u=e.aW,g=e.h,h=e.ac,m=e.ab,p=e.ad,f=e.aX},e=>{x=e.u,S=e.a},e=>{b=e.g,j=e.R},e=>{R=e.A},e=>{y=e.M,N=e.v,w=e.w},null],execute:function(){e("default",(function(e){const{branchIndex:n}=e,{t:l,i18n:t}=x(),s=o(),y=d((e=>e.app.sidePanelMode)),{style:N,theme:w,stn_list:C,line_num:M,coline:A}=d((e=>e.param)),G=d((e=>e.helper.branches)),[T,k]=S.useState([]);S.useEffect((()=>{const e=G[n].reduce(((e,a)=>["linestart","lineend"].includes(a)?e:[...e,{...C[a],id:a,rowSpan:s(b(a,n))}]),[]);k(e)}),[G,n,C]);const I=S.useMemo((()=>[{headerName:l("StationAgGrid.num"),field:"num",cellRenderer:({value:e})=>r.jsx(v,{lineNumber:M,stationNumber:e,lineColour:w[2]}),pinned:"left",minWidth:110,hide:![c.GZMTR].includes(N)},{headerName:l("Chinese name"),field:"localisedName",valueFormatter:({value:e,data:a})=>e.zh+(N===c.GZMTR&&a?.localisedSecondaryName?.zh?` (${a.localisedSecondaryName.zh})`:"")},{headerName:l("English name"),field:"localisedName",cellRenderer:({value:e,data:a})=>r.jsx(j,{text:e.en+(N===c.GZMTR&&a.localisedSecondaryName?.en?` (${a.localisedSecondaryName.en})`:"")}),minWidth:300},{headerName:l("StationAgGrid.interchange"),field:"transfer",cellRenderer:({value:e})=>r.jsx(i,{children:e.groups.map((e=>e.lines??[])).flat().map(((e,a)=>r.jsx(u,{name:e.name,bg:e.theme?.[2]??"#aaaaaa",fg:e.theme?.[3]??g.white,showShortName:!0},a)))})},{headerName:l("StationAgGrid.coline"),field:"rowSpan",rowSpan:({data:e})=>e?.rowSpan[0]??0,cellClassRules:{"rmg-ag-grid--spanned-cell":({value:e})=>e[0]>0},cellRenderer:({value:e})=>r.jsx(i,{children:A[e[1]]?.colors?.map(((e,a)=>r.jsx(u,{name:[e[4],e[5]],bg:e[2],fg:e[3],showShortName:!0},a)))}),hide:![c.SHMetro].includes(N)}]),[N,w.toString(),t.language,M]),z=S.useRef(null),W=S.useRef(!1);S.useEffect((()=>{W.current&&z.current&&1===z.current.api.getSelectedRows().length&&y!==h.STATION&&z.current.api.deselectAll()}),[W.current,y]);const[D]=S.useState({resizable:!0}),E=S.useCallback((()=>{W.current=!0}),[W.current]),H=S.useCallback((({api:e})=>{const a=e.getSelectedRows()?.map((e=>e.id));console.log("StationAgGrid.handleSelectionChanged():: Row selection changed",a),a?.length&&(s(m(h.STATION)),s(p(a[0])),s(f(void 0)))}),[]),Z=S.useCallback((({data:e})=>e.id),[]);return r.jsx(a,{children:r.jsx(R,{ref:z,rowData:T,defaultColDef:D,columnDefs:I,getRowId:Z,headerHeight:36,rowHeight:36,suppressCellFocus:!0,suppressMovableColumns:!0,suppressRowTransform:!0,rowSelection:"single",onSelectionChanged:H,onGridReady:E,debug:!1})})}));var a=function(e){var a=e.children,s=n().colorMode,i=l("RmgAgGrid");return r.jsx(t,{className:"light"===s?"ag-theme-alpine":"ag-theme-alpine-dark",sx:i,children:a})};function v(e){const{lineNumber:a,stationNumber:n,lineColour:l}=e,t={h:"24px",position:"relative",color:"black","&::before":{content:"''",w:"calc(100% + 2px)",h:"26px",position:"absolute",top:"-1px",left:"-1px",bg:"white",borderRadius:"13px"},span:{display:"flex",justifyContent:"center",alignItems:"center",padding:"3px",minWidth:"24px",border:"2px solid",borderColor:l,zIndex:1,"&:first-of-type":{borderRadius:"12px 0 0 12px"},"&:last-of-type":{borderRadius:"0 12px 12px 0",marginLeft:"-2px"}}};return r.jsxs(s,{sx:t,children:[r.jsx("span",{children:a}),r.jsx("span",{children:n})]})}y.registerModules([N]),w({theme:"legacy"})}}})); diff --git a/assets/station-ag-grid-sUlB4arS.js b/assets/station-ag-grid-x9FtULEU.js similarity index 86% rename from assets/station-ag-grid-sUlB4arS.js rename to assets/station-ag-grid-x9FtULEU.js index 52d4ac1b..03436cd2 100644 --- a/assets/station-ag-grid-sUlB4arS.js +++ b/assets/station-ag-grid-x9FtULEU.js @@ -1 +1 @@ -import{ag as E,u as F,j as o,B as H,h as L,ao as y}from"./chakra-CXrhlirJ.js";import{d as P,u as f,e as g,aV as M,h as W,ab as G,aa as B,ac as O,aW as Z}from"./index-BqOgmhc6.js";import{u as _,a}from"./react-Caefwd5V.js";import{g as $,R as V}from"./app-router-Dyjxcbfz.js";import{A as q}from"./ag-grid-react-A6BSx5P9.js";import{M as J,v as K,w as Q}from"./ag-grid-community-TcQKCcyM.js";import"./param-selector-B7mXBf6L.js";var U=function(d){var l=d.children,t=E().colorMode,c=F("RmgAgGrid");return o.jsx(H,{className:t==="light"?"ag-theme-alpine":"ag-theme-alpine-dark",sx:c,children:l})};function X(d){const{lineNumber:l,stationNumber:t,lineColour:c}=d,i={h:"24px",position:"relative",color:"black","&::before":{content:"''",w:"calc(100% + 2px)",h:"26px",position:"absolute",top:"-1px",left:"-1px",bg:"white",borderRadius:"13px"},span:{display:"flex",justifyContent:"center",alignItems:"center",padding:"3px",minWidth:"24px",border:"2px solid",borderColor:c,zIndex:1,"&:first-of-type":{borderRadius:"12px 0 0 12px"},"&:last-of-type":{borderRadius:"0 12px 12px 0",marginLeft:"-2px"}}};return o.jsxs(L,{sx:i,children:[o.jsx("span",{children:l}),o.jsx("span",{children:t})]})}J.registerModules([K]);Q({theme:"legacy"});function re(d){const{branchIndex:l}=d,{t,i18n:c}=_(),i=P(),x=f(e=>e.app.sidePanelMode),{style:u,theme:R,stn_list:S,line_num:b,coline:j}=f(e=>e.param),w=f(e=>e.helper.branches),[A,v]=a.useState([]);a.useEffect(()=>{const e=w[l].reduce((n,s)=>["linestart","lineend"].includes(s)?n:[...n,{...S[s],id:s,rowSpan:i($(s,l))}],[]);v(e)},[w,l,S]);const T=a.useMemo(()=>[{headerName:t("StationAgGrid.num"),field:"num",cellRenderer:({value:e})=>o.jsx(X,{lineNumber:b,stationNumber:e,lineColour:R[2]}),pinned:"left",minWidth:110,hide:![g.GZMTR].includes(u)},{headerName:t("Chinese name"),field:"localisedName",valueFormatter:({value:e,data:n})=>{var s;return e.zh+(u===g.GZMTR&&((s=n==null?void 0:n.localisedSecondaryName)!=null&&s.zh)?" (".concat(n.localisedSecondaryName.zh,")"):"")}},{headerName:t("English name"),field:"localisedName",cellRenderer:({value:e,data:n})=>{var s;return o.jsx(V,{text:e.en+(u===g.GZMTR&&((s=n.localisedSecondaryName)!=null&&s.en)?" (".concat(n.localisedSecondaryName.en,")"):"")})},minWidth:300},{headerName:t("StationAgGrid.interchange"),field:"transfer",cellRenderer:({value:e})=>o.jsx(y,{children:e.groups.map(n=>{var s;return(s=n.lines)!=null?s:[]}).flat().map((n,s)=>{var r,h,C,N;return o.jsx(M,{name:n.name,bg:(h=(r=n.theme)==null?void 0:r[2])!=null?h:"#aaaaaa",fg:(N=(C=n.theme)==null?void 0:C[3])!=null?N:W.white,showShortName:!0},s)})})},{headerName:t("StationAgGrid.coline"),field:"rowSpan",rowSpan:({data:e})=>{var n;return(n=e==null?void 0:e.rowSpan[0])!=null?n:0},cellClassRules:{"rmg-ag-grid--spanned-cell":({value:e})=>e[0]>0},cellRenderer:({value:e})=>{var n,s;return o.jsx(y,{children:(s=(n=j[e[1]])==null?void 0:n.colors)==null?void 0:s.map((r,h)=>o.jsx(M,{name:[r[4],r[5]],bg:r[2],fg:r[3],showShortName:!0},h))})},hide:![g.SHMetro].includes(u)}],[u,R.toString(),c.language,b]),m=a.useRef(null),p=a.useRef(!1);a.useEffect(()=>{p.current&&m.current&&m.current.api.getSelectedRows().length===1&&x!==G.STATION&&m.current.api.deselectAll()},[p.current,x]);const[k]=a.useState({resizable:!0}),I=a.useCallback(()=>{p.current=!0},[p.current]),z=a.useCallback(({api:e})=>{var s;const n=(s=e.getSelectedRows())==null?void 0:s.map(r=>r.id);console.log("StationAgGrid.handleSelectionChanged():: Row selection changed",n),n!=null&&n.length&&(i(B(G.STATION)),i(O(n[0])),i(Z(void 0)))},[]),D=a.useCallback(({data:e})=>e.id,[]);return o.jsx(U,{children:o.jsx(q,{ref:m,rowData:A,defaultColDef:k,columnDefs:T,getRowId:D,headerHeight:36,rowHeight:36,suppressCellFocus:!0,suppressMovableColumns:!0,suppressRowTransform:!0,rowSelection:"single",onSelectionChanged:z,onGridReady:I,debug:!1})})}export{re as default}; +import{ag as E,u as F,j as o,B as H,h as L,ao as y}from"./chakra-CXrhlirJ.js";import{d as P,u as f,e as g,aW as M,h as W,ac as G,ab as B,ad as O,aX as Z}from"./index-ChIkpPhE.js";import{u as _,a}from"./react-Caefwd5V.js";import{g as $,R as X}from"./app-router-ByZ3RjTs.js";import{A as q}from"./ag-grid-react-A6BSx5P9.js";import{M as J,v as K,w as Q}from"./ag-grid-community-TcQKCcyM.js";import"./param-selector-BJ-4ECJo.js";var U=function(d){var l=d.children,t=E().colorMode,c=F("RmgAgGrid");return o.jsx(H,{className:t==="light"?"ag-theme-alpine":"ag-theme-alpine-dark",sx:c,children:l})};function V(d){const{lineNumber:l,stationNumber:t,lineColour:c}=d,i={h:"24px",position:"relative",color:"black","&::before":{content:"''",w:"calc(100% + 2px)",h:"26px",position:"absolute",top:"-1px",left:"-1px",bg:"white",borderRadius:"13px"},span:{display:"flex",justifyContent:"center",alignItems:"center",padding:"3px",minWidth:"24px",border:"2px solid",borderColor:c,zIndex:1,"&:first-of-type":{borderRadius:"12px 0 0 12px"},"&:last-of-type":{borderRadius:"0 12px 12px 0",marginLeft:"-2px"}}};return o.jsxs(L,{sx:i,children:[o.jsx("span",{children:l}),o.jsx("span",{children:t})]})}J.registerModules([K]);Q({theme:"legacy"});function re(d){const{branchIndex:l}=d,{t,i18n:c}=_(),i=P(),x=f(e=>e.app.sidePanelMode),{style:u,theme:R,stn_list:S,line_num:b,coline:j}=f(e=>e.param),w=f(e=>e.helper.branches),[A,v]=a.useState([]);a.useEffect(()=>{const e=w[l].reduce((n,s)=>["linestart","lineend"].includes(s)?n:[...n,{...S[s],id:s,rowSpan:i($(s,l))}],[]);v(e)},[w,l,S]);const T=a.useMemo(()=>[{headerName:t("StationAgGrid.num"),field:"num",cellRenderer:({value:e})=>o.jsx(V,{lineNumber:b,stationNumber:e,lineColour:R[2]}),pinned:"left",minWidth:110,hide:![g.GZMTR].includes(u)},{headerName:t("Chinese name"),field:"localisedName",valueFormatter:({value:e,data:n})=>{var s;return e.zh+(u===g.GZMTR&&((s=n==null?void 0:n.localisedSecondaryName)!=null&&s.zh)?" (".concat(n.localisedSecondaryName.zh,")"):"")}},{headerName:t("English name"),field:"localisedName",cellRenderer:({value:e,data:n})=>{var s;return o.jsx(X,{text:e.en+(u===g.GZMTR&&((s=n.localisedSecondaryName)!=null&&s.en)?" (".concat(n.localisedSecondaryName.en,")"):"")})},minWidth:300},{headerName:t("StationAgGrid.interchange"),field:"transfer",cellRenderer:({value:e})=>o.jsx(y,{children:e.groups.map(n=>{var s;return(s=n.lines)!=null?s:[]}).flat().map((n,s)=>{var r,h,C,N;return o.jsx(M,{name:n.name,bg:(h=(r=n.theme)==null?void 0:r[2])!=null?h:"#aaaaaa",fg:(N=(C=n.theme)==null?void 0:C[3])!=null?N:W.white,showShortName:!0},s)})})},{headerName:t("StationAgGrid.coline"),field:"rowSpan",rowSpan:({data:e})=>{var n;return(n=e==null?void 0:e.rowSpan[0])!=null?n:0},cellClassRules:{"rmg-ag-grid--spanned-cell":({value:e})=>e[0]>0},cellRenderer:({value:e})=>{var n,s;return o.jsx(y,{children:(s=(n=j[e[1]])==null?void 0:n.colors)==null?void 0:s.map((r,h)=>o.jsx(M,{name:[r[4],r[5]],bg:r[2],fg:r[3],showShortName:!0},h))})},hide:![g.SHMetro].includes(u)}],[u,R.toString(),c.language,b]),m=a.useRef(null),p=a.useRef(!1);a.useEffect(()=>{p.current&&m.current&&m.current.api.getSelectedRows().length===1&&x!==G.STATION&&m.current.api.deselectAll()},[p.current,x]);const[k]=a.useState({resizable:!0}),I=a.useCallback(()=>{p.current=!0},[p.current]),z=a.useCallback(({api:e})=>{var s;const n=(s=e.getSelectedRows())==null?void 0:s.map(r=>r.id);console.log("StationAgGrid.handleSelectionChanged():: Row selection changed",n),n!=null&&n.length&&(i(B(G.STATION)),i(O(n[0])),i(Z(void 0)))},[]),D=a.useCallback(({data:e})=>e.id,[]);return o.jsx(U,{children:o.jsx(q,{ref:m,rowData:A,defaultColDef:k,columnDefs:T,getRowId:D,headerHeight:36,rowHeight:36,suppressCellFocus:!0,suppressMovableColumns:!0,suppressRowTransform:!0,rowSelection:"single",onSelectionChanged:z,onGridReady:I,debug:!1})})}export{re as default}; diff --git a/index.html b/index.html index f25c37eb..c3f5cc6c 100644 --- a/index.html +++ b/index.html @@ -34,7 +34,7 @@ Rail Map Generator - + @@ -48,6 +48,6 @@ - + diff --git a/info.json b/info.json index b81012e9..ab476059 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "component": "rmg", - "version": "5.19.0", + "version": "5.19.1", "environment": "PRD", "instance": "GitHub" }