diff --git a/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784132466083.woff2 b/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784132792831.woff2 similarity index 100% rename from docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784132466083.woff2 rename to docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784132792831.woff2 diff --git a/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784132466083.ttf b/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784132792831.ttf similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784132466083.ttf rename to docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784132792831.ttf diff --git a/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784132466083.woff b/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784132792831.woff similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784132466083.woff rename to docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784132792831.woff diff --git a/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784132466083.woff2 b/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784132792831.woff2 similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784132466083.woff2 rename to docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784132792831.woff2 diff --git a/docs/assets/FeatureInfoPanel-84703f43-balabala-1784132466083.css b/docs/assets/FeatureInfoPanel-84703f43-balabala-1784132792831.css similarity index 100% rename from docs/assets/FeatureInfoPanel-84703f43-balabala-1784132466083.css rename to docs/assets/FeatureInfoPanel-84703f43-balabala-1784132792831.css diff --git a/docs/assets/FeatureInfoPanel-3970d641-1784132466083.js b/docs/assets/FeatureInfoPanel-8ee1b2b1-1784132792831.js similarity index 99% rename from docs/assets/FeatureInfoPanel-3970d641-1784132466083.js rename to docs/assets/FeatureInfoPanel-8ee1b2b1-1784132792831.js index f5f02bc..dd8f35a 100644 --- a/docs/assets/FeatureInfoPanel-3970d641-1784132466083.js +++ b/docs/assets/FeatureInfoPanel-8ee1b2b1-1784132792831.js @@ -1,3 +1,3 @@ -var Qn=Object.defineProperty,et=Object.defineProperties;var at=Object.getOwnPropertyDescriptors;var bn=Object.getOwnPropertySymbols;var nt=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var xn=(f,G,v)=>G in f?Qn(f,G,{enumerable:!0,configurable:!0,writable:!0,value:v}):f[G]=v,Ge=(f,G)=>{for(var v in G||(G={}))nt.call(G,v)&&xn(f,v,G[v]);if(bn)for(var v of bn(G))tt.call(G,v)&&xn(f,v,G[v]);return f},Ke=(f,G)=>et(f,at(G));import{g as _,o as t,c as s,j as S,F as x,y as j,a as r,t as u,J as T,n as N,q as st,h as lt,w as La,C as ea,B as I,x as Ta,f as ee,s as kn,H as wn,e as xe,T as rt,d as ke}from"./index-1784132466083.js";import{K as ga,M as ot}from"./screen2Standard-483e466b-1784132466083.js";import{_ as ut}from"./index-fe70e5de-1784132466083.js";import{d as it,e as $n}from"./townshipBoundaries-822b7d9e-1784132466083.js";const ct={key:0,class:"business-stat-empty"},dt=["data-chart-tooltip"],_t={class:"business-stat-rank"},vt={class:"business-stat-main"},pt={class:"business-stat-name"},gt={class:"business-stat-bar"},yt={class:"business-stat-value"},ht={key:0},jn={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(f){const G=f,v=_(()=>{const m=G.rows.map(D=>Number(D.value)).filter(D=>!Number.isNaN(D));return Math.max(...m,1)});function We(m){const D=Number(m.value);return Number.isNaN(D)?36:Math.max(8,Math.round(D/v.value*100))}function we(m){const D=(m==null?void 0:m.value)===void 0||(m==null?void 0:m.value)===null||(m==null?void 0:m.value)===""?"--":m.value,h=(m==null?void 0:m.unit)||"",C=[`数值:${D}${h}`];return m!=null&&m.extra&&C.push(String(m.extra)),[(m==null?void 0:m.name)||"数据",...C].join(` +var Qn=Object.defineProperty,et=Object.defineProperties;var at=Object.getOwnPropertyDescriptors;var bn=Object.getOwnPropertySymbols;var nt=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var xn=(f,G,v)=>G in f?Qn(f,G,{enumerable:!0,configurable:!0,writable:!0,value:v}):f[G]=v,Ge=(f,G)=>{for(var v in G||(G={}))nt.call(G,v)&&xn(f,v,G[v]);if(bn)for(var v of bn(G))tt.call(G,v)&&xn(f,v,G[v]);return f},Ke=(f,G)=>et(f,at(G));import{g as _,o as t,c as s,j as S,F as x,y as j,a as r,t as u,J as T,n as N,q as st,h as lt,w as La,C as ea,B as I,x as Ta,f as ee,s as kn,H as wn,e as xe,T as rt,d as ke}from"./index-1784132792831.js";import{K as ga,M as ot}from"./screen2Standard-41868f75-1784132792831.js";import{_ as ut}from"./index-a4d3ff67-1784132792831.js";import{d as it,e as $n}from"./townshipBoundaries-822b7d9e-1784132792831.js";const ct={key:0,class:"business-stat-empty"},dt=["data-chart-tooltip"],_t={class:"business-stat-rank"},vt={class:"business-stat-main"},pt={class:"business-stat-name"},gt={class:"business-stat-bar"},yt={class:"business-stat-value"},ht={key:0},jn={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(f){const G=f,v=_(()=>{const m=G.rows.map(D=>Number(D.value)).filter(D=>!Number.isNaN(D));return Math.max(...m,1)});function We(m){const D=Number(m.value);return Number.isNaN(D)?36:Math.max(8,Math.round(D/v.value*100))}function we(m){const D=(m==null?void 0:m.value)===void 0||(m==null?void 0:m.value)===null||(m==null?void 0:m.value)===""?"--":m.value,h=(m==null?void 0:m.unit)||"",C=[`数值:${D}${h}`];return m!=null&&m.extra&&C.push(String(m.extra)),[(m==null?void 0:m.name)||"数据",...C].join(` `)}return(m,D)=>(t(),s("div",{class:N(["business-stat-list",{"is-compact":f.compact,"is-dense":f.rows.length>10}])},[f.rows.length?S("",!0):(t(),s("div",ct,"暂无业务统计数据")),(t(!0),s(x,null,j(f.rows,(h,C)=>(t(),s("div",{key:h.key||h.name,class:"business-stat-row","data-chart-tooltip":we(h)},[r("div",_t,u(C+1),1),r("div",vt,[r("div",pt,u(h.name),1),r("div",gt,[r("span",{style:T({width:`${We(h)}%`})},null,4)])]),r("div",yt,[r("strong",null,u(h.value),1),r("em",null,u(h.unit),1),h.extra?(t(),s("span",ht,u(h.extra),1)):S("",!0)])],8,dt))),128))],2))}};const ft={key:0,class:"business-panel-empty"},bt={key:2,class:"business-metrics"},xt=["data-chart-tooltip"],kt={key:3,class:"business-icon-metrics"},wt=["data-chart-tooltip"],$t={class:"business-icon-metric-copy"},jt={key:0},Mt={key:4,class:"business-spotlight"},Nt=["data-chart-tooltip"],St={class:"business-spotlight-side"},Ct=["data-chart-tooltip"],mt={key:0},Lt={key:1,class:"business-panel-empty"},Tt={key:0,class:"business-ring-visual"},Pt={class:"business-ring-chart",viewBox:"0 0 160 160",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},qt=["stroke","stroke-dasharray","stroke-dashoffset","data-chart-tooltip"],zt={class:"business-ring-inner"},At={key:1,class:"business-donut-visual"},Ft={class:"business-three-pie-center"},Vt={class:"business-donut-legend"},Bt=["data-chart-tooltip"],Rt={key:1,class:"business-panel-empty"},Yt={class:"business-rose-visual"},It={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Gt={class:"business-rose-guides"},Kt=["x1","y1","x2","y2","stroke"],Wt={class:"business-rose-segments"},Dt=["d","fill","stroke","data-chart-tooltip"],Ut={class:"business-rose-labels"},Ot=["x","y","text-anchor"],Ht={class:"business-donut-legend business-rose-legend"},Et=["data-chart-tooltip"],Xt={key:1,class:"business-panel-empty"},Zt={key:7,class:"business-structure"},Jt={class:"business-structure-overview"},Qt={class:"business-structure-band"},es=["title","data-chart-tooltip"],as={class:"business-structure-list"},ns=["data-chart-tooltip"],ts={key:1,class:"business-panel-empty"},ss={key:8,class:"business-capacity"},ls=["data-chart-tooltip"],rs={class:"business-capacity-band"},os=["title","data-chart-tooltip"],us={class:"business-capacity-list"},is=["data-chart-tooltip"],cs=["data-chart-tooltip"],ds={key:1,class:"business-panel-empty"},_s=["data-chart-tooltip"],vs={key:0,class:"business-bar-rank"},ps={class:"business-bar-name"},gs={class:"business-bar-track"},ys={key:0},hs={key:1},fs={key:0,class:"business-column-trend",viewBox:"0 0 320 90",preserveAspectRatio:"none","aria-hidden":"true"},bs=["points"],xs=["points"],ks=["cx","cy"],ws={key:1,class:"business-column-unit"},$s=["data-hover-value","title","data-chart-tooltip"],js={class:"business-column-value"},Ms={key:0},Ns={key:0,class:"business-project-search"},Ss=["placeholder"],Cs={class:"business-project-frame"},ms=["tabindex","onClick","onKeydown"],Ls=["title"],Ts={key:0},Ps={key:0},qs=["onClick","onKeydown"],zs={key:2},As=["aria-label"],Fs={key:4},Vs={key:0,class:"business-project-empty"},Bs={key:12,class:"business-project-ledger"},Rs={class:"business-project-search"},Ys=["placeholder"],Is={class:"business-project-ledger__summary"},Gs={class:"business-project-ledger__summary-main"},Ks={key:0,class:"business-project-ledger__pager"},Ws=["disabled"],Ds=["disabled"],Us=["tabindex","onClick","onKeydown"],Os={class:"business-project-ledger__info"},Hs=["title"],Es=["title"],Xs=["onClick","onKeydown"],Zs={key:1,class:"business-project-ledger__unlocated"},Js={key:0,class:"business-project-empty"},Qs={key:13,class:"business-spec-grid"},el={class:"business-spec-grid__index"},al=["title"],nl={class:"business-spec-grid__count"},tl={key:0},sl={class:"business-spec-grid__specs"},ll=["title"],rl={key:0},ol={key:0,class:"business-support-matrix__note"},ul={class:"business-support-matrix__head"},il={key:0},cl={class:"business-support-matrix__body"},dl=["title"],_l=["title"],vl={class:"business-table-head"},pl={class:"business-table-body"},gl=["data-chart-tooltip"],yl={class:"business-table-name"},hl={class:"business-table-value"},fl={key:0},bl={class:"business-stack-legend"},xl={key:0,class:"business-stack-unit"},kl={class:"business-stack-chart"},wl=["data-hover-value","title","data-chart-tooltip"],$l={key:0,class:"business-stack-total"},jl={key:0},Ml={class:"business-stack-track"},Nl=["data-chart-tooltip"],Sl={key:0,class:"business-column-unit business-peak-unit"},Cl=["data-hover-value","title","data-chart-tooltip"],ml={key:0},Ll={key:18,class:"business-line"},Tl={viewBox:"0 0 320 86",preserveAspectRatio:"none","aria-hidden":"true"},Pl=["points"],ql=["points"],zl=["cx","cy"],Al=["cx","cy","onMouseenter"],Fl=["onMouseenter"],Vl={key:0},Bl=["data-chart-tooltip"],Rl={class:"business-balance-gauge-head"},Yl={class:"business-balance-gauge-ring"},Il={class:"business-balance-gauge-value"},Gl={key:0},Kl={class:"business-balance-gauge-name"},Wl={key:0,class:"business-balance-gauge-extra"},Dl=["data-chart-tooltip"],Ul={class:"business-gauge-visual"},Ol={viewBox:"0 0 152 96",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Hl=["stroke-dasharray"],El={class:"business-gauge-value"},Xl={key:0},Zl={class:"business-gauge-name"},Jl={key:0,class:"business-gauge-extra"},Ql=["data-chart-tooltip"],er={key:0},ar={class:"business-split-band"},nr=["data-chart-tooltip"],tr={class:"business-split-list"},sr=["data-chart-tooltip"],Mn=3e3,kr={__name:"BusinessPanelRenderer",props:{panel:{type:Object,default:()=>({rows:[]})},compact:{type:Boolean,default:!1},columnLabelStandard:{type:Boolean,default:!1},visualVersion:{type:String,default:"legacy"}},emits:["row-select"],setup(f,{emit:G}){const v=f,We=G,we=[ga.accentCyan,ga.accentMint,ga.accentWater,ga.accentOrange,"#16b6e8","#a8fbff"],m=["#43d9ff","#46e6ad","#f0c35a","#6ba7ff","#a78bfa","#ff8c78"],D=_(()=>v.visualVersion==="v21"?m:we),h=_(()=>{var e;return((e=v.panel)==null?void 0:e.type)||"rank"}),C=_(()=>{var e;return(((e=v.panel)==null?void 0:e.rows)||[]).filter(a=>a==null?void 0:a.name)}),K=_(()=>C.value.map(e=>Ke(Ge({},e),{value:A(e)})).filter(e=>e.value>0)),ze=_(()=>C.value.map(e=>A(e)).filter(e=>e>0)),Pa=_(()=>Math.max(...ze.value,1)),J=_(()=>ze.value.reduce((e,a)=>e+a,0)),ce=_(()=>C.value.filter(e=>A(e)>0)),aa=_(()=>{var e;return["raceBar","raceBarNoWrap","raceBarRelaxed","degradation"].includes((e=v.panel)==null?void 0:e.variant)}),z=_(()=>h.value==="line"?C.value.filter(e=>(e==null?void 0:e.value)!==void 0&&(e==null?void 0:e.value)!==null&&(e==null?void 0:e.value)!==""):C.value.filter(e=>A(e)>0)),De=_(()=>z.value),Ae=_(()=>h.value!=="column"?"":Ga()),Ue=_(()=>h.value!=="peak"?"":Ga()),_e=_(()=>C.value.filter(e=>A(e)>0)),na=_(()=>{var e;return z.value.slice(0,((e=v.panel)==null?void 0:e.limit)||8)}),$e=_(()=>{var e;return C.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=v.panel)==null?void 0:e.limit)||6)}),Fe=_(()=>{var e;return C.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=v.panel)==null?void 0:e.limit)||3)}),Z=_(()=>{var e;return((e=v.panel)==null?void 0:e.segments)||[]}),ve=_(()=>C.value.filter(e=>{var a;return me(e)>0||((a=v.panel)==null?void 0:a.showZero)===!0})),ta=_(()=>Math.max(...ve.value.map(e=>me(e)),1)),H=ke(""),W=ke(null),ya=[{key:"name",label:"项目名称",field:"name",width:"45%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"13%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"20%",className:"business-project-col-category"},{key:"scale",label:"规模",field:"value",width:"22%",align:"right",strong:!0,unitField:"unit",className:"business-project-col-scale"}],je=_(()=>{var a;return(Array.isArray((a=v.panel)==null?void 0:a.columns)&&v.panel.columns.length?v.panel.columns:ya).map((l,p)=>({key:l.key||l.field||`column-${p}`,label:l.label||l.title||l.name||"",field:l.field||l.dataIndex||l.key,fields:l.fields||[],width:l.width,align:l.align,strong:!!l.strong,unit:l.unit,unitField:l.unitField,fallback:l.fallback,format:l.format,icon:l.icon,action:l.action,className:l.className}))}),sa=_(()=>{var e;return((e=v.panel)==null?void 0:e.rowSelectOnClick)!==!1}),la=_(()=>{var e;return((e=v.panel)==null?void 0:e.searchPlaceholder)||"搜索项目"}),Oe=_(()=>{var e;return((e=v.panel)==null?void 0:e.emptyText)||"无匹配项目"}),He=_(()=>{var a;const e=Array.isArray((a=v.panel)==null?void 0:a.searchKeys)?v.panel.searchKeys:[];return e.length?e:[...je.value.flatMap(l=>[l.field,...l.fields||[]]),"projectName","category","year","measure","townships","metric"].filter(Boolean)}),Ee=_(()=>{const e=Za(H.value);return e?C.value.filter(a=>Za(qn(a)).includes(e)):zn(C.value)}),ae=ke(1),Xe=_(()=>{var e;return Math.max(1,Number((e=v.panel)==null?void 0:e.pageSize)||15)}),ne=_(()=>Ee.value),pe=_(()=>Math.max(1,Math.ceil(ne.value.length/Xe.value))),Ze=_(()=>{const e=Math.min(ae.value,pe.value),a=Math.max(0,e-1)*Xe.value;return ne.value.slice(a,a+Xe.value)}),ha=_(()=>Math.max(1,Ze.value.length)),fa=_(()=>{var e;return((e=v.panel)==null?void 0:e.summaryValue)||U(C.value.length)}),Me=_(()=>{var e;return((e=v.panel)==null?void 0:e.summaryLabel)||"条建设台账"}),ba=_(()=>C.value.filter(e=>e==null?void 0:e.canLocate).length),ra=_(()=>C.value.filter(e=>e==null?void 0:e.name)),Ve=_(()=>C.value.filter(e=>e==null?void 0:e.name)),ge=_(()=>{var e;return!!((e=v.panel)!=null&&e.showTotal)}),ye=_(()=>C.value.find(e=>["forage-total","wetland-yield-total"].includes(e.key))||C.value[0]),Be=_(()=>C.value.filter(e=>["forage-edible","forage-unavailable","wetland-yield-edible","wetland-yield-unavailable"].includes(e.key))),he=_(()=>C.value.find(e=>["forage-top-town","wetland-yield-top-town"].includes(e.key))),Re=ke(0),te=ke(null),Ne=ke(null),Se=ke(!0),se=ke({visible:!1,x:0,y:0,title:"",lines:[]});let Ce=null,re=null;const o=_(()=>{var e,a;return`${((e=v.panel)==null?void 0:e.key)||((a=v.panel)==null?void 0:a.title)||"pie"}-${K.value.map(l=>`${l.name}:${l.value}`).join("|")}`}),i=_(()=>{const p=typeof window=="undefined"?1920:window.innerWidth,y=typeof window=="undefined"?1080:window.innerHeight,g=Math.min(p-190-8,se.value.x+14),M=Math.min(y-82-8,se.value.y+14);return{left:`${Math.max(8,g)}px`,top:`${Math.max(8,M)}px`}}),c=_(()=>{const e=w.value;return e?Re.value%e:0}),w=_(()=>{var e;return h.value==="structure"?_e.value.length:h.value==="donut"||h.value==="rose"?K.value.length:h.value==="bar"&&((e=v.panel)==null?void 0:e.variant)==="capacity"?Be.value.length:h.value==="bar"||h.value==="column"?z.value.length:h.value==="table"?De.value.length:h.value==="line"?z.value.length:h.value==="balanceGaugeGrid"?Fe.value.length:h.value==="gauge"?$e.value.length:h.value==="stackColumn"?ve.value.length:h.value==="split"?ce.value.length:0}),k=_(()=>K.value[c.value]||K.value[0]);_(()=>_e.value[c.value]||_e.value[0]);const $=_(()=>C.value[0]),b=_(()=>C.value.slice(0,4).map((e,a)=>Ke(Ge({},e),{icon:Hn(e,a)}))),Y=_(()=>_e.value.map((e,a)=>Ke(Ge({},e),{displayIndex:a}))),R=_(()=>{var e;return h.value!=="donut"?"standard":((e=v.panel)==null?void 0:e.variant)==="ring"?"ring":"three"}),Q=_(()=>{const e=K.value,a=e.length;if(!a)return[];const l=52,p=2*Math.PI*l,y=e.reduce((P,F)=>P+A(F),0)||1,g=a>1?Math.min(12,Math.max(7,p*.028)):0;let M=0;return e.map((P,F)=>{const X=A(P)/y*p,le=a>1?Math.max(5,X-g):p,Pe=M+(a>1?g/2:0);return M+=X,{key:P.key||P.name||F,index:F,item:P,color:B(F),dasharray:`${le.toFixed(2)} ${p.toFixed(2)}`,dashoffset:`${(-Pe).toFixed(2)}`}})}),oe=_(()=>{const e=K.value,a=e.length;if(!a)return[];const l=Math.max(...e.map(g=>A(g)),1),p=360/a,y=Math.min(8,p*.16);return e.map((g,M)=>{const P=A(g),F=M===c.value,L=36+Math.sqrt(P/l)*31+(F?5:0),X=17,le=-90+M*p+y/2,Pe=-90+(M+1)*p-y/2,qe=(le+Pe)/2,_a=Te(75,75,L+3,qe),va=Te(75,75,L+15,qe),pa=Te(75,75,L+20,qe);return{key:g.key||g.name||M,index:M,item:g,color:B(M),path:On(75,75,X,L,le,Pe),lineStart:_a,lineEnd:va,label:pa,anchor:Math.cos(qe*Math.PI/180)>=0?"start":"end"}})});st(()=>{Xn(),Ca()}),lt(()=>{Zn(),ma()}),La(()=>{var e;return[(e=v.panel)==null?void 0:e.key,C.value.length]},()=>{Re.value=0,te.value=null,H.value="",ae.value=1,W.value=null,ca(),Ca()}),La(H,()=>{ae.value=1}),La(Se,()=>{Ca()});const E=_(()=>{const e=z.value,a=320,l=66,p=10,y=e.length>1?a/(e.length-1):a,g=e.map(L=>A(L)).filter(L=>Number.isFinite(L)&&L>=0),M=g.length?Math.min(...g):0,P=g.length?Math.max(...g):1,F=Math.max(P-M,P*.08,1);return e.map((L,X)=>{const le=A(L);return{x:Math.round(X*y),y:Math.round(p+l-(le-M)/F*l),item:L}})}),qa=_(()=>E.value.map(e=>`${e.x},${e.y}`).join(" ")),Nn=_(()=>E.value.length?`0,86 ${qa.value} 320,86`:""),za=_(()=>{var e,a;return h.value==="column"&&(((e=v.panel)==null?void 0:e.lineOverlay)===!0||((a=v.panel)==null?void 0:a.variant)==="trendColumn")&&z.value.length>1}),xa=_(()=>{if(!za.value)return[];const e=z.value,a=e.map(L=>A(L)).filter(L=>Number.isFinite(L)&&L>=0),l=Math.max(...a,1),p=Math.min(...a,0),y=Math.max(l-p,l*.08,1),g=320,M=9,P=67,F=e.length>1?g/(e.length-1):0;return e.map((L,X)=>{const le=A(L);return{key:L.key||L.name||X,x:Number((X*F).toFixed(2)),y:Number((M+P-(le-p)/y*P).toFixed(2))}})}),Aa=_(()=>xa.value.map(e=>`${e.x},${e.y}`).join(" ")),Sn=_(()=>xa.value.length?`0,82 ${Aa.value} 320,82`:""),Fa=_(()=>z.value),Va=_(()=>({gridTemplateColumns:`repeat(${Math.max(Fa.value.length,1)}, minmax(0, 1fr))`})),Ba=_(()=>Number.isInteger(te.value)?E.value[te.value]:null),Ra=_(()=>E.value.length?Number.isInteger(te.value)?te.value:c.value:0),Ye=_(()=>Ba.value?Ba.value:E.value[Ra.value]||E.value[0]),Cn=_(()=>{const e=Ye.value;if(!e)return{};const a=e.x/320*100;return{left:`${Math.min(84,Math.max(16,a))}%`,top:"6px",transform:"translateX(-50%)"}});function A(e){const a=Number(e==null?void 0:e.value);if(!Number.isNaN(a)&&a>0)return a;const l=Number(e==null?void 0:e.percent);return Number.isNaN(l)?0:l}function me(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return Z.value.reduce((l,p)=>l+(Number(a[p.key])||0),0)}function Ya(e){const a=me(e),l=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return a?Z.value.map((p,y)=>{var P,F,L;const g=Number(l[p.key])||0,M=((P=v.panel)==null?void 0:P.variant)==="dual"||((F=v.panel)==null?void 0:F.variant)==="parkSlim"||((L=v.panel)==null?void 0:L.sharedScale)===!0?ta.value:a;return Ke(Ge({},p),{value:g,percent:Math.max(g>0?3:0,g/Math.max(M,1)*100),color:Ia(p,y)})}):[]}function Ia(e,a){var l;return(l=v.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:B(a)}function U(e){const a=Number(e);return Number.isNaN(a)?"--":Number.isInteger(a)?`${a}`:`${Number(a.toFixed(2))}`}function q(e){return(e==null?void 0:e.displayValue)!==void 0&&(e==null?void 0:e.displayValue)!==null&&(e==null?void 0:e.displayValue)!==""?e.displayValue:(e==null?void 0:e.value)===void 0||(e==null?void 0:e.value)===null||(e==null?void 0:e.value)===""?"--":U(e.value)}function fe(e){var p;const a=(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||"";if(!a)return"";const l=String((p=q(e))!=null?p:"");return l&&l.endsWith(String(a))?"":a}function Ga(){const e=[...new Set(z.value.map(a=>(a==null?void 0:a.displayUnit)||(a==null?void 0:a.unit)).filter(Boolean))];return e.length===1?e[0]:""}function Ka(e){const a=fe(e);return a?Ae.value===a?"":a:""}function Wa(e){const a=fe(e);return a?Ue.value===a?"":a:""}function be(e){return String(e||"").trim().replace(/\s+/g,"").replace(/[乡镇]$/u,"")}function mn(e){return Array.from(be(e)).slice(0,3).join("")}function oa(e){var a;return((a=v.panel)==null?void 0:a.labelMode)==="horizontal"?be(e):v.columnLabelStandard?mn(e):be(e)}function ua(e){const a=be(e==null?void 0:e.name)||"数据",l=fe(e);return`${a}:${q(e)}${l}`}function ka(e,a=[]){return[be(e)||"数据",...a.filter(l=>l!=null&&String(l).trim()!=="").map(l=>String(l))].join(` `)}function O(e,a=[]){if(!e)return"";const l=fe(e),p=q(e),y=[];return p!=="--"&&y.push(`数值:${p}${l}`),e.extra&&y.push(String(e.extra)),ka(e.name,[...y,...a])}function ia(e){return O(e,[`占比:${Sa(e)}`])}function Da(e){return O(e,[`占比:${Ma(e)}`])}function Ua(e){return O(e,[`占比:${Na(e)}`])}function Ln(e){var y;const a=Le(e),l=Ya(e).filter(g=>g.value>0).map(g=>`${g.name}:${g.valuePrefix||""}${U(g.value)}${a}`),p=((y=v.panel)==null?void 0:y.totalLabel)||"合计";return ka(e==null?void 0:e.name,[`${p}:${wa(e)}${U(me(e))}${a}`,...l])}function Tn(e,a){const l=Le(e);return ka(`${be(e==null?void 0:e.name)} ${(a==null?void 0:a.name)||""}`,[`数值:${(a==null?void 0:a.valuePrefix)||""}${U((a==null?void 0:a.value)||0)}${l}`])}function Oa(e){return O(e,[`状态:${ja(e)}`])}function Ha(e){const a=J.value?`${U(A(e)/J.value*100)}%`:"--";return O(e,[`占比:${a}`])}function Pn(e){var y,g,M;const a=(g=(y=e.target)==null?void 0:y.closest)==null?void 0:g.call(y,"[data-chart-tooltip], [data-hover-value]");if(!a||!((M=Ne.value)!=null&&M.contains(a))){ca();return}const l=a.getAttribute("data-chart-tooltip")||a.getAttribute("data-hover-value")||"",p=String(l).split(/\n+/).map(P=>P.trim()).filter(Boolean);if(!p.length){ca();return}se.value={visible:!0,x:e.clientX,y:e.clientY,title:p[0],lines:p.slice(1)}}function ca(){se.value.visible&&(se.value={visible:!1,x:0,y:0,title:"",lines:[]})}function Ea(e){const a=be(e==null?void 0:e.name)||"数据",l=Le(e);return`${a}:${wa(e)}${U(me(e))}${l}`}function Le(e){var a;return(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||((a=v.panel)==null?void 0:a.unit)||""}function wa(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return Z.value.some(l=>(l==null?void 0:l.valuePrefix)&&Number(a[l.key])>0)?"≥":""}function Xa(){var e,a,l;return((e=v.panel)==null?void 0:e.showValue)===!0||((a=v.panel)==null?void 0:a.variant)==="dual"||((l=v.panel)==null?void 0:l.variant)==="parkSlim"}function Za(e){return String(e||"").trim().toLowerCase()}function qn(e){const a=He.value.map(l=>Ja(e,{field:l})).filter(l=>l!=null);return[e==null?void 0:e.searchText,...a].filter(Boolean).join(" ")}function zn(e=[]){var l;const a=Number((l=v.panel)==null?void 0:l.maxRows);return!Number.isFinite(a)||a<=0?e:e.slice(0,a)}function Ja(e,a){const l=[a==null?void 0:a.field,...(a==null?void 0:a.fields)||[]].filter(Boolean);for(const p of l){const y=String(p).split(".").reduce((g,M)=>g==null?void 0:g[M],e);if(y!=null&&y!=="")return y}}function Je(e,a){const l=Ja(e,a);if((a==null?void 0:a.format)==="townVillage"){const p=String((e==null?void 0:e.town)||"").trim(),y=String((e==null?void 0:e.village)||"").trim();return[p,y].filter(Boolean).join(" / ")||(a==null?void 0:a.fallback)||"--"}return l==null||l===""?(a==null?void 0:a.fallback)||"--":(a==null?void 0:a.format)==="number"?U(l):(a==null?void 0:a.format)==="displayValue"?q({value:l}):String(l)}function Qa(e,a){return a!=null&&a.unitField&&(e!=null&&e[a.unitField])?e[a.unitField]:(a==null?void 0:a.unit)||""}function en(e){return{"business-project-name":(e==null?void 0:e.key)==="name","business-project-locate":(e==null?void 0:e.key)==="locate","is-right":(e==null?void 0:e.align)==="right","is-center":(e==null?void 0:e.align)==="center","is-strong":e==null?void 0:e.strong}}function $a(e,a={}){(a==null?void 0:a.action)==="locate"&&ue(e,!0)}function ue(e,a=!1){!a&&!sa.value||(e==null?void 0:e.canLocate)!==!1&&(W.value=(e==null?void 0:e.key)||(e==null?void 0:e.name)||null,We("row-select",e))}function an(e=0){const a=ae.value+Number(e||0);ae.value=Math.max(1,Math.min(pe.value,a))}function nn(e={}){return e.ledgerName||e.name||"--"}function tn(e={}){return e.ledgerLocation||[e.town,e.village].filter(Boolean).join(" · ")||"--"}function sn(e={},a={}){var p,y,g,M;const l=Number((M=(g=(p=e==null?void 0:e.segments)==null?void 0:p[a.key])!=null?g:(y=e==null?void 0:e.values)==null?void 0:y[a.key])!=null?M:0);return!Number.isFinite(l)||l<=0?"—":`${(a==null?void 0:a.valuePrefix)||""}${U(l)}`}function ln(e={}){const a=Z.value.map(y=>{var g,M,P,F;return Number((F=(P=(g=e==null?void 0:e.segments)==null?void 0:g[y.key])!=null?P:(M=e==null?void 0:e.values)==null?void 0:M[y.key])!=null?F:0)}),l=a.reduce((y,g)=>y+(Number.isFinite(g)&&g>0?g:0),0);return l?`${Z.value.some((y,g)=>(y==null?void 0:y.valuePrefix)&&a[g]>0)?"≥":""}${U(l)}`:"—"}function An(e){const a=e==null?void 0:e.currentTarget;if(!a||a.scrollWidth<=a.clientWidth)return;e.preventDefault();const l=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.deltaY;a.scrollLeft+=l}function Ie(e){var g,M;const a=Number(e==null?void 0:e.scaleValue);if(!(h.value==="column"&&((g=v.panel)==null?void 0:g.variant)==="plain")&&!Number.isNaN(a)&&a>0)return Math.max(8,Math.min(100,Math.round(a)));const p=A(e);if(!p)return 8;const y=h.value==="column"&&((M=v.panel)==null?void 0:M.variant)==="plain"?Math.max(...ze.value,p):Pa.value;return Math.max(8,Math.round(p/y*100))}function Fn(e,a){const l=Ie(e),p=Math.max(.04,Math.min(.1,l/360));return{"--heat-color":B(a),"--heat-bg":de(B(a),p)}}function ie(e){const a=Number(e==null?void 0:e.value);return Number.isFinite(a)?a:0}function Vn(){var l;const e=Number((l=v.panel)==null?void 0:l.max);if(Number.isFinite(e)&&e>0)return e;const a=Math.max(...$e.value.map(p=>ie(p)),100);return Math.max(a,100)}function rn(e){const a=ie(e),l=Vn();return!l||a<=0?0:Number(Math.min(100,a/l*100).toFixed(1))}function Bn(e){return Number((-180+rn(e)*1.8).toFixed(1))}function Rn(e,a){var l;return(l=v.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:B(a)}function Yn(e){const a=Math.max(0,ie(e)),l=Math.max(5,...Fe.value.map(p=>Math.max(0,ie(p))));return Math.max(6,Math.min(100,Number((a/l*100).toFixed(1))))}function In(e){const a=ie(e),l=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return a>20||/严重|重度|高超载/.test(l)?"#8bf7ff":a>10||/中度|预警/.test(l)?"#48cfff":a>5||/轻度/.test(l)?"#b9fbff":a<=0||/总体可控|合理|正常|达标|无超载/.test(l)?"#24f6c4":"#30dcff"}function Gn(e){return{"--balance-color":In(e),"--balance-progress":`${Yn(e)}%`}}function ja(e){if(e!=null&&e.status||e!=null&&e.level)return e.status||e.level;const a=ie(e);return a<0?"合理":a<=5?"基本实现草畜平衡":a<=10?"轻度超载":a>100?"高超载":"超载预警"}function de(e,a=.2){const l=String(e||"").replace("#","");if(l.length!==6)return`rgba(48, 220, 255, ${a})`;const p=parseInt(l,16),y=p>>16&255,g=p>>8&255,M=p&255;return`rgba(${y}, ${g}, ${M}, ${a})`}function Kn(e){const a=E.value.length;if(!a)return;const l=e.currentTarget.getBoundingClientRect(),p=l.width?(e.clientX-l.left)/l.width:0,y=Math.min(a-1,Math.max(0,Math.round(p*(a-1))));te.value=y}function Wn(e){const a=A(e);return!J.value||!a?0:Math.max(6,a/J.value*100)}function on(e){const a=A(e);return!J.value||!a?0:Math.max(2,a/J.value*100)}function Ma(e){if(!e)return"--";if(e.extra)return e.extra;const a=A(e);return!J.value||!a?"--":`${U(a/J.value*100)}%`}function un(){const e=A(ye.value);return e>0?e:Be.value.reduce((a,l)=>a+A(l),0)}function Dn(e){const a=un(),l=A(e);return!a||!l?0:Math.max(6,l/a*100)}function Na(e){const a=un(),l=A(e);return!a||!l?"--":`${U(l/a*100)}%`}function da(e,a){return["forage-edible","wetland-yield-edible"].includes(e==null?void 0:e.key)?"#24f6c4":["forage-unavailable","wetland-yield-unavailable"].includes(e==null?void 0:e.key)?"#8bf7ff":B(a)}function Sa(e){const a=A(e),l=Number(e==null?void 0:e.count)||J.value;return!a||!l?"0%":`${U(a/l*100)}%`}function Un(e){const a=A(e),l=Number(e==null?void 0:e.count)||J.value;return!a||!l?0:a/l*100}function Te(e,a,l,p){const y=p*Math.PI/180;return{x:Number((e+l*Math.cos(y)).toFixed(2)),y:Number((a+l*Math.sin(y)).toFixed(2))}}function On(e,a,l,p,y,g){const M=Te(e,a,p,y),P=Te(e,a,p,g),F=Te(e,a,l,g),L=Te(e,a,l,y),X=g-y>180?1:0;return[`M ${M.x} ${M.y}`,`A ${p} ${p} 0 ${X} 1 ${P.x} ${P.y}`,`L ${F.x} ${F.y}`,`A ${l} ${l} 0 ${X} 0 ${L.x} ${L.y}`,"Z"].join(" ")}function B(e){return D.value[e%D.value.length]}function Qe(e,a={}){var l;return(l=v.panel)!=null&&l.preserveColors&&(a!=null&&a.color||a!=null&&a.fillColor)?a.color||a.fillColor:B(e)}function Hn(e,a){if(e!=null&&e.icon)return String(e.icon).replace(/[^a-z0-9-]/gi,"");const l=String((e==null?void 0:e.name)||"");return l.includes("利用率")||l.includes("占比")?"rate":l.includes("重度")||l.includes("退化")?"risk":l.includes("可食")||l.includes("供给")?"leaf":l.includes("不可")?"stack":l.includes("产量")||l.includes("鲜草")?"yield":l.includes("乡镇")?"town":l.includes("面积")?"area":["yield","leaf","rate","risk"][a%4]}function En(){ma();const e=w.value;Se.value&&(e<2||(Ce=window.setInterval(()=>{Re.value=(Re.value+1)%e},Mn)))}function Ca(){Se.value?En():ma()}function ma(){Ce&&(window.clearInterval(Ce),Ce=null)}function Xn(){cn(),!(!Ne.value||typeof window.IntersectionObserver!="function")&&(re=new IntersectionObserver(e=>{const a=e[0];Se.value=!!(a!=null&&a.isIntersecting)&&dn()}),re.observe(Ne.value),window.requestAnimationFrame(cn))}function Zn(){var e;(e=re==null?void 0:re.disconnect)==null||e.call(re),re=null}function cn(){Se.value=dn()}function dn(){const e=Ne.value;return e?!!(e.offsetParent||e.getClientRects().length):!0}function _n(e,a={}){const l=Qe(e,a);return`linear-gradient(90deg, ${de(l,.08)} 0%, ${de(l,.58)} 48%, ${l} 82%, rgba(248,255,255,0.86) 100%)`}function Jn(e,a={}){var p,y;if(((p=v.panel)==null?void 0:p.variant)==="water"){const g=Qe(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.92) 0%, ${de(g,.88)} 18%, ${de(g,.68)} 58%, rgba(47, 151, 255, 0.18) 100%)`}if(((y=v.panel)==null?void 0:y.variant)==="plain"){const g=Qe(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${de(g,.84)} 18%, ${de(g,.64)} 74%, ${de(g,.1)} 100%)`}const l=Qe(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${l} 18%, ${de(l,.62)} 72%, rgba(50, 220, 255, 0.08) 100%)`}return(e,a)=>{var l,p,y,g,M,P,F,L,X,le,Pe,qe,_a,va,pa,vn,pn,gn,yn,hn,fn;return t(),s("div",{ref_key:"panelRef",ref:Ne,class:N(["business-panel",[`is-${h.value}`,`is-${R.value}`,`is-${f.visualVersion}`,{"is-compact":f.compact,"is-column-label-standard":f.columnLabelStandard,"is-column-label-horizontal":((l=v.panel)==null?void 0:l.labelMode)==="horizontal"}]]),onMousemove:Pn,onMouseleave:ca},[C.value.length?h.value==="rank"?(t(),ea(jn,{key:1,rows:C.value,compact:""},null,8,["rows"])):h.value==="metric"?(t(),s("div",bt,[(t(!0),s(x,null,j(C.value.slice(0,4),n=>(t(),s("div",{key:n.key||n.name,class:"business-metric-item","data-chart-tooltip":O(n)},[r("span",null,u(n.name),1),r("strong",null,u(q(n)),1),r("em",null,u(n.unit),1)],8,xt))),128))])):h.value==="iconMetric"?(t(),s("div",kt,[(t(!0),s(x,null,j(b.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-icon-metric-item",`is-tone-${d%D.value.length}`]),"data-chart-tooltip":O(n)},[r("i",{class:N(["business-icon-metric-mark",`is-${n.icon}`])},[...a[6]||(a[6]=[r("span",null,null,-1)])],2),r("div",$t,[r("span",null,u(n.name),1),r("strong",null,[I(u(q(n)),1),n.unit?(t(),s("em",jt,u(n.unit),1)):S("",!0)])])],10,wt))),128))])):h.value==="spotlight"?(t(),s("div",Mt,[$.value?(t(),s(x,{key:0},[r("div",{class:"business-spotlight-main","data-chart-tooltip":O($.value)},[r("span",null,u($.value.name),1),r("strong",null,[I(u(q($.value)),1),r("em",null,u($.value.unit),1)]),r("small",null,u($.value.extra||((p=f.panel)==null?void 0:p.note)||"核心业务指标"),1)],8,Nt),r("div",St,[(t(!0),s(x,null,j(C.value.slice(1,4),(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-spotlight-chip","data-chart-tooltip":O(n)},[r("i",{style:T({borderColor:B(d+1)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(q(n)),1),r("em",null,u(n.unit),1)]),n.extra?(t(),s("small",mt,u(n.extra),1)):S("",!0)],8,Ct))),128))])],64)):(t(),s("div",Lt,"暂无业务统计数据"))])):h.value==="donut"?(t(),s("div",{key:5,class:N(["business-donut",[`is-variant-${R.value}`,{"is-dense":K.value.length>5}]])},[K.value.length?(t(),s(x,{key:0},[R.value==="ring"?(t(),s("div",Tt,[(t(),s("svg",Pt,[a[7]||(a[7]=r("circle",{class:"business-ring-halo",cx:"80",cy:"80",r:"39"},null,-1)),a[8]||(a[8]=r("circle",{class:"business-ring-track",cx:"80",cy:"80",r:"52"},null,-1)),(t(!0),s(x,null,j(Q.value,n=>(t(),s("circle",{key:n.key,class:N(["business-ring-segment",{"is-active":n.index===c.value}]),cx:"80",cy:"80",r:"52",stroke:n.color,"stroke-dasharray":n.dasharray,"stroke-dashoffset":n.dashoffset,style:T({color:n.color}),"data-chart-tooltip":ia(n.item)},null,14,qt))),128))])),r("div",zt,[r("strong",null,u(Sa(k.value)),1),r("span",null,u(((y=k.value)==null?void 0:y.name)||"结构占比"),1)])])):(t(),s("div",At,[(t(),ea(ot,{key:o.value,data:K.value,delay:Mn,colors:D.value,opacity:.62,class:"business-three-pie"},{default:Ta(({data:n})=>[r("div",Ft,[r("strong",null,u(Sa(n)),1),r("span",null,u((n==null?void 0:n.name)||"结构占比"),1)])]),_:1},8,["data","colors"]))])),r("div",Vt,[(t(!0),s(x,null,j(K.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-donut-row",{"is-active":d===c.value}]),style:T({"--row-color":B(d),"--row-percent":`${Math.max(4,Un(n))}%`}),"data-chart-tooltip":ia(n)},[r("i",{style:T({borderColor:B(d)})},null,4),r("span",null,u(n.name),1),r("strong",null,u(q(n)),1),r("em",null,u(n.unit),1)],14,Bt))),128))])],64)):(t(),s("div",Rt,"暂无业务统计数据"))],2)):h.value==="rose"?(t(),s("div",{key:6,class:N(["business-rose",{"is-dense":K.value.length>5}])},[K.value.length?(t(),s(x,{key:0},[r("div",Yt,[(t(),s("svg",It,[r("g",Gt,[(t(!0),s(x,null,j(oe.value,n=>(t(),s("line",{key:`guide-${n.key}`,x1:n.lineStart.x,y1:n.lineStart.y,x2:n.lineEnd.x,y2:n.lineEnd.y,stroke:n.color},null,8,Kt))),128))]),r("g",Wt,[(t(!0),s(x,null,j(oe.value,n=>(t(),s("path",{key:n.key,class:N(["business-rose-segment",{"is-active":n.index===c.value}]),d:n.path,fill:n.color,stroke:n.color,"data-chart-tooltip":ia(n.item)},null,10,Dt))),128))]),a[9]||(a[9]=r("circle",{class:"business-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),a[10]||(a[10]=r("circle",{class:"business-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),r("g",Ut,[(t(!0),s(x,null,j(oe.value,n=>(t(),s("text",{key:`label-${n.key}`,x:n.label.x,y:n.label.y,"text-anchor":n.anchor},u(n.item.name),9,Ot))),128))])]))]),r("div",Ht,[(t(!0),s(x,null,j(K.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-donut-row business-rose-row",{"is-active":d===c.value}]),"data-chart-tooltip":ia(n)},[r("i",{style:T({borderColor:B(d),background:B(d),color:B(d)})},null,4),r("span",null,u(n.name),1),r("strong",null,u(q(n)),1),r("em",null,u(n.unit),1)],10,Et))),128))])],64)):(t(),s("div",Xt,"暂无业务统计数据"))],2)):h.value==="structure"?(t(),s("div",Zt,[_e.value.length?(t(),s(x,{key:0},[r("div",Jt,[r("div",Qt,[(t(!0),s(x,null,j(_e.value,(n,d)=>(t(),s("i",{key:n.key||n.name,class:N({"is-active":d===c.value}),style:T({width:`${on(n)}%`,background:B(d),color:B(d)}),title:`${n.name}:${q(n)}${n.unit||""} ${Ma(n)}`,"data-chart-tooltip":Da(n)},null,14,es))),128))])]),r("div",as,[(t(!0),s(x,null,j(Y.value,n=>(t(),s("div",{key:n.key||n.name,class:N(["business-structure-row",{"is-active":n.displayIndex===c.value}]),style:T({"--row-color":B(n.displayIndex),"--row-percent":`${Math.max(4,on(n))}%`}),"data-chart-tooltip":Da(n)},[r("i",{style:T({background:B(n.displayIndex),color:B(n.displayIndex)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(q(n)),1),r("em",null,u(n.unit),1)]),r("small",null,u(Ma(n)),1)],14,ns))),128))])],64)):(t(),s("div",ts,"暂无业务统计数据"))])):h.value==="bar"&&((g=f.panel)==null?void 0:g.variant)==="capacity"?(t(),s("div",ss,[ye.value?(t(),s(x,{key:0},[r("div",{class:"business-capacity-head","data-chart-tooltip":O(ye.value)},[r("span",null,u(ye.value.name),1),r("strong",null,[I(u(q(ye.value)),1),r("em",null,u(ye.value.unit),1)])],8,ls),r("div",rs,[(t(!0),s(x,null,j(Be.value,(n,d)=>(t(),s("i",{key:n.key||n.name,class:N({"is-active":d===c.value}),style:T({width:`${Dn(n)}%`,background:da(n,d),color:da(n,d)}),title:`${n.name}:${q(n)}${n.unit||""} ${Na(n)}`,"data-chart-tooltip":Ua(n)},null,14,os))),128))]),r("div",us,[(t(!0),s(x,null,j(Be.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-capacity-row",{"is-active":d===c.value}]),"data-chart-tooltip":Ua(n)},[r("i",{style:T({background:da(n,d),color:da(n,d)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(q(n)),1),r("em",null,u(n.unit),1)]),r("small",null,u(Na(n)),1)],10,is))),128))]),he.value?(t(),s("div",{key:0,class:"business-capacity-town","data-chart-tooltip":O(he.value)},[r("span",null,u(he.value.name),1),r("strong",null,[I(u(q(he.value)),1),r("em",null,u(he.value.unit),1)])],8,cs)):S("",!0)],64)):(t(),s("div",ds,"暂无业务统计数据"))])):h.value==="bar"?(t(),s("div",{key:9,class:N(["business-bars",{"is-dense":z.value.length>=5,"is-long":z.value.length>10,"is-scrollable":z.value.length>10,"is-single":((M=f.panel)==null?void 0:M.span)===1,"is-distribution":((P=f.panel)==null?void 0:P.variant)==="distribution","is-capacity":((F=f.panel)==null?void 0:F.variant)==="capacity","is-rank-bar":((L=f.panel)==null?void 0:L.variant)==="rankBar","is-park-bar":((X=f.panel)==null?void 0:X.variant)==="parkBar","is-race-bar":aa.value,"is-few-rows":aa.value&&z.value.length<=3,"is-degradation":((le=f.panel)==null?void 0:le.variant)==="degradation","is-race-nowrap":((Pe=f.panel)==null?void 0:Pe.variant)==="raceBarNoWrap","is-race-relaxed":((qe=f.panel)==null?void 0:qe.variant)==="raceBarRelaxed"}]),style:T({"--bar-row-count":Math.max(z.value.length,1)}),onWheel:a[0]||(a[0]=ee(()=>{},["stop"]))},[(t(!0),s(x,null,j(z.value,(n,d)=>{var V;return t(),s("div",{key:n.key||n.name,class:N(["business-bar-row",{"is-active":d===c.value}]),style:T({"--bar-color":Qe(d,n)}),"data-chart-tooltip":O(n)},[((V=f.panel)==null?void 0:V.variant)==="rankBar"?(t(),s("span",vs,u(d+1),1)):S("",!0),r("span",ps,u(n.name),1),r("div",gs,[r("i",{style:T({width:`${Ie(n)}%`,background:_n(d,n)})},null,4)]),r("strong",null,[I(u(q(n))+" ",1),n.unit?(t(),s("em",ys,u(n.unit),1)):S("",!0),n.extra?(t(),s("small",hs,u(n.extra),1)):S("",!0)])],14,_s)}),128))],38)):h.value==="column"?(t(),s("div",{key:10,class:N(["business-columns",[`is-variant-${((_a=f.panel)==null?void 0:_a.variant)||"solid"}`,{"is-dense":z.value.length>6,"is-scrollable":z.value.length>6&&((va=f.panel)==null?void 0:va.scrollable)!==!1,"has-unit-label":!!Ae.value}]]),onWheel:ee(An,["stop"])},[za.value?(t(),s("svg",fs,[r("polyline",{class:"business-column-trend-area",points:Sn.value},null,8,bs),r("polyline",{class:"business-column-trend-line",points:Aa.value},null,8,xs),(t(!0),s(x,null,j(xa.value,n=>(t(),s("circle",{key:n.key,class:"business-column-trend-dot",cx:n.x,cy:n.y,r:"2.3"},null,8,ks))),128))])):S("",!0),Ae.value?(t(),s("small",ws,"单位:"+u(Ae.value),1)):S("",!0),(t(!0),s(x,null,j(z.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-column-item",{"is-active":d===c.value,"is-zero":(n==null?void 0:n.zero)===!0||(n==null?void 0:n.isZero)===!0}]),"data-hover-value":ua(n),title:ua(n),"data-chart-tooltip":O(n)},[r("div",{class:"business-column-track",style:T({"--column-percent":`${Ie(n)}%`})},[r("i",{style:T({height:`${Ie(n)}%`,background:Jn(d,n),"--column-load-delay":`${d*.075}s`})},null,4),r("strong",js,[I(u(q(n)),1),Ka(n)?(t(),s("em",Ms,u(Ka(n)),1)):S("",!0)])],4),r("span",null,u(oa(n.name)),1)],10,$s))),128))],34)):h.value==="projectTable"?(t(),s("div",{key:11,class:N(["business-project-table",{"is-without-search":((pa=f.panel)==null?void 0:pa.showSearch)===!1,"is-fill-rows":((vn=f.panel)==null?void 0:vn.fillRows)===!0}])},[((pn=f.panel)==null?void 0:pn.showSearch)!==!1?(t(),s("div",Ns,[kn(r("input",{"onUpdate:modelValue":a[1]||(a[1]=n=>H.value=n),type:"search",placeholder:la.value},null,8,Ss),[[wn,H.value]])])):S("",!0),r("div",Cs,[r("table",null,[r("colgroup",null,[(t(!0),s(x,null,j(je.value,n=>(t(),s("col",{key:n.key,class:N(n.className),style:T({width:n.width||void 0})},null,6))),128))]),r("thead",null,[r("tr",null,[(t(!0),s(x,null,j(je.value,n=>(t(),s("th",{key:n.key,class:N(en(n))},u(n.label),3))),128))])]),r("tbody",null,[(t(!0),s(x,null,j(Ee.value,n=>(t(),s("tr",{key:n.key||n.name,class:N({"is-active":W.value===(n.key||n.name)}),tabindex:sa.value?0:-1,onClick:d=>ue(n),onKeydown:[xe(ee(d=>ue(n),["prevent"]),["enter"]),xe(ee(d=>ue(n),["prevent"]),["space"])]},[(t(!0),s(x,null,j(je.value,d=>(t(),s("td",{key:d.key,class:N(en(d)),title:Je(n,d)},[d.strong?(t(),s("strong",Ts,[I(u(Je(n,d)),1),Qa(n,d)?(t(),s("em",Ps,u(Qa(n,d)),1)):S("",!0)])):d.action==="locate"&&n.canLocate?(t(),s("button",{key:1,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:ee(V=>$a(n,d),["stop"]),onKeydown:[xe(ee(V=>$a(n,d),["stop","prevent"]),["enter"]),xe(ee(V=>$a(n,d),["stop","prevent"]),["space"])]},[...a[11]||(a[11]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,qs)):d.action==="locate"?(t(),s("span",zs,"--")):d.icon&&Je(n,d)!=="--"?(t(),s("span",{key:3,class:N(["business-project-cell-icon",`business-project-cell-icon--${d.icon}`]),role:"img","aria-label":Je(n,d)},null,10,As)):(t(),s("span",Fs,u(Je(n,d)),1))],10,Ls))),128))],42,ms))),128))])]),Ee.value.length?S("",!0):(t(),s("div",Vs,u(Oe.value),1))])],2)):h.value==="projectLedger"?(t(),s("div",Bs,[r("div",Rs,[kn(r("input",{"onUpdate:modelValue":a[2]||(a[2]=n=>H.value=n),type:"search",placeholder:la.value},null,8,Ys),[[wn,H.value]])]),r("div",Is,[r("div",Gs,[r("strong",null,u(fa.value),1),r("span",null,u(Me.value),1)]),r("small",null,"已定位 "+u(ba.value)+" 处",1),pe.value>1?(t(),s("div",Ks,[r("button",{type:"button",class:"business-project-ledger__page-button is-previous",title:"上一页","aria-label":"上一页",disabled:ae.value<=1,onClick:a[3]||(a[3]=n=>an(-1))},[...a[12]||(a[12]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Ws),r("span",null,u(ae.value)+" / "+u(pe.value),1),r("button",{type:"button",class:"business-project-ledger__page-button is-next",title:"下一页","aria-label":"下一页",disabled:ae.value>=pe.value,onClick:a[4]||(a[4]=n=>an(1))},[...a[13]||(a[13]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Ds)])):S("",!0)]),r("div",{class:"business-project-ledger__list business-project-frame",style:T({"--ledger-row-count":ha.value})},[(t(!0),s(x,null,j(Ze.value,n=>(t(),s("div",{key:n.key||n.name,class:N(["business-project-ledger__row",{"is-active":W.value===(n.key||n.name),"is-locatable":n.canLocate,"is-unlocated":n.canLocate===!1}]),tabindex:n.canLocate?0:-1,onClick:d=>ue(n),onKeydown:[xe(ee(d=>ue(n),["prevent"]),["enter"]),xe(ee(d=>ue(n),["prevent"]),["space"])]},[r("div",Os,[r("strong",{title:nn(n)},u(nn(n)),9,Hs),r("div",null,[r("span",{title:tn(n)},u(tn(n)),9,Es)])]),n.canLocate?(t(),s("button",{key:0,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:ee(d=>ue(n,!0),["stop"]),onKeydown:[xe(ee(d=>ue(n,!0),["stop","prevent"]),["enter"]),xe(ee(d=>ue(n,!0),["stop","prevent"]),["space"])]},[...a[14]||(a[14]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,Xs)):(t(),s("span",Zs,"暂无坐标"))],42,Us))),128)),Ze.value.length?S("",!0):(t(),s("div",Js,u(Oe.value),1))],4)])):h.value==="specGrid"?(t(),s("div",Qs,[(t(!0),s(x,null,j(ra.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-spec-grid__row"},[r("span",el,u(String(d+1).padStart(2,"0")),1),r("span",{class:"business-spec-grid__name",title:n.name},u(n.name),9,al),r("strong",nl,[I(u(q(n)),1),n.unit?(t(),s("em",tl,u(n.unit),1)):S("",!0)]),r("div",sl,[(t(!0),s(x,null,j(n.specs||[],V=>(t(),s("span",{key:V.label,title:`${V.label} ${U(V.value)}${V.unit||""}`},[r("small",null,u(V.label),1),r("strong",null,[I(u(U(V.value)),1),V.unit?(t(),s("em",rl,u(V.unit),1)):S("",!0)])],8,ll))),128))])]))),128))])):h.value==="supportMatrix"?(t(),s("div",{key:14,class:N(["business-support-matrix",{"is-with-total":ge.value}])},[(gn=f.panel)!=null&&gn.note?(t(),s("small",ol,u(f.panel.note),1)):S("",!0),r("div",ul,[a[15]||(a[15]=r("span",null,"乡镇",-1)),ge.value?(t(),s("span",il,u(((yn=f.panel)==null?void 0:yn.totalLabel)||"合计"),1)):S("",!0),(t(!0),s(x,null,j(Z.value,n=>(t(),s("span",{key:n.key},u(n.headerName||n.name),1))),128))]),r("div",cl,[(t(!0),s(x,null,j(Ve.value,n=>(t(),s("div",{key:n.key||n.name},[r("span",null,u(be(n.name)),1),ge.value?(t(),s("strong",{key:0,class:"business-support-matrix__total",title:ln(n)},u(ln(n)),9,dl)):S("",!0),(t(!0),s(x,null,j(Z.value,d=>(t(),s("strong",{key:d.key,title:sn(n,d)},u(sn(n,d)),9,_l))),128))]))),128))])],2)):h.value==="table"?(t(),s("div",{key:15,class:N(["business-table",{"is-dense":De.value.length>8}])},[r("div",vl,[(t(),s(x,null,j(2,n=>r("div",{key:n,class:"business-table-head-group"},[...a[16]||(a[16]=[r("span",null,"乡镇",-1),r("span",null,"亩产",-1)])])),64))]),r("div",pl,[(t(!0),s(x,null,j(De.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-table-row",{"is-active":d===c.value}]),"data-chart-tooltip":O(n)},[r("span",yl,u(n.name),1),r("div",hl,[r("strong",null,[I(u(q(n)),1),n.unit?(t(),s("em",fl,u(n.unit),1)):S("",!0)]),r("i",null,[r("b",{style:T({width:`${Ie(n)}%`,background:_n(d)})},null,4)])])],10,gl))),128))])],2)):h.value==="stackColumn"?(t(),s("div",{key:16,class:N(["business-stack-columns",[`is-variant-${((hn=f.panel)==null?void 0:hn.variant)||"standard"}`,{"is-dense":ve.value.length>6,"is-with-values":Xa()}]])},[r("div",bl,[(t(!0),s(x,null,j(Z.value,(n,d)=>(t(),s("span",{key:n.key||n.name},[r("i",{style:T({background:Ia(n,d)})},null,4),I(u(n.name),1)]))),128)),Le(ve.value[0])?(t(),s("small",xl,"单位:"+u(Le(ve.value[0])),1)):S("",!0)]),r("div",kl,[(t(!0),s(x,null,j(ve.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-stack-item",{"is-active":d===c.value}]),"data-hover-value":Ea(n),title:Ea(n),"data-chart-tooltip":Ln(n)},[Xa()&&me(n)>0?(t(),s("strong",$l,[I(u(wa(n))+u(U(me(n))),1),Le(n)?(t(),s("em",jl,u(Le(n)),1)):S("",!0)])):S("",!0),r("div",Ml,[(t(!0),s(x,null,j(Ya(n),(V,gr)=>(t(),s("i",{key:V.key||V.name,style:T({height:`${V.percent}%`,background:V.color,color:V.color}),"data-chart-tooltip":Tn(n,V)},null,12,Nl))),128))]),r("span",null,u(oa(n.name)),1)],10,wl))),128))])],2)):h.value==="peak"?(t(),s("div",{key:17,class:N(["business-peaks",{"is-dense":z.value.length>5}])},[Ue.value?(t(),s("small",Sl,"单位:"+u(Ue.value),1)):S("",!0),(t(!0),s(x,null,j(z.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-peak-item",style:T({"--peak-height":`${Ie(n)}%`,"--peak-color":B(d)}),"data-hover-value":ua(n),title:ua(n),"data-chart-tooltip":O(n)},[r("strong",null,[I(u(q(n)),1),Wa(n)?(t(),s("em",ml,u(Wa(n)),1)):S("",!0)]),a[17]||(a[17]=r("div",{class:"business-peak-stage"},[r("i")],-1)),r("span",null,u(oa(n.name)),1)],12,Cl))),128))],2)):h.value==="line"?(t(),s("div",Ll,[r("div",{class:"business-line-chart",onMousemove:Kn,onMouseleave:a[5]||(a[5]=n=>te.value=null)},[(t(),s("svg",Tl,[a[18]||(a[18]=r("path",{class:"business-line-grid",d:"M0 18H320M0 44H320M0 70H320"},null,-1)),r("polyline",{class:"business-line-area",points:Nn.value},null,8,Pl),r("polyline",{class:"business-line-stroke",points:qa.value},null,8,ql),(t(!0),s(x,null,j(E.value,(n,d)=>(t(),s("circle",{key:d,cx:n.x,cy:n.y,r:"3",class:N(["business-line-dot",{"is-active":d===Ra.value}])},null,10,zl))),128)),(t(!0),s(x,null,j(E.value,(n,d)=>(t(),s("circle",{key:`hit-${d}`,cx:n.x,cy:n.y,r:"13",class:"business-line-hit",onMouseenter:V=>te.value=d},null,40,Al))),128))])),r("div",{class:"business-line-hover-zones",style:T(Va.value)},[(t(!0),s(x,null,j(E.value,(n,d)=>(t(),s("i",{key:`zone-${d}`,onMouseenter:V=>te.value=d},null,40,Fl))),128))],4),Ye.value?(t(),s("div",{key:0,class:"business-line-tooltip",style:T(Cn.value)},[r("span",null,u(Ye.value.item.name),1),r("strong",null,[I(u(q(Ye.value.item)),1),Ye.value.item.unit?(t(),s("em",Vl,u(Ye.value.item.unit),1)):S("",!0)])],4)):S("",!0)],32),r("div",{class:"business-line-labels",style:T(Va.value)},[(t(!0),s(x,null,j(Fa.value,n=>(t(),s("span",{key:n.key||n.name},u(oa(n.name)),1))),128))],4)])):h.value==="balanceGaugeGrid"?(t(),s("div",{key:19,class:N(["business-balance-gauge-grid",{"is-single":Fe.value.length===1}])},[(t(!0),s(x,null,j(Fe.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-balance-gauge-card",{"is-active":d===c.value}]),style:T(Gn(n)),"data-chart-tooltip":Oa(n)},[r("div",Rl,[r("strong",null,u(ja(n)),1)]),r("div",Yl,[r("div",Il,[r("strong",null,u(q(n)),1),fe(n)?(t(),s("em",Gl,u(fe(n)),1)):S("",!0)])]),r("div",Kl,u(n.name),1),n.extra?(t(),s("div",Wl,u(n.extra),1)):S("",!0)],14,Bl))),128))],2)):h.value==="gauge"?(t(),s("div",{key:20,class:N(["business-gauges",{"is-dense":$e.value.length>3}])},[(t(!0),s(x,null,j($e.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:N(["business-gauge-item",{"is-active":d===c.value,"is-safe":ie(n)<=0,"is-low-rate":ie(n)>0&&ie(n)<5,"is-alert":ie(n)>100}]),style:T({"--gauge-color":Rn(n,d),"--needle-rotate":`${Bn(n)}deg`}),"data-chart-tooltip":Oa(n)},[r("div",Ul,[(t(),s("svg",Ol,[a[19]||(a[19]=r("path",{class:"business-gauge-track",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100"},null,-1)),r("path",{class:"business-gauge-progress",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100","stroke-dasharray":`${rn(n)} 100`},null,8,Hl),a[20]||(a[20]=r("path",{class:"business-gauge-glow",d:"M38 76 A38 38 0 0 1 114 76"},null,-1))])),a[21]||(a[21]=r("i",{class:"business-gauge-needle"},null,-1)),a[22]||(a[22]=r("b",{class:"business-gauge-pivot"},null,-1)),r("div",El,[r("strong",null,[I(u(q(n)),1),fe(n)?(t(),s("em",Xl,u(fe(n)),1)):S("",!0)]),r("small",null,u(ja(n)),1)])]),r("span",Zl,u(n.name),1),n.extra?(t(),s("small",Jl,u(n.extra),1)):S("",!0)],14,Dl))),128))],2)):h.value==="heat"?(t(),s("div",{key:21,class:N(["business-heat",{"is-dense":na.value.length>6}])},[(t(!0),s(x,null,j(na.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-heat-cell",style:T(Fn(n,d)),"data-chart-tooltip":O(n)},[a[23]||(a[23]=r("i",null,null,-1)),r("span",null,u(n.name),1),r("strong",null,[I(u(q(n)),1),n.unit?(t(),s("em",er,u(n.unit),1)):S("",!0)])],12,Ql))),128))],2)):h.value==="split"?(t(),s("div",{key:22,class:N(["business-split",{"is-dense":ce.value.length>8||((fn=f.panel)==null?void 0:fn.variant)==="compact"}])},[r("div",ar,[(t(!0),s(x,null,j(ce.value,(n,d)=>(t(),s("i",{key:n.key||n.name,style:T({width:`${Wn(n)}%`,background:B(d)}),"data-chart-tooltip":Ha(n)},null,12,nr))),128))]),r("div",tr,[(t(!0),s(x,null,j(ce.value,(n,d)=>(t(),s("div",{key:n.key||n.name,class:"business-split-row","data-chart-tooltip":Ha(n)},[r("span",null,[r("i",{style:T({background:B(d)})},null,4),I(u(n.name),1)]),r("strong",null,u(q(n))+u(n.unit),1)],8,sr))),128))])],2)):(t(),ea(jn,{key:23,rows:C.value,compact:""},null,8,["rows"])):(t(),s("div",ft,"暂无业务统计数据")),(t(),ea(rt,{to:"body"},[se.value.visible?(t(),s("div",{key:0,class:N(["business-chart-tooltip",`is-${f.visualVersion}`]),style:T(i.value)},[r("strong",null,u(se.value.title),1),(t(!0),s(x,null,j(se.value.lines,n=>(t(),s("span",{key:n},u(n),1))),128))],6)):S("",!0)]))],34)}}};const lr={class:"feature-info-actions"},rr={key:0},or=["aria-label","title"],ur={class:"feature-info"},ir={key:0,class:"feature-info-state",role:"status","aria-live":"polite"},cr={key:1,class:"feature-info-state",role:"status"},dr={key:2,class:"feature-info-state",role:"status"},_r={key:0,class:"feature-table"},vr=["title"],pr={key:1,class:"feature-info-state is-inline"},wr={__name:"FeatureInfoPanel",props:{feature:{type:Object,default:null},empty:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},height:{type:Number,default:380},width:{type:Number,default:430},title:{type:String,default:"详情"},compactGrassland:{type:Boolean,default:!1},closable:{type:Boolean,default:!1}},emits:["close"],setup(f,{emit:G}){const v=f,We=G,we=_(()=>v.title||"详情"),m=_(()=>we.value.replace(/详情$/,"")||"要素"),D=_(()=>`已选${m.value}`),h=_(()=>`关闭${we.value}`),C=[[["townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在乡镇"],[["village_name","cunName","cun_name","cun","c_name","cmc"],"所在村"],[["full_name"],"所在区域"],[["area_mu","acreage","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"图斑面积"]],K=[[["investigator"],"调查人"],[["survey_time","dc_rq","sjnf","delimitation_year"],"调查时间"],[["adjust_opinion_name"],"调整意见"],[["adjust_reason"],"调整原因"]],ze=[[["pastureName","pasture_name"],"所属牧场"],[["recognizedYakCount","recognized_yak_count","yakCount","yak_count"],"牦牛数量"],[["acreage","area_mu","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"草地面积"],[["grasslandAreaMu","grassland_area_mu"],"草地面积"],[["wetlandAreaMu","wetland_area_mu"],"湿地面积"],[["otherAreaMu","other_area_mu"],"其他面积"],[["resourceFreshMuYield","resource_fresh_mu_yield"],"综合鲜草亩产"],[["resourceDryMuYield","resource_dry_mu_yield"],"综合干草亩产"],[["grasslandVegetationCover","grassland_vegetation_cover"],"草地植被盖度"],[["fullName","full_name","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在区域"]],J={"artificial-grassland":[[["plot_name","name"],"图斑名称"],[["town","town_name"],"所在乡镇"],[["plot_category"],"图斑类别"],[["data_status"],"数据状态"],[["source_type"],"资料类型"],[["data_source"],"数据来源"]],woodland:[[["dlmc","layer_class_name"],"地类名称"],...C,[["qsdwmc"],"权属单位"],[["zldwmc"],"坐落单位"],[["lin_ban"],"林班"],[["xiao_ban"],"小班"],[["ld_qs","tdsyqs","qsxz","ownership_name","ownership"],"土地权属"],[["gjgyl_bhdj","bh_dj","protection_level_name","protection_level"],"保护等级"],[["sen_lin_lb","forest_type"],"森林类别"],[["lin_zhong","forest_category"],"林种"],[["zl_dj","quality_level_name","quality_level"],"质量等级"],[["you_shi_sz","tree_species","dominant_tree_species"],"优势树种"],[["qi_yuan","origin"],"起源"],[["ling_zu"],"龄组"],[["yu_bi_du"],"郁闭度"],[["pingjun_sg"],"平均树高"],[["mei_gq_zs"],"每公顷株数"],[["mei_gq_xj"],"每公顷蓄积"],[["huo_lm_xj"],"活立木蓄积"],[["sheng_wu_l"],"生物量"],[["tan_chu_l"],"碳储量"],[["stqwmc"],"生态区位"],[["po_du","slope"],"坡度"],[["po_wei"],"坡位"],[["tu_ceng_hd","soil_depth"],"土层厚度"],...K],grassland:[...ze,[["pastureName","pasture_name"],"所属牧场"],...C,[["land_class_name","landUseName","land_use_name","landUse","land_use"],"地类名称"],[["landType","land_type"],"资源大类"],[["resourceType","resource_type"],"资源类别"],[["grasslandCategory","grassland_category_name","grassland category","base_grass"],"草原类别"],[["basic_type_name"],"基本草原类型"],[["grassTypeName","grass_type_name","grassland_type_name","grassType","grass_type"],"草原类"],[["grassMinType","grass_min_type"],"草原型"],[["grasslandLevelName","grassland_level_name","grasslandLevel","grassland_level","level_name","level"],"草原级别"],[["degradationLevelName","degradation_level_name","degradationLevel","degradation_level"],"退化等级"],[["vegetationStructureName","vegetation_structure_name","vegetationStructure","vegetation_structure"],"植被结构"],[["vegetationCover","vegetation_cover"],"植被盖度"],[["lbmjbl"],"裸斑面积比例"],[["dominanceLevel","dominance_level"],"优势度"],[["dominantGrassSpecies","dominant_grass_species"],"优势草种"],[["functionalCategory","functional_category"],"功能类别"],[["xcYield","xc_yield"],"鲜草产量"],[["xcMuYield","xc_mu_yield","xbXcMuYield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["xbXcYield","xb_xc_yield"],"小班鲜草产量"],[["xbXcMuYield","xb_xc_mu_yield"],"小班鲜草亩产"],[["gcYield","gc_yield"],"干草产量"],[["gcMuYield","gc_mu_yield","xbGcMuYield","xb_gc_mu_yield"],"干草亩产"],[["xbGcYield","xb_gc_yield"],"小班干草产量"],[["xbGcMuYield","xb_gc_mu_yield"],"小班干草亩产"],[["elevation"],"海拔"],[["landformName","landform_name","landform"],"地貌"],[["slope"],"坡度"],[["aspect"],"坡向"],[["soilDepth","soil_depth","tu_ceng_hd"],"土层厚度"],[["soil texture"],"土壤质地"],[["sddl"],"三调地类"],[["hqlm"],"划区轮牧"],[["cdsyq"],"草地所有权"],[["cdsyq2"],"草地使用权"],[["cdjjq"],"草地经营权"],...K],wetland:[[["grass_min_type","grassland_category_name","grassland_type_name","land_class_name","land_use_name"],"湿地类型"],...C,[["grass_type_name","grass_type"],"湿地草地型"],[["grassland_level_name","grassland_level","level_name","level"],"湿地级别"],[["vegetation_structure_name","vegetation_structure"],"植被结构"],[["vegetation_cover"],"植被盖度"],[["dominant_grass_species"],"优势草种"],[["functional_category"],"功能类别"],[["xc_yield","xb_xc_yield"],"鲜草产量"],[["xc_mu_yield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["edible_xc_yield"],"可食鲜草产量"],[["edible_xc_mu_yield"],"可食鲜草亩产"],[["gc_yield","xb_gc_yield"],"干草产量"],[["elevation"],"海拔"],[["landform_name","landform"],"地貌"],[["soil_depth","tu_ceng_hd"],"土层厚度"],...K],ecological:[[["reserve_name","natural_protected_area_name"],"自然保护地名称"],[["redline_name"],"红线名称"],[["redline_code"],"红线编码"],[["functional_zone","natural_protected_area_zone"],"功能分区"],[["type"],"管控分区"],[["redline_type","ecosystem_service_type"],"红线类型"],[["management_control_requirement"],"管控要求"],[["reserve_level","natural_protected_area_level"],"保护地级别"],[["reserve_type","natural_protected_area_type"],"保护地类型"],[["area_source_mj","area_mu","area_m2"],"图斑面积"],[["original_area_m2"],"原始面积"],[["adjusted_area_m2"],"调整面积"],[["remarks"],"备注"],[["project_name","projectName","name"],"项目名称"],[["project_category","projectCategory"],"项目类型"],[["company"],"实施单位"],[["leader"],"负责人"],[["project_status","projectStatus","status"],"项目状态"],[["full_name","fullName"],"所在区域"],[["address"],"项目地址"],[["measure_type"],"措施类型"],[["feature_role"],"要素类型"],[["township"],"涉及乡镇"],[["year"],"建设年份"],[["progress_count","progressCount"],"进度记录"],[["totalAcreage"],"总面积"],[["cdAcreage"],"草地面积"],[["sdAcreage"],"湿地面积"],[["area_mu"],"治理面积"],[["length_meter"],"工程长度"],[["cdScl"],"草地生产力"],[["sdScl"],"湿地生产力"],[["geometry_type"],"几何类型"]]},ce={land_type:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},landType:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},vegetation_structure:{1:"草本型"},landform:{2:"平原",5:"中山",6:"高山"},land_use:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},reserve_level:{1:"国家级",2:"省级",3:"市级",4:"县级"},natural_protected_area_level:{1:"国家级",2:"省级",3:"市级",4:"县级"},reserve_type:{ZZ_NR:"自然保护区"},natural_protected_area_type:{ZZ_NR:"自然保护区"},sddl:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},ld_qs:{10:"集体林地",20:"国有或其他"},qsxz:{10:"集体林地",20:"国有或其他"},tdsyqs:{10:"集体林地",20:"国有或其他"},gjgyl_bhdj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},bh_dj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},zl_dj:{2:"二级质量",3:"三级质量",4:"四级质量",5:"五级质量"},po_wei:{1:"脊部",2:"上坡",3:"中坡",4:"下坡",5:"谷地",6:"平地"}},aa=new Set(["lin_zhong","sen_lin_lb","you_shi_sz","qi_yuan","ling_zu","po_xiang","tu_rang_lx","ownership","ownership_name","protection_level","forest_category","forest_type","quality_level","origin","tree_species","dominant_tree_species","base_grass","degradation_level","land_class","grass_type"]),z={xiang:"所在乡镇",xzqdm:"所在乡镇",xzqmc:"所在乡镇",town_code:"所在乡镇",area_code:"所在乡镇",areaCode:"所在乡镇",cun:"所在村",cmc:"所在村",c_name:"所在村",acreage:"图斑面积",mj:"图斑面积",xbmj:"小班面积",tbdlmj:"图斑地类面积",geomj:"图斑面积",tbmj:"图斑面积",shape_area:"图斑面积",area_mu:"图斑面积",pastureName:"所属牧场",pasture_name:"所属牧场",pastureAcreage:"牧场面积",pasture_acreage:"牧场面积",relationAcreage:"关系面积",relation_acreage:"关系面积",pastureOverlapAcreage:"重叠面积",pasture_overlap_acreage:"重叠面积",relatedPastureCount:"关联牧场数",related_pasture_count:"关联牧场数",relatedPastureNames:"关联牧场",related_pasture_names:"关联牧场",yakCount:"牦牛数量",yak_count:"牦牛数量",recognizedYakCount:"牦牛数量",recognized_yak_count:"牦牛数量",grasslandAreaMu:"草地面积",grassland_area_mu:"草地面积",wetlandAreaMu:"湿地面积",wetland_area_mu:"湿地面积",otherAreaMu:"其他面积",other_area_mu:"其他面积",grasslandAreaPercent:"草地占比",grassland_area_percent:"草地占比",wetlandAreaPercent:"湿地占比",wetland_area_percent:"湿地占比",otherAreaPercent:"其他占比",other_area_percent:"其他占比",resourceFreshMuYield:"综合鲜草亩产",resource_fresh_mu_yield:"综合鲜草亩产",resourceDryMuYield:"综合干草亩产",resource_dry_mu_yield:"综合干草亩产",resourceFreshYieldJin:"鲜草产量",resource_fresh_yield_jin:"鲜草产量",resourceDryYieldJin:"干草产量",resource_dry_yield_jin:"干草产量",grasslandVegetationCover:"草地植被盖度",grassland_vegetation_cover:"草地植被盖度",grass_min_type:"草原型",grassMinType:"草原型",grass_type:"草原类",grassType:"草原类",grass_type_name:"草原类",grassTypeName:"草原类",grassland_type_name:"草原类",patch_no:"图斑编号",land_number:"图斑编号",grassland_level:"草原级别",grasslandLevel:"草原级别",grassland_level_name:"草原级别",grasslandLevelName:"草原级别",level:"等级",level_name:"等级",land_class_name:"地类名称",land_use_name:"地类名称",landUseName:"地类名称",landUse:"地类名称",basic_type_name:"草原类型",grassland_category_name:"草原类别",grasslandCategory:"草原类别",degradation_level:"退化等级",degradationLevel:"退化等级",degradation_level_name:"退化等级",degradationLevelName:"退化等级",vegetation_structure:"植被结构",vegetationStructure:"植被结构",vegetation_structure_name:"植被结构",vegetationStructureName:"植被结构",xc_yield:"鲜草产量",xcYield:"鲜草产量",gc_yield:"干草产量",gcYield:"干草产量",xc_mu_yield:"鲜草亩产",xcMuYield:"鲜草亩产",gc_mu_yield:"干草亩产",gcMuYield:"干草亩产",mu_yield:"亩产",edible_xc_yield:"可食鲜草产量",edible_xc_mu_yield:"可食鲜草亩产",dlmc:"地类名称",qsdwmc:"权属单位",zldwmc:"坐落单位",lin_ban:"林班",xiao_ban:"小班",ld_qs:"土地权属",tdsyqs:"土地权属",qsxz:"土地权属",gjgyl_bhdj:"保护等级",bh_dj:"保护等级",sen_lin_lb:"森林类别",lin_zhong:"林种",zl_dj:"质量等级",you_shi_sz:"优势树种",qi_yuan:"起源",cdsyq:"草地所有权",cdsyq2:"草地使用权",cdjjq:"草地经营权",resource_type:"资源类型","grassland category":"草原类别",dominant_grass_species:"优势草种",functional_category:"功能类别",functionalCategory:"功能类别",vegetation_cover:"植被盖度",vegetationCover:"植被盖度",xb_xc_yield:"小班鲜草产量",xbXcYield:"小班鲜草产量",xb_gc_yield:"小班干草产量",xbGcYield:"小班干草产量",base_grass:"基本草原",hqlm:"划区轮牧",elevation:"海拔",soil_depth:"土层厚度","soil texture":"土壤质地",aspect:"坡向",slope:"坡度",landform:"地貌",landform_name:"地貌",sddl:"三调地类",dominance_level:"优势度",investigator:"调查人",survey_time:"调查时间",land_type:"土地类型",landType:"土地类型",status:"状态",type:"类型",reserve_name:"自然保护地名称",natural_protected_area_name:"自然保护地名称",reserve_level:"保护地级别",natural_protected_area_level:"保护地级别",reserve_type:"保护地类型",natural_protected_area_type:"保护地类型",reserve_zone:"自然保护地范围",functional_zone:"功能分区",natural_protected_area_zone:"功能分区",redline_name:"红线名称",redline_type:"红线类型",ecosystem_service_type:"生态系统服务类型",management_control_requirement:"管控要求",area_source_mj:"图斑面积",area_m2:"图斑面积",original_area_m2:"原始面积",adjusted_area_m2:"调整面积",remarks:"备注",province_name:"所在省",county_name:"所在县域",county_display_name:"所在县域",administrative_area_name:"行政区划",redline_code:"红线编码",source_identifier:"源标识码",prefecture_name:"所在州",xb_gc_mu_yield:"干草亩产",xbGcMuYield:"干草亩产",xb_xc_mu_yield:"鲜草亩产",xbXcMuYield:"鲜草亩产",grass_yield:"草地产量",grassYield:"草地产量",full_name:"所在区域",fullName:"所在区域",gyl_bhlx:"公益林保护类型",ling_zu:"龄组",yu_bi_du:"郁闭度",pingjun_xj:"平均胸径",mei_gq_zs:"每公顷株数",mei_gq_xj:"每公顷蓄积",stqwmc:"生态区位",lyfq:"林业分区",qykz:"区域控制",po_wei:"坡位",tu_rang_zd:"土壤质地",zzsxmc:"主导属性",lin_chang:"林场",di_mao:"地貌",jt_qw:"交通区位",zbfglx:"植被覆盖类型",disaster_c:"灾害类型",dispe:"病虫害",pingjun_sg:"平均树高",huo_lm_xj:"活立木蓄积",sheng_wu_l:"生物量",tan_chu_l:"碳储量",g_cheng_lb:"工程类别",shi_quan_d:"事权等级",sf_tbq:"是否特别区",td_th_lx:"土地退化类型",project_name:"项目名称",projectName:"项目名称",project_category:"项目类型",projectCategory:"项目类型",company:"实施单位",leader:"负责人",project_status:"项目状态",projectStatus:"项目状态",address:"项目地址",conclusion:"工程结论",progress_count:"进度记录",progressCount:"进度记录",measure_type:"措施类型",measureType:"措施类型",feature_role:"要素类型",featureRole:"要素类型",township:"涉及乡镇",year:"建设年份",length_meter:"工程长度",lengthMeter:"工程长度",geometry_type:"几何类型",geometryType:"几何类型",totalAcreage:"总面积",cdAcreage:"草地面积",sdAcreage:"湿地面积",cdScl:"草地生产力",sdScl:"湿地生产力"},De=new Set(Object.keys(z)),Ae=new Set(["pingjun_sg","pingjun_xj","mei_gq_zs","mei_gq_xj","huo_lm_xj","sheng_wu_l","tan_chu_l","yu_bi_du","grass_yield","xb_xc_yield","xb_xc_mu_yield","xc_mu_yield","xb_gc_yield","xb_gc_mu_yield","gc_mu_yield"]),Ue=new Set(["xb_xc_yield","xb_gc_yield","grass_yield","gc_yield","xc_yield","yield","output","remark1","remark2","remark3","remark4","remark5","remarks"]),_e=new Set(["province_name","county_name","county_display_name","administrative_area_name","prefecture_name","source_identifier"]),na=new Set(["full_name","fullName","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town","town_code","areaCode","area_code"]),$e=new Set(["areaWanMu","area_wan_mu","area_mu","area_m2","acreage","area_source_mj","original_area_m2","adjusted_area_m2","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","area_square_meter"]),Fe=[...it].sort((o,i)=>i.length-o.length),Z=_(()=>{var o;return((o=v.feature)==null?void 0:o.properties)||{}}),ve=_(()=>{var o,i,c;return((i=(o=v.feature)==null?void 0:o.feature)==null?void 0:i.geometry)||((c=v.feature)==null?void 0:c.geometry)||null}),ta=_(()=>{var c,w;const o=String(((w=(c=v.feature)==null?void 0:c.layer)==null?void 0:w.key)||"").toLowerCase(),i=Z.value;return o.includes("artificial-grassland")||String(i.stageKey||"")==="artificial-grassland"}),H=_(()=>{var w,k,$,b;const o=String(((k=(w=v.feature)==null?void 0:w.layer)==null?void 0:k.key)||"").toLowerCase(),i=String(((b=($=v.feature)==null?void 0:$.layer)==null?void 0:b.layerName)||"").toLowerCase(),c=`${o} ${i}`;return c.includes("ecological-redline")||c.includes("ecological_redline")||c.includes("natural-protected-area")||c.includes("natural_protected_area")}),W=_(()=>{var $,b,Y,R,Q;const o=String((($=v.feature)==null?void 0:$.id)||"").toLowerCase(),i=String(((Y=(b=v.feature)==null?void 0:b.layer)==null?void 0:Y.key)||"").toLowerCase(),c=String(((Q=(R=v.feature)==null?void 0:R.layer)==null?void 0:Q.layerName)||"").toLowerCase(),w=`${i} ${c}`,k=Z.value;return ta.value?"artificial-grassland":H.value||w.includes("national-park")||w.includes("restoration")||k.project_name||k.project_category||k.totalAcreage?"ecological":k.dlmc||o.includes("woodland")||o.includes("t_woodland")||w.includes("woodland")?"woodland":w.includes("wetland")||w.includes("shidi")||o.includes("shidi")||k.land_type==="shidi"||k.landType==="shidi"||k.land_type==="湿地"||k.landType==="湿地"||k.land_type===2||k.landType===2||k.landType==="2"?"wetland":w.includes("grassland")||w.includes("caodi")||k.grassland_category_name||k.grasslandCategory||k.basic_type_name||o.includes("caodi")||k.land_type==="caodi"||k.landType==="caodi"||k.land_type===1||k.landType===1||k.landType==="1"?"grassland":"woodland"}),ya=_(()=>{const o=[],i=new Set,w=(W.value==="grassland"||W.value==="wetland")&&v.compactGrassland;(w?ze:J[W.value]||J.woodland).forEach(([b,Y])=>{const R=Xe(Z.value,b,Oe(Y,b),i);R&&!o.some(Q=>Q.label===R.label)&&(o.push(R),i.add(R.sourceKey))});const $=ae(W.value);return!ta.value&&!o.some(b=>b.label===$||He(b.label))&&la(o,i,$,Ne(ve.value),"geometry-area"),w?o.slice(0,10):(Object.entries(Z.value).forEach(([b,Y])=>{if(i.has(b)||Re(b,Y))return;const R=pe(b,Y);if(!ne(R))return;const Q=Oe(z[b]||re(b));o.some(oe=>oe.value===R||oe.label===Q)||(o.push({key:`fallback-${b}`,sourceKey:b,label:Q,value:R}),i.add(b))}),o)}),je=_(()=>ya.value.map((o,i)=>Ke(Ge({},o),{displayOrder:sa(o,i)})).sort((o,i)=>o.displayOrder-i.displayOrder));function sa(o,i){const c=(o==null?void 0:o.label)||"",w=String((o==null?void 0:o.sourceKey)||"").toLowerCase();return["所属牧场","牦牛数量","草场面积","草地面积","湿地面积","林地面积","湿地面积","其他面积","综合鲜草亩产","综合干草亩产","草地植被盖度","所在区域","牧场面积","关系面积","重叠面积","关联牧场数","关联牧场"].includes(c)||["图斑名称","所在乡镇","所在村","所在区域","图斑编号","图斑类别","数据状态","资料类型","数据来源","图斑面积","小班面积","图斑地类面积","地类名称","湿地类型"].includes(c)?i:["基本草原类型","草原类型","草原类","草原型","湿地草地型","草原级别","湿地级别","退化等级","功能类别","保护等级","森林类别","林种","质量等级","优势树种","起源","龄组"].includes(c)?100+i:c.includes("产量")||c.includes("亩产")||c.includes("植被")||c.includes("优势草种")||c.includes("优势度")||c.includes("海拔")||c.includes("地貌")||c.includes("坡")||c.includes("土壤")||c.includes("郁闭度")||c.includes("树高")||c.includes("蓄积")||c.includes("生物量")||c.includes("碳储量")?200+i:c.includes("权属")||c.includes("所有权")||c.includes("使用权")||c.includes("经营权")||c.includes("调查")||c.includes("调整")||c.includes("划区")||c.includes("单位")||w.includes("owner")||w.includes("qsdw")||w.includes("zldw")?300+i:150+i}function la(o,i,c,w,k){!ne(w)||o.some($=>$.label===c||$.value===w)||(o.push({key:`static-${k}`,sourceKey:k,label:c,value:w}),i.add(k))}function Oe(o,i=[]){return W.value==="ecological"&&H.value&&Ee(o,i)?"图斑面积":He(o)?ae(W.value):o}function He(o){return["图斑面积","图斑地类面积","小班面积"].includes(String(o||""))}function Ee(o,i=[]){return String(o||"")==="治理面积"||He(o)?!0:i.some(c=>$e.has(c))}function ae(o){return o==="grassland"||o==="artificial-grassland"?"草地面积":o==="wetland"?"湿地面积":o==="woodland"?"林地面积":o==="ecological"&&H.value?"图斑面积":"面积"}function Xe(o,i,c,w=new Set){for(const k of i)if(!(w.has(k)||he(k))&&ne(o==null?void 0:o[k])){const $=pe(k,o[k]);if(!ne($))continue;return{key:`${c}-${k}`,sourceKey:k,label:c,value:$}}return null}function ne(o){return o!=null&&o!==""&&o!==" "&&o!=="null"&&o!=="undefined"}function pe(o,i){var k;if(!ne(i))return"";if((k=ce[o])!=null&&k[String(i)])return ce[o][String(i)];if(na.has(o))return Ze(o,i);if(["cun","village_code"].includes(o)&&Me(i))return"";if(["grassland_level","grasslandLevel","level"].includes(o)&&ba(i))return W.value==="wetland"?`${Number(i)}级湿地`:`${Number(i)}级草原`;if(aa.has(o)&&Me(i)||te(o,i))return"";if(ye(o))return Be(i);if(typeof i=="number"||/^-?\d+(\.\d+)?$/.test(String(i))){const $=Number(i);if($e.has(o)&&$===0||$===0&&Ae.has(o))return"";const b=Number.isInteger($)?`${$}`:`${Number($.toFixed(2))}`;if(o==="area_source_mj")return`${ge($*15)} 万亩`;if(W.value==="ecological"&&H.value&&["area_mu","acreage","mj"].includes(o))return`${ge($)} 万亩`;if(W.value==="ecological"&&H.value&&["area_m2","original_area_m2","adjusted_area_m2"].includes(o))return`${ge($/666.6667)} 万亩`;if(["xbmj","tbdlmj","geomj","area_square_meter"].includes(o))return`${Ve($/666.6667)} 亩`;if(["grasslandAreaMu","grassland_area_mu","wetlandAreaMu","wetland_area_mu","otherAreaMu","other_area_mu"].includes(o)){const R=(o.startsWith("grassland")?["grasslandAreaPercent","grassland_area_percent"]:o.startsWith("wetland")?["wetlandAreaPercent","wetland_area_percent"]:["otherAreaPercent","other_area_percent"]).map(oe=>{var E;return(E=Z.value)==null?void 0:E[oe]}).find(ne),Q=ne(R)&&Number.isFinite(Number(R))?`(${Number(Number(R).toFixed(2))}%)`:"";return`${b} 亩${Q}`}return["acreage","mj","area_mu","pastureAcreage","pasture_acreage","relationAcreage","relation_acreage","pastureOverlapAcreage","pasture_overlap_acreage"].includes(o)?`${Ve($)} 亩`:["recognizedYakCount","recognized_yak_count","yakCount","yak_count"].includes(o)?`${b} 头`:["relatedPastureCount","related_pasture_count"].includes(o)?`${b} 个`:["length_meter"].includes(o)?`${b} 米`:["totalAcreage","cdAcreage","sdAcreage"].includes(o)?`${b} 万亩`:["cdScl","sdScl"].includes(o)?`${b} 万吨`:["areaWanMu","area_wan_mu"].includes(o)?`${Ve($*1e4)} 亩`:["xc_yield","xcYield","xb_xc_yield","xbXcYield","gc_yield","gcYield","xb_gc_yield","xbGcYield","edible_xc_yield","grass_yield","grassYield","resourceFreshYieldJin","resource_fresh_yield_jin","resourceDryYieldJin","resource_dry_yield_jin"].includes(o)?`${b} 斤`:["mu_yield","xc_mu_yield","xcMuYield","gc_mu_yield","gcMuYield","xb_xc_mu_yield","xbXcMuYield","xb_gc_mu_yield","xbGcMuYield","edible_xc_mu_yield","resourceFreshMuYield","resource_fresh_mu_yield","resourceDryMuYield","resource_dry_mu_yield"].includes(o)?`${b} 斤/亩`:["vegetation_cover","vegetationCover","grasslandVegetationCover","grassland_vegetation_cover","lbmjbl","yu_bi_du"].includes(o)?`${b}%`:["elevation","tu_ceng_hd","soilDepth","soil_depth","pingjun_sg"].includes(o)?`${b} 米`:["po_du","slope"].includes(o)?`${b}°`:b}const w=String(i);return W.value==="wetland"&&["grassland_level","grasslandLevel","level"].includes(o)?w.replace(/草原/g,"湿地"):w}function Ze(o,i){if(["xiang","xzqdm","town_code","area_code","areaCode"].includes(o)){const c=fa(i);if(c)return c}return ha(i)}function ha(o){const i=String(o||"").trim();if(!i)return"";const c=i.replace(/\s+/g,""),w=$n(c);if(w)return w;const k=Fe.find(Y=>c.includes(Y));if(k)return c.slice(c.indexOf(k));const $=c.indexOf("红原县");if($>=0)return c.slice($+3)||c;const b=c.match(/县(.+)$/);return(b==null?void 0:b[1])||i}function fa(o){const i=String(o||"").trim();if(!i)return"";const c=i.replace(/\D/g,""),w=$n(c||i);return w||(Me(i)?"":i)}function Me(o){return/^[0-9A-Za-z_-]{1,12}$/.test(String(o).trim())}function ba(o){return/^-?\d+(\.\d+)?$/.test(String(o).trim())}function ra(o){return Number.isInteger(o)?`${o}`:`${Number(o.toFixed(2))}`}function Ve(o){const i=Number(o);return Number.isFinite(i)?i>0&&i<.01?"<0.01":ra(i):""}function ge(o){const i=Number(o)/1e4;return Number.isFinite(i)?i>0&&i<.01?"<0.01":ra(i):""}function ye(o){return["survey_time","dc_rq","create_time","update_time"].includes(String(o))}function Be(o){const i=String(o);return/^\d{4}-\d{2}-\d{2}/.test(i)?i.slice(0,10):i}function he(o){const i=String(o).toLowerCase();return["geom","wkt","geometry","the_geom","raw_properties"].includes(i)||["bsm","ysdm","gid","id","objectid","object_id","fid","key_uid"].includes(i)||["shape_leng","shape_length","length","perimeter"].includes(i)||["patch_no","land_number","plot_code","patch_code","tbybh"].includes(i)?!0:["xzqdm","area_code","town_code","redline_code","redline_type_code","reserve_code","source_code","administrative_area_code","county_code"].includes(i)?!1:["di_lei","qykz","stqw","lyfq","tbybh","patch_code"].includes(i)||i.endsWith("_code")||i.endsWith("dm")||i.endsWith("_id")||["create_by","create_time","update_by","update_time"].includes(i)?!0:i.includes("geom")||i.includes("boundary")||i.includes("wkb")}function Re(o,i){var w;if(he(o)||!ne(i))return!0;const c=String(o).toLowerCase();return!!(W.value==="ecological"&&H.value&&_e.has(c)||Ue.has(c)||c.includes("number")||c.includes("patch_no")||!De.has(o)||Me(i)&&!((w=ce[o])!=null&&w[String(i)])&&!["xiang","xzqdm","town_code","area_code","cun","land_type","grassland_level","level","gjgyl_bhdj","bh_dj","ld_qs","qsxz","tdsyqs","zl_dj"].includes(o))}function te(o,i){var c;return!Me(i)||(c=ce[o])!=null&&c[String(i)]?!1:["resource_type","grassland category","functional_category","aspect","soil_depth","soil texture","cdsyq","cdsyq2","cdjjq"].includes(o)}function Ne(o){const i=Se(o);if(!i)return"";const c=i/666.6667;return W.value==="ecological"&&H.value?`${ge(c)} 万亩`:`${Ve(c)} 亩`}function Se(o){return o!=null&&o.coordinates?o.type==="Polygon"?se(o.coordinates):o.type==="MultiPolygon"?o.coordinates.reduce((i,c)=>i+se(c),0):0:0}function se(o=[]){if(!o.length)return 0;const[i,...c]=o,w=Math.abs(Ce(i)),k=c.reduce(($,b)=>$+Math.abs(Ce(b)),0);return Math.max(0,w-k)}function Ce(o=[]){if(o.length<3)return 0;const i=o.reduce(($,b)=>$+Number((b==null?void 0:b[1])||0),0)/o.length,c=111320,w=c*Math.cos(i*Math.PI/180);let k=0;for(let $=0;$i.toUpperCase())}return(o,i)=>(t(),ea(ut,{class:"feature-info-card",title:we.value,width:f.width,height:f.height},{extra:Ta(()=>[r("div",lr,[f.feature&&!f.loading?(t(),s("span",rr,u(D.value),1)):S("",!0),f.closable?(t(),s("button",{key:1,type:"button","aria-label":h.value,title:h.value,onClick:i[0]||(i[0]=ee(c=>We("close"),["stop"]))}," 关闭 ",8,or)):S("",!0)])]),default:Ta(()=>[r("div",ur,[f.loading?(t(),s("div",ir,"正在查询"+u(m.value)+"信息",1)):f.empty?(t(),s("div",cr,"当前点击位置未查询到"+u(m.value),1)):f.feature?(t(),s(x,{key:3},[je.value.length?(t(),s("div",_r,[(t(!0),s(x,null,j(je.value,c=>(t(),s("div",{key:c.key,class:"feature-row"},[r("span",null,u(c.label),1),r("strong",{title:c.value},u(c.value),9,vr)]))),128))])):(t(),s("div",pr,"当前图斑暂无可展示的业务字段"))],64)):(t(),s("div",dr,"点击地图图层查看"+u(m.value)+"信息",1))])]),_:1},8,["title","width","height"]))}};export{wr as _,kr as a}; diff --git a/docs/assets/LayerPanel-7a55b2bc-balabala-1784132466083.css b/docs/assets/LayerPanel-7a55b2bc-balabala-1784132792831.css similarity index 100% rename from docs/assets/LayerPanel-7a55b2bc-balabala-1784132466083.css rename to docs/assets/LayerPanel-7a55b2bc-balabala-1784132792831.css diff --git a/docs/assets/LayerPanel-5b73c261-1784132466083.js b/docs/assets/LayerPanel-fa97fc8c-1784132792831.js similarity index 95% rename from docs/assets/LayerPanel-5b73c261-1784132466083.js rename to docs/assets/LayerPanel-fa97fc8c-1784132792831.js index aa49c25..d3a90df 100644 --- a/docs/assets/LayerPanel-5b73c261-1784132466083.js +++ b/docs/assets/LayerPanel-fa97fc8c-1784132792831.js @@ -1 +1 @@ -import{g as o,o as r,C as P,x as q,a as u,n as g,c as s,F as h,y as k,f as m,t as b,j as A,J as z}from"./index-1784132466083.js";import{_ as H}from"./index-fe70e5de-1784132466083.js";import{b as j}from"./townshipBoundaries-822b7d9e-1784132466083.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],I=["onClick"],J={key:0,class:"layer-panel-empty"},R={class:"layer-panel-legend"},$=["disabled","title","onClick"],G={class:"legend-name"},Q={key:0,class:"legend-check"},U={key:1,class:"layer-panel-empty is-legend"},Z={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:232},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(y,{emit:V}){const t=y,p=V,v=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),f=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),d=o(()=>Array.isArray(t.legends)?t.legends:[]),L=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),C=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),B=o(()=>d.value.filter(_).length>1),K=o(()=>d.value.length===1),x=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),O=o(()=>{const n=t.legendOnly?0:v.value.length+f.value.length,l=t.compact?d.value.length:Math.ceil(d.value.length/2),e=n?n*32:30,a=d.value.length?30+Math.max(28,l*28):28;return Math.max(172,Math.min(520,96+e+a))}),M=o(()=>t.compact?t.height||O.value:t.height?t.height:430);function T(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const i=new Set(L.value);i.has(l)?i.delete(l):i.add(l),p("update:modelValue",Array.from(i));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return L.value.includes(String(n))}function N(n,l){var a,i;(i=(a=n.currentTarget)==null?void 0:a.blur)==null||i.call(a);const e=new Set(C.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function w(n){return C.value.includes(String(n))}function F(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),c(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function _(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function c(n){return B.value&&_(n)}return(n,l)=>(r(),P(H,{title:x.value,width:y.width,height:M.value},{default:q(()=>[u("div",{class:g(["layer-panel",{"is-legend-only":y.legendOnly,"is-compact":y.compact}])},[y.legendOnly?A("",!0):(r(),s("div",D,[(r(!0),s(h,null,k(v.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=m(()=>{},["prevent"])),onClick:a=>T(a,e.key)},[u("span",null,b(e.name),1),l[3]||(l[3]=u("i",null,null,-1))],42,E))),128)),(r(!0),s(h,null,k(f.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":w(e.key),"is-checked":w(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=m(()=>{},["prevent"])),onClick:a=>N(a,e.key)},[u("span",null,b(e.name),1),l[4]||(l[4]=u("i",null,null,-1))],42,I))),128)),!v.value.length&&!f.value.length?(r(),s("div",J,"暂无图层配置")):A("",!0)])),u("div",R,[l[5]||(l[5]=u("div",{class:"layer-panel-section-title"},"图例",-1)),d.value.length?(r(),s("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":K.value}])},[(r(!0),s(h,null,k(d.value,e=>(r(),s("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":c(e)&&e.key===y.selectedLegendKey,"is-checkable":c(e),"is-disabled":!c(e)}]),type:"button",disabled:!c(e),title:e.name,onMousedown:l[2]||(l[2]=m(()=>{},["prevent"])),onClick:a=>F(a,e)},[u("span",{class:"legend-swatch",style:z({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),u("span",G,b(e.name),1),c(e)?(r(),s("i",Q)):A("",!0)],42,$))),128))],2)):(r(),s("div",U,"暂无图例"))])],2)]),_:1},8,["title","width","height"]))}};export{Z as _}; +import{g as o,o as r,C as P,x as q,a as u,n as g,c as s,F as h,y as k,f as m,t as b,j as A,J as z}from"./index-1784132792831.js";import{_ as H}from"./index-a4d3ff67-1784132792831.js";import{b as j}from"./townshipBoundaries-822b7d9e-1784132792831.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],I=["onClick"],J={key:0,class:"layer-panel-empty"},R={class:"layer-panel-legend"},$=["disabled","title","onClick"],G={class:"legend-name"},Q={key:0,class:"legend-check"},U={key:1,class:"layer-panel-empty is-legend"},Z={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:232},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(y,{emit:V}){const t=y,p=V,v=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),f=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),d=o(()=>Array.isArray(t.legends)?t.legends:[]),L=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),C=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),B=o(()=>d.value.filter(_).length>1),K=o(()=>d.value.length===1),x=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),O=o(()=>{const n=t.legendOnly?0:v.value.length+f.value.length,l=t.compact?d.value.length:Math.ceil(d.value.length/2),e=n?n*32:30,a=d.value.length?30+Math.max(28,l*28):28;return Math.max(172,Math.min(520,96+e+a))}),M=o(()=>t.compact?t.height||O.value:t.height?t.height:430);function T(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const i=new Set(L.value);i.has(l)?i.delete(l):i.add(l),p("update:modelValue",Array.from(i));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return L.value.includes(String(n))}function N(n,l){var a,i;(i=(a=n.currentTarget)==null?void 0:a.blur)==null||i.call(a);const e=new Set(C.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function w(n){return C.value.includes(String(n))}function F(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),c(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function _(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function c(n){return B.value&&_(n)}return(n,l)=>(r(),P(H,{title:x.value,width:y.width,height:M.value},{default:q(()=>[u("div",{class:g(["layer-panel",{"is-legend-only":y.legendOnly,"is-compact":y.compact}])},[y.legendOnly?A("",!0):(r(),s("div",D,[(r(!0),s(h,null,k(v.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=m(()=>{},["prevent"])),onClick:a=>T(a,e.key)},[u("span",null,b(e.name),1),l[3]||(l[3]=u("i",null,null,-1))],42,E))),128)),(r(!0),s(h,null,k(f.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":w(e.key),"is-checked":w(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=m(()=>{},["prevent"])),onClick:a=>N(a,e.key)},[u("span",null,b(e.name),1),l[4]||(l[4]=u("i",null,null,-1))],42,I))),128)),!v.value.length&&!f.value.length?(r(),s("div",J,"暂无图层配置")):A("",!0)])),u("div",R,[l[5]||(l[5]=u("div",{class:"layer-panel-section-title"},"图例",-1)),d.value.length?(r(),s("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":K.value}])},[(r(!0),s(h,null,k(d.value,e=>(r(),s("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":c(e)&&e.key===y.selectedLegendKey,"is-checkable":c(e),"is-disabled":!c(e)}]),type:"button",disabled:!c(e),title:e.name,onMousedown:l[2]||(l[2]=m(()=>{},["prevent"])),onClick:a=>F(a,e)},[u("span",{class:"legend-swatch",style:z({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),u("span",G,b(e.name),1),c(e)?(r(),s("i",Q)):A("",!0)],42,$))),128))],2)):(r(),s("div",U,"暂无图例"))])],2)]),_:1},8,["title","width","height"]))}};export{Z as _}; diff --git a/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784132466083.css b/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784132792831.css similarity index 100% rename from docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784132466083.css rename to docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784132792831.css diff --git a/docs/assets/SmartChartRenderer-0192bb51-1784132466083.js b/docs/assets/SmartChartRenderer-9bb0d9e2-1784132792831.js similarity index 97% rename from docs/assets/SmartChartRenderer-0192bb51-1784132466083.js rename to docs/assets/SmartChartRenderer-9bb0d9e2-1784132792831.js index 8aab073..b63adff 100644 --- a/docs/assets/SmartChartRenderer-0192bb51-1784132466083.js +++ b/docs/assets/SmartChartRenderer-9bb0d9e2-1784132792831.js @@ -1,2 +1,2 @@ -var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,L as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1784132466083.js";import{H as j}from"./index.esm.min-e7a22049-1784132466083.js";const G={class:"smart-chart-header"},I={key:0},M={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} +var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,L as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1784132792831.js";import{H as j}from"./index.esm.min-da05f706-1784132792831.js";const G={class:"smart-chart-header"},I={key:0},M={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} {d}%`},labelLine:{lineStyle:{color:"rgba(223, 250, 255, 0.42)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:t.map((e,n)=>({name:e.name,value:e.value,itemStyle:{color:l[n%l.length]}}))}]}}function $(t){return{animationDuration:760,grid:{left:52,right:28,top:30,bottom:48},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(255, 215, 108, 0.52)"}}}),xAxis:{type:"category",boundaryGap:!1,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"line",smooth:!0,symbol:"circle",symbolSize:8,lineStyle:{width:3,color:"#30dcff"},itemStyle:{color:"#ffd76c",borderColor:"#041522",borderWidth:2},areaStyle:{color:new b(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.24)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}])},label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)},data:t.map(e=>({value:e.value,name:e.name}))}]}}function c(){return{trigger:"item",backgroundColor:"rgba(2, 13, 22, 0.94)",borderColor:"rgba(48, 220, 255, 0.34)",borderWidth:1,textStyle:{color:"#fff",fontSize:12},formatter:t=>{const e=(i.chart.rows||[]).find(s=>s.name===t.name),n=(e==null?void 0:e.unit)||i.chart.unit||"",f=e!=null&&e.extra?`
${e.extra}`:"";return`${t.marker}${t.name}: ${u(t.value)}${n}${f}`}}}function v(t=[]){return t.length>6||t.some(e=>String(e.name||"").length>4)}function B(t){const e=String(t||"").trim();if(!e||/^(数据)?来源[::]/.test(e)||e.includes("固定展示"))return"";const n=new RegExp(A,"g"),f=new RegExp(`统计${A}`,"g"),s=e.replace(f,"统计数据").replace(n,"数据").replace(/来源[::]\s*openApi\s*统计库\s*[a-zA-Z0-9_./:-]*[,,、]?\s*/gi,"").replace(/openApi\s*统计库\s*/gi,"").replace(/\b[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+){2,}\b/g,"").replace(/[,,、]\s*[,,、]+/g,",").replace(/^[\s,,、::]+|[\s,,、]+$/g,"");return!s||/^来源[::]?$/.test(s)||O(s)?"":s}function O(t){return/^[a-zA-Z0-9_./:-]+$/.test(t)&&(t.includes("_")||t.length>24)}function u(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}return(t,e)=>(g(),h("div",{class:E(["smart-chart-card",{"is-horizontal":w.value}])},[y("div",G,[y("div",null,[y("strong",null,x(a.chart.title),1),S.value?(g(),h("span",I,x(S.value),1)):_("",!0)]),a.chart.unit?(g(),h("em",M,x(a.chart.unit),1)):_("",!0)]),V(q(j),{class:"smart-chart",option:k.value,autoresize:""},null,8,["option"])],2))}};export{Q as default}; diff --git a/docs/assets/TopicSwitcher-7006d8b4-1784132466083.js b/docs/assets/TopicSwitcher-2e4ca291-1784132792831.js similarity index 99% rename from docs/assets/TopicSwitcher-7006d8b4-1784132466083.js rename to docs/assets/TopicSwitcher-2e4ca291-1784132792831.js index fdda680..4ea7b3d 100644 --- a/docs/assets/TopicSwitcher-7006d8b4-1784132466083.js +++ b/docs/assets/TopicSwitcher-2e4ca291-1784132792831.js @@ -1,2 +1,2 @@ -var Fe=Object.defineProperty,Qe=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var oe=(d,t,e)=>t in d?Fe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ae=(d,t)=>{for(var e in t||(t={}))He.call(t,e)&&oe(d,e,t[e]);if(ie)for(var e of ie(t))ve.call(t,e)&&oe(d,e,t[e]);return d},ce=(d,t)=>Qe(d,Pe(t));import{ao as Ke,ap as ee,aq as Se,z as re,w as G,ar as Ae,as as v,p as Y,C as D,at as y,au as je,f as Ve,d as Ye,a as H,S as U,av as B,a6 as Be,a7 as X,V as O,aw as Xe,ax as Je,O as be,ay as ke,az as We,aA as qe,v as Le,aB as Me,R as te,m as ze,aC as W,L as _e,h as De,D as Ze,aD as $e,aE as et,b as tt,aF as st,H as nt,E as rt,a5 as At,G as q,_ as it,am as ot,Z as at,aG as ct,aH as ut,aI as lt,aJ as Ne,aK as ue,a8 as Ue,N as dt,aL as ft,aM as ht,aN as pt,u as gt,aO as mt,aP as Tt,aQ as Et,ad as Rt,aR as le,aS as de,aT as fe,aU as he,aa as wt,af as Ct,aV as xt,aW as It}from"./screen2Standard-483e466b-1784132466083.js";import{_ as pe,a as ge}from"./index-ed255eef-1784132466083.js";import{f as me}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{g as yt,o as K,c as j,a as S,F as St,y as Bt,n as Te,J as bt,t as Ee,j as kt}from"./index-1784132466083.js";class Lt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Is(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new re;let a=0;for(let c=0;c=2.0 are supported."));return}const a=new cs(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c=0&&o[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+u+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Dt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Nt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Xt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Jt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Wt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,u=s.byteStride,l=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,u,l,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*u);return n.decodeGltfBuffer(new Uint8Array(f),c,u,l,s.mode,s.filter),f})})}else return null}}class qt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),u=c.isGroup?c.children:[c],l=a[0].count,f=[];for(const h of u){const g=new X,p=new O,m=new Ue,E=new O(1,1,1),w=new Xe(h.geometry,h.material,l);for(let R=0;R0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const as=new X;class cs{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Dt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new ke(this.options.manager):this.textureLoader=new We(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Y(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return N(A,o,s),M(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r=2&&p.setY(k,b[x*i+1]),i>=3&&p.setZ(k,b[x*i+2]),i>=4&&p.setW(k,b[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const l=(A.samplers||{})[n.sampler]||{};return c.magFilter=xe[l.magFilter]||Le,c.minFilter=xe[l.minFilter]||Me,c.wrapS=Ie[l.wrapS]||te,c.wrapT=Ie[l.wrapT]||te,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(u){a=!0;const l=new Blob([u],{type:n.mimeType});return i=o.createObjectURL(l),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(u){return new Promise(function(l,f){let h=l;e.isImageBitmapLoader===!0&&(h=function(g){const p=new le(g);p.needsUpdate=!0,l(p)}),e.load(v.resolveURL(u,A.path),h,void 0,f)})}).then(function(u){return a===!0&&o.revokeObjectURL(i),u.userData.mimeType=n.mimeType||os(n.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),u});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new ze,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new _e,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return De}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const u=s[T.KHR_MATERIALS_UNLIT];n=u.getMaterialType(),a.push(u.extendParams(o,A,e))}else{const u=A.pbrMetallicRoughness||{};if(o.color=new D(1,1,1),o.opacity=1,Array.isArray(u.baseColorFactor)){const l=u.baseColorFactor;o.color.setRGB(l[0],l[1],l[2],y),o.opacity=l[3]}u.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",u.baseColorTexture,U)),o.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,o.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",u.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",u.metallicRoughnessTexture))),n=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=Ze);const c=A.alphaMode||_.OPAQUE;if(c===_.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===_.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new Be(1,1),A.normalTexture.scale!==void 0)){const u=A.normalTexture.scale;o.normalScale.set(u,u)}if(A.occlusionTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==H){const u=A.emissiveFactor;o.emissive=new D().setRGB(u[0],u[1],u[2],y)}return A.emissiveTexture!==void 0&&n!==H&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,U)),Promise.all(a).then(function(){const u=new n(o);return A.name&&(u.name=A.name),M(u,A),e.associations.set(u,{materials:t}),A.extensions&&N(s,u,A),u})}createUniqueName(t){const e=$e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return ye(i,o,e)})}const n=[];for(let o=0,i=t.length;o0&&As(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),M(m,A),p.extensions&&N(s,m,p),e.assignFinalMaterial(m),u.push(m)}for(let f=0,h=u.length;f1?c=new q:a.length===1?c=a[0]:c=new be,c!==a[0])for(let u=0,l=a.length;u{const u=new Map;for(const[l,f]of s.associations)(l instanceof W||l instanceof le)&&u.set(l,f);return c.traverse(l=>{const f=s.associations.get(l);f!=null&&u.set(l,f)}),u};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];L[A.path]===L.weights?t.traverse(function(l){l.morphTargetInfluences&&i.push(l.name?l.name:l.uuid)}):i.push(o);let a;switch(L[A.path]){case L.weights:a=fe;break;case L.rotation:a=he;break;case L.position:case L.scale:a=de;break;default:switch(r.itemSize){case 1:a=fe;break;case 2:case 3:default:a=de;break}break}const c=s.interpolation!==void 0?ss[s.interpolation]:Ne,u=this._getArrayFromAccessor(r);for(let l=0,f=i.length;l{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,U).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if($.has(t)){const i=$.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),$.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new re;t.index&&e.setIndex(new G(t.index.array,1));for(let r=0;r{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ds.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.lengthA._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t{const u=c.draco,l=new u.Decoder;try{const f=e(u,l,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{u.destroy(l)}});break}};function e(n,o,i,a){const c=a.attributeIDs,u=a.attributeTypes;let l,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)l=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,l);else if(h===n.POINT_CLOUD)l=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[u[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(l,w);else{if(w=o.GetAttributeId(l,n[c[p]]),w===-1)continue;E=o.GetAttribute(l,w)}const R=s(n,o,l,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,l)),n.destroy(l),g}function r(n,o,i){const c=i.num_faces()*3,u=c*4,l=n._malloc(u);o.GetTrianglesUInt32Array(i,u,l);const f=new Uint32Array(n.HEAPF32.buffer,l,c).slice();return n._free(l),{array:f,itemSize:1}}function s(n,o,i,a,c,u){const l=u.num_components(),h=i.num_points()*l,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,u,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:l}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let V={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const fs=Object.values(V);class ys extends Lt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new It;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:Mt,name:"GLTFLoader"},{loader:ke,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new ls;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&V[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof Ae&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[V[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(ce(ae({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:fs.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===V.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Ss="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",Bs=""+new URL("pathLine2-d4134d4b-balabala-1784132466083.png",import.meta.url).href,bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ls=""+new URL("ocean-bg-8c848b8f-balabala-1784132466083.png",import.meta.url).href,Ms=""+new URL("rotationBorder1-2ce8e0ef-balabala-1784132466083.png",import.meta.url).href,Ds=""+new URL("rotationBorder2-7496b968-balabala-1784132466083.png",import.meta.url).href,Ns=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1784132466083.png",import.meta.url).href,Us="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Gs=""+new URL("huiguang-3c5dfda5-balabala-1784132466083.png",import.meta.url).href,Fs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",Ps="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",Hs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",vs=""+new URL("focus_bg-b6803e2d-balabala-1784132466083.png",import.meta.url).href,Ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",js=""+new URL("focus_move_bg-cf41417a-balabala-1784132466083.png",import.meta.url).href;const hs={class:"topic-switcher"},ps={class:"topic-switcher-menu"},gs=["onPointerup","onClick"],ms={class:"topic-title"},Ts={key:0},Vs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>me}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=yt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:me});function o(i,a){var u,l;if((l=(u=i.currentTarget)==null?void 0:u.blur)==null||l.call(u),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(K(),j("div",hs,[a[0]||(a[0]=S("div",{class:"topic-switcher-arrow"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1)),S("div",ps,[(K(!0),j(St,null,Bt(n.value,c=>(K(),j("button",{key:c.key,class:Te(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:bt({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",onPointerup:u=>o(u,c.key),onClick:u=>o(u,c.key)},[S("span",{class:Te(["topic-name",{"has-sub-name":c.subName}])},[S("span",ms,Ee(c.name),1),c.subName?(K(),j("small",Ts,Ee(c.subName),1)):kt("",!0)],2)],46,gs))),128))]),a[1]||(a[1]=S("div",{class:"topic-switcher-arrow is-reverse"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1))]))}};export{Lt as E,ys as R,Vs as _,Ds as a,Ss as b,Ns as c,bs as d,Os as e,Fs as f,Us as g,Gs as h,Qs as i,Ps as j,Hs as k,vs as l,Ks as m,js as n,Ls as o,Bs as p,Is as q,Ms as r,ks as s}; +var Fe=Object.defineProperty,Qe=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var oe=(d,t,e)=>t in d?Fe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ae=(d,t)=>{for(var e in t||(t={}))He.call(t,e)&&oe(d,e,t[e]);if(ie)for(var e of ie(t))ve.call(t,e)&&oe(d,e,t[e]);return d},ce=(d,t)=>Qe(d,Pe(t));import{ao as Ke,ap as ee,aq as Se,z as re,w as G,ar as Ae,as as v,p as Y,C as D,at as y,au as je,f as Ve,d as Ye,a as H,S as U,av as B,a6 as Be,a7 as X,V as O,aw as Xe,ax as Je,O as be,ay as ke,az as We,aA as qe,v as Le,aB as Me,R as te,m as ze,aC as W,L as _e,h as De,D as Ze,aD as $e,aE as et,b as tt,aF as st,H as nt,E as rt,a5 as At,G as q,_ as it,am as ot,Z as at,aG as ct,aH as ut,aI as lt,aJ as Ne,aK as ue,a8 as Ue,N as dt,aL as ft,aM as ht,aN as pt,u as gt,aO as mt,aP as Tt,aQ as Et,ad as Rt,aR as le,aS as de,aT as fe,aU as he,aa as wt,af as Ct,aV as xt,aW as It}from"./screen2Standard-41868f75-1784132792831.js";import{_ as pe,a as ge}from"./index-a1b5e9c0-1784132792831.js";import{f as me}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{g as yt,o as K,c as j,a as S,F as St,y as Bt,n as Te,J as bt,t as Ee,j as kt}from"./index-1784132792831.js";class Lt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Is(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new re;let a=0;for(let c=0;c=2.0 are supported."));return}const a=new cs(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c=0&&o[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+u+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Dt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Nt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Xt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Jt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Wt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,u=s.byteStride,l=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,u,l,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*u);return n.decodeGltfBuffer(new Uint8Array(f),c,u,l,s.mode,s.filter),f})})}else return null}}class qt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),u=c.isGroup?c.children:[c],l=a[0].count,f=[];for(const h of u){const g=new X,p=new O,m=new Ue,E=new O(1,1,1),w=new Xe(h.geometry,h.material,l);for(let R=0;R0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const as=new X;class cs{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Dt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new ke(this.options.manager):this.textureLoader=new We(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Y(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return N(A,o,s),M(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r=2&&p.setY(k,b[x*i+1]),i>=3&&p.setZ(k,b[x*i+2]),i>=4&&p.setW(k,b[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const l=(A.samplers||{})[n.sampler]||{};return c.magFilter=xe[l.magFilter]||Le,c.minFilter=xe[l.minFilter]||Me,c.wrapS=Ie[l.wrapS]||te,c.wrapT=Ie[l.wrapT]||te,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(u){a=!0;const l=new Blob([u],{type:n.mimeType});return i=o.createObjectURL(l),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(u){return new Promise(function(l,f){let h=l;e.isImageBitmapLoader===!0&&(h=function(g){const p=new le(g);p.needsUpdate=!0,l(p)}),e.load(v.resolveURL(u,A.path),h,void 0,f)})}).then(function(u){return a===!0&&o.revokeObjectURL(i),u.userData.mimeType=n.mimeType||os(n.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),u});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new ze,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new _e,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return De}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const u=s[T.KHR_MATERIALS_UNLIT];n=u.getMaterialType(),a.push(u.extendParams(o,A,e))}else{const u=A.pbrMetallicRoughness||{};if(o.color=new D(1,1,1),o.opacity=1,Array.isArray(u.baseColorFactor)){const l=u.baseColorFactor;o.color.setRGB(l[0],l[1],l[2],y),o.opacity=l[3]}u.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",u.baseColorTexture,U)),o.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,o.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",u.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",u.metallicRoughnessTexture))),n=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=Ze);const c=A.alphaMode||_.OPAQUE;if(c===_.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===_.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new Be(1,1),A.normalTexture.scale!==void 0)){const u=A.normalTexture.scale;o.normalScale.set(u,u)}if(A.occlusionTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==H){const u=A.emissiveFactor;o.emissive=new D().setRGB(u[0],u[1],u[2],y)}return A.emissiveTexture!==void 0&&n!==H&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,U)),Promise.all(a).then(function(){const u=new n(o);return A.name&&(u.name=A.name),M(u,A),e.associations.set(u,{materials:t}),A.extensions&&N(s,u,A),u})}createUniqueName(t){const e=$e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return ye(i,o,e)})}const n=[];for(let o=0,i=t.length;o0&&As(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),M(m,A),p.extensions&&N(s,m,p),e.assignFinalMaterial(m),u.push(m)}for(let f=0,h=u.length;f1?c=new q:a.length===1?c=a[0]:c=new be,c!==a[0])for(let u=0,l=a.length;u{const u=new Map;for(const[l,f]of s.associations)(l instanceof W||l instanceof le)&&u.set(l,f);return c.traverse(l=>{const f=s.associations.get(l);f!=null&&u.set(l,f)}),u};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];L[A.path]===L.weights?t.traverse(function(l){l.morphTargetInfluences&&i.push(l.name?l.name:l.uuid)}):i.push(o);let a;switch(L[A.path]){case L.weights:a=fe;break;case L.rotation:a=he;break;case L.position:case L.scale:a=de;break;default:switch(r.itemSize){case 1:a=fe;break;case 2:case 3:default:a=de;break}break}const c=s.interpolation!==void 0?ss[s.interpolation]:Ne,u=this._getArrayFromAccessor(r);for(let l=0,f=i.length;l{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,U).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if($.has(t)){const i=$.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),$.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new re;t.index&&e.setIndex(new G(t.index.array,1));for(let r=0;r{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ds.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.lengthA._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t{const u=c.draco,l=new u.Decoder;try{const f=e(u,l,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{u.destroy(l)}});break}};function e(n,o,i,a){const c=a.attributeIDs,u=a.attributeTypes;let l,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)l=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,l);else if(h===n.POINT_CLOUD)l=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[u[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(l,w);else{if(w=o.GetAttributeId(l,n[c[p]]),w===-1)continue;E=o.GetAttribute(l,w)}const R=s(n,o,l,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,l)),n.destroy(l),g}function r(n,o,i){const c=i.num_faces()*3,u=c*4,l=n._malloc(u);o.GetTrianglesUInt32Array(i,u,l);const f=new Uint32Array(n.HEAPF32.buffer,l,c).slice();return n._free(l),{array:f,itemSize:1}}function s(n,o,i,a,c,u){const l=u.num_components(),h=i.num_points()*l,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,u,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:l}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let V={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const fs=Object.values(V);class ys extends Lt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new It;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:Mt,name:"GLTFLoader"},{loader:ke,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new ls;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&V[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof Ae&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[V[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(ce(ae({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:fs.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===V.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Ss="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",Bs=""+new URL("pathLine2-d4134d4b-balabala-1784132792831.png",import.meta.url).href,bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ls=""+new URL("ocean-bg-8c848b8f-balabala-1784132792831.png",import.meta.url).href,Ms=""+new URL("rotationBorder1-2ce8e0ef-balabala-1784132792831.png",import.meta.url).href,Ds=""+new URL("rotationBorder2-7496b968-balabala-1784132792831.png",import.meta.url).href,Ns=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1784132792831.png",import.meta.url).href,Us="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Gs=""+new URL("huiguang-3c5dfda5-balabala-1784132792831.png",import.meta.url).href,Fs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",Ps="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",Hs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",vs=""+new URL("focus_bg-b6803e2d-balabala-1784132792831.png",import.meta.url).href,Ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",js=""+new URL("focus_move_bg-cf41417a-balabala-1784132792831.png",import.meta.url).href;const hs={class:"topic-switcher"},ps={class:"topic-switcher-menu"},gs=["onPointerup","onClick"],ms={class:"topic-title"},Ts={key:0},Vs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>me}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=yt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:me});function o(i,a){var u,l;if((l=(u=i.currentTarget)==null?void 0:u.blur)==null||l.call(u),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(K(),j("div",hs,[a[0]||(a[0]=S("div",{class:"topic-switcher-arrow"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1)),S("div",ps,[(K(!0),j(St,null,Bt(n.value,c=>(K(),j("button",{key:c.key,class:Te(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:bt({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",onPointerup:u=>o(u,c.key),onClick:u=>o(u,c.key)},[S("span",{class:Te(["topic-name",{"has-sub-name":c.subName}])},[S("span",ms,Ee(c.name),1),c.subName?(K(),j("small",Ts,Ee(c.subName),1)):kt("",!0)],2)],46,gs))),128))]),a[1]||(a[1]=S("div",{class:"topic-switcher-arrow is-reverse"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1))]))}};export{Lt as E,ys as R,Vs as _,Ds as a,Ss as b,Ns as c,bs as d,Os as e,Fs as f,Us as g,Gs as h,Qs as i,Ps as j,Hs as k,vs as l,Ks as m,js as n,Ls as o,Bs as p,Is as q,Ms as r,ks as s}; diff --git a/docs/assets/TopicSwitcher-c994e245-balabala-1784132466083.css b/docs/assets/TopicSwitcher-f90bcf5a-balabala-1784132792831.css similarity index 88% rename from docs/assets/TopicSwitcher-c994e245-balabala-1784132466083.css rename to docs/assets/TopicSwitcher-f90bcf5a-balabala-1784132792831.css index 383da64..9307358 100644 --- a/docs/assets/TopicSwitcher-c994e245-balabala-1784132466083.css +++ b/docs/assets/TopicSwitcher-f90bcf5a-balabala-1784132792831.css @@ -1 +1 @@ -.topic-switcher{display:flex;align-items:flex-start;justify-content:center;width:600px;height:52px;padding-top:10px;background:url(./bottom-menu-bg-b465793d-balabala-1784132466083.png) no-repeat center bottom;background-size:100% 52px;pointer-events:all}.topic-switcher-arrow{display:flex;align-items:center;height:30px;margin:0 12px}.topic-switcher-arrow.is-reverse{transform:scaleX(-1)}.topic-switcher-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.topic-switcher-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.topic-switcher-menu{display:flex;gap:4px}.topic-switcher-item{position:relative;width:var(--topic-item-width, 112px);height:32px;padding:0;border:0;background:url(./bottom-menu-btn-ee5c8064-balabala-1784132466083.png) no-repeat;background-size:100% 100%;color:#fff;cursor:pointer;overflow:hidden}.topic-switcher-item:hover,.topic-switcher-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784132466083.png) no-repeat;background-size:100% 100%}.topic-switcher .topic-name{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;padding:0 5px;text-align:center;white-space:nowrap}.topic-switcher .topic-name,.topic-switcher .topic-title,.topic-switcher .topic-name small{padding-top:0;font-size:16px;font-weight:700;line-height:18px;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.topic-switcher .topic-name.has-sub-name{gap:1px}.topic-switcher .topic-name small{display:block;max-width:100%;overflow:hidden;font-size:10px;font-weight:600;line-height:11px;text-overflow:ellipsis} +.topic-switcher{display:flex;align-items:flex-start;justify-content:center;width:600px;height:52px;padding-top:10px;background:url(./bottom-menu-bg-b465793d-balabala-1784132792831.png) no-repeat center bottom;background-size:100% 52px;pointer-events:all}.topic-switcher-arrow{display:flex;align-items:center;height:30px;margin:0 12px}.topic-switcher-arrow.is-reverse{transform:scaleX(-1)}.topic-switcher-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.topic-switcher-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.topic-switcher-menu{display:flex;gap:4px}.topic-switcher-item{position:relative;width:var(--topic-item-width, 112px);height:32px;padding:0;border:0;background:url(./bottom-menu-btn-ee5c8064-balabala-1784132792831.png) no-repeat;background-size:100% 100%;color:#fff;cursor:pointer;overflow:hidden}.topic-switcher-item:hover,.topic-switcher-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784132792831.png) no-repeat;background-size:100% 100%}.topic-switcher .topic-name{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;padding:0 5px;text-align:center;white-space:nowrap}.topic-switcher .topic-name,.topic-switcher .topic-title,.topic-switcher .topic-name small{padding-top:0;font-size:16px;font-weight:700;line-height:18px;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.topic-switcher .topic-name.has-sub-name{gap:1px}.topic-switcher .topic-name small{display:block;max-width:100%;overflow:hidden;font-size:10px;font-weight:600;line-height:11px;text-overflow:ellipsis} diff --git a/docs/assets/area-b57940eb-balabala-1784132466083.png b/docs/assets/area-b57940eb-balabala-1784132792831.png similarity index 100% rename from docs/assets/area-b57940eb-balabala-1784132466083.png rename to docs/assets/area-b57940eb-balabala-1784132792831.png diff --git a/docs/assets/assets-8617da22-1784132466083.js b/docs/assets/assets-8cd57427-1784132792831.js similarity index 85% rename from docs/assets/assets-8617da22-1784132466083.js rename to docs/assets/assets-8cd57427-1784132792831.js index e6c7fd5..446389e 100644 --- a/docs/assets/assets-8617da22-1784132466083.js +++ b/docs/assets/assets-8cd57427-1784132792831.js @@ -1 +1 @@ -var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-483e466b-1784132466083.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-7006d8b4-1784132466083.js";import{g as n,a as h,H as q,C as G}from"./index-36438a28-1784132466083.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A}; +var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-41868f75-1784132792831.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-2e4ca291-1784132792831.js";import{g as n,a as h,H as q,C as G}from"./index-24267a69-1784132792831.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A}; diff --git a/docs/assets/bg-3acb94e3-balabala-1784132466083.png b/docs/assets/bg-3acb94e3-balabala-1784132792831.png similarity index 100% rename from docs/assets/bg-3acb94e3-balabala-1784132466083.png rename to docs/assets/bg-3acb94e3-balabala-1784132792831.png diff --git a/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784132466083.svg b/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784132792831.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784132466083.svg rename to docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784132792831.svg diff --git a/docs/assets/bottom-menu-arrow-small-19304179-balabala-1784132466083.svg b/docs/assets/bottom-menu-arrow-small-19304179-balabala-1784132792831.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-small-19304179-balabala-1784132466083.svg rename to docs/assets/bottom-menu-arrow-small-19304179-balabala-1784132792831.svg diff --git a/docs/assets/bottom-menu-bg-b465793d-balabala-1784132466083.png b/docs/assets/bottom-menu-bg-b465793d-balabala-1784132792831.png similarity index 100% rename from docs/assets/bottom-menu-bg-b465793d-balabala-1784132466083.png rename to docs/assets/bottom-menu-bg-b465793d-balabala-1784132792831.png diff --git a/docs/assets/bottom-menu-btn-ee5c8064-balabala-1784132466083.png b/docs/assets/bottom-menu-btn-ee5c8064-balabala-1784132792831.png similarity index 100% rename from docs/assets/bottom-menu-btn-ee5c8064-balabala-1784132466083.png rename to docs/assets/bottom-menu-btn-ee5c8064-balabala-1784132792831.png diff --git a/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784132466083.png b/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784132792831.png similarity index 100% rename from docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784132466083.png rename to docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784132792831.png diff --git a/docs/assets/chartTheme-e9ae7be8-1784132466083.js b/docs/assets/chartTheme-73e4a943-1784132792831.js similarity index 97% rename from docs/assets/chartTheme-e9ae7be8-1784132466083.js rename to docs/assets/chartTheme-73e4a943-1784132792831.js index 1ada78b..7d30a3d 100644 --- a/docs/assets/chartTheme-e9ae7be8-1784132466083.js +++ b/docs/assets/chartTheme-73e4a943-1784132792831.js @@ -1 +1 @@ -var _=Object.defineProperty,K=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,o=(t,e)=>{for(var r in e||(e={}))j.call(e,r)&&v(t,r,e[r]);if(y)for(var r of y(e))W.call(e,r)&&v(t,r,e[r]);return t},x=(t,e)=>K(t,U(e));var G=(t,e)=>{var r={};for(var a in t)j.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&y)for(var a of y(t))e.indexOf(a)<0&&W.call(t,a)&&(r[a]=t[a]);return r};import{L as w}from"./index-1784132466083.js";import{U as B,K as c,W as d}from"./screen2Standard-483e466b-1784132466083.js";const S=B.ui,H=B.number,n=[c.accentCyan,c.accentMint,c.accentWater,c.accentOrange,"#16b6e8","#b9fbff"],D=c.textPrimary,V=c.textStrong,k=c.textSecondary,m=c.textMuted,q=c.chartGridLine,Z=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),E={color:m,fontFamily:S,fontSize:d.chartAxis};function L(t,e={}){return o({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:D,fontFamily:S,fontSize:d.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:t},e)}function N(t={}){return o({itemWidth:10,itemHeight:7,itemGap:8,textStyle:x(o({},E),{color:k,fontSize:d.chartAxis})},t)}function g(t=[],e={}){return o({type:"category",data:t,axisLabel:o(x(o({},E),{color:m,interval:0,hideOverlap:!0,margin:8}),e.axisLabel||{}),axisLine:o({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},e.axisLine||{}),axisTick:o({show:!1},e.axisTick||{}),splitLine:o({show:!1},e.splitLine||{})},M(e))}function h(t={}){return o({type:"value",axisLabel:o(x(o({},E),{color:m}),t.axisLabel||{}),axisLine:o({show:!1},t.axisLine||{}),axisTick:o({show:!1},t.axisTick||{}),splitLine:o({lineStyle:{color:q,type:"dashed"}},t.splitLine||{})},M(t))}function $(t={}){return o({left:42,right:28,top:30,bottom:24,containLabel:!1},t)}function I(t,e=`${t}12`){return new w(0,0,0,1,[{offset:0,color:t},{offset:1,color:e}])}function F(t=n[0]){return new w(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:t},{offset:.72,color:`${t}a3`},{offset:1,color:`${t}14`}])}function J(t,e=`${t}20`,r="#ffffff"){return new w(0,0,1,0,[{offset:0,color:e},{offset:.68,color:t},{offset:1,color:r}])}function C(t={}){var r,a,i;const e=o({textStyle:o({fontFamily:S,color:m},t.textStyle||{}),animation:(r=t.animation)!=null?r:!0,animationDuration:(a=t.animationDuration)!=null?a:900,animationDurationUpdate:(i=t.animationDurationUpdate)!=null?i:700,animationEasing:t.animationEasing||"cubicOut"},t);return T(e),z(e),e}function rt({categories:t=[],rows:e=[],unit:r="",name:a="指标",orientation:i="vertical",colorIndex:s=0,grid:l={},showLabel:f=!0}={}){const u=i==="horizontal",P=e.map((b,p)=>({name:b.name||t[p],value:Number(b.value)||0,itemStyle:{borderRadius:u?[0,6,6,0]:[7,7,1,1],color:u?J(n[(s+p)%n.length],"rgba(48, 220, 255, 0.1)",n[(s+p)%n.length]):F(n[(s+p)%n.length])}}));return C({color:n,grid:$(o(u?{left:72,right:f?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},l)),tooltip:L(b=>`${b.marker}${b.name}:${A(b.value)}${r}`),xAxis:u?h():g(t,{axisLabel:{rotate:t.length>6?24:0}}),yAxis:u?g(t,{inverse:!0,axisLabel:{color:D,fontWeight:700}}):h(),series:[{name:a,type:"bar",barWidth:u?8:t.length>7?6:8,data:P,label:{show:f,position:u?"right":"top",color:V,fontFamily:H,fontSize:d.chartLabel,fontWeight:700,formatter:({value:b})=>A(b)}}]})}function at({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:46,right:20,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:F(n[s%n.length])}}))})}function ot({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:48,right:22,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{color:F(n[s%n.length])}}))})}function it({categories:t=[],series:e=[],unit:r="",area:a=!1,grid:i={}}={}){return C({color:n,grid:$(o({left:46,right:24,top:42,bottom:38},i)),tooltip:L(s=>O(s,r),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((s,l)=>{const f=n[l%n.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:f,shadowColor:`${f}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:f,borderWidth:1},areaStyle:a?{color:I(f,`${f}08`)}:void 0}})})}function A(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function M(t={}){const l=t,{axisLabel:e,axisLine:r,axisTick:a,splitLine:i}=l;return G(l,["axisLabel","axisLine","axisTick","splitLine"])}function O(t,e=""){var s,l;const r=Array.isArray(t)?t:[t],a=((s=r[0])==null?void 0:s.axisValueLabel)||((l=r[0])==null?void 0:l.name)||"",i=r.map(f=>`${f.marker}${f.seriesName||f.name}:${A(f.value)}${e}`).join("
");return`${a}
${i}`}function z(t){if(!t||typeof t!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(r=>{!t[r]||typeof t[r]!="object"||(t[r]=Q(t[r]))}),Object.keys(t).forEach(r=>{const a=t[r];if(!(!a||typeof a!="object")&&!(r==="color"||r==="itemStyle"||r==="areaStyle"||r==="lineStyle")){if(Array.isArray(a)){a.forEach(z);return}z(a)}})}function T(t){!t||typeof t!="object"||Object.keys(t).forEach(e=>{const r=t[e];if(typeof r=="string"){t[e]=R(r);return}if(Array.isArray(r)){r.forEach((a,i)=>{typeof a=="string"?r[i]=R(a):T(a)});return}r&&typeof r=="object"&&T(r)})}function R(t){let e=t;return Z.forEach((r,a)=>{e=e.replace(new RegExp(a,"gi"),r)}),e=e.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),e}function Q(t){const e=o({fontFamily:t.fontFamily||S},t);return e.color=X(e.color),typeof e.fontSize=="number"&&e.fontSize<10&&(e.fontSize=10),e}function X(t){if(typeof t!="string")return t;const e=t.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!e)return t;const r=Number(e[4]);return!Number.isFinite(r)||r>=.72?t:r<.6?m:k}export{at as a,ot as b,rt as c,it as d,n as e,L as f,N as g,$ as h,g as i,A as j,I as k,k as l,V as m,S as n,D as o,q as p,H as q,F as s,h as v,C as w}; +var _=Object.defineProperty,K=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,o=(t,e)=>{for(var r in e||(e={}))j.call(e,r)&&v(t,r,e[r]);if(y)for(var r of y(e))W.call(e,r)&&v(t,r,e[r]);return t},x=(t,e)=>K(t,U(e));var G=(t,e)=>{var r={};for(var a in t)j.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&y)for(var a of y(t))e.indexOf(a)<0&&W.call(t,a)&&(r[a]=t[a]);return r};import{L as w}from"./index-1784132792831.js";import{U as B,K as c,W as d}from"./screen2Standard-41868f75-1784132792831.js";const S=B.ui,H=B.number,n=[c.accentCyan,c.accentMint,c.accentWater,c.accentOrange,"#16b6e8","#b9fbff"],D=c.textPrimary,V=c.textStrong,k=c.textSecondary,m=c.textMuted,q=c.chartGridLine,Z=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),E={color:m,fontFamily:S,fontSize:d.chartAxis};function L(t,e={}){return o({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:D,fontFamily:S,fontSize:d.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:t},e)}function N(t={}){return o({itemWidth:10,itemHeight:7,itemGap:8,textStyle:x(o({},E),{color:k,fontSize:d.chartAxis})},t)}function g(t=[],e={}){return o({type:"category",data:t,axisLabel:o(x(o({},E),{color:m,interval:0,hideOverlap:!0,margin:8}),e.axisLabel||{}),axisLine:o({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},e.axisLine||{}),axisTick:o({show:!1},e.axisTick||{}),splitLine:o({show:!1},e.splitLine||{})},M(e))}function h(t={}){return o({type:"value",axisLabel:o(x(o({},E),{color:m}),t.axisLabel||{}),axisLine:o({show:!1},t.axisLine||{}),axisTick:o({show:!1},t.axisTick||{}),splitLine:o({lineStyle:{color:q,type:"dashed"}},t.splitLine||{})},M(t))}function $(t={}){return o({left:42,right:28,top:30,bottom:24,containLabel:!1},t)}function I(t,e=`${t}12`){return new w(0,0,0,1,[{offset:0,color:t},{offset:1,color:e}])}function F(t=n[0]){return new w(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:t},{offset:.72,color:`${t}a3`},{offset:1,color:`${t}14`}])}function J(t,e=`${t}20`,r="#ffffff"){return new w(0,0,1,0,[{offset:0,color:e},{offset:.68,color:t},{offset:1,color:r}])}function C(t={}){var r,a,i;const e=o({textStyle:o({fontFamily:S,color:m},t.textStyle||{}),animation:(r=t.animation)!=null?r:!0,animationDuration:(a=t.animationDuration)!=null?a:900,animationDurationUpdate:(i=t.animationDurationUpdate)!=null?i:700,animationEasing:t.animationEasing||"cubicOut"},t);return T(e),z(e),e}function rt({categories:t=[],rows:e=[],unit:r="",name:a="指标",orientation:i="vertical",colorIndex:s=0,grid:l={},showLabel:f=!0}={}){const u=i==="horizontal",P=e.map((b,p)=>({name:b.name||t[p],value:Number(b.value)||0,itemStyle:{borderRadius:u?[0,6,6,0]:[7,7,1,1],color:u?J(n[(s+p)%n.length],"rgba(48, 220, 255, 0.1)",n[(s+p)%n.length]):F(n[(s+p)%n.length])}}));return C({color:n,grid:$(o(u?{left:72,right:f?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},l)),tooltip:L(b=>`${b.marker}${b.name}:${A(b.value)}${r}`),xAxis:u?h():g(t,{axisLabel:{rotate:t.length>6?24:0}}),yAxis:u?g(t,{inverse:!0,axisLabel:{color:D,fontWeight:700}}):h(),series:[{name:a,type:"bar",barWidth:u?8:t.length>7?6:8,data:P,label:{show:f,position:u?"right":"top",color:V,fontFamily:H,fontSize:d.chartLabel,fontWeight:700,formatter:({value:b})=>A(b)}}]})}function at({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:46,right:20,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:F(n[s%n.length])}}))})}function ot({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:48,right:22,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{color:F(n[s%n.length])}}))})}function it({categories:t=[],series:e=[],unit:r="",area:a=!1,grid:i={}}={}){return C({color:n,grid:$(o({left:46,right:24,top:42,bottom:38},i)),tooltip:L(s=>O(s,r),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((s,l)=>{const f=n[l%n.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:f,shadowColor:`${f}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:f,borderWidth:1},areaStyle:a?{color:I(f,`${f}08`)}:void 0}})})}function A(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function M(t={}){const l=t,{axisLabel:e,axisLine:r,axisTick:a,splitLine:i}=l;return G(l,["axisLabel","axisLine","axisTick","splitLine"])}function O(t,e=""){var s,l;const r=Array.isArray(t)?t:[t],a=((s=r[0])==null?void 0:s.axisValueLabel)||((l=r[0])==null?void 0:l.name)||"",i=r.map(f=>`${f.marker}${f.seriesName||f.name}:${A(f.value)}${e}`).join("
");return`${a}
${i}`}function z(t){if(!t||typeof t!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(r=>{!t[r]||typeof t[r]!="object"||(t[r]=Q(t[r]))}),Object.keys(t).forEach(r=>{const a=t[r];if(!(!a||typeof a!="object")&&!(r==="color"||r==="itemStyle"||r==="areaStyle"||r==="lineStyle")){if(Array.isArray(a)){a.forEach(z);return}z(a)}})}function T(t){!t||typeof t!="object"||Object.keys(t).forEach(e=>{const r=t[e];if(typeof r=="string"){t[e]=R(r);return}if(Array.isArray(r)){r.forEach((a,i)=>{typeof a=="string"?r[i]=R(a):T(a)});return}r&&typeof r=="object"&&T(r)})}function R(t){let e=t;return Z.forEach((r,a)=>{e=e.replace(new RegExp(a,"gi"),r)}),e=e.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),e}function Q(t){const e=o({fontFamily:t.fontFamily||S},t);return e.color=X(e.color),typeof e.fontSize=="number"&&e.fontSize<10&&(e.fontSize=10),e}function X(t){if(typeof t!="string")return t;const e=t.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!e)return t;const r=Number(e[4]);return!Number.isFinite(r)||r>=.72?t:r<.6?m:k}export{at as a,ot as b,rt as c,it as d,n as e,L as f,N as g,$ as h,g as i,A as j,I as k,k as l,V as m,S as n,D as o,q as p,H as q,F as s,h as v,C as w}; diff --git a/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784132466083.png b/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784132792831.png similarity index 100% rename from docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784132466083.png rename to docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784132792831.png diff --git a/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784132466083.svg b/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784132792831.svg similarity index 100% rename from docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784132466083.svg rename to docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784132792831.svg diff --git a/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784132466083.svg b/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784132792831.svg similarity index 100% rename from docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784132466083.svg rename to docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784132792831.svg diff --git a/docs/assets/content-middle-line-162bc0d5-balabala-1784132466083.svg b/docs/assets/content-middle-line-162bc0d5-balabala-1784132792831.svg similarity index 100% rename from docs/assets/content-middle-line-162bc0d5-balabala-1784132466083.svg rename to docs/assets/content-middle-line-162bc0d5-balabala-1784132792831.svg diff --git a/docs/assets/data-09f482ff-1784132466083.js b/docs/assets/data-85b25709-1784132792831.js similarity index 99% rename from docs/assets/data-09f482ff-1784132466083.js rename to docs/assets/data-85b25709-1784132792831.js index c777384..3f47926 100644 --- a/docs/assets/data-09f482ff-1784132466083.js +++ b/docs/assets/data-85b25709-1784132792831.js @@ -1 +1 @@ -var I=Object.defineProperty,Z=Object.defineProperties;var q=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var P=(a,e,n)=>e in a?I(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,g=(a,e)=>{for(var n in e||(e={}))U.call(e,n)&&P(a,n,e[n]);if(R)for(var n of R(e))X.call(e,n)&&P(a,n,e[n]);return a},w=(a,e)=>Z(a,q(e));import{d as V,N as z}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{g as E}from"./data-5c83c66b-1784132466083.js";const d=(a,e)=>a.reduce((n,r)=>n+Number(r[e]||0),0),t=(a,e=2)=>Number(Number(a||0).toFixed(e)),m={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},G=["ecological-redline","natural-protected-area"];function K(a=[]){let e=a;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(n){e=[]}return(Array.isArray(e)?e:[]).map((n,r)=>({key:n.key||`${n.name||"统计项"}-${r}`,name:n.name||`统计项${r+1}`,value:t(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function Y(a,e,n,r,o=""){return{key:a,name:e,value:t(n,r==="%"?1:2),unit:r,extra:o}}function T(a=[],e=d(a,"value")){return a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}))}function aa(a=[],e=!1){const n=new Map(V.map((r,o)=>[r,o]));return[...a].sort((r,o)=>{if(e)return Number(o.value||0)-Number(r.value||0);const u=n.has(r.name)?n.get(r.name):999,s=n.has(o.name)?n.get(o.name):999;return u-s||Number(o.value||0)-Number(r.value||0)})}function k(a={},e,n,r="万亩",o={}){const u=aa(K(a[e]),o.sortByValue===!0).filter(i=>Number(i.value)>0).map(i=>w(g({},i),{unit:i.unit||r}));if(u.length)return o.withPercent===!1?u:T(u);const s=Number(a[n]||0);return s>0?[Y(`${e}-total`,"全县合计",s,r)]:[]}function W(a={},e,n,r,o="万亩",u=6){const s=K(a[e]).filter(y=>Number(y.value)>0).slice(0,u).map(y=>w(g({},y),{unit:y.unit||o}));if(s.length)return T(s);const i=Number(a[n]||0);return i>0?[Y(`${e}-total`,r,i,o)]:[]}function x(a){return((a==null?void 0:a.rows)||[]).some(e=>Number(e.value)>0)}const ea=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function na(a="ecological-redline"){const e=a==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(ea[e])}function O(a={},e="ecological-redline"){const n=na(e),o=Number(a.scopeAreaWanMu)>0||Number(a.grasslandAreaWanMu)>0||Number(a.wetlandAreaWanMu)>0||Number(a.woodlandAreaWanMu)>0?g(g({},n),a):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(u=>{K(o[u]).length||(o[u]=n[u])}),o}function ba(a={},e="ecological-redline"){a=O(a,e);const n=k(a,"grasslandDistribution","grasslandAreaWanMu","万亩"),r=k(a,"wetlandDistribution","wetlandAreaWanMu","万亩"),o=k(a,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=k(a,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),s=W(a,"grasslandTypes","grasslandAreaWanMu","草地面积"),i=W(a,"grasslandLevels","grasslandAreaWanMu","草地面积"),y=W(a,"woodlandQuality","woodlandAreaWanMu","林地面积"),M=T([{key:`${e}-scope-grassland`,name:"草地资源",value:Number(a.grasslandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-wetland`,name:"湿地资源",value:Number(a.wetlandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-woodland`,name:"林地资源",value:Number(a.woodlandAreaWanMu||0),unit:"万亩"}].filter(H=>Number(H.value)>0));return{left:[{key:`${e}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${e}-wetland-distribution`,title:"湿地面积",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,span:1,rows:r},{key:`${e}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:o},{key:`${e}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(x),right:[{key:`${e}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:s},{key:`${e}-grassland-level`,title:"草原级占比",type:"bar",variant:"rankBar",span:1,rows:i},{key:`${e}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:y},{key:`${e}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:M}].filter(x)}}function ka(a={},e="ecological-redline"){return a=O(a,e),[{zh:`${e==="natural-protected-area"?"保护地":"红线"}面积`,value:t(a.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:t(a.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:t(a.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:t(a.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const p=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],l={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:t(d(p,"cover")/p.length,1),townCount:p.length,villageCount:p.reduce((a,e)=>a+String(e.villages||"").split("、").filter(Boolean).length,0),householdCount:d(p,"householdCount"),peopleCount:d(p,"peopleCount"),ecologyJobCount:d(p,"ecologyJobs"),yakCount:d(p,"yakCount"),livestockCount:d(p,"livestockCount")};l.otherProtectedAreaWanMu=t(l.totalAreaWanMu-l.grasslandAreaWanMu-l.wetlandAreaWanMu,2);const Wa=[{key:"park-national-area",name:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:l.yakCount,unit:"头",icon:"stack"}];p.map(a=>({key:a.name,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${a.grasslandAreaWanMu} / 湿地 ${a.wetlandAreaWanMu}`}));p.map(a=>({key:`${a.name}-town`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:a.villages}));const ta=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:z.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:z.general.fillColor}],N=43.66,S=12.48,ra=t(N*(192.26/297.29),2),oa=.06229833103624831,ua=new Map([["瓦切镇",{areaRange:750120,yakNumber:43459,bearingCapacity:44927.54,livestockCapacity:45260,overloadRate:.74,year:"2026"}],["麦洼乡",{areaRange:666075,yakNumber:35773,bearingCapacity:36505.86,livestockCapacity:36776,overloadRate:.74,year:"2026"}],["色地镇",{areaRange:209805,yakNumber:25947,bearingCapacity:26534.58,livestockCapacity:26731,overloadRate:.74,year:"2026"}]]),la={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},c=p.map(a=>w(g({},a),{value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu},householdCount:Number(a.householdCount||0),edibleGrasslandWanTon:t(Number(a.grasslandAreaWanMu||0)/Math.max(l.grasslandAreaWanMu,1)*ra,2)})),D=l.householdCount-d(c,"householdCount");D&&c[0]&&(c[0].householdCount+=D);c.forEach(a=>{const e=ua.get(a.name),n=Number(e==null?void 0:e.bearingCapacity)||t(Number(a.grasslandAreaWanMu||0)*1e4*oa,0),r=Number(e==null?void 0:e.livestockCapacity)||Number(a.livestockCount||a.yakCount||0),o=Number.isFinite(Number(e==null?void 0:e.overloadRate))?Number(e.overloadRate):n?t((r-n)/n*100,1):0,u=E(o);a.bearingCapacity=n,a.livestockCapacity=r,a.overloadRate=t(o,2),a.balanceLevel=u.label,a.searchText=[a.name,`划定面积${a.protectedAreaWanMu}万亩`,`牦牛${a.yakCount}头`,`牧户${a.householdCount}户`,`超载率${a.overloadRate}%`].join(" ")});const b=d(c,"bearingCapacity"),F=d(c,"livestockCapacity"),j=F-b,A=c.map(a=>Number(a.overloadRate)).filter(a=>Number.isFinite(a));l.balanceOverloadRate=A.length?t(A.reduce((a,e)=>a+e,0)/A.length,2):b?t((F-b)/b*100,2):0;const h=[...c].sort((a,e)=>Number(e.overloadRate||0)-Number(a.overloadRate||0))[0],$=(a,e=d(a,"value"))=>a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}));$([{key:"park-scope-grassland",name:"草地",value:l.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:l.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:l.otherProtectedAreaWanMu,unit:"万亩"}]);const C=({sourceKey:a,weightKey:e,unit:n="万亩",decimals:r=2,sortByValue:o=!0})=>{const u=c.flatMap(i=>(la[i.name]||[]).map(M=>({key:`${i.name}-${M.name}-${a}`,name:M.name,town:i.name,value:t(Number(i[a]||0)*Number(M[e]||0),r),unit:n}))).filter(i=>Number(i.value)>0),s=o?u.sort((i,y)=>Number(y.value||0)-Number(i.value||0)):u;return $(s)};C({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});C({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});C({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});C({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});C({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});C({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const sa=["瓦切镇","麦洼乡","色地镇"],v=a=>sa.map(e=>a.find(n=>n.name===e)).filter(Boolean),ca=v(c).map(a=>({key:`${a.name}-area`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",extra:`核心 ${a.coreProtectionAreaWanMu} / 一般 ${a.generalControlAreaWanMu}`}));v(c).map(a=>({key:`${a.name}-zoning`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu}}));const ia=v(c).map(a=>({key:`${a.name}-grass-wet-area`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:a.grasslandAreaWanMu,wetland:a.wetlandAreaWanMu}})),ma=v(c).map(a=>({key:`${a.name}-grass-wet-productivity`,name:a.name,value:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N+a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2),unit:"万吨",segments:{grassland:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N,2),wetland:t(a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2)}})),pa=v(c).map(a=>({key:`${a.name}-yak`,name:a.name,value:a.yakCount,unit:"头",extra:`${t(a.yakCount/Math.max(l.yakCount,1)*100,1)}%`})),da=v(c).map(a=>({key:`${a.name}-household`,name:a.name,value:a.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:a.ecologyJobs,peopleCount:a.peopleCount,extra:`公益岗位 ${a.ecologyJobs}户`}));v(c).map(a=>({key:`${a.name}-balance`,name:a.name,value:a.overloadRate,unit:"%",status:a.balanceLevel,extra:`载畜 ${a.livestockCapacity}头`}));const ga=[{key:"park-balance-overload-rate",name:"超载率",value:l.balanceOverloadRate,unit:"%",status:E(l.balanceOverloadRate).label,color:"#24f6c4"}];t(b/1e4,2),t(F/1e4,2),j>=0,t(Math.abs(j)/1e4,2),j>=0,`${(h==null?void 0:h.name)||"重点乡镇"}`,t((h==null?void 0:h.overloadRate)||0,2),h!=null&&h.balanceLevel;const ya=v(c).map(a=>({key:`${a.name}-job`,name:a.name,value:a.ecologyJobs,unit:"户",color:a.name==="麦洼乡"?"#24f6c4":a.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${a.householdCount}户`}));v(c).map(a=>w(g({},a),{key:`${a.name}-ledger`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var L,B,J;const ha=[{zh:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:l.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:l.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:l.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((L=c.find(a=>a.name==="瓦切镇"))==null?void 0:L.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((B=c.find(a=>a.name==="麦洼乡"))==null?void 0:B.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((J=c.find(a=>a.name==="色地镇"))==null?void 0:J.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:l.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:l.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],va=[{zh:"修复项目",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}],ja=[{zh:"项目库工程",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:m.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}];function Aa(a){return G.includes(a)?[]:a==="engineering-analysis"?[]:(a==="restoration"?va:ha.slice(0,5)).map((n,r)=>g({icon:n.icon||(r%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const fa={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:ia},{key:"park-town-productivity",title:"草地湿地生产力",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万吨",segments:[{key:"grassland",name:"草地生产力",color:"#32dcff"},{key:"wetland",name:"湿地生产力",color:"#8bf7ff"}],rows:ma},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:pa},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:ga}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:$(ta)},{key:"park-town-household",title:"牧户分布",type:"split",rows:da},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:ya}]},f=new Map((m.townships||[]).filter(a=>/[乡镇]$/.test(String(a.name||""))).map(a=>[a.name,a])),Q=V.map(a=>{var e,n,r;return{name:a,areaWanMu:((e=f.get(a))==null?void 0:e.areaWanMu)||0,lengthKm:((n=f.get(a))==null?void 0:n.lengthKm)||0,projectCount:((r=f.get(a))==null?void 0:r.projectCount)||0}}),_=(m.projects||[]).map((a,e)=>{const n=Number(a.areaWanMu)>0,r=Number(a.lengthKm)>0,o=n?{value:t(a.areaWanMu,2),unit:"万亩",metric:"治理面积"}:r?{value:t(a.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:a.subjectFeatureCount||0,unit:"个",metric:"主体要素"},u=(a.measureTypes||[]).join("、"),s=(a.townships||[]).join("、");return{key:a.id||a.projectName,index:e+1,name:a.projectName,projectName:a.projectName,category:a.projectCategory,year:a.year||"未知",areaWanMu:t(a.areaWanMu,4),lengthKm:t(a.lengthKm,2),measure:u,townships:s,subjectFeatureCount:a.subjectFeatureCount||0,value:o.value,unit:o.unit,metric:o.metric,extra:[a.year||"未知",u].filter(Boolean).join(" / "),searchText:[a.projectName,a.projectCategory,a.year,u,s].filter(Boolean).join(" ")}}),Na=_.map((a,e)=>{const n=e%6,r=Math.floor(e/6),o=102.42+n*.045,u=32.55+r*.035,s=.018+Math.min(.024,Number(a.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:a.projectName,project_category:a.category,year:a.year,areaWanMu:a.areaWanMu,lengthKm:a.lengthKm,townships:a.townships,measure:a.measure},geometry:{type:"Polygon",coordinates:[[[o,u],[o+s,u+s*.22],[o+s*.82,u+s],[o-s*.16,u+s*.72],[o,u]]]}}}),Ka={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(m.years||[]).map(a=>({key:a.name,name:`${a.name}`,value:t(a.areaWanMu,2),unit:"万亩",extra:`${a.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,rows:Q.map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu,2),unit:"万亩",extra:`${t(a.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(m.categories||[]).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"column",variant:"slim",labelMode:"horizontal",rows:(m.years||[]).filter(a=>Number(a.lengthKm)>0).map(a=>({key:a.name,name:`${a.name}`,value:t(a.lengthKm,2),unit:"公里",extra:`${a.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(m.measures||[]).slice(0,8).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"column",variant:"projectYear",labelMode:"horizontal",rows:(m.years||[]).filter(a=>a.name!=="未知").map(a=>({key:a.name,name:`${a.name}`,value:a.projectCount,unit:"个",extra:`${t(a.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:_}]},Ta={left:[],right:[]};function Fa(a){return G.includes(a)?{status:"success",title:a==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:a==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:Q.map(e=>({name:e.name,value:t(e.areaWanMu,2),unit:"万亩"}))}:a==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:ca.map(e=>({name:e.name,value:e.value,unit:e.unit,metricLabel:"划定面积"}))}}export{Ta as a,ba as b,ka as c,Aa as d,G as e,ha as f,Fa as g,Wa as h,p as i,va as j,ja as k,Na as l,fa as p,Ka as r}; +var I=Object.defineProperty,Z=Object.defineProperties;var q=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var P=(a,e,n)=>e in a?I(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,g=(a,e)=>{for(var n in e||(e={}))U.call(e,n)&&P(a,n,e[n]);if(R)for(var n of R(e))X.call(e,n)&&P(a,n,e[n]);return a},w=(a,e)=>Z(a,q(e));import{d as V,N as z}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{g as E}from"./data-ee410ed3-1784132792831.js";const d=(a,e)=>a.reduce((n,r)=>n+Number(r[e]||0),0),t=(a,e=2)=>Number(Number(a||0).toFixed(e)),m={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},G=["ecological-redline","natural-protected-area"];function K(a=[]){let e=a;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(n){e=[]}return(Array.isArray(e)?e:[]).map((n,r)=>({key:n.key||`${n.name||"统计项"}-${r}`,name:n.name||`统计项${r+1}`,value:t(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function Y(a,e,n,r,o=""){return{key:a,name:e,value:t(n,r==="%"?1:2),unit:r,extra:o}}function T(a=[],e=d(a,"value")){return a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}))}function aa(a=[],e=!1){const n=new Map(V.map((r,o)=>[r,o]));return[...a].sort((r,o)=>{if(e)return Number(o.value||0)-Number(r.value||0);const u=n.has(r.name)?n.get(r.name):999,s=n.has(o.name)?n.get(o.name):999;return u-s||Number(o.value||0)-Number(r.value||0)})}function k(a={},e,n,r="万亩",o={}){const u=aa(K(a[e]),o.sortByValue===!0).filter(i=>Number(i.value)>0).map(i=>w(g({},i),{unit:i.unit||r}));if(u.length)return o.withPercent===!1?u:T(u);const s=Number(a[n]||0);return s>0?[Y(`${e}-total`,"全县合计",s,r)]:[]}function W(a={},e,n,r,o="万亩",u=6){const s=K(a[e]).filter(y=>Number(y.value)>0).slice(0,u).map(y=>w(g({},y),{unit:y.unit||o}));if(s.length)return T(s);const i=Number(a[n]||0);return i>0?[Y(`${e}-total`,r,i,o)]:[]}function x(a){return((a==null?void 0:a.rows)||[]).some(e=>Number(e.value)>0)}const ea=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function na(a="ecological-redline"){const e=a==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(ea[e])}function O(a={},e="ecological-redline"){const n=na(e),o=Number(a.scopeAreaWanMu)>0||Number(a.grasslandAreaWanMu)>0||Number(a.wetlandAreaWanMu)>0||Number(a.woodlandAreaWanMu)>0?g(g({},n),a):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(u=>{K(o[u]).length||(o[u]=n[u])}),o}function ba(a={},e="ecological-redline"){a=O(a,e);const n=k(a,"grasslandDistribution","grasslandAreaWanMu","万亩"),r=k(a,"wetlandDistribution","wetlandAreaWanMu","万亩"),o=k(a,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=k(a,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),s=W(a,"grasslandTypes","grasslandAreaWanMu","草地面积"),i=W(a,"grasslandLevels","grasslandAreaWanMu","草地面积"),y=W(a,"woodlandQuality","woodlandAreaWanMu","林地面积"),M=T([{key:`${e}-scope-grassland`,name:"草地资源",value:Number(a.grasslandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-wetland`,name:"湿地资源",value:Number(a.wetlandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-woodland`,name:"林地资源",value:Number(a.woodlandAreaWanMu||0),unit:"万亩"}].filter(H=>Number(H.value)>0));return{left:[{key:`${e}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${e}-wetland-distribution`,title:"湿地面积",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,span:1,rows:r},{key:`${e}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:o},{key:`${e}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(x),right:[{key:`${e}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:s},{key:`${e}-grassland-level`,title:"草原级占比",type:"bar",variant:"rankBar",span:1,rows:i},{key:`${e}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:y},{key:`${e}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:M}].filter(x)}}function ka(a={},e="ecological-redline"){return a=O(a,e),[{zh:`${e==="natural-protected-area"?"保护地":"红线"}面积`,value:t(a.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:t(a.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:t(a.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:t(a.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const p=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],l={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:t(d(p,"cover")/p.length,1),townCount:p.length,villageCount:p.reduce((a,e)=>a+String(e.villages||"").split("、").filter(Boolean).length,0),householdCount:d(p,"householdCount"),peopleCount:d(p,"peopleCount"),ecologyJobCount:d(p,"ecologyJobs"),yakCount:d(p,"yakCount"),livestockCount:d(p,"livestockCount")};l.otherProtectedAreaWanMu=t(l.totalAreaWanMu-l.grasslandAreaWanMu-l.wetlandAreaWanMu,2);const Wa=[{key:"park-national-area",name:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:l.yakCount,unit:"头",icon:"stack"}];p.map(a=>({key:a.name,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${a.grasslandAreaWanMu} / 湿地 ${a.wetlandAreaWanMu}`}));p.map(a=>({key:`${a.name}-town`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:a.villages}));const ta=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:z.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:z.general.fillColor}],N=43.66,S=12.48,ra=t(N*(192.26/297.29),2),oa=.06229833103624831,ua=new Map([["瓦切镇",{areaRange:750120,yakNumber:43459,bearingCapacity:44927.54,livestockCapacity:45260,overloadRate:.74,year:"2026"}],["麦洼乡",{areaRange:666075,yakNumber:35773,bearingCapacity:36505.86,livestockCapacity:36776,overloadRate:.74,year:"2026"}],["色地镇",{areaRange:209805,yakNumber:25947,bearingCapacity:26534.58,livestockCapacity:26731,overloadRate:.74,year:"2026"}]]),la={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},c=p.map(a=>w(g({},a),{value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu},householdCount:Number(a.householdCount||0),edibleGrasslandWanTon:t(Number(a.grasslandAreaWanMu||0)/Math.max(l.grasslandAreaWanMu,1)*ra,2)})),D=l.householdCount-d(c,"householdCount");D&&c[0]&&(c[0].householdCount+=D);c.forEach(a=>{const e=ua.get(a.name),n=Number(e==null?void 0:e.bearingCapacity)||t(Number(a.grasslandAreaWanMu||0)*1e4*oa,0),r=Number(e==null?void 0:e.livestockCapacity)||Number(a.livestockCount||a.yakCount||0),o=Number.isFinite(Number(e==null?void 0:e.overloadRate))?Number(e.overloadRate):n?t((r-n)/n*100,1):0,u=E(o);a.bearingCapacity=n,a.livestockCapacity=r,a.overloadRate=t(o,2),a.balanceLevel=u.label,a.searchText=[a.name,`划定面积${a.protectedAreaWanMu}万亩`,`牦牛${a.yakCount}头`,`牧户${a.householdCount}户`,`超载率${a.overloadRate}%`].join(" ")});const b=d(c,"bearingCapacity"),F=d(c,"livestockCapacity"),j=F-b,A=c.map(a=>Number(a.overloadRate)).filter(a=>Number.isFinite(a));l.balanceOverloadRate=A.length?t(A.reduce((a,e)=>a+e,0)/A.length,2):b?t((F-b)/b*100,2):0;const h=[...c].sort((a,e)=>Number(e.overloadRate||0)-Number(a.overloadRate||0))[0],$=(a,e=d(a,"value"))=>a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}));$([{key:"park-scope-grassland",name:"草地",value:l.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:l.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:l.otherProtectedAreaWanMu,unit:"万亩"}]);const C=({sourceKey:a,weightKey:e,unit:n="万亩",decimals:r=2,sortByValue:o=!0})=>{const u=c.flatMap(i=>(la[i.name]||[]).map(M=>({key:`${i.name}-${M.name}-${a}`,name:M.name,town:i.name,value:t(Number(i[a]||0)*Number(M[e]||0),r),unit:n}))).filter(i=>Number(i.value)>0),s=o?u.sort((i,y)=>Number(y.value||0)-Number(i.value||0)):u;return $(s)};C({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});C({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});C({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});C({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});C({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});C({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const sa=["瓦切镇","麦洼乡","色地镇"],v=a=>sa.map(e=>a.find(n=>n.name===e)).filter(Boolean),ca=v(c).map(a=>({key:`${a.name}-area`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",extra:`核心 ${a.coreProtectionAreaWanMu} / 一般 ${a.generalControlAreaWanMu}`}));v(c).map(a=>({key:`${a.name}-zoning`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu}}));const ia=v(c).map(a=>({key:`${a.name}-grass-wet-area`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:a.grasslandAreaWanMu,wetland:a.wetlandAreaWanMu}})),ma=v(c).map(a=>({key:`${a.name}-grass-wet-productivity`,name:a.name,value:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N+a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2),unit:"万吨",segments:{grassland:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N,2),wetland:t(a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2)}})),pa=v(c).map(a=>({key:`${a.name}-yak`,name:a.name,value:a.yakCount,unit:"头",extra:`${t(a.yakCount/Math.max(l.yakCount,1)*100,1)}%`})),da=v(c).map(a=>({key:`${a.name}-household`,name:a.name,value:a.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:a.ecologyJobs,peopleCount:a.peopleCount,extra:`公益岗位 ${a.ecologyJobs}户`}));v(c).map(a=>({key:`${a.name}-balance`,name:a.name,value:a.overloadRate,unit:"%",status:a.balanceLevel,extra:`载畜 ${a.livestockCapacity}头`}));const ga=[{key:"park-balance-overload-rate",name:"超载率",value:l.balanceOverloadRate,unit:"%",status:E(l.balanceOverloadRate).label,color:"#24f6c4"}];t(b/1e4,2),t(F/1e4,2),j>=0,t(Math.abs(j)/1e4,2),j>=0,`${(h==null?void 0:h.name)||"重点乡镇"}`,t((h==null?void 0:h.overloadRate)||0,2),h!=null&&h.balanceLevel;const ya=v(c).map(a=>({key:`${a.name}-job`,name:a.name,value:a.ecologyJobs,unit:"户",color:a.name==="麦洼乡"?"#24f6c4":a.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${a.householdCount}户`}));v(c).map(a=>w(g({},a),{key:`${a.name}-ledger`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var L,B,J;const ha=[{zh:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:l.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:l.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:l.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((L=c.find(a=>a.name==="瓦切镇"))==null?void 0:L.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((B=c.find(a=>a.name==="麦洼乡"))==null?void 0:B.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((J=c.find(a=>a.name==="色地镇"))==null?void 0:J.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:l.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:l.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],va=[{zh:"修复项目",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}],ja=[{zh:"项目库工程",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:m.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}];function Aa(a){return G.includes(a)?[]:a==="engineering-analysis"?[]:(a==="restoration"?va:ha.slice(0,5)).map((n,r)=>g({icon:n.icon||(r%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const fa={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:ia},{key:"park-town-productivity",title:"草地湿地生产力",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万吨",segments:[{key:"grassland",name:"草地生产力",color:"#32dcff"},{key:"wetland",name:"湿地生产力",color:"#8bf7ff"}],rows:ma},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:pa},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:ga}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:$(ta)},{key:"park-town-household",title:"牧户分布",type:"split",rows:da},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:ya}]},f=new Map((m.townships||[]).filter(a=>/[乡镇]$/.test(String(a.name||""))).map(a=>[a.name,a])),Q=V.map(a=>{var e,n,r;return{name:a,areaWanMu:((e=f.get(a))==null?void 0:e.areaWanMu)||0,lengthKm:((n=f.get(a))==null?void 0:n.lengthKm)||0,projectCount:((r=f.get(a))==null?void 0:r.projectCount)||0}}),_=(m.projects||[]).map((a,e)=>{const n=Number(a.areaWanMu)>0,r=Number(a.lengthKm)>0,o=n?{value:t(a.areaWanMu,2),unit:"万亩",metric:"治理面积"}:r?{value:t(a.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:a.subjectFeatureCount||0,unit:"个",metric:"主体要素"},u=(a.measureTypes||[]).join("、"),s=(a.townships||[]).join("、");return{key:a.id||a.projectName,index:e+1,name:a.projectName,projectName:a.projectName,category:a.projectCategory,year:a.year||"未知",areaWanMu:t(a.areaWanMu,4),lengthKm:t(a.lengthKm,2),measure:u,townships:s,subjectFeatureCount:a.subjectFeatureCount||0,value:o.value,unit:o.unit,metric:o.metric,extra:[a.year||"未知",u].filter(Boolean).join(" / "),searchText:[a.projectName,a.projectCategory,a.year,u,s].filter(Boolean).join(" ")}}),Na=_.map((a,e)=>{const n=e%6,r=Math.floor(e/6),o=102.42+n*.045,u=32.55+r*.035,s=.018+Math.min(.024,Number(a.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:a.projectName,project_category:a.category,year:a.year,areaWanMu:a.areaWanMu,lengthKm:a.lengthKm,townships:a.townships,measure:a.measure},geometry:{type:"Polygon",coordinates:[[[o,u],[o+s,u+s*.22],[o+s*.82,u+s],[o-s*.16,u+s*.72],[o,u]]]}}}),Ka={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(m.years||[]).map(a=>({key:a.name,name:`${a.name}`,value:t(a.areaWanMu,2),unit:"万亩",extra:`${a.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,rows:Q.map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu,2),unit:"万亩",extra:`${t(a.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(m.categories||[]).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"column",variant:"slim",labelMode:"horizontal",rows:(m.years||[]).filter(a=>Number(a.lengthKm)>0).map(a=>({key:a.name,name:`${a.name}`,value:t(a.lengthKm,2),unit:"公里",extra:`${a.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(m.measures||[]).slice(0,8).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"column",variant:"projectYear",labelMode:"horizontal",rows:(m.years||[]).filter(a=>a.name!=="未知").map(a=>({key:a.name,name:`${a.name}`,value:a.projectCount,unit:"个",extra:`${t(a.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:_}]},Ta={left:[],right:[]};function Fa(a){return G.includes(a)?{status:"success",title:a==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:a==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:Q.map(e=>({name:e.name,value:t(e.areaWanMu,2),unit:"万亩"}))}:a==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:ca.map(e=>({name:e.name,value:e.value,unit:e.unit,metricLabel:"划定面积"}))}}export{Ta as a,ba as b,ka as c,Aa as d,G as e,ha as f,Fa as g,Wa as h,p as i,va as j,ja as k,Na as l,fa as p,Ka as r}; diff --git a/docs/assets/data-1f73e057-1784132466083.js b/docs/assets/data-888ba847-1784132792831.js similarity index 99% rename from docs/assets/data-1f73e057-1784132466083.js rename to docs/assets/data-888ba847-1784132792831.js index a6f74d3..b268293 100644 --- a/docs/assets/data-1f73e057-1784132466083.js +++ b/docs/assets/data-888ba847-1784132792831.js @@ -1,4 +1,4 @@ -var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var Fe=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var We=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Q=(t,e)=>{for(var n in e||(e={}))pt.call(e,n)&&We(t,n,e[n]);if(Me)for(var n of Me(e))mt.call(e,n)&&We(t,n,e[n]);return t},Z=(t,e)=>dn(t,pn(e));var vt=(t,e)=>{var n={};for(var i in t)pt.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&Me)for(var i of Me(t))e.indexOf(i)<0&&mt.call(t,i)&&(n[i]=t[i]);return n};var M=(t,e,n)=>(We(t,typeof e!="symbol"?e+"":e,n),n);var mn=function(t,e){this[0]=t,this[1]=e};var gt=t=>{var e=t[Fe("asyncIterator")],n=!1,i,s={};return e==null?(e=t[Fe("iterator")](),i=o=>s[o]=r=>e[o](r)):(e=e.call(t),i=o=>s[o]=r=>{if(n){if(n=!1,o==="throw")throw r;return r}return n=!0,{done:!1,value:new mn(new Promise(a=>{var h=e[o](r);if(!(h instanceof Object))throw TypeError("Object expected");a(h)}),1)}}),s[Fe("iterator")]=()=>s,i("next"),"throw"in e?i("throw"):s.throw=o=>{throw o},"return"in e&&i("return"),s};import{X as vn,Y as gn,S as wn,Z as yn,_ as Sn,$ as En,a0 as ke,a1 as xn,a2 as Mn,b as re,C as Ke,V as F,a3 as An,G as ve,a as ge,D as Cn,a4 as bn,z as it,w as De,m as kt,a5 as Ht,a6 as N,J as st,y as Yt,O as ot,a7 as rt,a8 as Pn,P as Ln,A as On,t as zn,a9 as Dn,aa as at,ab as Tn,I as wt,ac as qe,ad as ue,ae as Rn,af as Vt,ag as Te,ah as Re,ai as Jt,aj as Bn,ak as Ge,al as _n,am as Un,L as In,x as jn,T as Gn,E as Nn,an as Fn}from"./screen2Standard-483e466b-1784132466083.js";import{E as lt,q as Xt}from"./TopicSwitcher-7006d8b4-1784132466083.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1784132466083.js";function Vn(t){let e=null,n=!1,i=!1;function s(){!n||i||(t(),e=requestAnimationFrame(s))}function o(){n||(n=!0,s())}function r(){n&&(n=!1,i=!0,cancelAnimationFrame(e))}function a(){!n&&i&&(n=!0,i=!1,s())}return{start:o,pause:r,resume:a,isActive:()=>n}}class Jn extends lt{constructor({canvas:e,config:n={}}){super(),this.canvas=e,this.config=n||{},this.maxPixelRatio=Number(this.config.maxPixelRatio)||2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var i;const e=((i=this.canvas)==null?void 0:i.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1;const n=Number(this.config.maxPixelRatio)||this.maxPixelRatio||2;this.maxPixelRatio=n,this.pixelRatio=Math.min(window.devicePixelRatio||1,n)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Xn extends lt{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new vn,this.raf=Vn(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),i=this.clock.getElapsedTime();this.emit("tick",n,i)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function Kn(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),i=[],s;if(e=e||n.length,t)for(s=0;sqn(typeof t=="string"?JSON.parse(t):t);function qn(t){var n,i,s,o;let e=(t==null?void 0:t.features)||[];for(let r=0;r{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,i,s;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(s=(i=this.canvas)==null?void 0:i.removeEventListener)==null||s.call(i,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class $n{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let i=0;for(let s=0;s0){for(r=e[--n];n>0&&(i=r,s=e[--n],r=i+s,o=s-(r-i),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(s=o*2,i=r+s,s==i-r&&(r=i))}return r}}function*ei(t){for(const e of t)yield*gt(e)}function qt(t){return Array.from(ei(t))}var T=1e-6,ti=1e-12,P=Math.PI,X=P/2,yt=P/4,$=P*2,K=180/P,j=P/180,B=Math.abs,Qt=Math.atan,we=Math.atan2,U=Math.cos,ni=Math.exp,ii=Math.log,I=Math.sin,si=Math.sign||function(t){return t>0?1:t<0?-1:0},Ne=Math.sqrt,oi=Math.tan;function ri(t){return t>1?0:t<-1?P:Math.acos(t)}function ye(t){return t>1?X:t<-1?-X:Math.asin(t)}function pe(){}function _e(t,e){t&&Et.hasOwnProperty(t.type)&&Et[t.type](t,e)}var St={Feature:function(t,e){_e(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,s=n.length;++iP&&(t-=Math.round(t/$)*$),[t,e]}tt.invert=tt;function Zt(t,e,n){return(t%=$)?e||n?et(At(t),Ct(e,n)):At(t):e||n?Ct(e,n):tt}function Mt(t){return function(e,n){return e+=t,B(e)>P&&(e-=Math.round(e/$)*$),[e,n]}}function At(t){var e=Mt(t);return e.invert=Mt(-t),e}function Ct(t,e){var n=U(t),i=I(t),s=U(e),o=I(e);function r(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*n+l*i;return[we(c*s-p*o,l*n-u*i),ye(p*s+c*o)]}return r.invert=function(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*s-c*o;return[we(c*s+u*o,l*n+p*i),ye(p*n-l*i)]},r}function li(t){t=Zt(t[0]*j,t[1]*j,t.length>2?t[2]*j:0);function e(n){return n=t(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n}return e.invert=function(n){return n=t.invert(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n},e}function ci(t,e,n,i,s,o){if(n){var r=U(e),a=I(e),h=i*n;s==null?(s=e+i*$,o=e-h/2):(s=bt(r,s),o=bt(r,o),(i>0?so)&&(s+=i*$));for(var d,l=s;i>0?l>o:l1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Be(t,e){return B(t[0]-e[0])=0;--a)s.point((c=l[a])[0],c[1]);else i(u.x,u.p.x,-1,s);u=u.p}u=u.o,l=u.z,p=!p}while(!u.v);s.lineEnd()}}}function Pt(t){if(e=t.length){for(var e,n=0,i=t[0],s;++n=0?1:-1,R=z*O,A=R>P,Y=f*C;if(h.add(we(Y*z*I(R),E*L+Y*U(R))),r+=A?O+z*$:O,A^m>=n^w>=n){var _=Ue(he(p),he(y));$e(_);var D=Ue(o,_);$e(D);var v=(A^O>=0?-1:1)*ye(D[2]);(i>v||i===v&&(_[0]||_[1]))&&(a+=A^O>=0?1:-1)}}return(r<-T||r0){for(h||(s.polygonStart(),h=!0),s.lineStart(),C=0;C1&&w&2&&x.push(x.pop().concat(x.shift())),l.push(x.filter(hi))}}return u}}function hi(t){return t.length>1}function fi(t,e){return((t=t.x)[0]<0?t[1]-X-T:X-t[1])-((e=e.x)[0]<0?e[1]-X-T:X-e[1])}const Lt=tn(function(){return!0},di,mi,[-P,-X]);function di(t){var e=NaN,n=NaN,i=NaN,s;return{lineStart:function(){t.lineStart(),s=1},point:function(o,r){var a=o>0?P:-P,h=B(o-e);B(h-P)0?X:-X),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(a,n),t.point(o,n),s=0):i!==a&&h>=P&&(B(e-i)T?Qt((I(e)*(o=U(i))*I(n)-I(i)*(s=U(e))*I(t))/(s*o*r)):(e+i)/2}function mi(t,e,n,i){var s;if(t==null)s=n*X,i.point(-P,s),i.point(0,s),i.point(P,s),i.point(P,0),i.point(P,-s),i.point(0,-s),i.point(-P,-s),i.point(-P,0),i.point(-P,s);else if(B(t[0]-e[0])>T){var o=t[0]0,s=B(e)>T;function o(l,c,u,p){ci(p,t,n,u,l,c)}function r(l,c){return U(l)*U(c)>e}function a(l){var c,u,p,m,g;return{lineStart:function(){m=p=!1,g=1},point:function(f,E){var S=[f,E],y,w=r(f,E),x=i?w?0:d(f,E):w?d(f+(f<0?P:-P),E):0;if(!c&&(m=p=w)&&l.lineStart(),w!==p&&(y=h(c,S),(!y||Be(c,y)||Be(S,y))&&(S[2]=1)),w!==p)g=0,w?(l.lineStart(),y=h(S,c),l.point(y[0],y[1])):(y=h(c,S),l.point(y[0],y[1],2),l.lineEnd()),c=y;else if(s&&c&&i^w){var C;!(x&u)&&(C=h(S,c,!0))&&(g=0,i?(l.lineStart(),l.point(C[0][0],C[0][1]),l.point(C[1][0],C[1][1]),l.lineEnd()):(l.point(C[1][0],C[1][1]),l.lineEnd(),l.lineStart(),l.point(C[0][0],C[0][1],3)))}w&&(!c||!Be(c,S))&&l.point(S[0],S[1]),c=S,p=w,u=x},lineEnd:function(){p&&l.lineEnd(),c=null},clean:function(){return g|(m&&p)<<1}}}function h(l,c,u){var p=he(l),m=he(c),g=[1,0,0],f=Ue(p,m),E=Ae(f,f),S=f[0],y=E-S*S;if(!y)return!u&&l;var w=e*E/y,x=-e*S/y,C=Ue(g,f),L=Ce(g,w),O=Ce(f,x);He(L,O);var z=C,R=Ae(L,z),A=Ae(z,z),Y=R*R-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-R-_)/A);if(He(D,L),D=Ze(D),!u)return D;var v=l[0],b=c[0],G=l[1],V=c[1],q;b0^D[1]<(B(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-R+_)/A);return He(oe,L),[D,Ze(oe)]}}}function d(l,c){var u=i?t:P-t,p=0;return l<-u?p|=1:l>u&&(p|=2),c<-u?p|=4:c>u&&(p|=8),p}return tn(r,a,o,i?[0,-t]:[-P,t-P])}function gi(t,e,n,i,s,o){var r=t[0],a=t[1],h=e[0],d=e[1],l=0,c=1,u=h-r,p=d-a,m;if(m=n-r,!(!u&&m>0)){if(m/=u,u<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=s-r,!(!u&&m<0)){if(m/=u,u<0){if(m>c)return;m>l&&(l=m)}else if(u>0){if(m0)){if(m/=p,p<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=o-a,!(!p&&m<0)){if(m/=p,p<0){if(m>c)return;m>l&&(l=m)}else if(p>0){if(m0&&(t[0]=r+l*u,t[1]=a+l*p),c<1&&(e[0]=r+c*u,e[1]=a+c*p),!0}}}}}var me=1e9,Pe=-me;function wi(t,e,n,i){function s(d,l){return t<=d&&d<=n&&e<=l&&l<=i}function o(d,l,c,u){var p=0,m=0;if(d==null||(p=r(d,c))!==(m=r(l,c))||h(d,l)<0^c>0)do u.point(p===0||p===3?t:n,p>1?i:e);while((p=(p+c+4)%4)!==m);else u.point(l[0],l[1])}function r(d,l){return B(d[0]-t)0?0:3:B(d[0]-n)0?2:1:B(d[1]-e)0?1:0:l>0?3:2}function a(d,l){return h(d.x,l.x)}function h(d,l){var c=r(d,1),u=r(l,1);return c!==u?c-u:c===0?l[1]-d[1]:c===1?d[0]-l[0]:c===2?d[1]-l[1]:l[0]-d[0]}return function(d){var l=d,c=$t(),u,p,m,g,f,E,S,y,w,x,C,L={point:O,lineStart:Y,lineEnd:_,polygonStart:R,polygonEnd:A};function O(v,b){s(v,b)&&l.point(v,b)}function z(){for(var v=0,b=0,G=p.length;bi&&(xe-ae)*(i-oe)>(ce-oe)*(t-ae)&&++v:ce<=i&&(xe-ae)*(i-oe)<(ce-oe)*(t-ae)&&--v;return v}function R(){l=c,u=[],p=[],C=!0}function A(){var v=z(),b=C&&v,G=(u=qt(u)).length;(b||G)&&(d.polygonStart(),b&&(d.lineStart(),o(null,null,1,d),d.lineEnd()),G&&en(u,a,v,o,d),d.polygonEnd()),l=d,u=p=m=null}function Y(){L.point=D,p&&p.push(m=[]),x=!0,w=!1,S=y=NaN}function _(){u&&(D(g,f),E&&w&&c.rejoin(),u.push(c.result())),L.point=O,w&&l.lineEnd()}function D(v,b){var G=s(v,b);if(p&&m.push([v,b]),x)g=v,f=b,E=G,x=!1,G&&(l.lineStart(),l.point(v,b));else if(G&&w)l.point(v,b);else{var V=[S=Math.max(Pe,Math.min(me,S)),y=Math.max(Pe,Math.min(me,y))],q=[v=Math.max(Pe,Math.min(me,v)),b=Math.max(Pe,Math.min(me,b))];gi(V,q,t,e,n,i)?(w||(l.lineStart(),l.point(V[0],V[1])),l.point(q[0],q[1]),G||l.lineEnd(),C=!1):G&&(l.lineStart(),l.point(v,b),C=!1)}S=v,y=b,w=G}return L}}const Ot=t=>t;var fe=1/0,Ie=fe,Se=-fe,je=Se,yi={point:Si,lineStart:pe,lineEnd:pe,polygonStart:pe,polygonEnd:pe,result:function(){var t=[[fe,Ie],[Se,je]];return Se=je=-(Ie=fe=1/0),t}};function Si(t,e){tSe&&(Se=t),eje&&(je=e)}const zt=yi;function ut(t){return function(e){var n=new nt;for(var i in t)n[i]=t[i];return n.stream=e,n}}function nt(){}nt.prototype={constructor:nt,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ht(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),i!=null&&t.clipExtent(null),ai(n,t.stream(zt)),e(zt.result()),i!=null&&t.clipExtent(i),t}function nn(t,e,n){return ht(t,function(i){var s=e[1][0]-e[0][0],o=e[1][1]-e[0][1],r=Math.min(s/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+e[0][0]+(s-r*(i[1][0]+i[0][0]))/2,h=+e[0][1]+(o-r*(i[1][1]+i[0][1]))/2;t.scale(150*r).translate([a,h])},n)}function Ei(t,e,n){return nn(t,[[0,0],e],n)}function xi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][0]-i[0][0]),r=(s-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];t.scale(150*o).translate([r,a])},n)}function Mi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][1]-i[0][1]),r=-o*i[0][0],a=(s-o*(i[1][1]+i[0][1]))/2;t.scale(150*o).translate([r,a])},n)}var Dt=16,Ai=U(30*j);function Tt(t,e){return+e?bi(t,e):Ci(t)}function Ci(t){return ut({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function bi(t,e){function n(i,s,o,r,a,h,d,l,c,u,p,m,g,f){var E=d-i,S=l-s,y=E*E+S*S;if(y>4*e&&g--){var w=r+u,x=a+p,C=h+m,L=Ne(w*w+x*x+C*C),O=ye(C/=L),z=B(B(C)-1)e||B((E*_+S*D)/y-.5)>.3||r*u+a*p+h*m2?v[2]%360*j:0,_()):[a*K,h*K,d*K]},A.angle=function(v){return arguments.length?(c=v%360*j,_()):c*K},A.reflectX=function(v){return arguments.length?(u=v?-1:1,_()):u<0},A.reflectY=function(v){return arguments.length?(p=v?-1:1,_()):p<0},A.precision=function(v){return arguments.length?(C=Tt(L,x=v*v),D()):Ne(x)},A.fitExtent=function(v,b){return nn(A,v,b)},A.fitSize=function(v,b){return Ei(A,v,b)},A.fitWidth=function(v,b){return xi(A,v,b)},A.fitHeight=function(v,b){return Mi(A,v,b)};function _(){var v=Rt(n,0,0,u,p,c).apply(null,e(o,r)),b=Rt(n,i-v[0],s-v[1],u,p,c);return l=Zt(a,h,d),L=et(e,b),O=et(l,L),C=Tt(L,x),D()}function D(){return z=R=null,A}return function(){return e=t.apply(this,arguments),A.invert=e.invert&&Y,_()}}function ft(t,e){return[t,ii(oi((X+e)/2))]}ft.invert=function(t,e){return[t,2*Qt(ni(e))-X]};function dt(){return Ti(ft).scale(961/$)}function Ti(t){var e=zi(t),n=e.center,i=e.scale,s=e.translate,o=e.clipExtent,r=null,a,h,d;e.scale=function(c){return arguments.length?(i(c),l()):i()},e.translate=function(c){return arguments.length?(s(c),l()):s()},e.center=function(c){return arguments.length?(n(c),l()):n()},e.clipExtent=function(c){return arguments.length?(c==null?r=a=h=d=null:(r=+c[0][0],a=+c[0][1],h=+c[1][0],d=+c[1][1]),l()):r==null?null:[[r,a],[h,d]]};function l(){var c=P*i(),u=e(li(e.rotate()).invert([0,0]));return o(r==null?[[u[0]-c,u[1]-c],[u[0]+c,u[1]+c]]:t===ft?[[Math.max(u[0]-c,r),a],[Math.min(u[0]+c,h),d]]:[[r,Math.max(u[1]-c,a)],[h,Math.min(u[1]+c,d)]])}return l()}class Qi extends lt{constructor(e,n={}){var s,o;super();let i={isOrthographic:!1};this.config=Object.assign({},i,n),this.canvas=e,this.scene=new xn,this.sizes=new Jn(this),this.time=new Xn(this),this.camera=new Zn(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new Qn(this),this.handleControlsChange=()=>{var r,a,h;this.renderer.update(),(a=(r=this.label3d)==null?void 0:r.update)==null||a.call(r),(h=this.updateTownLabelScale)==null||h.call(this)},(o=(s=this.camera.controls)==null?void 0:s.addEventListener)==null||o.call(s,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",r=>{this.update(r)})}setAxesHelper(e=250){if(!e)return!1;let n=new Mn(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,i,s;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(o=>{if(o instanceof re){o.geometry.dispose();for(const r in o.material){const a=o.material[r];a&&typeof a.dispose=="function"&&a.dispose()}}}),(s=(i=this.canvas)==null?void 0:i.parentNode)==null||s.removeChild(this.canvas)}}class Zi{constructor({material:e,time:n,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r,callback:a=()=>{}}){this.time=n,this.pointShader=null,this.callback=a;let h={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},h,{material:e,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r}),this.init()}init(){let{material:e,size:n,diffuseColor:i,diffuseSpeed:s,diffuseWidth:o}=this.options,r=n/s;e.onBeforeCompile=a=>{this.pointShader=a,this.callback(a,r),a.uniforms=Z(Q({},a.uniforms),{uTime:{value:0},uSpeed:{value:s},uWidth:{value:o},uColor:{value:new Ke(i)}}),a.vertexShader=a.vertexShader.replace("void main() {",` +var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var Fe=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var We=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Q=(t,e)=>{for(var n in e||(e={}))pt.call(e,n)&&We(t,n,e[n]);if(Me)for(var n of Me(e))mt.call(e,n)&&We(t,n,e[n]);return t},Z=(t,e)=>dn(t,pn(e));var vt=(t,e)=>{var n={};for(var i in t)pt.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&Me)for(var i of Me(t))e.indexOf(i)<0&&mt.call(t,i)&&(n[i]=t[i]);return n};var M=(t,e,n)=>(We(t,typeof e!="symbol"?e+"":e,n),n);var mn=function(t,e){this[0]=t,this[1]=e};var gt=t=>{var e=t[Fe("asyncIterator")],n=!1,i,s={};return e==null?(e=t[Fe("iterator")](),i=o=>s[o]=r=>e[o](r)):(e=e.call(t),i=o=>s[o]=r=>{if(n){if(n=!1,o==="throw")throw r;return r}return n=!0,{done:!1,value:new mn(new Promise(a=>{var h=e[o](r);if(!(h instanceof Object))throw TypeError("Object expected");a(h)}),1)}}),s[Fe("iterator")]=()=>s,i("next"),"throw"in e?i("throw"):s.throw=o=>{throw o},"return"in e&&i("return"),s};import{X as vn,Y as gn,S as wn,Z as yn,_ as Sn,$ as En,a0 as ke,a1 as xn,a2 as Mn,b as re,C as Ke,V as F,a3 as An,G as ve,a as ge,D as Cn,a4 as bn,z as it,w as De,m as kt,a5 as Ht,a6 as N,J as st,y as Yt,O as ot,a7 as rt,a8 as Pn,P as Ln,A as On,t as zn,a9 as Dn,aa as at,ab as Tn,I as wt,ac as qe,ad as ue,ae as Rn,af as Vt,ag as Te,ah as Re,ai as Jt,aj as Bn,ak as Ge,al as _n,am as Un,L as In,x as jn,T as Gn,E as Nn,an as Fn}from"./screen2Standard-41868f75-1784132792831.js";import{E as lt,q as Xt}from"./TopicSwitcher-2e4ca291-1784132792831.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1784132792831.js";function Vn(t){let e=null,n=!1,i=!1;function s(){!n||i||(t(),e=requestAnimationFrame(s))}function o(){n||(n=!0,s())}function r(){n&&(n=!1,i=!0,cancelAnimationFrame(e))}function a(){!n&&i&&(n=!0,i=!1,s())}return{start:o,pause:r,resume:a,isActive:()=>n}}class Jn extends lt{constructor({canvas:e,config:n={}}){super(),this.canvas=e,this.config=n||{},this.maxPixelRatio=Number(this.config.maxPixelRatio)||2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var i;const e=((i=this.canvas)==null?void 0:i.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1;const n=Number(this.config.maxPixelRatio)||this.maxPixelRatio||2;this.maxPixelRatio=n,this.pixelRatio=Math.min(window.devicePixelRatio||1,n)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Xn extends lt{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new vn,this.raf=Vn(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),i=this.clock.getElapsedTime();this.emit("tick",n,i)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function Kn(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),i=[],s;if(e=e||n.length,t)for(s=0;sqn(typeof t=="string"?JSON.parse(t):t);function qn(t){var n,i,s,o;let e=(t==null?void 0:t.features)||[];for(let r=0;r{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,i,s;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(s=(i=this.canvas)==null?void 0:i.removeEventListener)==null||s.call(i,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class $n{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let i=0;for(let s=0;s0){for(r=e[--n];n>0&&(i=r,s=e[--n],r=i+s,o=s-(r-i),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(s=o*2,i=r+s,s==i-r&&(r=i))}return r}}function*ei(t){for(const e of t)yield*gt(e)}function qt(t){return Array.from(ei(t))}var T=1e-6,ti=1e-12,P=Math.PI,X=P/2,yt=P/4,$=P*2,K=180/P,j=P/180,B=Math.abs,Qt=Math.atan,we=Math.atan2,U=Math.cos,ni=Math.exp,ii=Math.log,I=Math.sin,si=Math.sign||function(t){return t>0?1:t<0?-1:0},Ne=Math.sqrt,oi=Math.tan;function ri(t){return t>1?0:t<-1?P:Math.acos(t)}function ye(t){return t>1?X:t<-1?-X:Math.asin(t)}function pe(){}function _e(t,e){t&&Et.hasOwnProperty(t.type)&&Et[t.type](t,e)}var St={Feature:function(t,e){_e(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,s=n.length;++iP&&(t-=Math.round(t/$)*$),[t,e]}tt.invert=tt;function Zt(t,e,n){return(t%=$)?e||n?et(At(t),Ct(e,n)):At(t):e||n?Ct(e,n):tt}function Mt(t){return function(e,n){return e+=t,B(e)>P&&(e-=Math.round(e/$)*$),[e,n]}}function At(t){var e=Mt(t);return e.invert=Mt(-t),e}function Ct(t,e){var n=U(t),i=I(t),s=U(e),o=I(e);function r(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*n+l*i;return[we(c*s-p*o,l*n-u*i),ye(p*s+c*o)]}return r.invert=function(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*s-c*o;return[we(c*s+u*o,l*n+p*i),ye(p*n-l*i)]},r}function li(t){t=Zt(t[0]*j,t[1]*j,t.length>2?t[2]*j:0);function e(n){return n=t(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n}return e.invert=function(n){return n=t.invert(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n},e}function ci(t,e,n,i,s,o){if(n){var r=U(e),a=I(e),h=i*n;s==null?(s=e+i*$,o=e-h/2):(s=bt(r,s),o=bt(r,o),(i>0?so)&&(s+=i*$));for(var d,l=s;i>0?l>o:l1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Be(t,e){return B(t[0]-e[0])=0;--a)s.point((c=l[a])[0],c[1]);else i(u.x,u.p.x,-1,s);u=u.p}u=u.o,l=u.z,p=!p}while(!u.v);s.lineEnd()}}}function Pt(t){if(e=t.length){for(var e,n=0,i=t[0],s;++n=0?1:-1,R=z*O,A=R>P,Y=f*C;if(h.add(we(Y*z*I(R),E*L+Y*U(R))),r+=A?O+z*$:O,A^m>=n^w>=n){var _=Ue(he(p),he(y));$e(_);var D=Ue(o,_);$e(D);var v=(A^O>=0?-1:1)*ye(D[2]);(i>v||i===v&&(_[0]||_[1]))&&(a+=A^O>=0?1:-1)}}return(r<-T||r0){for(h||(s.polygonStart(),h=!0),s.lineStart(),C=0;C1&&w&2&&x.push(x.pop().concat(x.shift())),l.push(x.filter(hi))}}return u}}function hi(t){return t.length>1}function fi(t,e){return((t=t.x)[0]<0?t[1]-X-T:X-t[1])-((e=e.x)[0]<0?e[1]-X-T:X-e[1])}const Lt=tn(function(){return!0},di,mi,[-P,-X]);function di(t){var e=NaN,n=NaN,i=NaN,s;return{lineStart:function(){t.lineStart(),s=1},point:function(o,r){var a=o>0?P:-P,h=B(o-e);B(h-P)0?X:-X),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(a,n),t.point(o,n),s=0):i!==a&&h>=P&&(B(e-i)T?Qt((I(e)*(o=U(i))*I(n)-I(i)*(s=U(e))*I(t))/(s*o*r)):(e+i)/2}function mi(t,e,n,i){var s;if(t==null)s=n*X,i.point(-P,s),i.point(0,s),i.point(P,s),i.point(P,0),i.point(P,-s),i.point(0,-s),i.point(-P,-s),i.point(-P,0),i.point(-P,s);else if(B(t[0]-e[0])>T){var o=t[0]0,s=B(e)>T;function o(l,c,u,p){ci(p,t,n,u,l,c)}function r(l,c){return U(l)*U(c)>e}function a(l){var c,u,p,m,g;return{lineStart:function(){m=p=!1,g=1},point:function(f,E){var S=[f,E],y,w=r(f,E),x=i?w?0:d(f,E):w?d(f+(f<0?P:-P),E):0;if(!c&&(m=p=w)&&l.lineStart(),w!==p&&(y=h(c,S),(!y||Be(c,y)||Be(S,y))&&(S[2]=1)),w!==p)g=0,w?(l.lineStart(),y=h(S,c),l.point(y[0],y[1])):(y=h(c,S),l.point(y[0],y[1],2),l.lineEnd()),c=y;else if(s&&c&&i^w){var C;!(x&u)&&(C=h(S,c,!0))&&(g=0,i?(l.lineStart(),l.point(C[0][0],C[0][1]),l.point(C[1][0],C[1][1]),l.lineEnd()):(l.point(C[1][0],C[1][1]),l.lineEnd(),l.lineStart(),l.point(C[0][0],C[0][1],3)))}w&&(!c||!Be(c,S))&&l.point(S[0],S[1]),c=S,p=w,u=x},lineEnd:function(){p&&l.lineEnd(),c=null},clean:function(){return g|(m&&p)<<1}}}function h(l,c,u){var p=he(l),m=he(c),g=[1,0,0],f=Ue(p,m),E=Ae(f,f),S=f[0],y=E-S*S;if(!y)return!u&&l;var w=e*E/y,x=-e*S/y,C=Ue(g,f),L=Ce(g,w),O=Ce(f,x);He(L,O);var z=C,R=Ae(L,z),A=Ae(z,z),Y=R*R-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-R-_)/A);if(He(D,L),D=Ze(D),!u)return D;var v=l[0],b=c[0],G=l[1],V=c[1],q;b0^D[1]<(B(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-R+_)/A);return He(oe,L),[D,Ze(oe)]}}}function d(l,c){var u=i?t:P-t,p=0;return l<-u?p|=1:l>u&&(p|=2),c<-u?p|=4:c>u&&(p|=8),p}return tn(r,a,o,i?[0,-t]:[-P,t-P])}function gi(t,e,n,i,s,o){var r=t[0],a=t[1],h=e[0],d=e[1],l=0,c=1,u=h-r,p=d-a,m;if(m=n-r,!(!u&&m>0)){if(m/=u,u<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=s-r,!(!u&&m<0)){if(m/=u,u<0){if(m>c)return;m>l&&(l=m)}else if(u>0){if(m0)){if(m/=p,p<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=o-a,!(!p&&m<0)){if(m/=p,p<0){if(m>c)return;m>l&&(l=m)}else if(p>0){if(m0&&(t[0]=r+l*u,t[1]=a+l*p),c<1&&(e[0]=r+c*u,e[1]=a+c*p),!0}}}}}var me=1e9,Pe=-me;function wi(t,e,n,i){function s(d,l){return t<=d&&d<=n&&e<=l&&l<=i}function o(d,l,c,u){var p=0,m=0;if(d==null||(p=r(d,c))!==(m=r(l,c))||h(d,l)<0^c>0)do u.point(p===0||p===3?t:n,p>1?i:e);while((p=(p+c+4)%4)!==m);else u.point(l[0],l[1])}function r(d,l){return B(d[0]-t)0?0:3:B(d[0]-n)0?2:1:B(d[1]-e)0?1:0:l>0?3:2}function a(d,l){return h(d.x,l.x)}function h(d,l){var c=r(d,1),u=r(l,1);return c!==u?c-u:c===0?l[1]-d[1]:c===1?d[0]-l[0]:c===2?d[1]-l[1]:l[0]-d[0]}return function(d){var l=d,c=$t(),u,p,m,g,f,E,S,y,w,x,C,L={point:O,lineStart:Y,lineEnd:_,polygonStart:R,polygonEnd:A};function O(v,b){s(v,b)&&l.point(v,b)}function z(){for(var v=0,b=0,G=p.length;bi&&(xe-ae)*(i-oe)>(ce-oe)*(t-ae)&&++v:ce<=i&&(xe-ae)*(i-oe)<(ce-oe)*(t-ae)&&--v;return v}function R(){l=c,u=[],p=[],C=!0}function A(){var v=z(),b=C&&v,G=(u=qt(u)).length;(b||G)&&(d.polygonStart(),b&&(d.lineStart(),o(null,null,1,d),d.lineEnd()),G&&en(u,a,v,o,d),d.polygonEnd()),l=d,u=p=m=null}function Y(){L.point=D,p&&p.push(m=[]),x=!0,w=!1,S=y=NaN}function _(){u&&(D(g,f),E&&w&&c.rejoin(),u.push(c.result())),L.point=O,w&&l.lineEnd()}function D(v,b){var G=s(v,b);if(p&&m.push([v,b]),x)g=v,f=b,E=G,x=!1,G&&(l.lineStart(),l.point(v,b));else if(G&&w)l.point(v,b);else{var V=[S=Math.max(Pe,Math.min(me,S)),y=Math.max(Pe,Math.min(me,y))],q=[v=Math.max(Pe,Math.min(me,v)),b=Math.max(Pe,Math.min(me,b))];gi(V,q,t,e,n,i)?(w||(l.lineStart(),l.point(V[0],V[1])),l.point(q[0],q[1]),G||l.lineEnd(),C=!1):G&&(l.lineStart(),l.point(v,b),C=!1)}S=v,y=b,w=G}return L}}const Ot=t=>t;var fe=1/0,Ie=fe,Se=-fe,je=Se,yi={point:Si,lineStart:pe,lineEnd:pe,polygonStart:pe,polygonEnd:pe,result:function(){var t=[[fe,Ie],[Se,je]];return Se=je=-(Ie=fe=1/0),t}};function Si(t,e){tSe&&(Se=t),eje&&(je=e)}const zt=yi;function ut(t){return function(e){var n=new nt;for(var i in t)n[i]=t[i];return n.stream=e,n}}function nt(){}nt.prototype={constructor:nt,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ht(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),i!=null&&t.clipExtent(null),ai(n,t.stream(zt)),e(zt.result()),i!=null&&t.clipExtent(i),t}function nn(t,e,n){return ht(t,function(i){var s=e[1][0]-e[0][0],o=e[1][1]-e[0][1],r=Math.min(s/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+e[0][0]+(s-r*(i[1][0]+i[0][0]))/2,h=+e[0][1]+(o-r*(i[1][1]+i[0][1]))/2;t.scale(150*r).translate([a,h])},n)}function Ei(t,e,n){return nn(t,[[0,0],e],n)}function xi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][0]-i[0][0]),r=(s-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];t.scale(150*o).translate([r,a])},n)}function Mi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][1]-i[0][1]),r=-o*i[0][0],a=(s-o*(i[1][1]+i[0][1]))/2;t.scale(150*o).translate([r,a])},n)}var Dt=16,Ai=U(30*j);function Tt(t,e){return+e?bi(t,e):Ci(t)}function Ci(t){return ut({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function bi(t,e){function n(i,s,o,r,a,h,d,l,c,u,p,m,g,f){var E=d-i,S=l-s,y=E*E+S*S;if(y>4*e&&g--){var w=r+u,x=a+p,C=h+m,L=Ne(w*w+x*x+C*C),O=ye(C/=L),z=B(B(C)-1)e||B((E*_+S*D)/y-.5)>.3||r*u+a*p+h*m2?v[2]%360*j:0,_()):[a*K,h*K,d*K]},A.angle=function(v){return arguments.length?(c=v%360*j,_()):c*K},A.reflectX=function(v){return arguments.length?(u=v?-1:1,_()):u<0},A.reflectY=function(v){return arguments.length?(p=v?-1:1,_()):p<0},A.precision=function(v){return arguments.length?(C=Tt(L,x=v*v),D()):Ne(x)},A.fitExtent=function(v,b){return nn(A,v,b)},A.fitSize=function(v,b){return Ei(A,v,b)},A.fitWidth=function(v,b){return xi(A,v,b)},A.fitHeight=function(v,b){return Mi(A,v,b)};function _(){var v=Rt(n,0,0,u,p,c).apply(null,e(o,r)),b=Rt(n,i-v[0],s-v[1],u,p,c);return l=Zt(a,h,d),L=et(e,b),O=et(l,L),C=Tt(L,x),D()}function D(){return z=R=null,A}return function(){return e=t.apply(this,arguments),A.invert=e.invert&&Y,_()}}function ft(t,e){return[t,ii(oi((X+e)/2))]}ft.invert=function(t,e){return[t,2*Qt(ni(e))-X]};function dt(){return Ti(ft).scale(961/$)}function Ti(t){var e=zi(t),n=e.center,i=e.scale,s=e.translate,o=e.clipExtent,r=null,a,h,d;e.scale=function(c){return arguments.length?(i(c),l()):i()},e.translate=function(c){return arguments.length?(s(c),l()):s()},e.center=function(c){return arguments.length?(n(c),l()):n()},e.clipExtent=function(c){return arguments.length?(c==null?r=a=h=d=null:(r=+c[0][0],a=+c[0][1],h=+c[1][0],d=+c[1][1]),l()):r==null?null:[[r,a],[h,d]]};function l(){var c=P*i(),u=e(li(e.rotate()).invert([0,0]));return o(r==null?[[u[0]-c,u[1]-c],[u[0]+c,u[1]+c]]:t===ft?[[Math.max(u[0]-c,r),a],[Math.min(u[0]+c,h),d]]:[[r,Math.max(u[1]-c,a)],[h,Math.min(u[1]+c,d)]])}return l()}class Qi extends lt{constructor(e,n={}){var s,o;super();let i={isOrthographic:!1};this.config=Object.assign({},i,n),this.canvas=e,this.scene=new xn,this.sizes=new Jn(this),this.time=new Xn(this),this.camera=new Zn(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new Qn(this),this.handleControlsChange=()=>{var r,a,h;this.renderer.update(),(a=(r=this.label3d)==null?void 0:r.update)==null||a.call(r),(h=this.updateTownLabelScale)==null||h.call(this)},(o=(s=this.camera.controls)==null?void 0:s.addEventListener)==null||o.call(s,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",r=>{this.update(r)})}setAxesHelper(e=250){if(!e)return!1;let n=new Mn(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,i,s;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(o=>{if(o instanceof re){o.geometry.dispose();for(const r in o.material){const a=o.material[r];a&&typeof a.dispose=="function"&&a.dispose()}}}),(s=(i=this.canvas)==null?void 0:i.parentNode)==null||s.removeChild(this.canvas)}}class Zi{constructor({material:e,time:n,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r,callback:a=()=>{}}){this.time=n,this.pointShader=null,this.callback=a;let h={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},h,{material:e,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r}),this.init()}init(){let{material:e,size:n,diffuseColor:i,diffuseSpeed:s,diffuseWidth:o}=this.options,r=n/s;e.onBeforeCompile=a=>{this.pointShader=a,this.callback(a,r),a.uniforms=Z(Q({},a.uniforms),{uTime:{value:0},uSpeed:{value:s},uWidth:{value:o},uColor:{value:new Ke(i)}}),a.vertexShader=a.vertexShader.replace("void main() {",` varying vec3 vPosition; void main(){ vPosition = position; diff --git a/docs/assets/data-8833788f-1784132466083.js b/docs/assets/data-b4247fde-1784132792831.js similarity index 99% rename from docs/assets/data-8833788f-1784132466083.js rename to docs/assets/data-b4247fde-1784132792831.js index 51ee820..9ab614d 100644 --- a/docs/assets/data-8833788f-1784132466083.js +++ b/docs/assets/data-b4247fde-1784132792831.js @@ -1,4 +1,4 @@ -var oe=Object.defineProperty,re=Object.defineProperties;var se=Object.getOwnPropertyDescriptors;var Un=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var En=Math.pow,Rn=(n,e,t)=>e in n?oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,d=(n,e)=>{for(var t in e||(e={}))ie.call(e,t)&&Rn(n,t,e[t]);if(Un)for(var t of Un(e))ue.call(e,t)&&Rn(n,t,e[t]);return n},S=(n,e)=>re(n,se(e));import{d as le,c as C}from"./livestockData-36ec0ae2-1784132466083.js";import{h as ce,H as W}from"./townshipBoundaries-822b7d9e-1784132466083.js";const ge=`{ +var oe=Object.defineProperty,re=Object.defineProperties;var se=Object.getOwnPropertyDescriptors;var Un=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var En=Math.pow,Rn=(n,e,t)=>e in n?oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,d=(n,e)=>{for(var t in e||(e={}))ie.call(e,t)&&Rn(n,t,e[t]);if(Un)for(var t of Un(e))ue.call(e,t)&&Rn(n,t,e[t]);return n},S=(n,e)=>re(n,se(e));import{d as le,c as C}from"./livestockData-36ec0ae2-1784132792831.js";import{h as ce,H as W}from"./townshipBoundaries-822b7d9e-1784132792831.js";const ge=`{ "datasetName": "红原牦牛产业全链分类数据草稿", "generatedAt": "2026-07-01T19:47:37", "privacy": { @@ -16377,4 +16377,4 @@ var oe=Object.defineProperty,re=Object.defineProperties;var se=Object.getOwnProp } ] } -`,Se=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1784132466083.png",import.meta.url).href,M=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126},{key:"artificial-grassland",name:"人工种草",color:"#19ffc6",unit:"万亩",metricLabel:"种草面积",width:112},{key:"scale-breeding",name:"规模化养殖基地",color:"#46e7ff",unit:"个",metricLabel:"基地",width:132},{key:"breeding-selection",name:"选育/扩繁基地",color:"#7aefff",unit:"个",metricLabel:"基地",width:132},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#25cbe8",unit:"吨",metricLabel:"库容",width:126},{key:"milk-source-station",name:"奶源站",color:"#5cdfff",unit:"个",metricLabel:"站点",width:112},{key:"slaughter-processing",name:"屠宰与加工",color:"#1fafd2",unit:"万元",metricLabel:"产值",width:112},{key:"farm-equipment",name:"农机装备",color:"#30dcff",unit:"个",metricLabel:"装备",width:112},{key:"forage-trade",name:"牧草交易",color:"#19ffc6",unit:"个",metricLabel:"点位",width:112},{key:"social-service",name:"社会化服务",subName:"金融/疫病/保险/培训",color:"#8aefff",unit:"个",metricLabel:"主体",width:132}],N=le.map(n=>n.zoneName),ye=new Map(ce.map(n=>[n.name,n.center])),kn=JSON.parse(ge),fe=JSON.parse(de),we=JSON.parse(pe),v=JSON.parse(me),en=kn.categories||[],Te=new Map(en.map(n=>[n.categoryCode,n])),Pn=(fe.records||[]).map(n=>S(d({},n),{areaName:n.town,address:n.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),Fn=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),Ne=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),he=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],Ae=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],mn=en.flatMap(n=>(n.categoryCode==="YC-FAMILY-PASTURE"?Pn:n.items||[]).map(e=>{var t;return S(d({},e),{categoryCode:n.categoryCode,categoryName:n.categoryName,stageKey:n.industryStage,stageName:((t=E(n.industryStage))==null?void 0:t.name)||n.categoryName})})),V=mn.filter(c),Bn=new Map(mn.map(n=>[String(n.id),n])),U=m("YC-FAMILY-PASTURE"),K=m(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),Sn=m(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),k=m("YC-DISASTER-FORAGE-STORAGE"),A=m("YC-PROCESSING-PLANT"),R=m("YC-SLAUGHTERHOUSE"),yn=m("YC-FARM-EQUIPMENT"),fn=m("YC-DISEASE-CONTROL"),P=m("YC-TECH-TRAINING"),q=m("YC-SERVICE-FINANCE"),tn=m("YC-SERVICE-INSURANCE"),wn=h(U),rn=g(U,n=>s(n,["标准化暖棚 (㎡)"])),Ye=g(U,n=>s(n,["管理用房 (㎡)"])),In=g(U,n=>s(n,["饲草料库 (㎡)"])),xe=g(U,n=>s(n,["活动场地及通道 (㎡)"]));h(Sn);const J=h(k),be=h(K),Ce=g(K,n=>s(n,["设计存栏量 (头)"]));h(A);h(R);const sn=h(yn),un=h(fn),Dn=h(P),Tn=h(q),_n=h(tn),Le=en.filter(n=>m(n.categoryCode).some(c)).length;V.length;new Set(V.map(T).filter(Boolean)).size||N.length;const Me=Math.max(sn,C.reduce((n,e)=>n+Number(e.devices||0),0));g(Sn,n=>s(n,["种植面积 (亩)","acreage"])||H(n.scale));const G=g(k,n=>s(n,["总库容 (吨)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["设计存栏量 (头)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["年出栏量 (头)"]));const Gn=g(A,n=>s(n,["年产值 (万元)"])),Nn=g(A,n=>s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),hn=g(A,n=>s(n,["带动本地农户数"])),An=g(R,n=>s(n,["年总产值 (万元)"])),an=g(R,n=>s(n,["年屠宰总量 (头)"])),On=g(R,n=>s(n,["冷冻库容量 (吨)"])),X=Gn+An,O=Cn(q,n=>s(n,["最高单户贷款额度 (万元)"])),Ue=Cn(q,n=>s(n,["服务覆盖乡镇数"])),ln=Cn(tn,n=>s(n,["服务覆盖乡镇数"])),Hn=g(P,n=>s(n,["年培训场次"])),Q=g(P,n=>s(n,["年培训人次"])),Re=m("YC-BREEDING-BASE"),Ee=new Set(["YC-BREEDING-BASE"]),cn=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:Se,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],jn=Yt([...Sn,...k]),x=v.summary||{},Kn=v.projectRows||[],Fe=v.yearRows||[],Be=v.typeRows||[],ve=v.operationRows||[],ke=v.disturbanceRows||[],zn=[...v.townRows||[]].sort(f),Pe=v.investmentRows||[],Ie=we.plotRows||[],De=xt(),$n=bt(),vn=C.map(n=>({key:n.name,name:n.name,value:Number(n.devices||0),unit:"套",extra:`${p(n.count)}头识别样本`})).filter(n=>n.value>0).sort(f),_e=C.map(n=>({key:n.name,name:n.name,value:Number(n.count||0),unit:"头",extra:`${p(n.devices)}套设备`})).filter(n=>n.value>0).sort(f),Ge=ut();kn.generatedAt;const kt=k.map(xn),Pt=[...A,...R].map(xn),It=V.map(xn),Z=V.map(gt).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||n.stageOrder-e.stageOrder||String(n.name).localeCompare(String(e.name),"zh-CN"));function Dt(n={}){const e=String(n.featuredBaseKey||"").trim();if(e)return cn.find(a=>a.key===e)||null;const t=[n.name,n.fullName].filter(Boolean).map(a=>String(a));return cn.find(a=>a.aliases.some(r=>t.some(o=>o===r||o.includes(r)||r.includes(o))))||null}const Qn=M.reduce((n,e)=>n+b(e.key),0),Vn=new Set(M.flatMap(n=>nn(n.key).map(e=>e.town)).filter(Boolean)).size||N.length,_t=[{zh:"产业点位",name:"产业点位",value:Qn,unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"饲草库容",name:"饲草库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:Vn,unit:"个"}];function Oe(n){const e=Xe(n),t=_();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:wn,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:rn,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:In,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:xe,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:x.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:x.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:t.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:t.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:t.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:t.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:be,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:Ce,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(K,T),unit:"个"},{zh:"育种等级",name:"育种等级",value:He.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:J,unit:"个"},{zh:"总库容",name:"总库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(k,T),unit:"个"},{zh:"草种类型",name:"草种类型",value:jn.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"年收奶量",name:"年收奶量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:b("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:an,unit:"头"},{zh:"带动农户",name:"带动农户",value:hn,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:b("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:C.reduce((r,o)=>r+Number(o.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:C.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:C.reduce((r,o)=>r+Number(o.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易点位",name:"交易点位",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"交易草量",name:"交易草量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"social-service":[{zh:"服务点位",name:"服务点位",value:b("social-service"),unit:"个"},{zh:"最高授信",name:"最高授信",value:O,unit:"万元"},{zh:"培训人次",name:"培训人次",value:Q,unit:"人次"},{zh:"服务类型",name:"服务类型",value:$n.length,unit:"类"}]}[n]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(r=>({zh:r.label,name:r.label,value:r.value,unit:r.unit}))]).filter(r=>r.value!==void 0&&r.value!==null&&r.value!=="").slice(0,4)}const Gt=[{key:"chain-subject",name:"产业点位",value:Qn,unit:"个",icon:"town",extra:`${Le}类主体`},{key:"chain-town",name:"镇域覆盖",value:Vn,unit:"个",icon:"town",extra:"全链覆盖"},{key:"chain-output",name:"产业产值",value:w(X,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"},{key:"chain-forage",name:"饲草库容",value:G,unit:"吨",icon:"yield",extra:"防灾储备"}],Ot=M.map(n=>({key:n.key,name:n.name,value:b(n.key),unit:n.key==="family-pasture"?"处":"个",color:n.color})),gn=[{key:"family-pasture",name:"家庭生态牧场",value:wn,unit:"处",capacity:w(rn/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:w(rn/1e4,2),unit:"万㎡"},{label:"管理用房",value:w(Ye/1e4,2),unit:"万㎡"},{label:"饲草料库",value:w(In/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:x.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:x.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:_().baseCount,unit:"个",capacity:_().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:_().designStock,unit:"头"},{label:"年出栏",value:_().annualOutput,unit:"头"},{label:"覆盖乡镇",value:_().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:J,unit:"个",capacity:G,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:J,unit:"个"},{label:"总库容",value:G,unit:"吨"},{label:"覆盖乡镇",value:pn(k,T),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:b("slaughter-processing"),unit:"个",capacity:w(X,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:Gn,unit:"万元"},{label:"屠宰产值",value:w(An,1),unit:"万元"},{label:"年屠宰量",value:an,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:b("farm-equipment"),unit:"个",capacity:Me,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:b("farm-equipment"),unit:"个"},{label:"识别设备",value:C.reduce((n,e)=>n+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:C.length,unit:"个"}]},{key:"social-service",name:"社会化服务",value:b("social-service"),unit:"个",capacity:O,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:Tn,unit:"家"},{label:"最高授信",value:O,unit:"万元"},{label:"培训人次",value:Q,unit:"人次"}]}],He=St(),je=B(k,T,n=>s(n,["总库容 (吨)"])).map(n=>S(d({},n),{unit:"吨",extra:`${n.count}个库点`})),Ke=[{key:"milk-processing",name:"乳品加工",value:g(A.filter(Lt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:g(A.filter(Mt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:w(An,1),unit:"万元",color:"#8bf7ff"}].filter(n=>n.value>0),Ht=[{key:"raw-capacity",name:"年加工原料",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:an,unit:"头",extra:`${R.filter(c).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:hn,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:On,unit:"吨",extra:"屠宰冷链"}],jt=[{key:"finance",name:"金融服务",value:$(Ue,10),count:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务",value:$(ln,10),count:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训",value:$(Q,200),count:Dn,unit:"家",extra:`${p(Q)}人次`},{key:"disease",name:"疫病防控",value:$(un,4),count:un,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:$(sn,3),count:sn,unit:"个",extra:"服务主体"}],ze=[{key:"cutting",name:"割草地",headerName:"割草地"},{key:"storage",name:"储草基地",headerName:"储草基地",valuePrefix:"≥"},{key:"netFence",name:"网围栏种草",headerName:"网围栏"}],$e=[{key:"cutting",name:"割草地",color:"#37DDF3"},{key:"storage",name:"储草基地",color:"#8bf7ff"}];function qn(n){return Oe(n).map((e,t)=>({key:e.key||`${n}-metric-${t}`,name:e.name||e.zh||`指标${t+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function Qe(n){var u;const e=E(n),t=gn.find(i=>i.key===n),a=qn(n),r=a[0]||{key:`${n}-primary`,name:e.name,value:0,unit:e.unit||""},o=((u=t==null?void 0:t.fields)!=null&&u.length?t.fields:a.slice(1)).map((i,y)=>({key:i.key||`${n}-field-${y}`,name:i.label||i.name||`要点${y+1}`,value:i.value,unit:i.unit||"",extra:i.extra||(t==null?void 0:t.note)||e.metricLabel||""}));return[S(d({},r),{key:r.key||`${n}-spotlight-main`,name:r.name||e.name,extra:r.extra||(t==null?void 0:t.note)||e.metricLabel||"环节核心能力"}),...o].slice(0,4)}function Ve(n){return l(`${n}-right-metrics`,"环节核心指标","metric",qn(n))}function qe(n){return l(`${n}-right-spotlight`,"建设要点","spotlight",Qe(n))}function I(n,e=ee(n)){return[e,Ve(n),qe(n)]}function Kt(n){const e=E(n),t=yt(n),a={"family-pasture":{left:[l("family-town","家庭生态牧场乡镇分布","column",z(n),{variant:"townCompact",scrollable:!1,uniformColor:!0,fillHeight:!0}),l("family-unit","标准化建设配置","specGrid",tt(),{fillHeight:!0}),l("family-forage","乡镇割草地、储草基地面积","stackColumn",Yn(),{fillHeight:!0,unit:"亩",segments:$e,sharedScale:!0,showZero:!0,showValue:!0,totalLabel:"汇总面积"}),l("family-support-type","草料配套类型占比","structure",at(),{fillHeight:!0})],right:[ee(n),l("family-construction-year","年度建设节奏","line",rt(),{fixedType:!0}),l("family-net-fence","网围栏配套面积","rank",ot("netFence"),{unit:"亩"})]},"artificial-grassland":{left:[l("grass-town-area","人工种草乡镇面积","column",zn,{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("grass-year","年度项目建设面积","column",Fe,{variant:"plain",scrollable:!1,lineOverlay:!0}),l("grass-type","建设类型面积","structure",Be),l("grass-operation","作业方式面积","bar",ve)],right:[wt(),l("grass-investment","项目投资规模","rank",Pe),l("grass-disturbance","施工扰动面积","split",ke),l("grass-project-area","项目面积明细","specGrid",nt())]},"scale-breeding":{left:[l("breeding-town-count","乡镇养殖基地分布","column",Xn("baseCount","个","养殖基地"),{variant:"townCompact",scrollable:!1,axisLabelMode:"short",uniformColor:!0}),l("breeding-town-stock","设计存栏规模排名","bar",Wn("designStock","头","设计存栏"),{variant:"rankBar"}),l("breeding-town-output","年出栏区域贡献","structure",Je()),l("breeding-project-investment","重点示范项目投入","rank",Ze())],right:[...I(n,ft())]},"forage-storage":{left:[l("storage-town","库容镇域分布","column",z(n),{variant:"townCompact",scrollable:!1}),l("storage-point","储备库点排名","bar",Nt(),{variant:"rankBar"}),l("storage-grass","储备草种结构","structure",jn),l("storage-capacity","库容能力占比","split",z(n).filter(o=>Number(o.value||0)>0).slice(0,7))],right:[...I(n)]},"slaughter-processing":{left:[l("processing-value","产值结构","donut",Ke,{variant:"ring"}),l("processing-chain","产能与带动","structure",De),l("processing-heads","屠宰能力排名","bar",ht(),{variant:"rankBar"}),l("processing-town","加工点位乡镇分布","column",on([...A,...R],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[...I(n)]},"farm-equipment":{left:[l("equipment-device","识别设备分布","column",F(vn,{unit:"套",extra:"识别设备"}),{variant:"townCompact",scrollable:!1}),l("equipment-recognition","识别样本排名","bar",_e,{variant:"rankBar"}),l("equipment-service-town","农机服务主体分布","column",on(yn,"农机服务主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("equipment-device-structure","设备投放结构","structure",vn.filter(o=>Number(o.value||0)>0).slice(0,6))],right:[...I(n)]},"social-service":{left:[l("service-type","服务主体结构","donut",$n,{variant:"ring"}),l("service-town","服务镇域分布","column",on([...fn,...P,...q,...tn],"服务主体"),{variant:"townCompact",scrollable:!1}),l("service-training-town","培训人次分布","column",Tt(P,["年培训人次"],{unit:"人次",extra:"技术培训"}),{variant:"townCompact",scrollable:!1,lineOverlay:!0}),l("service-training","培训服务能力","line",At())],right:[...I(n)]}},r={left:[l(`${e.key}-rank`,`${e.metricLabel}分布`,"column",z(n),{variant:"townCompact",scrollable:!1}),l(`${e.key}-subject`,"主体结构","structure",t),l(`${e.key}-town`,"镇域覆盖分布","column",F(st(n),{unit:"个",extra:"镇域覆盖"}),{variant:"townCompact",scrollable:!1}),l(`${e.key}-capacity`,"能力规模分布","split",z(n).slice(0,7))],right:[...I(n)]};return a[n]||r}const zt=[{key:"support-capacity",name:"饲草储备能力",value:G,unit:"吨",extra:`${J}个库点`},{key:"processing-capacity",name:"加工原料规模",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:w(X,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:O,unit:"万元",extra:"金融服务"}];function E(n){return M.find(e=>e.key===n)||M[0]}function Xe(n){return gn.find(e=>e.key===n)||gn[0]}function z(n){if(n==="family-pasture")return F(et(),{unit:"处",extra:"家庭生态牧场"});if(n==="artificial-grassland")return zn;if(n==="breeding-selection"){const e=B(K,T,()=>1).map(t=>S(d({},t),{unit:"个",extra:"选育/扩繁基地"}));return F(e,{unit:"个",extra:"选育/扩繁基地"})}if(n==="scale-breeding"){const e=B(m("YC-BREEDING-BASE"),T,t=>s(t,["设计存栏量 (头)"])).map(t=>S(d({},t),{unit:"头",extra:`${t.count}个基地`}));return F(e,{unit:"头",extra:"养殖基地"})}return n==="forage-storage"?F(je,{unit:"吨",extra:"饲草储备"}):n==="slaughter-processing"?[...A,...R].filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(f).slice(0,7):n==="farm-equipment"?yn.filter(c).map(e=>{var t;return{key:e.id,name:j(e.name),value:1,unit:"个",extra:((t=e.attributes)==null?void 0:t.简称)||"农机服务"}}):n==="social-service"?[{key:"finance",name:"金融服务网点",value:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务网点",value:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训机构",value:Dn,unit:"家",extra:`${p(Hn)}场`},{key:"disease",name:"疫病防控主体",value:un,unit:"个",extra:"防疫服务"}]:[]}function We(){const n=new Map(N.map((e,t)=>[e,{key:e,name:e,sourceIndex:t,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return bn().forEach(e=>{const t=n.get(e.town);t&&(t.segments.baseCount+=1,t.segments.designStock+=Number(e.numericValue||e.value||0),t.segments.annualOutput+=Number(e.annualOutput||0))}),N.map(e=>n.get(e))}function Xn(n,e,t){return We().map((a,r)=>{var i;const o=Number(((i=a.segments)==null?void 0:i[n])||0),u=o>0;return{key:`${a.key}-${n}`,name:a.name,rawValue:o,value:u?o:.001,displayValue:u?o:"0",unit:e,extra:t,zero:!u,sourceIndex:r}})}function Wn(n,e,t){return Xn(n,e,t).filter(a=>a.rawValue>0).map(a=>S(d({},a),{value:a.rawValue,displayValue:a.rawValue})).sort(f)}function Je(){const n=Wn("annualOutput","头","年出栏"),e=n.reduce((o,u)=>o+Number(u.value||0),0);if(!e)return[];const t=n.slice(0,3),a=n.slice(3);return(a.length?[...t,{key:"other-towns-annual-output",name:"其他乡镇",value:a.reduce((o,u)=>o+Number(u.value||0),0),unit:"头"}]:t).map(o=>S(d({},o),{extra:`占比 ${p(Number(o.value||0)/e*100)}%`}))}function Ze(){return cn.map(n=>({key:n.key,name:n.name.replace(/标准化养殖基地/g,"基地").replace(/综合养殖基地/g,"基地"),value:Number(n.projectInvestment||0),unit:"万元",extra:`${n.town} · ${n.tag}`})).filter(n=>n.value>0).sort(f)}function nt(){return Kn.map(n=>({key:n.key,name:n.name,value:Number(n.actualAreaMu||n.value||0),unit:"亩",extra:n.year?`${n.year}年`:n.category||"实测面积"})).filter(n=>n.value>0).sort(f)}function et(){const n=new Map(B(U,T,()=>1).map(e=>[e.name,e]));return N.map(e=>{const t=n.get(e);return{key:e,name:e,value:Number((t==null?void 0:t.value)||0),unit:"处",extra:"家庭生态牧场"}})}function tt(){const n=new Map;return U.filter(c).forEach(e=>{const t=s(e,["标准化暖棚 (㎡)"]),a=s(e,["管理用房 (㎡)"]),r=s(e,["饲草料库 (㎡)"]),o=s(e,["活动场地及通道 (㎡)"]),u=`${p(t)}㎡暖棚 + ${p(a)}㎡管理房`,i=`${t}-${a}-${r}-${o}`,y=n.get(i)||{key:i,name:u,value:0,unit:"处",specs:[{label:"饲草料库",value:r,unit:"㎡"},{label:"活动场地",value:o,unit:"㎡"}]};y.value+=1,n.set(i,y)}),[...n.values()].sort(f)}function Yn(){const n=new Map(N.map(e=>[e,{key:e,name:e,unit:"亩",segments:{cutting:0,storage:0,netFence:0}}]));return U.filter(c).forEach(e=>{const t=T(e),a=n.get(t);if(!a)return;const r=e.grassSupportType,o=Number(e.grassSupportMu||0);o&&(r==="割草地"&&(a.segments.cutting+=o),r==="储草基地"&&(a.segments.storage+=o),r==="网围栏种草"&&(a.segments.netFence+=o))}),[...n.values()]}function at(){const n=Yn();return ze.map(e=>{const t=n.reduce((r,o)=>{var u;return r+Number(((u=o.segments)==null?void 0:u[e.key])||0)},0),a=n.filter(r=>{var o;return Number(((o=r.segments)==null?void 0:o[e.key])||0)>0}).length;return{key:e.key,name:e.name,value:t,unit:"亩",extra:`覆盖${a}个乡镇`}})}function ot(n=""){return Yn().map(e=>{var a;const t=n?Number(((a=e.segments)==null?void 0:a[n])||0):Object.values(e.segments||{}).reduce((r,o)=>r+Number(o||0),0);return{key:e.key,name:e.name,value:t,unit:"亩",extra:n==="netFence"?"网围栏种草":"草料配套"}}).filter(e=>e.value>0).sort(f)}function rt(){return B(U.filter(c),n=>String(n.constructionYear||"未标注"),()=>1).map(n=>S(d({},n),{name:n.name==="未标注"?n.name:`${n.name}年`,unit:"处",extra:"建成牧场"})).sort((n,e)=>String(n.key).localeCompare(String(e.key),"zh-CN"))}function st(n){return B(it(n),T,()=>1).map(e=>S(d({},e),{unit:"个",extra:`${e.count}条`}))}function $t(n={}){const e=Ut(n);if(!e)return[];const t=[],a=e.metrics||{},r=e.attributes||{},o=(u,i,y="",Y={})=>{te(i)||t.push(d({label:u,value:Et(i,y)},Y))};return e.categoryCode==="YC-FAMILY-PASTURE"?(o("户主",e.owner||r.户主),o("建设年份",e.constructionYear,"年"),o("所在村",e.village),o("标准化暖棚",a["标准化暖棚 (㎡)"],"㎡"),o("生产管理用房",a["管理用房 (㎡)"],"㎡"),o("饲草料库",a["饲草料库 (㎡)"],"㎡"),o("活动场地及通道",a["活动场地及通道 (㎡)"],"㎡"),o("草料配套",e.grassSupportText||r.草料配套,"",{wide:!0}),t):(o("运营单位",r.运营单位),o("育种等级",r.育种等级),o("育种方向",r.主要育种方向),o("设计存栏",a["设计存栏量 (头)"],"头"),o("年出栏量",a["年出栏量 (头)"],"头"),o("种植面积",a["种植面积 (亩)"]||e.scale,e.scale?"":"亩"),o("总库容",a["总库容 (吨)"],"吨"),o("年产值",a["年产值 (万元)"]||a["年总产值 (万元)"],"万元"),o("年加工量",a["年加工鲜奶总量 (吨)"]||a["年加工原料肉总量 (吨)"],"吨"),o("年屠宰量",a["年屠宰总量 (头)"],"头"),o("服务覆盖",a.服务覆盖乡镇数,"个乡镇"),o("最高授信",a["最高单户贷款额度 (万元)"],"万元"),o("主要产品",r.主要产品),o("主要草种",r.主要草种||r.储备草种),t.slice(0,8))}function m(n){return(Array.isArray(n)?n:[n]).flatMap(t=>{const a=Te.get(t);return(t==="YC-FAMILY-PASTURE"?Pn:(a==null?void 0:a.items)||[]).map(o=>{var u;return S(d({},o),{categoryCode:a.categoryCode,categoryName:a.categoryName,stageKey:a.industryStage,stageName:((u=E(a.industryStage))==null?void 0:u.name)||a.categoryName})})})}function it(n){return n==="scale-breeding"?Re.filter(c):n==="breeding-selection"?K.filter(c):n==="milk-source-station"||n==="forage-trade"?[]:V.filter(e=>e.stageKey===n)}function nn(n){return n==="artificial-grassland"?Ie:n==="farm-equipment"?Ge:n==="scale-breeding"?bn():n==="breeding-selection"?Z.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>S(d({},e),{stageKey:n,stageName:E(n).name,stageOrder:M.findIndex(t=>t.key===n)})):Z.filter(e=>e.stageKey===n&&e.canLocate)}function b(n){return n==="family-pasture"?wn:nn(n).length}function ut(){return C.map((n,e)=>{const t=ye.get(n.name),a=Number(t==null?void 0:t[0]),r=Number(t==null?void 0:t[1]);if(!dn(a,r))return null;const o=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,u=`${n.name}农机装备监测点`,i=Number(n.devices||0),y=Number(n.count||0);return{key:o,id:o,name:u,fullName:u,stageKey:"farm-equipment",stageName:E("farm-equipment").name,stageOrder:M.findIndex(Y=>Y.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:n.name,address:`${n.name}乡镇中心`,status:"监测样本",value:i,unit:"套",numericValue:i,valueText:`${p(i)}套`,extra:`${p(y)}头识别样本`,longitude:a,latitude:r,locateText:"定位",canLocate:!0,searchText:[u,"农机装备",n.name,`${i}套`,`${y}头识别样本`].join(" ")}}).filter(Boolean).sort((n,e)=>e.numericValue-n.numericValue||String(n.name).localeCompare(String(e.name),"zh-CN"))}function c(n={}){var a;const e=L(n.name),t=L((a=n.attributes)==null?void 0:a.序号);return!(!e||Fn.has(e)||Ne.has(n.categoryCode)||Ae.some(r=>r.test(e))||t&&Fn.has(t)&&!lt(n)||he.some(r=>r.test(e)))}function h(n=[]){return n.filter(c).length}function lt(n={}){return Object.values(n.metrics||{}).some(e=>H(e)>0)}function xn(n={}){var t,a,r,o;const e=Jn(n);return{key:String(n.id||n.name),name:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:T(n),address:n.address||n.village||n.areaFullName||"",status:n.status||"",products:((t=n.attributes)==null?void 0:t.主要产品)||((a=n.attributes)==null?void 0:a.主要草种)||((r=n.attributes)==null?void 0:r.储备草种)||((o=n.attributes)==null?void 0:o.主要育种方向)||"",capacity:e,capacityUnit:Zn(n),outputValue:s(n,["年产值 (万元)","年总产值 (万元)"]),longitude:n.longitude,latitude:n.latitude}}function ct(n={}){const e=Jn(n),t=Zn(n),a=T(n);return{key:String(n.id||n.name),name:j(n.name),fullName:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:a||"全县",address:n.address||n.village||n.areaFullName||"",status:n.status||"待完善",value:e,unit:t,numericValue:Number(e)||0,valueText:pt(n,e,t),extra:mt(n),sourceSheet:n.sourceSheet}}function gt(n={}){var Ln,Mn;const e=ct(n),t=Ct(n),a=E(n.stageKey),r=L(n.name),o=L(n.categoryName).replace(/^cxpt/i,""),u=L(n.address||n.village||n.areaFullName||""),i=n.attributes||{},y=n.metrics||{},Y=[r,e.name,a==null?void 0:a.name,o,e.town,u,i.简称,i.运营单位,i.主要产品,i.主要草种,i.储备草种,i.主要育种方向,n.owner,n.village,n.constructionYear,n.facilityBrief,n.grassSupportText,y["主要贷款产品(可多选)"],e.valueText,e.extra,n.sourceSheet].filter(Boolean).join(" ");return S(d({},e),{name:e.name,fullName:r,stageName:(a==null?void 0:a.name)||e.stageName||"",stageOrder:M.findIndex(ae=>ae.key===n.stageKey),categoryName:o,address:u,longitude:(Ln=t==null?void 0:t.longitude)!=null?Ln:"",latitude:(Mn=t==null?void 0:t.latitude)!=null?Mn:"",locateText:t?"定位":"暂无",canLocate:!!t,owner:n.owner||i.户主||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||i.设施配置||"",grassSupportText:n.grassSupportText||i.草料配套||"",pointName:n.pointName||"",preferCoordinateMatch:n.categoryCode==="YC-FAMILY-PASTURE",ledgerName:n.categoryCode==="YC-FAMILY-PASTURE"?n.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,n.village].filter(Boolean).join(" · "),facilityCompact:n.categoryCode==="YC-FAMILY-PASTURE"?dt(n.facilityBrief):n.facilityBrief||"",annualOutput:n.categoryCode==="YC-BREEDING-BASE"?s(n,["年出栏量 (头)"]):0,searchText:Y})}function bn(){return Z.filter(n=>Ee.has(n.categoryCode)&&n.canLocate)}function _(){const n=bn();return{baseCount:n.length,designStock:n.reduce((e,t)=>e+Number(t.numericValue||t.value||0),0),annualOutput:n.reduce((e,t)=>e+Number(t.annualOutput||0),0),townCount:new Set(n.map(e=>e.town).filter(Boolean)).size}}function dt(n=""){return String(n).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Jn(n={}){var e,t;return n.stageKey==="family-pasture"?1:n.categoryCode==="YC-BREEDING-STOCK"?((e=n.attributes)==null?void 0:e.育种等级)||"待完善":n.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?H(n.scale)||1:n.categoryCode==="YC-BREEDING-BASE"?s(n,["设计存栏量 (头)"]):n.categoryCode==="YC-FORAGE-BASE"?s(n,["种植面积 (亩)"]):n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?s(n,["总库容 (吨)"]):n.categoryCode==="YC-PROCESSING-PLANT"?s(n,["年产值 (万元)"])||s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):n.categoryCode==="YC-SLAUGHTERHOUSE"?s(n,["年总产值 (万元)"])||s(n,["年屠宰总量 (头)"]):n.categoryCode==="YC-SERVICE-FINANCE"?s(n,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):n.categoryCode==="YC-SERVICE-INSURANCE"?s(n,["服务覆盖乡镇数"]):n.categoryCode==="YC-TECH-TRAINING"?s(n,["年培训人次","年培训场次"]):(t=n.categoryCode)!=null&&t.startsWith("YC-CXPT")?H(n.scale)||s(n,["acreage"]):s(n,Object.keys(n.metrics||{}))||1}function Zn(n={}){var e;return n.stageKey==="family-pasture"?"处":n.categoryCode==="YC-BREEDING-STOCK"?"":n.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(n.categoryCode)?"亩":n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":n.categoryCode==="YC-PROCESSING-PLANT"||n.categoryCode==="YC-SLAUGHTERHOUSE"||n.categoryCode==="YC-SERVICE-FINANCE"?"万元":n.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":n.categoryCode==="YC-TECH-TRAINING"?"人次":(e=n.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function pt(n,e,t){return n.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${p(e)}${t||""}`:String(e||"")}function mt(n={}){const e=n.attributes||{},t=n.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||t["主要贷款产品(可多选)"]||n.sourceSheet||""}function St(){const n=new Map;return K.forEach(e=>{var r;const t=L((r=e.attributes)==null?void 0:r.育种等级)||"待完善",a=n.get(t)||{key:t,name:t,value:0,unit:"个"};a.value+=1,n.set(t,a)}),[...n.values()].sort((e,t)=>{var r,o;const a={省级:0,县级:1,待完善:2};return((r=a[e.name])!=null?r:9)-((o=a[t.name])!=null?o:9)})}function yt(n){return en.filter(e=>e.industryStage===n).map(e=>{const t=h(m(e.categoryCode));return{key:e.categoryCode,name:e.categoryName.replace(/^cxpt/,""),value:t,unit:"条",extra:E(n).name}}).filter(e=>e.value>0).sort(f)}function l(n,e,t,a,r={}){return d({key:n,title:e,height:227,renderer:"business",type:t,rows:a},r)}function ne(n){return n==="family-pasture"?Z.filter(e=>e.stageKey===n):n?nn(n):M.flatMap(e=>nn(e.key))}function ee(n){const e=E(n),t=ne(n);return n==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:t,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:t,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function ft(){return{key:"scale-breeding-location-list",title:"养殖基地定位",height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:ne("scale-breeding").slice().sort((e,t)=>String(e.town||"").localeCompare(String(t.town||""),"zh-CN")||String(e.name||"").localeCompare(String(t.name||""),"zh-CN")),maxRows:300,searchPlaceholder:"搜索养殖基地 / 乡镇",emptyText:"无匹配养殖基地",columns:[{key:"name",label:"养殖基地",field:"name",width:"46%",className:"business-project-col-name"},{key:"town",label:"区域",field:"town",width:"32%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",action:"locate"}],searchKeys:["name","fullName","town","address","searchText"]}}function wt(){return{key:"artificial-grassland-business-ledger",title:"项目建设台账",renderer:"business",type:"projectTable",rows:Kn,fixedHeight:!0,rowSelectOnClick:!1,showSearch:!1,maxRows:6,emptyText:"暂无项目建设台账",columns:[{key:"name",label:"项目",field:"name",width:"48%",className:"business-project-col-name"},{key:"year",label:"年度",field:"year",width:"16%",align:"center"},{key:"area",label:"实测面积",field:"actualAreaMu",width:"36%",align:"right",strong:!0,unit:"亩"}],searchKeys:["name","fullName","year","category","towns","searchText"]}}function Tt(n=[],e=[],t={}){const a=B(n,T,r=>s(r,e)).map(r=>S(d({},r),{unit:t.unit||"",extra:t.extra||`${r.count}个点位`}));return F(a,t)}function on(n=[],e="点位"){const t=B(n,T,()=>1).map(a=>S(d({},a),{unit:"个",extra:e}));return F(t,{unit:"个",extra:e})}function Nt(){return k.filter(c).map(n=>{var e;return{key:n.id,name:j(n.name),value:s(n,["总库容 (吨)"]),unit:"吨",extra:s(n,["发放次数"])||((e=n.attributes)==null?void 0:e.储备草种)||"储备库"}}).filter(n=>n.value>0).sort(f).slice(0,8)}function ht(){return R.filter(c).map(n=>({key:n.id,name:j(n.name),value:s(n,["年屠宰总量 (头)"]),unit:"头",extra:`${p(s(n,["冷冻库容量 (吨)"]))}吨冷链`})).filter(n=>n.value>0).sort(f).slice(0,7)}function At(){const n=P.filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年培训人次"]),unit:"人次",extra:`${p(s(e,["年培训场次"]))}场`})).filter(e=>e.value>0).sort(f).slice(0,7);return n.length?n:[{key:"sessions",name:"年培训场次",value:Hn,unit:"场"},{key:"persons",name:"年培训人次",value:Q,unit:"人次"}]}function Yt(n){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],t=new Map(e.map(a=>[a.key,{key:a.key,name:a.name,value:0,unit:"处"}]));return n.filter(c).forEach(a=>{var i,y;const r=[(i=a.attributes)==null?void 0:i.主要草种,(y=a.attributes)==null?void 0:y.储备草种].filter(Boolean).join("、"),o=e.filter(Y=>Y.key!=="other"&&Y.pattern.test(r));(o.length?o:[e[e.length-1]]).forEach(Y=>{t.get(Y.key).value+=1})}),[...t.values()].filter(a=>a.value>0).sort(f)}function xt(){return[{key:"raw-capacity",name:"原料加工",value:Nn,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:an,unit:"头"},{key:"farmer-driven",name:"带动农户",value:hn,unit:"户"},{key:"cold-storage",name:"冷链能力",value:On,unit:"吨"}].filter(n=>n.value>0)}function bt(){return[{key:"finance",name:"金融",value:q.filter(c).length,unit:"家"},{key:"insurance",name:"保险",value:tn.filter(c).length,unit:"家"},{key:"training",name:"培训",value:P.filter(c).length,unit:"家"},{key:"disease",name:"防疫",value:fn.filter(c).length,unit:"个"}].filter(n=>n.value>0)}function B(n,e,t){const a=new Map;return n.filter(c).forEach(r=>{const o=L(typeof e=="function"?e(r):r[e])||"未填写",u=a.get(o)||{key:o,name:o,value:0,count:0,extra:""};u.value+=Number(t(r)||0),u.count+=1,a.set(o,u)}),[...a.values()].sort(f)}function F(n=[],e={}){const t=new Map;return n.forEach(a=>{const r=L(a==null?void 0:a.name),o=N.find(u=>u===r)||N.find(u=>{const i=u.replace(/[镇乡]$/,"");return i.length>=2&&r.includes(i)});o&&t.set(o,a)}),N.map((a,r)=>{const o=t.get(a),u=Number((o==null?void 0:o.value)||0),i=Number.isFinite(u)&&u>0;return{key:(o==null?void 0:o.key)||a,name:a,value:i?u:.001,displayValue:i?o.displayValue:"0",scaleValue:o==null?void 0:o.scaleValue,unit:(o==null?void 0:o.unit)||e.unit||"",extra:(o==null?void 0:o.extra)||e.extra||"",color:o==null?void 0:o.color,zero:!i,sourceIndex:r}})}function s(n={},e=[]){const t=n.metrics||{},a=Array.isArray(e)?e:[e];for(const r of a)if(Object.prototype.hasOwnProperty.call(t,r)){const o=H(t[r]);if(o||o===0)return o}return 0}function H(n){if(typeof n=="number")return Number.isFinite(n)?n:0;if(te(n))return 0;const e=String(n).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const t=e.match(/-?\d+(?:\.\d+)?/);if(!t)return 0;let a=Number(t[0]);return e.includes("万亩")&&!e.includes("万元")&&(a*=1e4),Number.isFinite(a)?a:0}function T(n={}){const e=L(n.town||n.areaName);if(N.includes(e))return e;const t=[n.town,n.areaName,n.areaFullName,n.address,n.village,n.name].filter(Boolean).join(" "),a=N.find(r=>t.includes(r));return a||N.find(r=>{const o=r.replace(/[镇乡]$/,"");return o.length>=2&&t.includes(o)})||e}function Ct(n={}){const e=D(n.longitude),t=D(n.latitude);if(dn(e,t))return{longitude:e,latitude:t};const a=Object.values(n.locations||{}).find(r=>dn(D(r==null?void 0:r.longitude),D(r==null?void 0:r.latitude)));return a?{longitude:D(a.longitude),latitude:D(a.latitude)}:null}function dn(n,e){const t=Number(n),a=Number(e);return Number.isFinite(t)&&Number.isFinite(a)&&t>=W.west&&t<=W.east&&a>=W.south&&a<=W.north}function D(n){if(n==null||n==="")return NaN;const e=Number(n);return Number.isFinite(e)?e:NaN}function Lt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function Mt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function Ut(n={}){const e=String(n.id||"");return e&&Bn.has(e)?Bn.get(e):mn.find(t=>t.name===n.name&&t.categoryCode===n.categoryCode)}function $(n,e){return Math.max(12,Math.min(100,Math.round(Number(n||0)/e*100)))}function g(n,e){return n.filter(c).reduce((t,a)=>t+Number(e(a)||0),0)}function Cn(n,e){return n.filter(c).reduce((t,a)=>Math.max(t,Number(e(a)||0)),0)}function pn(n,e){return new Set(n.filter(c).map(e).filter(Boolean)).size}function f(n,e){return e.value-n.value||e.count-n.count||String(n.name).localeCompare(String(e.name),"zh-CN")}function j(n=""){return String(n).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function L(n){return String(n!=null?n:"").replace(/\s+/g," ").trim()}function te(n){return n==null||String(n).trim()===""||String(n).trim().toLowerCase()==="nan"}function Rt(n){return typeof n=="number"?p(n):H(n)&&String(n).match(/^\s*[约≈]?\d/)?String(n):String(n!=null?n:"")}function Et(n,e=""){const t=Rt(n);return!e||typeof n=="string"&&t.includes(e.replace(/^个/,""))?t:`${t}${e}`}function p(n){const e=Number(n||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function w(n,e=0){const t=En(10,e);return Math.round(Number(n||0)*t)/t}export{Kt as a,et as b,Dt as c,$t as d,Oe as e,_t as f,E as g,Gt as h,M as i,gn as j,He as k,je as l,Ke as m,jt as n,zt as o,Ht as p,kt as q,Pt as r,Ot as s,It as t,Z as u}; +`,Se=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1784132792831.png",import.meta.url).href,M=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126},{key:"artificial-grassland",name:"人工种草",color:"#19ffc6",unit:"万亩",metricLabel:"种草面积",width:112},{key:"scale-breeding",name:"规模化养殖基地",color:"#46e7ff",unit:"个",metricLabel:"基地",width:132},{key:"breeding-selection",name:"选育/扩繁基地",color:"#7aefff",unit:"个",metricLabel:"基地",width:132},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#25cbe8",unit:"吨",metricLabel:"库容",width:126},{key:"milk-source-station",name:"奶源站",color:"#5cdfff",unit:"个",metricLabel:"站点",width:112},{key:"slaughter-processing",name:"屠宰与加工",color:"#1fafd2",unit:"万元",metricLabel:"产值",width:112},{key:"farm-equipment",name:"农机装备",color:"#30dcff",unit:"个",metricLabel:"装备",width:112},{key:"forage-trade",name:"牧草交易",color:"#19ffc6",unit:"个",metricLabel:"点位",width:112},{key:"social-service",name:"社会化服务",subName:"金融/疫病/保险/培训",color:"#8aefff",unit:"个",metricLabel:"主体",width:132}],N=le.map(n=>n.zoneName),ye=new Map(ce.map(n=>[n.name,n.center])),kn=JSON.parse(ge),fe=JSON.parse(de),we=JSON.parse(pe),v=JSON.parse(me),en=kn.categories||[],Te=new Map(en.map(n=>[n.categoryCode,n])),Pn=(fe.records||[]).map(n=>S(d({},n),{areaName:n.town,address:n.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),Fn=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),Ne=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),he=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],Ae=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],mn=en.flatMap(n=>(n.categoryCode==="YC-FAMILY-PASTURE"?Pn:n.items||[]).map(e=>{var t;return S(d({},e),{categoryCode:n.categoryCode,categoryName:n.categoryName,stageKey:n.industryStage,stageName:((t=E(n.industryStage))==null?void 0:t.name)||n.categoryName})})),V=mn.filter(c),Bn=new Map(mn.map(n=>[String(n.id),n])),U=m("YC-FAMILY-PASTURE"),K=m(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),Sn=m(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),k=m("YC-DISASTER-FORAGE-STORAGE"),A=m("YC-PROCESSING-PLANT"),R=m("YC-SLAUGHTERHOUSE"),yn=m("YC-FARM-EQUIPMENT"),fn=m("YC-DISEASE-CONTROL"),P=m("YC-TECH-TRAINING"),q=m("YC-SERVICE-FINANCE"),tn=m("YC-SERVICE-INSURANCE"),wn=h(U),rn=g(U,n=>s(n,["标准化暖棚 (㎡)"])),Ye=g(U,n=>s(n,["管理用房 (㎡)"])),In=g(U,n=>s(n,["饲草料库 (㎡)"])),xe=g(U,n=>s(n,["活动场地及通道 (㎡)"]));h(Sn);const J=h(k),be=h(K),Ce=g(K,n=>s(n,["设计存栏量 (头)"]));h(A);h(R);const sn=h(yn),un=h(fn),Dn=h(P),Tn=h(q),_n=h(tn),Le=en.filter(n=>m(n.categoryCode).some(c)).length;V.length;new Set(V.map(T).filter(Boolean)).size||N.length;const Me=Math.max(sn,C.reduce((n,e)=>n+Number(e.devices||0),0));g(Sn,n=>s(n,["种植面积 (亩)","acreage"])||H(n.scale));const G=g(k,n=>s(n,["总库容 (吨)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["设计存栏量 (头)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["年出栏量 (头)"]));const Gn=g(A,n=>s(n,["年产值 (万元)"])),Nn=g(A,n=>s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),hn=g(A,n=>s(n,["带动本地农户数"])),An=g(R,n=>s(n,["年总产值 (万元)"])),an=g(R,n=>s(n,["年屠宰总量 (头)"])),On=g(R,n=>s(n,["冷冻库容量 (吨)"])),X=Gn+An,O=Cn(q,n=>s(n,["最高单户贷款额度 (万元)"])),Ue=Cn(q,n=>s(n,["服务覆盖乡镇数"])),ln=Cn(tn,n=>s(n,["服务覆盖乡镇数"])),Hn=g(P,n=>s(n,["年培训场次"])),Q=g(P,n=>s(n,["年培训人次"])),Re=m("YC-BREEDING-BASE"),Ee=new Set(["YC-BREEDING-BASE"]),cn=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:Se,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],jn=Yt([...Sn,...k]),x=v.summary||{},Kn=v.projectRows||[],Fe=v.yearRows||[],Be=v.typeRows||[],ve=v.operationRows||[],ke=v.disturbanceRows||[],zn=[...v.townRows||[]].sort(f),Pe=v.investmentRows||[],Ie=we.plotRows||[],De=xt(),$n=bt(),vn=C.map(n=>({key:n.name,name:n.name,value:Number(n.devices||0),unit:"套",extra:`${p(n.count)}头识别样本`})).filter(n=>n.value>0).sort(f),_e=C.map(n=>({key:n.name,name:n.name,value:Number(n.count||0),unit:"头",extra:`${p(n.devices)}套设备`})).filter(n=>n.value>0).sort(f),Ge=ut();kn.generatedAt;const kt=k.map(xn),Pt=[...A,...R].map(xn),It=V.map(xn),Z=V.map(gt).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||n.stageOrder-e.stageOrder||String(n.name).localeCompare(String(e.name),"zh-CN"));function Dt(n={}){const e=String(n.featuredBaseKey||"").trim();if(e)return cn.find(a=>a.key===e)||null;const t=[n.name,n.fullName].filter(Boolean).map(a=>String(a));return cn.find(a=>a.aliases.some(r=>t.some(o=>o===r||o.includes(r)||r.includes(o))))||null}const Qn=M.reduce((n,e)=>n+b(e.key),0),Vn=new Set(M.flatMap(n=>nn(n.key).map(e=>e.town)).filter(Boolean)).size||N.length,_t=[{zh:"产业点位",name:"产业点位",value:Qn,unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"饲草库容",name:"饲草库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:Vn,unit:"个"}];function Oe(n){const e=Xe(n),t=_();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:wn,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:rn,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:In,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:xe,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:x.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:x.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:t.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:t.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:t.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:t.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:be,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:Ce,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(K,T),unit:"个"},{zh:"育种等级",name:"育种等级",value:He.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:J,unit:"个"},{zh:"总库容",name:"总库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(k,T),unit:"个"},{zh:"草种类型",name:"草种类型",value:jn.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"年收奶量",name:"年收奶量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:b("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:an,unit:"头"},{zh:"带动农户",name:"带动农户",value:hn,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:b("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:C.reduce((r,o)=>r+Number(o.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:C.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:C.reduce((r,o)=>r+Number(o.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易点位",name:"交易点位",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"交易草量",name:"交易草量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"social-service":[{zh:"服务点位",name:"服务点位",value:b("social-service"),unit:"个"},{zh:"最高授信",name:"最高授信",value:O,unit:"万元"},{zh:"培训人次",name:"培训人次",value:Q,unit:"人次"},{zh:"服务类型",name:"服务类型",value:$n.length,unit:"类"}]}[n]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(r=>({zh:r.label,name:r.label,value:r.value,unit:r.unit}))]).filter(r=>r.value!==void 0&&r.value!==null&&r.value!=="").slice(0,4)}const Gt=[{key:"chain-subject",name:"产业点位",value:Qn,unit:"个",icon:"town",extra:`${Le}类主体`},{key:"chain-town",name:"镇域覆盖",value:Vn,unit:"个",icon:"town",extra:"全链覆盖"},{key:"chain-output",name:"产业产值",value:w(X,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"},{key:"chain-forage",name:"饲草库容",value:G,unit:"吨",icon:"yield",extra:"防灾储备"}],Ot=M.map(n=>({key:n.key,name:n.name,value:b(n.key),unit:n.key==="family-pasture"?"处":"个",color:n.color})),gn=[{key:"family-pasture",name:"家庭生态牧场",value:wn,unit:"处",capacity:w(rn/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:w(rn/1e4,2),unit:"万㎡"},{label:"管理用房",value:w(Ye/1e4,2),unit:"万㎡"},{label:"饲草料库",value:w(In/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:x.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:x.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:_().baseCount,unit:"个",capacity:_().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:_().designStock,unit:"头"},{label:"年出栏",value:_().annualOutput,unit:"头"},{label:"覆盖乡镇",value:_().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:J,unit:"个",capacity:G,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:J,unit:"个"},{label:"总库容",value:G,unit:"吨"},{label:"覆盖乡镇",value:pn(k,T),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:b("slaughter-processing"),unit:"个",capacity:w(X,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:Gn,unit:"万元"},{label:"屠宰产值",value:w(An,1),unit:"万元"},{label:"年屠宰量",value:an,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:b("farm-equipment"),unit:"个",capacity:Me,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:b("farm-equipment"),unit:"个"},{label:"识别设备",value:C.reduce((n,e)=>n+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:C.length,unit:"个"}]},{key:"social-service",name:"社会化服务",value:b("social-service"),unit:"个",capacity:O,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:Tn,unit:"家"},{label:"最高授信",value:O,unit:"万元"},{label:"培训人次",value:Q,unit:"人次"}]}],He=St(),je=B(k,T,n=>s(n,["总库容 (吨)"])).map(n=>S(d({},n),{unit:"吨",extra:`${n.count}个库点`})),Ke=[{key:"milk-processing",name:"乳品加工",value:g(A.filter(Lt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:g(A.filter(Mt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:w(An,1),unit:"万元",color:"#8bf7ff"}].filter(n=>n.value>0),Ht=[{key:"raw-capacity",name:"年加工原料",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:an,unit:"头",extra:`${R.filter(c).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:hn,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:On,unit:"吨",extra:"屠宰冷链"}],jt=[{key:"finance",name:"金融服务",value:$(Ue,10),count:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务",value:$(ln,10),count:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训",value:$(Q,200),count:Dn,unit:"家",extra:`${p(Q)}人次`},{key:"disease",name:"疫病防控",value:$(un,4),count:un,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:$(sn,3),count:sn,unit:"个",extra:"服务主体"}],ze=[{key:"cutting",name:"割草地",headerName:"割草地"},{key:"storage",name:"储草基地",headerName:"储草基地",valuePrefix:"≥"},{key:"netFence",name:"网围栏种草",headerName:"网围栏"}],$e=[{key:"cutting",name:"割草地",color:"#37DDF3"},{key:"storage",name:"储草基地",color:"#8bf7ff"}];function qn(n){return Oe(n).map((e,t)=>({key:e.key||`${n}-metric-${t}`,name:e.name||e.zh||`指标${t+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function Qe(n){var u;const e=E(n),t=gn.find(i=>i.key===n),a=qn(n),r=a[0]||{key:`${n}-primary`,name:e.name,value:0,unit:e.unit||""},o=((u=t==null?void 0:t.fields)!=null&&u.length?t.fields:a.slice(1)).map((i,y)=>({key:i.key||`${n}-field-${y}`,name:i.label||i.name||`要点${y+1}`,value:i.value,unit:i.unit||"",extra:i.extra||(t==null?void 0:t.note)||e.metricLabel||""}));return[S(d({},r),{key:r.key||`${n}-spotlight-main`,name:r.name||e.name,extra:r.extra||(t==null?void 0:t.note)||e.metricLabel||"环节核心能力"}),...o].slice(0,4)}function Ve(n){return l(`${n}-right-metrics`,"环节核心指标","metric",qn(n))}function qe(n){return l(`${n}-right-spotlight`,"建设要点","spotlight",Qe(n))}function I(n,e=ee(n)){return[e,Ve(n),qe(n)]}function Kt(n){const e=E(n),t=yt(n),a={"family-pasture":{left:[l("family-town","家庭生态牧场乡镇分布","column",z(n),{variant:"townCompact",scrollable:!1,uniformColor:!0,fillHeight:!0}),l("family-unit","标准化建设配置","specGrid",tt(),{fillHeight:!0}),l("family-forage","乡镇割草地、储草基地面积","stackColumn",Yn(),{fillHeight:!0,unit:"亩",segments:$e,sharedScale:!0,showZero:!0,showValue:!0,totalLabel:"汇总面积"}),l("family-support-type","草料配套类型占比","structure",at(),{fillHeight:!0})],right:[ee(n),l("family-construction-year","年度建设节奏","line",rt(),{fixedType:!0}),l("family-net-fence","网围栏配套面积","rank",ot("netFence"),{unit:"亩"})]},"artificial-grassland":{left:[l("grass-town-area","人工种草乡镇面积","column",zn,{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("grass-year","年度项目建设面积","column",Fe,{variant:"plain",scrollable:!1,lineOverlay:!0}),l("grass-type","建设类型面积","structure",Be),l("grass-operation","作业方式面积","bar",ve)],right:[wt(),l("grass-investment","项目投资规模","rank",Pe),l("grass-disturbance","施工扰动面积","split",ke),l("grass-project-area","项目面积明细","specGrid",nt())]},"scale-breeding":{left:[l("breeding-town-count","乡镇养殖基地分布","column",Xn("baseCount","个","养殖基地"),{variant:"townCompact",scrollable:!1,axisLabelMode:"short",uniformColor:!0}),l("breeding-town-stock","设计存栏规模排名","bar",Wn("designStock","头","设计存栏"),{variant:"rankBar"}),l("breeding-town-output","年出栏区域贡献","structure",Je()),l("breeding-project-investment","重点示范项目投入","rank",Ze())],right:[...I(n,ft())]},"forage-storage":{left:[l("storage-town","库容镇域分布","column",z(n),{variant:"townCompact",scrollable:!1}),l("storage-point","储备库点排名","bar",Nt(),{variant:"rankBar"}),l("storage-grass","储备草种结构","structure",jn),l("storage-capacity","库容能力占比","split",z(n).filter(o=>Number(o.value||0)>0).slice(0,7))],right:[...I(n)]},"slaughter-processing":{left:[l("processing-value","产值结构","donut",Ke,{variant:"ring"}),l("processing-chain","产能与带动","structure",De),l("processing-heads","屠宰能力排名","bar",ht(),{variant:"rankBar"}),l("processing-town","加工点位乡镇分布","column",on([...A,...R],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[...I(n)]},"farm-equipment":{left:[l("equipment-device","识别设备分布","column",F(vn,{unit:"套",extra:"识别设备"}),{variant:"townCompact",scrollable:!1}),l("equipment-recognition","识别样本排名","bar",_e,{variant:"rankBar"}),l("equipment-service-town","农机服务主体分布","column",on(yn,"农机服务主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("equipment-device-structure","设备投放结构","structure",vn.filter(o=>Number(o.value||0)>0).slice(0,6))],right:[...I(n)]},"social-service":{left:[l("service-type","服务主体结构","donut",$n,{variant:"ring"}),l("service-town","服务镇域分布","column",on([...fn,...P,...q,...tn],"服务主体"),{variant:"townCompact",scrollable:!1}),l("service-training-town","培训人次分布","column",Tt(P,["年培训人次"],{unit:"人次",extra:"技术培训"}),{variant:"townCompact",scrollable:!1,lineOverlay:!0}),l("service-training","培训服务能力","line",At())],right:[...I(n)]}},r={left:[l(`${e.key}-rank`,`${e.metricLabel}分布`,"column",z(n),{variant:"townCompact",scrollable:!1}),l(`${e.key}-subject`,"主体结构","structure",t),l(`${e.key}-town`,"镇域覆盖分布","column",F(st(n),{unit:"个",extra:"镇域覆盖"}),{variant:"townCompact",scrollable:!1}),l(`${e.key}-capacity`,"能力规模分布","split",z(n).slice(0,7))],right:[...I(n)]};return a[n]||r}const zt=[{key:"support-capacity",name:"饲草储备能力",value:G,unit:"吨",extra:`${J}个库点`},{key:"processing-capacity",name:"加工原料规模",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:w(X,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:O,unit:"万元",extra:"金融服务"}];function E(n){return M.find(e=>e.key===n)||M[0]}function Xe(n){return gn.find(e=>e.key===n)||gn[0]}function z(n){if(n==="family-pasture")return F(et(),{unit:"处",extra:"家庭生态牧场"});if(n==="artificial-grassland")return zn;if(n==="breeding-selection"){const e=B(K,T,()=>1).map(t=>S(d({},t),{unit:"个",extra:"选育/扩繁基地"}));return F(e,{unit:"个",extra:"选育/扩繁基地"})}if(n==="scale-breeding"){const e=B(m("YC-BREEDING-BASE"),T,t=>s(t,["设计存栏量 (头)"])).map(t=>S(d({},t),{unit:"头",extra:`${t.count}个基地`}));return F(e,{unit:"头",extra:"养殖基地"})}return n==="forage-storage"?F(je,{unit:"吨",extra:"饲草储备"}):n==="slaughter-processing"?[...A,...R].filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(f).slice(0,7):n==="farm-equipment"?yn.filter(c).map(e=>{var t;return{key:e.id,name:j(e.name),value:1,unit:"个",extra:((t=e.attributes)==null?void 0:t.简称)||"农机服务"}}):n==="social-service"?[{key:"finance",name:"金融服务网点",value:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务网点",value:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训机构",value:Dn,unit:"家",extra:`${p(Hn)}场`},{key:"disease",name:"疫病防控主体",value:un,unit:"个",extra:"防疫服务"}]:[]}function We(){const n=new Map(N.map((e,t)=>[e,{key:e,name:e,sourceIndex:t,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return bn().forEach(e=>{const t=n.get(e.town);t&&(t.segments.baseCount+=1,t.segments.designStock+=Number(e.numericValue||e.value||0),t.segments.annualOutput+=Number(e.annualOutput||0))}),N.map(e=>n.get(e))}function Xn(n,e,t){return We().map((a,r)=>{var i;const o=Number(((i=a.segments)==null?void 0:i[n])||0),u=o>0;return{key:`${a.key}-${n}`,name:a.name,rawValue:o,value:u?o:.001,displayValue:u?o:"0",unit:e,extra:t,zero:!u,sourceIndex:r}})}function Wn(n,e,t){return Xn(n,e,t).filter(a=>a.rawValue>0).map(a=>S(d({},a),{value:a.rawValue,displayValue:a.rawValue})).sort(f)}function Je(){const n=Wn("annualOutput","头","年出栏"),e=n.reduce((o,u)=>o+Number(u.value||0),0);if(!e)return[];const t=n.slice(0,3),a=n.slice(3);return(a.length?[...t,{key:"other-towns-annual-output",name:"其他乡镇",value:a.reduce((o,u)=>o+Number(u.value||0),0),unit:"头"}]:t).map(o=>S(d({},o),{extra:`占比 ${p(Number(o.value||0)/e*100)}%`}))}function Ze(){return cn.map(n=>({key:n.key,name:n.name.replace(/标准化养殖基地/g,"基地").replace(/综合养殖基地/g,"基地"),value:Number(n.projectInvestment||0),unit:"万元",extra:`${n.town} · ${n.tag}`})).filter(n=>n.value>0).sort(f)}function nt(){return Kn.map(n=>({key:n.key,name:n.name,value:Number(n.actualAreaMu||n.value||0),unit:"亩",extra:n.year?`${n.year}年`:n.category||"实测面积"})).filter(n=>n.value>0).sort(f)}function et(){const n=new Map(B(U,T,()=>1).map(e=>[e.name,e]));return N.map(e=>{const t=n.get(e);return{key:e,name:e,value:Number((t==null?void 0:t.value)||0),unit:"处",extra:"家庭生态牧场"}})}function tt(){const n=new Map;return U.filter(c).forEach(e=>{const t=s(e,["标准化暖棚 (㎡)"]),a=s(e,["管理用房 (㎡)"]),r=s(e,["饲草料库 (㎡)"]),o=s(e,["活动场地及通道 (㎡)"]),u=`${p(t)}㎡暖棚 + ${p(a)}㎡管理房`,i=`${t}-${a}-${r}-${o}`,y=n.get(i)||{key:i,name:u,value:0,unit:"处",specs:[{label:"饲草料库",value:r,unit:"㎡"},{label:"活动场地",value:o,unit:"㎡"}]};y.value+=1,n.set(i,y)}),[...n.values()].sort(f)}function Yn(){const n=new Map(N.map(e=>[e,{key:e,name:e,unit:"亩",segments:{cutting:0,storage:0,netFence:0}}]));return U.filter(c).forEach(e=>{const t=T(e),a=n.get(t);if(!a)return;const r=e.grassSupportType,o=Number(e.grassSupportMu||0);o&&(r==="割草地"&&(a.segments.cutting+=o),r==="储草基地"&&(a.segments.storage+=o),r==="网围栏种草"&&(a.segments.netFence+=o))}),[...n.values()]}function at(){const n=Yn();return ze.map(e=>{const t=n.reduce((r,o)=>{var u;return r+Number(((u=o.segments)==null?void 0:u[e.key])||0)},0),a=n.filter(r=>{var o;return Number(((o=r.segments)==null?void 0:o[e.key])||0)>0}).length;return{key:e.key,name:e.name,value:t,unit:"亩",extra:`覆盖${a}个乡镇`}})}function ot(n=""){return Yn().map(e=>{var a;const t=n?Number(((a=e.segments)==null?void 0:a[n])||0):Object.values(e.segments||{}).reduce((r,o)=>r+Number(o||0),0);return{key:e.key,name:e.name,value:t,unit:"亩",extra:n==="netFence"?"网围栏种草":"草料配套"}}).filter(e=>e.value>0).sort(f)}function rt(){return B(U.filter(c),n=>String(n.constructionYear||"未标注"),()=>1).map(n=>S(d({},n),{name:n.name==="未标注"?n.name:`${n.name}年`,unit:"处",extra:"建成牧场"})).sort((n,e)=>String(n.key).localeCompare(String(e.key),"zh-CN"))}function st(n){return B(it(n),T,()=>1).map(e=>S(d({},e),{unit:"个",extra:`${e.count}条`}))}function $t(n={}){const e=Ut(n);if(!e)return[];const t=[],a=e.metrics||{},r=e.attributes||{},o=(u,i,y="",Y={})=>{te(i)||t.push(d({label:u,value:Et(i,y)},Y))};return e.categoryCode==="YC-FAMILY-PASTURE"?(o("户主",e.owner||r.户主),o("建设年份",e.constructionYear,"年"),o("所在村",e.village),o("标准化暖棚",a["标准化暖棚 (㎡)"],"㎡"),o("生产管理用房",a["管理用房 (㎡)"],"㎡"),o("饲草料库",a["饲草料库 (㎡)"],"㎡"),o("活动场地及通道",a["活动场地及通道 (㎡)"],"㎡"),o("草料配套",e.grassSupportText||r.草料配套,"",{wide:!0}),t):(o("运营单位",r.运营单位),o("育种等级",r.育种等级),o("育种方向",r.主要育种方向),o("设计存栏",a["设计存栏量 (头)"],"头"),o("年出栏量",a["年出栏量 (头)"],"头"),o("种植面积",a["种植面积 (亩)"]||e.scale,e.scale?"":"亩"),o("总库容",a["总库容 (吨)"],"吨"),o("年产值",a["年产值 (万元)"]||a["年总产值 (万元)"],"万元"),o("年加工量",a["年加工鲜奶总量 (吨)"]||a["年加工原料肉总量 (吨)"],"吨"),o("年屠宰量",a["年屠宰总量 (头)"],"头"),o("服务覆盖",a.服务覆盖乡镇数,"个乡镇"),o("最高授信",a["最高单户贷款额度 (万元)"],"万元"),o("主要产品",r.主要产品),o("主要草种",r.主要草种||r.储备草种),t.slice(0,8))}function m(n){return(Array.isArray(n)?n:[n]).flatMap(t=>{const a=Te.get(t);return(t==="YC-FAMILY-PASTURE"?Pn:(a==null?void 0:a.items)||[]).map(o=>{var u;return S(d({},o),{categoryCode:a.categoryCode,categoryName:a.categoryName,stageKey:a.industryStage,stageName:((u=E(a.industryStage))==null?void 0:u.name)||a.categoryName})})})}function it(n){return n==="scale-breeding"?Re.filter(c):n==="breeding-selection"?K.filter(c):n==="milk-source-station"||n==="forage-trade"?[]:V.filter(e=>e.stageKey===n)}function nn(n){return n==="artificial-grassland"?Ie:n==="farm-equipment"?Ge:n==="scale-breeding"?bn():n==="breeding-selection"?Z.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>S(d({},e),{stageKey:n,stageName:E(n).name,stageOrder:M.findIndex(t=>t.key===n)})):Z.filter(e=>e.stageKey===n&&e.canLocate)}function b(n){return n==="family-pasture"?wn:nn(n).length}function ut(){return C.map((n,e)=>{const t=ye.get(n.name),a=Number(t==null?void 0:t[0]),r=Number(t==null?void 0:t[1]);if(!dn(a,r))return null;const o=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,u=`${n.name}农机装备监测点`,i=Number(n.devices||0),y=Number(n.count||0);return{key:o,id:o,name:u,fullName:u,stageKey:"farm-equipment",stageName:E("farm-equipment").name,stageOrder:M.findIndex(Y=>Y.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:n.name,address:`${n.name}乡镇中心`,status:"监测样本",value:i,unit:"套",numericValue:i,valueText:`${p(i)}套`,extra:`${p(y)}头识别样本`,longitude:a,latitude:r,locateText:"定位",canLocate:!0,searchText:[u,"农机装备",n.name,`${i}套`,`${y}头识别样本`].join(" ")}}).filter(Boolean).sort((n,e)=>e.numericValue-n.numericValue||String(n.name).localeCompare(String(e.name),"zh-CN"))}function c(n={}){var a;const e=L(n.name),t=L((a=n.attributes)==null?void 0:a.序号);return!(!e||Fn.has(e)||Ne.has(n.categoryCode)||Ae.some(r=>r.test(e))||t&&Fn.has(t)&&!lt(n)||he.some(r=>r.test(e)))}function h(n=[]){return n.filter(c).length}function lt(n={}){return Object.values(n.metrics||{}).some(e=>H(e)>0)}function xn(n={}){var t,a,r,o;const e=Jn(n);return{key:String(n.id||n.name),name:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:T(n),address:n.address||n.village||n.areaFullName||"",status:n.status||"",products:((t=n.attributes)==null?void 0:t.主要产品)||((a=n.attributes)==null?void 0:a.主要草种)||((r=n.attributes)==null?void 0:r.储备草种)||((o=n.attributes)==null?void 0:o.主要育种方向)||"",capacity:e,capacityUnit:Zn(n),outputValue:s(n,["年产值 (万元)","年总产值 (万元)"]),longitude:n.longitude,latitude:n.latitude}}function ct(n={}){const e=Jn(n),t=Zn(n),a=T(n);return{key:String(n.id||n.name),name:j(n.name),fullName:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:a||"全县",address:n.address||n.village||n.areaFullName||"",status:n.status||"待完善",value:e,unit:t,numericValue:Number(e)||0,valueText:pt(n,e,t),extra:mt(n),sourceSheet:n.sourceSheet}}function gt(n={}){var Ln,Mn;const e=ct(n),t=Ct(n),a=E(n.stageKey),r=L(n.name),o=L(n.categoryName).replace(/^cxpt/i,""),u=L(n.address||n.village||n.areaFullName||""),i=n.attributes||{},y=n.metrics||{},Y=[r,e.name,a==null?void 0:a.name,o,e.town,u,i.简称,i.运营单位,i.主要产品,i.主要草种,i.储备草种,i.主要育种方向,n.owner,n.village,n.constructionYear,n.facilityBrief,n.grassSupportText,y["主要贷款产品(可多选)"],e.valueText,e.extra,n.sourceSheet].filter(Boolean).join(" ");return S(d({},e),{name:e.name,fullName:r,stageName:(a==null?void 0:a.name)||e.stageName||"",stageOrder:M.findIndex(ae=>ae.key===n.stageKey),categoryName:o,address:u,longitude:(Ln=t==null?void 0:t.longitude)!=null?Ln:"",latitude:(Mn=t==null?void 0:t.latitude)!=null?Mn:"",locateText:t?"定位":"暂无",canLocate:!!t,owner:n.owner||i.户主||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||i.设施配置||"",grassSupportText:n.grassSupportText||i.草料配套||"",pointName:n.pointName||"",preferCoordinateMatch:n.categoryCode==="YC-FAMILY-PASTURE",ledgerName:n.categoryCode==="YC-FAMILY-PASTURE"?n.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,n.village].filter(Boolean).join(" · "),facilityCompact:n.categoryCode==="YC-FAMILY-PASTURE"?dt(n.facilityBrief):n.facilityBrief||"",annualOutput:n.categoryCode==="YC-BREEDING-BASE"?s(n,["年出栏量 (头)"]):0,searchText:Y})}function bn(){return Z.filter(n=>Ee.has(n.categoryCode)&&n.canLocate)}function _(){const n=bn();return{baseCount:n.length,designStock:n.reduce((e,t)=>e+Number(t.numericValue||t.value||0),0),annualOutput:n.reduce((e,t)=>e+Number(t.annualOutput||0),0),townCount:new Set(n.map(e=>e.town).filter(Boolean)).size}}function dt(n=""){return String(n).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Jn(n={}){var e,t;return n.stageKey==="family-pasture"?1:n.categoryCode==="YC-BREEDING-STOCK"?((e=n.attributes)==null?void 0:e.育种等级)||"待完善":n.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?H(n.scale)||1:n.categoryCode==="YC-BREEDING-BASE"?s(n,["设计存栏量 (头)"]):n.categoryCode==="YC-FORAGE-BASE"?s(n,["种植面积 (亩)"]):n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?s(n,["总库容 (吨)"]):n.categoryCode==="YC-PROCESSING-PLANT"?s(n,["年产值 (万元)"])||s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):n.categoryCode==="YC-SLAUGHTERHOUSE"?s(n,["年总产值 (万元)"])||s(n,["年屠宰总量 (头)"]):n.categoryCode==="YC-SERVICE-FINANCE"?s(n,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):n.categoryCode==="YC-SERVICE-INSURANCE"?s(n,["服务覆盖乡镇数"]):n.categoryCode==="YC-TECH-TRAINING"?s(n,["年培训人次","年培训场次"]):(t=n.categoryCode)!=null&&t.startsWith("YC-CXPT")?H(n.scale)||s(n,["acreage"]):s(n,Object.keys(n.metrics||{}))||1}function Zn(n={}){var e;return n.stageKey==="family-pasture"?"处":n.categoryCode==="YC-BREEDING-STOCK"?"":n.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(n.categoryCode)?"亩":n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":n.categoryCode==="YC-PROCESSING-PLANT"||n.categoryCode==="YC-SLAUGHTERHOUSE"||n.categoryCode==="YC-SERVICE-FINANCE"?"万元":n.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":n.categoryCode==="YC-TECH-TRAINING"?"人次":(e=n.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function pt(n,e,t){return n.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${p(e)}${t||""}`:String(e||"")}function mt(n={}){const e=n.attributes||{},t=n.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||t["主要贷款产品(可多选)"]||n.sourceSheet||""}function St(){const n=new Map;return K.forEach(e=>{var r;const t=L((r=e.attributes)==null?void 0:r.育种等级)||"待完善",a=n.get(t)||{key:t,name:t,value:0,unit:"个"};a.value+=1,n.set(t,a)}),[...n.values()].sort((e,t)=>{var r,o;const a={省级:0,县级:1,待完善:2};return((r=a[e.name])!=null?r:9)-((o=a[t.name])!=null?o:9)})}function yt(n){return en.filter(e=>e.industryStage===n).map(e=>{const t=h(m(e.categoryCode));return{key:e.categoryCode,name:e.categoryName.replace(/^cxpt/,""),value:t,unit:"条",extra:E(n).name}}).filter(e=>e.value>0).sort(f)}function l(n,e,t,a,r={}){return d({key:n,title:e,height:227,renderer:"business",type:t,rows:a},r)}function ne(n){return n==="family-pasture"?Z.filter(e=>e.stageKey===n):n?nn(n):M.flatMap(e=>nn(e.key))}function ee(n){const e=E(n),t=ne(n);return n==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:t,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:t,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function ft(){return{key:"scale-breeding-location-list",title:"养殖基地定位",height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:ne("scale-breeding").slice().sort((e,t)=>String(e.town||"").localeCompare(String(t.town||""),"zh-CN")||String(e.name||"").localeCompare(String(t.name||""),"zh-CN")),maxRows:300,searchPlaceholder:"搜索养殖基地 / 乡镇",emptyText:"无匹配养殖基地",columns:[{key:"name",label:"养殖基地",field:"name",width:"46%",className:"business-project-col-name"},{key:"town",label:"区域",field:"town",width:"32%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",action:"locate"}],searchKeys:["name","fullName","town","address","searchText"]}}function wt(){return{key:"artificial-grassland-business-ledger",title:"项目建设台账",renderer:"business",type:"projectTable",rows:Kn,fixedHeight:!0,rowSelectOnClick:!1,showSearch:!1,maxRows:6,emptyText:"暂无项目建设台账",columns:[{key:"name",label:"项目",field:"name",width:"48%",className:"business-project-col-name"},{key:"year",label:"年度",field:"year",width:"16%",align:"center"},{key:"area",label:"实测面积",field:"actualAreaMu",width:"36%",align:"right",strong:!0,unit:"亩"}],searchKeys:["name","fullName","year","category","towns","searchText"]}}function Tt(n=[],e=[],t={}){const a=B(n,T,r=>s(r,e)).map(r=>S(d({},r),{unit:t.unit||"",extra:t.extra||`${r.count}个点位`}));return F(a,t)}function on(n=[],e="点位"){const t=B(n,T,()=>1).map(a=>S(d({},a),{unit:"个",extra:e}));return F(t,{unit:"个",extra:e})}function Nt(){return k.filter(c).map(n=>{var e;return{key:n.id,name:j(n.name),value:s(n,["总库容 (吨)"]),unit:"吨",extra:s(n,["发放次数"])||((e=n.attributes)==null?void 0:e.储备草种)||"储备库"}}).filter(n=>n.value>0).sort(f).slice(0,8)}function ht(){return R.filter(c).map(n=>({key:n.id,name:j(n.name),value:s(n,["年屠宰总量 (头)"]),unit:"头",extra:`${p(s(n,["冷冻库容量 (吨)"]))}吨冷链`})).filter(n=>n.value>0).sort(f).slice(0,7)}function At(){const n=P.filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年培训人次"]),unit:"人次",extra:`${p(s(e,["年培训场次"]))}场`})).filter(e=>e.value>0).sort(f).slice(0,7);return n.length?n:[{key:"sessions",name:"年培训场次",value:Hn,unit:"场"},{key:"persons",name:"年培训人次",value:Q,unit:"人次"}]}function Yt(n){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],t=new Map(e.map(a=>[a.key,{key:a.key,name:a.name,value:0,unit:"处"}]));return n.filter(c).forEach(a=>{var i,y;const r=[(i=a.attributes)==null?void 0:i.主要草种,(y=a.attributes)==null?void 0:y.储备草种].filter(Boolean).join("、"),o=e.filter(Y=>Y.key!=="other"&&Y.pattern.test(r));(o.length?o:[e[e.length-1]]).forEach(Y=>{t.get(Y.key).value+=1})}),[...t.values()].filter(a=>a.value>0).sort(f)}function xt(){return[{key:"raw-capacity",name:"原料加工",value:Nn,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:an,unit:"头"},{key:"farmer-driven",name:"带动农户",value:hn,unit:"户"},{key:"cold-storage",name:"冷链能力",value:On,unit:"吨"}].filter(n=>n.value>0)}function bt(){return[{key:"finance",name:"金融",value:q.filter(c).length,unit:"家"},{key:"insurance",name:"保险",value:tn.filter(c).length,unit:"家"},{key:"training",name:"培训",value:P.filter(c).length,unit:"家"},{key:"disease",name:"防疫",value:fn.filter(c).length,unit:"个"}].filter(n=>n.value>0)}function B(n,e,t){const a=new Map;return n.filter(c).forEach(r=>{const o=L(typeof e=="function"?e(r):r[e])||"未填写",u=a.get(o)||{key:o,name:o,value:0,count:0,extra:""};u.value+=Number(t(r)||0),u.count+=1,a.set(o,u)}),[...a.values()].sort(f)}function F(n=[],e={}){const t=new Map;return n.forEach(a=>{const r=L(a==null?void 0:a.name),o=N.find(u=>u===r)||N.find(u=>{const i=u.replace(/[镇乡]$/,"");return i.length>=2&&r.includes(i)});o&&t.set(o,a)}),N.map((a,r)=>{const o=t.get(a),u=Number((o==null?void 0:o.value)||0),i=Number.isFinite(u)&&u>0;return{key:(o==null?void 0:o.key)||a,name:a,value:i?u:.001,displayValue:i?o.displayValue:"0",scaleValue:o==null?void 0:o.scaleValue,unit:(o==null?void 0:o.unit)||e.unit||"",extra:(o==null?void 0:o.extra)||e.extra||"",color:o==null?void 0:o.color,zero:!i,sourceIndex:r}})}function s(n={},e=[]){const t=n.metrics||{},a=Array.isArray(e)?e:[e];for(const r of a)if(Object.prototype.hasOwnProperty.call(t,r)){const o=H(t[r]);if(o||o===0)return o}return 0}function H(n){if(typeof n=="number")return Number.isFinite(n)?n:0;if(te(n))return 0;const e=String(n).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const t=e.match(/-?\d+(?:\.\d+)?/);if(!t)return 0;let a=Number(t[0]);return e.includes("万亩")&&!e.includes("万元")&&(a*=1e4),Number.isFinite(a)?a:0}function T(n={}){const e=L(n.town||n.areaName);if(N.includes(e))return e;const t=[n.town,n.areaName,n.areaFullName,n.address,n.village,n.name].filter(Boolean).join(" "),a=N.find(r=>t.includes(r));return a||N.find(r=>{const o=r.replace(/[镇乡]$/,"");return o.length>=2&&t.includes(o)})||e}function Ct(n={}){const e=D(n.longitude),t=D(n.latitude);if(dn(e,t))return{longitude:e,latitude:t};const a=Object.values(n.locations||{}).find(r=>dn(D(r==null?void 0:r.longitude),D(r==null?void 0:r.latitude)));return a?{longitude:D(a.longitude),latitude:D(a.latitude)}:null}function dn(n,e){const t=Number(n),a=Number(e);return Number.isFinite(t)&&Number.isFinite(a)&&t>=W.west&&t<=W.east&&a>=W.south&&a<=W.north}function D(n){if(n==null||n==="")return NaN;const e=Number(n);return Number.isFinite(e)?e:NaN}function Lt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function Mt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function Ut(n={}){const e=String(n.id||"");return e&&Bn.has(e)?Bn.get(e):mn.find(t=>t.name===n.name&&t.categoryCode===n.categoryCode)}function $(n,e){return Math.max(12,Math.min(100,Math.round(Number(n||0)/e*100)))}function g(n,e){return n.filter(c).reduce((t,a)=>t+Number(e(a)||0),0)}function Cn(n,e){return n.filter(c).reduce((t,a)=>Math.max(t,Number(e(a)||0)),0)}function pn(n,e){return new Set(n.filter(c).map(e).filter(Boolean)).size}function f(n,e){return e.value-n.value||e.count-n.count||String(n.name).localeCompare(String(e.name),"zh-CN")}function j(n=""){return String(n).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function L(n){return String(n!=null?n:"").replace(/\s+/g," ").trim()}function te(n){return n==null||String(n).trim()===""||String(n).trim().toLowerCase()==="nan"}function Rt(n){return typeof n=="number"?p(n):H(n)&&String(n).match(/^\s*[约≈]?\d/)?String(n):String(n!=null?n:"")}function Et(n,e=""){const t=Rt(n);return!e||typeof n=="string"&&t.includes(e.replace(/^个/,""))?t:`${t}${e}`}function p(n){const e=Number(n||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function w(n,e=0){const t=En(10,e);return Math.round(Number(n||0)*t)/t}export{Kt as a,et as b,Dt as c,$t as d,Oe as e,_t as f,E as g,Gt as h,M as i,gn as j,He as k,je as l,Ke as m,jt as n,zt as o,Ht as p,kt as q,Pt as r,Ot as s,It as t,Z as u}; diff --git a/docs/assets/data-e9a1e061-1784132466083.js b/docs/assets/data-bbf42c91-1784132792831.js similarity index 98% rename from docs/assets/data-e9a1e061-1784132466083.js rename to docs/assets/data-bbf42c91-1784132792831.js index b6100f2..3ab7604 100644 --- a/docs/assets/data-e9a1e061-1784132466083.js +++ b/docs/assets/data-bbf42c91-1784132792831.js @@ -1 +1 @@ -var x=Object.defineProperty,k=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var p=Math.pow,d=(e,r,a)=>r in e?x(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,m=(e,r)=>{for(var a in r||(r={}))f.call(r,a)&&d(e,a,r[a]);if(y)for(var a of y(r))T.call(r,a)&&d(e,a,r[a]);return e},t=(e,r)=>k(e,h(r));import{d as M}from"./livestockData-36ec0ae2-1784132466083.js";const S=(e,r=2)=>{const a=p(10,r);return Math.round((Number(e)||0)*a)/a},g=e=>S((Number(e)||0)/1e4,2),w=9110,$=(e,r,a="number")=>{const o=e.reduce((n,u)=>n+(Number(u[a])||0),0);if(!o||!r)return e.map(n=>t(m({},n),{[a]:0}));const s=e.map(n=>t(m({},n),{[a]:Math.round((Number(n[a])||0)/o*r)})),c=r-s.reduce((n,u)=>n+(Number(u[a])||0),0);if(c&&s.length){const n=s.reduce((u,A,C)=>{var N;return Number(A[a])>Number(((N=s[u])==null?void 0:N[a])||0)?C:u},0);s[n][a]+=c}return s},z=$([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],w),R=[{key:"pasture-total",name:"牧户数量",value:w,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],j=R,G=R.map(e=>t(m({},e),{zh:e.name,decimals:0})),i=z.map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.number,unit:"户"})),L=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.uplineRate,unit:"%",extra:`${e.uplineRate}%`})),l=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],b=(e,r,a,o)=>Array.from(e.reduce((s,c)=>{const n=c[r]||"未标注",u=s.get(n)||{key:n,name:n,value:0,unit:o};return u.value+=Number(c[a])||0,s.set(n,u),s},new Map).values()),O=b(l,"ageRange","value","人"),B=b(l,"sex","value","人"),v=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(e=>t(m({},e),{township:e.areaName,grasslandArea:e.acreage,value:e.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${e.name} ${e.areaName}`})),P=M.map(e=>({key:e.zoneName,name:e.zoneName,value:g(e.grasslandArea),unit:"万亩",extra:"草场资源"})),W=Array.from(v.reduce((e,r)=>{const a=r.township||"未填写",o=e.get(a)||{key:`${a}-season`,name:a,values:{summer:0,winter:0}};return o.values.summer+=Number(r.summerAcreage)||0,o.values.winter+=Number(r.winterAcreage)||0,e.set(a,o),e},new Map).values()).map(e=>t(m({},e),{values:{summer:g(e.values.summer),winter:g(e.values.winter)},unit:"万亩"})),Y=i.map(e=>({name:e.name,value:e.value,unit:"户"})),q={topStats:G,coreRows:j,townRows:i,ageRows:l,genderRows:B,onlineRows:L,list:v};export{i as a,L as b,O as c,B as d,Y as e,w as f,q as g,v as h,G as i,P as j,l as k,W as l,j as p}; +var x=Object.defineProperty,k=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var p=Math.pow,d=(e,r,a)=>r in e?x(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,m=(e,r)=>{for(var a in r||(r={}))f.call(r,a)&&d(e,a,r[a]);if(y)for(var a of y(r))T.call(r,a)&&d(e,a,r[a]);return e},t=(e,r)=>k(e,h(r));import{d as M}from"./livestockData-36ec0ae2-1784132792831.js";const S=(e,r=2)=>{const a=p(10,r);return Math.round((Number(e)||0)*a)/a},g=e=>S((Number(e)||0)/1e4,2),w=9110,$=(e,r,a="number")=>{const o=e.reduce((n,u)=>n+(Number(u[a])||0),0);if(!o||!r)return e.map(n=>t(m({},n),{[a]:0}));const s=e.map(n=>t(m({},n),{[a]:Math.round((Number(n[a])||0)/o*r)})),c=r-s.reduce((n,u)=>n+(Number(u[a])||0),0);if(c&&s.length){const n=s.reduce((u,A,C)=>{var N;return Number(A[a])>Number(((N=s[u])==null?void 0:N[a])||0)?C:u},0);s[n][a]+=c}return s},z=$([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],w),R=[{key:"pasture-total",name:"牧户数量",value:w,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],j=R,G=R.map(e=>t(m({},e),{zh:e.name,decimals:0})),i=z.map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.number,unit:"户"})),L=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.uplineRate,unit:"%",extra:`${e.uplineRate}%`})),l=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],b=(e,r,a,o)=>Array.from(e.reduce((s,c)=>{const n=c[r]||"未标注",u=s.get(n)||{key:n,name:n,value:0,unit:o};return u.value+=Number(c[a])||0,s.set(n,u),s},new Map).values()),O=b(l,"ageRange","value","人"),B=b(l,"sex","value","人"),v=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(e=>t(m({},e),{township:e.areaName,grasslandArea:e.acreage,value:e.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${e.name} ${e.areaName}`})),P=M.map(e=>({key:e.zoneName,name:e.zoneName,value:g(e.grasslandArea),unit:"万亩",extra:"草场资源"})),W=Array.from(v.reduce((e,r)=>{const a=r.township||"未填写",o=e.get(a)||{key:`${a}-season`,name:a,values:{summer:0,winter:0}};return o.values.summer+=Number(r.summerAcreage)||0,o.values.winter+=Number(r.winterAcreage)||0,e.set(a,o),e},new Map).values()).map(e=>t(m({},e),{values:{summer:g(e.values.summer),winter:g(e.values.winter)},unit:"万亩"})),Y=i.map(e=>({name:e.name,value:e.value,unit:"户"})),q={topStats:G,coreRows:j,townRows:i,ageRows:l,genderRows:B,onlineRows:L,list:v};export{i as a,L as b,O as c,B as d,Y as e,w as f,q as g,v as h,G as i,P as j,l as k,W as l,j as p}; diff --git a/docs/assets/data-19be80ff-1784132466083.js b/docs/assets/data-ee3975ea-1784132792831.js similarity index 97% rename from docs/assets/data-19be80ff-1784132466083.js rename to docs/assets/data-ee3975ea-1784132792831.js index 6444b0a..9bb663e 100644 --- a/docs/assets/data-19be80ff-1784132466083.js +++ b/docs/assets/data-ee3975ea-1784132792831.js @@ -1 +1 @@ -var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1784132466083.js";import{e as T}from"./data-5c83c66b-1784132466083.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y}; +var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1784132792831.js";import{c as T}from"./data-ee410ed3-1784132792831.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y}; diff --git a/docs/assets/data-5c83c66b-1784132466083.js b/docs/assets/data-ee410ed3-1784132792831.js similarity index 99% rename from docs/assets/data-5c83c66b-1784132466083.js rename to docs/assets/data-ee410ed3-1784132792831.js index 70a2fd8..bf8e279 100644 --- a/docs/assets/data-5c83c66b-1784132466083.js +++ b/docs/assets/data-ee410ed3-1784132792831.js @@ -1 +1 @@ -var J=Object.defineProperty,Q=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var aa=Object.prototype.hasOwnProperty,ea=Object.prototype.propertyIsEnumerable;var K=Math.pow,G=(a,e,n)=>e in a?J(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,w=(a,e)=>{for(var n in e||(e={}))aa.call(e,n)&&G(a,n,e[n]);if(H)for(var n of H(e))ea.call(e,n)&&G(a,n,e[n]);return a},M=(a,e)=>Q(a,Z(e));const P={grasslandCapacityPerMu:.06229833103624831,muPerYak:16.051794379822947,yakToSheepUnit:1},na={key:"county-513233",type:"county",name:"红原县",areaCode:"513233"},k=[{key:"healthy",label:"合理",shortLabel:"合理",range:"< 0%",description:"承载力覆盖实际载畜量,当前放牧压力处于合理区间。",actions:["保持当前载畜水平与轮牧节奏","定期复测草地生产力和载畜量","关注极端天气对牧草生长的影响"]},{key:"watch",label:"基本实现草畜平衡",shortLabel:"基本平衡",range:"0% - 5%",description:"实际载畜量与草地承载力基本匹配,草畜平衡总体实现。",actions:["保持当前载畜规模基本稳定","持续核查草地生产力和牲畜存栏","结合季节变化做好补饲和轮牧安排"]},{key:"light",label:"轻度超载",shortLabel:"关注",range:"5% - 10%",description:"已出现轻度超载迹象,建议提前介入调控。",actions:["适度压减超载畜群规模","延长冬春舍饲补饲周期","增加人工草场补饲供应"]},{key:"warning",label:"中度超载",shortLabel:"预警",range:"10% - 20%",description:"超载较明显,草地退化风险上升,应启动主动调控。",actions:["压减载畜量至理论承载力以内","推行划区轮牧与阶段性休牧","扩大优质人工饲草供给"]},{key:"danger",label:"严重超载",shortLabel:"高压",range:"> 20%",description:"超载压力较高,建议纳入重点管控和生态修复范围。",actions:["强制压减载畜量并实施禁牧休牧","对退化草地实施生态修复","建立重点区域长效监测与考核机制"]}],v={areaRange:["areaRange","area_range","arearange","acreage","grasslandArea","grasslandarea","area"],yakNumber:["yakNumber","yak_number","yaknumber","number","yakCount","yakcount","livestockCount","livestockcount"],bearingCapacity:["bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","theorycapacity"],livestockCapacity:["livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","carryingcapacity","actualCapacity","actualcapacity"],overloadRate:["overloadRate","overload_rate","overloadrate","rate"],level:["level","conclusion"],advice:["advice","balanceAdvice","balance_advice","balanceadvice","balanceAdivce","balance_adivce","balanceadivce"],year:["year"],areaName:["areaName","area_name","areaname","name"]},m=(a,e=2)=>{const n=K(10,e);return Math.round((Number(a)||0)*n)/n},s="加强人工饲草饲料基地建设;购买饲草饲料,增加饲草饲料供应量;实行舍饲圈养,减轻草原放牧压力;加快牲畜出栏,优化畜群结构。";function r(a,e=null){if(a==null||a==="")return e;const n=typeof a=="string"?a.replace(/,/g,"").replace(/%/g,"").trim():a,t=Number(n);return Number.isFinite(t)?t:e}function d(a={},e=[],n=void 0){for(const t of e){const i=a==null?void 0:a[t];if(i!=null&&i!=="")return i}return n}function ta(a,e={}){var t;const n=r(a);return n===null?"--":n.toLocaleString("zh-CN",{maximumFractionDigits:(t=e.maximumFractionDigits)!=null?t:Number.isInteger(n)?0:2})}function ya(a){const e=r(a);return e===null?"--":`${ta(e)}%`}function x(a){const e=r(a);return e===null||e<0?k[0]:e<=5?k[1]:e<=10?k[2]:e<=20?k[3]:k[4]}function W(a){return Math.round(Number(a)||0)}function X(a){return Math.round((Number(a)||0)*P.grasslandCapacityPerMu)}const ra=M(w({},na),{areaRange:756851506e-2,yakNumber:458230,bearingCapacity:454864,livestockCapacity:458230,overloadRate:.74,level:"基本实现草畜平衡",advice:s,year:"2026"}),ia=[{key:"town-邛溪镇",type:"town",name:"邛溪镇",areaCode:"513233100",areaRange:930604.2,yakNumber:49140,bearingCapacity:47723,livestockCapacity:49140,overloadRate:2.97,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-刷经寺镇",type:"town",name:"刷经寺镇",areaCode:"513233101",areaRange:743557.5,yakNumber:18283,bearingCapacity:18002,livestockCapacity:18283,overloadRate:1.56,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-安曲镇",type:"town",name:"安曲镇",areaCode:"513233103",areaRange:900696.75,yakNumber:59725,bearingCapacity:58479,livestockCapacity:59725,overloadRate:2.13,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-龙日镇",type:"town",name:"龙日镇",areaCode:"513233105",areaRange:628303.8,yakNumber:40192,bearingCapacity:39462,livestockCapacity:40192,overloadRate:1.85,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-江茸乡",type:"town",name:"江茸乡",areaCode:"513233202",areaRange:496888.95,yakNumber:20789,bearingCapacity:20563,livestockCapacity:20789,overloadRate:1.1,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-查尔玛乡",type:"town",name:"查尔玛乡",areaCode:"513233203",areaRange:808628.4,yakNumber:28836,bearingCapacity:28312,livestockCapacity:28836,overloadRate:1.85,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-瓦切镇",type:"town",name:"瓦切镇",areaCode:"513233204",areaRange:747837.6,yakNumber:76127,bearingCapacity:74598,livestockCapacity:76127,overloadRate:2.05,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-阿木乡",type:"town",name:"阿木乡",areaCode:"513233205",areaRange:863346,yakNumber:38587,bearingCapacity:37554,livestockCapacity:38587,overloadRate:2.75,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-麦洼乡",type:"town",name:"麦洼乡",areaCode:"513233207",areaRange:458338.35,yakNumber:47193,bearingCapacity:46643,livestockCapacity:47193,overloadRate:1.18,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-色地镇",type:"town",name:"色地镇",areaCode:"513233208",areaRange:991265.25,yakNumber:79358,bearingCapacity:77695,livestockCapacity:79358,overloadRate:2.14,level:"基本实现草畜平衡",advice:s,year:"2026"}],ua=[ra,...ia];function sa(a={},e={}){var E,U,j,B,F,I,V,Y,z,D;const n=a&&typeof a=="object"&&Object.keys(a).length>0,t=d(a,v.areaRange,e.areaRange),i=d(a,v.yakNumber,e.yakNumber),y=d(a,v.bearingCapacity,e.bearingCapacity),u=d(a,v.livestockCapacity,e.livestockCapacity),o=r(d(a,v.overloadRate,e.overloadRate)),l=r(e.yakNumber),c=oa(a,u,l),C=r(t,(E=e.areaRange)!=null?E:0),g=c!==null&&i===(a==null?void 0:a.yak_number)?r(d(a,["number","yakCount","yak_count","livestockCount","livestock_count"]),l!=null?l:Math.round(c/P.yakToSheepUnit)):r(i,(U=e.yakNumber)!=null?U:0),p=r(e.bearingCapacity),R=r(e.livestockCapacity),T=t!=null&&t!=="",O=i!=null&&i!=="",f=(j=r(u))!=null?j:c,$=r(y),q=L(f,o),h=ca($,q),b=n?(I=(F=(B=f!=null?f:S(h,o))!=null?B:R)!=null?F:S(p,o))!=null?I:O?W(g):null:(V=R!=null?R:S(p,o))!=null?V:O?W(g):null,N=n?(z=(Y=h!=null?h:L(b,o))!=null?Y:p)!=null?z:T?X(C):null:(D=p!=null?p:L(b,o))!=null?D:T?X(C):null,_=o!==null?m(o,2):N&&b!==null?m((b-N)/N*100,1):null,A=x(_);return M(w(w({},e),a),{key:e.key||a.key||a.id||a.areaCode||e.name,type:e.type||a.type||"town",name:d(a,v.areaName,e.name||"核算对象"),areaCode:a.areaCode||a.area_code||a.areacode||e.areaCode,areaRange:C,yakNumber:g,bearingCapacity:N,livestockCapacity:b,overloadRate:_,level:_===null?d(a,v.level,A.label):A.label,advice:d(a,v.advice,e.advice||A.actions.join(";")),year:d(a,v.year,e.year||"当前年度"),source:a.raw||a.source||e.source})}function oa(a={},e,n=null){if(!a||typeof a!="object"||e!=null&&e!=="")return null;const t=Object.prototype.hasOwnProperty.call(a,"yak_number"),i=["overload_rate","overloadRate","overloadrate","advice","balanceAdvice","balanceadvice","level","conclusion"].some(o=>a[o]!==void 0&&a[o]!==null&&a[o]!==""),y=r(a.yak_number);if(!t||!i||y===null)return null;const u=r(n);return u!==null&&u>0?y>u*1.5?y:null:y}function L(a,e){const n=r(a),t=r(e);return n===null||t===null||t<=-100?null:Math.round(n/(1+t/100))}function ca(a,e){return a===null?e:e===null?a:Math.abs(a-e)/Math.max(Math.abs(e),1)>.25?e:a}function S(a,e){const n=r(a),t=r(e);return n===null||t===null||t<=-100?null:Math.round(n*(1+t/100))}function da(a={}){const e=r(a.bearingCapacity),n=r(a.livestockCapacity),t=r(a.areaRange,0),i=r(a.yakNumber,0),y=r(a.overloadRate,e&&n!==null?(n-e)/e*100:null),u=e!==null&&n!==null?n-e:null,o=e&&n!==null?m(n/e*100,1):null,l=x(y),c=Math.round(i*P.yakToSheepUnit),C=c&&n!==null?m(n/c,2):null,g=t&&e!==null?m(e/t,4):null,p=Math.max(e||0,n||0,1);return{bearing:e,livestock:n,areaRange:t,yakNumber:i,yakSheepUnit:c,pressureFactor:C,bearingCoefficient:g,overloadRate:y===null?null:m(y,2),delta:u,usageRate:o,risk:l,bearingPercent:e===null?4:Math.max(4,Math.min(100,m(e/p*100,1))),livestockPercent:n===null?4:Math.max(4,Math.min(100,m(n/p*100,1)))}}function pa(a={},e=x(a.overloadRate)){const n=String(a.advice||"").trim(),t=n?n.split(/[。;;\n]/).map(l=>l.trim()).filter(Boolean):[],i=["提高放牧畜禽的密度","增加草地的利用率","密度不能过高"],y=["轻度超载","已出现超载","超载迹象","压减超载畜群规模"],u=["healthy","watch"].includes(e.key),o=t.filter(l=>i.some(c=>l.includes(c))||u&&y.some(c=>l.includes(c))?!1:u?!0:!i.some(c=>l.includes(c)));return[...e.actions||[],...o].filter((l,c,C)=>C.indexOf(l)===c).slice(0,4)}export{P as B,ua as a,ia as b,ya as c,da as d,ra as e,ta as f,x as g,sa as n,d as p,pa as s}; +var J=Object.defineProperty,Q=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var aa=Object.prototype.hasOwnProperty,ea=Object.prototype.propertyIsEnumerable;var K=Math.pow,G=(a,e,n)=>e in a?J(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,w=(a,e)=>{for(var n in e||(e={}))aa.call(e,n)&&G(a,n,e[n]);if(H)for(var n of H(e))ea.call(e,n)&&G(a,n,e[n]);return a},M=(a,e)=>Q(a,Z(e));const P={grasslandCapacityPerMu:.06229833103624831,muPerYak:16.051794379822947,yakToSheepUnit:1},na={key:"county-513233",type:"county",name:"红原县",areaCode:"513233"},k=[{key:"healthy",label:"合理",shortLabel:"合理",range:"< 0%",description:"承载力覆盖实际载畜量,当前放牧压力处于合理区间。",actions:["保持当前载畜水平与轮牧节奏","定期复测草地生产力和载畜量","关注极端天气对牧草生长的影响"]},{key:"watch",label:"基本实现草畜平衡",shortLabel:"基本平衡",range:"0% - 5%",description:"实际载畜量与草地承载力基本匹配,草畜平衡总体实现。",actions:["保持当前载畜规模基本稳定","持续核查草地生产力和牲畜存栏","结合季节变化做好补饲和轮牧安排"]},{key:"light",label:"轻度超载",shortLabel:"关注",range:"5% - 10%",description:"已出现轻度超载迹象,建议提前介入调控。",actions:["适度压减超载畜群规模","延长冬春舍饲补饲周期","增加人工草场补饲供应"]},{key:"warning",label:"中度超载",shortLabel:"预警",range:"10% - 20%",description:"超载较明显,草地退化风险上升,应启动主动调控。",actions:["压减载畜量至理论承载力以内","推行划区轮牧与阶段性休牧","扩大优质人工饲草供给"]},{key:"danger",label:"严重超载",shortLabel:"高压",range:"> 20%",description:"超载压力较高,建议纳入重点管控和生态修复范围。",actions:["强制压减载畜量并实施禁牧休牧","对退化草地实施生态修复","建立重点区域长效监测与考核机制"]}],v={areaRange:["areaRange","area_range","arearange","acreage","grasslandArea","grasslandarea","area"],yakNumber:["yakNumber","yak_number","yaknumber","number","yakCount","yakcount","livestockCount","livestockcount"],bearingCapacity:["bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","theorycapacity"],livestockCapacity:["livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","carryingcapacity","actualCapacity","actualcapacity"],overloadRate:["overloadRate","overload_rate","overloadrate","rate"],level:["level","conclusion"],advice:["advice","balanceAdvice","balance_advice","balanceadvice","balanceAdivce","balance_adivce","balanceadivce"],year:["year"],areaName:["areaName","area_name","areaname","name"]},m=(a,e=2)=>{const n=K(10,e);return Math.round((Number(a)||0)*n)/n},s="加强人工饲草饲料基地建设;购买饲草饲料,增加饲草饲料供应量;实行舍饲圈养,减轻草原放牧压力;加快牲畜出栏,优化畜群结构。";function r(a,e=null){if(a==null||a==="")return e;const n=typeof a=="string"?a.replace(/,/g,"").replace(/%/g,"").trim():a,t=Number(n);return Number.isFinite(t)?t:e}function d(a={},e=[],n=void 0){for(const t of e){const i=a==null?void 0:a[t];if(i!=null&&i!=="")return i}return n}function ta(a,e={}){var t;const n=r(a);return n===null?"--":n.toLocaleString("zh-CN",{maximumFractionDigits:(t=e.maximumFractionDigits)!=null?t:Number.isInteger(n)?0:2})}function ya(a){const e=r(a);return e===null?"--":`${ta(e)}%`}function x(a){const e=r(a);return e===null||e<0?k[0]:e<=5?k[1]:e<=10?k[2]:e<=20?k[3]:k[4]}function W(a){return Math.round(Number(a)||0)}function X(a){return Math.round((Number(a)||0)*P.grasslandCapacityPerMu)}const ra=M(w({},na),{areaRange:756851506e-2,yakNumber:458230,bearingCapacity:454864,livestockCapacity:458230,overloadRate:.74,level:"基本实现草畜平衡",advice:s,year:"2026"}),ia=[{key:"town-邛溪镇",type:"town",name:"邛溪镇",areaCode:"513233100",areaRange:930604.2,yakNumber:49140,bearingCapacity:47723,livestockCapacity:49140,overloadRate:2.97,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-刷经寺镇",type:"town",name:"刷经寺镇",areaCode:"513233101",areaRange:743557.5,yakNumber:18283,bearingCapacity:18002,livestockCapacity:18283,overloadRate:1.56,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-安曲镇",type:"town",name:"安曲镇",areaCode:"513233103",areaRange:900696.75,yakNumber:59725,bearingCapacity:58479,livestockCapacity:59725,overloadRate:2.13,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-龙日镇",type:"town",name:"龙日镇",areaCode:"513233105",areaRange:628303.8,yakNumber:40192,bearingCapacity:39462,livestockCapacity:40192,overloadRate:1.85,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-江茸乡",type:"town",name:"江茸乡",areaCode:"513233202",areaRange:496888.95,yakNumber:20789,bearingCapacity:20563,livestockCapacity:20789,overloadRate:1.1,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-查尔玛乡",type:"town",name:"查尔玛乡",areaCode:"513233203",areaRange:808628.4,yakNumber:28836,bearingCapacity:28312,livestockCapacity:28836,overloadRate:1.85,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-瓦切镇",type:"town",name:"瓦切镇",areaCode:"513233204",areaRange:747837.6,yakNumber:76127,bearingCapacity:74598,livestockCapacity:76127,overloadRate:2.05,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-阿木乡",type:"town",name:"阿木乡",areaCode:"513233205",areaRange:863346,yakNumber:38587,bearingCapacity:37554,livestockCapacity:38587,overloadRate:2.75,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-麦洼乡",type:"town",name:"麦洼乡",areaCode:"513233207",areaRange:458338.35,yakNumber:47193,bearingCapacity:46643,livestockCapacity:47193,overloadRate:1.18,level:"基本实现草畜平衡",advice:s,year:"2026"},{key:"town-色地镇",type:"town",name:"色地镇",areaCode:"513233208",areaRange:991265.25,yakNumber:79358,bearingCapacity:77695,livestockCapacity:79358,overloadRate:2.14,level:"基本实现草畜平衡",advice:s,year:"2026"}],ua=[ra,...ia];function sa(a={},e={}){var E,U,j,B,F,I,V,Y,z,D;const n=a&&typeof a=="object"&&Object.keys(a).length>0,t=d(a,v.areaRange,e.areaRange),i=d(a,v.yakNumber,e.yakNumber),y=d(a,v.bearingCapacity,e.bearingCapacity),u=d(a,v.livestockCapacity,e.livestockCapacity),o=r(d(a,v.overloadRate,e.overloadRate)),l=r(e.yakNumber),c=oa(a,u,l),C=r(t,(E=e.areaRange)!=null?E:0),g=c!==null&&i===(a==null?void 0:a.yak_number)?r(d(a,["number","yakCount","yak_count","livestockCount","livestock_count"]),l!=null?l:Math.round(c/P.yakToSheepUnit)):r(i,(U=e.yakNumber)!=null?U:0),p=r(e.bearingCapacity),R=r(e.livestockCapacity),T=t!=null&&t!=="",O=i!=null&&i!=="",f=(j=r(u))!=null?j:c,$=r(y),q=L(f,o),h=ca($,q),b=n?(I=(F=(B=f!=null?f:S(h,o))!=null?B:R)!=null?F:S(p,o))!=null?I:O?W(g):null:(V=R!=null?R:S(p,o))!=null?V:O?W(g):null,N=n?(z=(Y=h!=null?h:L(b,o))!=null?Y:p)!=null?z:T?X(C):null:(D=p!=null?p:L(b,o))!=null?D:T?X(C):null,_=o!==null?m(o,2):N&&b!==null?m((b-N)/N*100,1):null,A=x(_);return M(w(w({},e),a),{key:e.key||a.key||a.id||a.areaCode||e.name,type:e.type||a.type||"town",name:d(a,v.areaName,e.name||"核算对象"),areaCode:a.areaCode||a.area_code||a.areacode||e.areaCode,areaRange:C,yakNumber:g,bearingCapacity:N,livestockCapacity:b,overloadRate:_,level:_===null?d(a,v.level,A.label):A.label,advice:d(a,v.advice,e.advice||A.actions.join(";")),year:d(a,v.year,e.year||"当前年度"),source:a.raw||a.source||e.source})}function oa(a={},e,n=null){if(!a||typeof a!="object"||e!=null&&e!=="")return null;const t=Object.prototype.hasOwnProperty.call(a,"yak_number"),i=["overload_rate","overloadRate","overloadrate","advice","balanceAdvice","balanceadvice","level","conclusion"].some(o=>a[o]!==void 0&&a[o]!==null&&a[o]!==""),y=r(a.yak_number);if(!t||!i||y===null)return null;const u=r(n);return u!==null&&u>0?y>u*1.5?y:null:y}function L(a,e){const n=r(a),t=r(e);return n===null||t===null||t<=-100?null:Math.round(n/(1+t/100))}function ca(a,e){return a===null?e:e===null?a:Math.abs(a-e)/Math.max(Math.abs(e),1)>.25?e:a}function S(a,e){const n=r(a),t=r(e);return n===null||t===null||t<=-100?null:Math.round(n*(1+t/100))}function da(a={}){const e=r(a.bearingCapacity),n=r(a.livestockCapacity),t=r(a.areaRange,0),i=r(a.yakNumber,0),y=r(a.overloadRate,e&&n!==null?(n-e)/e*100:null),u=e!==null&&n!==null?n-e:null,o=e&&n!==null?m(n/e*100,1):null,l=x(y),c=Math.round(i*P.yakToSheepUnit),C=c&&n!==null?m(n/c,2):null,g=t&&e!==null?m(e/t,4):null,p=Math.max(e||0,n||0,1);return{bearing:e,livestock:n,areaRange:t,yakNumber:i,yakSheepUnit:c,pressureFactor:C,bearingCoefficient:g,overloadRate:y===null?null:m(y,2),delta:u,usageRate:o,risk:l,bearingPercent:e===null?4:Math.max(4,Math.min(100,m(e/p*100,1))),livestockPercent:n===null?4:Math.max(4,Math.min(100,m(n/p*100,1)))}}function pa(a={},e=x(a.overloadRate)){const n=String(a.advice||"").trim(),t=n?n.split(/[。;;\n]/).map(l=>l.trim()).filter(Boolean):[],i=["提高放牧畜禽的密度","增加草地的利用率","密度不能过高"],y=["轻度超载","已出现超载","超载迹象","压减超载畜群规模"],u=["healthy","watch"].includes(e.key),o=t.filter(l=>i.some(c=>l.includes(c))||u&&y.some(c=>l.includes(c))?!1:u?!0:!i.some(c=>l.includes(c)));return[...e.actions||[],...o].filter((l,c,C)=>C.indexOf(l)===c).slice(0,4)}export{P as B,ya as a,ia as b,ra as c,da as d,ua as e,ta as f,x as g,sa as n,d as p,pa as s}; diff --git a/docs/assets/featurePanelLayout-62f917d3-1784132466083.js b/docs/assets/featurePanelLayout-9d4ef87e-1784132792831.js similarity index 98% rename from docs/assets/featurePanelLayout-62f917d3-1784132466083.js rename to docs/assets/featurePanelLayout-9d4ef87e-1784132792831.js index 818f605..7b786fc 100644 --- a/docs/assets/featurePanelLayout-62f917d3-1784132466083.js +++ b/docs/assets/featurePanelLayout-9d4ef87e-1784132792831.js @@ -1 +1 @@ -var W=Object.defineProperty;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,b=(t,e)=>{for(var n in e||(e={}))O.call(e,n)&&N(t,n,e[n]);if(L)for(var n of L(e))z.call(e,n)&&N(t,n,e[n]);return t};var D=(t,e,n)=>new Promise((u,r)=>{var i=l=>{try{s(n.next(l))}catch(a){r(a)}},c=l=>{try{s(n.throw(l))}catch(a){r(a)}},s=l=>l.done?u(l.value):Promise.resolve(l.value).then(i,c);s((n=n.apply(t,e)).next())});import{r as T,n as J}from"./index-ed255eef-1784132466083.js";const v="/jsyApi";function C(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function j(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return J(t)}function o(t,e,n={}){return T(C(v,t),{params:e,timeout:n.timeout||12e3}).then(j)}function y(t,e,n={}){return T(C(v,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(j)}function U(){return y("/api/dataItem?group=pastures").then(f)}function X(){return y("/api/muhu/distribution").then(f)}function q(){return y("/api/muhu/age").then(f)}function K(){return y("/api/muhu/upline_rate").then(f)}function f(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?f(t.data):t!=null&&t.result?f(t.result):[]}function V(t="",e=1,n=80){return o("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(f)}function ut(t){return t==null||t===""?Promise.resolve([]):o("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(f)}function rt(t){return t?o("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function $(t,e=[]){const n=[...e.map(u=>t==null?void 0:t[u]),...e.map(u=>{var r;return(r=t==null?void 0:t.data)==null?void 0:r[u]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const u of n)if(Array.isArray(u)){const r=u.find(i=>i&&typeof i=="object");if(r)return r}else if(u&&typeof u=="object")return u;return null}function it(t={}){return o("/api/grasslandDetails",t,{timeout:2e4}).then(e=>$(e,["grassland"]))}function st(t={}){return o("/api/wetlandDetails",t,{timeout:2e4}).then(e=>$(e,["wetland"]))}function lt(t){return t?o("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function ct(t){return o("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function at(t){return o("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function Y(){return o("/api/pasturesList").then(f)}function ft(){return D(this,null,function*(){const[t,e,n,u,r,i]=yield Promise.allSettled([U(),X(),q(),K(),Y(),V("",1,20)]),c=r.status==="fulfilled"?r.value:[],s=i.status==="fulfilled"?i.value:[],l=H(s)?s:H(c)?c:s.length?s:c,a=Q(l,c,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:u.status==="fulfilled"?u.value:[],list:a}})}function Q(t=[],...e){const n=new Map;return e.flat().forEach(u=>{B(u).forEach(r=>{const i=n.get(r)||{};n.set(r,R(i,u))})}),(Array.isArray(t)?t:[]).map(u=>{const r=B(u).map(i=>n.get(i)).find(Boolean);return r?R(u,r):u})}function R(t={},e={}){const n=b({},t);return Object.entries(e||{}).forEach(([u,r])=>{(n[u]===void 0||n[u]===null||n[u]==="")&&(n[u]=r)}),n}function B(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function H(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var r,i,c,s,l,a;const n=(l=(s=(c=(i=(r=e==null?void 0:e.grasslandArea)!=null?r:e==null?void 0:e.grassland_area)!=null?i:e==null?void 0:e.acreage)!=null?c:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?l:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const u=Number((a=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:a[0]);return Number.isFinite(u)&&u>0})}const m=480,x=1920,Z=1080,I=176,S=112,k=272,w=18;function p(t,e,n){return Math.min(Math.max(t,e),n)}function ot({point:t,rowCount:e=0,loading:n=!1,empty:u=!1,safeLeft:r=448,safeRight:i=1472,preferredTop:c=196,safeTop:s=94}){if(!t)return{width:m,height:I,style:{}};const l=p(Number(e)||0,0,10),a=n||u?I:58+Math.max(l,1)*27,P=p(a,I,k),h=p(t.y-w,72,Z-28),_=h-c,E=h-s;let g=P,A=h-P;_>=S?(g=Math.min(P,_),A=h-g):E>=S?(g=Math.min(P,E),A=h-g):(g=Math.max(112,Math.min(P,h-72)),A=h-g);const d=p(r,24,x-m-24),F=p(i,d+m,x-24),M=p(t.x-m/2,d,F-m),G=p(t.x-M,28,m-28);return{width:m,height:Math.round(g),style:{left:`${Math.round(M)}px`,top:`${Math.round(A)}px`,right:"auto",bottom:"auto",width:`${m}px`,"--feature-panel-anchor-x":`${Math.round(G)}px`}}}export{m as F,st as a,lt as b,ot as c,ft as d,at as e,ut as f,it as g,ct as h,rt as i}; +var W=Object.defineProperty;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,b=(t,e)=>{for(var n in e||(e={}))O.call(e,n)&&N(t,n,e[n]);if(L)for(var n of L(e))z.call(e,n)&&N(t,n,e[n]);return t};var D=(t,e,n)=>new Promise((u,r)=>{var i=l=>{try{s(n.next(l))}catch(a){r(a)}},c=l=>{try{s(n.throw(l))}catch(a){r(a)}},s=l=>l.done?u(l.value):Promise.resolve(l.value).then(i,c);s((n=n.apply(t,e)).next())});import{r as T,n as J}from"./index-a1b5e9c0-1784132792831.js";const v="/jsyApi";function C(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function j(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return J(t)}function o(t,e,n={}){return T(C(v,t),{params:e,timeout:n.timeout||12e3}).then(j)}function y(t,e,n={}){return T(C(v,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(j)}function U(){return y("/api/dataItem?group=pastures").then(f)}function X(){return y("/api/muhu/distribution").then(f)}function q(){return y("/api/muhu/age").then(f)}function K(){return y("/api/muhu/upline_rate").then(f)}function f(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?f(t.data):t!=null&&t.result?f(t.result):[]}function V(t="",e=1,n=80){return o("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(f)}function ut(t){return t==null||t===""?Promise.resolve([]):o("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(f)}function rt(t){return t?o("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function $(t,e=[]){const n=[...e.map(u=>t==null?void 0:t[u]),...e.map(u=>{var r;return(r=t==null?void 0:t.data)==null?void 0:r[u]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const u of n)if(Array.isArray(u)){const r=u.find(i=>i&&typeof i=="object");if(r)return r}else if(u&&typeof u=="object")return u;return null}function it(t={}){return o("/api/grasslandDetails",t,{timeout:2e4}).then(e=>$(e,["grassland"]))}function st(t={}){return o("/api/wetlandDetails",t,{timeout:2e4}).then(e=>$(e,["wetland"]))}function lt(t){return t?o("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function ct(t){return o("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function at(t){return o("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function Y(){return o("/api/pasturesList").then(f)}function ft(){return D(this,null,function*(){const[t,e,n,u,r,i]=yield Promise.allSettled([U(),X(),q(),K(),Y(),V("",1,20)]),c=r.status==="fulfilled"?r.value:[],s=i.status==="fulfilled"?i.value:[],l=H(s)?s:H(c)?c:s.length?s:c,a=Q(l,c,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:u.status==="fulfilled"?u.value:[],list:a}})}function Q(t=[],...e){const n=new Map;return e.flat().forEach(u=>{B(u).forEach(r=>{const i=n.get(r)||{};n.set(r,R(i,u))})}),(Array.isArray(t)?t:[]).map(u=>{const r=B(u).map(i=>n.get(i)).find(Boolean);return r?R(u,r):u})}function R(t={},e={}){const n=b({},t);return Object.entries(e||{}).forEach(([u,r])=>{(n[u]===void 0||n[u]===null||n[u]==="")&&(n[u]=r)}),n}function B(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function H(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var r,i,c,s,l,a;const n=(l=(s=(c=(i=(r=e==null?void 0:e.grasslandArea)!=null?r:e==null?void 0:e.grassland_area)!=null?i:e==null?void 0:e.acreage)!=null?c:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?l:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const u=Number((a=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:a[0]);return Number.isFinite(u)&&u>0})}const m=480,x=1920,Z=1080,I=176,S=112,k=272,w=18;function p(t,e,n){return Math.min(Math.max(t,e),n)}function ot({point:t,rowCount:e=0,loading:n=!1,empty:u=!1,safeLeft:r=448,safeRight:i=1472,preferredTop:c=196,safeTop:s=94}){if(!t)return{width:m,height:I,style:{}};const l=p(Number(e)||0,0,10),a=n||u?I:58+Math.max(l,1)*27,P=p(a,I,k),h=p(t.y-w,72,Z-28),_=h-c,E=h-s;let g=P,A=h-P;_>=S?(g=Math.min(P,_),A=h-g):E>=S?(g=Math.min(P,E),A=h-g):(g=Math.max(112,Math.min(P,h-72)),A=h-g);const d=p(r,24,x-m-24),F=p(i,d+m,x-24),M=p(t.x-m/2,d,F-m),G=p(t.x-M,28,m-28);return{width:m,height:Math.round(g),style:{left:`${Math.round(M)}px`,top:`${Math.round(A)}px`,right:"auto",bottom:"auto",width:`${m}px`,"--feature-panel-anchor-x":`${Math.round(G)}px`}}}export{m as F,st as a,lt as b,ot as c,ft as d,at as e,ut as f,it as g,ct as h,rt as i}; diff --git a/docs/assets/flyline6-525edf67-balabala-1784132466083.png b/docs/assets/flyline6-525edf67-balabala-1784132792831.png similarity index 100% rename from docs/assets/flyline6-525edf67-balabala-1784132466083.png rename to docs/assets/flyline6-525edf67-balabala-1784132792831.png diff --git a/docs/assets/focus_bg-b6803e2d-balabala-1784132466083.png b/docs/assets/focus_bg-b6803e2d-balabala-1784132792831.png similarity index 100% rename from docs/assets/focus_bg-b6803e2d-balabala-1784132466083.png rename to docs/assets/focus_bg-b6803e2d-balabala-1784132792831.png diff --git a/docs/assets/focus_move_bg-cf41417a-balabala-1784132466083.png b/docs/assets/focus_move_bg-cf41417a-balabala-1784132792831.png similarity index 100% rename from docs/assets/focus_move_bg-cf41417a-balabala-1784132466083.png rename to docs/assets/focus_move_bg-cf41417a-balabala-1784132792831.png diff --git a/docs/assets/geoserver-b1a62bfb-1784132466083.js b/docs/assets/geoserver-c6c88e84-1784132792831.js similarity index 94% rename from docs/assets/geoserver-b1a62bfb-1784132466083.js rename to docs/assets/geoserver-c6c88e84-1784132792831.js index 35b95e5..3f6be26 100644 --- a/docs/assets/geoserver-b1a62bfb-1784132466083.js +++ b/docs/assets/geoserver-c6c88e84-1784132792831.js @@ -1 +1 @@ -var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{r as E}from"./index-ed255eef-1784132466083.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g}; +var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{r as E}from"./index-a1b5e9c0-1784132792831.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g}; diff --git a/docs/assets/header-bg-65b38012-balabala-1784132466083.png b/docs/assets/header-bg-65b38012-balabala-1784132792831.png similarity index 100% rename from docs/assets/header-bg-65b38012-balabala-1784132466083.png rename to docs/assets/header-bg-65b38012-balabala-1784132792831.png diff --git a/docs/assets/huiguang-3c5dfda5-balabala-1784132466083.png b/docs/assets/huiguang-3c5dfda5-balabala-1784132792831.png similarity index 100% rename from docs/assets/huiguang-3c5dfda5-balabala-1784132466083.png rename to docs/assets/huiguang-3c5dfda5-balabala-1784132792831.png diff --git a/docs/assets/icon1-6f7c222f-balabala-1784132466083.png b/docs/assets/icon1-6f7c222f-balabala-1784132792831.png similarity index 100% rename from docs/assets/icon1-6f7c222f-balabala-1784132466083.png rename to docs/assets/icon1-6f7c222f-balabala-1784132792831.png diff --git a/docs/assets/icon2-4f77ccec-balabala-1784132466083.png b/docs/assets/icon2-4f77ccec-balabala-1784132792831.png similarity index 100% rename from docs/assets/icon2-4f77ccec-balabala-1784132466083.png rename to docs/assets/icon2-4f77ccec-balabala-1784132792831.png diff --git a/docs/assets/index-de71c4fe-1784132466083.js b/docs/assets/index-007453d8-1784132792831.js similarity index 99% rename from docs/assets/index-de71c4fe-1784132466083.js rename to docs/assets/index-007453d8-1784132792831.js index c7cd420..ee2cdcc 100644 --- a/docs/assets/index-de71c4fe-1784132466083.js +++ b/docs/assets/index-007453d8-1784132792831.js @@ -1,4 +1,4 @@ -var Li=Object.defineProperty,Ri=Object.defineProperties;var Ti=Object.getOwnPropertyDescriptors;var ua=Object.getOwnPropertySymbols;var Oi=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable;var ca=(t,e,s)=>e in t?Li(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ot=(t,e)=>{for(var s in e||(e={}))Oi.call(e,s)&&ca(t,s,e[s]);if(ua)for(var s of ua(e))Fi.call(e,s)&&ca(t,s,e[s]);return t},kt=(t,e)=>Ri(t,Ti(e));var nt=(t,e,s)=>new Promise((a,i)=>{var r=h=>{try{n(s.next(h))}catch(l){i(l)}},o=h=>{try{n(s.throw(h))}catch(l){i(l)}},n=h=>h.done?a(h.value):Promise.resolve(h.value).then(r,o);n((s=s.apply(t,e)).next())});import{g as fa}from"./index-e9f36657-1784132466083.js";/* empty css */import{_ as ga}from"./index-fe70e5de-1784132466083.js";import{i as Se,g as ji,b as va}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{r as ki,n as qi}from"./index-ed255eef-1784132466083.js";import{c as $i,F as Di,b as Ui}from"./featurePanelLayout-62f917d3-1784132466083.js";import{A as Bi}from"./assets-8617da22-1784132466083.js";import{q as zi,r as Wi,s as Vi}from"./screen2Standard-483e466b-1784132466083.js";import{M as Hi}from"./index-36438a28-1784132466083.js";import{_ as Qi}from"./LayerPanel-5b73c261-1784132466083.js";import{a as da,_ as Ji}from"./FeatureInfoPanel-3970d641-1784132466083.js";import{_ as Xi}from"./TopicSwitcher-7006d8b4-1784132466083.js";import{_ as Ki,g as z,q as Ba,o as J,c as tt,a as R,t as ut,j as It,n as Ft,f as Yt,F as fs,y as gs,d as Q,h as Zi,w as ss,A as Pe,b as te,C as Ls,x as _a,u as as,J as Ma,z as Yi}from"./index-1784132466083.js";import{b as is,e as Rs,r as tr,a as er,p as sr,g as ar,c as Ts,d as ir}from"./data-09f482ff-1784132466083.js";import"./data-5c83c66b-1784132466083.js";const rr="/openApi";function nr(t){return nt(this,null,function*(){const e=yield ki(`${rr}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:t},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:t})}),s=qi(e);return hr(Array.isArray(s)?s[0]||{}:s||{})})}const or={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function hr(t={}){return!t||typeof t!="object"?{}:Object.entries(t).reduce((e,[s,a])=>{e[s]=a;const i=or[s];return i&&e[i]===void 0&&(e[i]=a),e},{})}function lr(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");for(var e=1;e<=60;++e)t("EPSG:"+(32600+e),"+proj=utm +zone="+e+" +datum=WGS84 +units=m"),t("EPSG:"+(32700+e),"+proj=utm +zone="+e+" +south +datum=WGS84 +units=m");t("EPSG:5041","+title=WGS 84 / UPS North (E,N) +proj=stere +lat_0=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t("EPSG:5042","+title=WGS 84 / UPS South (E,N) +proj=stere +lat_0=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}var Jt=1,Xt=2,ne=3,ur=4,$s=5,ma=6378137,cr=6356752314e-3,ya=.0066943799901413165,Ne=484813681109536e-20,P=Math.PI/2,fr=.16666666666666666,gr=.04722222222222222,vr=.022156084656084655,x=1e-10,Z=.017453292519943295,yt=57.29577951308232,U=Math.PI/4,Re=Math.PI*2,et=3.14159265359,wt={};wt.greenwich=0;wt.lisbon=-9.131906111111;wt.paris=2.337229166667;wt.bogota=-74.080916666667;wt.madrid=-3.687938888889;wt.rome=12.452333333333;wt.bern=7.439583333333;wt.jakarta=106.807719444444;wt.ferro=-17.666666666667;wt.brussels=4.367975;wt.stockholm=18.058277777778;wt.athens=23.7163375;wt.oslo=10.722916666667;const dr={mm:{to_meter:.001},cm:{to_meter:.01},ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937},fath:{to_meter:1.8288},kmi:{to_meter:1852},"us-ch":{to_meter:20.1168402336805},"us-mi":{to_meter:1609.34721869444},km:{to_meter:1e3},"ind-ft":{to_meter:.30479841},"ind-yd":{to_meter:.91439523},mi:{to_meter:1609.344},yd:{to_meter:.9144},ch:{to_meter:20.1168},link:{to_meter:.201168},dm:{to_meter:.1},in:{to_meter:.0254},"ind-ch":{to_meter:20.11669506},"us-in":{to_meter:.025400050800101},"us-yd":{to_meter:.914401828803658}};var wa=/[\s_\-\/\(\)]/g;function $t(t,e){if(t[e])return t[e];for(var s=Object.keys(t),a=e.toLowerCase().replace(wa,""),i=-1,r,o;++iArray.isArray(a)&&a[0]==="ID");return s&&s.length>=3?{authority:s[1],code:parseInt(s[2],10)}:null}static convertUnit(e,s="unit"){if(!e||e.length<3)return{type:s,name:"unknown",conversion_factor:null};const a=e[1],i=parseFloat(e[2])||null,r=e.find(n=>Array.isArray(n)&&n[0]==="ID"),o=r?{authority:r[1],code:parseInt(r[2],10)}:null;return{type:s,name:a,conversion_factor:i,id:o}}static convertAxis(e){const s=e[1]||"Unknown";let a;const i=s.match(/^\((.)\)$/);if(i){const l=i[1].toUpperCase();if(l==="E")a="east";else if(l==="N")a="north";else if(l==="U")a="up";else if(e[2])a=e[2];else throw new Error(`Unknown axis abbreviation: ${l}`)}else a=e[2]||"unknown";const r=e.find(l=>Array.isArray(l)&&l[0]==="ORDER"),o=r?parseInt(r[1],10):null,n=e.find(l=>Array.isArray(l)&&(l[0]==="LENGTHUNIT"||l[0]==="ANGLEUNIT"||l[0]==="SCALEUNIT")),h=this.convertUnit(n);return{name:s,direction:a,unit:h,order:o}}static extractAxes(e){return e.filter(s=>Array.isArray(s)&&s[0]==="AXIS").map(s=>this.convertAxis(s)).sort((s,a)=>(s.order||0)-(a.order||0))}static convert(e,s={}){switch(e[0]){case"PROJCRS":s.type="ProjectedCRS",s.name=e[1],s.base_crs=e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")):null,s.conversion=e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")):null;const a=e.find(u=>Array.isArray(u)&&u[0]==="CS");a&&(s.coordinate_system={type:a[1],axis:this.extractAxes(e)});const i=e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT");if(i){const u=this.convertUnit(i);s.coordinate_system.unit=u}s.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":s.type=e[0]==="GEODCRS"?"GeodeticCRS":"GeographicCRS",s.name=e[1];const r=e.find(u=>Array.isArray(u)&&(u[0]==="DATUM"||u[0]==="ENSEMBLE"));if(r){const u=this.convert(r);r[0]==="ENSEMBLE"?s.datum_ensemble=u:s.datum=u;const y=e.find(w=>Array.isArray(w)&&w[0]==="PRIMEM");y&&y[1]!=="Greenwich"&&(u.prime_meridian={name:y[1],longitude:parseFloat(y[2])})}s.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(e)},s.id=this.getId(e);break;case"DATUM":s.type="GeodeticReferenceFrame",s.name=e[1],s.ellipsoid=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":s.type="DatumEnsemble",s.name=e[1],s.members=e.filter(u=>Array.isArray(u)&&u[0]==="MEMBER").map(u=>({type:"DatumEnsembleMember",name:u[1],id:this.getId(u)}));const o=e.find(u=>Array.isArray(u)&&u[0]==="ENSEMBLEACCURACY");o&&(s.accuracy=parseFloat(o[1]));const n=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID");n&&(s.ellipsoid=this.convert(n)),s.id=this.getId(e);break;case"ELLIPSOID":s.type="Ellipsoid",s.name=e[1],s.semi_major_axis=parseFloat(e[2]),s.inverse_flattening=parseFloat(e[3]),e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT")&&this.convert(e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT"),s);break;case"CONVERSION":s.type="Conversion",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&u[0]==="PARAMETER").map(u=>this.convert(u));break;case"METHOD":s.type="Method",s.name=e[1],s.id=this.getId(e);break;case"PARAMETER":s.type="Parameter",s.name=e[1],s.value=parseFloat(e[2]),s.unit=this.convertUnit(e.find(u=>Array.isArray(u)&&(u[0]==="LENGTHUNIT"||u[0]==="ANGLEUNIT"||u[0]==="SCALEUNIT"))),s.id=this.getId(e);break;case"BOUNDCRS":s.type="BoundCRS";const h=e.find(u=>Array.isArray(u)&&u[0]==="SOURCECRS");if(h){const u=h.find(y=>Array.isArray(y));s.source_crs=u?this.convert(u):null}const l=e.find(u=>Array.isArray(u)&&u[0]==="TARGETCRS");if(l){const u=l.find(y=>Array.isArray(y));s.target_crs=u?this.convert(u):null}const g=e.find(u=>Array.isArray(u)&&u[0]==="ABRIDGEDTRANSFORMATION");g?s.transformation=this.convert(g):s.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(s.type="Transformation",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&(u[0]==="PARAMETER"||u[0]==="PARAMETERFILE")).map(u=>{if(u[0]==="PARAMETER")return this.convert(u);if(u[0]==="PARAMETERFILE")return{name:u[1],value:u[2],id:{authority:"EPSG",code:8656}}}),s.parameters.length===7){const u=s.parameters[6];u.name==="Scale difference"&&(u.value=Math.round((u.value-1)*1e12)/1e6)}s.id=this.getId(e);break;case"AXIS":s.coordinate_system||(s.coordinate_system={type:"unspecified",axis:[]}),s.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":const f=this.convertUnit(e,"LinearUnit");s.coordinate_system&&s.coordinate_system.axis&&s.coordinate_system.axis.forEach(u=>{u.unit||(u.unit=f)}),f.conversion_factor&&f.conversion_factor!==1&&s.semi_major_axis&&(s.semi_major_axis={value:s.semi_major_axis,unit:f});break;default:s.keyword=e[0];break}return s}}class _r extends za{static convert(e,s={}){return super.convert(e,s),s.coordinate_system&&s.coordinate_system.subtype==="Cartesian"&&delete s.coordinate_system,s.usage&&delete s.usage,s}}class Mr extends za{static convert(e,s={}){super.convert(e,s);const a=e.find(r=>Array.isArray(r)&&r[0]==="CS");a&&(s.coordinate_system={subtype:a[1],axis:this.extractAxes(e)});const i=e.find(r=>Array.isArray(r)&&r[0]==="USAGE");if(i){const r=i.find(h=>Array.isArray(h)&&h[0]==="SCOPE"),o=i.find(h=>Array.isArray(h)&&h[0]==="AREA"),n=i.find(h=>Array.isArray(h)&&h[0]==="BBOX");s.usage={},r&&(s.usage.scope=r[1]),o&&(s.usage.area=o[1]),n&&(s.usage.bbox=n.slice(1))}return s}}function mr(t){return t.find(e=>Array.isArray(e)&&e[0]==="USAGE")?"2019":(t.find(e=>Array.isArray(e)&&e[0]==="CS")||t[0]==="BOUNDCRS"||t[0]==="PROJCRS"||t[0]==="GEOGCRS","2015")}function yr(t){return(mr(t)==="2019"?Mr:_r).convert(t)}function wr(t){const e=t.toUpperCase();return e.includes("PROJCRS")||e.includes("GEOGCRS")||e.includes("BOUNDCRS")||e.includes("VERTCRS")||e.includes("LENGTHUNIT")||e.includes("ANGLEUNIT")||e.includes("SCALEUNIT")?"WKT2":(e.includes("PROJCS")||e.includes("GEOGCS")||e.includes("LOCAL_CS")||e.includes("VERT_CS")||e.includes("UNIT"),"WKT1")}var Te=1,Wa=2,Va=3,vs=4,Ha=5,Hs=-1,Er=/\s/,Sr=/[A-Za-z]/,Pr=/[A-Za-z84_]/,Ss=/[,\]]/,Qa=/[\d\.E\-\+]/;function jt(t){if(typeof t!="string")throw new Error("not a string");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=Te}jt.prototype.readCharicter=function(){var t=this.text[this.place++];if(this.state!==vs)for(;Er.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case Te:return this.neutral(t);case Wa:return this.keyword(t);case vs:return this.quoted(t);case Ha:return this.afterquote(t);case Va:return this.number(t);case Hs:return}};jt.prototype.afterquote=function(t){if(t==='"'){this.word+='"',this.state=vs;return}if(Ss.test(t)){this.word=this.word.trim(),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in afterquote yet, index '+this.place)};jt.prototype.afterItem=function(t){if(t===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=Te;return}if(t==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=Te,this.currentObject=this.stack.pop(),this.currentObject||(this.state=Hs);return}};jt.prototype.number=function(t){if(Qa.test(t)){this.word+=t;return}if(Ss.test(t)){this.word=parseFloat(this.word),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in number yet, index '+this.place)};jt.prototype.quoted=function(t){if(t==='"'){this.state=Ha;return}this.word+=t};jt.prototype.keyword=function(t){if(Pr.test(t)){this.word+=t;return}if(t==="["){var e=[];e.push(this.word),this.level++,this.root===null?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,this.state=Te;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in keyword yet, index '+this.place)};jt.prototype.neutral=function(t){if(Sr.test(t)){this.word=t,this.state=Wa;return}if(t==='"'){this.word="",this.state=vs;return}if(Qa.test(t)){this.word=t,this.state=Va;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in neutral yet, index '+this.place)};jt.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1,delete t.lat1):!t.lat_ts&&t.lat0&&(e==="polar stereographic"||e==="polar stereographic (variant a)")&&(t.lat_ts=t.lat0,t.lat0=St(t.lat0>0?90:-90),delete t.lat1)}function Ea(t){let e={units:null,to_meter:void 0};return typeof t=="string"?(e.units=t.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.units==="meter"&&(e.to_meter=1)):t&&t.name&&(e.units=t.name.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.to_meter=t.conversion_factor),e}function Sa(t){return typeof t=="object"?t.value*t.unit.conversion_factor:t}function Pa(t,e){t.ellipsoid.radius?(e.a=t.ellipsoid.radius,e.rf=0):(e.a=Sa(t.ellipsoid.semi_major_axis),t.ellipsoid.inverse_flattening!==void 0?e.rf=t.ellipsoid.inverse_flattening:t.ellipsoid.semi_major_axis!==void 0&&t.ellipsoid.semi_minor_axis!==void 0&&(e.rf=e.a/(e.a-Sa(t.ellipsoid.semi_minor_axis))))}function ds(t,e={}){return!t||typeof t!="object"?t:t.type==="BoundCRS"?(ds(t.source_crs,e),t.transformation&&(t.transformation.method&&t.transformation.method.name==="NTv2"?e.nadgrids=t.transformation.parameters[0].value:e.datum_params=t.transformation.parameters.map(s=>s.value)),e):(Object.keys(t).forEach(s=>{const a=t[s];if(a!==null)switch(s){case"name":if(e.srsCode)break;e.name=a,e.srsCode=a;break;case"type":a==="GeographicCRS"?e.projName="longlat":a==="GeodeticCRS"?t.coordinate_system&&t.coordinate_system.subtype==="Cartesian"?e.projName="geocent":e.projName="longlat":a==="ProjectedCRS"&&t.conversion&&t.conversion.method&&(e.projName=t.conversion.method.name);break;case"datum":case"datum_ensemble":a.ellipsoid&&(e.ellps=a.ellipsoid.name,Pa(a,e)),a.prime_meridian&&(e.from_greenwich=a.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":e.ellps=a.name,Pa(a,e);break;case"prime_meridian":e.long0=(a.longitude||0)*Math.PI/180;break;case"coordinate_system":if(a.axis){const i={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},r=a.axis.map(o=>i[o.direction.toLowerCase()]);if(r.every(Boolean)&&(e.axis=r.join(""),e.axis.length===2&&(e.axis+="u")),a.unit){const{units:o,to_meter:n}=Ea(a.unit);e.units=o,e.to_meter=n}else if(a.axis[0]&&a.axis[0].unit){const{units:o,to_meter:n}=Ea(a.axis[0].unit);e.units=o,e.to_meter=n}}break;case"id":a.authority&&a.code&&(e.title=a.authority+":"+a.code);break;case"conversion":a.method&&a.method.name&&(e.projName=a.method.name),a.parameters&&a.parameters.forEach(i=>{const r=i.name.toLowerCase().replace(/\s+/g,"_"),o=i.value;i.unit&&i.unit.conversion_factor?e[r]=o*i.unit.conversion_factor:i.unit==="degree"?e[r]=o*Math.PI/180:e[r]=o});break;case"unit":a.name&&(e.units=a.name.toLowerCase(),e.units==="metre"&&(e.units="meter")),a.conversion_factor&&(e.to_meter=a.conversion_factor);break;case"base_crs":ds(a,e),e.datumCode=a.id?a.id.authority+"_"+a.id.code:a.name;break}}),e.latitude_of_false_origin!==void 0&&(e.lat0=e.latitude_of_false_origin),e.longitude_of_false_origin!==void 0&&(e.long0=e.longitude_of_false_origin),e.latitude_of_standard_parallel!==void 0&&(e.lat0=e.latitude_of_standard_parallel,e.lat1=e.latitude_of_standard_parallel),e.latitude_of_1st_standard_parallel!==void 0&&(e.lat1=e.latitude_of_1st_standard_parallel),e.latitude_of_2nd_standard_parallel!==void 0&&(e.lat2=e.latitude_of_2nd_standard_parallel),e.latitude_of_projection_centre!==void 0&&(e.lat0=e.latitude_of_projection_centre),e.longitude_of_projection_centre!==void 0&&(e.longc=e.longitude_of_projection_centre),e.easting_at_false_origin!==void 0&&(e.x0=e.easting_at_false_origin),e.northing_at_false_origin!==void 0&&(e.y0=e.northing_at_false_origin),e.latitude_of_natural_origin!==void 0&&(e.lat0=e.latitude_of_natural_origin),e.longitude_of_natural_origin!==void 0&&(e.long0=e.longitude_of_natural_origin),e.longitude_of_origin!==void 0&&(e.long0=e.longitude_of_origin),e.false_easting!==void 0&&(e.x0=e.false_easting),e.easting_at_projection_centre&&(e.x0=e.easting_at_projection_centre),e.false_northing!==void 0&&(e.y0=e.false_northing),e.northing_at_projection_centre&&(e.y0=e.northing_at_projection_centre),e.standard_parallel_1!==void 0&&(e.lat1=e.standard_parallel_1),e.standard_parallel_2!==void 0&&(e.lat2=e.standard_parallel_2),e.scale_factor_at_natural_origin!==void 0&&(e.k0=e.scale_factor_at_natural_origin),e.scale_factor_at_projection_centre!==void 0&&(e.k0=e.scale_factor_at_projection_centre),e.scale_factor_on_pseudo_standard_parallel!==void 0&&(e.k0=e.scale_factor_on_pseudo_standard_parallel),e.azimuth!==void 0&&(e.alpha=e.azimuth),e.azimuth_at_projection_centre!==void 0&&(e.alpha=e.azimuth_at_projection_centre),e.angle_from_rectified_to_skew_grid&&(e.rectified_grid_angle=e.angle_from_rectified_to_skew_grid),Ja(e),e)}var br=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function Gr(t,e){var s=e[0],a=e[1];!(s in t)&&a in t&&(t[s]=t[a],e.length===3&&(t[s]=e[2](t[s])))}function Xa(t){for(var e=Object.keys(t),s=0,a=e.length;s-1;var e=$t(t,"authority");if(e){var s=$t(e,"epsg");return s&&pa.indexOf(s)>-1}}function Rr(t){var e=$t(t,"extension");if(e)return $t(e,"proj4")}function Tr(t){return t[0]==="+"}function Or(t){let e;if(Ar(t))if(Ir(t))e=ot[t];else if(Cr(t)){e=_s(t);var s=Rr(e);s&&(e=Ds(s))}else Tr(t)&&(e=Ds(t));else"projName"in t?e=t:e=_s(t);return e&&Lr(e)?ot["EPSG:3857"]:e}function xa(t,e){t=t||{};var s,a;if(!e)return t;for(a in e)s=e[a],s!==void 0&&(t[a]=s);return t}function Lt(t,e,s){var a=t*e;return s/Math.sqrt(1-a*a)}function ke(t){return t<0?-1:1}function G(t,e){return e||Math.abs(t)<=et?t:t-ke(t)*Re}function Nt(t,e,s){var a=t*s,i=.5*t;return a=Math.pow((1-a)/(1+a),i),Math.tan(.5*(P-e))/a}function Oe(t,e){for(var s=.5*t,a,i,r=P-2*Math.atan(e),o=0;o<=15;o++)if(a=t*Math.sin(r),i=P-2*Math.atan(e*Math.pow((1-a)/(1+a),s))-r,r+=i,Math.abs(i)<=1e-10)return r;return-9999}function Fr(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=Lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function jr(t){var e=t.x,s=t.y;if(s*yt>90&&s*yt<-90&&e*yt>180&&e*yt<-180)return null;var a,i;if(Math.abs(Math.abs(s)-P)<=x)return null;if(this.sphere)a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0+this.a*this.k0*Math.log(Math.tan(U+.5*s));else{var r=Math.sin(s),o=Nt(this.e,s,r);a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=a,t.y=i,t}function kr(t){var e=t.x-this.x0,s=t.y-this.y0,a,i;if(this.sphere)i=P-2*Math.atan(Math.exp(-s/(this.a*this.k0)));else{var r=Math.exp(-s/(this.a*this.k0));if(i=Oe(this.e,r),i===-9999)return null}return a=G(this.long0+e/(this.a*this.k0),this.over),t.x=a,t.y=i,t}var qr=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"];const $r={init:Fr,forward:jr,inverse:kr,names:qr};function Dr(){}function ba(t){return t}var Ka=["longlat","identity"];const Ur={init:Dr,forward:ba,inverse:ba,names:Ka};var Br=[$r,Ur],Ht={},ae=[];function Za(t,e){var s=ae.length;return t.names?(ae[s]=t,t.names.forEach(function(a){Ht[a.toLowerCase()]=s}),this):(console.log(e),!0)}function Ya(t){return t.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}function zr(t){if(!t)return!1;var e=t.toLowerCase();if(typeof Ht[e]!="undefined"&&ae[Ht[e]]||(e=Ya(e),e in Ht&&ae[Ht[e]]))return ae[Ht[e]]}function Wr(){Br.forEach(Za)}const Vr={start:Wr,add:Za,get:zr};var ti={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const Hr=ti.WGS84;function Qr(t,e,s,a){var i=t*t,r=e*e,o=(i-r)/i,n=0;a?(t*=1-o*(fr+o*(gr+o*vr)),i=t*t,o=0):n=Math.sqrt(o);var h=(i-r)/r;return{es:o,e:n,ep2:h}}function Jr(t,e,s,a,i){if(!t){var r=$t(ti,a);r||(r=Hr),t=r.a,e=r.b,s=r.rf}return s&&!e&&(e=(1-1/s)*t),(s===0||Math.abs(t-e)3&&(n.datum_params[3]!==0||n.datum_params[4]!==0||n.datum_params[5]!==0||n.datum_params[6]!==0)&&(n.datum_type=Xt,n.datum_params[3]*=Ne,n.datum_params[4]*=Ne,n.datum_params[5]*=Ne,n.datum_params[6]=n.datum_params[6]/1e6+1)),o&&(n.datum_type=ne,n.grids=o),n.a=s,n.b=a,n.es=i,n.ep2=r,n}var Qs={};function Zr(t,e,s){return e instanceof ArrayBuffer?Yr(t,e,s):{ready:tn(t,e)}}function Yr(t,e,s){var a=!0;s!==void 0&&s.includeErrorFields===!1&&(a=!1);var i=new DataView(e),r=an(i),o=rn(i,r),n=nn(i,o,r,a),h={header:o,subgrids:n};return Qs[t]=h,h}function tn(t,e){return nt(this,null,function*(){for(var s=[],a=yield e.getImageCount(),i=a-1;i>=0;i--){var r=yield e.getImage(i),o=yield r.readRasters(),n=o,h=[r.getWidth(),r.getHeight()],l=r.getBoundingBox().map(Ga),g=typeof r.fileDirectory.getValue=="function"?r.fileDirectory.getValue("ModelPixelScale"):r.fileDirectory.ModelPixelScale,f=[g[0],g[1]].map(Ga),u=l[0]+(h[0]-1)*f[0],y=l[3]-(h[1]-1)*f[1],w=n[0],E=n[1],S=[];for(let I=h[1]-1;I>=0;I--)for(let T=h[0]-1;T>=0;T--){var b=I*h[0]+T;S.push([-qt(E[b]),qt(w[b])])}s.push({del:f,lim:h,ll:[-u,y],cvs:S})}var A={header:{nSubgrids:a},subgrids:s};return Qs[t]=A,A})}function en(t){if(t===void 0)return null;var e=t.split(",");return e.map(sn)}function sn(t){if(t.length===0)return null;var e=t[0]==="@";return e&&(t=t.slice(1)),t==="null"?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Qs[t]||null,isNull:!1}}function Ga(t){return t*Math.PI/180}function qt(t){return t/3600*Math.PI/180}function an(t){var e=t.getInt32(8,!1);return e===11?!1:(e=t.getInt32(8,!0),e!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function rn(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Us(t,56,56+8).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}function Us(t,e,s){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,s)))}function nn(t,e,s,a){for(var i=176,r=[],o=0;o5e-11?!1:t.datum_type===Jt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type===Xt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]:!0}function ei(t,e,s){var a=t.x,i=t.y,r=t.z?t.z:0,o,n,h,l;if(i<-P&&i>-1.001*P)i=-P;else if(i>P&&i<1.001*P)i=P;else{if(i<-P)return{x:-1/0,y:-1/0,z:t.z};if(i>P)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),n=Math.sin(i),l=Math.cos(i),h=n*n,o=s/Math.sqrt(1-e*h),{x:(o+r)*l*Math.cos(a),y:(o+r)*l*Math.sin(a),z:(o*(1-e)+r)*n}}function si(t,e,s,a){var i=1e-12,r=i*i,o=30,n,h,l,g,f,u,y,w,E,S,b,A,I,T=t.x,j=t.y,O=t.z?t.z:0,F,K,W;if(n=Math.sqrt(T*T+j*j),h=Math.sqrt(T*T+j*j+O*O),n/sr&&Ia.y||y>a.x||Sn&&Math.abs(h.y)>n);if(o<0)return console.log("Inverse grid shift iterator failed to converge."),a;a.x=G(r.x+s.ll[0]),a.y=r.y+s.ll[1]}else isNaN(r.x)||(a.x=t.x+r.x,a.y=t.y+r.y);return a}function Aa(t,e){var s={x:t.x/e.del[0],y:t.y/e.del[1]},a={x:Math.floor(s.x),y:Math.floor(s.y)},i={x:s.x-1*a.x,y:s.y-1*a.y},r={x:Number.NaN,y:Number.NaN},o;if(a.x<0||a.x>=e.lim[0]||a.y<0||a.y>=e.lim[1])return r;o=a.y*e.lim[0]+a.x;var n={x:e.cvs[o][0],y:e.cvs[o][1]};o++;var h={x:e.cvs[o][0],y:e.cvs[o][1]};o+=e.lim[0];var l={x:e.cvs[o][0],y:e.cvs[o][1]};o--;var g={x:e.cvs[o][0],y:e.cvs[o][1]},f=i.x*i.y,u=i.x*(1-i.y),y=(1-i.x)*(1-i.y),w=(1-i.x)*i.y;return r.x=y*n.x+u*h.x+w*g.x+f*l.x,r.y=y*n.y+u*h.y+w*g.y+f*l.y,r}var Qt=["x","y","z"];function dn(t,e){const s={};for(let a=0,i=t.axis.length;a2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function Mn(t){Ia(t.x),Ia(t.y)}function Ia(t){if(typeof Number.isFinite=="function"){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if(typeof t!="number"||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function mn(t,e){return(t.datum.datum_type===Jt||t.datum.datum_type===Xt||t.datum.datum_type===ne)&&e.datumCode!=="WGS84"||(e.datum.datum_type===Jt||e.datum.datum_type===Xt||e.datum.datum_type===ne)&&t.datumCode!=="WGS84"}function Ms(t,e,s,a){var i,r=s.z!==void 0;if(Mn(s),t.datum&&e.datum&&mn(t,e)&&(i=new pt("WGS84"),s=Ms(t,i,s,a),t=i),a&&t.axis!=="enu"&&(s=dn(t,s)),t.projName==="longlat")s={x:s.x*Z,y:s.y*Z,z:s.z||0};else if(t.to_meter&&(s={x:s.x*t.to_meter,y:s.y*t.to_meter,z:s.z||0}),s=t.inverse(s),!s)return;if(t.from_greenwich&&(s.x+=t.from_greenwich),s=gn(t.datum,e.datum,s),!!s)return s=s,e.from_greenwich&&(s={x:s.x-e.from_greenwich,y:s.y,z:s.z||0}),e.projName==="longlat"?s={x:s.x*yt,y:s.y*yt,z:s.z||0}:(s=e.forward(s),e.to_meter&&(s={x:s.x/e.to_meter,y:s.y/e.to_meter,z:s.z||0})),a&&e.axis!=="enu"?_n(e,s):(s&&!r&&e.projName!=="geocent"&&delete s.z,s)}function yn(t,e,s,a){var i;return Array.isArray(s)?i=Js(s):i={x:s.x,y:s.y,z:s.z,m:s.m},Ms(t,e,i,a)}var Ca=pt("WGS84");function js(t,e,s,a){var i,r,o;return Array.isArray(s)?(i=Ms(t,e,Js(s),a)||{x:NaN,y:NaN},s.length>2?(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",r?typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y,s[2]].concat(s.slice(3)):a&&typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y].concat(s.slice(2))):[i.x,i.y]):(i=Ms(t,e,{x:s.x,y:s.y,z:s.z,m:s.m},a)||{x:NaN,y:NaN},o=Object.keys(s),o.length===2||(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",o.forEach(function(n){n==="x"||n==="y"||n==="z"&&(r||a)||(i[n]=s[n])})),i)}function ns(t){return t instanceof pt?t:typeof t=="object"&&"oProj"in t?t.oProj:pt(t)}function wn(t,e,s){var a,i,r=!1,o;return typeof e=="undefined"?(i=ns(t),a=Ca,r=!0):(typeof e.x!="undefined"||Array.isArray(e))&&(s=e,i=ns(t),a=Ca,r=!0),a||(a=ns(t)),i||(i=ns(e)),s?js(a,i,s):(o={forward:function(n,h){return js(a,i,n,h)},inverse:function(n,h){return js(i,a,n,h)}},r&&(o.oProj=i),o)}var La=6,ai="AJSAJS",ii="AFAFAF",ie=65,Mt=73,Pt=79,xe=86,be=90;const En={forward:ri,inverse:Sn,toPoint:ni};function ri(t,e){return e=e||5,xn(Pn({lat:t[1],lon:t[0]}),e)}function Sn(t){var e=Xs(hi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat,e.lon,e.lat]:[e.left,e.bottom,e.right,e.top]}function ni(t){var e=Xs(hi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function ks(t){return t*(Math.PI/180)}function Ra(t){return 180*(t/Math.PI)}function Pn(t){var e=t.lat,s=t.lon,a=6378137,i=.00669438,r=.9996,o,n,h,l,g,f,u,y=ks(e),w=ks(s),E,S;S=Math.floor((s+180)/6)+1,s===180&&(S=60),e>=56&&e<64&&s>=3&&s<12&&(S=32),e>=72&&e<84&&(s>=0&&s<9?S=31:s>=9&&s<21?S=33:s>=21&&s<33?S=35:s>=33&&s<42&&(S=37)),o=(S-1)*6-180+3,E=ks(o),n=i/(1-i),h=a/Math.sqrt(1-i*Math.sin(y)*Math.sin(y)),l=Math.tan(y)*Math.tan(y),g=n*Math.cos(y)*Math.cos(y),f=Math.cos(y)*(w-E),u=a*((1-i/4-3*i*i/64-5*i*i*i/256)*y-(3*i/8+3*i*i/32+45*i*i*i/1024)*Math.sin(2*y)+(15*i*i/256+45*i*i*i/1024)*Math.sin(4*y)-35*i*i*i/3072*Math.sin(6*y));var b=r*h*(f+(1-l+g)*f*f*f/6+(5-18*l+l*l+72*g-58*n)*f*f*f*f*f/120)+5e5,A=r*(u+h*Math.tan(y)*(f*f/2+(5-l+9*g+4*g*g)*f*f*f*f/24+(61-58*l+l*l+600*g-330*n)*f*f*f*f*f*f/720));return e<0&&(A+=1e7),{northing:Math.round(A),easting:Math.round(b),zoneNumber:S,zoneLetter:pn(e)}}function Xs(t){var e=t.northing,s=t.easting,a=t.zoneLetter,i=t.zoneNumber;if(i<0||i>60)return null;var r=.9996,o=6378137,n=.00669438,h,l=(1-Math.sqrt(1-n))/(1+Math.sqrt(1-n)),g,f,u,y,w,E,S,b,A,I=s-5e5,T=e;a<"N"&&(T-=1e7),S=(i-1)*6-180+3,h=n/(1-n),E=T/r,b=E/(o*(1-n/4-3*n*n/64-5*n*n*n/256)),A=b+(3*l/2-27*l*l*l/32)*Math.sin(2*b)+(21*l*l/16-55*l*l*l*l/32)*Math.sin(4*b)+151*l*l*l/96*Math.sin(6*b),g=o/Math.sqrt(1-n*Math.sin(A)*Math.sin(A)),f=Math.tan(A)*Math.tan(A),u=h*Math.cos(A)*Math.cos(A),y=o*(1-n)/Math.pow(1-n*Math.sin(A)*Math.sin(A),1.5),w=I/(g*r);var j=A-g*Math.tan(A)/y*(w*w/2-(5+3*f+10*u-4*u*u-9*h)*w*w*w*w/24+(61+90*f+298*u+45*f*f-252*h-3*u*u)*w*w*w*w*w*w/720);j=Ra(j);var O=(w-(1+2*f+u)*w*w*w/6+(5-2*u+28*f-3*u*u+8*h+24*f*f)*w*w*w*w*w/120)/Math.cos(A);O=S+Ra(O);var F;if(t.accuracy){var K=Xs({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});F={top:K.lat,right:K.lon,bottom:j,left:O}}else F={lat:j,lon:O};return F}function pn(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function xn(t,e){var s="00000"+t.easting,a="00000"+t.northing;return t.zoneNumber+t.zoneLetter+bn(t.easting,t.northing,t.zoneNumber)+s.substr(s.length-5,e)+a.substr(a.length-5,e)}function bn(t,e,s){var a=oi(s),i=Math.floor(t/1e5),r=Math.floor(e/1e5)%20;return Gn(i,r,a)}function oi(t){var e=t%La;return e===0&&(e=La),e}function Gn(t,e,s){var a=s-1,i=ai.charCodeAt(a),r=ii.charCodeAt(a),o=i+t-1,n=r+e,h=!1;o>be&&(o=o-be+ie-1,h=!0),(o===Mt||iMt||(o>Mt||iPt||(o>Pt||ibe&&(o=o-be+ie-1),n>xe?(n=n-xe+ie-1,h=!0):h=!1,(n===Mt||rMt||(n>Mt||rPt||(n>Pt||rxe&&(n=n-xe+ie-1);var l=String.fromCharCode(o)+String.fromCharCode(n);return l}function hi(t){if(t&&t.length===0)throw"MGRSPoint coverting from nothing";for(var e=t.length,s=null,a="",i,r=0;!/[A-Z]/.test(i=t.charAt(r));){if(r>=2)throw"MGRSPoint bad conversion from: "+t;a+=i,r++}var o=parseInt(a,10);if(r===0||r+3>e)throw"MGRSPoint bad conversion from: "+t;var n=t.charAt(r++);if(n<="A"||n==="B"||n==="Y"||n>="Z"||n==="I"||n==="O")throw"MGRSPoint zone letter "+n+" not handled: "+t;s=t.substring(r,r+=2);for(var h=oi(o),l=Nn(s.charAt(0),h),g=An(s.charAt(1),h);ge in t?Li(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ot=(t,e)=>{for(var s in e||(e={}))Oi.call(e,s)&&ca(t,s,e[s]);if(ua)for(var s of ua(e))Fi.call(e,s)&&ca(t,s,e[s]);return t},kt=(t,e)=>Ri(t,Ti(e));var nt=(t,e,s)=>new Promise((a,i)=>{var r=h=>{try{n(s.next(h))}catch(l){i(l)}},o=h=>{try{n(s.throw(h))}catch(l){i(l)}},n=h=>h.done?a(h.value):Promise.resolve(h.value).then(r,o);n((s=s.apply(t,e)).next())});import{g as fa}from"./index-e9f36657-1784132792831.js";/* empty css */import{_ as ga}from"./index-a4d3ff67-1784132792831.js";import{i as Se,g as ji,b as va}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{r as ki,n as qi}from"./index-a1b5e9c0-1784132792831.js";import{c as $i,F as Di,b as Ui}from"./featurePanelLayout-9d4ef87e-1784132792831.js";import{A as Bi}from"./assets-8cd57427-1784132792831.js";import{q as zi,r as Wi,s as Vi}from"./screen2Standard-41868f75-1784132792831.js";import{M as Hi}from"./index-24267a69-1784132792831.js";import{_ as Qi}from"./LayerPanel-fa97fc8c-1784132792831.js";import{a as da,_ as Ji}from"./FeatureInfoPanel-8ee1b2b1-1784132792831.js";import{_ as Xi}from"./TopicSwitcher-2e4ca291-1784132792831.js";import{_ as Ki,g as z,q as Ba,o as J,c as tt,a as R,t as ut,j as It,n as Ft,f as Yt,F as fs,y as gs,d as Q,h as Zi,w as ss,A as Pe,b as te,C as Ls,x as _a,u as as,J as Ma,z as Yi}from"./index-1784132792831.js";import{b as is,e as Rs,r as tr,a as er,p as sr,g as ar,c as Ts,d as ir}from"./data-85b25709-1784132792831.js";import"./data-ee410ed3-1784132792831.js";const rr="/openApi";function nr(t){return nt(this,null,function*(){const e=yield ki(`${rr}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:t},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:t})}),s=qi(e);return hr(Array.isArray(s)?s[0]||{}:s||{})})}const or={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function hr(t={}){return!t||typeof t!="object"?{}:Object.entries(t).reduce((e,[s,a])=>{e[s]=a;const i=or[s];return i&&e[i]===void 0&&(e[i]=a),e},{})}function lr(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");for(var e=1;e<=60;++e)t("EPSG:"+(32600+e),"+proj=utm +zone="+e+" +datum=WGS84 +units=m"),t("EPSG:"+(32700+e),"+proj=utm +zone="+e+" +south +datum=WGS84 +units=m");t("EPSG:5041","+title=WGS 84 / UPS North (E,N) +proj=stere +lat_0=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t("EPSG:5042","+title=WGS 84 / UPS South (E,N) +proj=stere +lat_0=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}var Jt=1,Xt=2,ne=3,ur=4,$s=5,ma=6378137,cr=6356752314e-3,ya=.0066943799901413165,Ne=484813681109536e-20,P=Math.PI/2,fr=.16666666666666666,gr=.04722222222222222,vr=.022156084656084655,x=1e-10,Z=.017453292519943295,yt=57.29577951308232,U=Math.PI/4,Re=Math.PI*2,et=3.14159265359,wt={};wt.greenwich=0;wt.lisbon=-9.131906111111;wt.paris=2.337229166667;wt.bogota=-74.080916666667;wt.madrid=-3.687938888889;wt.rome=12.452333333333;wt.bern=7.439583333333;wt.jakarta=106.807719444444;wt.ferro=-17.666666666667;wt.brussels=4.367975;wt.stockholm=18.058277777778;wt.athens=23.7163375;wt.oslo=10.722916666667;const dr={mm:{to_meter:.001},cm:{to_meter:.01},ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937},fath:{to_meter:1.8288},kmi:{to_meter:1852},"us-ch":{to_meter:20.1168402336805},"us-mi":{to_meter:1609.34721869444},km:{to_meter:1e3},"ind-ft":{to_meter:.30479841},"ind-yd":{to_meter:.91439523},mi:{to_meter:1609.344},yd:{to_meter:.9144},ch:{to_meter:20.1168},link:{to_meter:.201168},dm:{to_meter:.1},in:{to_meter:.0254},"ind-ch":{to_meter:20.11669506},"us-in":{to_meter:.025400050800101},"us-yd":{to_meter:.914401828803658}};var wa=/[\s_\-\/\(\)]/g;function $t(t,e){if(t[e])return t[e];for(var s=Object.keys(t),a=e.toLowerCase().replace(wa,""),i=-1,r,o;++iArray.isArray(a)&&a[0]==="ID");return s&&s.length>=3?{authority:s[1],code:parseInt(s[2],10)}:null}static convertUnit(e,s="unit"){if(!e||e.length<3)return{type:s,name:"unknown",conversion_factor:null};const a=e[1],i=parseFloat(e[2])||null,r=e.find(n=>Array.isArray(n)&&n[0]==="ID"),o=r?{authority:r[1],code:parseInt(r[2],10)}:null;return{type:s,name:a,conversion_factor:i,id:o}}static convertAxis(e){const s=e[1]||"Unknown";let a;const i=s.match(/^\((.)\)$/);if(i){const l=i[1].toUpperCase();if(l==="E")a="east";else if(l==="N")a="north";else if(l==="U")a="up";else if(e[2])a=e[2];else throw new Error(`Unknown axis abbreviation: ${l}`)}else a=e[2]||"unknown";const r=e.find(l=>Array.isArray(l)&&l[0]==="ORDER"),o=r?parseInt(r[1],10):null,n=e.find(l=>Array.isArray(l)&&(l[0]==="LENGTHUNIT"||l[0]==="ANGLEUNIT"||l[0]==="SCALEUNIT")),h=this.convertUnit(n);return{name:s,direction:a,unit:h,order:o}}static extractAxes(e){return e.filter(s=>Array.isArray(s)&&s[0]==="AXIS").map(s=>this.convertAxis(s)).sort((s,a)=>(s.order||0)-(a.order||0))}static convert(e,s={}){switch(e[0]){case"PROJCRS":s.type="ProjectedCRS",s.name=e[1],s.base_crs=e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")):null,s.conversion=e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")):null;const a=e.find(u=>Array.isArray(u)&&u[0]==="CS");a&&(s.coordinate_system={type:a[1],axis:this.extractAxes(e)});const i=e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT");if(i){const u=this.convertUnit(i);s.coordinate_system.unit=u}s.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":s.type=e[0]==="GEODCRS"?"GeodeticCRS":"GeographicCRS",s.name=e[1];const r=e.find(u=>Array.isArray(u)&&(u[0]==="DATUM"||u[0]==="ENSEMBLE"));if(r){const u=this.convert(r);r[0]==="ENSEMBLE"?s.datum_ensemble=u:s.datum=u;const y=e.find(w=>Array.isArray(w)&&w[0]==="PRIMEM");y&&y[1]!=="Greenwich"&&(u.prime_meridian={name:y[1],longitude:parseFloat(y[2])})}s.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(e)},s.id=this.getId(e);break;case"DATUM":s.type="GeodeticReferenceFrame",s.name=e[1],s.ellipsoid=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":s.type="DatumEnsemble",s.name=e[1],s.members=e.filter(u=>Array.isArray(u)&&u[0]==="MEMBER").map(u=>({type:"DatumEnsembleMember",name:u[1],id:this.getId(u)}));const o=e.find(u=>Array.isArray(u)&&u[0]==="ENSEMBLEACCURACY");o&&(s.accuracy=parseFloat(o[1]));const n=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID");n&&(s.ellipsoid=this.convert(n)),s.id=this.getId(e);break;case"ELLIPSOID":s.type="Ellipsoid",s.name=e[1],s.semi_major_axis=parseFloat(e[2]),s.inverse_flattening=parseFloat(e[3]),e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT")&&this.convert(e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT"),s);break;case"CONVERSION":s.type="Conversion",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&u[0]==="PARAMETER").map(u=>this.convert(u));break;case"METHOD":s.type="Method",s.name=e[1],s.id=this.getId(e);break;case"PARAMETER":s.type="Parameter",s.name=e[1],s.value=parseFloat(e[2]),s.unit=this.convertUnit(e.find(u=>Array.isArray(u)&&(u[0]==="LENGTHUNIT"||u[0]==="ANGLEUNIT"||u[0]==="SCALEUNIT"))),s.id=this.getId(e);break;case"BOUNDCRS":s.type="BoundCRS";const h=e.find(u=>Array.isArray(u)&&u[0]==="SOURCECRS");if(h){const u=h.find(y=>Array.isArray(y));s.source_crs=u?this.convert(u):null}const l=e.find(u=>Array.isArray(u)&&u[0]==="TARGETCRS");if(l){const u=l.find(y=>Array.isArray(y));s.target_crs=u?this.convert(u):null}const g=e.find(u=>Array.isArray(u)&&u[0]==="ABRIDGEDTRANSFORMATION");g?s.transformation=this.convert(g):s.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(s.type="Transformation",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&(u[0]==="PARAMETER"||u[0]==="PARAMETERFILE")).map(u=>{if(u[0]==="PARAMETER")return this.convert(u);if(u[0]==="PARAMETERFILE")return{name:u[1],value:u[2],id:{authority:"EPSG",code:8656}}}),s.parameters.length===7){const u=s.parameters[6];u.name==="Scale difference"&&(u.value=Math.round((u.value-1)*1e12)/1e6)}s.id=this.getId(e);break;case"AXIS":s.coordinate_system||(s.coordinate_system={type:"unspecified",axis:[]}),s.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":const f=this.convertUnit(e,"LinearUnit");s.coordinate_system&&s.coordinate_system.axis&&s.coordinate_system.axis.forEach(u=>{u.unit||(u.unit=f)}),f.conversion_factor&&f.conversion_factor!==1&&s.semi_major_axis&&(s.semi_major_axis={value:s.semi_major_axis,unit:f});break;default:s.keyword=e[0];break}return s}}class _r extends za{static convert(e,s={}){return super.convert(e,s),s.coordinate_system&&s.coordinate_system.subtype==="Cartesian"&&delete s.coordinate_system,s.usage&&delete s.usage,s}}class Mr extends za{static convert(e,s={}){super.convert(e,s);const a=e.find(r=>Array.isArray(r)&&r[0]==="CS");a&&(s.coordinate_system={subtype:a[1],axis:this.extractAxes(e)});const i=e.find(r=>Array.isArray(r)&&r[0]==="USAGE");if(i){const r=i.find(h=>Array.isArray(h)&&h[0]==="SCOPE"),o=i.find(h=>Array.isArray(h)&&h[0]==="AREA"),n=i.find(h=>Array.isArray(h)&&h[0]==="BBOX");s.usage={},r&&(s.usage.scope=r[1]),o&&(s.usage.area=o[1]),n&&(s.usage.bbox=n.slice(1))}return s}}function mr(t){return t.find(e=>Array.isArray(e)&&e[0]==="USAGE")?"2019":(t.find(e=>Array.isArray(e)&&e[0]==="CS")||t[0]==="BOUNDCRS"||t[0]==="PROJCRS"||t[0]==="GEOGCRS","2015")}function yr(t){return(mr(t)==="2019"?Mr:_r).convert(t)}function wr(t){const e=t.toUpperCase();return e.includes("PROJCRS")||e.includes("GEOGCRS")||e.includes("BOUNDCRS")||e.includes("VERTCRS")||e.includes("LENGTHUNIT")||e.includes("ANGLEUNIT")||e.includes("SCALEUNIT")?"WKT2":(e.includes("PROJCS")||e.includes("GEOGCS")||e.includes("LOCAL_CS")||e.includes("VERT_CS")||e.includes("UNIT"),"WKT1")}var Te=1,Wa=2,Va=3,vs=4,Ha=5,Hs=-1,Er=/\s/,Sr=/[A-Za-z]/,Pr=/[A-Za-z84_]/,Ss=/[,\]]/,Qa=/[\d\.E\-\+]/;function jt(t){if(typeof t!="string")throw new Error("not a string");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=Te}jt.prototype.readCharicter=function(){var t=this.text[this.place++];if(this.state!==vs)for(;Er.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case Te:return this.neutral(t);case Wa:return this.keyword(t);case vs:return this.quoted(t);case Ha:return this.afterquote(t);case Va:return this.number(t);case Hs:return}};jt.prototype.afterquote=function(t){if(t==='"'){this.word+='"',this.state=vs;return}if(Ss.test(t)){this.word=this.word.trim(),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in afterquote yet, index '+this.place)};jt.prototype.afterItem=function(t){if(t===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=Te;return}if(t==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=Te,this.currentObject=this.stack.pop(),this.currentObject||(this.state=Hs);return}};jt.prototype.number=function(t){if(Qa.test(t)){this.word+=t;return}if(Ss.test(t)){this.word=parseFloat(this.word),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in number yet, index '+this.place)};jt.prototype.quoted=function(t){if(t==='"'){this.state=Ha;return}this.word+=t};jt.prototype.keyword=function(t){if(Pr.test(t)){this.word+=t;return}if(t==="["){var e=[];e.push(this.word),this.level++,this.root===null?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,this.state=Te;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in keyword yet, index '+this.place)};jt.prototype.neutral=function(t){if(Sr.test(t)){this.word=t,this.state=Wa;return}if(t==='"'){this.word="",this.state=vs;return}if(Qa.test(t)){this.word=t,this.state=Va;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in neutral yet, index '+this.place)};jt.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1,delete t.lat1):!t.lat_ts&&t.lat0&&(e==="polar stereographic"||e==="polar stereographic (variant a)")&&(t.lat_ts=t.lat0,t.lat0=St(t.lat0>0?90:-90),delete t.lat1)}function Ea(t){let e={units:null,to_meter:void 0};return typeof t=="string"?(e.units=t.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.units==="meter"&&(e.to_meter=1)):t&&t.name&&(e.units=t.name.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.to_meter=t.conversion_factor),e}function Sa(t){return typeof t=="object"?t.value*t.unit.conversion_factor:t}function Pa(t,e){t.ellipsoid.radius?(e.a=t.ellipsoid.radius,e.rf=0):(e.a=Sa(t.ellipsoid.semi_major_axis),t.ellipsoid.inverse_flattening!==void 0?e.rf=t.ellipsoid.inverse_flattening:t.ellipsoid.semi_major_axis!==void 0&&t.ellipsoid.semi_minor_axis!==void 0&&(e.rf=e.a/(e.a-Sa(t.ellipsoid.semi_minor_axis))))}function ds(t,e={}){return!t||typeof t!="object"?t:t.type==="BoundCRS"?(ds(t.source_crs,e),t.transformation&&(t.transformation.method&&t.transformation.method.name==="NTv2"?e.nadgrids=t.transformation.parameters[0].value:e.datum_params=t.transformation.parameters.map(s=>s.value)),e):(Object.keys(t).forEach(s=>{const a=t[s];if(a!==null)switch(s){case"name":if(e.srsCode)break;e.name=a,e.srsCode=a;break;case"type":a==="GeographicCRS"?e.projName="longlat":a==="GeodeticCRS"?t.coordinate_system&&t.coordinate_system.subtype==="Cartesian"?e.projName="geocent":e.projName="longlat":a==="ProjectedCRS"&&t.conversion&&t.conversion.method&&(e.projName=t.conversion.method.name);break;case"datum":case"datum_ensemble":a.ellipsoid&&(e.ellps=a.ellipsoid.name,Pa(a,e)),a.prime_meridian&&(e.from_greenwich=a.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":e.ellps=a.name,Pa(a,e);break;case"prime_meridian":e.long0=(a.longitude||0)*Math.PI/180;break;case"coordinate_system":if(a.axis){const i={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},r=a.axis.map(o=>i[o.direction.toLowerCase()]);if(r.every(Boolean)&&(e.axis=r.join(""),e.axis.length===2&&(e.axis+="u")),a.unit){const{units:o,to_meter:n}=Ea(a.unit);e.units=o,e.to_meter=n}else if(a.axis[0]&&a.axis[0].unit){const{units:o,to_meter:n}=Ea(a.axis[0].unit);e.units=o,e.to_meter=n}}break;case"id":a.authority&&a.code&&(e.title=a.authority+":"+a.code);break;case"conversion":a.method&&a.method.name&&(e.projName=a.method.name),a.parameters&&a.parameters.forEach(i=>{const r=i.name.toLowerCase().replace(/\s+/g,"_"),o=i.value;i.unit&&i.unit.conversion_factor?e[r]=o*i.unit.conversion_factor:i.unit==="degree"?e[r]=o*Math.PI/180:e[r]=o});break;case"unit":a.name&&(e.units=a.name.toLowerCase(),e.units==="metre"&&(e.units="meter")),a.conversion_factor&&(e.to_meter=a.conversion_factor);break;case"base_crs":ds(a,e),e.datumCode=a.id?a.id.authority+"_"+a.id.code:a.name;break}}),e.latitude_of_false_origin!==void 0&&(e.lat0=e.latitude_of_false_origin),e.longitude_of_false_origin!==void 0&&(e.long0=e.longitude_of_false_origin),e.latitude_of_standard_parallel!==void 0&&(e.lat0=e.latitude_of_standard_parallel,e.lat1=e.latitude_of_standard_parallel),e.latitude_of_1st_standard_parallel!==void 0&&(e.lat1=e.latitude_of_1st_standard_parallel),e.latitude_of_2nd_standard_parallel!==void 0&&(e.lat2=e.latitude_of_2nd_standard_parallel),e.latitude_of_projection_centre!==void 0&&(e.lat0=e.latitude_of_projection_centre),e.longitude_of_projection_centre!==void 0&&(e.longc=e.longitude_of_projection_centre),e.easting_at_false_origin!==void 0&&(e.x0=e.easting_at_false_origin),e.northing_at_false_origin!==void 0&&(e.y0=e.northing_at_false_origin),e.latitude_of_natural_origin!==void 0&&(e.lat0=e.latitude_of_natural_origin),e.longitude_of_natural_origin!==void 0&&(e.long0=e.longitude_of_natural_origin),e.longitude_of_origin!==void 0&&(e.long0=e.longitude_of_origin),e.false_easting!==void 0&&(e.x0=e.false_easting),e.easting_at_projection_centre&&(e.x0=e.easting_at_projection_centre),e.false_northing!==void 0&&(e.y0=e.false_northing),e.northing_at_projection_centre&&(e.y0=e.northing_at_projection_centre),e.standard_parallel_1!==void 0&&(e.lat1=e.standard_parallel_1),e.standard_parallel_2!==void 0&&(e.lat2=e.standard_parallel_2),e.scale_factor_at_natural_origin!==void 0&&(e.k0=e.scale_factor_at_natural_origin),e.scale_factor_at_projection_centre!==void 0&&(e.k0=e.scale_factor_at_projection_centre),e.scale_factor_on_pseudo_standard_parallel!==void 0&&(e.k0=e.scale_factor_on_pseudo_standard_parallel),e.azimuth!==void 0&&(e.alpha=e.azimuth),e.azimuth_at_projection_centre!==void 0&&(e.alpha=e.azimuth_at_projection_centre),e.angle_from_rectified_to_skew_grid&&(e.rectified_grid_angle=e.angle_from_rectified_to_skew_grid),Ja(e),e)}var br=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function Gr(t,e){var s=e[0],a=e[1];!(s in t)&&a in t&&(t[s]=t[a],e.length===3&&(t[s]=e[2](t[s])))}function Xa(t){for(var e=Object.keys(t),s=0,a=e.length;s-1;var e=$t(t,"authority");if(e){var s=$t(e,"epsg");return s&&pa.indexOf(s)>-1}}function Rr(t){var e=$t(t,"extension");if(e)return $t(e,"proj4")}function Tr(t){return t[0]==="+"}function Or(t){let e;if(Ar(t))if(Ir(t))e=ot[t];else if(Cr(t)){e=_s(t);var s=Rr(e);s&&(e=Ds(s))}else Tr(t)&&(e=Ds(t));else"projName"in t?e=t:e=_s(t);return e&&Lr(e)?ot["EPSG:3857"]:e}function xa(t,e){t=t||{};var s,a;if(!e)return t;for(a in e)s=e[a],s!==void 0&&(t[a]=s);return t}function Lt(t,e,s){var a=t*e;return s/Math.sqrt(1-a*a)}function ke(t){return t<0?-1:1}function G(t,e){return e||Math.abs(t)<=et?t:t-ke(t)*Re}function Nt(t,e,s){var a=t*s,i=.5*t;return a=Math.pow((1-a)/(1+a),i),Math.tan(.5*(P-e))/a}function Oe(t,e){for(var s=.5*t,a,i,r=P-2*Math.atan(e),o=0;o<=15;o++)if(a=t*Math.sin(r),i=P-2*Math.atan(e*Math.pow((1-a)/(1+a),s))-r,r+=i,Math.abs(i)<=1e-10)return r;return-9999}function Fr(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=Lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function jr(t){var e=t.x,s=t.y;if(s*yt>90&&s*yt<-90&&e*yt>180&&e*yt<-180)return null;var a,i;if(Math.abs(Math.abs(s)-P)<=x)return null;if(this.sphere)a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0+this.a*this.k0*Math.log(Math.tan(U+.5*s));else{var r=Math.sin(s),o=Nt(this.e,s,r);a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=a,t.y=i,t}function kr(t){var e=t.x-this.x0,s=t.y-this.y0,a,i;if(this.sphere)i=P-2*Math.atan(Math.exp(-s/(this.a*this.k0)));else{var r=Math.exp(-s/(this.a*this.k0));if(i=Oe(this.e,r),i===-9999)return null}return a=G(this.long0+e/(this.a*this.k0),this.over),t.x=a,t.y=i,t}var qr=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"];const $r={init:Fr,forward:jr,inverse:kr,names:qr};function Dr(){}function ba(t){return t}var Ka=["longlat","identity"];const Ur={init:Dr,forward:ba,inverse:ba,names:Ka};var Br=[$r,Ur],Ht={},ae=[];function Za(t,e){var s=ae.length;return t.names?(ae[s]=t,t.names.forEach(function(a){Ht[a.toLowerCase()]=s}),this):(console.log(e),!0)}function Ya(t){return t.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}function zr(t){if(!t)return!1;var e=t.toLowerCase();if(typeof Ht[e]!="undefined"&&ae[Ht[e]]||(e=Ya(e),e in Ht&&ae[Ht[e]]))return ae[Ht[e]]}function Wr(){Br.forEach(Za)}const Vr={start:Wr,add:Za,get:zr};var ti={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const Hr=ti.WGS84;function Qr(t,e,s,a){var i=t*t,r=e*e,o=(i-r)/i,n=0;a?(t*=1-o*(fr+o*(gr+o*vr)),i=t*t,o=0):n=Math.sqrt(o);var h=(i-r)/r;return{es:o,e:n,ep2:h}}function Jr(t,e,s,a,i){if(!t){var r=$t(ti,a);r||(r=Hr),t=r.a,e=r.b,s=r.rf}return s&&!e&&(e=(1-1/s)*t),(s===0||Math.abs(t-e)3&&(n.datum_params[3]!==0||n.datum_params[4]!==0||n.datum_params[5]!==0||n.datum_params[6]!==0)&&(n.datum_type=Xt,n.datum_params[3]*=Ne,n.datum_params[4]*=Ne,n.datum_params[5]*=Ne,n.datum_params[6]=n.datum_params[6]/1e6+1)),o&&(n.datum_type=ne,n.grids=o),n.a=s,n.b=a,n.es=i,n.ep2=r,n}var Qs={};function Zr(t,e,s){return e instanceof ArrayBuffer?Yr(t,e,s):{ready:tn(t,e)}}function Yr(t,e,s){var a=!0;s!==void 0&&s.includeErrorFields===!1&&(a=!1);var i=new DataView(e),r=an(i),o=rn(i,r),n=nn(i,o,r,a),h={header:o,subgrids:n};return Qs[t]=h,h}function tn(t,e){return nt(this,null,function*(){for(var s=[],a=yield e.getImageCount(),i=a-1;i>=0;i--){var r=yield e.getImage(i),o=yield r.readRasters(),n=o,h=[r.getWidth(),r.getHeight()],l=r.getBoundingBox().map(Ga),g=typeof r.fileDirectory.getValue=="function"?r.fileDirectory.getValue("ModelPixelScale"):r.fileDirectory.ModelPixelScale,f=[g[0],g[1]].map(Ga),u=l[0]+(h[0]-1)*f[0],y=l[3]-(h[1]-1)*f[1],w=n[0],E=n[1],S=[];for(let I=h[1]-1;I>=0;I--)for(let T=h[0]-1;T>=0;T--){var b=I*h[0]+T;S.push([-qt(E[b]),qt(w[b])])}s.push({del:f,lim:h,ll:[-u,y],cvs:S})}var A={header:{nSubgrids:a},subgrids:s};return Qs[t]=A,A})}function en(t){if(t===void 0)return null;var e=t.split(",");return e.map(sn)}function sn(t){if(t.length===0)return null;var e=t[0]==="@";return e&&(t=t.slice(1)),t==="null"?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Qs[t]||null,isNull:!1}}function Ga(t){return t*Math.PI/180}function qt(t){return t/3600*Math.PI/180}function an(t){var e=t.getInt32(8,!1);return e===11?!1:(e=t.getInt32(8,!0),e!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function rn(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Us(t,56,56+8).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}function Us(t,e,s){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,s)))}function nn(t,e,s,a){for(var i=176,r=[],o=0;o5e-11?!1:t.datum_type===Jt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type===Xt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]:!0}function ei(t,e,s){var a=t.x,i=t.y,r=t.z?t.z:0,o,n,h,l;if(i<-P&&i>-1.001*P)i=-P;else if(i>P&&i<1.001*P)i=P;else{if(i<-P)return{x:-1/0,y:-1/0,z:t.z};if(i>P)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),n=Math.sin(i),l=Math.cos(i),h=n*n,o=s/Math.sqrt(1-e*h),{x:(o+r)*l*Math.cos(a),y:(o+r)*l*Math.sin(a),z:(o*(1-e)+r)*n}}function si(t,e,s,a){var i=1e-12,r=i*i,o=30,n,h,l,g,f,u,y,w,E,S,b,A,I,T=t.x,j=t.y,O=t.z?t.z:0,F,K,W;if(n=Math.sqrt(T*T+j*j),h=Math.sqrt(T*T+j*j+O*O),n/sr&&Ia.y||y>a.x||Sn&&Math.abs(h.y)>n);if(o<0)return console.log("Inverse grid shift iterator failed to converge."),a;a.x=G(r.x+s.ll[0]),a.y=r.y+s.ll[1]}else isNaN(r.x)||(a.x=t.x+r.x,a.y=t.y+r.y);return a}function Aa(t,e){var s={x:t.x/e.del[0],y:t.y/e.del[1]},a={x:Math.floor(s.x),y:Math.floor(s.y)},i={x:s.x-1*a.x,y:s.y-1*a.y},r={x:Number.NaN,y:Number.NaN},o;if(a.x<0||a.x>=e.lim[0]||a.y<0||a.y>=e.lim[1])return r;o=a.y*e.lim[0]+a.x;var n={x:e.cvs[o][0],y:e.cvs[o][1]};o++;var h={x:e.cvs[o][0],y:e.cvs[o][1]};o+=e.lim[0];var l={x:e.cvs[o][0],y:e.cvs[o][1]};o--;var g={x:e.cvs[o][0],y:e.cvs[o][1]},f=i.x*i.y,u=i.x*(1-i.y),y=(1-i.x)*(1-i.y),w=(1-i.x)*i.y;return r.x=y*n.x+u*h.x+w*g.x+f*l.x,r.y=y*n.y+u*h.y+w*g.y+f*l.y,r}var Qt=["x","y","z"];function dn(t,e){const s={};for(let a=0,i=t.axis.length;a2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function Mn(t){Ia(t.x),Ia(t.y)}function Ia(t){if(typeof Number.isFinite=="function"){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if(typeof t!="number"||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function mn(t,e){return(t.datum.datum_type===Jt||t.datum.datum_type===Xt||t.datum.datum_type===ne)&&e.datumCode!=="WGS84"||(e.datum.datum_type===Jt||e.datum.datum_type===Xt||e.datum.datum_type===ne)&&t.datumCode!=="WGS84"}function Ms(t,e,s,a){var i,r=s.z!==void 0;if(Mn(s),t.datum&&e.datum&&mn(t,e)&&(i=new pt("WGS84"),s=Ms(t,i,s,a),t=i),a&&t.axis!=="enu"&&(s=dn(t,s)),t.projName==="longlat")s={x:s.x*Z,y:s.y*Z,z:s.z||0};else if(t.to_meter&&(s={x:s.x*t.to_meter,y:s.y*t.to_meter,z:s.z||0}),s=t.inverse(s),!s)return;if(t.from_greenwich&&(s.x+=t.from_greenwich),s=gn(t.datum,e.datum,s),!!s)return s=s,e.from_greenwich&&(s={x:s.x-e.from_greenwich,y:s.y,z:s.z||0}),e.projName==="longlat"?s={x:s.x*yt,y:s.y*yt,z:s.z||0}:(s=e.forward(s),e.to_meter&&(s={x:s.x/e.to_meter,y:s.y/e.to_meter,z:s.z||0})),a&&e.axis!=="enu"?_n(e,s):(s&&!r&&e.projName!=="geocent"&&delete s.z,s)}function yn(t,e,s,a){var i;return Array.isArray(s)?i=Js(s):i={x:s.x,y:s.y,z:s.z,m:s.m},Ms(t,e,i,a)}var Ca=pt("WGS84");function js(t,e,s,a){var i,r,o;return Array.isArray(s)?(i=Ms(t,e,Js(s),a)||{x:NaN,y:NaN},s.length>2?(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",r?typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y,s[2]].concat(s.slice(3)):a&&typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y].concat(s.slice(2))):[i.x,i.y]):(i=Ms(t,e,{x:s.x,y:s.y,z:s.z,m:s.m},a)||{x:NaN,y:NaN},o=Object.keys(s),o.length===2||(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",o.forEach(function(n){n==="x"||n==="y"||n==="z"&&(r||a)||(i[n]=s[n])})),i)}function ns(t){return t instanceof pt?t:typeof t=="object"&&"oProj"in t?t.oProj:pt(t)}function wn(t,e,s){var a,i,r=!1,o;return typeof e=="undefined"?(i=ns(t),a=Ca,r=!0):(typeof e.x!="undefined"||Array.isArray(e))&&(s=e,i=ns(t),a=Ca,r=!0),a||(a=ns(t)),i||(i=ns(e)),s?js(a,i,s):(o={forward:function(n,h){return js(a,i,n,h)},inverse:function(n,h){return js(i,a,n,h)}},r&&(o.oProj=i),o)}var La=6,ai="AJSAJS",ii="AFAFAF",ie=65,Mt=73,Pt=79,xe=86,be=90;const En={forward:ri,inverse:Sn,toPoint:ni};function ri(t,e){return e=e||5,xn(Pn({lat:t[1],lon:t[0]}),e)}function Sn(t){var e=Xs(hi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat,e.lon,e.lat]:[e.left,e.bottom,e.right,e.top]}function ni(t){var e=Xs(hi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function ks(t){return t*(Math.PI/180)}function Ra(t){return 180*(t/Math.PI)}function Pn(t){var e=t.lat,s=t.lon,a=6378137,i=.00669438,r=.9996,o,n,h,l,g,f,u,y=ks(e),w=ks(s),E,S;S=Math.floor((s+180)/6)+1,s===180&&(S=60),e>=56&&e<64&&s>=3&&s<12&&(S=32),e>=72&&e<84&&(s>=0&&s<9?S=31:s>=9&&s<21?S=33:s>=21&&s<33?S=35:s>=33&&s<42&&(S=37)),o=(S-1)*6-180+3,E=ks(o),n=i/(1-i),h=a/Math.sqrt(1-i*Math.sin(y)*Math.sin(y)),l=Math.tan(y)*Math.tan(y),g=n*Math.cos(y)*Math.cos(y),f=Math.cos(y)*(w-E),u=a*((1-i/4-3*i*i/64-5*i*i*i/256)*y-(3*i/8+3*i*i/32+45*i*i*i/1024)*Math.sin(2*y)+(15*i*i/256+45*i*i*i/1024)*Math.sin(4*y)-35*i*i*i/3072*Math.sin(6*y));var b=r*h*(f+(1-l+g)*f*f*f/6+(5-18*l+l*l+72*g-58*n)*f*f*f*f*f/120)+5e5,A=r*(u+h*Math.tan(y)*(f*f/2+(5-l+9*g+4*g*g)*f*f*f*f/24+(61-58*l+l*l+600*g-330*n)*f*f*f*f*f*f/720));return e<0&&(A+=1e7),{northing:Math.round(A),easting:Math.round(b),zoneNumber:S,zoneLetter:pn(e)}}function Xs(t){var e=t.northing,s=t.easting,a=t.zoneLetter,i=t.zoneNumber;if(i<0||i>60)return null;var r=.9996,o=6378137,n=.00669438,h,l=(1-Math.sqrt(1-n))/(1+Math.sqrt(1-n)),g,f,u,y,w,E,S,b,A,I=s-5e5,T=e;a<"N"&&(T-=1e7),S=(i-1)*6-180+3,h=n/(1-n),E=T/r,b=E/(o*(1-n/4-3*n*n/64-5*n*n*n/256)),A=b+(3*l/2-27*l*l*l/32)*Math.sin(2*b)+(21*l*l/16-55*l*l*l*l/32)*Math.sin(4*b)+151*l*l*l/96*Math.sin(6*b),g=o/Math.sqrt(1-n*Math.sin(A)*Math.sin(A)),f=Math.tan(A)*Math.tan(A),u=h*Math.cos(A)*Math.cos(A),y=o*(1-n)/Math.pow(1-n*Math.sin(A)*Math.sin(A),1.5),w=I/(g*r);var j=A-g*Math.tan(A)/y*(w*w/2-(5+3*f+10*u-4*u*u-9*h)*w*w*w*w/24+(61+90*f+298*u+45*f*f-252*h-3*u*u)*w*w*w*w*w*w/720);j=Ra(j);var O=(w-(1+2*f+u)*w*w*w/6+(5-2*u+28*f-3*u*u+8*h+24*f*f)*w*w*w*w*w/120)/Math.cos(A);O=S+Ra(O);var F;if(t.accuracy){var K=Xs({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});F={top:K.lat,right:K.lon,bottom:j,left:O}}else F={lat:j,lon:O};return F}function pn(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function xn(t,e){var s="00000"+t.easting,a="00000"+t.northing;return t.zoneNumber+t.zoneLetter+bn(t.easting,t.northing,t.zoneNumber)+s.substr(s.length-5,e)+a.substr(a.length-5,e)}function bn(t,e,s){var a=oi(s),i=Math.floor(t/1e5),r=Math.floor(e/1e5)%20;return Gn(i,r,a)}function oi(t){var e=t%La;return e===0&&(e=La),e}function Gn(t,e,s){var a=s-1,i=ai.charCodeAt(a),r=ii.charCodeAt(a),o=i+t-1,n=r+e,h=!1;o>be&&(o=o-be+ie-1,h=!0),(o===Mt||iMt||(o>Mt||iPt||(o>Pt||ibe&&(o=o-be+ie-1),n>xe?(n=n-xe+ie-1,h=!0):h=!1,(n===Mt||rMt||(n>Mt||rPt||(n>Pt||rxe&&(n=n-xe+ie-1);var l=String.fromCharCode(o)+String.fromCharCode(n);return l}function hi(t){if(t&&t.length===0)throw"MGRSPoint coverting from nothing";for(var e=t.length,s=null,a="",i,r=0;!/[A-Z]/.test(i=t.charAt(r));){if(r>=2)throw"MGRSPoint bad conversion from: "+t;a+=i,r++}var o=parseInt(a,10);if(r===0||r+3>e)throw"MGRSPoint bad conversion from: "+t;var n=t.charAt(r++);if(n<="A"||n==="B"||n==="Y"||n>="Z"||n==="I"||n==="O")throw"MGRSPoint zone letter "+n+" not handled: "+t;s=t.substring(r,r+=2);for(var h=oi(o),l=Nn(s.charAt(0),h),g=An(s.charAt(1),h);g0&&(E=1e5/Math.pow(10,u),S=t.substring(r,r+u),y=parseFloat(S)*E,b=t.substring(r+u),w=parseFloat(b)*E),A=y+l,I=w+g,{easting:A,northing:I,zoneLetter:n,zoneNumber:o,accuracy:E}}function Nn(t,e){for(var s=ai.charCodeAt(e-1),a=1e5,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>be){if(i)throw"Bad character: "+t;s=ie,i=!0}a+=1e5}return a}function An(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;for(var s=ii.charCodeAt(e-1),a=0,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>xe){if(i)throw"Bad character: "+t;s=ie,i=!0}a+=1e5}return a}function In(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function he(t,e,s){if(!(this instanceof he))return new he(t,e,s);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if(typeof t=="object")this.x=t.x,this.y=t.y,this.z=t.z||0;else if(typeof t=="string"&&typeof e=="undefined"){var a=t.split(",");this.x=parseFloat(a[0]),this.y=parseFloat(a[1]),this.z=parseFloat(a[2])||0}else this.x=t,this.y=e,this.z=s||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}he.fromMGRS=function(t){return new he(ni(t))};he.prototype.toMGRS=function(t){return ri([this.x,this.y],t)};var Cn=1,Ln=.25,Ta=.046875,Oa=.01953125,Fa=.01068115234375,Rn=.75,Tn=.46875,On=.013020833333333334,Fn=.007120768229166667,jn=.3645833333333333,kn=.005696614583333333,qn=.3076171875;function Ks(t){var e=[];e[0]=Cn-t*(Ln+t*(Ta+t*(Oa+t*Fa))),e[1]=t*(Rn-t*(Ta+t*(Oa+t*Fa)));var s=t*t;return e[2]=s*(Tn-t*(On+t*Fn)),s*=t,e[3]=s*(jn-t*kn),e[4]=s*t*qn,e}function ue(t,e,s,a){return s*=e,e*=e,a[0]*t-s*(a[1]+e*(a[2]+e*(a[3]+e*a[4])))}var $n=20;function Zs(t,e,s){for(var a=1/(1-e),i=t,r=$n;r;--r){var o=Math.sin(i),n=1-e*o*o;if(n=(ue(i,o,Math.cos(i),s)-t)*(n*Math.sqrt(n))*a,i-=n,Math.abs(n)x?Math.tan(s):0,E=Math.pow(w,2),S=Math.pow(E,2);i=1-this.es*Math.pow(n,2),g=g/Math.sqrt(i);var b=ue(s,n,h,this.en);r=this.a*(this.k0*g*(1+f/6*(1-E+u+f/20*(5-18*E+S+14*u-58*E*u+f/42*(61+179*S-S*E-479*E)))))+this.x0,o=this.a*(this.k0*(b-this.ml0+n*a*g/2*(1+f/12*(5-E+9*u+4*y+f/30*(61+S-58*E+270*u-330*E*u+f/56*(1385+543*S-S*E-3111*E))))))+this.y0}else{var l=h*Math.sin(a);if(Math.abs(Math.abs(l)-1)=1){if(l-1>x)return 93;o=0}else o=Math.acos(o);s<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return t.x=r,t.y=o,t}function Bn(t){var e,s,a,i,r=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(e=this.ml0+o/this.k0,s=Zs(e,this.es,this.en),Math.abs(s)x?Math.tan(s):0,w=this.ep2*Math.pow(u,2),E=Math.pow(w,2),S=Math.pow(y,2),b=Math.pow(S,2);e=1-this.es*Math.pow(f,2);var A=r*Math.sqrt(e)/this.k0,I=Math.pow(A,2);e=e*y,a=s-e*I/(1-this.es)*.5*(1-I/12*(5+3*S-9*w*S+w-4*E-I/30*(61+90*S-252*w*S+45*b+46*w-I/56*(1385+3633*S+4095*b+1574*b*S)))),i=G(this.long0+A*(1-I/6*(1+2*S+w-I/20*(5+28*S+24*b+8*w*S+6*w-I/42*(61+662*S+1320*b+720*b*S))))/u,this.over)}else a=P*ke(o),i=0;else{var n=Math.exp(r/this.k0),h=.5*(n-1/n),l=this.lat0+o/this.k0,g=Math.cos(l);e=Math.sqrt((1-Math.pow(g,2))/(1+Math.pow(h,2))),a=Math.asin(e),o<0&&(a=-a),h===0&&g===0?i=0:i=G(Math.atan2(h,g)+this.long0,this.over)}return t.x=i,t.y=a,t}var zn=["Fast_Transverse_Mercator","Fast Transverse Mercator"];const ls={init:Dn,forward:Un,inverse:Bn,names:zn};function li(t){var e=Math.exp(t);return e=(e-1/e)/2,e}function mt(t,e){t=Math.abs(t),e=Math.abs(e);var s=Math.max(t,e),a=Math.min(t,e)/(s||1);return s*Math.sqrt(1+Math.pow(a,2))}function Wn(t){var e=1+t,s=e-1;return s===0?t:t*Math.log(e)/s}function Vn(t){var e=Math.abs(t);return e=Wn(e*(1+e/(mt(1,e)+1))),t<0?-e:e}function Ys(t,e){for(var s=2*Math.cos(2*e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return e+o*Math.sin(2*e)}function Hn(t,e){for(var s=2*Math.cos(e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return Math.sin(e)*o}function Qn(t){var e=Math.exp(t);return e=(e+1/e)/2,e}function ui(t,e,s){for(var a=Math.sin(e),i=Math.cos(e),r=li(s),o=Qn(s),n=2*i*o,h=-2*a*r,l=t.length-1,g=t[l],f=0,u=0,y=0,w,E;--l>=0;)w=u,E=f,u=g,f=y,g=-w+n*u-h*f+t[l],y=-E+h*u+n*f;return n=a*o,h=i*r,[n*g-h*y,n*y+h*g]}function Jn(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(ls.init.apply(this),this.forward=ls.forward,this.inverse=ls.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),s=e;this.cgb[0]=e*(2+e*(-2/3+e*(-2+e*(116/45+e*(26/45+e*(-2854/675)))))),this.cbg[0]=e*(-2+e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))),s=s*e,this.cgb[1]=s*(7/3+e*(-8/5+e*(-227/45+e*(2704/315+e*(2323/945))))),this.cbg[1]=s*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),s=s*e,this.cgb[2]=s*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=s*(-26/15+e*(34/21+e*(8/5+e*(-12686/2835)))),s=s*e,this.cgb[3]=s*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=s*(1237/630+e*(-12/5+e*(-24832/14175))),s=s*e,this.cgb[4]=s*(4174/315+e*(-144838/6237)),this.cbg[4]=s*(-734/315+e*(109598/31185)),s=s*e,this.cgb[5]=s*(601676/22275),this.cbg[5]=s*(444337/155925),s=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+s*(1/4+s*(1/64+s/256))),this.utg[0]=e*(-.5+e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=s*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=s*(13/48+e*(-3/5+e*(557/1440+e*(281/630+e*(-1983433/1935360))))),s=s*e,this.utg[2]=s*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=s*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),s=s*e,this.utg[3]=s*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=s*(49561/161280+e*(-179/168+e*(6601661/7257600))),s=s*e,this.utg[4]=s*(-4583/161280+e*(108847/3991680)),this.gtu[4]=s*(34729/80640+e*(-3418889/1995840)),s=s*e,this.utg[5]=s*(-20648693/638668800),this.gtu[5]=s*(212378941/319334400);var a=Ys(this.cbg,this.lat0);this.Zb=-this.Qn*(a+Hn(this.gtu,2*a))}function Xn(t){var e=G(t.x-this.long0,this.over),s=t.y;s=Ys(this.cbg,s);var a=Math.sin(s),i=Math.cos(s),r=Math.sin(e),o=Math.cos(e);s=Math.atan2(a,o*i),e=Math.atan2(r*i,mt(a,i*o)),e=Vn(Math.tan(e));var n=ui(this.gtu,2*s,2*e);s=s+n[0],e=e+n[1];var h,l;return Math.abs(e)<=2.623395162778?(h=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*s+this.Zb)+this.y0):(h=1/0,l=1/0),t.x=h,t.y=l,t}function Kn(t){var e=(t.x-this.x0)*(1/this.a),s=(t.y-this.y0)*(1/this.a);s=(s-this.Zb)/this.Qn,e=e/this.Qn;var a,i;if(Math.abs(e)<=2.623395162778){var r=ui(this.utg,2*s,2*e);s=s+r[0],e=e+r[1],e=Math.atan(li(e));var o=Math.sin(s),n=Math.cos(s),h=Math.sin(e),l=Math.cos(e);s=Math.atan2(o*l,mt(h,l*n)),e=Math.atan2(h,l*n),a=G(e+this.long0,this.over),i=Ys(this.cgb,s)}else a=1/0,i=1/0;return t.x=a,t.y=i,t}var Zn=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"];const us={init:Jn,forward:Xn,inverse:Kn,names:Zn};function Yn(t,e){if(t===void 0){if(t=Math.floor((G(e)+Math.PI)*30/Math.PI)+1,t<0)return 0;if(t>60)return 60}return t}var to="etmerc";function eo(){var t=Yn(this.zone,this.long0);if(t===void 0)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*Z,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,us.init.apply(this),this.forward=us.forward,this.inverse=us.inverse}var so=["Universal Transverse Mercator System","utm"];const ao={init:eo,names:so,dependsOn:to};function ta(t,e){return Math.pow((1-t)/(1+t),e)}var io=20;function ro(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+U)/(Math.pow(Math.tan(.5*this.lat0+U),this.C)*ta(this.e*t,this.ratexp))}function no(t){var e=t.x,s=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*s+U),this.C)*ta(this.e*Math.sin(s),this.ratexp))-P,t.x=this.C*e,t}function oo(t){for(var e=1e-14,s=t.x/this.C,a=t.y,i=Math.pow(Math.tan(.5*a+U)/this.K,1/this.C),r=io;r>0&&(a=2*Math.atan(i*ta(this.e*Math.sin(t.y),-.5*this.e))-P,!(Math.abs(a-t.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=x&&Math.abs(Math.cos(this.lat_ts))>x&&(this.k0=.5*this.cons*Lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/Nt(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=Lt(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(sa(this.lat0,this.sinlat0,this.e))-P,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function _o(t){var e=t.x,s=t.y,a=Math.sin(s),i=Math.cos(s),r,o,n,h,l,g,f=G(e-this.long0,this.over);return Math.abs(Math.abs(e-this.long0)-Math.PI)<=x&&Math.abs(s+this.lat0)<=x?(t.x=NaN,t.y=NaN,t):this.sphere?(r=2*this.k0/(1+this.sinlat0*a+this.coslat0*i*Math.cos(f)),t.x=this.a*r*i*Math.sin(f)+this.x0,t.y=this.a*r*(this.coslat0*a-this.sinlat0*i*Math.cos(f))+this.y0,t):(o=2*Math.atan(sa(s,a,this.e))-P,h=Math.cos(o),n=Math.sin(o),Math.abs(this.coslat0)<=x?(l=Nt(this.e,s*this.con,this.con*a),g=2*this.a*this.k0*l/this.cons,t.x=this.x0+g*Math.sin(e-this.long0),t.y=this.y0-this.con*g*Math.cos(e-this.long0),t):(Math.abs(this.sinlat0)0?e=G(this.long0+Math.atan2(t.x,-1*t.y),this.over):e=G(this.long0+Math.atan2(t.x,t.y),this.over):e=G(this.long0+Math.atan2(t.x*Math.sin(n),o*this.coslat0*Math.cos(n)-t.y*this.sinlat0*Math.sin(n)),this.over),t.x=e,t.y=s,t)}else if(Math.abs(this.coslat0)<=x){if(o<=x)return s=this.lat0,e=this.long0,t.x=e,t.y=s,t;t.x*=this.con,t.y*=this.con,a=o*this.cons/(2*this.a*this.k0),s=this.con*Oe(this.e,a),e=this.con*G(this.con*this.long0+Math.atan2(t.x,-1*t.y),this.over)}else i=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=x?r=this.X0:(r=Math.asin(Math.cos(i)*this.sinX0+t.y*Math.sin(i)*this.cosX0/o),e=G(this.long0+Math.atan2(t.x*Math.sin(i),o*this.cosX0*Math.cos(i)-t.y*this.sinX0*Math.sin(i)),this.over)),s=-1*Oe(this.e,Math.tan(.5*(P+r)));return t.x=e,t.y=s,t}var mo=["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"];const yo={init:vo,forward:_o,inverse:Mo,names:mo,ssfn_:sa};function wo(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),s=this.a,a=this.rf,i=1/a,r=2*i-Math.pow(i,2),o=this.e=Math.sqrt(r);this.R=this.k0*s*Math.sqrt(1-r)/(1-r*Math.pow(e,2)),this.alpha=Math.sqrt(1+r/(1-r)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var n=Math.log(Math.tan(Math.PI/4+this.b0/2)),h=Math.log(Math.tan(Math.PI/4+t/2)),l=Math.log((1+o*e)/(1-o*e));this.K=n-this.alpha*h+this.alpha*o/2*l}function Eo(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),s=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),a=-this.alpha*(e+s)+this.K,i=2*(Math.atan(Math.exp(a))-Math.PI/4),r=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(r)/(Math.sin(this.b0)*Math.tan(i)+Math.cos(this.b0)*Math.cos(r))),n=Math.asin(Math.cos(this.b0)*Math.sin(i)-Math.sin(this.b0)*Math.cos(i)*Math.cos(r));return t.y=this.R/2*Math.log((1+Math.sin(n))/(1-Math.sin(n)))+this.y0,t.x=this.R*o+this.x0,t}function So(t){for(var e=t.x-this.x0,s=t.y-this.y0,a=e/this.R,i=2*(Math.atan(Math.exp(s/this.R))-Math.PI/4),r=Math.asin(Math.cos(this.b0)*Math.sin(i)+Math.sin(this.b0)*Math.cos(i)*Math.cos(a)),o=Math.atan(Math.sin(a)/(Math.cos(this.b0)*Math.cos(a)-Math.sin(this.b0)*Math.tan(i))),n=this.lambda0+o/this.alpha,h=0,l=r,g=-1e3,f=0;Math.abs(l-g)>1e-7;){if(++f>20)return;h=1/this.alpha*(Math.log(Math.tan(Math.PI/4+r/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(l))/2)),g=l,l=2*Math.atan(Math.exp(h))-Math.PI/2}return t.x=n,t.y=l,t}var Po=["somerc"];const po={init:wo,forward:Eo,inverse:So,names:Po};var ee=1e-7;function xo(t){var e=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],s=typeof t.projName=="object"?Object.keys(t.projName)[0]:t.projName;return"no_uoff"in t||"no_off"in t||e.indexOf(s)!==-1||e.indexOf(Ya(s))!==-1}function bo(){var t,e,s,a,i,r,o,n,h,l,g=0,f,u=0,y=0,w=0,E=0,S=0,b=0;this.no_off=xo(this),this.no_rot="no_rot"in this;var A=!1;"alpha"in this&&(A=!0);var I=!1;if("rectified_grid_angle"in this&&(I=!0),A&&(b=this.alpha),I&&(g=this.rectified_grid_angle,A||(b=0,A=!0)),A||I)u=this.longc;else if(y=this.long1,E=this.lat1,w=this.long2,S=this.lat2,Math.abs(E-S)<=ee||(t=Math.abs(E))<=ee||Math.abs(t-P)<=ee||Math.abs(Math.abs(this.lat0)-P)<=ee||Math.abs(Math.abs(S)-P)<=ee)throw new Error;var T=1-this.es;e=Math.sqrt(T),Math.abs(this.lat0)>x?(n=Math.sin(this.lat0),s=Math.cos(this.lat0),t=1-this.es*n*n,this.B=s*s,this.B=Math.sqrt(1+this.es*this.B*this.B/T),this.A=this.B*this.k0*e/t,a=this.B*e/(s*Math.sqrt(t)),i=a*a-1,i<=0?i=0:(i=Math.sqrt(i),this.lat0<0&&(i=-i)),this.E=i+=a,this.E*=Math.pow(Nt(this.e,this.lat0,n),this.B)):(this.B=1/e,this.A=this.k0,this.E=a=i=1),A||I?(A?(f=Math.asin(Math.sin(b)/a),I||(g=b)):(f=g,b=Math.asin(a*Math.sin(f))),this.lam0=u-Math.asin(.5*(i-1/i)*Math.tan(f))/this.B):(r=Math.pow(Nt(this.e,E,Math.sin(E)),this.B),o=Math.pow(Nt(this.e,S,Math.sin(S)),this.B),i=this.E/r,h=(o-r)/(o+r),l=this.E*this.E,l=(l-o*r)/(l+o*r),t=y-w,t<-Math.PI?w-=Re:t>Math.PI&&(w+=Re),this.lam0=G(.5*(y+w)-Math.atan(l*Math.tan(.5*this.B*(y-w))/h)/this.B,this.over),f=Math.atan(2*Math.sin(this.B*G(y-this.lam0,this.over))/(i-1/i)),g=b=Math.asin(a*Math.sin(f))),this.singam=Math.sin(f),this.cosgam=Math.cos(f),this.sinrot=Math.sin(g),this.cosrot=Math.cos(g),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(a*a-1)/Math.cos(b))),this.lat0<0&&(this.u_0=-this.u_0)),i=.5*f,this.v_pole_n=this.ArB*Math.log(Math.tan(U-i)),this.v_pole_s=this.ArB*Math.log(Math.tan(U+i))}function Go(t){var e={},s,a,i,r,o,n,h,l;if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-P)>x){if(o=this.E/Math.pow(Nt(this.e,t.y,Math.sin(t.y)),this.B),n=1/o,s=.5*(o-n),a=.5*(o+n),r=Math.sin(this.B*t.x),i=(s*this.singam-r*this.cosgam)/a,Math.abs(Math.abs(i)-1)0?this.v_pole_n:this.v_pole_s,h=this.ArB*t.y;return this.no_rot?(e.x=h,e.y=l):(h-=this.u_0,e.x=l*this.cosrot+h*this.sinrot,e.y=h*this.cosrot-l*this.sinrot),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e}function No(t){var e,s,a,i,r,o,n,h={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(s=t.y,e=t.x):(s=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),a=Math.exp(-this.BrA*s),i=.5*(a-1/a),r=.5*(a+1/a),o=Math.sin(this.BrA*e),n=(o*this.cosgam+i*this.singam)/r,Math.abs(Math.abs(n)-1)x?this.ns=Math.log(a/n)/Math.log(i/h):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=a/(this.ns*Math.pow(i,this.ns)),this.rh=this.a*this.f0*Math.pow(l,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function Lo(t){var e=t.x,s=t.y;Math.abs(2*Math.abs(s)-Math.PI)<=x&&(s=ke(s)*(P-2*x));var a=Math.abs(Math.abs(s)-P),i,r;if(a>x)i=Nt(this.e,s,Math.sin(s)),r=this.a*this.f0*Math.pow(i,this.ns);else{if(a=s*this.ns,a<=0)return null;r=0}var o=this.ns*G(e-this.long0,this.over);return t.x=this.k0*(r*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-r*Math.cos(o))+this.y0,t}function Ro(t){var e,s,a,i,r,o=(t.x-this.x0)/this.k0,n=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+n*n),s=1):(e=-Math.sqrt(o*o+n*n),s=-1);var h=0;if(e!==0&&(h=Math.atan2(s*o,s*n)),e!==0||this.ns>0){if(s=1/this.ns,a=Math.pow(e/(this.a*this.f0),s),i=Oe(this.e,a),i===-9999)return null}else i=-P;return r=G(h/this.ns+this.long0,this.over),t.x=r,t.y=i,t}var To=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"];const Oo={init:Co,forward:Lo,inverse:Ro,names:To};function Fo(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function jo(t){var e,s,a,i,r,o,n,h=t.x,l=t.y,g=G(h-this.long0,this.over);return e=Math.pow((1+this.e*Math.sin(l))/(1-this.e*Math.sin(l)),this.alfa*this.e/2),s=2*(Math.atan(this.k*Math.pow(Math.tan(l/2+this.s45),this.alfa)/e)-this.s45),a=-g*this.alfa,i=Math.asin(Math.cos(this.ad)*Math.sin(s)+Math.sin(this.ad)*Math.cos(s)*Math.cos(a)),r=Math.asin(Math.cos(s)*Math.sin(a)/Math.cos(i)),o=this.n*r,n=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(i/2+this.s45),this.n),t.y=n*Math.cos(o)/1,t.x=n*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t}function ko(t){var e,s,a,i,r,o,n,h,l=t.x;t.x=t.y,t.y=l,this.czech||(t.y*=-1,t.x*=-1),o=Math.sqrt(t.x*t.x+t.y*t.y),r=Math.atan2(t.y,t.x),i=r/Math.sin(this.s0),a=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(a)-Math.sin(this.ad)*Math.cos(a)*Math.cos(i)),s=Math.asin(Math.cos(a)*Math.sin(i)/Math.cos(e)),t.x=this.long0-s/this.alfa,n=e,h=0;var g=0;do t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(n))/(1-this.e*Math.sin(n)),this.e/2))-this.s45),Math.abs(n-t.y)<1e-10&&(h=1),n=t.y,g+=1;while(h===0&&g<15);return g>=15?null:t}var qo=["Krovak","Krovak Modified","Krovak (North Orientated)","Krovak Modified (North Orientated)","krovak"];const $o={init:Fo,forward:jo,inverse:ko,names:qo};function vt(t,e,s,a,i){return t*i-e*Math.sin(2*i)+s*Math.sin(4*i)-a*Math.sin(6*i)}function qe(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function $e(t){return .375*t*(1+.25*t*(1+.46875*t))}function De(t){return .05859375*t*t*(1+.75*t)}function Ue(t){return t*t*t*(35/3072)}function aa(t,e,s){var a=e*s;return t/Math.sqrt(1-a*a)}function Ut(t){return Math.abs(t)1e-7?(s=t*e,(1-t*t)*(e/(1-s*s)-.5/t*Math.log((1-s)/(1+s)))):2*e}var Vo=.3333333333333333,Ho=.17222222222222222,Qo=.10257936507936508,Jo=.06388888888888888,Xo=.0664021164021164,Ko=.016415012942191543;function ci(t){var e,s=[];return s[0]=t*Vo,e=t*t,s[0]+=e*Ho,s[1]=e*Jo,e*=t,s[0]+=e*Qo,s[1]+=e*Xo,s[2]=e*Ko,s}function fi(t,e){var s=t+t;return t+e[0]*Math.sin(s)+e[1]*Math.sin(s+s)+e[2]*Math.sin(s+s+s)}var Bs=1,zs=2,Ws=3,cs=4;function Zo(){var t=Math.abs(this.lat0);if(Math.abs(t-P)0){var e;switch(this.qp=Ct(this.e,1),this.mmf=.5/(1-this.es),this.apa=ci(this.es),this.mode){case zs:this.dd=1;break;case Bs:this.dd=1;break;case Ws:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case cs:this.rq=Math.sqrt(.5*this.qp),e=Math.sin(this.lat0),this.sinb1=Ct(this.e,e)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*e*e)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===cs&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Yo(t){var e,s,a,i,r,o,n,h,l,g,f=t.x,u=t.y;if(f=G(f-this.long0,this.over),this.sphere){if(r=Math.sin(u),g=Math.cos(u),a=Math.cos(f),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(s=this.mode===this.EQUIT?1+g*a:1+this.sinph0*r+this.cosph0*g*a,s<=x)return null;s=Math.sqrt(2/s),e=s*g*Math.sin(f),s*=this.mode===this.EQUIT?r:this.cosph0*r-this.sinph0*g*a}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(a=-a),Math.abs(u+this.lat0)=0?(e=(l=Math.sqrt(o))*i,s=a*(this.mode===this.S_POLE?l:-l)):e=s=0;break}}return t.x=this.a*e+this.x0,t.y=this.a*s+this.y0,t}function th(t){t.x-=this.x0,t.y-=this.y0;var e=t.x/this.a,s=t.y/this.a,a,i,r,o,n,h,l;if(this.sphere){var g=0,f,u=0;if(f=Math.sqrt(e*e+s*s),i=f*.5,i>1)return null;switch(i=2*Math.asin(i),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(u=Math.sin(i),g=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(f)<=x?0:Math.asin(s*u/f),e*=u,s=g*f;break;case this.OBLIQ:i=Math.abs(f)<=x?this.lat0:Math.asin(g*this.sinph0+s*u*this.cosph0/f),e*=u*this.cosph0,s=(g-Math.sin(i)*this.sinph0)*f;break;case this.N_POLE:s=-s,i=P-i;break;case this.S_POLE:i-=P;break}a=s===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(e,s)}else{if(l=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(e/=this.dd,s*=this.dd,h=Math.sqrt(e*e+s*s),h1&&(t=t>1?1:-1),Math.asin(t)}function ah(){Math.abs(this.lat1+this.lat2)x?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function ih(t){var e=t.x,s=t.y;this.sin_phi=Math.sin(s),this.cos_phi=Math.cos(s);var a=Ct(this.e3,this.sin_phi),i=this.a*Math.sqrt(this.c-this.ns0*a)/this.ns0,r=this.ns0*G(e-this.long0,this.over),o=i*Math.sin(r)+this.x0,n=this.rh-i*Math.cos(r)+this.y0;return t.x=o,t.y=n,t}function rh(t){var e,s,a,i,r,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),a=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),a=-1),i=0,e!==0&&(i=Math.atan2(a*t.x,a*t.y)),a=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-a*a)/(2*this.ns0)):(s=(this.c-a*a)/this.ns0,o=this.phi1z(this.e3,s)),r=G(i/this.ns0+this.long0,this.over),t.x=r,t.y=o,t}function nh(t,e){var s,a,i,r,o,n=Dt(.5*e);if(t0||Math.abs(o)<=x?(n=this.x0+this.a*r*s*Math.sin(a)/o,h=this.y0+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)/o):(n=this.x0+this.infinity_dist*s*Math.sin(a),h=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function ch(t){var e,s,a,i,r,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(i=Math.atan2(e,this.rc),s=Math.sin(i),a=Math.cos(i),o=Dt(a*this.sin_p14+t.y*s*this.cos_p14/e),r=Math.atan2(t.x*s,e*this.cos_p14*a-t.y*this.sin_p14*s),r=G(this.long0+r,this.over)):(o=this.phic0,r=0),t.x=r,t.y=o,t}var fh=["gnom"];const gh={init:lh,forward:uh,inverse:ch,names:fh};function vh(t,e){var s=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-s)<1e-6)return e<0?-1*P:P;for(var a=Math.asin(.5*e),i,r,o,n,h=0;h<30;h++)if(r=Math.sin(a),o=Math.cos(a),n=t*r,i=Math.pow(1-n*n,2)/(2*o)*(e/(1-t*t)-r/(1-n*n)+.5/t*Math.log((1-n)/(1+n))),a+=i,Math.abs(i)<=1e-10)return a;return NaN}function dh(){this.sphere||(this.k0=Lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function _h(t){var e=t.x,s=t.y,a,i,r=G(e-this.long0,this.over);if(this.sphere)a=this.x0+this.a*r*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(s)/Math.cos(this.lat_ts);else{var o=Ct(this.e,Math.sin(s));a=this.x0+this.a*this.k0*r,i=this.y0+this.a*o*.5/this.k0}return t.x=a,t.y=i,t}function Mh(t){t.x-=this.x0,t.y-=this.y0;var e,s;return this.sphere?(e=G(this.long0+t.x/this.a/Math.cos(this.lat_ts),this.over),s=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(s=vh(this.e,2*t.y*this.k0/this.a),e=G(this.long0+t.x/(this.a*this.k0),this.over)),t.x=e,t.y=s,t}var mh=["cea"];const yh={init:dh,forward:_h,inverse:Mh,names:mh};function wh(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function Eh(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i=Ut(s-this.lat0);return t.x=this.x0+this.a*a*this.rc,t.y=this.y0+this.a*i,t}function Sh(t){var e=t.x,s=t.y;return t.x=G(this.long0+(e-this.x0)/(this.a*this.rc),this.over),t.y=Ut(this.lat0+(s-this.y0)/this.a),t}var Ph=["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"];const ph={init:wh,forward:Eh,inverse:Sh,names:Ph};var ja=20;function xh(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=qe(this.es),this.e1=$e(this.es),this.e2=De(this.es),this.e3=Ue(this.es),this.ml0=this.a*vt(this.e0,this.e1,this.e2,this.e3,this.lat0)}function bh(t){var e=t.x,s=t.y,a,i,r,o=G(e-this.long0,this.over);if(r=o*Math.sin(s),this.sphere)Math.abs(s)<=x?(a=this.a*o,i=-1*this.a*this.lat0):(a=this.a*Math.sin(r)/Math.tan(s),i=this.a*(Ut(s-this.lat0)+(1-Math.cos(r))/Math.tan(s)));else if(Math.abs(s)<=x)a=this.a*o,i=-1*this.ml0;else{var n=aa(this.a,this.e,Math.sin(s))/Math.tan(s);a=n*Math.sin(r),i=this.a*vt(this.e0,this.e1,this.e2,this.e3,s)-this.ml0+n*(1-Math.cos(r))}return t.x=a+this.x0,t.y=i+this.y0,t}function Gh(t){var e,s,a,i,r,o,n,h,l;if(a=t.x-this.x0,i=t.y-this.y0,this.sphere)if(Math.abs(i+this.a*this.lat0)<=x)e=G(a/this.a+this.long0,this.over),s=0;else{o=this.lat0+i/this.a,n=a*a/this.a/this.a+o*o,h=o;var g;for(r=ja;r;--r)if(g=Math.tan(h),l=-1*(o*(h*g+1)-h-.5*(h*h+n)*g)/((h-o)/g-1),h+=l,Math.abs(l)<=x){s=h;break}e=G(this.long0+Math.asin(a*Math.tan(h)/this.a)/Math.sin(s),this.over)}else if(Math.abs(i+this.ml0)<=x)s=0,e=G(this.long0+a/this.a,this.over);else{o=(this.ml0+i)/this.a,n=a*a/this.a/this.a+o*o,h=o;var f,u,y,w,E;for(r=ja;r;--r)if(E=this.e*Math.sin(h),f=Math.sqrt(1-E*E)*Math.tan(h),u=this.a*vt(this.e0,this.e1,this.e2,this.e3,h),y=this.e0-2*this.e1*Math.cos(2*h)+4*this.e2*Math.cos(4*h)-6*this.e3*Math.cos(6*h),w=u/this.a,l=(o*(f*w+1)-w-.5*f*(w*w+n))/(this.es*Math.sin(2*h)*(w*w+n-2*o*w)/(4*f)+(o-w)*(f*y-2/Math.sin(2*h))-y),h-=l,Math.abs(l)<=x){s=h;break}f=Math.sqrt(1-this.es*Math.pow(Math.sin(s),2))*Math.tan(s),e=G(this.long0+Math.asin(a*f/this.a)/Math.sin(s),this.over)}return t.x=e,t.y=s,t}var Nh=["Polyconic","American_Polyconic","poly"];const Ah={init:xh,forward:bh,inverse:Gh,names:Nh};function Ih(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function Ch(t){var e,s=t.x,a=t.y,i=a-this.lat0,r=s-this.long0,o=i/Ne*1e-5,n=r,h=1,l=0;for(e=1;e<=10;e++)h=h*o,l=l+this.A[e]*h;var g=l,f=n,u=1,y=0,w,E,S=0,b=0;for(e=1;e<=6;e++)w=u*g-y*f,E=y*g+u*f,u=w,y=E,S=S+this.B_re[e]*u-this.B_im[e]*y,b=b+this.B_im[e]*u+this.B_re[e]*y;return t.x=b*this.a+this.x0,t.y=S*this.a+this.y0,t}function Lh(t){var e,s=t.x,a=t.y,i=s-this.x0,r=a-this.y0,o=r/this.a,n=i/this.a,h=1,l=0,g,f,u=0,y=0;for(e=1;e<=6;e++)g=h*o-l*n,f=l*o+h*n,h=g,l=f,u=u+this.C_re[e]*h-this.C_im[e]*l,y=y+this.C_im[e]*h+this.C_re[e]*l;for(var w=0;w.999999999999&&(s=.999999999999),e=Math.asin(s);var a=G(this.long0+t.x/(.900316316158*this.a*Math.cos(e)),this.over);a<-Math.PI&&(a=-Math.PI),a>Math.PI&&(a=Math.PI),s=(2*e+Math.sin(2*e))/Math.PI,Math.abs(s)>1&&(s=1);var i=Math.asin(s);return t.x=a,t.y=i,t}var Zh=["Mollweide","moll"];const Yh={init:Jh,forward:Xh,inverse:Kh,names:Zh};function t0(){Math.abs(this.lat1+this.lat2)=0?(s=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(s=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var r=0;if(s!==0&&(r=Math.atan2(e*t.x,e*t.y)),this.sphere)return i=G(this.long0+r/this.ns,this.over),a=Ut(this.g-s/this.a),t.x=i,t.y=a,t;var o=this.g-s/this.a;return a=ms(o,this.e0,this.e1,this.e2,this.e3),i=G(this.long0+r/this.ns,this.over),t.x=i,t.y=a,t}var a0=["Equidistant_Conic","eqdc"];const i0={init:t0,forward:e0,inverse:s0,names:a0};function r0(){this.R=this.a}function n0(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i,r;Math.abs(s)<=x&&(i=this.x0+this.R*a,r=this.y0);var o=Dt(2*Math.abs(s/Math.PI));(Math.abs(a)<=x||Math.abs(Math.abs(s)-P)<=x)&&(i=this.x0,s>=0?r=this.y0+Math.PI*this.R*Math.tan(.5*o):r=this.y0+Math.PI*this.R*-Math.tan(.5*o));var n=.5*Math.abs(Math.PI/a-a/Math.PI),h=n*n,l=Math.sin(o),g=Math.cos(o),f=g/(l+g-1),u=f*f,y=f*(2/l-1),w=y*y,E=Math.PI*this.R*(n*(f-w)+Math.sqrt(h*(f-w)*(f-w)-(w+h)*(u-w)))/(w+h);a<0&&(E=-E),i=this.x0+E;var S=h+f;return E=Math.PI*this.R*(y*S-n*Math.sqrt((w+h)*(h+1)-S*S))/(w+h),s>=0?r=this.y0+E:r=this.y0-E,t.x=i,t.y=r,t}function o0(t){var e,s,a,i,r,o,n,h,l,g,f,u,y;return t.x-=this.x0,t.y-=this.y0,f=Math.PI*this.R,a=t.x/f,i=t.y/f,r=a*a+i*i,o=-Math.abs(i)*(1+r),n=o-2*i*i+a*a,h=-2*o+1+2*i*i+r*r,y=i*i/h+(2*n*n*n/h/h/h-9*o*n/h/h)/27,l=(o-n*n/3/h)/h,g=2*Math.sqrt(-l/3),f=3*y/l/g,Math.abs(f)>1&&(f>=0?f=1:f=-1),u=Math.acos(f)/3,t.y>=0?s=(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI:s=-(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI,Math.abs(a)1e-12&&--E>0);return E===0?{azi1:NaN,s12:NaN}:(W=O*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),dt=1+W/16384*(4096+W*(-768+W*(320-175*W))),ht=W/1024*(256+W*(-128+W*(74-47*W))),D=ht*A*(F+ht/4*(I*(-1+2*F*F)-ht/6*F*(-3+4*A*A)*(-3+4*F*F))),_t=i*(1-r)*dt*(T-D),{azi1:Math.atan2(u*S,g*f-l*u*b),s12:_t})}function c0(t,e,s,a,i,r){const o=Math.atan((1-r)*Math.tan(t)),n=Math.sin(o),h=Math.cos(o),l=Math.sin(s),g=Math.cos(s),f=Math.atan2(n,h*g),u=h*l,y=1-u*u,w=y*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),E=1+w/16384*(4096+w*(-768+w*(320-175*w))),S=w/1024*(256+w*(-128+w*(74-47*w)));let b=a/(i*(1-r)*E),A,I=100,T,j,O,F;do T=Math.cos(2*f+b),j=Math.sin(b),O=Math.cos(b),F=S*j*(T+S/4*(O*(-1+2*T*T)-S/6*T*(-3+4*j*j)*(-3+4*T*T))),A=b,b=a/(i*(1-r)*E)+F;while(Math.abs(b-A)>1e-12&&--I>0);if(I===0)return{lat2:NaN,lon2:NaN};const K=n*j-h*O*g,W=Math.atan2(n*O+h*j*g,(1-r)*Math.sqrt(u*u+K*K)),dt=Math.atan2(j*l,h*O-n*j*g),ht=r/16*y*(4+r*(4-3*y)),D=dt-(1-ht)*r*u*(b+ht*j*(T+ht*O*(-1+2*T*T))),_t=e+D;return{lat2:W,lon2:_t}}function f0(){this.sin_p12=Math.sin(this.lat0),this.cos_p12=Math.cos(this.lat0),this.f=this.es/(1+Math.sqrt(1-this.es))}function g0(t){var e=t.x,s=t.y,a=Math.sin(t.y),i=Math.cos(t.y),r=G(e-this.long0,this.over),o,n,h,l,g,f,u,y,w,E,S;return this.sphere?Math.abs(this.sin_p12-1)<=x?(t.x=this.x0+this.a*(P-s)*Math.sin(r),t.y=this.y0-this.a*(P-s)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=x?(t.x=this.x0+this.a*(P+s)*Math.sin(r),t.y=this.y0+this.a*(P+s)*Math.cos(r),t):(w=this.sin_p12*a+this.cos_p12*i*Math.cos(r),u=Math.acos(w),y=u?u/Math.sin(u):1,t.x=this.x0+this.a*y*i*Math.sin(r),t.y=this.y0+this.a*y*(this.cos_p12*a-this.sin_p12*i*Math.cos(r)),t):(o=qe(this.es),n=$e(this.es),h=De(this.es),l=Ue(this.es),Math.abs(this.sin_p12-1)<=x?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g-f)*Math.sin(r),t.y=this.y0-(g-f)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=x?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g+f)*Math.sin(r),t.y=this.y0+(g+f)*Math.cos(r),t):Math.abs(e)2*P*this.a?void 0:(s=e/this.a,a=Math.sin(s),i=Math.cos(s),r=this.long0,Math.abs(e)<=x?o=this.lat0:(o=Dt(i*this.sin_p12+t.y*a*this.cos_p12/e),n=Math.abs(this.lat0)-P,Math.abs(n)<=x?this.lat0>=0?r=G(this.long0+Math.atan2(t.x,-t.y),this.over):r=G(this.long0-Math.atan2(-t.x,t.y),this.over):r=G(this.long0+Math.atan2(t.x*a,e*this.cos_p12*i-t.y*this.sin_p12*a),this.over)),t.x=r,t.y=o,t)):(h=qe(this.es),l=$e(this.es),g=De(this.es),f=Ue(this.es),Math.abs(this.sin_p12-1)<=x?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),y=u-e,o=ms(y/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,-1*t.y),this.over),t.x=r,t.y=o,t):Math.abs(this.sin_p12+1)<=x?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),y=e-u,o=ms(y/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,t.y),this.over),t.x=r,t.y=o,t):(w=Math.atan2(t.x,t.y),E=Math.sqrt(t.x*t.x+t.y*t.y),S=c0(this.lat0,this.long0,w,E,this.a,this.f),t.x=S.lon2,t.y=S.lat2,t))}var d0=["Azimuthal_Equidistant","aeqd"];const _0={init:f0,forward:g0,inverse:v0,names:d0};function M0(){this.sin_p14=Math.sin(this.lat0||0),this.cos_p14=Math.cos(this.lat0||0)}function m0(t){var e,s,a,i,r,o,n,h,l=t.x,g=t.y;return a=G(l-(this.long0||0),this.over),e=Math.sin(g),s=Math.cos(g),i=Math.cos(a),o=this.sin_p14*e+this.cos_p14*s*i,r=1,(o>0||Math.abs(o)<=x)&&(n=this.a*r*s*Math.sin(a),h=(this.y0||0)+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function y0(t){var e,s,a,i,r,o,n,h,l;return t.x-=this.x0||0,t.y-=this.y0||0,e=Math.sqrt(t.x*t.x+t.y*t.y),s=Dt(e/this.a),a=Math.sin(s),i=Math.cos(s),h=this.long0||0,l=this.lat0||0,o=h,Math.abs(e)<=x?(n=l,t.x=o,t.y=n,t):(n=Dt(i*this.sin_p14+t.y*a*this.cos_p14/e),r=Math.abs(l)-P,Math.abs(r)<=x?(l>=0?o=G(h+Math.atan2(t.x,-t.y),this.over):o=G(h-Math.atan2(-t.x,t.y),this.over),t.x=o,t.y=n,t):(o=G(h+Math.atan2(t.x*a,e*this.cos_p14*i-t.y*this.sin_p14*a),this.over),t.x=o,t.y=n,t))}var w0=["ortho"];const E0={init:M0,forward:m0,inverse:y0,names:w0};var X={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},B={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function S0(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=P-U/2?this.face=X.TOP:this.lat0<=-(P-U/2)?this.face=X.BOTTOM:Math.abs(this.long0)<=U?this.face=X.FRONT:Math.abs(this.long0)<=P+U?this.face=this.long0>0?X.RIGHT:X.LEFT:this.face=X.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function P0(t){var e={x:0,y:0},s,a,i,r,o,n,h={value:0};if(t.x-=this.long0,this.es!==0?s=Math.atan(this.one_minus_f_squared*Math.tan(t.y)):s=t.y,a=t.x,this.face===X.TOP)r=P-s,a>=U&&a<=P+U?(h.value=B.AREA_0,i=a-P):a>P+U||a<=-(P+U)?(h.value=B.AREA_1,i=a>0?a-et:a+et):a>-(P+U)&&a<=-U?(h.value=B.AREA_2,i=a+P):(h.value=B.AREA_3,i=a);else if(this.face===X.BOTTOM)r=P+s,a>=U&&a<=P+U?(h.value=B.AREA_0,i=-a+P):a=-U?(h.value=B.AREA_1,i=-a):a<-U&&a>=-(P+U)?(h.value=B.AREA_2,i=-a-P):(h.value=B.AREA_3,i=a>0?-a+et:-a-et);else{var l,g,f,u,y,w,E;this.face===X.RIGHT?a=oe(a,+P):this.face===X.BACK?a=oe(a,+et):this.face===X.LEFT&&(a=oe(a,-P)),u=Math.sin(s),y=Math.cos(s),w=Math.sin(a),E=Math.cos(a),l=y*E,g=y*w,f=u,this.face===X.FRONT?(r=Math.acos(l),i=os(r,f,g,h)):this.face===X.RIGHT?(r=Math.acos(g),i=os(r,f,-l,h)):this.face===X.BACK?(r=Math.acos(-l),i=os(r,f,-g,h)):this.face===X.LEFT?(r=Math.acos(-g),i=os(r,f,l,h)):(r=i=0,h.value=B.AREA_0)}return n=Math.atan(12/et*(i+Math.acos(Math.sin(i)*Math.cos(U))-P)),o=Math.sqrt((1-Math.cos(r))/(Math.cos(n)*Math.cos(n))/(1-Math.cos(Math.atan(1/Math.cos(i))))),h.value===B.AREA_1?n+=P:h.value===B.AREA_2?n+=et:h.value===B.AREA_3&&(n+=1.5*et),e.x=o*Math.cos(n),e.y=o*Math.sin(n),e.x=e.x*this.a+this.x0,e.y=e.y*this.a+this.y0,t.x=e.x,t.y=e.y,t}function p0(t){var e={lam:0,phi:0},s,a,i,r,o,n,h,l,g,f={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,a=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),s=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?f.value=B.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(f.value=B.AREA_1,s-=P):t.x<0&&-t.x>=Math.abs(t.y)?(f.value=B.AREA_2,s=s<0?s+et:s-et):(f.value=B.AREA_3,s+=P),g=et/12*Math.tan(s),o=Math.sin(g)/(Math.cos(g)-1/Math.sqrt(2)),n=Math.atan(o),i=Math.cos(s),r=Math.tan(a),h=1-i*i*r*r*(1-Math.cos(Math.atan(1/Math.cos(n)))),h<-1?h=-1:h>1&&(h=1),this.face===X.TOP)l=Math.acos(h),e.phi=P-l,f.value===B.AREA_0?e.lam=n+P:f.value===B.AREA_1?e.lam=n<0?n+et:n-et:f.value===B.AREA_2?e.lam=n-P:e.lam=n;else if(this.face===X.BOTTOM)l=Math.acos(h),e.phi=l-P,f.value===B.AREA_0?e.lam=-n+P:f.value===B.AREA_1?e.lam=-n:f.value===B.AREA_2?e.lam=-n-P:e.lam=n<0?-n-et:-n+et;else{var u,y,w;u=h,g=u*u,g>=1?w=0:w=Math.sqrt(1-g)*Math.sin(n),g+=w*w,g>=1?y=0:y=Math.sqrt(1-g),f.value===B.AREA_1?(g=y,y=-w,w=g):f.value===B.AREA_2?(y=-y,w=-w):f.value===B.AREA_3&&(g=y,y=w,w=-g),this.face===X.RIGHT?(g=u,u=-y,y=g):this.face===X.BACK?(u=-u,y=-y):this.face===X.LEFT&&(g=u,u=y,y=-g),e.phi=Math.acos(-w)-P,e.lam=Math.atan2(y,u),this.face===X.RIGHT?e.lam=oe(e.lam,-P):this.face===X.BACK?e.lam=oe(e.lam,-et):this.face===X.LEFT&&(e.lam=oe(e.lam,+P))}if(this.es!==0){var E,S,b;E=e.phi<0?1:0,S=Math.tan(e.phi),b=this.b/Math.sqrt(S*S+this.one_minus_f_squared),e.phi=Math.atan(Math.sqrt(this.a*this.a-b*b)/(this.one_minus_f*b)),E&&(e.phi=-e.phi)}return e.lam+=this.long0,t.x=e.lam,t.y=e.phi,t}function os(t,e,s,a){var i;return tU&&i<=P+U?(a.value=B.AREA_1,i-=P):i>P+U||i<=-(P+U)?(a.value=B.AREA_2,i=i>=0?i-et:i+et):(a.value=B.AREA_3,i+=P)),i}function oe(t,e){var s=t+e;return s<-et?s+=Re:s>+et&&(s-=Re),s}var x0=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"];const b0={init:S0,forward:P0,inverse:p0,names:x0};var Vs=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Ge=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],di=.8487,_i=1.3523,Mi=yt/5,G0=1/Mi,re=18,ys=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))},N0=function(t,e){return t[1]+e*(2*t[2]+e*3*t[3])};function A0(t,e,s,a){for(var i=e;a;--a){var r=t(i);if(i-=r,Math.abs(r)=re&&(a=re-1),s=yt*(s-G0*a);var i={x:ys(Vs[a],s)*e,y:ys(Ge[a],s)};return t.y<0&&(i.y=-i.y),i.x=i.x*this.a*di+this.x0,i.y=i.y*this.a*_i+this.y0,i}function L0(t){var e={x:(t.x-this.x0)/(this.a*di),y:Math.abs(t.y-this.y0)/(this.a*_i)};if(e.y>=1)e.x/=Vs[re][0],e.y=t.y<0?-P:P;else{var s=Math.floor(e.y*re);for(s<0?s=0:s>=re&&(s=re-1);;)if(Ge[s][0]>e.y)--s;else if(Ge[s+1][0]<=e.y)++s;else break;var a=Ge[s],i=5*(e.y-a[0])/(Ge[s+1][0]-a[0]);i=A0(function(r){return(ys(a,r)-e.y)/N0(a,r)},i,x,100),e.x/=ys(Vs[s],i),e.y=(5*s+i)*Z,t.y<0&&(e.y=-e.y)}return e.x=G(e.x+this.long0,this.over),e}var R0=["Robinson","robin"];const T0={init:I0,forward:C0,inverse:L0,names:R0};function O0(){this.name="geocent"}function F0(t){var e=ei(t,this.es,this.a);return e}function j0(t){var e=si(t,this.es,this.a,this.b);return e}var k0=["Geocentric","geocentric","geocent","Geocent"];const q0={init:O0,forward:F0,inverse:j0,names:k0};var ct={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},pe={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function $0(){if(Object.keys(pe).forEach(function(s){if(typeof this[s]=="undefined")this[s]=pe[s].def;else{if(pe[s].num&&isNaN(this[s]))throw new Error("Invalid parameter value, must be numeric "+s+" = "+this[s]);pe[s].num&&(this[s]=parseFloat(this[s]))}pe[s].degrees&&(this[s]=this[s]*Z)}.bind(this)),Math.abs(Math.abs(this.lat0)-P)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,e=this.azi;this.cg=Math.cos(e),this.sg=Math.sin(e),this.cw=Math.cos(t),this.sw=Math.sin(t)}function D0(t){t.x-=this.long0;var e=Math.sin(t.y),s=Math.cos(t.y),a=Math.cos(t.x),i,r;switch(this.mode){case ct.OBLIQ:r=this.sinph0*e+this.cosph0*s*a;break;case ct.EQUIT:r=s*a;break;case ct.S_POLE:r=-e;break;case ct.N_POLE:r=e;break}switch(r=this.pn1/(this.p-r),i=r*s*Math.sin(t.x),this.mode){case ct.OBLIQ:r*=this.cosph0*e-this.sinph0*s*a;break;case ct.EQUIT:r*=e;break;case ct.N_POLE:r*=-(s*a);break;case ct.S_POLE:r*=s*a;break}var o,n;return o=r*this.cg+i*this.sg,n=1/(o*this.sw*this.h1+this.cw),i=(i*this.cg-r*this.sg)*this.cw*n,r=o*n,t.x=i*this.a,t.y=r*this.a,t}function U0(t){t.x/=this.a,t.y/=this.a;var e={x:t.x,y:t.y},s,a,i;i=1/(this.pn1-t.y*this.sw),s=this.pn1*t.x*i,a=this.pn1*t.y*this.cw*i,t.x=s*this.cg+a*this.sg,t.y=a*this.cg-s*this.sg;var r=mt(t.x,t.y);if(Math.abs(r)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function V0(t){var e=t.x,s=t.y,a,i,r,o;if(e=e-this.long0,this.shape==="ellipse"){s=Math.atan(this.radius_p2*Math.tan(s));var n=this.radius_p/mt(this.radius_p*Math.cos(s),Math.sin(s));if(i=n*Math.cos(e)*Math.cos(s),r=n*Math.sin(e)*Math.cos(s),o=n*Math.sin(s),(this.radius_g-i)*i-r*r-o*o*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a)))}else this.shape==="sphere"&&(a=Math.cos(s),i=Math.cos(e)*a,r=Math.sin(e)*a,o=Math.sin(s),a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a))));return t.x=t.x*this.a,t.y=t.y*this.a,t}function H0(t){var e=-1,s=0,a=0,i,r,o,n;if(t.x=t.x/this.a,t.y=t.y/this.a,this.shape==="ellipse"){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*mt(1,a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*mt(1,s));var h=a/this.radius_p;if(i=s*s+h*h+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if(this.shape==="sphere"){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+s*s)),i=s*s+a*a+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e)}return t.x=t.x+this.long0,t}var Q0=["Geostationary Satellite View","Geostationary_Satellite","geos"];const J0={init:W0,forward:V0,inverse:H0,names:Q0};var Ae=1.340264,Ie=-.081106,Ce=893e-6,Le=.003796,ws=Math.sqrt(3)/2;function X0(){this.long0=this.long0!==void 0?this.long0:0,this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.es!==0&&(this.apa=ci(this.es),this.qp=Ct(this.e,1),this.rqda=Math.sqrt(.5*this.qp))}function K0(t){var e=G(t.x-this.long0,this.over),s=t.y,a=Math.sin(s);this.es!==0&&(a=Ct(this.e,a)/this.qp);var i=Math.asin(ws*a),r=i*i,o=r*r*r;return t.x=e*Math.cos(i)/(ws*(Ae+3*Ie*r+o*(7*Ce+9*Le*r))),t.y=i*(Ae+Ie*r+o*(Ce+Le*r)),this.es!==0&&(t.x*=this.rqda,t.y*=this.rqda),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function Z0(t){t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,this.es!==0&&(t.x/=this.rqda,t.y/=this.rqda);var e=1e-9,s=12,a=t.y,i,r,o,n,h,l;for(l=0;l=P?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=rl,this.forward=il)}function sl(t){var e=G(t.x-(this.long0||0),this.over),s=t.y,a,i,r;return a=this.am1+this.m1-ue(s,i=Math.sin(s),r=Math.cos(s),this.en),i=r*e/(a*Math.sqrt(1-this.es*i*i)),t.x=a*Math.sin(i),t.y=this.am1-a*Math.cos(i),t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function al(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a,i;if(s=mt(t.x,t.y=this.am1-t.y),i=Zs(this.am1+this.m1-s,this.es,this.en),(e=Math.abs(i))Fe?(t.x=i*Math.sin(a=e*Math.cos(s)/i),t.y=this.cphi1-i*Math.cos(a)):t.x=t.y=0,t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function rl(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a=mt(t.x,t.y=this.cphi1-t.y);if(s=this.cphi1+this.phi1-a,Math.abs(s)>P)throw new Error;return Math.abs(Math.abs(s)-P)<=Fe?e=0:e=a*Math.atan2(t.x,t.y)/Math.cos(s),t.x=G(e+(this.long0||0),this.over),t.y=Ut(s),t}var nl=["bonne","Bonne (Werner lat_1=90)"];const ol={init:el,names:nl},ka={OBLIQUE:{forward:fl,inverse:vl},TRANSVERSE:{forward:gl,inverse:dl}},Es={ROTATE:{o_alpha:"oAlpha",o_lon_c:"oLongC",o_lat_c:"oLatC"},NEW_POLE:{o_lat_p:"oLatP",o_lon_p:"oLongP"},NEW_EQUATOR:{o_lon_1:"oLong1",o_lat_1:"oLat1",o_lon_2:"oLong2",o_lat_2:"oLat2"}};function hl(){if(this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.title=this.title||"General Oblique Transformation",this.isIdentity=Ka.includes(this.o_proj),!this.o_proj)throw new Error("Missing parameter: o_proj");if(this.o_proj==="ob_tran")throw new Error("Invalid value for o_proj: "+this.o_proj);const t=this.projStr.replace("+proj=ob_tran","").replace("+o_proj=","+proj=").trim(),e=pt(t);if(!e)throw new Error("Invalid parameter: o_proj. Unknown projection "+this.o_proj);e.long0=0,this.obliqueProjection=e;let s;const a=Object.keys(Es),i=n=>{if(typeof this[n]=="undefined")return;const h=parseFloat(this[n])*Z;if(isNaN(h))throw new Error("Invalid value for "+n+": "+this[n]);return h};for(let n=0;ntypeof this[u]!="undefined")){s=l;for(let u=0;ux?(this.cphip=Math.cos(o),this.sphip=Math.sin(o),this.projectionType=ka.OBLIQUE):this.projectionType=ka.TRANSVERSE}function ll(t){return this.projectionType.forward(this,t)}function ul(t){return this.projectionType.inverse(this,t)}function cl(t,e){let s,a;if(e===Es.ROTATE){let i=t.oLongC,r=t.oLatC,o=t.oAlpha;if(Math.abs(Math.abs(r)-P)<=x)throw new Error("Invalid value for o_lat_c: "+t.o_lat_c+" should be < 90°");a=i+Math.atan2(-1*Math.cos(o),-1*Math.sin(o)*Math.sin(r)),s=Math.asin(Math.cos(r)*Math.sin(o))}else if(e===Es.NEW_POLE)a=t.oLongP,s=t.oLatP;else{let i=t.oLong1,r=t.oLat1,o=t.oLong2,n=t.oLat2,h=Math.abs(r);if(Math.abs(r)>P-x)throw new Error("Invalid value for o_lat_1: "+t.o_lat_1+" should be < 90°");if(Math.abs(n)>P-x)throw new Error("Invalid value for o_lat_2: "+t.o_lat_2+" should be < 90°");if(Math.abs(r-n)new DecompressionStream("deflate-raw"),e=s=>new Response(s);t(),mi=s=>e(e(s).body.pipeThrough(t())).arrayBuffer().then(a=>new Uint8Array(a))}catch(t){}var mi,qa=new TextDecoder,qs=t=>{throw Error("but-unzip~"+t)};function*yl(t,e=mi){let s=t.length-21,a=s-65536,i=new DataView(t.buffer,t.byteOffset),r=h=>i.getUint16(h+s,1),o=h=>i.getUint32(h+s,1),n=(h,l)=>t.subarray(s+=h,s+=l);for(;s>a&&(s=t.lastIndexOf(80,s-1))+1&&(t[s+1]-75||t[s+2]-5||t[s+3]-6););for(s<0&&qs(2),a=r(10),a-r(8)&&qs(3),s=o(16);a--;){let h=r(10),l=r(28),g=r(30),f=r(32),u=o(20),y=o(42),w=qa.decode(n(46,l)),E=qa.decode(n(g,f)),S=s,b;s=y,b=n(30+r(26)+r(28),u),yield{filename:w,comment:E,read:()=>h-8?h?qs(1):b:e(b)},s=S}}const wl=/.+\.(shp|dbf|json|prj|cpg)$/i,El=t=>nt(void 0,null,function*(){const e={},s=[];for(const r of yl(t))wl.test(r.filename)&&s.push(Promise.resolve(r.read()).then(o=>e[r.filename]=o));yield Promise.all(s);const a={},i=new TextDecoder;for(const[r,o]of Object.entries(e))r.slice(-3).toLowerCase()==="shp"||r.slice(-3).toLowerCase()==="dbf"?a[r]=new DataView(o.buffer,o.byteOffset,o.byteLength):a[r]=i.decode(o);return a}),Sl=globalThis.URL,Pl=(t,e)=>{if(!e)return t;const s=new Sl(t);return s.pathname=`${s.pathname}.${e}`,s.href};function je(t,e){return nt(this,null,function*(){const s=Pl(t,e),a=e==="prj"||e==="cpg";try{const i=yield fetch(s);if(i.status>399)throw new Error(i.statusText);if(a)return i.text();const r=yield i.arrayBuffer();return new DataView(r)}catch(i){if(a||e==="dbf")return!1;throw i}})}function pl(t){let e=0,s=1;const a=t.length;let i,r;const o=[t[0][0],t[0][1],t[0][0],t[0][1]];for(;so[2]&&(o[2]=r[0]),r[1]>o[3]&&(o[3]=r[1]);return{ring:t,clockWise:e>0,bbox:o,children:[]}}function $a(t,e){return!(t.bbox[0]>e.bbox[0]||t.bbox[1]>e.bbox[1]||t.bbox[2]l.toReversed())));return n}}const r=[];for(const o of s)r.push([o.ring].concat(o.children));return r}st.prototype.parsePoint=function(t){return{type:"Point",coordinates:this.parseCoord(t,0)}};st.prototype.parseZPoint=function(t){const e=this.parsePoint(t);return e.coordinates.push(t.getFloat64(16,!0)),e};st.prototype.parsePointArray=function(t,e,s){const a=[];let i=0;for(;i20&&(e-=20),!(e in Da))throw new Error(`I don't know shp type "${e}"`);this.parseFunc=this[Da[e]],this.parseCoord=xl(t)};st.prototype.getShpCode=function(){return this.parseHeader().shpCode};st.prototype.parseHeader=function(){const t=this.buffer;return{length:t.getInt32(24)<<1,version:t.getInt32(28,!0),shpCode:t.getInt32(32,!0),bbox:[t.getFloat64(36,!0),t.getFloat64(44,!0),t.getFloat64(52,!0),t.getFloat64(60,!0)]}};st.prototype.getRows=function(){let t=100;const e=this.buffer.byteLength-8,s=[];let a;for(;t<=e&&(a=this.getRow(t),!!a);)t+=8,t+=a.len,a.type?s.push(this.parseFunc(a.data)):s.push(null);return s};st.prototype.getRow=function(t){const e=this.buffer.getInt32(t),s=this.buffer.getInt32(t+4)<<1;if(s===0)return{id:e,len:s,type:0};if(!(t+s+8>this.buffer.byteLength))return{id:e,len:s,data:new DataView(this.buffer.buffer,this.buffer.byteOffset+t+12,s-4),type:this.buffer.getInt32(t+8,!0)}};function ia(t,e){return new st(t,e).rows}var bl=/^(?:ANSI\s)?(\d+)$/m;function wi(t,e){if(!t)return a;try{new TextDecoder(t.trim())}catch(i){var s=bl.exec(t);return s&&!e?wi("windows-"+s[1],!0):(t=void 0,a)}return a;function a(i){var r=new TextDecoder(t||void 0),o=r.decode(i,{stream:!0})+r.decode();return o.replace(/\0/g,"").trim()}}function Gl(t){var e={};return e.lastUpdated=new Date(t.getUint8(1)+1900,t.getUint8(2),t.getUint8(3)),e.records=t.getUint32(4,!0),e.headerLen=t.getUint16(8,!0),e.recLen=t.getUint16(10,!0),e}function Nl(t,e,s){for(var a=[],i=32;i{if(!t)throw new Error("forgot to pass buffer");if(le(t))return new Uint8Array(t);if(le(t.buffer))return t.BYTES_PER_ELEMENT===1?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")},Rl=new TextDecoder,Ei=t=>{if(t){if(typeof t=="string")return t;if(le(t)||ArrayBuffer.isView(t)||na(t))return Rl.decode(t)}},Si=t=>{if(!t)throw new Error("forgot to pass buffer");if(na(t))return t;if(le(t))return new DataView(t);if(le(t.buffer))return new DataView(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")};function le(t){return t instanceof globalThis.ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]"}function na(t){return t instanceof globalThis.DataView||Object.prototype.toString.call(t)==="[object DataView]"}const oa=function([t,e]){const s={};s.type="FeatureCollection",s.features=[];let a=0;const i=t.length;for(e||(e=[]);a-1?i.push(s.slice(0,-3)+s.slice(-3).toLowerCase()):(s.slice(-4).toLowerCase()===".dbf"||s.slice(-4).toLowerCase()===".cpg")&&(a[s.slice(0,-3)+s.slice(-3).toLowerCase()]=a[s]));if(!i.length)throw new Error("no layers founds");const r=i.map(function(o){let n,h;const l=o.lastIndexOf(".");return l>-1&&o.slice(l).indexOf("json")>-1?(n=JSON.parse(a[o]),n.fileName=o.slice(0,l)):e.indexOf(o.slice(l+1))>-1?(n=a[o],n.fileName=o):(a[o+".dbf"]&&(h=ra(a[o+".dbf"],a[o+".cpg"])),n=oa([ia(a[o+".shp"],a[o+".prj"]),h]),n.fileName=o),n});return r.length===1?r[0]:r})};function Tl(t,e){return nt(this,null,function*(){const s=yield je(t);return Pi(s,e)})}const Ol=t=>nt(void 0,null,function*(){const e=yield Promise.all([je(t,"shp"),je(t,"prj")]);let s=!1;try{e[1]&&(s=Ps(e[1]))}catch(a){s=!1}return ia(e[0],s)}),Fl=t=>nt(void 0,null,function*(){const[e,s]=yield Promise.all([je(t,"dbf"),je(t,"cpg")]);if(e)return ra(e,s)}),Ua=(t,e)=>{var a;return new Cl(t,(a=globalThis==null?void 0:globalThis.document)==null?void 0:a.location).pathname.slice(-4).toLowerCase()===e},jl=({shp:t,dbf:e,cpg:s,prj:a})=>{const i=[ql(t,a)];return e&&i.push($l(e,s)),oa(i)},kl=function(t,e){return nt(this,null,function*(){if(typeof t!="string"){if(le(t)||ArrayBuffer.isView(t)||na(t))return Pi(t);if(t.shp)return jl(t);throw new TypeError("must be a string, some sort of Buffer, or an object with at least a .shp property")}if(Ua(t,".zip"))return Tl(t,e);Ua(t,".shp")&&(t=t.slice(0,-4));const s=yield Promise.all([Ol(t),Fl(t)]);return oa(s)})},ql=function(t,e){if(t=Si(t),e=Ei(e),typeof e=="string")try{e=Ps(e)}catch(s){e=!1}return ia(t,e)},$l=function(t,e){return t=Si(t),e=Ei(e),ra(t,e)};const Dl={class:"engineering-analysis-panel"},Ul={class:"analysis-card-head"},Bl={key:0},zl=["disabled"],Wl=["disabled"],Vl={key:1,class:"analysis-drawing-stage"},Hl={class:"analysis-point-count"},Ql=["disabled"],Jl=["disabled"],Xl={key:2,class:"analysis-boundary-bar"},Kl={class:"analysis-card-head"},Zl={key:0,class:"analysis-running"},Yl={class:"analysis-conclusion-head"},t1={class:"analysis-conclusion-tags"},e1={key:2,class:"analysis-empty is-success"},s1={key:3,class:"analysis-project-list"},a1=["onPointerup"],i1={class:"analysis-project-name"},r1={class:"analysis-project-meta"},n1={__name:"EngineeringAnalysisPanel",props:{drawingPointCount:{type:Number,default:0}},emits:["drawing-change","finish-drawing","undo-point","clear-boundary","analysis-result","focus-project"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(!1),o=Q(null),n=Q([]),h=Q([]),l=Q(""),g=Q("idle"),f=Q([]),u=Q("idle"),y=Q("");let w=null,E=0;const S=z(()=>{var p;const v=h.value.length,d=n.value.length,M=n.value.reduce((C,$)=>C+Number($.overlapAreaWanMu||0),0);return{boundaryAreaWanMu:Zt((p=o.value)==null?void 0:p.geometry),featureCount:v,projectCount:d,overlapAreaWanMu:M}}),b=z(()=>l.value?l.value:I.value?"自动分析中":g.value==="loading"?"项目库加载中":g.value==="error"?"项目库加载失败":""),A=z(()=>o.value?I.value?"正在分析":u.value==="error"?"分析异常":n.value.length?"已发现建设记录":"未发现建设记录":"未分析"),I=z(()=>u.value==="running"),T=z(()=>!!o.value&&u.value==="done"),j=z(()=>I.value?"正在自动分析":u.value==="error"?"分析失败":n.value.length?`命中 ${n.value.length} 项`:A.value),O=z(()=>r.value&&a.drawingPointCount>=3),F=z(()=>{if(!o.value)return{levelClass:"",verdict:"",summary:"",tags:[],advice:""};if(!n.value.length)return{levelClass:"is-clear",verdict:"未发现建设记录",summary:"该边界范围暂未与项目库中的已建设工程形成空间叠加。",tags:[`分析范围 ${As(S.value.boundaryAreaWanMu)} 万亩`,"项目库未命中"],advice:"可进入新增工程选址论证,仍需结合保护红线、审批台账和现场踏勘复核。"};const v=Ye(n.value),d=we(n.value),M=[...n.value].sort(($,V)=>Number(V.overlapAreaWanMu||0)-Number($.overlapAreaWanMu||0))[0],p=Vt(S.value.overlapAreaWanMu),C=n.value.length>=6||S.value.overlapAreaWanMu>=1?"存在建设叠加":"存在局部叠加";return{levelClass:n.value.length>=6?"is-heavy":"is-hit",verdict:C,summary:`该边界命中 ${n.value.length} 个历史项目,叠加约 ${p} 亩,项目类型以${v.name}为主,年份集中在 ${d}。`,tags:[`主类型 ${v.name}`,`年份 ${d}`,`最大叠加 ${Vt(M==null?void 0:M.overlapAreaWanMu)} 亩`],advice:`重点复核“${ts(M==null?void 0:M.projectName)}”(${(M==null?void 0:M.year)||"未知"},${(M==null?void 0:M.category)||"未知类型"})与拟建范围的重合边界。`}});Ba(()=>{ge().catch(()=>{})});function K(v){return nt(this,null,function*(){var M;const d=(M=v.target.files)==null?void 0:M[0];if(v.target.value="",!!d){l.value="";try{const p=yield W(d);r.value&&(r.value=!1,i("drawing-change",!1)),i("clear-boundary"),yield Bt(p)}catch(p){l.value="边界文件解析失败"}}})}function W(v){return nt(this,null,function*(){const d=String(v.name||"").toLowerCase();if(d.endsWith(".json")||d.endsWith(".geojson"))return dt(JSON.parse(yield v.text()));if(d.endsWith(".zip")){const M=yield kl(yield v.arrayBuffer());return dt(M)}throw new Error("unsupported file")})}function dt(v){const d=zt(v).filter(M=>Ve(M==null?void 0:M.geometry));if(d.length)return Rt(d);throw new Error("no polygon")}function ht(){r.value||(E+=1,l.value="",u.value="idle",y.value="",r.value=!0,o.value=null,n.value=[],h.value=[],i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}),i("drawing-change",!0))}function D(){r.value&&(E+=1,r.value=!1,u.value="idle",y.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}))}function _t(){O.value&&i("finish-drawing")}function ce(){i("undo-point")}function ps(){E+=1,r.value=!1,o.value=null,n.value=[],h.value=[],l.value="",u.value="idle",y.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value})}function xt(v){v!=null&&v.geometry&&(r.value=!1,Bt(v))}function Bt(v){return nt(this,null,function*(){const d=++E;o.value=v,h.value=[],n.value=[],y.value="",l.value="",u.value="running";let M=[];i("analysis-result",{boundary:v,matches:[],rows:[],summary:S.value});try{const p=yield ge();if(d!==E)return;M=Be(v,p),h.value=M,n.value=xs(M),u.value="done"}catch(p){if(d!==E)return;l.value="项目库加载失败",u.value="error"}d===E&&i("analysis-result",{boundary:v,matches:M,rows:n.value,summary:S.value})})}function fe(v){y.value=(v==null?void 0:v.key)||"",i("focus-project",kt(Ot({},v),{boundary:o.value}))}function ge(){return nt(this,null,function*(){return f.value.length?f.value:w||(g.value="loading",w=fetch(ve("datas/ecological-protection/ecological_restoration_projects.geojson"),{credentials:"include"}).then(d=>{if(!d.ok)throw new Error(`HTTP ${d.status}`);return d.json()}).then(d=>{const M=zt(d).filter(p=>{var C;return(C=p==null?void 0:p.geometry)==null?void 0:C.coordinates}).map((p,C)=>kt(Ot({},p),{properties:kt(Ot({},p.properties||{}),{source_index:C})}));return f.value=M,g.value="success",M}).catch(d=>{throw g.value="error",w=null,d}),w)})}function ve(v){return v?/^https?:\/\//.test(v)||v.startsWith("/")?v:`./${v}`:""}function zt(v){return v?Array.isArray(v)?v.flatMap(d=>zt(d)):v.type==="FeatureCollection"?(v.features||[]).filter(Boolean):v.type==="Feature"?v.geometry?[v]:[]:He(v)?[{type:"Feature",properties:{},geometry:v}]:typeof v=="object"?Object.values(v).flatMap(d=>zt(d)):[]:[]}function Rt(v){const d=v.flatMap(M=>M.geometry.type==="Polygon"?[M.geometry.coordinates]:M.geometry.coordinates);return d.length===1?{type:"Feature",properties:v[0].properties||{},geometry:{type:"Polygon",coordinates:d[0]}}:{type:"Feature",properties:{sourceFeatureCount:v.length},geometry:{type:"MultiPolygon",coordinates:d}}}function Be(v,d=f.value){const M=Je(v.geometry);return d.filter(p=>bs(p.geometry,v.geometry,M)).map(p=>({feature:p,properties:p.properties||{},overlapAreaWanMu:Gs(p,v.geometry)}))}function xs(v){const d=new Map;return v.forEach(M=>{const p=M.properties||{},C=p.project_name||p.projectName||"未命名项目",$=d.get(C)||{key:C,projectName:C,category:p.project_category||"未知类型",year:p.year||"未知",featureCount:0,overlapAreaWanMu:0,features:[],sourceIndex:Number(p.source_index||0)};$.featureCount+=1,$.overlapAreaWanMu+=Number(M.overlapAreaWanMu||0),$.features.push(M.feature),d.set(C,$)}),[...d.values()].map(M=>kt(Ot({},M),{overlapAreaWanMu:Number(M.overlapAreaWanMu.toFixed(4))}))}function bs(v,d,M){if(!Xe(Je(v),M))return!1;const p=Wt(d);return p.length?Ve(v)?ze(v,p):(v==null?void 0:v.type)==="Point"?Tt(v.coordinates,p):(v==null?void 0:v.type)==="MultiPoint"?v.coordinates.some(C=>Tt(C,p)):(v==null?void 0:v.type)==="LineString"?de(v.coordinates,p):(v==null?void 0:v.type)==="MultiLineString"?v.coordinates.some(C=>de(C,p)):!1:!1}function ze(v,d){const M=Wt(v);return M.length?M.some(p=>p.some(C=>Tt(C,d)))||d.some(p=>p.some(C=>Tt(C,M)))||M.some(p=>d.some(C=>Qe(p,C))):!1}function de(v=[],d){return!Array.isArray(v)||!v.length?!1:v.some(M=>Tt(M,d))?!0:d.some(M=>We(v,M))}function We(v,d){for(let M=1;Mat+it.filter(bt=>Tt(bt,C)).length,0),rt=p.reduce((at,it)=>at+it.length,0);return Y?Number(($*Math.max(.08,Math.min(1,Y/Math.max(rt,1)))).toFixed(4)):C.reduce((at,it)=>at+it.filter(bt=>Tt(bt,p)).length,0)?Number(Math.min($,V).toFixed(4)):p.some(at=>C.some(it=>Qe(at,it)))?Number((Math.min($,V)*.12).toFixed(4)):0}function Wt(v){var d;return(v==null?void 0:v.type)==="Polygon"?[((d=v.coordinates)==null?void 0:d[0])||[]]:(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.map(M=>(M==null?void 0:M[0])||[]).filter(M=>M.length):[]}function Ve(v){return(v==null?void 0:v.type)==="Polygon"||(v==null?void 0:v.type)==="MultiPolygon"}function He(v){return["Polygon","MultiPolygon","LineString","MultiLineString","Point","MultiPoint"].includes(v==null?void 0:v.type)}function Tt(v,d){return d.some(M=>Ns(v,M))}function Ns(v,d){var $,V,Y,rt;let M=!1;const p=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]);for(let lt=0,at=d.length-1;ltC!=es>C&&p<(Is-it)*(C-bt)/(es-bt)+it&&(M=!M)}return M}function Qe(v,d){for(let M=1;M(Number(at[0])-Number(lt[0]))*(Number(it[1])-Number(lt[1]))-(Number(at[1])-Number(lt[1]))*(Number(it[0])-Number(lt[0])),$=C(v,d,M),V=C(v,d,p),Y=C(M,p,v),rt=C(M,p,d);return $===0&&Kt(M,v,d)||V===0&&Kt(p,v,d)||Y===0&&Kt(v,M,p)||rt===0&&Kt(d,M,p)?!0:($>0&&V<0||$<0&&V>0)&&(Y>0&&rt<0||Y<0&&rt>0)}function Me(v,d,M,p){const C=Ze([v,d]),$=Ze([M,p]);return Xe(C,$)}function Kt(v,d,M){const p=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]),$=Number(d==null?void 0:d[0]),V=Number(d==null?void 0:d[1]),Y=Number(M==null?void 0:M[0]),rt=Number(M==null?void 0:M[1]),lt=(p-$)*(rt-V)-(C-V)*(Y-$);return Math.abs(lt)>1e-10?!1:p>=Math.min($,Y)-1e-10&&p<=Math.max($,Y)+1e-10&&C>=Math.min(V,rt)-1e-10&&C<=Math.max(V,rt)+1e-10}function Je(v){const d=[];return ye(v==null?void 0:v.coordinates,d),d.length?d.reduce((M,p)=>({minLng:Math.min(M.minLng,Number(p[0])),minLat:Math.min(M.minLat,Number(p[1])),maxLng:Math.max(M.maxLng,Number(p[0])),maxLat:Math.max(M.maxLat,Number(p[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}function Xe(v,d){return!v||!d?!1:!(v.maxLngd.maxLng||v.maxLatd.maxLat)}function me(v){return Zt(v==null?void 0:v.geometry)}function Zt(v){return(v==null?void 0:v.type)==="Polygon"?Ke(v.coordinates):(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.reduce((d,M)=>d+Ke(M),0):0}function Ke(v=[]){const d=v[0]||[];if(d.length<3)return 0;const M=d.reduce((V,Y)=>V+Number(Y[1]||0),0)/d.length,p=111320*Math.cos(M*Math.PI/180),C=110540;let $=0;for(let V=0;Vye(M,d))}}function Ze(v){return v.reduce((d,M)=>({minLng:Math.min(d.minLng,Number(M==null?void 0:M[0])),minLat:Math.min(d.minLat,Number(M==null?void 0:M[1])),maxLng:Math.max(d.maxLng,Number(M==null?void 0:M[0])),maxLat:Math.max(d.maxLat,Number(M==null?void 0:M[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY})}function As(v){const d=Number(v||0);return Number.isFinite(d)?Number(d.toFixed(d>=10?2:4)).toString():"0"}function Vt(v){const d=Number(v||0)*1e4;return Number.isFinite(d)?d>=1e3?Number(d.toFixed(0)).toLocaleString("zh-CN"):d>=10?Number(d.toFixed(1)).toLocaleString("zh-CN"):Number(d.toFixed(2)).toString():"0"}function Ye(v=[]){const d=new Map;return v.forEach(M=>{const p=M.category||"未知类型",C=d.get(p)||{name:p,count:0,area:0};C.count+=1,C.area+=Number(M.overlapAreaWanMu||0),d.set(p,C)}),[...d.values()].sort((M,p)=>p.area-M.area||p.count-M.count)[0]||{name:"未知类型",count:0,area:0}}function we(v=[]){const d=v.map(C=>Number(C.year)).filter(C=>Number.isFinite(C));if(!d.length)return"未知年份";const M=Math.min(...d),p=Math.max(...d);return M===p?`${M} 年`:`${M}-${p} 年`}function ts(v,d=18){const M=String(v||"未命名项目");return M.length>d?`${M.slice(0,d)}...`:M}return e({applyDrawnBoundary:xt}),(v,d)=>(J(),tt("div",Dl,[R("div",{class:Ft(["analysis-card analysis-workbench",{"is-running":I.value,"is-complete":T.value}])},[R("div",Ul,[d[0]||(d[0]=R("span",null,"生态工程分析",-1)),b.value?(J(),tt("strong",Bl,ut(b.value),1)):It("",!0)]),r.value?It("",!0):(J(),tt("div",{key:0,class:Ft(["analysis-operation",{"has-boundary":o.value}])},[R("label",{class:Ft(["analysis-entry is-upload",{"is-disabled":r.value||I.value}])},[R("input",{type:"file",accept:".zip,.json,.geojson",disabled:r.value||I.value,onChange:K},null,40,zl),R("span",null,ut(o.value?"更换边界":"上传边界"),1),d[1]||(d[1]=R("strong",null,"SHP / GeoJSON",-1))],2),R("button",{type:"button",class:"analysis-entry is-draw",disabled:r.value||I.value,onPointerup:Yt(ht,["stop","prevent"])},[R("span",null,ut(o.value?"重新绘制":"在线绘制"),1),d[2]||(d[2]=R("strong",null,"地图圈定",-1))],40,Wl)],2)),r.value?(J(),tt("div",Vl,[R("div",Hl,[d[3]||(d[3]=R("span",null,"已落点",-1)),R("strong",null,ut(t.drawingPointCount),1),d[4]||(d[4]=R("em",null,"点",-1)),d[5]||(d[5]=R("small",null,"至少 3 点",-1))]),R("button",{type:"button",class:"analysis-control is-primary",disabled:!O.value||I.value,onPointerup:Yt(_t,["stop","prevent"])}," 完成绘制 ",40,Ql),R("button",{type:"button",class:"analysis-control",disabled:!t.drawingPointCount,onPointerup:Yt(ce,["stop","prevent"])},"撤销",40,Jl),R("button",{type:"button",class:"analysis-control is-danger",onPointerup:Yt(D,["stop","prevent"])},"删除图形",32)])):o.value?(J(),tt("div",Xl,[d[6]||(d[6]=R("span",null,"边界已加载",-1)),R("strong",null,ut(j.value),1),R("button",{type:"button",onPointerup:Yt(ps,["stop","prevent"])},"删除图形",32)])):It("",!0)],2),o.value?(J(),tt("div",{key:0,class:Ft(["analysis-card analysis-result",{"is-running":I.value,"is-empty":T.value&&!n.value.length}])},[R("div",Kl,[d[7]||(d[7]=R("span",null,"建设记录核查",-1)),R("strong",null,ut(A.value),1)]),I.value?(J(),tt("div",Zl,[...d[8]||(d[8]=[R("div",{class:"analysis-running-orbit","aria-hidden":"true"},null,-1),R("div",null,[R("strong",null,"空间叠加分析中"),R("span",null,"正在核对边界与建设项目库")],-1)])])):(J(),tt("div",{key:1,class:Ft(["analysis-conclusion",F.value.levelClass])},[R("div",Yl,[d[9]||(d[9]=R("span",null,"分析结论",-1)),R("strong",null,ut(F.value.verdict),1)]),R("p",null,ut(F.value.summary),1),R("div",t1,[(J(!0),tt(fs,null,gs(F.value.tags,M=>(J(),tt("span",{key:M},ut(M),1))),128))]),R("small",null,ut(F.value.advice),1)],2)),T.value&&!n.value.length?(J(),tt("div",e1,"该边界范围内暂未匹配到已建设项目")):T.value?(J(),tt("div",s1,[(J(!0),tt(fs,null,gs(n.value,M=>(J(),tt("button",{key:M.key,type:"button",class:Ft(["analysis-project-row",{"is-active":M.key===y.value}]),onPointerup:Yt(p=>fe(M),["stop","prevent"])},[R("span",i1,ut(M.projectName),1),R("div",r1,[R("strong",null,ut(M.year),1),R("em",null,ut(M.category),1),R("small",null,"叠加 "+ut(Vt(M.overlapAreaWanMu))+" 亩",1)]),R("b",null,ut(M.featureCount)+" 个要素",1)],42,a1))),128))])):It("",!0)],2)):It("",!0)]))}},o1=Ki(n1,[["__scopeId","data-v-96bdd213"]]);const h1={class:"forest-grass-wet ecological-protection"},l1={class:"forest-grass-wet-ui ecological-protection-ui"},u1={key:0,class:"fgw-left"},c1={class:"fgw-side-stack is-left"},f1={key:1,class:"fgw-right"},g1={class:"fgw-side-stack is-right"},v1={class:"fgw-bottom-topic ecological-bottom-topic"},d1={key:0,class:"loading"},_1={class:"loading-progress"},M1={class:"value"},T1={__name:"index",props:{activeView:{type:String,default:"ecological-redline"},showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["module-stats","view-change"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(null),o=Q(null),n=Q(""),h=Q(""),l=Q(is({},"ecological-redline")),g=Q(null),f=Q(!1),u=Q(!1),y=Q(null),w=Q(0),E=Q(a.showLoading),S=Q(null),b=Q(0),A=Q({type:"idle",text:"等待生态保护图层加载"});let I=null,T=!1,j=!1,O=!1,F=null,K=0,W=0;const dt=new Map,ht=new Set(["code","msg","message","success","data","result","project","progress","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),D=z(()=>Se.some(c=>c.key===a.activeView)?a.activeView:"ecological-redline"),_t=z(()=>D.value==="engineering-analysis"),ce=z(()=>["restoration","engineering-analysis"].includes(D.value)),ps=z(()=>Rs.includes(D.value)),xt=z(()=>n.value?ji(D.value,n.value):null),Bt=z(()=>{var c;return(((c=xt.value)==null?void 0:c.legends)||[]).find(_=>_.key===h.value)||null}),fe=z(()=>{var c;return((c=xt.value)==null?void 0:c.legends)||[]}),ge=z(()=>va(D.value)),ve=z(()=>!_t.value&&ge.value.length<=2&&fe.value.length<=6),zt=z(()=>{if(!ve.value)return 430;const c=Math.max(1,ge.value.length),m=30+Math.max(1,fe.value.length)*28;return Math.max(220,Math.min(360,96+c*32+m))}),Rt=z(()=>{const c=xt.value;return c?Bt.value?kt(Ot({},c),{cqlFilter:Bt.value.cqlFilter||c.cqlFilter,activeLegend:Bt.value,name:Bt.value.name||c.name}):c:null}),Be=z(()=>ps.value?l.value:D.value==="restoration"?tr:D.value==="engineering-analysis"?er:sr),xs=z(()=>Be.value.left||[]),bs=z(()=>Be.value.right||[]),ze=Q(typeof window=="undefined"?1080:window.innerHeight),de=zi.sideCardWidth,We=z(()=>Wi(ze.value)),Gs=z(()=>Vi(We.value,2)),Wt=z(()=>!!y.value),Ve=Di,He=z(()=>$i({point:y.value?As(y.value):null,rowCount:g.value?v(g.value):0,loading:u.value,empty:f.value||!g.value})),Tt=z(()=>He.value.height),Ns=z(()=>He.value.style),Qe=z(()=>{var _;return{"ecological-redline":"生态保护红线详情","natural-protected-area":"自然保护地详情","national-park":"国家公园详情",restoration:"生态修复详情","engineering-analysis":"生态工程详情"}[D.value]||`${((_=xt.value)==null?void 0:_.name)||"生态图斑"}详情`});Ba(()=>{Vt(),window.addEventListener("resize",Vt),document.addEventListener("pointerdown",la,!0),Xe(),_e(D.value)}),Zi(()=>{T=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",Vt),document.removeEventListener("pointerdown",la,!0)}),ss(D,c=>{_e(c)}),ss(n,()=>{h.value="",ft()}),ss(h,()=>{ft()}),ss(()=>a.active,c=>{var _,m,N,L;r.value&&(c?(me(),(m=(_=r.value).resume)==null||m.call(_)):(L=(N=r.value).pause)==null||L.call(N))});function _e(c){var N,L,k,q,H;const _=Se.find(gt=>gt.key===c)||Se[0],m=va(c);h.value="",n.value=_.defaultLayerKey||((N=m[0])==null?void 0:N.key)||"",S.value=ar(c),b.value=0,(k=(L=r.value)==null?void 0:L.setBoundaryDrawing)==null||k.call(L,!1),c!=="engineering-analysis"&&((H=(q=r.value)==null?void 0:q.clearAnalysisBoundary)==null||H.call(q)),ft(),Rs.includes(c)&&(l.value=is({},c),Je(c)),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Rs.includes(c)?Ts({},c):ir(c)}),Me()}function Me(c=0){const _=Rt.value||xt.value;!(_!=null&&_.mapView)&&!(_!=null&&_.cameraPosition)||Pe(()=>{var N,L;!((L=(N=r.value)==null?void 0:N.focusLayerMapView)==null?void 0:L.call(N,_))&&c<12&&window.setTimeout(()=>Me(c+1),120)})}function Kt(c){const _=Se.some(m=>m.key===c)?c:"ecological-redline";_!==D.value&&i("view-change",_)}function Je(c){return nt(this,null,function*(){const _=++K;try{const N=dt.get(c)||(yield nr(c));if(_!==K||D.value!==c)return;dt.set(c,N),l.value=is(N,c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Ts(N,c)})}catch(m){if(_!==K||D.value!==c)return;l.value=is({},c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Ts({},c)}),A.value={type:"error",text:"保护范围统计加载失败"},console.warn("Failed to load ecological scope statistics",m)}})}function Xe(){var m;I=new Bi;const c={progress:0};I.instance.on("onProgress",(N,L,k)=>{const q=Math.floor(L/k*100);fa.to(c,{progress:q,onUpdate:()=>{w.value=Math.floor(c.progress)}})});const _=()=>{T||j||(j=!0,me())};I.instance.on("onLoad",_),(m=I.ready)==null||m.then(_).catch(()=>{T||(A.value={type:"error",text:"地图资源加载失败"})})}function me(){T||!a.active||!j||O||(O=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Zt()},600))}function Zt(c=0){return nt(this,null,function*(){var m,N,L,k,q;if(T)return;if(!a.active){O=!1;return}if(yield Pe(),!a.active){O=!1;return}if(!!((N=(m=r.value)==null?void 0:m.loadMap)!=null&&N.call(m,I)||(k=(L=r.value)==null?void 0:L.hasMap)!=null&&k.call(L))){yield Ci(),yield Pe(),(q=r.value)==null||q.play(),Me();return}if(c<24){window.setTimeout(()=>Zt(c+1),120);return}O=!1})}function Ke(){F&&(window.clearTimeout(F),F=null)}function ye(){var c,_,m,N;(_=(c=r.value)==null?void 0:c.resume)==null||_.call(c),(N=(m=r.value)==null?void 0:m.refreshView)==null||N.call(m)}function Ze(){var c,_,m,N,L,k;if(ft(),(_=(c=r.value)==null?void 0:c.setBoundaryDrawing)==null||_.call(c,!1),(N=(m=r.value)==null?void 0:m.clearAnalysisBoundary)==null||N.call(m),(k=(L=r.value)==null?void 0:L.hasMap)!=null&&k.call(L)){ye();return}Ke(),O=!1,Pe(()=>{me()})}e({refreshMapView:ye,resetMap:Ze});function As(c){const _=document.querySelector(".ecological-protection"),m=_==null?void 0:_.getBoundingClientRect();return!(m!=null&&m.width)||!(m!=null&&m.height)?c:{x:(c.x-m.left)/m.width*1920,y:(c.y-m.top)/m.height*1080}}function Vt(){ze.value=typeof window=="undefined"?1080:window.innerHeight}function Ye(c,_){return`${D.value}-${_}-${(c==null?void 0:c.key)||(c==null?void 0:c.title)||"panel"}`}function we(c){return(c==null?void 0:c.span)===2}function ts(c){return we(c)?Gs.value:We.value}function v(c){const _=(c==null?void 0:c.properties)||{};return Object.keys(_).filter(m=>d(m,_[m])).length}function d(c,_){return _==null||_===""||Array.isArray(_)||typeof _=="object"?!1:!ht.has(String(c||"").toLowerCase())}function M(c={}){const _=p(c.lng),m=p(c.lat);return _===""||m===""?"":`POINT(${_} ${m})`}function p(c){const _=Number(c);return Number.isFinite(_)?_.toFixed(8).replace(/\.?0+$/,""):""}function C(){return nt(this,arguments,function*(c={}){var k,q,H,gt,Et,Gt;if(!ce.value)return;if($(c.overlayLayer||Rt.value||xt.value)){ft();return}const _=Number((k=c==null?void 0:c.lngLat)==null?void 0:k.lng),m=Number((q=c==null?void 0:c.lngLat)==null?void 0:q.lat);if(!Number.isFinite(_)||!Number.isFinite(m)){ft();return}const N=++W,L=c.screen||{x:960,y:540};y.value=null,g.value=null,f.value=!1,u.value=!0;try{const At=yield Ui(M({lng:_,lat:m}));if(N!==W||T)return;const Ee=V(At,c);if(!Ee||v(Ee)<=0){ft();return}g.value=Ee,y.value=((gt=(H=r.value)==null?void 0:H.getVectorFeatureAnchorScreen)==null?void 0:gt.call(H,Ee))||L,f.value=!1,(Gt=(Et=r.value)==null?void 0:Et.highlightFeature)==null||Gt.call(Et,Ee,{highlightTone:"v21"})}catch(At){if(N!==W)return;ft()}finally{N===W&&(u.value=!1)}})}function $(c=Rt.value){const _=String((c==null?void 0:c.sourceType)||"").toLowerCase();return["geojson","wkt-api","wfs"].includes(_)||String((c==null?void 0:c.dataPath)||"").includes("ecological_restoration_projects")}function V(c,_={}){var k,q,H;const m=rt((c==null?void 0:c.project)||((k=c==null?void 0:c.data)==null?void 0:k.project)||(c==null?void 0:c.data)||c);if(!lt(m))return null;const N=it(m,c),L=m.geom||m.geometry||m.wkt||null;return{id:m.id||N.id||N.project_name||`project-${(q=_==null?void 0:_.lngLat)==null?void 0:q.lng}-${(H=_==null?void 0:_.lngLat)==null?void 0:H.lat}`,properties:N,feature:{type:"Feature",properties:N,geometry:L},geometry:L,layer:_.overlayLayer||Rt.value||xt.value,lngLat:_.lngLat}}function Y(c,_={}){var gt,Et,Gt;const m=c!=null&&c.feature&&c.feature.type==="Feature"?kt(Ot({},c.feature),{id:c.id||c.feature.id,layer:c.layer,lngLat:c.lngLat}):c,N=(m==null?void 0:m.type)==="Feature"?m:((gt=m==null?void 0:m.feature)==null?void 0:gt.type)==="Feature"?m.feature:null,L=(m==null?void 0:m.properties)||(N==null?void 0:N.properties)||{},k=(m==null?void 0:m.geometry)||(N==null?void 0:N.geometry)||L.geometry||L.geom||L.wkt||null,q=it(L,_),H=(m==null?void 0:m.id)||(N==null?void 0:N.id)||q.id||q.gid||q.project_id||q.project_name||`project-${((Et=_==null?void 0:_.lngLat)==null?void 0:Et.lng)||""}-${((Gt=_==null?void 0:_.lngLat)==null?void 0:Gt.lat)||""}`;return{id:H,properties:q,feature:{type:"Feature",id:H,properties:q,geometry:k},geometry:k,layer:(m==null?void 0:m.layer)||_.overlayLayer||Rt.value||xt.value,lngLat:(m==null?void 0:m.lngLat)||_.lngLat}}function rt(c){return Array.isArray(c)?c.find(_=>_&&typeof _=="object")||null:c&&typeof c=="object"?c:null}function lt(c){return!c||typeof c!="object"?!1:Array.isArray(c.dyColumn)&&c.dyColumn.some(at)?!0:Object.keys(c).some(_=>d(_,c[_]))}function at(c={}){const _=c==null?void 0:c.value;return _==null||_===""?!1:!!String((c==null?void 0:c.field)||(c==null?void 0:c.title)||"").trim()}function it(c={},_={}){const m=Ot({},c);(Array.isArray(c.dyColumn)?c.dyColumn:[]).forEach(H=>{const gt=H==null?void 0:H.value;if(gt==null||gt==="")return;const Et=String((H==null?void 0:H.field)||"").trim();[Et,bt(Et)].filter(Boolean).forEach(At=>{(m[At]===void 0||m[At]===null||m[At]==="")&&(m[At]=gt)})});const L=m.project_name||m.projectName||m.name,k=m.area_mu||m.areaMu||m.acreage,q=m.project_status||m.projectStatus;return kt(Ot({},m),{project_name:L,name:L||m.name,area_mu:k,project_status:q,progress_count:Array.isArray(_==null?void 0:_.progress)?_.progress.length:void 0})}function bt(c){return String(c||"").replace(/[A-Z]/g,_=>`_${_.toLowerCase()}`)}function Is(c){var m,N,L,k;const _=(N=(m=c==null?void 0:c.feature)!=null?m:c)!=null?N:null;if(!_||v(_)<=0){ft();return}if(ce.value){W+=1;const q=Y(_,c);if(!q||v(q)<=0){ft();return}g.value=q,f.value=!1,u.value=!1,y.value=((k=(L=r.value)==null?void 0:L.getVectorFeatureAnchorScreen)==null?void 0:k.call(L,q))||(c==null?void 0:c.screen)||null;return}g.value=_,f.value=!1,c!=null&&c.screen&&(y.value=c.screen)}function es(c){A.value=c}function Cs(c,_){var L,k;if(D.value==="national-park"&&(_!=null&&_.name)){ft(),(k=(L=r.value)==null?void 0:L.focusTown)==null||k.call(L,_.name,{distanceScale:.66,targetLocalZ:.84,cameraOffset:{x:0,y:1.05,z:0},select:!0});return}if(D.value!=="restoration"||(c==null?void 0:c.key)!=="restoration-projects"||!((_==null?void 0:_.projectName)||(_==null?void 0:_.name)))return;ft();const N=()=>ha(_);if(h.value){h.value="",Pe(()=>window.setTimeout(N,80));return}N()}function ha(c,_=0){var k,q,H,gt,Et,Gt,At;if(D.value!=="restoration")return;const m=(c==null?void 0:c.projectName)||(c==null?void 0:c.name);if(!m)return;const N=(q=(k=r.value)==null?void 0:k.focusProject)==null?void 0:q.call(k,{id:c==null?void 0:c.id,key:c==null?void 0:c.key,name:m,projectName:m,project_name:m,highlightTone:"white"});if(!(N!=null&&N.feature)){if(_<10){window.setTimeout(()=>ha(c,_+1),120);return}A.value={type:"warning",text:"当前项目图斑尚未加载"};return}const L=Y({id:N.feature.id,properties:N.feature.properties||{},geometry:N.feature.geometry,feature:N.feature,layer:Rt.value||xt.value},{});g.value=L,f.value=!1,u.value=!1,y.value=N.screen||((Et=(H=r.value)==null?void 0:H.getVectorFeaturesAnchorScreen)==null?void 0:Et.call(H,(gt=N.highlightFeatures)!=null&>.length?N.highlightFeatures:N.features))||((At=(Gt=r.value)==null?void 0:Gt.getVectorFeatureAnchorScreen)==null?void 0:At.call(Gt,L))}function pi(c){var _,m;ft(),b.value=0,(m=(_=r.value)==null?void 0:_.setBoundaryDrawing)==null||m.call(_,c)}function xi(){var c,_;(_=(c=r.value)==null?void 0:c.finishBoundaryDrawing)==null||_.call(c)}function bi(){var c,_;(_=(c=r.value)==null?void 0:c.undoBoundaryPoint)==null||_.call(c)}function Gi(){var c,_;b.value=0,(_=(c=r.value)==null?void 0:c.clearAnalysisBoundary)==null||_.call(c)}function Ni(c={}){var _,m,N;b.value=c.pointCount||((_=c.points)==null?void 0:_.length)||0,c.status==="complete"&&c.feature&&(b.value=0,(N=(m=o.value)==null?void 0:m.applyDrawnBoundary)==null||N.call(m,c.feature)),c.status==="clear"&&(b.value=0)}function Ai(c={}){var _,m;(m=(_=r.value)==null?void 0:_.showAnalysisResult)==null||m.call(_,{boundary:c.boundary,matches:c.matches,preserveView:D.value==="engineering-analysis"}),D.value}function Ii(c){var m,N;const _=((c==null?void 0:c.features)||[]).filter(Boolean);(N=(m=r.value)==null?void 0:m.showAnalysisResult)==null||N.call(m,{boundary:c==null?void 0:c.boundary,matches:_})}function ft(){var c,_;W+=1,g.value=null,f.value=!1,u.value=!1,y.value=null,(_=(c=r.value)==null?void 0:c.clearSelectedFeature)==null||_.call(c)}function la(c){if(!Wt.value)return;const _=document.querySelector(".fgw-map-feature-info"),m=c.target;_&&m instanceof Node&&_.contains(m)||ft()}function Ci(){return E.value?new Promise(c=>{fa.to(".ecological-protection .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{E.value=!1,c()}})}):Promise.resolve()}return(c,_)=>(J(),tt("div",h1,[te(Hi,{ref_key:"mapSceneRef",ref:r,"active-layer":Rt.value,"map-ranking":S.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureLoading:_[0]||(_[0]=m=>u.value=m),onFeatureInfo:Is,onMapClick:C,onLayerStatus:es,onDrawBoundary:Ni},null,8,["active-layer","map-ranking"]),R("div",l1,[_t.value?It("",!0):(J(),tt("div",u1,[R("div",c1,[(J(!0),tt(fs,null,gs(xs.value,m=>(J(),Ls(ga,{key:Ye(m,"left"),class:Ft(["fgw-side-card left-card",{"is-double":we(m)}]),title:m.title,width:as(de),height:ts(m)},{default:_a(()=>[te(da,{panel:m,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>Cs(m,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?It("",!0):(J(),tt("div",f1,[R("div",g1,[(J(!0),tt(fs,null,gs(bs.value,m=>(J(),Ls(ga,{key:Ye(m,"right"),class:Ft(["fgw-side-card right-card",{"is-double":we(m)}]),title:m.title,width:as(de),height:ts(m)},{default:_a(()=>[te(da,{panel:m,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>Cs(m,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?(J(),Ls(o1,{key:2,ref_key:"engineeringAnalysisRef",ref:o,"drawing-point-count":b.value,onDrawingChange:pi,onFinishDrawing:xi,onUndoPoint:bi,onClearBoundary:Gi,onAnalysisResult:Ai,onFocusProject:Ii},null,8,["drawing-point-count"])):It("",!0),R("div",{class:Ft(["fgw-map-layer-tools",{"is-analysis":_t.value,"is-compact":ve.value}]),style:Ma({height:`${zt.value}px`})},[te(Qi,{modelValue:n.value,"onUpdate:modelValue":_[1]||(_[1]=m=>n.value=m),"selected-legend-key":h.value,"onUpdate:selectedLegendKey":_[2]||(_[2]=m=>h.value=m),"topic-key":D.value,legends:fe.value,width:248,height:zt.value,compact:ve.value},null,8,["modelValue","selected-legend-key","topic-key","legends","height","compact"])],6),Wt.value?(J(),tt("div",{key:3,class:"fgw-map-feature-info",style:Ma(Ns.value)},[te(Ji,{title:Qe.value,feature:g.value,empty:f.value,loading:u.value,width:as(Ve),height:Tt.value,closable:"",onClose:ft},null,8,["title","feature","empty","loading","width","height"])],4)):It("",!0),R("div",v1,[te(Xi,{"model-value":D.value,topics:as(Se),"onUpdate:modelValue":Kt},null,8,["model-value","topics"])])]),E.value?(J(),tt("div",d1,[_[4]||(_[4]=Yi('
LOADING
',1)),R("div",_1,[R("span",M1,ut(w.value),1),_[3]||(_[3]=R("span",{class:"unit"},"%",-1))])])):It("",!0)]))}};export{T1 as default}; diff --git a/docs/assets/index-089a3dd0-balabala-1784132466083.css b/docs/assets/index-089a3dd0-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-089a3dd0-balabala-1784132466083.css rename to docs/assets/index-089a3dd0-balabala-1784132792831.css diff --git a/docs/assets/index-08599012-balabala-1784132466083.css b/docs/assets/index-08ee8551-balabala-1784132792831.css similarity index 97% rename from docs/assets/index-08599012-balabala-1784132466083.css rename to docs/assets/index-08ee8551-balabala-1784132792831.css index f610690..7a19d88 100644 --- a/docs/assets/index-08599012-balabala-1784132466083.css +++ b/docs/assets/index-08ee8551-balabala-1784132792831.css @@ -1 +1 @@ -.login-screen[data-v-8ebd0d6e]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(4,16,38,.1),rgba(2,8,22,.62)),url(./bg-3acb94e3-balabala-1784132466083.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-8ebd0d6e]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 42%,rgba(0,0,0,.35)),radial-gradient(circle at 52% 46%,rgba(48,220,255,.16),transparent 32%)}.login-shell[data-v-8ebd0d6e]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-8ebd0d6e]{display:flex;flex-direction:column;gap:14px;min-width:0;text-shadow:0 0 20px rgba(48,220,255,.36)}.login-brand span[data-v-8ebd0d6e]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-8ebd0d6e]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-8ebd0d6e]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-8ebd0d6e]{margin-bottom:26px;color:#fff;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-8ebd0d6e]{display:block;margin-bottom:18px}.login-field span[data-v-8ebd0d6e]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-8ebd0d6e]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-8ebd0d6e]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-8ebd0d6e]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-8ebd0d6e]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-8ebd0d6e]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-8ebd0d6e]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-8ebd0d6e]{font-size:30px}.login-panel[data-v-8ebd0d6e]{width:100%}} +.login-screen[data-v-8ebd0d6e]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(4,16,38,.1),rgba(2,8,22,.62)),url(./bg-3acb94e3-balabala-1784132792831.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-8ebd0d6e]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 42%,rgba(0,0,0,.35)),radial-gradient(circle at 52% 46%,rgba(48,220,255,.16),transparent 32%)}.login-shell[data-v-8ebd0d6e]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-8ebd0d6e]{display:flex;flex-direction:column;gap:14px;min-width:0;text-shadow:0 0 20px rgba(48,220,255,.36)}.login-brand span[data-v-8ebd0d6e]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-8ebd0d6e]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-8ebd0d6e]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-8ebd0d6e]{margin-bottom:26px;color:#fff;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-8ebd0d6e]{display:block;margin-bottom:18px}.login-field span[data-v-8ebd0d6e]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-8ebd0d6e]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-8ebd0d6e]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-8ebd0d6e]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-8ebd0d6e]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-8ebd0d6e]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-8ebd0d6e]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-8ebd0d6e]{font-size:30px}.login-panel[data-v-8ebd0d6e]{width:100%}} diff --git a/docs/assets/index-09a742df-balabala-1784132466083.css b/docs/assets/index-10abf3f4-balabala-1784132792831.css similarity index 97% rename from docs/assets/index-09a742df-balabala-1784132466083.css rename to docs/assets/index-10abf3f4-balabala-1784132792831.css index ffd4365..089bac9 100644 --- a/docs/assets/index-09a742df-balabala-1784132466083.css +++ b/docs/assets/index-10abf3f4-balabala-1784132792831.css @@ -1 +1 @@ -@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1784132466083.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784132466083.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1784132466083.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784132466083.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} +@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1784132792831.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784132792831.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1784132792831.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784132792831.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} diff --git a/docs/assets/index-148a2898-balabala-1784132466083.css b/docs/assets/index-148a2898-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-148a2898-balabala-1784132466083.css rename to docs/assets/index-148a2898-balabala-1784132792831.css diff --git a/docs/assets/index-1784132466083.js b/docs/assets/index-1784132792831.js similarity index 99% rename from docs/assets/index-1784132466083.js rename to docs/assets/index-1784132792831.js index 5a1823e..ee5555b 100644 --- a/docs/assets/index-1784132466083.js +++ b/docs/assets/index-1784132792831.js @@ -22,7 +22,7 @@ var qO=Object.defineProperty,KO=Object.defineProperties;var jO=Object.getOwnProp * vue-router v4.6.4 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let gz=()=>location.protocol+"//"+location.host;function NI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),jS(s,"")}return jS(e,r)+n+i}function yz(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=NI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Ly.pop,direction:g?g>0?Ud.forward:Ud.back:Ud.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:$v()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function rx(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?$v():null}}function mz(r){const{history:t,location:e}=window,n={value:NI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:gz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,rx(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:$v()});a(f.current,f,!0),a(l,Kt({},rx(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function _z(r){r=rz(r);const t=mz(r),e=yz(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:iz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Sz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),_z(r)}let no=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const xz={type:no.Static,value:""},bz=/[a-zA-Z0-9_]/;function wz(r){if(!r)return[[]];if(r==="/")return[[xz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:no.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:no.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function VI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Dz={strict:!1,end:!0,sensitive:!1};function Iz(r,t,e){const n=Cz(wz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Lz(r,t){const e=[],n=new Map;t=KS(Dz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=ox(c);p.aliasOf=v&&v.record;const g=KS(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(ox(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Iz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!sx(m)&&o(c.name)),BI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:gu}function o(c){if(kI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Ez(c,e);e.splice(h,0,c),c.record.name&&!sx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ax(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ax(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Rz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ax(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function ox(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:Pz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Pz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function sx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Rz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Ez(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;VI(r,t[a])<0?n=a:e=a+1}const i=kz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function kz(r){let t=r;for(;t=t.parent;)if(BI(t)&&VI(r,t)===0)return t}function BI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function lx(r){const t=un(Uv),e=un(Z0),n=nn(()=>{const l=go(r.to);return t.resolve(l)}),i=nn(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(zs.bind(null,f));if(h>-1)return h;const v=ux(l[u-2]);return u>1&&ux(f)===v&&c[c.length-1].path!==v?c.findIndex(zs.bind(null,l[u-2])):h}),a=nn(()=>i.value>-1&&zz(e.params,n.value.params)),o=nn(()=>i.value>-1&&i.value===e.matched.length-1&&EI(e.params,n.value.params));function s(l={}){if(Bz(l)){const u=t[go(r.replace)?"replace":"push"](go(r.to)).catch(gu);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:nn(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Oz(r){return r.length===1?r[0]:r}const Nz=V0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:lx,setup(r,{slots:t}){const e=Bv(lx(r)),{options:n}=un(Uv),i=nn(()=>({[fx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[fx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Oz(t.default(e));return r.custom?a:TI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Vz=Nz;function Bz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!dn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function ux(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const fx=(r,t,e)=>r!=null?r:t!=null?t:e,Gz=V0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=un(Ry),i=nn(()=>r.route||n.value),a=un(ex,0),o=nn(()=>{let u=go(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=nn(()=>i.value.matched[o.value]);Kc(ex,nn(()=>o.value+1)),Kc(dz,s),Kc(Ry,i);const l=qc();return jc(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!zs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return cx(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=TI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return cx(e.default,{Component:g,route:u})||g}}});function cx(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const Fz=Gz;function Hz(r){const t=Lz(r.routes,r),e=r.parseQuery||hz,n=r.stringifyQuery||tx,i=r.history,a=_l(),o=_l(),s=_l(),l=kN(Mi);let u=Mi;ds&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Wd.bind(null,U=>""+U),c=Wd.bind(null,qB),h=Wd.bind(null,zu);function v(U,K){let H,tt;return kI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=$d(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:zu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:$d(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=JB(n,Kt({},U,{hash:YB(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===tx?vz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?$d(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Gs(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&QB(n,tt,H)&&(X=Gs(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>jn(W)?jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=pz(U,K);H=Yd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push(Hi(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Yd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push(Hi(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(dn(k.beforeEnter))for(const z of k.beforeEnter)H.push(Hi(z,U,K));else H.push(Hi(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Yd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).catch(k=>jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Mi,k=ds?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(gu);return}u=tt;const ut=l.value;ds&&sz(QS(ut.fullPath,H.delta),$v()),C(tt,ut).catch(R=>jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Ly.pop&&i.go(-1,!1)}).catch(gu),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Ly.pop&&jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(gu)}))}let E=_l(),O=_l(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Mi?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ds||!j)return Promise.resolve();const ut=!H&&lz(QS(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return E0().then(()=>j(U,K,ut)).then(R=>R&&oz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Vz),U.component("RouterView",Fz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>go(l)}),ds&&!ct&&l.value===Mi&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Mi)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Uv,gt),U.provide(Z0,UD(K)),U.provide(Ry,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Mi,L&&L(),L=null,l.value=Mi,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function Xit(){return un(Uv)}function qit(r){return un(Z0)}const io="Authorization",Wz=["/","/screen2","/screen2/"];function $z(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Uz(r){return encodeURIComponent(r||"/platform")}function hx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${io}=`));return r?decodeURIComponent(r.slice(io.length+1)):""}function zI(){const r=$z();Wz.forEach(t=>{document.cookie=`${io}=; Max-Age=0; path=${t}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${io}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function Ey(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Uz(r)}`}function Yz(r){zI();const t=Ey(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function Kit(r,t){return pl(this,null,function*(){var i;zI();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${io}=${encodeURIComponent(n.data.token)}; path=/`),n})}function jit(){return pl(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),Yz("/platform")})}function Zz(){return pl(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const vx=()=>U0(()=>import("./index-ed255eef-1784132466083.js").then(r=>r.i),["./index-ed255eef-1784132466083.js","./index-e9f36657-1784132466083.js","./index-1e17e433-balabala-1784132466083.css"],import.meta.url),Xz=()=>U0(()=>import("./index-ddc73668-1784132466083.js"),["./index-ddc73668-1784132466083.js","./index-08599012-balabala-1784132466083.css"],import.meta.url),qz=()=>U0(()=>import("./index-b1fbd7ae-1784132466083.js"),["./index-b1fbd7ae-1784132466083.js","./index.esm.min-e7a22049-1784132466083.js","./index-fe70e5de-1784132466083.js","./index-148a2898-balabala-1784132466083.css","./screen2Standard-483e466b-1784132466083.js","./index-e9f36657-1784132466083.js","./screen2Standard-cdb21878-balabala-1784132466083.css","./chartTheme-e9ae7be8-1784132466083.js","./index-8d752fbe-balabala-1784132466083.css"],import.meta.url),GI=Hz({history:Sz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:Xz,meta:{public:!0}},{path:"/platform",component:vx},{path:"/forest-grass-wet",component:vx},{path:"/chart-style-guide",component:qz},{path:"/:pathMatch(.*)",redirect:"/"}]});let yu=null;GI.beforeEach(r=>pl(void 0,null,function*(){if(r.meta.public){if(hx())try{return yield dx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){yu=null}return!0}if(!hx())return Ey(r.fullPath);try{return yield dx(),!0}catch(t){return yu=null,Ey(r.fullPath)}}));function dx(){return yu||(yu=Zz()),yu}const Kz=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},jz={};function Jz(r,t){const e=vV("router-view");return Mh(),Ih(e)}const Qz=Kz(jz,[["render",Jz]]);/*! ***************************************************************************** + */let gz=()=>location.protocol+"//"+location.host;function NI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),jS(s,"")}return jS(e,r)+n+i}function yz(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=NI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Ly.pop,direction:g?g>0?Ud.forward:Ud.back:Ud.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:$v()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function rx(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?$v():null}}function mz(r){const{history:t,location:e}=window,n={value:NI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:gz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,rx(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:$v()});a(f.current,f,!0),a(l,Kt({},rx(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function _z(r){r=rz(r);const t=mz(r),e=yz(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:iz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Sz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),_z(r)}let no=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const xz={type:no.Static,value:""},bz=/[a-zA-Z0-9_]/;function wz(r){if(!r)return[[]];if(r==="/")return[[xz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:no.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:no.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function VI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Dz={strict:!1,end:!0,sensitive:!1};function Iz(r,t,e){const n=Cz(wz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Lz(r,t){const e=[],n=new Map;t=KS(Dz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=ox(c);p.aliasOf=v&&v.record;const g=KS(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(ox(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Iz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!sx(m)&&o(c.name)),BI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:gu}function o(c){if(kI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Ez(c,e);e.splice(h,0,c),c.record.name&&!sx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ax(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ax(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Rz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ax(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function ox(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:Pz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Pz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function sx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Rz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Ez(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;VI(r,t[a])<0?n=a:e=a+1}const i=kz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function kz(r){let t=r;for(;t=t.parent;)if(BI(t)&&VI(r,t)===0)return t}function BI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function lx(r){const t=un(Uv),e=un(Z0),n=nn(()=>{const l=go(r.to);return t.resolve(l)}),i=nn(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(zs.bind(null,f));if(h>-1)return h;const v=ux(l[u-2]);return u>1&&ux(f)===v&&c[c.length-1].path!==v?c.findIndex(zs.bind(null,l[u-2])):h}),a=nn(()=>i.value>-1&&zz(e.params,n.value.params)),o=nn(()=>i.value>-1&&i.value===e.matched.length-1&&EI(e.params,n.value.params));function s(l={}){if(Bz(l)){const u=t[go(r.replace)?"replace":"push"](go(r.to)).catch(gu);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:nn(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Oz(r){return r.length===1?r[0]:r}const Nz=V0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:lx,setup(r,{slots:t}){const e=Bv(lx(r)),{options:n}=un(Uv),i=nn(()=>({[fx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[fx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Oz(t.default(e));return r.custom?a:TI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Vz=Nz;function Bz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!dn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function ux(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const fx=(r,t,e)=>r!=null?r:t!=null?t:e,Gz=V0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=un(Ry),i=nn(()=>r.route||n.value),a=un(ex,0),o=nn(()=>{let u=go(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=nn(()=>i.value.matched[o.value]);Kc(ex,nn(()=>o.value+1)),Kc(dz,s),Kc(Ry,i);const l=qc();return jc(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!zs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return cx(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=TI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return cx(e.default,{Component:g,route:u})||g}}});function cx(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const Fz=Gz;function Hz(r){const t=Lz(r.routes,r),e=r.parseQuery||hz,n=r.stringifyQuery||tx,i=r.history,a=_l(),o=_l(),s=_l(),l=kN(Mi);let u=Mi;ds&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Wd.bind(null,U=>""+U),c=Wd.bind(null,qB),h=Wd.bind(null,zu);function v(U,K){let H,tt;return kI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=$d(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:zu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:$d(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=JB(n,Kt({},U,{hash:YB(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===tx?vz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?$d(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Gs(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&QB(n,tt,H)&&(X=Gs(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>jn(W)?jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=pz(U,K);H=Yd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push(Hi(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Yd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push(Hi(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(dn(k.beforeEnter))for(const z of k.beforeEnter)H.push(Hi(z,U,K));else H.push(Hi(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Yd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).catch(k=>jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Mi,k=ds?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(gu);return}u=tt;const ut=l.value;ds&&sz(QS(ut.fullPath,H.delta),$v()),C(tt,ut).catch(R=>jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Ly.pop&&i.go(-1,!1)}).catch(gu),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Ly.pop&&jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(gu)}))}let E=_l(),O=_l(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Mi?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ds||!j)return Promise.resolve();const ut=!H&&lz(QS(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return E0().then(()=>j(U,K,ut)).then(R=>R&&oz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Vz),U.component("RouterView",Fz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>go(l)}),ds&&!ct&&l.value===Mi&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Mi)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Uv,gt),U.provide(Z0,UD(K)),U.provide(Ry,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Mi,L&&L(),L=null,l.value=Mi,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function Xit(){return un(Uv)}function qit(r){return un(Z0)}const io="Authorization",Wz=["/","/screen2","/screen2/"];function $z(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Uz(r){return encodeURIComponent(r||"/platform")}function hx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${io}=`));return r?decodeURIComponent(r.slice(io.length+1)):""}function zI(){const r=$z();Wz.forEach(t=>{document.cookie=`${io}=; Max-Age=0; path=${t}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${io}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function Ey(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Uz(r)}`}function Yz(r){zI();const t=Ey(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function Kit(r,t){return pl(this,null,function*(){var i;zI();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${io}=${encodeURIComponent(n.data.token)}; path=/`),n})}function jit(){return pl(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),Yz("/platform")})}function Zz(){return pl(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const vx=()=>U0(()=>import("./index-a1b5e9c0-1784132792831.js").then(r=>r.i),["./index-a1b5e9c0-1784132792831.js","./index-e9f36657-1784132792831.js","./index-6965fbd6-balabala-1784132792831.css"],import.meta.url),Xz=()=>U0(()=>import("./index-b72a9c1f-1784132792831.js"),["./index-b72a9c1f-1784132792831.js","./index-08ee8551-balabala-1784132792831.css"],import.meta.url),qz=()=>U0(()=>import("./index-d6ceab05-1784132792831.js"),["./index-d6ceab05-1784132792831.js","./index.esm.min-da05f706-1784132792831.js","./index-a4d3ff67-1784132792831.js","./index-148a2898-balabala-1784132792831.css","./screen2Standard-41868f75-1784132792831.js","./index-e9f36657-1784132792831.js","./screen2Standard-cdb21878-balabala-1784132792831.css","./chartTheme-73e4a943-1784132792831.js","./index-8d752fbe-balabala-1784132792831.css"],import.meta.url),GI=Hz({history:Sz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:Xz,meta:{public:!0}},{path:"/platform",component:vx},{path:"/forest-grass-wet",component:vx},{path:"/chart-style-guide",component:qz},{path:"/:pathMatch(.*)",redirect:"/"}]});let yu=null;GI.beforeEach(r=>pl(void 0,null,function*(){if(r.meta.public){if(hx())try{return yield dx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){yu=null}return!0}if(!hx())return Ey(r.fullPath);try{return yield dx(),!0}catch(t){return yu=null,Ey(r.fullPath)}}));function dx(){return yu||(yu=Zz()),yu}const Kz=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},jz={};function Jz(r,t){const e=vV("router-view");return Mh(),Ih(e)}const Qz=Kz(jz,[["render",Jz]]);/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any diff --git a/docs/assets/index-1d3ffd1c-balabala-1784132466083.css b/docs/assets/index-1d3ffd1c-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-1d3ffd1c-balabala-1784132466083.css rename to docs/assets/index-1d3ffd1c-balabala-1784132792831.css diff --git a/docs/assets/index-36438a28-1784132466083.js b/docs/assets/index-24267a69-1784132792831.js similarity index 99% rename from docs/assets/index-36438a28-1784132466083.js rename to docs/assets/index-24267a69-1784132792831.js index 4fd7e88..b7e6429 100644 --- a/docs/assets/index-36438a28-1784132466083.js +++ b/docs/assets/index-24267a69-1784132792831.js @@ -1,2 +1,2 @@ -var sr=Object.defineProperty,lr=Object.defineProperties;var ar=Object.getOwnPropertyDescriptors;var wn=Object.getOwnPropertySymbols;var ur=Object.prototype.hasOwnProperty,cr=Object.prototype.propertyIsEnumerable;var Sn=(m,n,r)=>n in m?sr(m,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):m[n]=r,at=(m,n)=>{for(var r in n||(n={}))ur.call(n,r)&&Sn(m,r,n[r]);if(wn)for(var r of wn(n))cr.call(n,r)&&Sn(m,r,n[r]);return m},Lt=(m,n)=>lr(m,ar(n));var mt=(m,n,r)=>new Promise((u,h)=>{var c=y=>{try{g(r.next(y))}catch(w){h(w)}},p=y=>{try{g(r.throw(y))}catch(w){h(w)}},g=y=>y.done?u(y.value):Promise.resolve(y.value).then(c,p);g((r=r.apply(m,n)).next())});import{H as G,n as xe,h as bn}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{_ as hr,g as fr,q as mr,h as pr,w as Kt,A as _n,o as gr,c as dr,a as yr,d as Nn,K as xr}from"./index-1784132466083.js";class yt{constructor(n,r){this.next=null,this.key=n,this.data=r,this.left=null,this.right=null}}function wr(m,n){return m>n?1:m0){if(n.right===null)break;if(r(m,n.right.key)>0){const g=n.right;if(n.right=g.left,g.left=n,n=g,n.right===null)break}h.right=n,h=n,n=n.right}else break}return h.right=n.left,c.left=n.right,n.left=u.right,n.right=u.left,n}function we(m,n,r,u){const h=new yt(m,n);if(r===null)return h.left=h.right=null,h;r=pt(m,r,u);const c=u(m,r.key);return c<0?(h.left=r.left,h.right=r,r.left=null):c>=0&&(h.right=r.right,h.left=r,r.right=null),h}function En(m,n,r){let u=null,h=null;if(n){n=pt(m,n,r);const c=r(n.key,m);c===0?(u=n.left,h=n.right):c<0?(h=n.right,n.right=null,u=n):(u=n.left,n.left=null,h=n)}return{left:u,right:h}}function Sr(m,n,r){return n===null?m:(m===null||(n=pt(m.key,n,r),n.left=m),n)}function be(m,n,r,u,h){if(m){u(`${n}${r?"└── ":"├── "}${h(m)} +var sr=Object.defineProperty,lr=Object.defineProperties;var ar=Object.getOwnPropertyDescriptors;var wn=Object.getOwnPropertySymbols;var ur=Object.prototype.hasOwnProperty,cr=Object.prototype.propertyIsEnumerable;var Sn=(m,n,r)=>n in m?sr(m,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):m[n]=r,at=(m,n)=>{for(var r in n||(n={}))ur.call(n,r)&&Sn(m,r,n[r]);if(wn)for(var r of wn(n))cr.call(n,r)&&Sn(m,r,n[r]);return m},Lt=(m,n)=>lr(m,ar(n));var mt=(m,n,r)=>new Promise((u,h)=>{var c=y=>{try{g(r.next(y))}catch(w){h(w)}},p=y=>{try{g(r.throw(y))}catch(w){h(w)}},g=y=>y.done?u(y.value):Promise.resolve(y.value).then(c,p);g((r=r.apply(m,n)).next())});import{H as G,n as xe,h as bn}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{_ as hr,g as fr,q as mr,h as pr,w as Kt,A as _n,o as gr,c as dr,a as yr,d as Nn,K as xr}from"./index-1784132792831.js";class yt{constructor(n,r){this.next=null,this.key=n,this.data=r,this.left=null,this.right=null}}function wr(m,n){return m>n?1:m0){if(n.right===null)break;if(r(m,n.right.key)>0){const g=n.right;if(n.right=g.left,g.left=n,n=g,n.right===null)break}h.right=n,h=n,n=n.right}else break}return h.right=n.left,c.left=n.right,n.left=u.right,n.right=u.left,n}function we(m,n,r,u){const h=new yt(m,n);if(r===null)return h.left=h.right=null,h;r=pt(m,r,u);const c=u(m,r.key);return c<0?(h.left=r.left,h.right=r,r.left=null):c>=0&&(h.right=r.right,h.left=r,r.right=null),h}function En(m,n,r){let u=null,h=null;if(n){n=pt(m,n,r);const c=r(n.key,m);c===0?(u=n.left,h=n.right):c<0?(h=n.right,n.right=null,u=n):(u=n.left,n.left=null,h=n)}return{left:u,right:h}}function Sr(m,n,r){return n===null?m:(m===null||(n=pt(m.key,n,r),n.left=m),n)}function be(m,n,r,u,h){if(m){u(`${n}${r?"└── ":"├── "}${h(m)} `);const c=n+(r?" ":"│ ");m.left&&be(m.left,c,!1,u,h),m.right&&be(m.right,c,!0,u,h)}}class Te{constructor(n=wr){this._root=null,this._size=0,this._comparator=n}insert(n,r){return this._size++,this._root=we(n,r,this._root,this._comparator)}add(n,r){const u=new yt(n,r);this._root===null&&(u.left=u.right=null,this._size++,this._root=u);const h=this._comparator,c=pt(n,this._root,h),p=h(n,c.key);return p===0?this._root=c:(p<0?(u.left=c.left,u.right=c,c.left=null):p>0&&(u.right=c.right,u.left=c,c.right=null),this._size++,this._root=u),this._root}remove(n){this._root=this._remove(n,this._root,this._comparator)}_remove(n,r,u){let h;return r===null?null:(r=pt(n,r,u),u(n,r.key)===0?(r.left===null?h=r.right:(h=pt(n,r.left,u),h.right=r.right),this._size--,h):r)}pop(){let n=this._root;if(n){for(;n.left;)n=n.left;return this._root=pt(n.key,this._root,this._comparator),this._root=this._remove(n.key,this._root,this._comparator),{key:n.key,data:n.data}}return null}findStatic(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return r;h<0?r=r.left:r=r.right}return null}find(n){return this._root&&(this._root=pt(n,this._root,this._comparator),this._comparator(n,this._root.key)!==0)?null:this._root}contains(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return!0;h<0?r=r.left:r=r.right}return!1}forEach(n,r){let u=this._root;const h=[];let c=!1;for(;!c;)u!==null?(h.push(u),u=u.left):h.length!==0?(u=h.pop(),n.call(r,u),u=u.right):c=!0;return this}range(n,r,u,h){const c=[],p=this._comparator;let g=this._root,y;for(;c.length!==0||g;)if(g)c.push(g),g=g.left;else{if(g=c.pop(),y=p(g.key,r),y>0)break;if(p(g.key,n)>=0&&u.call(h,g))return this;g=g.right}return this}keys(){const n=[];return this.forEach(({key:r})=>{n.push(r)}),n}values(){const n=[];return this.forEach(({data:r})=>{n.push(r)}),n}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(n=this._root){if(n)for(;n.left;)n=n.left;return n}maxNode(n=this._root){if(n)for(;n.right;)n=n.right;return n}at(n){let r=this._root,u=!1,h=0;const c=[];for(;!u;)if(r)c.push(r),r=r.left;else if(c.length>0){if(r=c.pop(),h===n)return r;h++,r=r.right}else u=!0;return null}next(n){let r=this._root,u=null;if(n.right){for(u=n.right;u.left;)u=u.left;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?(u=r,r=r.left):r=r.right}return u}prev(n){let r=this._root,u=null;if(n.left!==null){for(u=n.left;u.right;)u=u.right;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?r=r.left:(u=r,r=r.right)}return u}clear(){return this._root=null,this._size=0,this}toList(){return _r(this._root)}load(n,r=[],u=!1){let h=n.length;const c=this._comparator;if(u&&Ee(n,r,0,h-1,c),this._root===null)this._root=_e(n,r,0,h),this._size=h;else{const p=Nr(this.toList(),br(n,r),c);h=this._size+h,this._root=Ne({head:p},0,h)}return this}isEmpty(){return this._root===null}get size(){return this._size}get root(){return this._root}toString(n=r=>String(r.key)){const r=[];return be(this._root,"",!0,u=>r.push(u),n),r.join("")}update(n,r,u){const h=this._comparator;let{left:c,right:p}=En(n,this._root,h);h(n,r)<0?p=we(r,u,p,h):c=we(r,u,c,h),this._root=Sr(c,p,h)}split(n){return En(n,this._root,this._comparator)}*[Symbol.iterator](){let n=this._root;const r=[];let u=!1;for(;!u;)n!==null?(r.push(n),n=n.left):r.length!==0?(n=r.pop(),yield n,n=n.right):u=!0}}function _e(m,n,r,u){const h=u-r;if(h>0){const c=r+Math.floor(h/2),p=m[c],g=n[c],y=new yt(p,g);return y.left=_e(m,n,r,c),y.right=_e(m,n,c+1,u),y}return null}function br(m,n){const r=new yt(null,null);let u=r;for(let h=0;h0?(n=c=c.next=r.pop(),n=n.right):u=!0;return c.next=null,h.next}function Ne(m,n,r){const u=r-n;if(u>0){const h=n+Math.floor(u/2),c=Ne(m,n,h),p=m.head;return p.left=c,m.head=m.head.next,p.right=Ne(m,h+1,r),p}return null}function Nr(m,n,r){const u=new yt(null,null);let h=u,c=m,p=n;for(;c!==null&&p!==null;)r(c.key,p.key)<0?(h.next=c,c=c.next):(h.next=p,p=p.next),h=h.next;return c!==null?h.next=c:p!==null&&(h.next=p),u.next}function Ee(m,n,r,u,h){if(r>=u)return;const c=m[r+u>>1];let p=r-1,g=u+1;for(;;){do p++;while(h(m[p],c)<0);do g--;while(h(m[g],c)>0);if(p>=g)break;let y=m[p];m[p]=m[g],m[g]=y,y=n[p],n[p]=n[g],n[g]=y}Ee(m,n,r,g,h),Ee(m,n,g+1,u,h)}const ut=11102230246251565e-32,J=134217729,Er=(3+8*ut)*ut;function Se(m,n,r,u,h){let c,p,g,y,w=n[0],N=u[0],o=0,x=0;N>w==N>-w?(c=w,w=n[++o]):(c=N,N=u[++x]);let b=0;if(ow==N>-w?(p=w+c,g=c-(p-w),w=n[++o]):(p=N+c,g=c-(p-N),N=u[++x]),c=p,g!==0&&(h[b++]=g);ow==N>-w?(p=c+w,y=p-c,g=c-(p-y)+(w-y),w=n[++o]):(p=c+N,y=p-c,g=c-(p-y)+(N-y),N=u[++x]),c=p,g!==0&&(h[b++]=g);for(;o=it||-Y>=it||(o=m-q,g=m-(q+o)+(o-h),o=r-z,w=r-(z+o)+(o-h),o=n-Z,y=n-(Z+o)+(o-c),o=u-W,N=u-(W+o)+(o-c),g===0&&y===0&&w===0&&N===0)||(it=Pr*p+Er*Math.abs(Y),Y+=q*N+W*g-(Z*w+z*y),Y>=it||-Y>=it))return Y;k=g*W,x=J*g,b=x-(x-g),F=g-b,x=J*W,C=x-(x-W),R=W-C,v=F*R-(k-b*C-F*C-b*R),B=y*z,x=J*y,b=x-(x-y),F=y-b,x=J*z,C=x-(x-z),R=z-C,U=F*R-(B-b*C-F*C-b*R),I=v-U,o=v-I,K[0]=v-(I+o)+(o-U),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ct=Se(4,Et,4,K,Cn);k=q*N,x=J*q,b=x-(x-q),F=q-b,x=J*N,C=x-(x-N),R=N-C,v=F*R-(k-b*C-F*C-b*R),B=Z*w,x=J*Z,b=x-(x-Z),F=Z-b,x=J*w,C=x-(x-w),R=w-C,U=F*R-(B-b*C-F*C-b*R),I=v-U,o=v-I,K[0]=v-(I+o)+(o-U),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ie=Se(ct,Cn,4,K,Tn);k=g*N,x=J*g,b=x-(x-g),F=g-b,x=J*N,C=x-(x-N),R=N-C,v=F*R-(k-b*C-F*C-b*R),B=y*w,x=J*y,b=x-(x-y),F=y-b,x=J*w,C=x-(x-w),R=w-C,U=F*R-(B-b*C-F*C-b*R),I=v-U,o=v-I,K[0]=v-(I+o)+(o-U),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const Ct=Se(ie,Tn,4,K,Fn);return Fn[Ct-1]}function Mr(m,n,r,u,h,c){const p=(n-c)*(r-h),g=(m-h)*(u-c),y=p-g,w=Math.abs(p+g);return Math.abs(y)>=Tr*w?y:-Ir(m,n,r,u,h,c,w)}const At=(m,n)=>m.ll.x<=n.x&&n.x<=m.ur.x&&m.ll.y<=n.y&&n.y<=m.ur.y,Ce=(m,n)=>{if(n.ur.x{if(-gtm.x*n.y-m.y*n.x,Gn=(m,n)=>m.x*n.x+m.y*n.y,Mn=(m,n,r)=>{const u=Mr(m.x,m.y,n.x,n.y,r.x,r.y);return u>0?-1:u<0?1:0},ee=m=>Math.sqrt(Gn(m,m)),Lr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return te(h,u)/ee(h)/ee(u)},Ar=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return Gn(h,u)/ee(h)/ee(u)},Rn=(m,n,r)=>n.y===0?null:{x:m.x+n.x/n.y*(r-m.y),y:r},kn=(m,n,r)=>n.x===0?null:{x:r,y:m.y+n.y/n.x*(r-m.x)},vr=(m,n,r,u)=>{if(n.x===0)return kn(r,u,m.x);if(u.x===0)return kn(m,n,r.x);if(n.y===0)return Rn(r,u,m.y);if(u.y===0)return Rn(m,n,r.y);const h=te(n,u);if(h==0)return null;const c={x:r.x-m.x,y:r.y-m.y},p=te(c,n)/h,g=te(c,u)/h,y=m.x+g*n.x,w=r.x+p*u.x,N=m.y+g*n.y,o=r.y+p*u.y,x=(y+w)/2,b=(N+o)/2;return{x,y:b}};class nt{static compare(n,r){const u=nt.comparePoints(n.point,r.point);return u!==0?u:(n.point!==r.point&&n.link(r),n.isLeft!==r.isLeft?n.isLeft?1:-1:dt.compare(n.segment,r.segment))}static comparePoints(n,r){return n.xr.x?1:n.yr.y?1:0}constructor(n,r){n.events===void 0?n.events=[this]:n.events.push(this),this.point=n,this.isLeft=r}link(n){if(n.point===this.point)throw new Error("Tried to link already linked events");const r=n.point.events;for(let u=0,h=r.length;u{const c=h.otherSE;r.set(h,{sine:Lr(this.point,n.point,c.point),cosine:Ar(this.point,n.point,c.point)})};return(h,c)=>{r.has(h)||u(h),r.has(c)||u(c);const{sine:p,cosine:g}=r.get(h),{sine:y,cosine:w}=r.get(c);return p>=0&&y>=0?gw?-1:0:p<0&&y<0?gw?1:0:yp?1:0}}}let Br=0;class dt{static compare(n,r){const u=n.leftSE.point.x,h=r.leftSE.point.x,c=n.rightSE.point.x,p=r.rightSE.point.x;if(pg&&y>w)return-1;const o=n.comparePoint(r.leftSE.point);if(o<0)return 1;if(o>0)return-1;const x=r.comparePoint(n.rightSE.point);return x!==0?x:-1}if(u>h){if(gy&&g>N)return 1;const o=r.comparePoint(n.leftSE.point);if(o!==0)return o;const x=n.comparePoint(r.rightSE.point);return x<0?1:x>0?-1:1}if(gy)return 1;if(cp){const o=n.comparePoint(r.rightSE.point);if(o<0)return 1;if(o>0)return-1}if(c!==p){const o=w-g,x=c-u,b=N-y,F=p-h;if(o>x&&bF)return-1}return c>p?1:cN?1:n.idr.id?1:0}constructor(n,r,u,h){this.id=++Br,this.leftSE=n,n.segment=this,n.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=n,this.rings=u,this.windings=h}static fromRing(n,r,u){let h,c,p;const g=nt.comparePoints(n,r);if(g<0)h=n,c=r,p=1;else if(g>0)h=r,c=n,p=-1;else throw new Error(`Tried to create degenerate segment at [${n.x}, ${n.y}]`);const y=new nt(h,!0),w=new nt(c,!1);return new dt(y,w,[u],[p])}replaceRightSE(n){this.rightSE=n,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const n=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:nr?n:r}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(n){return n.x===this.leftSE.point.x&&n.y===this.leftSE.point.y||n.x===this.rightSE.point.x&&n.y===this.rightSE.point.y}comparePoint(n){if(this.isAnEndpoint(n))return 0;const r=this.leftSE.point,u=this.rightSE.point,h=this.vector();if(r.x===u.x)return n.x===r.x?0:n.x0&&g.swapEvents(),nt.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),u&&(h.checkForConsuming(),c.checkForConsuming()),r}swapEvents(){const n=this.rightSE;this.rightSE=this.leftSE,this.leftSE=n,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let r=0,u=this.windings.length;r0){const c=r;r=u,u=c}if(r.prev===u){const c=r;r=u,u=c}for(let c=0,p=u.rings.length;ch.length===1&&h[0].isSubject;this._isInResult=u(n)!==u(r);break}default:throw new Error(`Unrecognized operation type found ${ot.type}`)}return this._isInResult}}class Ln{constructor(n,r,u){if(!Array.isArray(n)||n.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=u,this.segments=[],typeof n[0][0]!="number"||typeof n[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const h=vt.round(n[0][0],n[0][1]);this.bbox={ll:{x:h.x,y:h.y},ur:{x:h.x,y:h.y}};let c=h;for(let p=1,g=n.length;pthis.bbox.ur.x&&(this.bbox.ur.x=y.x),y.y>this.bbox.ur.y&&(this.bbox.ur.y=y.y),c=y)}(h.x!==c.x||h.y!==c.y)&&this.segments.push(dt.fromRing(c,h,this))}getSweepEvents(){const n=[];for(let r=0,u=this.segments.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.interiorRings.push(c)}this.multiPoly=r}getSweepEvents(){const n=this.exteriorRing.getSweepEvents();for(let r=0,u=this.interiorRings.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.polys.push(c)}this.isSubject=r}getSweepEvents(){const n=[];for(let r=0,u=this.polys.length;r0&&(n=p)}let r=n.segment.prevInResult(),u=r?r.prevInResult():null;for(;;){if(!r)return null;if(!u)return r.ringOut;if(u.ringOut!==r.ringOut)return u.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=u.prevInResult(),u=r?r.prevInResult():null}}}class vn{constructor(n){this.exteriorRing=n,n.poly=this,this.interiorRings=[]}addInterior(n){this.interiorRings.push(n),n.poly=this}getGeom(){const n=[this.exteriorRing.getGeom()];if(n[0]===null)return null;for(let r=0,u=this.interiorRings.length;r1&&arguments[1]!==void 0?arguments[1]:dt.compare;this.queue=n,this.tree=new Te(r),this.segments=[]}process(n){const r=n.segment,u=[];if(n.consumedBy)return n.isLeft?this.queue.remove(n.otherSE):this.tree.remove(r),u;const h=n.isLeft?this.tree.add(r):this.tree.find(r);if(!h)throw new Error(`Unable to find segment #${r.id} [${r.leftSE.point.x}, ${r.leftSE.point.y}] -> [${r.rightSE.point.x}, ${r.rightSE.point.y}] in SweepLine tree.`);let c=h,p=h,g,y;for(;g===void 0;)c=this.tree.prev(c),c===null?g=null:c.key.consumedBy===void 0&&(g=c.key);for(;y===void 0;)p=this.tree.next(p),p===null?y=null:p.key.consumedBy===void 0&&(y=p.key);if(n.isLeft){let w=null;if(g){const o=g.getIntersection(r);if(o!==null&&(r.isAnEndpoint(o)||(w=o),!g.isAnEndpoint(o))){const x=this._splitSafely(g,o);for(let b=0,F=x.length;b0?(this.tree.remove(r),u.push(n)):(this.segments.push(r),r.prev=g)}else{if(g&&y){const w=g.getIntersection(y);if(w!==null){if(!g.isAnEndpoint(w)){const N=this._splitSafely(g,w);for(let o=0,x=N.length;oBn)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const p=new Wr(c);let g=c.size,y=c.pop();for(;y;){const o=y.key;if(c.size===g){const b=o.segment;throw new Error(`Unable to pop() ${o.isLeft?"left":"right"} SweepEvent [${o.point.x}, ${o.point.y}] from segment #${b.id} [${b.leftSE.point.x}, ${b.leftSE.point.y}] -> [${b.rightSE.point.x}, ${b.rightSE.point.y}] from queue.`)}if(c.size>Bn)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(p.segments.length>Hr)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const x=p.process(o);for(let b=0,F=x.length;b1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u[]},tileUrlTemplate:{type:String,default:"https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png"},referenceTileUrlTemplate:{type:String,default:"https://map.shuxitech.com/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}"},terrainUrl:{type:String,default:""},center:{type:Array,default:()=>[102.600005,32.585593]},initialZoom:{type:Number,default:9},minimumZoomDistance:{type:Number,default:1},countyViewTargetOffset:{type:Object,default:null},autoApplyLayerMapView:{type:Boolean,default:!0},maxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},showNationalBackdrop:{type:Boolean,default:!0},enableImageryFeaturePick:{type:Boolean,default:!0},enableTownPolygonPick:{type:Boolean,default:!0},hideTownLabelStats:{type:Boolean,default:!1}},emits:["ready","scene-mounted","feature-loading","feature-info","layer-status","tile-status","map-click","draw-boundary","view-change"],setup(m,{expose:n,emit:r}){let u=[],h=null;const c=m,p=r,g=Nn(null),y=Nn(null),w=xr(null),N=fr(()=>c.activeLayer?[c.activeLayer,...Array.isArray(c.activeLayer.overlayLayers)?c.activeLayer.overlayLayers:[]].filter(Boolean):c.overlayLayers.length?c.overlayLayers.filter(Boolean):c.overlayLayer?[c.overlayLayer]:[]);let o=null,x=null,b=null,F=null,C=null,R=!1,I=0,M=null,O=!1,k=[],v=null,B=[],U=[],D=[],q=[],z=[],Z=[],W=null,Y=[],it=[],ct=[],ie=[];const Ct=new Map;mr(()=>{p("scene-mounted"),c.active&&Ot()}),pr(()=>It()),Kt(N,()=>ve(),{deep:!0}),Kt(()=>c.mapRanking,()=>se(),{deep:!0}),Kt(()=>c.hideTownLabelStats,()=>se()),Kt(()=>c.active,t=>mt(this,null,function*(){if(!t){It();return}yield _n(),Ot()}));function Ot(){var S,_,T,E;if(o||!y.value)return!!o;const t=window.Cesium;if(!t)return p("layer-status",{type:"error",text:"Cesium 运行资源加载失败"}),!1;R=!1;const e=zn(t),i=Pe(c.tileUrlTemplate),l=Pe(c.referenceTileUrlTemplate),a=Vn(i),s=l&&l!==i?Fe(t,l,{maximumLevel:c.maxZoom}):null,f=i?Fe(t,i,{maximumLevel:a?Math.min(c.maxZoom,qr):c.maxZoom,rectangle:a?jn(t):null}):null;if(o=new t.Viewer(y.value,{animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,navigationHelpButton:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,scene3DOnly:!0,imageryProvider:!1,terrainProvider:e,useBrowserRecommendedResolution:!1,requestRenderMode:!0,maximumRenderTimeChange:1/0,contextOptions:{webgl:{alpha:!0,antialias:!0}}}),Le(!1),s){const P=o.imageryLayers.addImageryProvider(s);P.alpha=1,P.brightness=.68,P.contrast=1.08,P.saturation=.48,P.gamma=.9}f&&(v=o.imageryLayers.addImageryProvider(f),v.alpha=a?.88:1,v.brightness=a?.96:.9,v.contrast=a?1.12:1.1,v.saturation=a?1.08:1.05,v.gamma=a?.98:.96),o.scene.globe.terrainExaggeration=c.terrainUrl?1.5:1,o.scene.globe.depthTestAgainstTerrain=!1,o.scene.globe.baseColor=t.Color.fromCssColorString("#061821"),o.scene.backgroundColor=t.Color.fromCssColorString("#020b12"),o.scene.skyAtmosphere.show=!1,o.scene.skyBox&&(o.scene.skyBox.show=!1),o.scene.fog.enabled=!0,o.scene.fog.density=18e-5,o.resolutionScale=Math.min(Math.max(window.devicePixelRatio||1,1),1.5),o.scene.fxaa=!1,o.scene.postProcessStages.fxaa.enabled=!1,o.scene.screenSpaceCameraController.enableCollisionDetection=!0,o.scene.screenSpaceCameraController.minimumZoomDistance=Math.max(1,Number(c.minimumZoomDistance)||1),o.scene.screenSpaceCameraController.maximumZoomDistance=56e4,(S=o.cesiumWidget)!=null&&S.creditContainer&&(o.cesiumWidget.creditContainer.style.display="none"),(_=o._cesiumWidget)!=null&&_._creditContainer&&(o._cesiumWidget._creditContainer.style.display="none"),qn(e,t),Ie().then(()=>{var P;!o||(P=o.isDestroyed)!=null&&P.call(o)||(Pi(),oe())}).catch(P=>{console.warn("[cesium-map] county outline load failed",P),p("layer-status",{type:"error",text:"红原县边界加载失败"})}),Ei(),Ai(),ri(),oi(),si(),oe(),ve(),se();const d={viewer:o,clearSelectedFeature:tt,focusProject:Qe,focusPasture:rn,focusTownByName:Ke,focusYakIndustryPoint:tn,focusVectorFeature:en,getVectorFeatureAnchorScreen:nn,getVectorFeaturesAnchorScreen:Ut,getVectorFeatureScreen:Ft,getYakIndustryPointScreen:he,destroy:It};return w.value=d,(E=(T=f==null?void 0:f.errorEvent)==null?void 0:T.addEventListener)==null||E.call(T,()=>{p("tile-status",{type:"warning",text:"牧场影像底图部分瓦片加载失败"})}),p("tile-status",{type:"success",text:"牧场影像底图已加载"}),window.setTimeout(()=>{var P;o&&!((P=o.isDestroyed)!=null&&P.call(o))&&p("ready")},0),_n(Dt),!0}function zn(t){if(!c.terrainUrl)return new t.EllipsoidTerrainProvider;try{return new t.CesiumTerrainProvider({url:c.terrainUrl,requestVertexNormals:!0,requestWaterMask:!1})}catch(e){return R=!0,new t.EllipsoidTerrainProvider}}function Fe(t,e,i={}){return e?new t.UrlTemplateImageryProvider({url:e,minimumLevel:i.minimumLevel||3,maximumLevel:i.maximumLevel||c.maxZoom,rectangle:i.rectangle||void 0,tilingScheme:new t.WebMercatorTilingScheme,credit:""}):null}function Pe(t){return String(t||"").trim()}function Vn(t){return/hy-result|qkl-map/i.test(String(t||""))}function jn(t){return t.Rectangle.fromDegrees(G.west-.035,G.south-.035,G.east+.035,G.north+.035)}function Un(t,e="feature"){const i=[];if(((t==null?void 0:t.features)||[]).forEach(l=>{const a=V(l==null?void 0:l.geometry);Ge(a).forEach(s=>{const f=Yn(s);f&&i.push(f)})}),!i.length)return[];try{return Qt.union(...i)}catch(l){return console.warn(`[cesium-map] ${e} union boundary failed`,l),i.map(a=>a)}}function Ie(){return mt(this,null,function*(){return u.length?u:(h||(h=Ht(Yr).then(t=>{const e=Un(t,"county outline");return u=e,e}).catch(t=>{throw h=null,t})),h)})}function Yn(t){if(!Array.isArray(t))return null;const e=t.map(i=>$n((i||[]).map($).filter(Boolean))).filter(i=>i.length>=4);return e.length?e:null}function $n(t=[]){if(!t.length)return[];const e=t[0],i=t[t.length-1];return ze(e,i)?t:[...t,e]}function qn(t,e){var l,a,s,f;const i=()=>{!o||R||(R=!0,o.terrainProvider=new e.EllipsoidTerrainProvider,o.scene.globe.terrainExaggeration=1,o.scene.requestRender(),p("layer-status",{type:"warning",text:"CXPT 地形服务暂不可用,已保留三维影像地图"}))};(a=(l=t==null?void 0:t.errorEvent)==null?void 0:l.addEventListener)==null||a.call(l,i),(f=(s=t==null?void 0:t.readyPromise)==null?void 0:s.catch)==null||f.call(s,i)}function Zn(){return Ot()}function Xn(){var t;return!!(o&&!((t=o.isDestroyed)!=null&&t.call(o)))}function Jn(){Me()}function Me(){if(!o){Ot();return}o.useDefaultRenderLoop=!0,Dt()}function Kn(){It()}function Dt(){var t;!o||(t=o.isDestroyed)!=null&&t.call(o)||(o.resize(),o.scene.requestRender())}function Re(){if(!(o!=null&&o.camera)||!window.Cesium)return null;const t=window.Cesium,e=o.camera;return{position:t.Cartesian3.clone(e.positionWC||e.position),direction:t.Cartesian3.clone(e.directionWC||e.direction),up:t.Cartesian3.clone(e.upWC||e.up)}}function Wt(t){var i,l,a,s,f,d;if(!(o!=null&&o.camera)||!t||!window.Cesium)return;const e=window.Cesium;(l=(i=o.camera).cancelFlight)==null||l.call(i),(s=(a=o.camera).lookAtTransform)==null||s.call(a,e.Matrix4.IDENTITY),o.camera.setView({destination:e.Cartesian3.clone(t.position),orientation:{direction:e.Cartesian3.clone(t.direction),up:e.Cartesian3.clone(t.up)}}),(d=(f=o.scene)==null?void 0:f.requestRender)==null||d.call(f)}function ke(t){var e,i;!t||typeof window=="undefined"||((e=window.requestAnimationFrame)==null||e.call(window,()=>Wt(t)),(i=window.setTimeout)==null||i.call(window,()=>Wt(t),80))}function Qn(){tt(),Le(!0)}function ti(t=N.value.find(e=>(e==null?void 0:e.mapView)||(e==null?void 0:e.cameraPosition))){return!o||!t?!1:(ln(t),!0)}function Le(t=!0){if(!o)return;const e=window.Cesium,i=ii(),l=Ae(c.initialZoom),a=ei(),s=e.Cartesian3.fromDegrees(i[0]+a.lng,i[1]+a.lat,ni()),f=new e.HeadingPitchRange(e.Math.toRadians(Zr),e.Math.toRadians(Xr),l);t?o.camera.flyToBoundingSphere(new e.BoundingSphere(s,1),{offset:f,duration:.9}):(o.camera.lookAt(s,f),o.camera.lookAtTransform(e.Matrix4.IDENTITY)),o.scene.requestRender()}function ei(){var l,a;const t=c.countyViewTargetOffset,e=Number((l=t==null?void 0:t.lng)!=null?l:t==null?void 0:t[0]),i=Number((a=t==null?void 0:t.lat)!=null?a:t==null?void 0:t[1]);return{lng:Number.isFinite(e)?e:0,lat:Number.isFinite(i)?i:-Jr}}function ni(){return c.terrainUrl?Kr:Qr}function re(){return c.terrainUrl?to:eo}function Ae(t){const e=Number.isFinite(Number(t))?Number(t):9;return Math.max(9e3,Math.min(58e4,365e3/Math.pow(1.62,e-9)))}function ii(){const t=$(c.center);return t||[(G.west+G.east)/2,(G.south+G.north)/2]}function ri(){!g.value||!window.ResizeObserver||(b=new ResizeObserver(()=>Dt()),b.observe(g.value))}function oi(){!o||F||(F=o.camera.moveEnd.addEventListener(oe))}function si(){!o||C||(C=o.scene.postRender.addEventListener(()=>{p("view-change")}))}function oe(){var l,a;if(!o||(l=o.isDestroyed)!=null&&l.call(o))return;const t=Number((a=o.camera.positionCartographic)==null?void 0:a.height)||32e4,e=Math.max(0,Math.min(1,(36e4-t)/3e5)),i={township:1.1+e*.35,countyOutline:1.9+e*.35,countyHalo:4.2+e*.65};U.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="township"&&(s.polyline.width=i.township)}),ct.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="county-outline"&&(s.polyline.width=i.countyOutline),s!=null&&s.polyline&&s.__hyBoundaryRole==="county-halo"&&(s.polyline.width=i.countyHalo)}),o.scene.requestRender()}function ve(){return mt(this,null,function*(){var i,l;if(!o)return;const t=++I;yn();const e=N.value;if(!e.length){p("layer-status",{type:"idle",text:"未选择专题图层"}),o.scene.requestRender();return}p("layer-status",{type:"loading",text:"正在加载三维专题图层"});try{if(yield Ie(),t!==I||!o)return;for(const a of e){if(t!==I)return;yield li(a,t)}if(t!==I)return;c.autoApplyLayerMapView&&ln(e.find(a=>(a==null?void 0:a.mapView)||(a==null?void 0:a.cameraPosition))),p("layer-status",{type:"success",text:`${e.map(a=>a.name).filter(Boolean).join("、")}已加载`})}catch(a){if(t!==I)return;console.warn("[cesium-map] topic layer failed",a),p("layer-status",{type:"error",text:"三维专题图层加载失败"})}finally{(l=(i=o==null?void 0:o.scene)==null?void 0:i.requestRender)==null||l.call(i)}})}function li(t,e){return mt(this,null,function*(){const i=String((t==null?void 0:t.sourceType)||"wms").toLowerCase();if(["geojson","wkt-api","wfs"].includes(i)){const l=yield hi(t);if(e!==I||!l)return;gi(l,t,D);return}if(i==="wmts"){ai(t);return}ci(t)})}function ai(t){const e=window.Cesium,i=t.tileMatrixSetID||t.tileMatrixSet||"EPSG:900913",l=Number.isFinite(Number(t.maximumLevel))?Number(t.maximumLevel):21,a=new e.WebMapTileServiceImageryProvider({url:t.url||"/geoserver/gwc/service/wmts",layer:t.layerName,style:t.style||t.styles||"",format:t.format||"image/png",tileMatrixSetID:i,tileMatrixLabels:t.tileMatrixLabels||ui(i,l),tilingScheme:/4326/i.test(i)?new e.GeographicTilingScheme:new e.WebMercatorTilingScheme,maximumLevel:l,credit:t.credit||""}),s=o.imageryLayers.addImageryProvider(a),f=String(t.layerName||"").includes("daping_yak_marks");s.alpha=f?bt(t.opacity,.94):bt(t.opacity,.86),f&&Be(s,t),s.__hyLayer=t,B.push(s)}function ui(t,e=21){return Array.from({length:e+1},(i,l)=>`${t}:${l}`)}function ci(t){const e=window.Cesium,i={service:"WMS",transparent:!0,format:"image/png",version:"1.1.1",styles:t.styles||""};t.cqlFilter&&(i.cql_filter=t.cqlFilter),t.sldBody&&(i.sld_body=t.sldBody);const l=new e.WebMapServiceImageryProvider({url:t.url||"/geoserver/ne/wms",layers:t.layerName,parameters:i,getFeatureInfoParameters:Lt(at({},i),{info_format:"application/json",feature_count:10})}),a=o.imageryLayers.addImageryProvider(l),s=String(t.layerName||"").includes("daping_yak_marks");a.alpha=s?bt(t.opacity,.94):bt(t.opacity,.86),s&&Be(a,t),a.__hyLayer=t,B.push(a)}function Be(t,e={}){t.brightness=Number.isFinite(Number(e.brightness))?Number(e.brightness):1.08,t.contrast=Number.isFinite(Number(e.contrast))?Number(e.contrast):1.18,t.saturation=Number.isFinite(Number(e.saturation))?Number(e.saturation):1.42,t.gamma=Number.isFinite(Number(e.gamma))?Number(e.gamma):.95}function hi(t){return mt(this,null,function*(){if(t.sourceType==="wkt-api")try{const e=yield fetch(t.apiUrl,{credentials:"same-origin"});if(!e.ok)throw new Error(`HTTP ${e.status}`);return pi(yield e.json())}catch(e){if(!t.fallbackPath)throw e;return Ht(t.fallbackPath)}if(t.sourceType==="wfs"){const e=fi(t);return Ht(e)}return Ht(t.dataPath||t.fallbackPath)})}function Ht(t){return mt(this,null,function*(){if(!t)return null;const e=/^(https?:)?\/\//.test(t)||t.startsWith("/")?t:$r(t),i=yield fetch(e,{credentials:"same-origin"});if(!i.ok)throw new Error(`HTTP ${i.status}`);return i.json()})}function fi(t){const e=new URLSearchParams({service:"WFS",version:"1.1.0",request:"GetFeature",typeName:t.layerName,outputFormat:"application/json",srsName:"EPSG:4326"});return t.cqlFilter&&e.set("cql_filter",t.cqlFilter),t.maxFeatures&&e.set("maxFeatures",String(t.maxFeatures)),Array.isArray(t.propertyName)&&t.propertyName.length?e.set("propertyName",t.propertyName.join(",")):t.propertyName&&e.set("propertyName",t.propertyName),`${t.url||"/geoserver/ne/wfs"}?${e.toString()}`}function mi(t,e={},i=null,l=null){var S,_,T;const a=((S=t==null?void 0:t.data)==null?void 0:S.type)==="Feature"?t.data:((T=(_=t==null?void 0:t.data)==null?void 0:_.features)==null?void 0:T[0])||(t==null?void 0:t.feature)||null,s=(a==null?void 0:a.properties)||e||{},f=V((a==null?void 0:a.geometry)||s.geometry||s.geom||s.the_geom||s.theGeom||s.wkt||s.shape),d=(a==null?void 0:a.id)||s.id||s.gid||s.objectid||s.OBJECTID||(t==null?void 0:t.name);return{type:"Feature",id:d,properties:s,feature:{type:"Feature",id:d,properties:s,geometry:f},geometry:f,layer:i,lngLat:l}}function pi(t){var l;const e=(l=t==null?void 0:t.data)!=null?l:t;return{type:"FeatureCollection",features:(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||(e==null?void 0:e.records)||(e==null?void 0:e.data)||[]).map((a,s)=>{var f;return{type:"Feature",id:(f=a==null?void 0:a.id)!=null?f:s,properties:at({},a),geometry:V(a==null?void 0:a.geometry)||pe(Oe(a))}}).filter(a=>a.geometry)}}function Oe(t={}){return t.wkt||t.WKT||t.geom||t.the_geom||t.theGeom||t.shape||t.Shape}function gi(t,e,i){((t==null?void 0:t.type)==="FeatureCollection"?t.features:(t==null?void 0:t.type)==="Feature"?[t]:[]).filter(a=>a==null?void 0:a.geometry).filter(a=>Ni(a.properties||{},e)).map(a=>di(a,e)).filter(Boolean).forEach(a=>xt(a,e,i))}function di(t,e){const i=V(t==null?void 0:t.geometry),l=(e==null?void 0:e.clipToHongyuanBoundary)===!0,a=yi(e);if(!i||!["Polygon","MultiPolygon"].includes(i.type)||!l&&!a)return t;let s=i.type==="Polygon"?[i.coordinates]:i.coordinates;try{l&&u.length&&(s=Qt.intersection(s,u)),a&&s.length&&(s=Qt.intersection(s,[xi(a)]))}catch(f){return console.warn("[cesium-map] vector layer clipping failed",e==null?void 0:e.key,f),t}return s.length?Lt(at({},t),{geometry:{type:"MultiPolygon",coordinates:s}}):null}function yi(t){if(!(t!=null&&t.clipBounds)||t.clipToLayerBounds===!1)return null;const e=t.clipBounds,i=Math.max(Number(e.west),G.west),l=Math.max(Number(e.south),G.south),a=Math.min(Number(e.east),G.east),s=Math.min(Number(e.north),G.north);return![i,l,a,s].every(Number.isFinite)||i>=a||l>=s?null:{west:i,south:l,east:a,north:s}}function xi(t){return[[[t.west,t.south],[t.east,t.south],[t.east,t.north],[t.west,t.north],[t.west,t.south]]]}function xt(t,e,i,l={}){const a=V(t.geometry);if(!a)return[];const s=bi(e,t.properties||{},l),f=Gt(a,t,e,s);return i.push(...f),f}function Gt(t,e,i,l){const a=window.Cesium,s=[],f=d=>{const S=o.entities.add(d);return S.__hyFeature=e,S.__hyLayer=i,s.push(S),S};if(t.type==="Point"){const d=$(t.coordinates);return!d||i.hidePointFeatures||i.hidePointMarkers||f({position:a.Cartesian3.fromDegrees(d[0],d[1],8),point:{pixelSize:l.pointSize,color:l.fill,outlineColor:l.stroke,outlineWidth:2,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:i.showPointLabels?Si(e):void 0}),s}if(t.type==="MultiPoint")return t.coordinates.forEach(d=>s.push(...Gt({type:"Point",coordinates:d},e,i,l))),s;if(t.type==="LineString"){const d=lt(t.coordinates);return d.length<2||f({polyline:{positions:d,width:l.lineWidth,material:new a.PolylineGlowMaterialProperty({glowPower:.16,color:l.stroke}),clampToGround:!0}}),s}if(t.type==="MultiLineString")return t.coordinates.forEach(d=>s.push(...Gt({type:"LineString",coordinates:d},e,i,l))),s;if(t.type==="Polygon"){const d=zt(t.coordinates);return d&&(f({polygon:{hierarchy:d,height:0,heightReference:a.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,material:l.fill,outline:!1,classificationType:a.ClassificationType.BOTH}}),wi(t.coordinates,e,i,l,s)),s}return t.type==="MultiPolygon"&&t.coordinates.forEach(d=>s.push(...Gt({type:"Polygon",coordinates:d},e,i,l))),s}function wi(t,e,i,l,a){t.forEach(s=>{const f=lt(s);if(f.length<2)return;const d=o.entities.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,clampToGround:!0}});d.__hyFeature=e,d.__hyLayer=i,a.push(d)})}function zt(t=[]){const e=window.Cesium,i=lt(t[0]||[]);if(i.length<3)return null;const l=t.slice(1).map(a=>{const s=lt(a);return s.length>=3?new e.PolygonHierarchy(s):null}).filter(Boolean);return new e.PolygonHierarchy(i,l)}function Si(t,e){const i=window.Cesium,l=t.properties||{},a=l.name||l.project_name||l.title||"";if(a)return{text:String(a),font:"600 14px PingFang SC, Microsoft YaHei, sans-serif",fillColor:i.Color.WHITE,outlineColor:i.Color.fromCssColorString("#03121e"),outlineWidth:3,style:i.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new i.Cartesian2(0,-22),heightReference:i.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,distanceDisplayCondition:new i.DistanceDisplayCondition(0,15e4)}}function bi(t,e,i={}){var E,P,L,H,A,Q,st,et,ft;const l=window.Cesium,a=_i(t,e),s=bt(t.opacity,.84),f=i.fillColor||(a==null?void 0:a.fillColor)||t.fillColor||t.color||"#24F6C4",d=i.strokeColor||(a==null?void 0:a.strokeColor)||t.strokeColor||t.color||"#B7FFF2",S=(L=(P=(E=i.fillAlpha)!=null?E:a==null?void 0:a.fillAlpha)!=null?P:t.fillAlpha)!=null?L:Math.min(.34,s*.34),_=(Q=(A=(H=i.strokeAlpha)!=null?H:a==null?void 0:a.strokeAlpha)!=null?A:t.strokeAlpha)!=null?Q:Math.max(.72,s),T=(ft=(et=(st=i.lineWidth)!=null?st:a==null?void 0:a.lineWidth)!=null?et:t.lineWidth)!=null?ft:Math.max(1.6,1.8*Number(c.adminBoundaryLineScale||1));return{fill:De(l,f,S),stroke:De(l,d,_),lineWidth:T,pointSize:i.pointSize||12}}function De(t,e,i){try{return t.Color.fromCssColorString(String(e||"#24F6C4")).withAlpha(bt(i,1))}catch(l){return t.Color.CYAN.withAlpha(bt(i,1))}}function _i(t,e){var i;return t!=null&&t.activeLegend?t.activeLegend:((t==null?void 0:t.legends)||[]).find(l=>We(e,l))||((i=t==null?void 0:t.legends)==null?void 0:i[0])}function Ni(t,e){const i=e==null?void 0:e.activeLegend;return i?We(t,i):!0}function We(t,e={}){return e.match?He(t,e.match):Array.isArray(e.matches)?e.matches.some(i=>He(t,i)):!0}function He(t,e={}){var i,l;return String((i=t==null?void 0:t[e.field])!=null?i:"")===String((l=e.value)!=null?l:"")}function Ei(){if(!o)return;j(U);const t=window.Cesium,e={stroke:t.Color.fromCssColorString("#B8FFF8").withAlpha(.82),fill:t.Color.TRANSPARENT,lineWidth:1.2,pointSize:0};Ci(xe.features||[]).forEach(i=>{var s;const l=lt(i.points);if(l.length<2)return;const a=o.entities.add({polyline:{positions:l,width:e.lineWidth,material:e.stroke,depthFailMaterial:e.stroke,clampToGround:!0,zIndex:7}});a.__hyBoundaryRole="township",a.__hyTownName=((s=i.townNames)==null?void 0:s[0])||"",U.push(a)}),o.scene.requestRender()}function Ci(t=[]){const e=new Map;t.forEach(l=>{var f;const a=String(((f=l==null?void 0:l.properties)==null?void 0:f.name)||"").trim(),s=V(l==null?void 0:l.geometry);Ge(s).forEach(d=>{const S=((d==null?void 0:d[0])||[]).map($).filter(Boolean);for(let _=0;_Lt(at({},l),{townNames:Array.from(l.townNames)})).filter(l=>l.count>1&&l.townNames.length>1);return Fi(i)}function Ge(t){return t!=null&&t.coordinates?t.type==="Polygon"?[t.coordinates]:t.type==="MultiPolygon"?t.coordinates:[]:[]}function Ti(t,e){const i=Tt(t),l=Tt(e);return i{a.points.forEach(f=>{const d=Tt(f),S=e.get(d)||[];S.push(s),e.set(d,S)})});const i=new Set,l=[];return t.forEach((a,s)=>{if(i.has(s))return;i.add(s);const f=[a.points[0],a.points[1]];Ve(f,e,t,i,!0),Ve(f,e,t,i,!1),l.push({points:f,townNames:a.townNames})}),l}function Ve(t,e,i,l,a){for(;t.length;){const s=a?t[0]:t[t.length-1],f=Tt(s),d=(e.get(f)||[]).filter(L=>!l.has(L));if(d.length!==1)return;const S=d[0],_=i[S];l.add(S);const[T,E]=_.points,P=Tt(T)===f?E:T;a?t.unshift(P):t.push(P)}}function Pi(){if(!o||!u.length)return;j(ct);const t=window.Cesium;Ii(t),u.forEach(e=>{const l=(Array.isArray(e==null?void 0:e[0])?e[0]:[]).map($).filter(Boolean);if(l.length<3)return;const a=zt(e);if(a){const d=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#20EAF2").withAlpha(.026),outline:!1,perPositionHeight:!1,heightReference:t.HeightReference.CLAMP_TO_GROUND,classificationType:t.ClassificationType.BOTH}});ct.push(d)}const s=o.entities.add({polyline:{positions:lt(l),width:4.8,material:new t.PolylineGlowMaterialProperty({glowPower:.16,color:t.Color.fromCssColorString("#78FFF7").withAlpha(.48)}),depthFailMaterial:t.Color.fromCssColorString("#78FFF7").withAlpha(.32),clampToGround:!0,zIndex:8}});s.__hyBoundaryRole="county-halo";const f=o.entities.add({polyline:{positions:lt(l),width:1.9,material:t.Color.fromCssColorString("#F2FFFB").withAlpha(.98),depthFailMaterial:t.Color.fromCssColorString("#F2FFFB").withAlpha(.9),clampToGround:!0,zIndex:9}});f.__hyBoundaryRole="county-outline",ct.push(s,f)}),o.scene.requestRender()}function Ii(t){const e=Mi();let i=[];try{i=Qt.difference([e],u)}catch(l){console.warn("[cesium-map] county outside mask failed",l),i=[e]}i.forEach(l=>{const a=zt(l);if(!a)return;const s=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#020A10").withAlpha(.52),outline:!1,perPositionHeight:!1,heightReference:t.HeightReference.CLAMP_TO_GROUND,classificationType:t.ClassificationType.BOTH,zIndex:1}});ct.push(s)})}function Mi(){const t=G.west-Wn,e=G.south-Hn,i=G.east+Wn,l=G.north+Hn;return[[[t,e],[i,e],[i,l],[t,l],[t,e]]]}function Ri(t,e=!1){const i=(Array.isArray(t)?t:[t]).map(Rt=>String(Rt||"").trim()).filter(Boolean).slice(0,2),l=`v15-centered-map-badge:${e?"h":"n"}:${i.join("|")}`;if(Ct.has(l))return Ct.get(l);const a=document.createElement("canvas"),s=a.getContext("2d");if(!s)return{image:"",width:1,height:1};const f=Math.min(4,Math.max(3,window.devicePixelRatio||2)),d="700 14px Microsoft YaHei, PingFang SC, sans-serif",S="700 9px Microsoft YaHei, PingFang SC, sans-serif",_="800 14px Microsoft YaHei, PingFang SC, sans-serif",T="600 9px Microsoft YaHei, PingFang SC, sans-serif",E=Li(i[1]);s.font=d;const P=Math.ceil(s.measureText(i[0]||"").width);let L=0;E&&(s.font=S,L+=Math.ceil(s.measureText(E.metric).width),s.font=_,L+=Math.ceil(s.measureText(E.value).width),s.font=T,L+=Math.ceil(s.measureText(E.unit).width),L+=E.metric?5:0,L+=E.unit?4:0);const H=Math.min(118,Math.max(E?96:62,P+20,L+20)),A=E?40:25,Q=E?5:0,st=6,et=H+st*2,ft=A+Q+st*2;a.width=Math.ceil(et*f),a.height=Math.ceil(ft*f),a.style.width=`${et}px`,a.style.height=`${ft}px`,s.scale(f,f),s.clearRect(0,0,et,ft);const X=st,rt=st,Nt=rt+A,_t=s.createLinearGradient(X,rt,X,Nt);_t.addColorStop(0,e?"rgba(8, 58, 70, 0.9)":"rgba(6, 45, 57, 0.78)"),_t.addColorStop(.55,e?"rgba(4, 34, 46, 0.88)":"rgba(3, 29, 41, 0.76)"),_t.addColorStop(1,e?"rgba(2, 22, 32, 0.88)":"rgba(2, 18, 29, 0.78)"),s.save(),s.shadowColor="rgba(48, 220, 255, 0.13)",s.shadowBlur=6,s.fillStyle=_t,je(s,X,rt,H,A),s.fill(),s.restore(),s.save(),s.globalCompositeOperation="lighter";const Jt=s.createLinearGradient(X,rt,X+H,rt);Jt.addColorStop(0,"rgba(42, 210, 255, 0)"),Jt.addColorStop(.5,e?"rgba(98, 246, 255, 0.34)":"rgba(98, 246, 255, 0.26)"),Jt.addColorStop(1,"rgba(42, 210, 255, 0)"),s.strokeStyle=Jt,s.lineWidth=1,s.beginPath(),s.moveTo(X+10,rt+2),s.lineTo(X+H-10,rt+2),s.stroke(),s.restore(),s.save(),s.strokeStyle=e?"rgba(126, 251, 246, 0.58)":"rgba(126, 251, 246, 0.46)",s.lineWidth=.9,je(s,X+.5,rt+.5,H-1,A-1),s.stroke(),s.restore();const Mt=X+H/2;Q>0&&(s.save(),s.shadowColor="rgba(48, 220, 255, 0.2)",s.shadowBlur=5,s.beginPath(),s.moveTo(Mt-5,Nt-1),s.lineTo(Mt+5,Nt-1),s.lineTo(Mt,Nt+Q),s.closePath(),s.fillStyle=e?"rgba(4, 42, 52, 0.98)":"rgba(3, 31, 43, 0.96)",s.fill(),s.strokeStyle=e?"rgba(126, 251, 246, 0.48)":"rgba(126, 251, 246, 0.34)",s.lineWidth=.8,s.stroke(),s.restore()),s.save(),s.textAlign="center",s.textBaseline="alphabetic",s.fillStyle="rgba(255, 255, 255, 0.98)",s.strokeStyle="rgba(0, 8, 14, 0.98)",s.lineJoin="round",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,s.font=d,s.lineWidth=1.6;const or=rt+(E?12.5:A/2);if(Vt(s,i[0]||"",Mt,or),E){const Rt=rt+29.5;let kt=Mt-L/2;s.textAlign="left",s.shadowBlur=0,s.font=S,s.lineWidth=1.2,s.fillStyle="rgba(126, 251, 246, 0.9)",E.metric&&(Vt(s,E.metric,kt,Rt,{stroke:!1}),s.font=S,kt+=Math.ceil(s.measureText(E.metric).width)+5),s.font=_,s.lineWidth=1.4,s.fillStyle="#FFFFFF",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,Vt(s,E.value,kt,Rt),s.shadowBlur=0,kt+=Math.ceil(s.measureText(E.value).width)+(E.unit?4:0),E.unit&&(s.font=T,s.fillStyle="rgba(232, 252, 255, 0.76)",Vt(s,E.unit,kt,Rt+1,{stroke:!1}))}s.restore();const xn={image:a.toDataURL("image/png"),width:et,height:ft};return Ct.set(l,xn),xn}function Vt(t,e,i,l,a={}){const s=t.measureText(e),f=ki(t.font),d=Number(s.actualBoundingBoxAscent)||f*.74,S=Number(s.actualBoundingBoxDescent)||f*.18,_=l+(d-S)/2;a.stroke!==!1&&t.lineWidth>0&&t.strokeText(e,i,_),t.fillText(e,i,_)}function ki(t){const e=String(t||"").match(/(\d+(?:\.\d+)?)px/);return e?Number(e[1]):14}function Li(t){const e=String(t||"").trim();if(!e)return null;const i=e.match(/^(.+?)\s+([+-]?\d[\d,.]*)(.*)$/u);if(i)return{metric:i[1].trim(),value:i[2].trim(),unit:i[3].trim()};const l=e.match(/^(.*?)([+-]?\d[\d,.]*)([\u4e00-\u9fa5A-Za-z/%]+)?$/u);return l?{metric:l[1].trim(),value:l[2].trim(),unit:(l[3]||"").trim()}:{metric:"",value:e,unit:""}}function je(t,e,i,l,a){const s=Math.min(7,l*.12,a*.34);t.beginPath(),t.moveTo(e+s,i),t.lineTo(e+l-s,i),t.lineTo(e+l,i+s),t.lineTo(e+l,i+a-s),t.lineTo(e+l-s,i+a),t.lineTo(e+s,i+a),t.lineTo(e,i+a-s),t.lineTo(e,i+s),t.closePath()}function se(){var f;if(!o)return;j(q);const t=window.Cesium,e=c.mapRanking||{},i=Array.isArray(e.rows)?e.rows:[],l=new Map(i.map(d=>[ht(d.name),d])),a=e.showTownNames!==!1&&e.hideTownNames!==!0,s=(f=e.hideTownLabelStats)!=null?f:c.hideTownLabelStats;a&&bn.forEach(d=>{const S=l.get(ht(d.name)),_=[d.name];if(!s&&S&&e.showMapLabels!==!1){const H=e.metricLabel?`${e.metricLabel} `:"";_.push(`${H}${rr(S.value)}${S.unit||e.unit||""}`)}const T=$(d.center);if(!T)return;const E=Ri(_,!!S),P=!!(s||_.length===1),L=o.entities.add({position:t.Cartesian3.fromDegrees(T[0],T[1],18),billboard:{image:E.image,width:E.width,height:E.height,scale:1,verticalOrigin:P?t.VerticalOrigin.CENTER:t.VerticalOrigin.BOTTOM,horizontalOrigin:t.HorizontalOrigin.CENTER,pixelOffset:P?new t.Cartesian2(0,0):new t.Cartesian2(0,-4),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new t.NearFarScalar(2e4,.94,36e4,.8),distanceDisplayCondition:new t.DistanceDisplayCondition(0,42e4)}});L.__hyTownName=d.name,L.__hyRankingRow=S||null,q.push(L)}),i.filter(d=>St(d)).forEach(d=>{const S=St(d),_=o.entities.add({position:t.Cartesian3.fromDegrees(S[0],S[1],16),point:{pixelSize:9,color:t.Color.fromCssColorString("#35F3FF"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:e.showPointMarkers===!1?void 0:{text:String(d.name||""),font:"600 12px PingFang SC, Microsoft YaHei, sans-serif",fillColor:t.Color.WHITE,outlineColor:t.Color.fromCssColorString("#03121e"),outlineWidth:3,style:t.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new t.Cartesian2(0,-18),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}});_.__hyTownName=d.name,_.__hyRankingRow=d,q.push(_)}),o.scene.requestRender()}function Ai(){if(!o)return;const t=window.Cesium;x=new t.ScreenSpaceEventHandler(o.scene.canvas),x.setInputAction(e=>mt(this,null,function*(){var T,E,P;const i=vi(e.position),l=Bi(i);if(!l)return;const a=t.Cartographic.fromCartesian(l),s={lng:t.Math.toDegrees(a.longitude),lat:t.Math.toDegrees(a.latitude),height:a.height},f=Ue(i);if(O){zi(s);return}p("map-click",{lngLat:s,screen:f,overlayLayer:N.value[0]||null});const d=o.scene.pick(i),S=d==null?void 0:d.id,_=qi(s,f)||S;if(_!=null&&_.__hyFeature){le(_),p("feature-info",{feature:{id:_.__hyFeature.id,properties:_.__hyFeature.properties||{},feature:_.__hyFeature,geometry:_.__hyFeature.geometry||null,layer:_.__hyLayer,lngLat:s},screen:f});return}if(!(c.enableTownPolygonPick&&(S!=null&&S.__hyTownName)&&ce(S.__hyTownName))){if(c.enableTownPolygonPick){const L=Wi(s);if(L&&ce((T=L.properties)==null?void 0:T.name))return}if(c.enableImageryFeaturePick&&B.length){p("feature-loading",!0);try{const L=o.camera.getPickRay(i),H=yield o.imageryLayers.pickImageryLayerFeatures(L,o.scene),A=H==null?void 0:H[0];if(A){const Q=B.find(Nt=>{var _t;return Nt.imageryProvider===((_t=A.imageryLayer)==null?void 0:_t.imageryProvider)})||B[B.length-1],st=(Q==null?void 0:Q.__hyLayer)||N.value[0],et=A.properties||((E=A.data)==null?void 0:E.properties)||A.data||{},X=mi(A,et,st,s);Xe(X)||tt(),p("feature-info",{feature:{id:X.id||et.id||et.fid||A.name,properties:X.properties||et,feature:X.feature||A,geometry:X.geometry||((P=X.feature)==null?void 0:P.geometry)||null,layer:st,lngLat:s},screen:f})}else tt(),p("feature-info",{feature:null,screen:f})}catch(L){tt(),p("feature-info",{feature:null,screen:f})}finally{p("feature-loading",!1)}}}}),t.ScreenSpaceEventType.LEFT_CLICK)}function vi(t){var P,L,H,A;if(!t||!((P=o==null?void 0:o.scene)!=null&&P.canvas))return t;const e=window.Cesium,i=o.scene.canvas,l=(L=i.getBoundingClientRect)==null?void 0:L.call(i),a=Number(l==null?void 0:l.width)||0,s=Number(l==null?void 0:l.height)||0,f=Number(i.clientWidth||((H=g.value)==null?void 0:H.clientWidth))||a||1,d=Number(i.clientHeight||((A=g.value)==null?void 0:A.clientHeight))||s||1,S=Number(t.x),_=Number(t.y);if(!Number.isFinite(S)||!Number.isFinite(_)||!a||!s)return t;const T=f/a,E=d/s;return Math.abs(T-1)<.001&&Math.abs(E-1)<.001?t:new e.Cartesian2(S*T,_*E)}function Ue(t){var _,T,E,P;if(!t||!((_=o==null?void 0:o.scene)!=null&&_.canvas))return null;const e=o.scene.canvas,i=(T=e.getBoundingClientRect)==null?void 0:T.call(e),l=Number(i==null?void 0:i.width)||0,a=Number(i==null?void 0:i.height)||0,s=Number(e.clientWidth||((E=g.value)==null?void 0:E.clientWidth))||l||1,f=Number(e.clientHeight||((P=g.value)==null?void 0:P.clientHeight))||a||1,d=Number(t.x),S=Number(t.y);return!Number.isFinite(d)||!Number.isFinite(S)||!i?null:{x:(Number(i.left)||0)+d*(l/s),y:(Number(i.top)||0)+S*(a/f)}}function Bi(t){if(!o)return null;const e=o.camera.getPickRay(t);return e?o.scene.globe.pick(e,o.scene):null}function le(t){var e,i,l,a,s;tt(),M=t,t.point&&(t.__hyOriginalPointSize=t.point.pixelSize,t.point.pixelSize=18),(e=t.__hyFeature)!=null&&e.geometry&&["Polygon","MultiPolygon","LineString","MultiLineString"].includes(t.__hyFeature.geometry.type)&&jt(t.__hyFeature,{townName:t.__hyTownName||((l=(i=t.__hyFeature)==null?void 0:i.properties)==null?void 0:l.name),mode:"feature"}),(s=(a=o==null?void 0:o.scene)==null?void 0:a.requestRender)==null||s.call(a)}function tt(){var t,e;M!=null&&M.point&&M.__hyOriginalPointSize&&(M.point.pixelSize=M.__hyOriginalPointSize),M=null,j(Z),Ye(),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function jt(t,e={}){var E,P,L,H;if(!o||!(t!=null&&t.geometry))return[];const i=Oi({append:e.append===!0});if(!i)return[];const l=window.Cesium,a=e.mode==="town",s=e.highlightTone==="white"||e.mode==="white",f=e.highlightTone==="v21",d=a?"#30DCFF":s?"#FFFFFF":f?"#FFD166":"#FF2D2D",S=a?"#F2FFFF":s?"#FFFFFF":f?"#FFF1B8":"#FF2D2D",_={fill:l.Color.fromCssColorString(d).withAlpha((E=e.fillAlpha)!=null?E:a?.16:s?.035:f?.2:.16),stroke:l.Color.fromCssColorString(S).withAlpha((P=e.strokeAlpha)!=null?P:s?.9:.98),lineWidth:(L=e.lineWidth)!=null?L:a?4.2:s?3.8:f?4.4:5.2,pointSize:a?0:(H=e.pointSize)!=null?H:14},T=qe(t.geometry,t,i.entities,_);return T.forEach(A=>{var Q;A.__hyFeature=null,A.__hyLayer=null,A.__hyTownName=e.townName||((Q=t.properties)==null?void 0:Q.name)||"",A.__hySelectedOverlay=!0}),Z.push(...T),$e(i),T}function Oi(t={}){return!o||!window.Cesium?null:(t.append&&W||(Ye(),W=new window.Cesium.CustomDataSource("selected-feature-overlay"),o.dataSources.add(W),$e(W)),W)}function Ye(){var e,i;if(!(o!=null&&o.dataSources)){W=null;return}Array.from(new Set([W,...((i=(e=o.dataSources).getByName)==null?void 0:i.call(e,"selected-feature-overlay"))||[]].filter(Boolean))).forEach(l=>{try{o.dataSources.remove(l,!0)}catch(a){console.warn("[cesium-map] remove selected overlay failed",a)}}),W=null,Z=[]}function $e(t){var e,i;if(!(!(o!=null&&o.dataSources)||!t))try{if(o.dataSources.raiseToTop){o.dataSources.raiseToTop(t);return}for(;((i=(e=o.dataSources).indexOf)==null?void 0:i.call(e,t)){const S=i.add(d);return S.__hyFeature=e,s.push(S),S};if(t.type==="Point"){const d=$(t.coordinates);return!d||l.pointSize<=0||f({position:a.Cartesian3.fromDegrees(d[0],d[1]),point:{show:!0,color:l.fill,pixelSize:l.pointSize,outlineColor:l.stroke,outlineWidth:3,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),s}return t.type==="MultiPoint"?(t.coordinates.forEach(d=>{s.push(...qe({type:"Point",coordinates:d},e,i,l))}),s):t.type==="LineString"?(ae(t.coordinates,e,i,l,s),s):t.type==="MultiLineString"?(t.coordinates.forEach(d=>{ae(d,e,i,l,s)}),s):t.type==="Polygon"?(Ze(t.coordinates,e,i,l,s),s):(t.type==="MultiPolygon"&&t.coordinates.forEach(d=>{Ze(d,e,i,l,s)}),s)}function Ze(t,e,i,l,a){const s=window.Cesium,f=zt(t);if(!f)return;const d=i.add({polygon:{hierarchy:f,height:0,heightReference:s.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,clampToGround:!0,material:l.fill,outline:!1,classificationType:s.ClassificationType.BOTH,zIndex:999}});d.__hyFeature=e,a.push(d),t.forEach(S=>ae(S,e,i,l,a))}function ae(t,e,i,l,a){const s=window.Cesium,f=lt(t);if(f.length<2)return;const d=i.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,heightReference:s.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,classificationType:s.ClassificationType.BOTH,zIndex:1e3}});d.__hyFeature=e,a.push(d)}function Xe(t,e={}){var s,f,d,S,_;if(!o||!t)return!1;const i=t.properties||((s=t.feature)==null?void 0:s.properties)||(typeof t=="object"?t:{}),l=V(t.geometry||((f=t.feature)==null?void 0:f.geometry)||i.geometry||i.geom||i.wkt||t);if(!l)return!1;tt();const a={type:"Feature",id:t.id||((d=t.feature)==null?void 0:d.id)||i.id,properties:i,geometry:l};return jt(a,at({mode:"feature"},e)),(_=(S=o==null?void 0:o.scene)==null?void 0:S.requestRender)==null||_.call(S),Z.length>0}function Di(t){const e=ht(t);return e&&(xe.features||[]).find(i=>{var l;return ht((l=i==null?void 0:i.properties)==null?void 0:l.name)===e})||null}function ue(){var t,e;return((t=c.mapRanking)==null?void 0:t.scope)==="town"&&Array.isArray((e=c.mapRanking)==null?void 0:e.rows)&&c.mapRanking.rows.length>0}function Je(t){var i;if(!ue())return!1;const e=ht(t);return(((i=c.mapRanking)==null?void 0:i.rows)||[]).some(l=>ht(l.name)===e)}function Wi(t){return ue()&&(xe.features||[]).find(e=>{var l;const i=(l=e==null?void 0:e.properties)==null?void 0:l.name;return Je(i)&&cn(t,V(e==null?void 0:e.geometry))})||null}function ce(t,e={}){var l,a,s,f;if(!ue()||!Je(t))return!1;const i=Di(t);return i?(tt(),jt(i,{mode:"town",townName:((l=i.properties)==null?void 0:l.name)||t}),e.emitFeatureInfo!==!1&&p("feature-info",{feature:null}),e.emitStatus!==!1&&p("layer-status",{type:"success",text:`已选中${((a=i.properties)==null?void 0:a.name)||t}`}),(f=(s=o==null?void 0:o.scene)==null?void 0:s.requestRender)==null||f.call(s),!0):!1}function Ke(t,e={}){const i=bn.find(a=>ht(a.name)===ht(t)),l=$(i==null?void 0:i.center);return l?(e.select&&ce(t,{emitFeatureInfo:!1,emitStatus:!1}),sn(l,42e3),{screen:wt(l)}):null}function Qe(t={}){var f,d;const e=Zi(t),i=$i(S=>Xi(S,e));if(!i.length)return null;const l=Ji(i),a=Ki(l);tt(),M=i[0],M!=null&&M.point&&(M.__hyOriginalPointSize=M.point.pixelSize,M.point.pixelSize=18),a.forEach((S,_)=>{jt(S,{mode:"feature",highlightTone:e.highlightTone,append:_>0})});const s=ye(l);return s?Yt(s,.9):o.flyTo(i[0],{duration:.9,offset:Pt(18e3)}),(d=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||d.call(f),{entity:i[0],entities:i,feature:l[0]||i[0].__hyFeature,features:l,highlightFeatures:a,screen:Ut(a.length?a:l)}}function tn(t={}){const e=St(t);let i=me(l=>$t(l,t));return i?(le(i),o.flyTo(i,{duration:.9,offset:Pt(16e3)})):e&&sn(e,16e3),{feature:(i==null?void 0:i.__hyFeature)||null,screen:he(t)}}function en(t={}){const e=me(i=>$t(i,t));return e?(le(e),o.flyTo(e,{duration:.9,offset:Pt(18e3)}),{feature:e.__hyFeature,screen:Ft(e.__hyFeature)}):null}function Ft(t){var i;const e=ir(V((t==null?void 0:t.geometry)||((i=t==null?void 0:t.feature)==null?void 0:i.geometry)));return e?wt(e):null}function nn(t){return Ut([t])||Ft(t)}function Ut(t=[]){const e=[];if((Array.isArray(t)?t:[t]).forEach(a=>{var S,_;const s=(a==null?void 0:a.properties)||((S=a==null?void 0:a.feature)==null?void 0:S.properties)||{},f=V((a==null?void 0:a.geometry)||((_=a==null?void 0:a.feature)==null?void 0:_.geometry)||s.geometry||s.geom||s.wkt||s.geo||s.the_geom||s.geometryWkt||s.geometry_wkt||s.shape);if(!f){const T=Ft(a);T&&e.push(T);return}const d=[];Xt(f.coordinates,d),e.push(...d.map(wt).filter(Boolean))}),!e.length)return null;const i=e.map(a=>Number(a.x)).filter(Number.isFinite),l=e.map(a=>Number(a.y)).filter(Number.isFinite);return!i.length||!l.length?null:{x:(Math.min(...i)+Math.max(...i))/2,y:Math.min(...l)}}function he(t={}){var a,s;const e=St(t);if(e)return wt(e);const i=me(f=>$t(f,t)),l=(s=(a=i==null?void 0:i.position)==null?void 0:a.getValue)==null?void 0:s.call(a,window.Cesium.JulianDate.now());return l?toLogicalScreen(window.Cesium.SceneTransforms.wgs84ToWindowCoordinates(o.scene,l)):null}function rn(t={}){var f,d;on();const e=Qi(t.grasslands||t),i=t.highlightTone==="white",l=i?null:{fillColor:"#FF3B30",strokeColor:"#FF3B30",fillAlpha:.1,strokeAlpha:.68,lineWidth:12},a=i?{fillColor:"#F7FFFF",strokeColor:"#F7FFFF",fillAlpha:.025,strokeAlpha:.9,lineWidth:3.8}:{fillColor:"#FF2D2D",strokeColor:"#FFE1E1",fillAlpha:.3,strokeAlpha:1,lineWidth:6.2};t.locateOnly||(e.forEach(S=>{l&&xt(S,{key:"pasture-focus-glow",name:t.name||"牧场高亮"},z,l),xt(S,{key:"pasture-focus",name:t.name||"牧场高亮"},z,a)}),(Array.isArray(t.yakMarks)?t.yakMarks:[]).forEach((S,_)=>{const T=St(S);T&&xt({type:"Feature",id:S.id||_,properties:at({},S),geometry:{type:"Point",coordinates:T}},{key:"pasture-focus-yak",name:"牦牛识别"},z,{fillColor:"#FFCB45",strokeColor:"#FFF4B8",pointSize:11})}));const s=ye(e);return s&&Yt(s,.9),(d=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||d.call(f),!!e.length}function on(){var t,e;j(z),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function Hi(){tt()}function Gi(t){O=!!t,O||(k=[]),fe(),p("draw-boundary",{status:O?"drawing":"clear",pointCount:k.length,points:k})}function zi(t){k.push([t.lng,t.lat]),fe(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function Vi(){k.pop(),fe(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function ji(){if(k.length<3)return null;const t=Re(),e=[...k,k[0]],i={type:"Feature",properties:{source:"drawn"},geometry:{type:"Polygon",coordinates:[e]}};return O=!1,k=[],j(Y),xt(i,{key:"analysis-boundary",name:"分析边界"},Y,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.12,strokeAlpha:1,lineWidth:3}),p("draw-boundary",{status:"complete",pointCount:0,points:[],feature:i}),Wt(t),ke(t),i}function Ui(){var t,e;O=!1,k=[],j(Y),j(it),p("draw-boundary",{status:"clear",pointCount:0,points:[]}),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function fe(){if(!o)return;const t=window.Cesium;j(Y),k.forEach(e=>{Y.push(o.entities.add({position:t.Cartesian3.fromDegrees(e[0],e[1],12),point:{pixelSize:10,color:t.Color.fromCssColorString("#24F6C4"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}))}),k.length>1&&Y.push(o.entities.add({polyline:{positions:lt(k),width:3,material:t.Color.fromCssColorString("#24F6C4"),clampToGround:!0}})),o.scene.requestRender()}function Yi(t={}){var a,s,f,d,S,_,T;const e=((a=t.boundary)==null?void 0:a.type)==="Feature"||(s=t.boundary)!=null&&s.geometry?t.boundary:null,i=t.preserveView===!0||((f=e==null?void 0:e.properties)==null?void 0:f.source)==="drawn",l=i?Re():null;if(i&&((S=(d=o==null?void 0:o.camera)==null?void 0:d.cancelFlight)==null||S.call(d)),j(it),e&&xt(e,{key:"analysis-result-boundary"},it,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.1,lineWidth:3}),(Array.isArray(t.matches)?t.matches:[]).forEach(E=>{const P=(E==null?void 0:E.type)==="Feature"?E:(E==null?void 0:E.feature)||null;P&&xt(P,{key:"analysis-result-feature"},it,{fillColor:"#30DCFF",strokeColor:"#C9FBFF",fillAlpha:.1,lineWidth:2.6})}),i)Wt(l),ke(l);else{const E=[e,...t.matches||[]].filter(Boolean),P=ye(E);P&&Yt(P,.9)}(T=(_=o==null?void 0:o.scene)==null?void 0:_.requestRender)==null||T.call(_)}function sn(t,e=22e3,i=.9){if(!o||!t)return;const l=window.Cesium,a=l.Cartesian3.fromDegrees(t[0],t[1],re());o.camera.flyToBoundingSphere(new l.BoundingSphere(a,1),{offset:Pt(e),duration:i})}function Yt(t,e=.9){if(!o||!t)return;const i=window.Cesium,l=[(Number(t.west)+Number(t.east))/2,(Number(t.south)+Number(t.north))/2];if(!l.every(Number.isFinite))return;const a=Math.max(Math.abs(Number(t.east)-Number(t.west)),Math.abs(Number(t.north)-Number(t.south))),s=Math.max(18e3,Math.min(16e4,a*135e3)),f=i.Cartesian3.fromDegrees(l[0],l[1],re());o.camera.flyToBoundingSphere(new i.BoundingSphere(f,1),{offset:Pt(s),duration:e})}function ln(t){if(!o||!t)return;const e=t.mapView||(t.cameraPosition?{cameraPosition:t.cameraPosition}:null);if(!e)return;const i=window.Cesium,l=Number.isFinite(Number(e.duration))?Number(e.duration):.9,a=$(e.targetLngLat);if(a){const s=Ae(c.initialZoom),f=Number.isFinite(Number(e.distanceScale))?Number(e.distanceScale):1,d=Math.max(18e3,Math.min(56e4,s*f)),S=Number.isFinite(Number(e.targetHeight))?Number(e.targetHeight):re(),_=Number.isFinite(Number(e.heading))?Number(e.heading):On,T=Number.isFinite(Number(e.pitch))?Number(e.pitch):Dn,E=i.Cartesian3.fromDegrees(a[0],a[1],S);o.camera.flyToBoundingSphere(new i.BoundingSphere(E,1),{offset:new i.HeadingPitchRange(i.Math.toRadians(_),i.Math.toRadians(T),d),duration:l});return}e.bounds&&Yt(e.bounds,l)}function Pt(t){const e=window.Cesium;return new e.HeadingPitchRange(e.Math.toRadians(On),e.Math.toRadians(Dn),t)}function wt(t){if(!o||!t)return null;const e=window.Cesium,i=e.Cartesian3.fromDegrees(t[0],t[1],16);return Ue(e.SceneTransforms.wgs84ToWindowCoordinates(o.scene,i))}function me(t){return[...D,...z].find(e=>e.__hyFeature&&t(e.__hyFeature))||null}function $i(t){return[...D,...z].filter(e=>e.__hyFeature&&t(e.__hyFeature))}function qi(t,e){if(!Number.isFinite(t==null?void 0:t.lng)||!Number.isFinite(t==null?void 0:t.lat))return null;const i=an(D),l=i.map(s=>{var f;return{entity:s,geometry:V((f=s.__hyFeature)==null?void 0:f.geometry)}}).filter(s=>s.geometry&&cn(t,s.geometry)).sort((s,f)=>hn(s.geometry)-hn(f.geometry));if(l.length)return l[0].entity;const a=i.map(s=>{var f;return{entity:s,distance:tr(V((f=s.__hyFeature)==null?void 0:f.geometry),e)}}).filter(s=>Number.isFinite(s.distance)).sort((s,f)=>s.distance-f.distance)[0];return(a==null?void 0:a.distance)<=18?a.entity:null}function $t(t,e={}){const i=(t==null?void 0:t.properties)||{},l=[e.id,e.key,e.featureId,e.projectId].filter(_=>_!=null&&_!=="").map(String),a=[t.id,i.id,i.key,i.feature_id,i.project_id].filter(_=>_!=null&&_!=="").map(String);if(l.some(_=>a.includes(_)))return!0;const s=[e.name,e.fullName,e.projectName].filter(Boolean).map(String),f=[i.name,i.fullName,i.project_name,i.projectName].filter(Boolean).map(String);if(s.some(_=>f.includes(_)))return!0;const d=St(e),S=St(Lt(at({},i),{geometry:t.geometry}));return!!(d&&S&&Math.abs(d[0]-S[0])<2e-5&&Math.abs(d[1]-S[1])<2e-5)}function Zi(t={}){return t&&typeof t=="object"?t:{name:t,projectName:t,project_name:t}}function Xi(t,e={}){if($t(t,e))return!0;const i=(t==null?void 0:t.properties)||{},l=qt([e.id,e.key,e.featureId,e.projectId,e.project_id]),a=qt([t==null?void 0:t.id,i.id,i.key,i.feature_id,i.project_id,i.gid]);if(l.some(d=>a.includes(d)))return!0;const s=qt([e.name,e.fullName,e.projectName,e.project_name,e.title]),f=qt([i.name,i.fullName,i.project_name,i.projectName,i.title]);return s.some(d=>f.includes(d))}function qt(t=[]){const e=[];return t.forEach(i=>{if(i==null||i==="")return;const l=String(i).trim();if(!l)return;e.push(l);const a=l.replace(/\s+/g,"");a&&a!==l&&e.push(a)}),Array.from(new Set(e))}function an(t=[]){const e=new Set;return t.filter(i=>{const l=i==null?void 0:i.__hyFeature;return!l||e.has(l)?!1:(e.add(l),!0)})}function Ji(t=[]){return an(t).map(e=>e.__hyFeature).filter(Boolean)}function Ki(t=[]){const e=t.filter(l=>{var s;const a=String(((s=V(l==null?void 0:l.geometry))==null?void 0:s.type)||"");return a.includes("Polygon")||a.includes("LineString")}),i=e.filter(l=>{var a;return((a=l==null?void 0:l.properties)==null?void 0:a.feature_role)==="工程范围"});return i.length?i:e}function Qi(t){return(Array.isArray(t)?t:(t==null?void 0:t.grasslands)||(t==null?void 0:t.features)||(t==null?void 0:t.rows)||(t==null?void 0:t.list)||(t?[t]:[])).map((i,l)=>{var s,f;if((i==null?void 0:i.type)==="Feature")return i;const a=V(i==null?void 0:i.geometry)||pe(Oe(i));return a?{type:"Feature",id:(f=(s=i==null?void 0:i.id)!=null?s:i==null?void 0:i.grasslandId)!=null?f:l,properties:at({},i),geometry:a}:null}).filter(Boolean)}function V(t){if(!t)return null;if(t.type==="Feature")return V(t.geometry);if(t.type&&Array.isArray(t.coordinates))return t;if(typeof t=="string"){const e=t.trim();if(!e)return null;if(e.startsWith("{")||e.startsWith("["))try{return V(JSON.parse(e))}catch(i){return null}return pe(e)}return null}function pe(t){const i=String(t||"").trim().replace(/^SRID=\d+;/i,"").match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*(\(.+\))$/i);if(!i)return null;const l=i[1].toUpperCase(),a=i[2];return l==="POINT"?{type:"Point",coordinates:ge(a)}:l==="MULTIPOINT"?{type:"MultiPoint",coordinates:Zt(a).map(ge).filter(Boolean)}:l==="LINESTRING"?{type:"LineString",coordinates:de(a)}:l==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Zt(a).map(de).filter(s=>s.length)}:l==="POLYGON"?{type:"Polygon",coordinates:un(a)}:l==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Zt(a).map(un).filter(s=>s.length)}:null}function ge(t){const e=String(t||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return e.length===2&&e.every(Number.isFinite)?e:null}function de(t){return String(t||"").replace(/^\(+|\)+$/g,"").split(",").map(ge).filter(Boolean)}function un(t){return Zt(t).map(de).filter(e=>e.length>=3)}function Zt(t){const e=String(t||"").trim(),i=e.startsWith("(")&&e.endsWith(")")?e.slice(1,-1):e,l=[];let a=0,s=-1;return Array.from(i).forEach((f,d)=>{f==="("?(a===0&&(s=d),a+=1):f===")"&&(a-=1,a===0&&s>=0&&(l.push(i.slice(s,d+1)),s=-1))}),l.length?l:[i]}function lt(t=[]){const e=window.Cesium;return t.map($).filter(Boolean).map(i=>e.Cartesian3.fromDegrees(i[0],i[1],8))}function $(t){if(!Array.isArray(t)||t.length<2)return null;const e=Number(t[0]),i=Number(t[1]);return Number.isFinite(e)&&Number.isFinite(i)?[e,i]:null}function St(t={}){const e=V(t.geometry);return(e==null?void 0:e.type)==="Point"?$(e.coordinates):[[t.longitude,t.latitude],[t.lng,t.lat],[t.lon,t.lat],[t.x,t.y],t.point,t.center,t.centroid,t.coordinates].map($).find(Boolean)||null}function cn(t,e){return!t||!(e!=null&&e.coordinates)?!1:e.type==="Polygon"?gn(t,e.coordinates):e.type==="MultiPolygon"?e.coordinates.some(i=>gn(t,i)):!1}function hn(t){return t!=null&&t.coordinates?t.type==="Polygon"?fn(t.coordinates):t.type==="MultiPolygon"?t.coordinates.reduce((e,i)=>e+fn(i),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}function fn(t=[]){const e=t[0]||[];if(e.length<3)return Number.POSITIVE_INFINITY;let i=0;for(let l=0;lmn(i,e))):t.type==="LineString"?pn(t.coordinates,e):t.type==="MultiLineString"?Math.min(...t.coordinates.map(i=>pn(i,e))):Number.POSITIVE_INFINITY}function mn(t,e){const i=wt($(t));return i?Math.hypot(Number(i.x)-Number(e.x),Number(i.y)-Number(e.y)):Number.POSITIVE_INFINITY}function pn(t=[],e){if(!Array.isArray(t)||t.length<2)return Number.POSITIVE_INFINITY;let i=Number.POSITIVE_INFINITY;for(let l=1;ldn(t,i))}function dn(t,e=[]){if(e.length<3)return!1;const i=Number(t.lng),l=Number(t.lat);if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=!1;for(let s=0,f=e.length-1;sl!=P>l&&i<(E-_)*(l-T)/(P-T)+_&&(a=!a)}return a}function nr(t,e,i,l,a,s){const f=(t-i)*(s-l)-(e-l)*(a-i);return Math.abs(f)>1e-10?!1:(t-i)*(t-a)+(e-l)*(e-s)<=1e-10}function ir(t){if(!t)return null;if(t.type==="Point")return $(t.coordinates);const e=[];return Xt(t.coordinates,e),e.length?[e.reduce((i,l)=>i+l[0],0)/e.length,e.reduce((i,l)=>i+l[1],0)/e.length]:null}function Xt(t,e){const i=$(t);if(i&&!Array.isArray(t[0])){e.push(i);return}Array.isArray(t)&&t.forEach(l=>Xt(l,e))}function ye(t=[]){const e=[];if(t.forEach(f=>{var S;const d=V((f==null?void 0:f.geometry)||((S=f==null?void 0:f.feature)==null?void 0:S.geometry)||f);d&&Xt(d.coordinates,e)}),!e.length)return null;const i=e.map(f=>f[0]),l=e.map(f=>f[1]),a=Math.max(.006,(Math.max(...i)-Math.min(...i))*.18),s=Math.max(.006,(Math.max(...l)-Math.min(...l))*.18);return{west:Math.max(G.west,Math.min(...i)-a),south:Math.max(G.south,Math.min(...l)-s),east:Math.min(G.east,Math.max(...i)+a),north:Math.min(G.north,Math.max(...l)+s)}}function j(t){if(!o){t.length=0;return}t.splice(0).forEach(e=>o.entities.remove(e))}function yn(){B.splice(0).forEach(t=>{var e,i;return(i=(e=o==null?void 0:o.imageryLayers)==null?void 0:e.remove)==null?void 0:i.call(e,t,!0)}),j(D),tt()}function It(){var t,e,i;I+=1,(t=b==null?void 0:b.disconnect)==null||t.call(b),b=null,F==null||F(),F=null,C==null||C(),C=null,(e=x==null?void 0:x.destroy)==null||e.call(x),x=null,yn(),j(ie),j(ct),j(U),j(q),j(z),j(Y),j(it),o&&!((i=o.isDestroyed)!=null&&i.call(o))&&o.destroy(),o=null,v=null,w.value=null,y.value&&y.value.replaceChildren()}function bt(t,e=1){const i=Number(t);return Number.isFinite(i)?Math.max(0,Math.min(1,i)):e}function ht(t){return String(t||"").trim().replace(/(镇|乡)$/,"")}function rr(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?String(e):String(Number(e.toFixed(2))):"--"}return n({loadMap:Zn,hasMap:Xn,play:Jn,resume:Me,pause:Kn,refreshView:Dt,resetView:Qn,focusLayerMapView:ti,destroyMap:It,highlightFeature:Xe,clearSelectedFeature:tt,clearFloatingOverlays:Hi,focusProject:Qe,focusPasture:rn,clearPastureFocus:on,focusTown:Ke,focusYakIndustryPoint:tn,focusVectorFeature:en,getVectorFeatureAnchorScreen:nn,getVectorFeaturesAnchorScreen:Ut,getVectorFeatureScreen:Ft,getYakIndustryPointScreen:he,setBoundaryDrawing:Gi,finishBoundaryDrawing:ji,undoBoundaryPoint:Vi,clearAnalysisBoundary:Ui,showAnalysisResult:Yi,canvasMap:w}),(t,e)=>(gr(),dr("div",{ref_key:"containerRef",ref:g,class:"cesium-map"},[yr("div",{ref_key:"viewerRef",ref:y,class:"cesium-map__viewer"},null,512)],512))}},uo=hr(no,[["__scopeId","data-v-19fc4a4c"]]);export{ao as C,lo as H,uo as M,Yr as a,$r as g}; diff --git a/docs/assets/index-9f1a597b-1784132466083.js b/docs/assets/index-29c113f9-1784132792831.js similarity index 95% rename from docs/assets/index-9f1a597b-1784132466083.js rename to docs/assets/index-29c113f9-1784132792831.js index 11a7d7d..90ace74 100644 --- a/docs/assets/index-9f1a597b-1784132466083.js +++ b/docs/assets/index-29c113f9-1784132792831.js @@ -1 +1 @@ -var Ut=Object.defineProperty,Yt=Object.defineProperties;var Qt=Object.getOwnPropertyDescriptors;var Ue=Object.getOwnPropertySymbols;var Jt=Object.prototype.hasOwnProperty,Xt=Object.prototype.propertyIsEnumerable;var Ye=(l,a,r)=>a in l?Ut(l,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[a]=r,I=(l,a)=>{for(var r in a||(a={}))Jt.call(a,r)&&Ye(l,r,a[r]);if(Ue)for(var r of Ue(a))Xt.call(a,r)&&Ye(l,r,a[r]);return l},B=(l,a)=>Yt(l,Qt(a));var V=(l,a,r)=>new Promise((k,T)=>{var f=y=>{try{w(r.next(y))}catch($){T($)}},u=y=>{try{w(r.throw(y))}catch($){T($)}},w=y=>y.done?k(y.value):Promise.resolve(y.value).then(f,u);w((r=r.apply(l,a)).next())});import{g as Qe}from"./index-e9f36657-1784132466083.js";import{A as Zt}from"./assets-8617da22-1784132466083.js";/* empty css */import{f as en,c as Je,b as tn,g as Xe}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{g as nn,b as sn,a as an,c as rn}from"./openApi-d69f269f-1784132466083.js";import{c as ln,F as un,g as on,a as cn}from"./featurePanelLayout-62f917d3-1784132466083.js";import{q as Ze,r as dn,s as vn}from"./screen2Standard-483e466b-1784132466083.js";import{M as fn}from"./index-36438a28-1784132466083.js";import{_ as gn}from"./TopicSwitcher-7006d8b4-1784132466083.js";import{_ as mn}from"./LayerPanel-5b73c261-1784132466083.js";import{a as et,_ as hn}from"./FeatureInfoPanel-3970d641-1784132466083.js";import{_ as wn,g as c,o as _,c as S,a as b,t as Te,F as Ne,y as xe,n as de,J as ve,d as m,q as yn,h as bn,w as q,A as ee,b as G,C as tt,x as nt,u as Se,j as ce,z as kn}from"./index-1784132466083.js";import{_ as st}from"./index-fe70e5de-1784132466083.js";import"./index-ed255eef-1784132466083.js";import"./geoserver-b1a62bfb-1784132466083.js";const _n="/jsyApi/api/map/ndvi_timeline";function pn(){return V(this,null,function*(){const l=yield fetch(_n,{credentials:"include",headers:{Accept:"application/json"}});if(!l.ok){const k=new Error(`HTTP ${l.status}`);throw k.status=l.status,k}const a=yield l.json().catch(()=>({}));if((a==null?void 0:a.code)===401||(a==null?void 0:a.code)==="401"){const k=new Error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"NDVI 时间轴未授权");throw k.status=401,k}const r=Array.isArray(a==null?void 0:a.data)?a.data:Array.isArray(a)?a:[];return Ln(r)})}function Ln(l=[]){const a=new Set;return l.map((r,k)=>{const T=Sn(at(r,["url","layerName","layer_name","layer","name"]));if(!T)return null;const f=at(r,["date","month","time","label"])||T,u=Tn(f);return{key:`${T}-${f||k}`,label:u,date:String(f),layerName:T,source:r}}).filter(Boolean).filter(r=>a.has(r.key)?!1:(a.add(r.key),!0))}function at(l,a){for(const r of a)if((l==null?void 0:l[r])!==void 0&&(l==null?void 0:l[r])!==null&&(l==null?void 0:l[r])!=="")return l[r]}function Sn(l){const a=String(l||"").trim();return a?a.includes(":")||/^https?:\/\//i.test(a)?a:`ne:${a}`:""}function Tn(l){const a=String(l||"").trim();if(!a)return"";const r=a.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return r?`${r[1]}.${String(Number(r[2])).padStart(2,"0")}`:a}const Nn={class:"grassland-ndvi-timeline-head"},xn={key:0,class:"grassland-ndvi-timeline-state"},Pn={key:1,class:"grassland-ndvi-timeline-state"},Cn={key:2,class:"grassland-ndvi-timeline-body"},$n=["aria-checked","title","onClick"],Mn={class:"grassland-ndvi-timeline-label"},Fn=42,An=28,In={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(l,{emit:a}){const r=l,k=a,T=c(()=>r.items.findIndex(d=>d.key===r.modelValue)),f=c(()=>T.value===-1?Math.max(0,r.items.length-1):T.value),u=c(()=>r.items[f.value]||null),w=c(()=>r.loading?"加载中":"未选择"),y=c(()=>r.items.length>7),$=c(()=>y.value?An:Fn),te=c(()=>U(f.value)),ne=c(()=>R(f.value));function H(d){if(!r.items.length)return;const v=Math.min(r.items.length-1,Math.max(0,f.value+d));k("update:modelValue",r.items[v].key)}function se(d){!d||d.key===r.modelValue||k("update:modelValue",d.key)}function K(d){return!r.items.length||d<0?0:r.items.length===1?.5:d/(r.items.length-1)}function U(d){const v=K(d),P=L(v*100),h=$.value*(1-v*2);return`calc(${P}% ${h<0?"-":"+"} ${L(Math.abs(h))}px)`}function R(d){const v=K(d);return v<=0?"0px":`calc(${L(v*100)}% - ${L($.value*2*v)}px)`}function L(d){return Number(d.toFixed(4)).toString()}return(d,v)=>{var P;return _(),S("div",{class:de(["grassland-ndvi-timeline",{"is-dense":y.value}])},[b("div",Nn,[v[2]||(v[2]=b("span",null,"草地健康/退化",-1)),b("strong",null,Te(((P=u.value)==null?void 0:P.label)||w.value),1)]),l.loading?(_(),S("div",xn,"加载月份数据")):l.items.length?(_(),S("div",Cn,[b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:v[0]||(v[0]=h=>H(-1))},"‹"),b("div",{class:"grassland-ndvi-timeline-track",style:ve({"--timeline-active-left":te.value,"--timeline-fill-width":ne.value,"--timeline-edge-offset":`${$.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[v[4]||(v[4]=b("div",{class:"grassland-ndvi-timeline-line"},null,-1)),v[5]||(v[5]=b("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),v[6]||(v[6]=b("div",{class:"grassland-ndvi-timeline-thumb"},[b("i")],-1)),(_(!0),S(Ne,null,xe(l.items,(h,j)=>{var D,N;return _(),S("button",{key:h.key,class:de(["grassland-ndvi-timeline-mark",{"is-active":h.key===((D=u.value)==null?void 0:D.key),"is-past":j<=f.value,"is-staggered":y.value&&j%2===1}]),type:"button",role:"radio","aria-checked":h.key===((N=u.value)==null?void 0:N.key),style:ve({left:U(j)}),title:h.date,onClick:Y=>se(h)},[v[3]||(v[3]=b("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),b("span",Mn,Te(h.label),1)],14,$n)}),128))],4),b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:v[1]||(v[1]=h=>H(1))},"›")])):(_(),S("div",Pn,"暂无月份数据"))],2)}}},Vn=wn(In,[["__scopeId","data-v-86212a95"]]),En={class:"forest-grass-wet"},Bn={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},qn={class:"fgw-left"},Gn={class:"fgw-side-stack is-left"},Rn={class:"fgw-right"},jn={class:"fgw-side-stack is-right"},Dn={key:1,class:"fgw-ndvi-timeline"},zn={class:"fgw-bottom-topic"},Wn={key:0,class:"loading"},On={class:"loading-progress"},Hn={class:"value"},os={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(l,{expose:a,emit:r}){const k=l,T=r,f=m(null),u=m(en[0].key),w=m(""),y=m([]),$=m([]),te=m("idle"),ne=m(!1),H=m({title:"业务统计",rows:[]}),se=m({title:"业务统计",rows:[]}),K=m([]),U=m([]),R=m(null),L=m(""),d=m(null),v=m(!1),P=m(!1),h=m(null),j=m(0),D=m(k.showLoading),N=m([]),Y=m("idle"),M=m(""),E=m({type:"idle",text:"等待 GeoServer 图层加载"});let Q=null,C=!1,fe=!1,z=!1,F=null,Pe=0,Ce=0,ge=0,W=0,ae=!1,me=!1;const it={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},rt=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),lt=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],ut=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),ot=c(()=>Je(u.value)),ct=c(()=>tn(u.value)),ie=c(()=>lt.map(e=>pt(e)).filter(Boolean)),re=c(()=>u.value==="overview"?ie.value:ct.value),$e=c({get(){return u.value==="overview"?y.value:w.value},set(e){if(u.value==="overview"){y.value=Array.isArray(e)?e.map(String).filter(Boolean):[];return}w.value=String(e||"")}}),J=c(()=>w.value?Xe(u.value,w.value):null),X=c(()=>u.value==="grassland"&&w.value==="grassland-health"),dt=c(()=>X.value),vt=c(()=>N.value.find(e=>e.key===M.value)||null),O=c(()=>{var e;return(((e=J.value)==null?void 0:e.legends)||[]).find(t=>t.key===L.value)||null}),ft=c(()=>ie.value.flatMap(e=>e.legends||[])),he=c(()=>{var e;return u.value==="overview"?ft.value:((e=J.value)==null?void 0:e.legends)||[]}),gt=c(()=>re.value.length>0),Me=c(()=>re.value.length<=6&&he.value.length<=8),Fe=c(()=>{if(!Me.value)return 430;const e=Math.max(1,re.value.length),t=Math.max(1,he.value.length),n=e*32,s=30+t*28;return Math.max(272,Math.min(520,96+n+s))}),mt=c(()=>{var s;if(u.value==="overview"){const i=new Set(y.value),o=ie.value.filter(g=>i.has(g.key));return Lt(o)}const e=J.value;if(!e)return null;let t=(s=O.value)!=null&&s.cqlFilter?B(I({},e),{cqlFilter:O.value.cqlFilter,activeLegend:O.value,name:O.value.name||e.name}):e;const n=vt.value;return X.value&&(n!=null&&n.layerName)&&(t=B(I({},t),{layerName:n.layerName,name:`${e.name} ${n.label}`,timelineDate:n.label,timelineItem:n})),t}),Ae=m(typeof window=="undefined"?1080:window.innerHeight),Ie=Ze.sideCardWidth;c(()=>Ze.sideCardGap);const Ve=c(()=>dn(Ae.value)),ht=c(()=>vn(Ve.value,2)),we=c(()=>!!h.value),wt=un,Ee=c(()=>ln({point:h.value?_t(h.value):null,rowCount:d.value?pe(d.value):0,loading:P.value,empty:v.value||!d.value})),yt=c(()=>Ee.value.height),bt=c(()=>Ee.value.style),kt=c(()=>{var n,s,i,o,g,A,p;const e=((s=(n=d.value)==null?void 0:n.layer)==null?void 0:s.overviewTopicKey)||((o=(i=d.value)==null?void 0:i.layer)==null?void 0:o.topicKey)||u.value;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情"}[e]||`${((A=(g=d.value)==null?void 0:g.layer)==null?void 0:A.name)||((p=ot.value)==null?void 0:p.name)||"资源"}详情`});function _t(e){const t=document.querySelector(".forest-grass-wet"),n=t==null?void 0:t.getBoundingClientRect();return!(n!=null&&n.width)||!(n!=null&&n.height)?e:{x:(e.x-n.left)/n.width*1920,y:(e.y-n.top)/n.height*1080}}function ye(){Ae.value=typeof window=="undefined"?1080:window.innerHeight}function pt({topicKey:e,layerKey:t,name:n,legendName:s}){var g;const i=Xe(e,t);if(!i||i.key!==t)return null;const o=((g=i.legends)==null?void 0:g[0])||{};return B(I({},i),{name:n,overviewTopicKey:e,legends:[B(I({},o),{key:`overview-${t}`,name:s,selectable:!1})]})}function Lt(e=[]){const t=e.filter(Boolean);if(!t.length)return null;const[n,...s]=t;return B(I({},n),{overlayLayers:s})}yn(()=>{ye(),window.addEventListener("resize",ye),document.addEventListener("pointerdown",Oe,!0),St(),ke(u.value,""),le(u.value,"")}),bn(()=>{C=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",ye),document.removeEventListener("pointerdown",Oe,!0)}),q(u,e=>{ae=!0,L.value="",w.value="",e==="overview"&&(y.value=[]),x(),E.value={type:"idle",text:"等待 GeoServer 图层加载"},ke(e,""),le(e,"",null),ee(()=>{ae=!1})}),q(w,()=>{ae||(me=!0,L.value="",x(),E.value={type:w.value?"loading":"idle",text:w.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},u.value!=="woodland"&&ke(u.value,w.value),le(u.value,w.value,null),ee(()=>{me=!1}))}),q(y,()=>{u.value==="overview"&&(L.value="",x(),E.value={type:y.value.length?"loading":"idle",text:y.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},R.value=We("overview",y.value.join(",")))},{deep:!0}),q(L,()=>{ae||me||(x(),le(u.value,w.value,O.value))}),q(X,e=>{if(e){xt();return}M.value=""}),q(M,()=>{X.value&&x()}),q(()=>k.active,e=>{var t,n,s,i;f.value&&(e?(be(),(n=(t=f.value).resume)==null||n.call(t)):(i=(s=f.value).pause)==null||i.call(s))});function St(){var n;Q=new Zt;const e={progress:0};Q.instance.on("onProgress",(s,i,o)=>{const g=Math.floor(i/o*100);Qe.to(e,{progress:g,onUpdate:()=>{j.value=Math.floor(e.progress)}})});const t=()=>{C||fe||(fe=!0,be())};Q.instance.on("onLoad",t),(n=Q.ready)==null||n.then(t).catch(()=>{C||(E.value={type:"error",text:"地图资源加载失败"})})}function be(){C||!k.active||!fe||z||(z=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Be()},600))}function Be(e=0){return V(this,null,function*(){var n,s,i,o,g;if(C)return;if(!k.active){z=!1;return}if(yield ee(),!k.active){z=!1;return}if(!!((s=(n=f.value)==null?void 0:n.loadMap)!=null&&s.call(n,Q)||(o=(i=f.value)==null?void 0:i.hasMap)!=null&&o.call(i))){yield Kt(),yield ee(),(g=f.value)==null||g.play();return}if(e<24){window.setTimeout(()=>Be(e+1),120);return}z=!1})}function Tt(){F&&(window.clearTimeout(F),F=null)}function qe(){var e,t,n,s;(t=(e=f.value)==null?void 0:e.resume)==null||t.call(e),(s=(n=f.value)==null?void 0:n.refreshView)==null||s.call(n)}function Nt(){var e,t;if(x(),E.value={type:"loading",text:"地图正在复位"},(t=(e=f.value)==null?void 0:e.hasMap)!=null&&t.call(e)){qe(),E.value={type:"success",text:"地图已复位"};return}Tt(),z=!1,ee(()=>{be()})}a({refreshMapView:qe,resetMap:Nt});function ke(n){return V(this,arguments,function*(e,t=w.value){const s=e==="woodland"?"":t,i=++Ce;ne.value=!0,te.value="loading";const o=yield nn(e,s);C||i!==Ce||e===u.value&&(e!=="woodland"&&(s||"")!==(w.value||"")||Pt(o,e))})}function xt(e=!1){return V(this,null,function*(){if(!X.value)return;if(!e&&N.value.length){Ge();return}const t=++ge;Y.value="loading";try{const n=yield pn();if(C||t!==ge)return;N.value=n,Y.value=n.length?"success":"empty",Ge()}catch(n){if(C||t!==ge)return;N.value=[],M.value="",Y.value="error"}})}function Ge(){if(!N.value.length){M.value="";return}N.value.some(t=>t.key===M.value)||(M.value=N.value[N.value.length-1].key)}function Pt(e,t){var s,i,o;const n=Ct(e);$.value=n.core||[],H.value=n.left||{title:"业务统计",rows:[]},se.value=n.right||{title:"业务统计",rows:[]},K.value=(s=n.leftPanels)!=null&&s.length?n.leftPanels:[H.value],U.value=(i=n.rightPanels)!=null&&i.length?n.rightPanels:[se.value],te.value=n.status,ne.value=!1,T("topic-stats",{topicKey:t,topicName:Je(t).name,items:((o=n.top)!=null&&o.length?n.top:n.core||[]).slice(0,4)})}function Ct(e){return e||{}}function Re(e,t){return`${u.value}-${t}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function _e(e){var n;const t=((n=e==null?void 0:e.rows)==null?void 0:n.length)||0;return(e==null?void 0:e.span)===1?!1:(e==null?void 0:e.span)===2?!0:(e==null?void 0:e.type)==="spotlight"||(e==null?void 0:e.type)==="metric"||(e==null?void 0:e.type)==="column"&&t<=5?!1:(e==null?void 0:e.type)==="rank"&&t>4||(e==null?void 0:e.type)==="split"&&t>4||(e==null?void 0:e.type)==="donut"&&t>5||(e==null?void 0:e.type)==="structure"&&t>4||(e==null?void 0:e.type)==="bar"&&t>4||(e==null?void 0:e.type)==="line"&&t>6}function je(e){return _e(e)?ht.value:Ve.value}function pe(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(s=>De(s,t[s])).length}function De(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!ut.has(String(e||"").toLowerCase())}function $t(){if(u.value==="overview"){const e=new Set(y.value);return ie.value.filter(t=>e.has(t.key)).slice().reverse()}return J.value?[J.value]:[]}function Mt(e={}){const t=String(e.overviewTopicKey||u.value||"").toLowerCase(),n=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return n.includes("basic-grassland")||n.includes("t_basic_grassland")?"basicGrassland":t==="woodland"||n.includes("woodland")||n.includes("t_woodland")?"woodland":t==="wetland"||n.includes("wetland")||n.includes("shidi")?"wetland":t==="grassland"||n.includes("grassland")||n.includes("caodi")?"grassland":""}function Ft(e={}){const t=ze(e.lng),n=ze(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function ze(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function At(){return V(this,arguments,function*(e={}){var g,A,p,Z,ue,He;const t=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lng),n=Number((A=e==null?void 0:e.lngLat)==null?void 0:A.lat),s=$t();if(!Number.isFinite(t)||!Number.isFinite(n)||!s.length){x();return}const i=++W,o=e.screen||{x:960,y:540};h.value=null,d.value=null,v.value=!1,P.value=!0,(Z=(p=f.value)==null?void 0:p.clearSelectedFeature)==null||Z.call(p);try{for(const Ke of s){const oe=yield It(Ke,{lng:t,lat:n});if(i!==W||C)return;if(oe){d.value=oe,h.value=Le(oe,o),v.value=!1,(He=(ue=f.value)==null?void 0:ue.highlightFeature)==null||He.call(ue,oe,{highlightTone:"v21"});return}}i===W&&x()}catch(Ke){i===W&&x()}finally{i===W&&(P.value=!1)}})}function It(e,t){return V(this,null,function*(){const n=Mt(e);if(!n)return null;const s=Ft(t);let i=null;n==="grassland"?i=yield on({wkt:s}):n==="wetland"?i=yield cn({wkt:s}):n==="woodland"?i=yield an(s):n==="basicGrassland"&&(i=yield rn(s));const o=Vt(i,n);if(!Bt(o))return null;const g=Gt(o,e,t,n);return pe(g)>0?g:null})}function Vt(e,t){var s,i,o,g,A;const n=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,e==null?void 0:e.basicGrassland,(s=e==null?void 0:e.data)==null?void 0:s[t],(i=e==null?void 0:e.data)==null?void 0:i.grassland,(o=e==null?void 0:e.data)==null?void 0:o.wetland,(g=e==null?void 0:e.data)==null?void 0:g.woodland,(A=e==null?void 0:e.data)==null?void 0:A.basicGrassland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const p of n){const Z=Et(p);if(Z)return Z}return null}function Et(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Bt(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(qt)?!0:Object.keys(e).some(t=>De(t,e[t]))}function qt(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Gt(e,t,n,s){const i=jt(e),o=Rt(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${s}-${n.lng}-${n.lat}`,properties:i,feature:{type:"Feature",properties:i,geometry:o},geometry:o,layer:t,lngLat:n}}function Rt(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function jt(e={}){const t=I({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(s=>{const i=s==null?void 0:s.value;if(i==null||i==="")return;const o=it[String((s==null?void 0:s.title)||"").trim()],g=String((s==null?void 0:s.field)||"").trim();[g,Dt(g),o].filter(Boolean).forEach(p=>{(t[p]===void 0||t[p]===null||t[p]==="")&&(t[p]=i)})}),t}function Dt(e){return String(e||"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function le(s,i){return V(this,arguments,function*(e,t,n=O.value){const o=++Pe;if(!t||!zt(t,n)){R.value=We(e,t);return}const g=yield sn(e,t,n);C||o!==Pe||e!==u.value||t!==w.value||((n==null?void 0:n.key)||"")===L.value&&(R.value=B(I({},g),{hideTownLabelStats:!0}))})}function zt(e,t=null){return!!(t!=null&&t.key)||rt.has(e)}function We(e,t){return{status:"disabled",topicKey:e,layerKey:t,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function Wt(e){var n,s;const t=(s=(n=e==null?void 0:e.feature)!=null?n:e)!=null?s:null;if(!t||pe(t)<=0){x();return}d.value=t,v.value=!1,h.value=Le(t,(e==null?void 0:e.screen)||h.value)}function Le(e,t=null){var n,s,i,o;return((s=(n=f.value)==null?void 0:n.getVectorFeatureAnchorScreen)==null?void 0:s.call(n,e))||((o=(i=f.value)==null?void 0:i.getVectorFeatureScreen)==null?void 0:o.call(i,e))||t}function Ot(){if(!we.value||!d.value)return;const e=Le(d.value,h.value);if(!e)return;const t=h.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(h.value=e)}function Ht(e){E.value=e}function x(){var e,t;W+=1,d.value=null,v.value=!1,P.value=!1,h.value=null,(t=(e=f.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function Oe(e){if(!we.value)return;const t=document.querySelector(".fgw-map-feature-info"),n=document.querySelector(".forest-grass-wet .cesium-map"),s=e.target;t&&s instanceof Node&&t.contains(s)||n&&s instanceof Node&&n.contains(s)||x()}function Kt(){return D.value?new Promise(e=>{Qe.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{D.value=!1,e()}})}):Promise.resolve()}return(e,t)=>(_(),S("div",En,[G(fn,{ref_key:"mapSceneRef",ref:f,"active-layer":mt.value,"map-ranking":R.value,"admin-boundary-line-scale":2.4,"initial-zoom":9.55,"max-zoom":21,"hide-town-label-stats":"","enable-imagery-feature-pick":!1,"enable-town-polygon-pick":!1,onFeatureLoading:t[0]||(t[0]=n=>P.value=n),onFeatureInfo:Wt,onMapClick:At,onLayerStatus:Ht,onViewChange:Ot},null,8,["active-layer","map-ranking"]),b("div",Bn,[b("div",qn,[b("div",Gn,[(_(!0),S(Ne,null,xe(K.value,n=>(_(),tt(st,{key:Re(n,"left"),class:de(["fgw-side-card left-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[G(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),b("div",Rn,[b("div",jn,[(_(!0),S(Ne,null,xe(U.value,n=>(_(),tt(st,{key:Re(n,"right"),class:de(["fgw-side-card right-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[G(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),gt.value?(_(),S("div",{key:0,class:"fgw-map-layer-tools",style:ve({height:`${Fe.value}px`})},[G(mn,{modelValue:$e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>$e.value=n),"selected-legend-key":L.value,"onUpdate:selectedLegendKey":t[2]||(t[2]=n=>L.value=n),"topic-key":u.value,layers:re.value,legends:he.value,multiple:u.value==="overview",width:248,height:Fe.value,compact:Me.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):ce("",!0),dt.value?(_(),S("div",Dn,[G(Vn,{modelValue:M.value,"onUpdate:modelValue":t[3]||(t[3]=n=>M.value=n),items:N.value,loading:Y.value==="loading"},null,8,["modelValue","items","loading"])])):ce("",!0),we.value?(_(),S("div",{key:2,class:"fgw-map-feature-info",style:ve(bt.value)},[G(hn,{title:kt.value,feature:d.value,empty:v.value,loading:P.value,width:Se(wt),height:yt.value,closable:"",onClose:x},null,8,["title","feature","empty","loading","width","height"])],4)):ce("",!0),b("div",zn,[G(gn,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=n=>u.value=n)},null,8,["modelValue"])])]),D.value?(_(),S("div",Wn,[t[6]||(t[6]=kn('
LOADING
',1)),b("div",On,[b("span",Hn,Te(j.value),1),t[5]||(t[5]=b("span",{class:"unit"},"%",-1))])])):ce("",!0)]))}};export{os as default}; +var Ut=Object.defineProperty,Yt=Object.defineProperties;var Qt=Object.getOwnPropertyDescriptors;var Ue=Object.getOwnPropertySymbols;var Jt=Object.prototype.hasOwnProperty,Xt=Object.prototype.propertyIsEnumerable;var Ye=(l,a,r)=>a in l?Ut(l,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[a]=r,I=(l,a)=>{for(var r in a||(a={}))Jt.call(a,r)&&Ye(l,r,a[r]);if(Ue)for(var r of Ue(a))Xt.call(a,r)&&Ye(l,r,a[r]);return l},B=(l,a)=>Yt(l,Qt(a));var V=(l,a,r)=>new Promise((k,T)=>{var f=y=>{try{w(r.next(y))}catch($){T($)}},u=y=>{try{w(r.throw(y))}catch($){T($)}},w=y=>y.done?k(y.value):Promise.resolve(y.value).then(f,u);w((r=r.apply(l,a)).next())});import{g as Qe}from"./index-e9f36657-1784132792831.js";import{A as Zt}from"./assets-8cd57427-1784132792831.js";/* empty css */import{f as en,c as Je,b as tn,g as Xe}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{g as nn,b as sn,a as an,c as rn}from"./openApi-50c9b694-1784132792831.js";import{c as ln,F as un,g as on,a as cn}from"./featurePanelLayout-9d4ef87e-1784132792831.js";import{q as Ze,r as dn,s as vn}from"./screen2Standard-41868f75-1784132792831.js";import{M as fn}from"./index-24267a69-1784132792831.js";import{_ as gn}from"./TopicSwitcher-2e4ca291-1784132792831.js";import{_ as mn}from"./LayerPanel-fa97fc8c-1784132792831.js";import{a as et,_ as hn}from"./FeatureInfoPanel-8ee1b2b1-1784132792831.js";import{_ as wn,g as c,o as _,c as S,a as b,t as Te,F as Ne,y as xe,n as de,J as ve,d as m,q as yn,h as bn,w as q,A as ee,b as G,C as tt,x as nt,u as Se,j as ce,z as kn}from"./index-1784132792831.js";import{_ as st}from"./index-a4d3ff67-1784132792831.js";import"./index-a1b5e9c0-1784132792831.js";import"./geoserver-c6c88e84-1784132792831.js";const _n="/jsyApi/api/map/ndvi_timeline";function pn(){return V(this,null,function*(){const l=yield fetch(_n,{credentials:"include",headers:{Accept:"application/json"}});if(!l.ok){const k=new Error(`HTTP ${l.status}`);throw k.status=l.status,k}const a=yield l.json().catch(()=>({}));if((a==null?void 0:a.code)===401||(a==null?void 0:a.code)==="401"){const k=new Error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"NDVI 时间轴未授权");throw k.status=401,k}const r=Array.isArray(a==null?void 0:a.data)?a.data:Array.isArray(a)?a:[];return Ln(r)})}function Ln(l=[]){const a=new Set;return l.map((r,k)=>{const T=Sn(at(r,["url","layerName","layer_name","layer","name"]));if(!T)return null;const f=at(r,["date","month","time","label"])||T,u=Tn(f);return{key:`${T}-${f||k}`,label:u,date:String(f),layerName:T,source:r}}).filter(Boolean).filter(r=>a.has(r.key)?!1:(a.add(r.key),!0))}function at(l,a){for(const r of a)if((l==null?void 0:l[r])!==void 0&&(l==null?void 0:l[r])!==null&&(l==null?void 0:l[r])!=="")return l[r]}function Sn(l){const a=String(l||"").trim();return a?a.includes(":")||/^https?:\/\//i.test(a)?a:`ne:${a}`:""}function Tn(l){const a=String(l||"").trim();if(!a)return"";const r=a.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return r?`${r[1]}.${String(Number(r[2])).padStart(2,"0")}`:a}const Nn={class:"grassland-ndvi-timeline-head"},xn={key:0,class:"grassland-ndvi-timeline-state"},Pn={key:1,class:"grassland-ndvi-timeline-state"},Cn={key:2,class:"grassland-ndvi-timeline-body"},$n=["aria-checked","title","onClick"],Mn={class:"grassland-ndvi-timeline-label"},Fn=42,An=28,In={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(l,{emit:a}){const r=l,k=a,T=c(()=>r.items.findIndex(d=>d.key===r.modelValue)),f=c(()=>T.value===-1?Math.max(0,r.items.length-1):T.value),u=c(()=>r.items[f.value]||null),w=c(()=>r.loading?"加载中":"未选择"),y=c(()=>r.items.length>7),$=c(()=>y.value?An:Fn),te=c(()=>U(f.value)),ne=c(()=>R(f.value));function H(d){if(!r.items.length)return;const v=Math.min(r.items.length-1,Math.max(0,f.value+d));k("update:modelValue",r.items[v].key)}function se(d){!d||d.key===r.modelValue||k("update:modelValue",d.key)}function K(d){return!r.items.length||d<0?0:r.items.length===1?.5:d/(r.items.length-1)}function U(d){const v=K(d),P=L(v*100),h=$.value*(1-v*2);return`calc(${P}% ${h<0?"-":"+"} ${L(Math.abs(h))}px)`}function R(d){const v=K(d);return v<=0?"0px":`calc(${L(v*100)}% - ${L($.value*2*v)}px)`}function L(d){return Number(d.toFixed(4)).toString()}return(d,v)=>{var P;return _(),S("div",{class:de(["grassland-ndvi-timeline",{"is-dense":y.value}])},[b("div",Nn,[v[2]||(v[2]=b("span",null,"草地健康/退化",-1)),b("strong",null,Te(((P=u.value)==null?void 0:P.label)||w.value),1)]),l.loading?(_(),S("div",xn,"加载月份数据")):l.items.length?(_(),S("div",Cn,[b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:v[0]||(v[0]=h=>H(-1))},"‹"),b("div",{class:"grassland-ndvi-timeline-track",style:ve({"--timeline-active-left":te.value,"--timeline-fill-width":ne.value,"--timeline-edge-offset":`${$.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[v[4]||(v[4]=b("div",{class:"grassland-ndvi-timeline-line"},null,-1)),v[5]||(v[5]=b("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),v[6]||(v[6]=b("div",{class:"grassland-ndvi-timeline-thumb"},[b("i")],-1)),(_(!0),S(Ne,null,xe(l.items,(h,j)=>{var D,N;return _(),S("button",{key:h.key,class:de(["grassland-ndvi-timeline-mark",{"is-active":h.key===((D=u.value)==null?void 0:D.key),"is-past":j<=f.value,"is-staggered":y.value&&j%2===1}]),type:"button",role:"radio","aria-checked":h.key===((N=u.value)==null?void 0:N.key),style:ve({left:U(j)}),title:h.date,onClick:Y=>se(h)},[v[3]||(v[3]=b("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),b("span",Mn,Te(h.label),1)],14,$n)}),128))],4),b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:v[1]||(v[1]=h=>H(1))},"›")])):(_(),S("div",Pn,"暂无月份数据"))],2)}}},Vn=wn(In,[["__scopeId","data-v-86212a95"]]),En={class:"forest-grass-wet"},Bn={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},qn={class:"fgw-left"},Gn={class:"fgw-side-stack is-left"},Rn={class:"fgw-right"},jn={class:"fgw-side-stack is-right"},Dn={key:1,class:"fgw-ndvi-timeline"},zn={class:"fgw-bottom-topic"},Wn={key:0,class:"loading"},On={class:"loading-progress"},Hn={class:"value"},os={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(l,{expose:a,emit:r}){const k=l,T=r,f=m(null),u=m(en[0].key),w=m(""),y=m([]),$=m([]),te=m("idle"),ne=m(!1),H=m({title:"业务统计",rows:[]}),se=m({title:"业务统计",rows:[]}),K=m([]),U=m([]),R=m(null),L=m(""),d=m(null),v=m(!1),P=m(!1),h=m(null),j=m(0),D=m(k.showLoading),N=m([]),Y=m("idle"),M=m(""),E=m({type:"idle",text:"等待 GeoServer 图层加载"});let Q=null,C=!1,fe=!1,z=!1,F=null,Pe=0,Ce=0,ge=0,W=0,ae=!1,me=!1;const it={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},rt=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),lt=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],ut=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),ot=c(()=>Je(u.value)),ct=c(()=>tn(u.value)),ie=c(()=>lt.map(e=>pt(e)).filter(Boolean)),re=c(()=>u.value==="overview"?ie.value:ct.value),$e=c({get(){return u.value==="overview"?y.value:w.value},set(e){if(u.value==="overview"){y.value=Array.isArray(e)?e.map(String).filter(Boolean):[];return}w.value=String(e||"")}}),J=c(()=>w.value?Xe(u.value,w.value):null),X=c(()=>u.value==="grassland"&&w.value==="grassland-health"),dt=c(()=>X.value),vt=c(()=>N.value.find(e=>e.key===M.value)||null),O=c(()=>{var e;return(((e=J.value)==null?void 0:e.legends)||[]).find(t=>t.key===L.value)||null}),ft=c(()=>ie.value.flatMap(e=>e.legends||[])),he=c(()=>{var e;return u.value==="overview"?ft.value:((e=J.value)==null?void 0:e.legends)||[]}),gt=c(()=>re.value.length>0),Me=c(()=>re.value.length<=6&&he.value.length<=8),Fe=c(()=>{if(!Me.value)return 430;const e=Math.max(1,re.value.length),t=Math.max(1,he.value.length),n=e*32,s=30+t*28;return Math.max(272,Math.min(520,96+n+s))}),mt=c(()=>{var s;if(u.value==="overview"){const i=new Set(y.value),o=ie.value.filter(g=>i.has(g.key));return Lt(o)}const e=J.value;if(!e)return null;let t=(s=O.value)!=null&&s.cqlFilter?B(I({},e),{cqlFilter:O.value.cqlFilter,activeLegend:O.value,name:O.value.name||e.name}):e;const n=vt.value;return X.value&&(n!=null&&n.layerName)&&(t=B(I({},t),{layerName:n.layerName,name:`${e.name} ${n.label}`,timelineDate:n.label,timelineItem:n})),t}),Ae=m(typeof window=="undefined"?1080:window.innerHeight),Ie=Ze.sideCardWidth;c(()=>Ze.sideCardGap);const Ve=c(()=>dn(Ae.value)),ht=c(()=>vn(Ve.value,2)),we=c(()=>!!h.value),wt=un,Ee=c(()=>ln({point:h.value?_t(h.value):null,rowCount:d.value?pe(d.value):0,loading:P.value,empty:v.value||!d.value})),yt=c(()=>Ee.value.height),bt=c(()=>Ee.value.style),kt=c(()=>{var n,s,i,o,g,A,p;const e=((s=(n=d.value)==null?void 0:n.layer)==null?void 0:s.overviewTopicKey)||((o=(i=d.value)==null?void 0:i.layer)==null?void 0:o.topicKey)||u.value;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情"}[e]||`${((A=(g=d.value)==null?void 0:g.layer)==null?void 0:A.name)||((p=ot.value)==null?void 0:p.name)||"资源"}详情`});function _t(e){const t=document.querySelector(".forest-grass-wet"),n=t==null?void 0:t.getBoundingClientRect();return!(n!=null&&n.width)||!(n!=null&&n.height)?e:{x:(e.x-n.left)/n.width*1920,y:(e.y-n.top)/n.height*1080}}function ye(){Ae.value=typeof window=="undefined"?1080:window.innerHeight}function pt({topicKey:e,layerKey:t,name:n,legendName:s}){var g;const i=Xe(e,t);if(!i||i.key!==t)return null;const o=((g=i.legends)==null?void 0:g[0])||{};return B(I({},i),{name:n,overviewTopicKey:e,legends:[B(I({},o),{key:`overview-${t}`,name:s,selectable:!1})]})}function Lt(e=[]){const t=e.filter(Boolean);if(!t.length)return null;const[n,...s]=t;return B(I({},n),{overlayLayers:s})}yn(()=>{ye(),window.addEventListener("resize",ye),document.addEventListener("pointerdown",Oe,!0),St(),ke(u.value,""),le(u.value,"")}),bn(()=>{C=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",ye),document.removeEventListener("pointerdown",Oe,!0)}),q(u,e=>{ae=!0,L.value="",w.value="",e==="overview"&&(y.value=[]),x(),E.value={type:"idle",text:"等待 GeoServer 图层加载"},ke(e,""),le(e,"",null),ee(()=>{ae=!1})}),q(w,()=>{ae||(me=!0,L.value="",x(),E.value={type:w.value?"loading":"idle",text:w.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},u.value!=="woodland"&&ke(u.value,w.value),le(u.value,w.value,null),ee(()=>{me=!1}))}),q(y,()=>{u.value==="overview"&&(L.value="",x(),E.value={type:y.value.length?"loading":"idle",text:y.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},R.value=We("overview",y.value.join(",")))},{deep:!0}),q(L,()=>{ae||me||(x(),le(u.value,w.value,O.value))}),q(X,e=>{if(e){xt();return}M.value=""}),q(M,()=>{X.value&&x()}),q(()=>k.active,e=>{var t,n,s,i;f.value&&(e?(be(),(n=(t=f.value).resume)==null||n.call(t)):(i=(s=f.value).pause)==null||i.call(s))});function St(){var n;Q=new Zt;const e={progress:0};Q.instance.on("onProgress",(s,i,o)=>{const g=Math.floor(i/o*100);Qe.to(e,{progress:g,onUpdate:()=>{j.value=Math.floor(e.progress)}})});const t=()=>{C||fe||(fe=!0,be())};Q.instance.on("onLoad",t),(n=Q.ready)==null||n.then(t).catch(()=>{C||(E.value={type:"error",text:"地图资源加载失败"})})}function be(){C||!k.active||!fe||z||(z=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Be()},600))}function Be(e=0){return V(this,null,function*(){var n,s,i,o,g;if(C)return;if(!k.active){z=!1;return}if(yield ee(),!k.active){z=!1;return}if(!!((s=(n=f.value)==null?void 0:n.loadMap)!=null&&s.call(n,Q)||(o=(i=f.value)==null?void 0:i.hasMap)!=null&&o.call(i))){yield Kt(),yield ee(),(g=f.value)==null||g.play();return}if(e<24){window.setTimeout(()=>Be(e+1),120);return}z=!1})}function Tt(){F&&(window.clearTimeout(F),F=null)}function qe(){var e,t,n,s;(t=(e=f.value)==null?void 0:e.resume)==null||t.call(e),(s=(n=f.value)==null?void 0:n.refreshView)==null||s.call(n)}function Nt(){var e,t;if(x(),E.value={type:"loading",text:"地图正在复位"},(t=(e=f.value)==null?void 0:e.hasMap)!=null&&t.call(e)){qe(),E.value={type:"success",text:"地图已复位"};return}Tt(),z=!1,ee(()=>{be()})}a({refreshMapView:qe,resetMap:Nt});function ke(n){return V(this,arguments,function*(e,t=w.value){const s=e==="woodland"?"":t,i=++Ce;ne.value=!0,te.value="loading";const o=yield nn(e,s);C||i!==Ce||e===u.value&&(e!=="woodland"&&(s||"")!==(w.value||"")||Pt(o,e))})}function xt(e=!1){return V(this,null,function*(){if(!X.value)return;if(!e&&N.value.length){Ge();return}const t=++ge;Y.value="loading";try{const n=yield pn();if(C||t!==ge)return;N.value=n,Y.value=n.length?"success":"empty",Ge()}catch(n){if(C||t!==ge)return;N.value=[],M.value="",Y.value="error"}})}function Ge(){if(!N.value.length){M.value="";return}N.value.some(t=>t.key===M.value)||(M.value=N.value[N.value.length-1].key)}function Pt(e,t){var s,i,o;const n=Ct(e);$.value=n.core||[],H.value=n.left||{title:"业务统计",rows:[]},se.value=n.right||{title:"业务统计",rows:[]},K.value=(s=n.leftPanels)!=null&&s.length?n.leftPanels:[H.value],U.value=(i=n.rightPanels)!=null&&i.length?n.rightPanels:[se.value],te.value=n.status,ne.value=!1,T("topic-stats",{topicKey:t,topicName:Je(t).name,items:((o=n.top)!=null&&o.length?n.top:n.core||[]).slice(0,4)})}function Ct(e){return e||{}}function Re(e,t){return`${u.value}-${t}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function _e(e){var n;const t=((n=e==null?void 0:e.rows)==null?void 0:n.length)||0;return(e==null?void 0:e.span)===1?!1:(e==null?void 0:e.span)===2?!0:(e==null?void 0:e.type)==="spotlight"||(e==null?void 0:e.type)==="metric"||(e==null?void 0:e.type)==="column"&&t<=5?!1:(e==null?void 0:e.type)==="rank"&&t>4||(e==null?void 0:e.type)==="split"&&t>4||(e==null?void 0:e.type)==="donut"&&t>5||(e==null?void 0:e.type)==="structure"&&t>4||(e==null?void 0:e.type)==="bar"&&t>4||(e==null?void 0:e.type)==="line"&&t>6}function je(e){return _e(e)?ht.value:Ve.value}function pe(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(s=>De(s,t[s])).length}function De(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!ut.has(String(e||"").toLowerCase())}function $t(){if(u.value==="overview"){const e=new Set(y.value);return ie.value.filter(t=>e.has(t.key)).slice().reverse()}return J.value?[J.value]:[]}function Mt(e={}){const t=String(e.overviewTopicKey||u.value||"").toLowerCase(),n=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return n.includes("basic-grassland")||n.includes("t_basic_grassland")?"basicGrassland":t==="woodland"||n.includes("woodland")||n.includes("t_woodland")?"woodland":t==="wetland"||n.includes("wetland")||n.includes("shidi")?"wetland":t==="grassland"||n.includes("grassland")||n.includes("caodi")?"grassland":""}function Ft(e={}){const t=ze(e.lng),n=ze(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function ze(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function At(){return V(this,arguments,function*(e={}){var g,A,p,Z,ue,He;const t=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lng),n=Number((A=e==null?void 0:e.lngLat)==null?void 0:A.lat),s=$t();if(!Number.isFinite(t)||!Number.isFinite(n)||!s.length){x();return}const i=++W,o=e.screen||{x:960,y:540};h.value=null,d.value=null,v.value=!1,P.value=!0,(Z=(p=f.value)==null?void 0:p.clearSelectedFeature)==null||Z.call(p);try{for(const Ke of s){const oe=yield It(Ke,{lng:t,lat:n});if(i!==W||C)return;if(oe){d.value=oe,h.value=Le(oe,o),v.value=!1,(He=(ue=f.value)==null?void 0:ue.highlightFeature)==null||He.call(ue,oe,{highlightTone:"v21"});return}}i===W&&x()}catch(Ke){i===W&&x()}finally{i===W&&(P.value=!1)}})}function It(e,t){return V(this,null,function*(){const n=Mt(e);if(!n)return null;const s=Ft(t);let i=null;n==="grassland"?i=yield on({wkt:s}):n==="wetland"?i=yield cn({wkt:s}):n==="woodland"?i=yield an(s):n==="basicGrassland"&&(i=yield rn(s));const o=Vt(i,n);if(!Bt(o))return null;const g=Gt(o,e,t,n);return pe(g)>0?g:null})}function Vt(e,t){var s,i,o,g,A;const n=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,e==null?void 0:e.basicGrassland,(s=e==null?void 0:e.data)==null?void 0:s[t],(i=e==null?void 0:e.data)==null?void 0:i.grassland,(o=e==null?void 0:e.data)==null?void 0:o.wetland,(g=e==null?void 0:e.data)==null?void 0:g.woodland,(A=e==null?void 0:e.data)==null?void 0:A.basicGrassland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const p of n){const Z=Et(p);if(Z)return Z}return null}function Et(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Bt(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(qt)?!0:Object.keys(e).some(t=>De(t,e[t]))}function qt(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Gt(e,t,n,s){const i=jt(e),o=Rt(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${s}-${n.lng}-${n.lat}`,properties:i,feature:{type:"Feature",properties:i,geometry:o},geometry:o,layer:t,lngLat:n}}function Rt(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function jt(e={}){const t=I({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(s=>{const i=s==null?void 0:s.value;if(i==null||i==="")return;const o=it[String((s==null?void 0:s.title)||"").trim()],g=String((s==null?void 0:s.field)||"").trim();[g,Dt(g),o].filter(Boolean).forEach(p=>{(t[p]===void 0||t[p]===null||t[p]==="")&&(t[p]=i)})}),t}function Dt(e){return String(e||"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function le(s,i){return V(this,arguments,function*(e,t,n=O.value){const o=++Pe;if(!t||!zt(t,n)){R.value=We(e,t);return}const g=yield sn(e,t,n);C||o!==Pe||e!==u.value||t!==w.value||((n==null?void 0:n.key)||"")===L.value&&(R.value=B(I({},g),{hideTownLabelStats:!0}))})}function zt(e,t=null){return!!(t!=null&&t.key)||rt.has(e)}function We(e,t){return{status:"disabled",topicKey:e,layerKey:t,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function Wt(e){var n,s;const t=(s=(n=e==null?void 0:e.feature)!=null?n:e)!=null?s:null;if(!t||pe(t)<=0){x();return}d.value=t,v.value=!1,h.value=Le(t,(e==null?void 0:e.screen)||h.value)}function Le(e,t=null){var n,s,i,o;return((s=(n=f.value)==null?void 0:n.getVectorFeatureAnchorScreen)==null?void 0:s.call(n,e))||((o=(i=f.value)==null?void 0:i.getVectorFeatureScreen)==null?void 0:o.call(i,e))||t}function Ot(){if(!we.value||!d.value)return;const e=Le(d.value,h.value);if(!e)return;const t=h.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(h.value=e)}function Ht(e){E.value=e}function x(){var e,t;W+=1,d.value=null,v.value=!1,P.value=!1,h.value=null,(t=(e=f.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function Oe(e){if(!we.value)return;const t=document.querySelector(".fgw-map-feature-info"),n=document.querySelector(".forest-grass-wet .cesium-map"),s=e.target;t&&s instanceof Node&&t.contains(s)||n&&s instanceof Node&&n.contains(s)||x()}function Kt(){return D.value?new Promise(e=>{Qe.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{D.value=!1,e()}})}):Promise.resolve()}return(e,t)=>(_(),S("div",En,[G(fn,{ref_key:"mapSceneRef",ref:f,"active-layer":mt.value,"map-ranking":R.value,"admin-boundary-line-scale":2.4,"initial-zoom":9.55,"max-zoom":21,"hide-town-label-stats":"","enable-imagery-feature-pick":!1,"enable-town-polygon-pick":!1,onFeatureLoading:t[0]||(t[0]=n=>P.value=n),onFeatureInfo:Wt,onMapClick:At,onLayerStatus:Ht,onViewChange:Ot},null,8,["active-layer","map-ranking"]),b("div",Bn,[b("div",qn,[b("div",Gn,[(_(!0),S(Ne,null,xe(K.value,n=>(_(),tt(st,{key:Re(n,"left"),class:de(["fgw-side-card left-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[G(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),b("div",Rn,[b("div",jn,[(_(!0),S(Ne,null,xe(U.value,n=>(_(),tt(st,{key:Re(n,"right"),class:de(["fgw-side-card right-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[G(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),gt.value?(_(),S("div",{key:0,class:"fgw-map-layer-tools",style:ve({height:`${Fe.value}px`})},[G(mn,{modelValue:$e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>$e.value=n),"selected-legend-key":L.value,"onUpdate:selectedLegendKey":t[2]||(t[2]=n=>L.value=n),"topic-key":u.value,layers:re.value,legends:he.value,multiple:u.value==="overview",width:248,height:Fe.value,compact:Me.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):ce("",!0),dt.value?(_(),S("div",Dn,[G(Vn,{modelValue:M.value,"onUpdate:modelValue":t[3]||(t[3]=n=>M.value=n),items:N.value,loading:Y.value==="loading"},null,8,["modelValue","items","loading"])])):ce("",!0),we.value?(_(),S("div",{key:2,class:"fgw-map-feature-info",style:ve(bt.value)},[G(hn,{title:kt.value,feature:d.value,empty:v.value,loading:P.value,width:Se(wt),height:yt.value,closable:"",onClose:x},null,8,["title","feature","empty","loading","width","height"])],4)):ce("",!0),b("div",zn,[G(gn,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=n=>u.value=n)},null,8,["modelValue"])])]),D.value?(_(),S("div",Wn,[t[6]||(t[6]=kn('
LOADING
',1)),b("div",On,[b("span",Hn,Te(j.value),1),t[5]||(t[5]=b("span",{class:"unit"},"%",-1))])])):ce("",!0)]))}};export{os as default}; diff --git a/docs/assets/index-2bde92c2-balabala-1784132466083.css b/docs/assets/index-2bde92c2-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-2bde92c2-balabala-1784132466083.css rename to docs/assets/index-2bde92c2-balabala-1784132792831.css diff --git a/docs/assets/index-034c61c5-balabala-1784132466083.css b/docs/assets/index-3099739a-balabala-1784132792831.css similarity index 99% rename from docs/assets/index-034c61c5-balabala-1784132466083.css rename to docs/assets/index-3099739a-balabala-1784132792831.css index cc033b0..b953896 100644 --- a/docs/assets/index-034c61c5-balabala-1784132466083.css +++ b/docs/assets/index-3099739a-balabala-1784132792831.css @@ -1 +1 @@ -.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map .info-point{background:rgba(0,0,0,.5);color:#a3dcde;font-size:14px;width:170px;height:106px;padding:16px 12px 0;margin-bottom:30px;will-change:transform}.map .info-point-wrap:after,.map .info-point-wrap:before{display:block;content:"";position:absolute;top:0;width:15px;height:15px;border-top:1px solid #4b87a6}.map .info-point-wrap:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap:after{right:0;border-right:1px solid #4b87a6}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{display:block;content:"";position:absolute;bottom:0;width:15px;height:15px;border-bottom:1px solid #4b87a6}.map .info-point-wrap-inner:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap-inner:after{right:0;border-right:1px solid #4b87a6}.map .info-point-line{position:absolute;top:7px;right:12px;display:flex}.map .info-point-line .line{width:5px;height:2px;margin-right:5px;background:#17e5c3}.map .info-point-content .content-item{display:flex;height:28px;line-height:28px;background:rgba(35,47,58,.6);margin-bottom:5px}.map .info-point-content .content-item .label{width:60px;padding-left:10px}.map .info-point-content .content-item .value{color:#fff}.map .provinces-label-wrap{transform:translate(-50%,-50%);opacity:0;display:flex;justify-content:space-between;align-items:center;padding:0 12px;width:112px;height:46px;border-radius:30px 30px 30px 0;background:rgba(0,0,0,.4)}.map .provinces-label .number{color:#fff;font-size:24px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:12px;font-weight:400;opacity:.5;padding-left:5px}.map .provinces-label .name{color:#fff;font-size:14px;font-weight:700}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:24px;font-weight:700}.map .provinces-label .yellow .no{color:#fef99e!important;text-shadow:0 0 5px #fef99e,0 0 10px #fef99e!important}.map .china-label{color:#fff;font-size:15px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap;text-align:center;transform:translateY(-50%)}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.home-map-scrim:before,.home-map-scrim:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.home-map-scrim:before{opacity:.12;background:url(./bg-3acb94e3-balabala-1784132466083.png) center/cover no-repeat}.home-map-scrim:after{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 54%,rgba(2,13,20,.06) 80%,rgba(2,12,18,.22) 100%),linear-gradient(90deg,rgba(0,14,24,.12),transparent 26%,transparent 74%,rgba(0,14,24,.12))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:760px;transform:translate(-50%);pointer-events:auto}.home-bottom-switcher .topic-switcher{width:760px}.home-bottom-switcher .topic-switcher-menu{flex:0 0 auto}.home-bottom-switcher .topic-switcher-arrow{display:none}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-video-modal-status{position:absolute;top:10px;right:10px;z-index:5;padding:3px 8px;border-left:2px solid #24f6c4;color:#b9ffe9;font-size:11px;line-height:15px;font-weight:800;background:rgba(1,28,26,.76)}.home-video-modal-item.is-offline .home-video-modal-status{border-left-color:#8bf7ff;color:#ffe6a7;background:rgba(42,31,5,.76)}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff} +.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map .info-point{background:rgba(0,0,0,.5);color:#a3dcde;font-size:14px;width:170px;height:106px;padding:16px 12px 0;margin-bottom:30px;will-change:transform}.map .info-point-wrap:after,.map .info-point-wrap:before{display:block;content:"";position:absolute;top:0;width:15px;height:15px;border-top:1px solid #4b87a6}.map .info-point-wrap:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap:after{right:0;border-right:1px solid #4b87a6}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{display:block;content:"";position:absolute;bottom:0;width:15px;height:15px;border-bottom:1px solid #4b87a6}.map .info-point-wrap-inner:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap-inner:after{right:0;border-right:1px solid #4b87a6}.map .info-point-line{position:absolute;top:7px;right:12px;display:flex}.map .info-point-line .line{width:5px;height:2px;margin-right:5px;background:#17e5c3}.map .info-point-content .content-item{display:flex;height:28px;line-height:28px;background:rgba(35,47,58,.6);margin-bottom:5px}.map .info-point-content .content-item .label{width:60px;padding-left:10px}.map .info-point-content .content-item .value{color:#fff}.map .provinces-label-wrap{transform:translate(-50%,-50%);opacity:0;display:flex;justify-content:space-between;align-items:center;padding:0 12px;width:112px;height:46px;border-radius:30px 30px 30px 0;background:rgba(0,0,0,.4)}.map .provinces-label .number{color:#fff;font-size:24px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:12px;font-weight:400;opacity:.5;padding-left:5px}.map .provinces-label .name{color:#fff;font-size:14px;font-weight:700}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:24px;font-weight:700}.map .provinces-label .yellow .no{color:#fef99e!important;text-shadow:0 0 5px #fef99e,0 0 10px #fef99e!important}.map .china-label{color:#fff;font-size:15px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap;text-align:center;transform:translateY(-50%)}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.home-map-scrim:before,.home-map-scrim:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.home-map-scrim:before{opacity:.12;background:url(./bg-3acb94e3-balabala-1784132792831.png) center/cover no-repeat}.home-map-scrim:after{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 54%,rgba(2,13,20,.06) 80%,rgba(2,12,18,.22) 100%),linear-gradient(90deg,rgba(0,14,24,.12),transparent 26%,transparent 74%,rgba(0,14,24,.12))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:760px;transform:translate(-50%);pointer-events:auto}.home-bottom-switcher .topic-switcher{width:760px}.home-bottom-switcher .topic-switcher-menu{flex:0 0 auto}.home-bottom-switcher .topic-switcher-arrow{display:none}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-video-modal-status{position:absolute;top:10px;right:10px;z-index:5;padding:3px 8px;border-left:2px solid #24f6c4;color:#b9ffe9;font-size:11px;line-height:15px;font-weight:800;background:rgba(1,28,26,.76)}.home-video-modal-item.is-offline .home-video-modal-status{border-left-color:#8bf7ff;color:#ffe6a7;background:rgba(42,31,5,.76)}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff} diff --git a/docs/assets/index-41d168c2-balabala-1784132466083.css b/docs/assets/index-41d168c2-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-41d168c2-balabala-1784132466083.css rename to docs/assets/index-41d168c2-balabala-1784132792831.css diff --git a/docs/assets/index-14f1aa65-1784132466083.js b/docs/assets/index-427feaa9-1784132792831.js similarity index 95% rename from docs/assets/index-14f1aa65-1784132466083.js rename to docs/assets/index-427feaa9-1784132792831.js index 96de9ab..62b6c84 100644 --- a/docs/assets/index-14f1aa65-1784132466083.js +++ b/docs/assets/index-427feaa9-1784132792831.js @@ -1,2 +1,2 @@ -var Ft=Object.defineProperty,Ct=Object.defineProperties;var Pt=Object.getOwnPropertyDescriptors;var Ve=Object.getOwnPropertySymbols;var Lt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var ze=(b,m,g)=>m in b?Ft(b,m,{enumerable:!0,configurable:!0,writable:!0,value:g}):b[m]=g,x=(b,m)=>{for(var g in m||(m={}))Lt.call(m,g)&&ze(b,g,m[g]);if(Ve)for(var g of Ve(m))Tt.call(m,g)&&ze(b,g,m[g]);return b},S=(b,m)=>Ct(b,Pt(m));var U=(b,m,g)=>new Promise((R,P)=>{var V=N=>{try{q(g.next(N))}catch(O){P(O)}},j=N=>{try{q(g.throw(N))}catch(O){P(O)}},q=N=>N.done?R(N.value):Promise.resolve(N.value).then(V,j);q((g=g.apply(b,m)).next())});import{H as Ke}from"./index.esm.min-e7a22049-1784132466083.js";import{_ as De}from"./index-fe70e5de-1784132466083.js";import{M as Nt}from"./index-36438a28-1784132466083.js";import{a as Ge,_ as $t}from"./FeatureInfoPanel-3970d641-1784132466083.js";import{_ as At}from"./LayerPanel-5b73c261-1784132466083.js";import{_ as Ht}from"./TopicSwitcher-7006d8b4-1784132466083.js";import{A as Bt}from"./assets-8617da22-1784132466083.js";import{g as ge}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{q as ee,r as Rt,s as Ie}from"./screen2Standard-483e466b-1784132466083.js";import{w as Vt,f as zt,l as We,m as Ue,n as Kt,o as Dt,p as Gt,q as It,s as Ee,e as me}from"./chartTheme-e9ae7be8-1784132466083.js";import{g as Ye,a as Wt,i as Ut,b as Et,c as pe,d as we,e as Yt}from"./data-8833788f-1784132466083.js";import{g as f,w as be,q as jt,h as qt,A as le,o as i,c as u,b as ie,a as l,j as T,F as M,y as F,C as E,x as je,u as oe,n as Y,t as c,J as ue,d as C}from"./index-1784132466083.js";import"./index-ed255eef-1784132466083.js";import"./index-e9f36657-1784132466083.js";import"./livestockData-36ec0ae2-1784132466083.js";const Ot={class:"yak-industry-chain"},Jt={key:0,class:"industry-map-loading"},Xt={key:1,class:"fgw-left industry-side-panel industry-side-panel--left"},Zt={class:"fgw-side-stack industry-side-stack is-left"},Qt={key:1,class:"industry-panel-empty"},ea={key:3,class:"industry-featured-base-list"},ta=["disabled","aria-label","onClick"],aa={class:"industry-featured-base__index"},na={class:"industry-featured-base__copy"},sa={key:4,class:"industry-leadership-mode-list"},ra={key:5,class:"industry-ledger-list"},la={key:2,class:"fgw-right industry-side-panel industry-side-panel--right"},ia={class:"fgw-side-stack industry-side-stack is-right"},oa={key:1,class:"industry-panel-empty"},ua={key:3,class:"industry-featured-base-list"},ca=["disabled","aria-label","onClick"],da={class:"industry-featured-base__index"},ya={class:"industry-featured-base__copy"},fa={key:4,class:"industry-leadership-mode-list"},ha={key:5,class:"industry-ledger-list"},va={key:3,class:"industry-artificial-layer-tools"},ga={class:"industry-point-detail__head"},ma={class:"industry-point-detail__name"},pa={key:0,class:"industry-point-detail__profile"},wa={class:"industry-point-detail__profile-head"},ba=["src","alt"],_a={class:"industry-point-detail__facts"},ka={class:"industry-point-detail__highlights"},xa={class:"industry-bottom-switcher"},Da={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(b,{expose:m,emit:g}){const R=b,P=g,V=ee.sideCardWidth,j=C(typeof window=="undefined"?1080:window.innerHeight),q=ee.sideCardGap,N=ee.sidePanelTop,O=ee.sidePanelBottom,qe=ee.sideCardMinHeight,J=f(()=>Rt(j.value)),ce=f(()=>Ie(J.value,2)),Oe=f(()=>Ie(J.value,4)),y=C("family-pasture"),p=C(null),z=C(!1),h=C(null),L=C(""),X=C({x:0,y:0}),$=C(null),Z=C({x:0,y:0}),K=C(!1),D=C(["artificial-grassland-plots"]);let te=null,de=!1,G=!1,A=null,_=null,ye=!1;const I=f(()=>Ye(y.value));f(()=>y.value==="family-pasture");const Q=f(()=>y.value==="artificial-grassland"),Je=f(()=>[{key:"artificial-grassland-plots",name:"待核定种草图斑",color:"#30DCFF",stroke:"#C9FBFF"},{key:"yak-industry-points",name:"人工种草基地点",color:"#19FFC6",stroke:"#B7FFF2"}]),Xe=f(()=>[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1},{key:"artificial-grassland-base",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",selectable:!1}]),Ze=f(()=>Wt(y.value)),_e=f(()=>it(Ze.value)),ke=f(()=>{const e=_e.value.left;return e.filter(t=>!(t!=null&&t.placeholder)).map(t=>Se(t,e.length))}),xe=f(()=>{const e=_e.value.right;return e.map(t=>Se(t,e.length))}),Qe=f(()=>{var n,a,s;const e=ge("yak-industry-chain","yak-industry-points");if(Q.value){const r=[];if(D.value.includes("artificial-grassland-plots")){const v=ge("yak-industry-chain","artificial-grassland-plots");v&&r.push(S(x({},v),{activeLegend:(n=v.legends)==null?void 0:n[0]}))}if(D.value.includes("yak-industry-points")&&e){const v=(a=e.legends)==null?void 0:a.find(k=>k.key==="yak-industry-artificial-grassland");r.push(S(x({},e),{showPointLabels:!1,activeLegend:v}))}if(!r.length)return null;const[d,...o]=r;return S(x({},d),{overlayLayers:o})}const t=(s=e==null?void 0:e.legends)==null?void 0:s.find(r=>{var d;return((d=r.match)==null?void 0:d.value)===y.value||r.key===`yak-industry-${y.value}`});return e&&S(x({},e),{hidePointFeatures:y.value==="family-pasture",hidePointMarkers:y.value==="family-pasture",showPointLabels:y.value==="family-pasture"?!1:e.showPointLabels,activeLegend:t||{key:`yak-industry-empty-${y.value}`,name:I.value.name,fillColor:I.value.color,strokeColor:I.value.color,match:{field:"stageKey",value:y.value}}})}),et=f(()=>Ut.map(e=>({key:e.key,name:e.name,color:e.color,width:e.width}))),tt=f(()=>{const e=y.value==="family-pasture",t=Q.value&&D.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!e&&!Q.value||t,showMissingTownStats:e,title:e?"家庭生态牧场":`${I.value.name}排行`,metricLabel:e?"生态牧场":I.value.metricLabel,unit:I.value.unit,rows:e?Et():[]}}),w=f(()=>{var e;return pe(S(x({},h.value||{}),{featuredBaseKey:L.value||((e=h.value)==null?void 0:e.featuredBaseKey)}))}),ae=f(()=>{const e=h.value;if(!e)return[];if(w.value){const t=w.value,n=we(e).filter(a=>["设计存栏","年出栏量"].includes(a.label));return[{label:"所在地",value:`${t.town} ${t.village}`},{label:"运营单位",value:t.operator},...n].filter(a=>a.value!==void 0&&a.value!==null&&String(a.value).trim()!=="")}return e.categoryCode==="YC-FAMILY-PASTURE"?[{label:"所在乡镇",value:B(e.town)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!==""):[{label:"所属环节",value:B(e.stageName)},{label:"主体类型",value:B(e.categoryName)},{label:"所在乡镇",value:B(e.town)},{label:"能力规模",value:St(e)},{label:"运行状态",value:B(e.status)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!=="")}),at=f(()=>{var e,t;return w.value?"重点示范基地":B(((e=h.value)==null?void 0:e.categoryName)||((t=h.value)==null?void 0:t.stageName))}),nt=f(()=>{var e,t;return((e=w.value)==null?void 0:e.name)||B((t=h.value)==null?void 0:t.name)}),st=f(()=>{var Re;const t=((Re=h.value)==null?void 0:Re.categoryCode)==="YC-FAMILY-PASTURE",n=ae.value.filter(Mt=>Mt.wide).length,a=Math.ceil(Math.max(0,ae.value.length-n)/2)+n,s=w.value?w.value.image?576:532:t?Math.min(400,Math.max(318,150+a*38)):Math.min(520,Math.max(252,116+ae.value.length*40)),r=24,d=28,o={x:Math.max(r,Math.min(1920-r,Number(X.value.x||0))),y:Math.max(r,Math.min(1080-r,Number(X.value.y||0)))},v=V+46,k=1920-V-46,H=Math.min(Math.max(o.x-456/2,v),k-456),W=Math.min(Math.max(o.y-s-d,128),1080-s-116),ve=Math.min(Math.max(o.x-H,34),456-34);return{left:`${H}px`,top:`${W}px`,"--point-arrow-left":`${ve}px`,"--point-arrow-top":"100%","--point-arrow-x":"-50%","--point-arrow-y":"-8px","--point-arrow-rotate":"45deg"}}),rt=f(()=>{const o={x:Math.max(452,Math.min(1468,Number(Z.value.x||960))),y:Math.max(128,Math.min(960,Number(Z.value.y||540)))},v=Math.min(Math.max(o.x-460/2,452),1468-460),k=o.y-374-26,H=k>=116,W=H?k:Math.min(Math.max(o.y+26,116),944-374),ve=Math.min(Math.max(o.x-v,26),460-26);return{left:`${v}px`,top:`${W}px`,"--feature-arrow-left":`${ve}px`,"--feature-arrow-top":H?`${374-6}px`:"-6px","--feature-arrow-rotate":H?"45deg":"225deg"}});be(y,e=>{vt(e)},{immediate:!0}),jt(()=>{fe(),window.addEventListener("resize",fe),gt()}),qt(()=>{var e,t;ye=!0,window.removeEventListener("resize",fe),A&&window.clearTimeout(A),_&&window.cancelAnimationFrame(_),(t=(e=p.value)==null?void 0:e.destroyMap)==null||t.call(e)}),be(()=>R.active,e=>{var t,n,a,s;p.value&&(e?(he(),(n=(t=p.value).resume)==null||n.call(t)):(s=(a=p.value).pause)==null||s.call(a))}),be(D,()=>{se()},{deep:!0});function lt(e){e!==y.value&&(y.value=e,se())}function it(e={}){const t=Me(e.left),n=Me(e.right);if(n.length)return{left:t,right:n};const a=[...t,...n];return a.length<=4?{left:a,right:[]}:{left:t,right:n}}function Se(e,t=0){if((e==null?void 0:e.fixedHeight)===!0)return S(x({},e),{height:J.value});if((e==null?void 0:e.fillHeight)===!0)return S(x({},e),{height:ot(t)});if(["projectTable","projectLedger"].includes(e==null?void 0:e.type))return S(x({},e),{height:ut(e)});const n=Number((e==null?void 0:e.height)||0)>=400||(e==null?void 0:e.span)===2,a=(e==null?void 0:e.keepSpanHeight)===!0;return S(x({},e),{height:t===1&&!a?Oe.value:n?ce.value:J.value})}function ot(e=1){const t=Math.max(1,Number(e)||1),a=Math.max(1080,Number(j.value)||1080)-N-O-q*Math.max(t-1,0);return Math.max(qe,Math.floor(a/t))}function ut(e={}){if((e==null?void 0:e.span)===2||(e==null?void 0:e.keepSpanHeight)===!0)return ce.value;const t=Array.isArray(e.rows)?e.rows:[],n=100,a=32,s=n+25+t.length*a;return Math.min(ce.value,Math.max(J.value,s))}function Me(e=[]){return e.filter(Boolean)}function ne(e={}){return(e==null?void 0:e.renderer)==="business"&&(e==null?void 0:e.type)==="column"&&(e==null?void 0:e.variant)==="townCompact"}function Fe(e={}){return Array.isArray(e.rows)&&e.rows.some(t=>Number(t!=null&&t.zero?0:(t==null?void 0:t.value)||0)>0)}function Ce(e={}){const t=Array.isArray(e.rows)?e.rows:[],n=t.map(r=>Number(r!=null&&r.zero?0:(r==null?void 0:r.value)||0)),a=Math.max(...n,1),s=ct(t);return Vt({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:zt((r=[])=>{var W;const o=((W=(Array.isArray(r)?r:[r])[0])==null?void 0:W.data)||{},v=o.zero?"0":o.displayValue,k=o.unit||s||"",H=o.extra?`
${o.extra}`:"";return`${o.name||""}
${v}${k}${H}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:s?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${s}`,fill:We,font:`10px ${Kt}`}}]:[],xAxis:{type:"category",data:t.map(r=>(r==null?void 0:r.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:Dt,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(e==null?void 0:e.axisLabelMode)==="short"?yt:dt}},yAxis:{type:"value",min:0,max:Math.ceil(a*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:Gt,type:"dashed"}}},series:[{type:"bar",data:t.map((r,d)=>{var k;const o=!!(r!=null&&r.zero||r!=null&&r.isZero),v=o?0:Number((r==null?void 0:r.value)||0);return{name:r==null?void 0:r.name,value:v,displayValue:(k=r==null?void 0:r.displayValue)!=null?k:Pe(v),unit:(r==null?void 0:r.unit)||s||"",extra:(r==null?void 0:r.extra)||"",zero:o,itemStyle:{color:o?"rgba(48, 220, 255, 0.1)":e!=null&&e.uniformColor?ht():ft(d,r)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:Ue,fontFamily:It,fontSize:10,fontWeight:700,formatter(r={}){var o;const d=r.data||{};return d.zero?"":(o=d.displayValue)!=null?o:Pe(Number(d.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function ct(e=[]){const t=[...new Set(e.map(n=>n==null?void 0:n.unit).filter(Boolean))];return t.length===1?t[0]:""}function dt(e){const t=String(e||"").replace(/\s+/g,"");return Array.from(t).slice(0,3).join(` +var Ft=Object.defineProperty,Ct=Object.defineProperties;var Pt=Object.getOwnPropertyDescriptors;var Ve=Object.getOwnPropertySymbols;var Lt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var ze=(b,m,g)=>m in b?Ft(b,m,{enumerable:!0,configurable:!0,writable:!0,value:g}):b[m]=g,x=(b,m)=>{for(var g in m||(m={}))Lt.call(m,g)&&ze(b,g,m[g]);if(Ve)for(var g of Ve(m))Tt.call(m,g)&&ze(b,g,m[g]);return b},S=(b,m)=>Ct(b,Pt(m));var U=(b,m,g)=>new Promise((R,P)=>{var V=N=>{try{q(g.next(N))}catch(O){P(O)}},j=N=>{try{q(g.throw(N))}catch(O){P(O)}},q=N=>N.done?R(N.value):Promise.resolve(N.value).then(V,j);q((g=g.apply(b,m)).next())});import{H as Ke}from"./index.esm.min-da05f706-1784132792831.js";import{_ as De}from"./index-a4d3ff67-1784132792831.js";import{M as Nt}from"./index-24267a69-1784132792831.js";import{a as Ge,_ as $t}from"./FeatureInfoPanel-8ee1b2b1-1784132792831.js";import{_ as At}from"./LayerPanel-fa97fc8c-1784132792831.js";import{_ as Ht}from"./TopicSwitcher-2e4ca291-1784132792831.js";import{A as Bt}from"./assets-8cd57427-1784132792831.js";import{g as ge}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{q as ee,r as Rt,s as Ie}from"./screen2Standard-41868f75-1784132792831.js";import{w as Vt,f as zt,l as We,m as Ue,n as Kt,o as Dt,p as Gt,q as It,s as Ee,e as me}from"./chartTheme-73e4a943-1784132792831.js";import{g as Ye,a as Wt,i as Ut,b as Et,c as pe,d as we,e as Yt}from"./data-b4247fde-1784132792831.js";import{g as f,w as be,q as jt,h as qt,A as le,o as i,c as u,b as ie,a as l,j as T,F as M,y as F,C as E,x as je,u as oe,n as Y,t as c,J as ue,d as C}from"./index-1784132792831.js";import"./index-a1b5e9c0-1784132792831.js";import"./index-e9f36657-1784132792831.js";import"./livestockData-36ec0ae2-1784132792831.js";const Ot={class:"yak-industry-chain"},Jt={key:0,class:"industry-map-loading"},Xt={key:1,class:"fgw-left industry-side-panel industry-side-panel--left"},Zt={class:"fgw-side-stack industry-side-stack is-left"},Qt={key:1,class:"industry-panel-empty"},ea={key:3,class:"industry-featured-base-list"},ta=["disabled","aria-label","onClick"],aa={class:"industry-featured-base__index"},na={class:"industry-featured-base__copy"},sa={key:4,class:"industry-leadership-mode-list"},ra={key:5,class:"industry-ledger-list"},la={key:2,class:"fgw-right industry-side-panel industry-side-panel--right"},ia={class:"fgw-side-stack industry-side-stack is-right"},oa={key:1,class:"industry-panel-empty"},ua={key:3,class:"industry-featured-base-list"},ca=["disabled","aria-label","onClick"],da={class:"industry-featured-base__index"},ya={class:"industry-featured-base__copy"},fa={key:4,class:"industry-leadership-mode-list"},ha={key:5,class:"industry-ledger-list"},va={key:3,class:"industry-artificial-layer-tools"},ga={class:"industry-point-detail__head"},ma={class:"industry-point-detail__name"},pa={key:0,class:"industry-point-detail__profile"},wa={class:"industry-point-detail__profile-head"},ba=["src","alt"],_a={class:"industry-point-detail__facts"},ka={class:"industry-point-detail__highlights"},xa={class:"industry-bottom-switcher"},Da={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(b,{expose:m,emit:g}){const R=b,P=g,V=ee.sideCardWidth,j=C(typeof window=="undefined"?1080:window.innerHeight),q=ee.sideCardGap,N=ee.sidePanelTop,O=ee.sidePanelBottom,qe=ee.sideCardMinHeight,J=f(()=>Rt(j.value)),ce=f(()=>Ie(J.value,2)),Oe=f(()=>Ie(J.value,4)),y=C("family-pasture"),p=C(null),z=C(!1),h=C(null),L=C(""),X=C({x:0,y:0}),$=C(null),Z=C({x:0,y:0}),K=C(!1),D=C(["artificial-grassland-plots"]);let te=null,de=!1,G=!1,A=null,_=null,ye=!1;const I=f(()=>Ye(y.value));f(()=>y.value==="family-pasture");const Q=f(()=>y.value==="artificial-grassland"),Je=f(()=>[{key:"artificial-grassland-plots",name:"待核定种草图斑",color:"#30DCFF",stroke:"#C9FBFF"},{key:"yak-industry-points",name:"人工种草基地点",color:"#19FFC6",stroke:"#B7FFF2"}]),Xe=f(()=>[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1},{key:"artificial-grassland-base",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",selectable:!1}]),Ze=f(()=>Wt(y.value)),_e=f(()=>it(Ze.value)),ke=f(()=>{const e=_e.value.left;return e.filter(t=>!(t!=null&&t.placeholder)).map(t=>Se(t,e.length))}),xe=f(()=>{const e=_e.value.right;return e.map(t=>Se(t,e.length))}),Qe=f(()=>{var n,a,s;const e=ge("yak-industry-chain","yak-industry-points");if(Q.value){const r=[];if(D.value.includes("artificial-grassland-plots")){const v=ge("yak-industry-chain","artificial-grassland-plots");v&&r.push(S(x({},v),{activeLegend:(n=v.legends)==null?void 0:n[0]}))}if(D.value.includes("yak-industry-points")&&e){const v=(a=e.legends)==null?void 0:a.find(k=>k.key==="yak-industry-artificial-grassland");r.push(S(x({},e),{showPointLabels:!1,activeLegend:v}))}if(!r.length)return null;const[d,...o]=r;return S(x({},d),{overlayLayers:o})}const t=(s=e==null?void 0:e.legends)==null?void 0:s.find(r=>{var d;return((d=r.match)==null?void 0:d.value)===y.value||r.key===`yak-industry-${y.value}`});return e&&S(x({},e),{hidePointFeatures:y.value==="family-pasture",hidePointMarkers:y.value==="family-pasture",showPointLabels:y.value==="family-pasture"?!1:e.showPointLabels,activeLegend:t||{key:`yak-industry-empty-${y.value}`,name:I.value.name,fillColor:I.value.color,strokeColor:I.value.color,match:{field:"stageKey",value:y.value}}})}),et=f(()=>Ut.map(e=>({key:e.key,name:e.name,color:e.color,width:e.width}))),tt=f(()=>{const e=y.value==="family-pasture",t=Q.value&&D.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!e&&!Q.value||t,showMissingTownStats:e,title:e?"家庭生态牧场":`${I.value.name}排行`,metricLabel:e?"生态牧场":I.value.metricLabel,unit:I.value.unit,rows:e?Et():[]}}),w=f(()=>{var e;return pe(S(x({},h.value||{}),{featuredBaseKey:L.value||((e=h.value)==null?void 0:e.featuredBaseKey)}))}),ae=f(()=>{const e=h.value;if(!e)return[];if(w.value){const t=w.value,n=we(e).filter(a=>["设计存栏","年出栏量"].includes(a.label));return[{label:"所在地",value:`${t.town} ${t.village}`},{label:"运营单位",value:t.operator},...n].filter(a=>a.value!==void 0&&a.value!==null&&String(a.value).trim()!=="")}return e.categoryCode==="YC-FAMILY-PASTURE"?[{label:"所在乡镇",value:B(e.town)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!==""):[{label:"所属环节",value:B(e.stageName)},{label:"主体类型",value:B(e.categoryName)},{label:"所在乡镇",value:B(e.town)},{label:"能力规模",value:St(e)},{label:"运行状态",value:B(e.status)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!=="")}),at=f(()=>{var e,t;return w.value?"重点示范基地":B(((e=h.value)==null?void 0:e.categoryName)||((t=h.value)==null?void 0:t.stageName))}),nt=f(()=>{var e,t;return((e=w.value)==null?void 0:e.name)||B((t=h.value)==null?void 0:t.name)}),st=f(()=>{var Re;const t=((Re=h.value)==null?void 0:Re.categoryCode)==="YC-FAMILY-PASTURE",n=ae.value.filter(Mt=>Mt.wide).length,a=Math.ceil(Math.max(0,ae.value.length-n)/2)+n,s=w.value?w.value.image?576:532:t?Math.min(400,Math.max(318,150+a*38)):Math.min(520,Math.max(252,116+ae.value.length*40)),r=24,d=28,o={x:Math.max(r,Math.min(1920-r,Number(X.value.x||0))),y:Math.max(r,Math.min(1080-r,Number(X.value.y||0)))},v=V+46,k=1920-V-46,H=Math.min(Math.max(o.x-456/2,v),k-456),W=Math.min(Math.max(o.y-s-d,128),1080-s-116),ve=Math.min(Math.max(o.x-H,34),456-34);return{left:`${H}px`,top:`${W}px`,"--point-arrow-left":`${ve}px`,"--point-arrow-top":"100%","--point-arrow-x":"-50%","--point-arrow-y":"-8px","--point-arrow-rotate":"45deg"}}),rt=f(()=>{const o={x:Math.max(452,Math.min(1468,Number(Z.value.x||960))),y:Math.max(128,Math.min(960,Number(Z.value.y||540)))},v=Math.min(Math.max(o.x-460/2,452),1468-460),k=o.y-374-26,H=k>=116,W=H?k:Math.min(Math.max(o.y+26,116),944-374),ve=Math.min(Math.max(o.x-v,26),460-26);return{left:`${v}px`,top:`${W}px`,"--feature-arrow-left":`${ve}px`,"--feature-arrow-top":H?`${374-6}px`:"-6px","--feature-arrow-rotate":H?"45deg":"225deg"}});be(y,e=>{vt(e)},{immediate:!0}),jt(()=>{fe(),window.addEventListener("resize",fe),gt()}),qt(()=>{var e,t;ye=!0,window.removeEventListener("resize",fe),A&&window.clearTimeout(A),_&&window.cancelAnimationFrame(_),(t=(e=p.value)==null?void 0:e.destroyMap)==null||t.call(e)}),be(()=>R.active,e=>{var t,n,a,s;p.value&&(e?(he(),(n=(t=p.value).resume)==null||n.call(t)):(s=(a=p.value).pause)==null||s.call(a))}),be(D,()=>{se()},{deep:!0});function lt(e){e!==y.value&&(y.value=e,se())}function it(e={}){const t=Me(e.left),n=Me(e.right);if(n.length)return{left:t,right:n};const a=[...t,...n];return a.length<=4?{left:a,right:[]}:{left:t,right:n}}function Se(e,t=0){if((e==null?void 0:e.fixedHeight)===!0)return S(x({},e),{height:J.value});if((e==null?void 0:e.fillHeight)===!0)return S(x({},e),{height:ot(t)});if(["projectTable","projectLedger"].includes(e==null?void 0:e.type))return S(x({},e),{height:ut(e)});const n=Number((e==null?void 0:e.height)||0)>=400||(e==null?void 0:e.span)===2,a=(e==null?void 0:e.keepSpanHeight)===!0;return S(x({},e),{height:t===1&&!a?Oe.value:n?ce.value:J.value})}function ot(e=1){const t=Math.max(1,Number(e)||1),a=Math.max(1080,Number(j.value)||1080)-N-O-q*Math.max(t-1,0);return Math.max(qe,Math.floor(a/t))}function ut(e={}){if((e==null?void 0:e.span)===2||(e==null?void 0:e.keepSpanHeight)===!0)return ce.value;const t=Array.isArray(e.rows)?e.rows:[],n=100,a=32,s=n+25+t.length*a;return Math.min(ce.value,Math.max(J.value,s))}function Me(e=[]){return e.filter(Boolean)}function ne(e={}){return(e==null?void 0:e.renderer)==="business"&&(e==null?void 0:e.type)==="column"&&(e==null?void 0:e.variant)==="townCompact"}function Fe(e={}){return Array.isArray(e.rows)&&e.rows.some(t=>Number(t!=null&&t.zero?0:(t==null?void 0:t.value)||0)>0)}function Ce(e={}){const t=Array.isArray(e.rows)?e.rows:[],n=t.map(r=>Number(r!=null&&r.zero?0:(r==null?void 0:r.value)||0)),a=Math.max(...n,1),s=ct(t);return Vt({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:zt((r=[])=>{var W;const o=((W=(Array.isArray(r)?r:[r])[0])==null?void 0:W.data)||{},v=o.zero?"0":o.displayValue,k=o.unit||s||"",H=o.extra?`
${o.extra}`:"";return`${o.name||""}
${v}${k}${H}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:s?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${s}`,fill:We,font:`10px ${Kt}`}}]:[],xAxis:{type:"category",data:t.map(r=>(r==null?void 0:r.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:Dt,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(e==null?void 0:e.axisLabelMode)==="short"?yt:dt}},yAxis:{type:"value",min:0,max:Math.ceil(a*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:Gt,type:"dashed"}}},series:[{type:"bar",data:t.map((r,d)=>{var k;const o=!!(r!=null&&r.zero||r!=null&&r.isZero),v=o?0:Number((r==null?void 0:r.value)||0);return{name:r==null?void 0:r.name,value:v,displayValue:(k=r==null?void 0:r.displayValue)!=null?k:Pe(v),unit:(r==null?void 0:r.unit)||s||"",extra:(r==null?void 0:r.extra)||"",zero:o,itemStyle:{color:o?"rgba(48, 220, 255, 0.1)":e!=null&&e.uniformColor?ht():ft(d,r)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:Ue,fontFamily:It,fontSize:10,fontWeight:700,formatter(r={}){var o;const d=r.data||{};return d.zero?"":(o=d.displayValue)!=null?o:Pe(Number(d.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function ct(e=[]){const t=[...new Set(e.map(n=>n==null?void 0:n.unit).filter(Boolean))];return t.length===1?t[0]:""}function dt(e){const t=String(e||"").replace(/\s+/g,"");return Array.from(t).slice(0,3).join(` `)}function yt(e){return Array.from(String(e||"").replace(/\s+/g,"")).slice(0,2).join("")}function ft(e,t={}){return t.color||t.fillColor?t.color||t.fillColor:Ee(me[e%me.length])}function ht(){return Ee(me[0])}function Pe(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:"--"}function fe(){j.value=typeof window=="undefined"?1080:window.innerHeight}function vt(e=y.value){const t=e||y.value;P("module-stats",{moduleKey:"yak-industry-chain",items:Yt(t)})}function gt(){var e,t,n;te=new Bt,de=!1,P("loading-progress",{progress:0}),(t=(e=te.instance)==null?void 0:e.on)==null||t.call(e,"onProgress",(a,s,r)=>{P("loading-progress",{progress:Math.floor(s/(r||1)*100),path:a,itemsLoaded:s,itemsTotal:r})}),(n=te.ready)==null||n.then(()=>{de=!0,he()}).catch(()=>{z.value=!0,P("map-ready")})}function he(){ye||!R.active||!de||G||(G=!0,A&&window.clearTimeout(A),A=window.setTimeout(()=>{A=null,Le()},600))}function Le(e=0){return U(this,null,function*(){var n,a;if(ye)return;if(!R.active){G=!1;return}if(yield le(),!R.active){G=!1;return}const t=p.value;if((n=t==null?void 0:t.loadMap)==null||n.call(t,te),t!=null&&t.canvasMap){z.value=!0,P("loading-progress",{progress:100}),P("map-ready"),(a=t.play)==null||a.call(t);return}if(e<24){window.setTimeout(()=>Le(e+1),120);return}G=!1,z.value=!0,P("map-ready")})}function mt(){A&&(window.clearTimeout(A),A=null)}function Te(){var e,t,n,a;(t=(e=p.value)==null?void 0:e.resume)==null||t.call(e),(a=(n=p.value)==null?void 0:n.refreshView)==null||a.call(n)}function pt(){var e,t;if(se(),(t=(e=p.value)==null?void 0:e.hasMap)!=null&&t.call(e)){z.value=!0,Te();return}mt(),z.value=!1,G=!1,le(()=>{he()})}m({refreshMapView:Te,resetMap:pt});function wt(e={}){var a,s,r,d;const t=e.feature||null,n=(t==null?void 0:t.properties)||{};if(((a=t==null?void 0:t.layer)==null?void 0:a.key)==="artificial-grassland-plots"){h.value=null,$.value=t;const o=e.screen||((r=(s=p.value)==null?void 0:s.getVectorFeatureScreen)==null?void 0:r.call(s,t.feature));o&&(Z.value=re(o)),K.value=!!o;return}if($.value=null,K.value=!1,n.stageKey){if(String(n.stageKey)!==String(y.value)){h.value=null,L.value="";return}L.value=((d=pe(n))==null?void 0:d.key)||"",h.value=n,X.value=re(e.screen);return}h.value=null,L.value=""}function Ne(){return U(this,arguments,function*(e={}){if(e.stageKey==="artificial-grassland"){yield bt(e);return}yield Ae(e)})}function bt(){return U(this,arguments,function*(e={}){e!=null&&e.canLocate&&(Q.value||(y.value="artificial-grassland",yield le()),h.value=null,L.value="",$.value=null,Z.value={x:960,y:510},K.value=!1,window.setTimeout(()=>$e(e),90))})}function $e(e={},t=0){var s,r,d;const n=(r=(s=p.value)==null?void 0:s.focusVectorFeature)==null?void 0:r.call(s,e);if(!(n!=null&&n.feature)){t<4&&window.setTimeout(()=>$e(e,t+1),180);return}$.value={id:((d=n.feature.properties)==null?void 0:d.id)||e.id,properties:n.feature.properties||{},feature:n.feature,layer:ge("yak-industry-chain","artificial-grassland-plots")};const a=$.value.id;window.setTimeout(()=>{var o;((o=$.value)==null?void 0:o.id)===a&&(_t(n.feature,n.screen),K.value=!0)},820)}function _t(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getVectorFeatureScreen)==null?void 0:s.call(a,e))||t;n&&(Z.value=re(n))}function Ae(){return U(this,arguments,function*(e={}){var a;if(!e.canLocate)return;const t=!!(e.stageKey&&e.stageKey!==y.value);t&&(y.value=e.stageKey,yield le());const n=kt(e);L.value=((a=pe(n))==null?void 0:a.key)||"",h.value=n,X.value={x:960,y:500},window.setTimeout(()=>{var r,d;const s=(d=(r=p.value)==null?void 0:r.focusYakIndustryPoint)==null?void 0:d.call(r,n);Be(n,s),xt(n)},t?320:80)})}function He(){return U(this,arguments,function*(e={}){e.point&&(L.value=e.key,yield Ae(e.point))})}function se(){var t,n,a,s;h.value=null,L.value="",$.value=null,K.value=!1,_&&(window.cancelAnimationFrame(_),_=null);const e=((n=(t=p.value)==null?void 0:t.canvasMap)==null?void 0:n.value)||((a=p.value)==null?void 0:a.canvasMap);(s=e==null?void 0:e.clearSelectedFeature)==null||s.call(e)}function kt(e={}){var a;const t=Number(e.longitude),n=Number(e.latitude);return S(x({},e),{id:e.key||e.id,name:e.fullName||e.name,stageKey:e.stageKey,stageName:e.stageName||((a=Ye(e.stageKey))==null?void 0:a.name),categoryName:e.categoryName||e.typeName,capacity:e.value,capacityUnit:e.unit,longitude:t,latitude:n,geometry:Number.isFinite(t)&&Number.isFinite(n)?{type:"Point",coordinates:[t,n]}:void 0,preferCoordinateMatch:Number.isFinite(t)&&Number.isFinite(n),status:e.status})}function Be(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getYakIndustryPointScreen)==null?void 0:s.call(a,e))||(t==null?void 0:t.screen);n&&(X.value=re(n))}function xt(e,t=920){var s,r;_&&window.cancelAnimationFrame(_);const n=((r=(s=window.performance)==null?void 0:s.now)==null?void 0:r.call(s))||Date.now(),a=()=>{var o,v;if(!h.value||h.value.id!==e.id){_=null;return}if(Be(e),(((v=(o=window.performance)==null?void 0:o.now)==null?void 0:v.call(o))||Date.now())-n{var n;return i(),u("div",Ot,[ie(Nt,{ref_key:"mapSceneRef",ref:p,class:"industry-map-scene","active-layer":Qe.value,"map-ranking":tt.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureInfo:wt},null,8,["active-layer","map-ranking"]),t[3]||(t[3]=l("div",{class:"industry-map-scrim"},null,-1)),z.value?T("",!0):(i(),u("div",Jt,"3D地图加载中")),ke.value.length?(i(),u("div",Xt,[l("div",Zt,[(i(!0),u(M,null,F(ke.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card left-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",Qt," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ea,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",aa,c(`0${r+1}`),1),l("span",na,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ta))),128))])):a.renderer==="leadershipMode"?(i(),u("div",sa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ra,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),xe.value.length?(i(),u("div",la,[l("div",ia,[(i(!0),u(M,null,F(xe.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card right-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",oa," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ua,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",da,c(`0${r+1}`),1),l("span",ya,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ca))),128))])):a.renderer==="leadershipMode"?(i(),u("div",fa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ha,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),Q.value?(i(),u("div",va,[ie(At,{modelValue:D.value,"onUpdate:modelValue":t[0]||(t[0]=a=>D.value=a),"topic-key":"yak-industry-chain",layers:Je.value,legends:Xe.value,width:248,height:430,multiple:""},null,8,["modelValue","layers","legends"])])):T("",!0),$.value&&K.value?(i(),u("div",{key:4,class:"industry-map-feature-info",style:ue(rt.value)},[ie($t,{title:"人工草地详情",feature:$.value,width:460,height:374},null,8,["feature"])],4)):T("",!0),h.value?(i(),u("div",{key:5,class:"industry-point-detail",style:ue(st.value)},[l("div",ga,[l("span",null,c(at.value),1),l("button",{type:"button",title:"关闭",onClick:se},"×")]),l("div",ma,c(nt.value),1),w.value?(i(),u("div",pa,[l("div",wa,[t[1]||(t[1]=l("span",null,"基地介绍",-1)),l("strong",null,c(w.value.tag),1)]),l("p",null,c(w.value.summary),1),w.value.image?(i(),u("img",{key:0,class:"industry-point-detail__image",src:w.value.image,alt:`${w.value.name}项目资料图`},null,8,ba)):T("",!0),l("div",_a,[(i(!0),u(M,null,F(w.value.facts,a=>(i(),u("div",{key:a.label},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1),l("small",null,c(a.note),1)]))),128))]),l("div",ka,[t[2]||(t[2]=l("span",null,"示范亮点",-1)),(i(!0),u(M,null,F(w.value.highlights,a=>(i(),u("i",{key:a},c(a),1))),128))])])):T("",!0),l("div",{class:Y(["industry-point-detail__grid",{"is-family-layout":((n=h.value)==null?void 0:n.categoryCode)==="YC-FAMILY-PASTURE"}])},[(i(!0),u(M,null,F(ae.value,a=>(i(),u("div",{key:a.label,class:Y(["industry-point-detail__row",{"is-wide":a.wide}])},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1)],2))),128))],2)],4)):T("",!0),l("div",xa,[ie(Ht,{"model-value":y.value,topics:et.value,"onUpdate:modelValue":lt},null,8,["model-value","topics"])])])}}};export{Da as default}; diff --git a/docs/assets/index-5afedc21-balabala-1784132466083.css b/docs/assets/index-5afedc21-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-5afedc21-balabala-1784132466083.css rename to docs/assets/index-5afedc21-balabala-1784132792831.css diff --git a/docs/assets/index-1e17e433-balabala-1784132466083.css b/docs/assets/index-6965fbd6-balabala-1784132792831.css similarity index 95% rename from docs/assets/index-1e17e433-balabala-1784132466083.css rename to docs/assets/index-6965fbd6-balabala-1784132792831.css index ad2c57f..4f28dca 100644 --- a/docs/assets/index-1e17e433-balabala-1784132466083.css +++ b/docs/assets/index-6965fbd6-balabala-1784132792831.css @@ -1 +1 @@ -@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1784132466083.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1784132466083.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1784132466083.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1784132466083.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1784132466083.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1784132466083.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1784132466083.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1784132466083.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1784132466083.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1784132466083.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1784132466083.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1784132466083.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1784132466083.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1784132466083.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1784132466083.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1784132466083.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1784132466083.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1784132466083.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1784132466083.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1784132466083.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1784132466083.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1784132466083.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1784132466083.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1784132466083.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784132466083.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1784132466083.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1784132466083.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen:not(.is-yak-industry-chain){--screen-color-card-bg: rgba(5, 31, 46, .84);--screen-color-card-header-bg: rgba(24, 92, 118, .72);--screen-color-card-border: rgba(78, 223, 244, .48);--screen-color-chart-grid-line: rgba(185, 235, 244, .2);--screen-color-text-weak: rgba(223, 247, 251, .72);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-axis-size: 11px;--screen-chart-label-size: 12px;--screen-table-body-size: 12px;--screen-table-value-size: 13px;--screen-kpi-label-size: 13px;--screen-kpi-value-size: 29px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 16px;--screen-popup-body-size: 12px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.platform-screen:not(.is-yak-industry-chain) .m-card{isolation:isolate;transition:filter .18s ease}.platform-screen:not(.is-yak-industry-chain) .m-card-bd:before{content:"";position:absolute;top:34px;right:1px;bottom:1px;left:1px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(66,209,231,.14),transparent 42%),linear-gradient(160deg,rgba(8,43,60,.92),rgba(3,22,34,.84));box-shadow:inset 0 0 0 1px #51ddf233,inset 0 18px 36px #40beda0f,0 10px 26px #0008103d;backdrop-filter:blur(7px) saturate(1.08);clip-path:polygon(0 0,100% 0,100% 44%,99.1% 46%,99.1% 54%,100% 56%,100% 100%,0 100%,0 56%,.9% 54%,.9% 46%,0 44%)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-bg{opacity:.92;filter:saturate(.86) brightness(.96)}.platform-screen:not(.is-yak-industry-chain) .m-card-bd-bg{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-title{left:20px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:var(--screen-card-title-size, 16px);font-weight:var(--screen-card-title-weight, 600);line-height:var(--screen-card-title-line-height, 32px);letter-spacing:.8px;text-shadow:0 2px 10px rgba(0,8,14,.72)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-zs1{opacity:.58}.platform-screen:not(.is-yak-industry-chain) .m-card-hd .saoguang{opacity:.42}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-left{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-right{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .home-card:hover,.platform-screen:not(.is-yak-industry-chain) .pasture-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .yak-side-card:hover{filter:brightness(1.06)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21{color:#f7fefff5;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-icon-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-main,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-chip,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-focus,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-chart,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-heat-cell,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-row{border-color:#5adcf02e;background:linear-gradient(90deg,rgba(68,210,232,.07),transparent 62%),rgba(3,25,38,.52);box-shadow:inset 0 1px #e8fdff09}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-columns:before,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peaks:before{opacity:.38}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band{border-color:#74e0ef2e;background-color:#4ccadc13}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band i{filter:saturate(.92) brightness(1.04)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row{padding:3px 5px 3px 7px;border-left:2px solid var(--row-color, rgba(67, 217, 255, .72));background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 10%,transparent),transparent 72%);transition:background .16s ease,transform .16s ease}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row.is-active,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 18%,transparent),transparent 82%);transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-track{stroke:#a5dfe929}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-halo,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-glow{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-grid{stroke:#c7eff629}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-panel-empty{color:#def7fba6}.platform-screen:not(.is-yak-industry-chain) .fgw-map-layer-tools .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-layer-tools .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.97),rgba(2,17,28,.95));box-shadow:inset 0 0 0 1px #59e1f447,0 18px 42px #00070e57;backdrop-filter:blur(12px) saturate(1.12)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item{min-height:30px;border-color:#5ad9ed2e;background:rgba(2,20,31,.64);color:#e8fafdc7;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;font-weight:500;line-height:16px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:focus-visible{border-color:#62e2f585;background:rgba(28,99,119,.34);color:#fff;outline:none;transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item.is-active{border-color:#59dff3ad;background:linear-gradient(90deg,rgba(30,132,150,.48),rgba(3,25,37,.76));box-shadow:inset 3px 0 #4fe2f4db}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row{border-color:#59dcef14;background:rgba(6,28,41,.34)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):focus-visible{border-color:#5be0f36b;background:rgba(32,105,122,.28);outline:none}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title,.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;line-height:16px}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title{font-weight:600;letter-spacing:.4px}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{color:#e6f9fcc7;font-weight:500}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-swatch{width:17px;height:11px;border-radius:2px;box-shadow:0 0 10px color-mix(in srgb,currentColor 24%,transparent)}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info{z-index:12}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info:after{content:"";position:absolute;left:calc(var(--feature-panel-anchor-x, 50%) - 8px);bottom:-7px;z-index:0;width:16px;height:16px;border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:rotate(45deg);pointer-events:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .feature-info-card .m-card-hd-title{color:#fff;font-size:var(--screen-popup-title-size, 16px);font-weight:600;background:none;-webkit-text-fill-color:currentColor}.platform-screen:not(.is-yak-industry-chain) .feature-info{padding:8px 10px 10px;font-size:var(--screen-popup-body-size, 12px)}.platform-screen:not(.is-yak-industry-chain) .feature-table{gap:2px;padding-right:6px;scrollbar-gutter:stable}.platform-screen:not(.is-yak-industry-chain) .feature-row{grid-template-columns:108px minmax(0,1fr);min-height:27px;border:1px solid rgba(101,218,235,.12);background:rgba(2,20,31,.54)}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child{border-top:1px solid rgba(101,218,235,.12)}.platform-screen:not(.is-yak-industry-chain) .feature-row span{min-width:0;padding:4px 9px;border-right-color:#65daeb1f;background:rgba(53,159,181,.1);color:#d3f0f5b8;font-size:var(--screen-table-body-size, 12px);font-weight:500;line-height:17px;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row strong{min-width:0;padding:4px 10px;overflow:hidden;color:#f8fefff5;font-size:var(--screen-table-value-size, 13px);font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child strong,.platform-screen:not(.is-yak-industry-chain) .feature-row:nth-child(2) strong{color:#8ef1df;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:17px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher{filter:drop-shadow(0 8px 16px rgba(0,8,14,.3))}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item{transition:filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:hover,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:focus-visible{filter:brightness(1.12);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item.is-active{filter:saturate(1.12) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-title{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:15px;font-weight:600;line-height:18px;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name small{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:10px;font-weight:500;line-height:11px}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button{transition:border-color .15s ease,background .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:hover,.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:focus-visible{border-color:#68e8f9c7;background:rgba(24,113,136,.5);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:14px;font-weight:500;letter-spacing:.4px;transition:color .15s ease,filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .m-menu-item:hover,.platform-screen:not(.is-yak-industry-chain) .m-menu-item:focus-visible{color:#fff;filter:brightness(1.1);outline:1px solid rgba(91,224,244,.45);outline-offset:2px;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item.is-active{filter:saturate(1.06) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .count-card{padding:4px 10px 6px;background:linear-gradient(90deg,rgba(5,28,40,.26),transparent 82%);box-shadow:inset 0 -1px #53daee1f}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-title .title-zh{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:600;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .value,.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .unit{font-variant-numeric:tabular-nums}.business-chart-tooltip.is-v21{padding:10px 12px;border-color:#5fe2f48a;border-radius:2px;background:radial-gradient(circle at 12% 0%,rgba(70,230,173,.13),transparent 54%),rgba(2,20,31,.96);box-shadow:0 14px 34px #00070e61,inset 0 0 18px #43d9ff0d;backdrop-filter:blur(10px)}@media (prefers-reduced-motion: reduce){.platform-screen:not(.is-yak-industry-chain) *,.platform-screen:not(.is-yak-industry-chain) *:before,.platform-screen:not(.is-yak-industry-chain) *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:420px;right:420px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:420px;right:420px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px}.platform-screen .top-count-card.is-four .count-card-icon{width:64px;height:78px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:390px;right:390px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:390px;right:390px;top:102px;display:flex;grid-template-columns:none;grid-auto-rows:auto;column-gap:0;row-gap:0;justify-content:space-between;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{flex:0 0 auto;width:auto;min-width:184px;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:442px;top:82px;display:grid;grid-template-columns:208px 220px 242px 168px 168px;column-gap:10px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:390px;right:430px;top:96px;display:flex;justify-content:space-between}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} +@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1784132792831.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1784132792831.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1784132792831.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1784132792831.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1784132792831.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1784132792831.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1784132792831.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1784132792831.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1784132792831.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1784132792831.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1784132792831.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1784132792831.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1784132792831.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1784132792831.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1784132792831.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1784132792831.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1784132792831.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1784132792831.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1784132792831.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1784132792831.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1784132792831.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1784132792831.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1784132792831.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1784132792831.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784132792831.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1784132792831.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1784132792831.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen:not(.is-yak-industry-chain){--screen-color-card-bg: rgba(5, 31, 46, .84);--screen-color-card-header-bg: rgba(24, 92, 118, .72);--screen-color-card-border: rgba(78, 223, 244, .48);--screen-color-chart-grid-line: rgba(185, 235, 244, .2);--screen-color-text-weak: rgba(223, 247, 251, .72);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-axis-size: 11px;--screen-chart-label-size: 12px;--screen-table-body-size: 12px;--screen-table-value-size: 13px;--screen-kpi-label-size: 13px;--screen-kpi-value-size: 29px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 16px;--screen-popup-body-size: 12px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.platform-screen:not(.is-yak-industry-chain) .m-card{isolation:isolate;transition:filter .18s ease}.platform-screen:not(.is-yak-industry-chain) .m-card-bd:before{content:"";position:absolute;top:34px;right:1px;bottom:1px;left:1px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(66,209,231,.14),transparent 42%),linear-gradient(160deg,rgba(8,43,60,.92),rgba(3,22,34,.84));box-shadow:inset 0 0 0 1px #51ddf233,inset 0 18px 36px #40beda0f,0 10px 26px #0008103d;backdrop-filter:blur(7px) saturate(1.08);clip-path:polygon(0 0,100% 0,100% 44%,99.1% 46%,99.1% 54%,100% 56%,100% 100%,0 100%,0 56%,.9% 54%,.9% 46%,0 44%)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-bg{opacity:.92;filter:saturate(.86) brightness(.96)}.platform-screen:not(.is-yak-industry-chain) .m-card-bd-bg{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-title{left:20px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:var(--screen-card-title-size, 16px);font-weight:var(--screen-card-title-weight, 600);line-height:var(--screen-card-title-line-height, 32px);letter-spacing:.8px;text-shadow:0 2px 10px rgba(0,8,14,.72)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-zs1{opacity:.58}.platform-screen:not(.is-yak-industry-chain) .m-card-hd .saoguang{opacity:.42}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-left{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-right{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .home-card:hover,.platform-screen:not(.is-yak-industry-chain) .pasture-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .yak-side-card:hover{filter:brightness(1.06)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21{color:#f7fefff5;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-icon-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-main,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-chip,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-focus,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-chart,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-heat-cell,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-row{border-color:#5adcf02e;background:linear-gradient(90deg,rgba(68,210,232,.07),transparent 62%),rgba(3,25,38,.52);box-shadow:inset 0 1px #e8fdff09}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-columns:before,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peaks:before{opacity:.38}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band{border-color:#74e0ef2e;background-color:#4ccadc13}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band i{filter:saturate(.92) brightness(1.04)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row{padding:3px 5px 3px 7px;border-left:2px solid var(--row-color, rgba(67, 217, 255, .72));background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 10%,transparent),transparent 72%);transition:background .16s ease,transform .16s ease}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row.is-active,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 18%,transparent),transparent 82%);transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-track{stroke:#a5dfe929}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-halo,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-glow{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-grid{stroke:#c7eff629}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-panel-empty{color:#def7fba6}.platform-screen:not(.is-yak-industry-chain) .fgw-map-layer-tools .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-layer-tools .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.97),rgba(2,17,28,.95));box-shadow:inset 0 0 0 1px #59e1f447,0 18px 42px #00070e57;backdrop-filter:blur(12px) saturate(1.12)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item{min-height:30px;border-color:#5ad9ed2e;background:rgba(2,20,31,.64);color:#e8fafdc7;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;font-weight:500;line-height:16px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:focus-visible{border-color:#62e2f585;background:rgba(28,99,119,.34);color:#fff;outline:none;transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item.is-active{border-color:#59dff3ad;background:linear-gradient(90deg,rgba(30,132,150,.48),rgba(3,25,37,.76));box-shadow:inset 3px 0 #4fe2f4db}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row{border-color:#59dcef14;background:rgba(6,28,41,.34)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):focus-visible{border-color:#5be0f36b;background:rgba(32,105,122,.28);outline:none}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title,.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;line-height:16px}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title{font-weight:600;letter-spacing:.4px}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{color:#e6f9fcc7;font-weight:500}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-swatch{width:17px;height:11px;border-radius:2px;box-shadow:0 0 10px color-mix(in srgb,currentColor 24%,transparent)}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info{z-index:12}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info:after{content:"";position:absolute;left:calc(var(--feature-panel-anchor-x, 50%) - 8px);bottom:-7px;z-index:0;width:16px;height:16px;border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:rotate(45deg);pointer-events:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .feature-info-card .m-card-hd-title{color:#fff;font-size:var(--screen-popup-title-size, 16px);font-weight:600;background:none;-webkit-text-fill-color:currentColor}.platform-screen:not(.is-yak-industry-chain) .feature-info{padding:8px 10px 10px;font-size:var(--screen-popup-body-size, 12px)}.platform-screen:not(.is-yak-industry-chain) .feature-table{gap:2px;padding-right:6px;scrollbar-gutter:stable}.platform-screen:not(.is-yak-industry-chain) .feature-row{grid-template-columns:108px minmax(0,1fr);min-height:27px;border:1px solid rgba(101,218,235,.12);background:rgba(2,20,31,.54)}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child{border-top:1px solid rgba(101,218,235,.12)}.platform-screen:not(.is-yak-industry-chain) .feature-row span{min-width:0;padding:4px 9px;border-right-color:#65daeb1f;background:rgba(53,159,181,.1);color:#d3f0f5b8;font-size:var(--screen-table-body-size, 12px);font-weight:500;line-height:17px;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row strong{min-width:0;padding:4px 10px;overflow:hidden;color:#f8fefff5;font-size:var(--screen-table-value-size, 13px);font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child strong,.platform-screen:not(.is-yak-industry-chain) .feature-row:nth-child(2) strong{color:#8ef1df;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:17px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher{filter:drop-shadow(0 8px 16px rgba(0,8,14,.3))}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item{transition:filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:hover,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:focus-visible{filter:brightness(1.12);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item.is-active{filter:saturate(1.12) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-title{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:15px;font-weight:600;line-height:18px;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name small{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:10px;font-weight:500;line-height:11px}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button{transition:border-color .15s ease,background .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:hover,.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:focus-visible{border-color:#68e8f9c7;background:rgba(24,113,136,.5);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:14px;font-weight:500;letter-spacing:.4px;transition:color .15s ease,filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .m-menu-item:hover,.platform-screen:not(.is-yak-industry-chain) .m-menu-item:focus-visible{color:#fff;filter:brightness(1.1);outline:1px solid rgba(91,224,244,.45);outline-offset:2px;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item.is-active{filter:saturate(1.06) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .count-card{padding:4px 10px 6px;background:linear-gradient(90deg,rgba(5,28,40,.26),transparent 82%);box-shadow:inset 0 -1px #53daee1f}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-title .title-zh{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:600;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .value,.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .unit{font-variant-numeric:tabular-nums}.business-chart-tooltip.is-v21{padding:10px 12px;border-color:#5fe2f48a;border-radius:2px;background:radial-gradient(circle at 12% 0%,rgba(70,230,173,.13),transparent 54%),rgba(2,20,31,.96);box-shadow:0 14px 34px #00070e61,inset 0 0 18px #43d9ff0d;backdrop-filter:blur(10px)}@media (prefers-reduced-motion: reduce){.platform-screen:not(.is-yak-industry-chain) *,.platform-screen:not(.is-yak-industry-chain) *:before,.platform-screen:not(.is-yak-industry-chain) *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:420px;right:420px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:420px;right:420px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px}.platform-screen .top-count-card.is-four .count-card-icon{width:64px;height:78px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:390px;right:390px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:390px;right:390px;top:102px;display:flex;grid-template-columns:none;grid-auto-rows:auto;column-gap:0;row-gap:0;justify-content:space-between;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{flex:0 0 auto;width:auto;min-width:184px;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:442px;top:82px;display:grid;grid-template-columns:208px 220px 242px 168px 168px;column-gap:10px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:390px;right:430px;top:96px;display:flex;justify-content:space-between}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} diff --git a/docs/assets/index-c521be47-1784132466083.js b/docs/assets/index-69e64e91-1784132792831.js similarity index 98% rename from docs/assets/index-c521be47-1784132466083.js rename to docs/assets/index-69e64e91-1784132792831.js index 5200cd2..37e08bc 100644 --- a/docs/assets/index-c521be47-1784132466083.js +++ b/docs/assets/index-69e64e91-1784132792831.js @@ -1 +1 @@ -var ca=Object.defineProperty,da=Object.defineProperties;var fa=Object.getOwnPropertyDescriptors;var zt=Object.getOwnPropertySymbols;var ga=Object.prototype.hasOwnProperty,pa=Object.prototype.propertyIsEnumerable;var Et=(N,v,y)=>v in N?ca(N,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):N[v]=y,g=(N,v)=>{for(var y in v||(v={}))ga.call(v,y)&&Et(N,y,v[y]);if(zt)for(var y of zt(v))pa.call(v,y)&&Et(N,y,v[y]);return N},P=(N,v)=>da(N,fa(v));var C=(N,v,y)=>new Promise((ee,U)=>{var z=E=>{try{L(y.next(E))}catch(h){U(h)}},ye=E=>{try{L(y.throw(E))}catch(h){U(h)}},L=E=>E.done?ee(E.value):Promise.resolve(E.value).then(z,ye);L((y=y.apply(N,v)).next())});import{g as f,q as ya,h as ha,w as ma,o as F,c as $,C as va,a as S,j as re,b as k,x as X,u as K,n as Mt,F as ka,y as ba,J as Gt,t as wt,f as _a,d as p,A as xe}from"./index-1784132466083.js";import{g as Pa,l as Vt,E as Na}from"./live-scene-1-bedc4ad6-1784132466083.js";import{_ as Q}from"./index-fe70e5de-1784132466083.js";import{M as Aa}from"./index-36438a28-1784132466083.js";import{_ as Ca}from"./LayerPanel-5b73c261-1784132466083.js";import{a as se,_ as Sa}from"./FeatureInfoPanel-3970d641-1784132466083.js";import{l as Ia,d as La,e as Ta,m as xa}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{c as Ra,d as Ba,F as Fa,e as za,f as Ea,h as Ma,i as Ga}from"./featurePanelLayout-62f917d3-1784132466083.js";import{q as Ot,r as wa,s as Va}from"./screen2Standard-483e466b-1784132466083.js";import{p as Oa,a as qe,b as $a,c as ja,d as Wa,e as Ka,f as ge,g as Ze,h as Ye,i as $t,j as Ua}from"./data-e9a1e061-1784132466083.js";import"./index-ed255eef-1784132466083.js";import"./index-e9f36657-1784132466083.js";import"./livestockData-36ec0ae2-1784132466083.js";const Da={class:"pasture-management"},Ha={key:0,class:"pasture-map-loading"},qa={class:"pasture-management-ui"},Za={class:"pasture-left"},Ya={class:"pasture-side-stack is-left"},Ja={class:"pasture-video-monitor"},Xa=["disabled"],Qa=["onClick"],er={key:1,class:"pasture-video-play"},tr={key:2,class:"pasture-video-loading"},nr={key:3,class:"pasture-video-error"},ar={class:"pasture-video-point-name"},rr=["disabled"],sr={class:"pasture-right"},ur={class:"pasture-side-stack is-right"},or={class:"pasture-map-layer-tools"},lr=["aria-label"],jt="pasture-grassland-boundary",ir="pasture-yak-marks-layer",cr=12e3,dr="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Je="#FFE600",Wt="草场详情",Ir={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(N,{expose:v,emit:y}){const ee=N,U=y,z=Ot.sideCardWidth;Ot.sideCardGap;const ye=p(typeof window=="undefined"?1080:window.innerHeight),L=f(()=>wa(ye.value)),E=f(()=>Va(L.value,2)),h=p(null),ue=p(!1),Xe=p(0);let he=0;const D=p(null),oe=p(!1),le=p(!1),te=p(null),T=p(Ze),H=p(Ye),ne=p([]),Re=p(""),Kt=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],me=["#30dcff","#24f6c4","#8bf7ff","#48cfff","#16b6e8","#b9fbff","#67ffe4"],B=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Ut=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),Qe=[102.58,32.72],Dt=Wn("ne:t_pasture_grassland",pe),Ht={key:ir,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别",color:Je,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Je,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Je,strokeColor:"#FFF58A",selectable:!1}]},Be={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Vt,playUrl:"",hdPlayUrl:"",token:""},Fe=p(null),M=p([]),ve=p(0),q=p(!1),G=p(!1),A=p("");let w=!1,ae=0,V=null,I=null,ze=!1,Z=0,ke=null,ie=0;const qt={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},Zt={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},Yt=ua(xa),et=f(()=>[{key:jt,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:Dt,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:Qe,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Ht]),Jt=f(()=>Array.isArray(ne.value)?ne.value.map(String).filter(Boolean):ne.value?[String(ne.value)]:[]),be=f(()=>{const e=new Set(Jt.value);return et.value.filter(t=>e.has(t.key))}),Xt=f(()=>be.value[0]||null),ce=f(()=>be.value.flatMap(e=>e.legends||[]).find(e=>e.key===Re.value)||null),Qt=f(()=>be.value.flatMap(e=>e.legends||[]));function en(e){var n;return e?!(e.legends||[]).some(a=>{var s;return a.key===((s=ce.value)==null?void 0:s.key)})||!((n=ce.value)!=null&&n.cqlFilter)?e:P(g({},e),{cqlFilter:ce.value.cqlFilter,activeLegend:ce.value,name:ce.value.name||e.name}):null}const tt=f(()=>be.value.map(en).filter(Boolean)),_e=f(()=>tt.value[0]||null),tn=f(()=>!!te.value),nn=Fa,nt=f(()=>Ra({point:te.value?Gn(te.value):null,rowCount:D.value?pt(D.value):0,loading:le.value,empty:oe.value||!D.value})),an=f(()=>nt.value.height),rn=f(()=>nt.value.style),at=f(()=>kt(T.value.core).length?kt(T.value.core):Oa),Pe=f(()=>Ee(bt(T.value.distribution).length?bt(T.value.distribution):qe,ge)),sn=f(()=>{const e=Jn(T.value.online);return Xn(e.length?e:$a)}),un=f(()=>Ee(_t(T.value.age).length?_t(T.value.age):ja,ge)),on=f(()=>Ee(Pt(T.value.age).length?Pt(T.value.age):Wa,ge)),rt=f(()=>Qn(Ua));f(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(Pe.value.length?Pe.value:Ka).map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),f(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:Pe.value})),f(()=>({key:"pasture-grassland-area",type:"heat",rows:rt.value}));const ln=f(()=>({key:"pasture-household-column",type:"column",variant:"plain",scrollable:!1,rows:hn(Pe.value).slice(0,10).map((e,t)=>P(g({},e),{unit:e.unit||"户",color:me[t%me.length]}))})),cn=f(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",rows:rt.value.map((e,t)=>P(g({},e),{unit:e.unit||"万亩",color:me[(t+1)%me.length]}))})),dn=f(()=>({key:"pasture-online",type:"line",rows:sn.value})),fn=f(()=>({key:"pasture-age",type:"column",variant:"plain",lineOverlay:!0,labelMode:"horizontal",scrollable:!1,rows:un.value})),gn=f(()=>({key:"pasture-gender",type:"donut",rows:on.value})),pn=f(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:H.value})),Ne=f(()=>{const e=M.value.length;return e?ve.value%e:0}),yn=f(()=>M.value[Ne.value]||Be),st=f(()=>kn(M.value,Ne.value,Be));function hn(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{var a,s,r;return P(g({},t),{key:t.key||t.code||t.name||`${n}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((r=(s=(a=t.value)!=null?a:t.number)!=null?s:t.count)!=null?r:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function Ee(e=[],t=ge){const n=Array.isArray(e)?e:[],a=n.reduce((u,o)=>u+(Number(o.value)||0),0);if(!n.length||!a||!t||a===t)return n;const s=n.map(u=>P(g({},u),{value:Math.round((Number(u.value)||0)/a*t)})),r=t-s.reduce((u,o)=>u+(Number(o.value)||0),0);if(r&&s.length){const u=s.reduce((o,i,d)=>{var l;return Number(i.value)>Number(((l=s[o])==null?void 0:l.value)||0)?d:o},0);s[u].value+=r}return s}function Me(){ye.value=typeof window=="undefined"?1080:window.innerHeight}ya(()=>{Me(),window.addEventListener("resize",Me),vt(),zn(),Sn(),mn()}),ha(()=>{w=!0,window.removeEventListener("resize",Me),Y(),V&&window.clearTimeout(V),ae+=1}),ma(()=>ee.active,e=>{var t,n;e||Y({resetError:!0}),h.value&&(e?(J(),(n=(t=h.value).refreshView)==null||n.call(t)):(V&&window.clearTimeout(V),V=null,ae+=1))});function mn(){return C(this,null,function*(){try{const e=yield Pa();if(w)return;M.value=e,ve.value=0,A.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(w)return;M.value=[],A.value="监控接口暂不可用",window.setTimeout(()=>{!w&&A.value==="监控接口暂不可用"&&(A.value="")},2400)}})}function vn(e,t){t!=null&&t.isActive&&(Fe.value=e||null)}function kn(e=[],t=0,n=Be){const a=Array.isArray(e)?e:[];if(!a.length)return[{key:`empty-${n.key||"video"}`,index:0,live:n,isActive:!0}];const s=(t+a.length)%a.length,r=a[s]||n;return[{key:`${r.key||r.title||"video"}-${s}`,index:s,live:r,isActive:!0}]}function bn(e,t=!0){const n=(e==null?void 0:e.image)||Vt;return q.value&&t?void 0:{backgroundImage:`url(${n})`}}function _n(){ut(-1)}function Pn(){ut(1)}function ut(e){const t=M.value.length;t&&(Y({resetError:!0}),ve.value=(Ne.value+e+t)%t)}function Nn(e){const t=M.value.length;if(!t){ot();return}const n=((Number(e)||0)+t)%t;(n!==Ne.value||I||G.value)&&Y({resetError:!0}),ve.value=n,xe(ot)}function ot(){return C(this,null,function*(){var a,s;const e=yn.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){A.value="暂无在线可播放摄像头";return}if(q.value||G.value)return;I&&Y({resetError:!0}),A.value="",G.value=!0,yield xe();const t=++Z;let n=null;An(t);try{const r=(s=(a=Fe.value)==null?void 0:a.getBoundingClientRect)==null?void 0:s.call(a),u=Math.max(300,Math.floor((r==null?void 0:r.width)||340)),o=Math.max(80,Math.floor((r==null?void 0:r.height)||120));if(n=new Na.EZUIKitPlayer({id:B,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:u,height:o,themeData:Cn(),handleError(i){t===Z&&(de(),console.warn("Pasture EZUIKit player error",i),A.value="视频加载失败",G.value=!1,q.value=!1,Z+=1,I=null,ze=!1,Ge())},handleSuccess(){t===Z&&(de(),A.value="",ze=!0,G.value=!1,it(),lt())},fullScreenChangeCallBack(){}}),t!==Z){ct(n),Ge();return}I=n,q.value=!0,xe(()=>{it(),lt()})}catch(r){de(),console.warn("Pasture EZUIKit init error",r),A.value="视频加载失败",Y()}})}function lt(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-ez-iframe-footer-container`),t=document.getElementById(`${B}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function it(){var d,l;if(typeof document=="undefined")return;const e=Fe.value,t=document.getElementById(`${B}-wrap`),n=document.getElementById(B),a=t||n;if(!e||!a)return;const s=(d=e.getBoundingClientRect)==null?void 0:d.call(e),r=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),u=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{I&&typeof I.reSize=="function"?I.reSize(r,u):I&&typeof I.autoResize=="function"&&I.autoResize()}catch(m){console.warn("Pasture EZUIKit resize failed",m)}Object.assign(a.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${r}px`,height:`${u}px`,verticalAlign:"top"}),t&&n&&Object.assign(n.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const o=document.getElementById(`EZUIKitPlayer-${B}`);o&&(o.setAttribute("width",String(r)),o.setAttribute("height",String(u))),[...Array.from((n==null?void 0:n.children)||[]),...Array.from(((l=n==null?void 0:n.querySelectorAll)==null?void 0:l.call(n,".play-window, video, canvas, iframe"))||[]),o].filter(Boolean).forEach(m=>{Object.assign(m.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function Y(e={}){const{clearElement:t=!0,resetError:n=!1}=e;de();const a=I;I=null,ze=!1,Z+=1,a&&ct(a),t&&Ge(),q.value=!1,G.value=!1,n&&(A.value="")}function An(e){de(),ke=window.setTimeout(()=>{e!==Z||!G.value||(A.value="视频加载超时",Y({resetError:!1}))},cr)}function de(){ke&&(window.clearTimeout(ke),ke=null)}function ct(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function Ge(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-wrap`);if(e){const n=document.createElement("div");n.id=B,n.className="pasture-video-player",e.replaceWith(n);return}const t=document.getElementById(B);t&&t.replaceChildren()}function Cn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function Sn(){return C(this,null,function*(){try{const e=yield Ba();if(w)return;T.value=g(g({},Ze),e),vt();const t=ea(e.list);H.value=t.length?t:Nt(Ye),In(H.value)}catch(e){T.value=Ze,H.value=Nt(Ye)}})}function In(e=H.value,t=600){w||!ee.active||(V&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null,!(w||!ee.active)&&Ln(e)},t))}function Ln(){return C(this,arguments,function*(e=[]){const t=++ae,n=(Array.isArray(e)?e:[]).filter(Tn).slice(0,60);if(!n.length)return;const a=yield ft(n,5,r=>C(this,null,function*(){const u=Lt(r),o=W(r);let i=o,d=null,l=Ie(r,o)||Le(r,r.name,u);try{(!l||!i.some(b))&&(i=yield gt(r))}catch(R){i=o}if(l=l||Ie(r,i)||Le(r,r.name,u),!l){try{d=u?yield za(u):null}catch(Bt){d=null}const R=W(d);l=Rn(d)||Ie(d,R),R.length&&!i.length&&(i=R)}l=l||Le(r,r.name,u);const m=!!(u||Se(r)||i.some(b)||b(r));if(!l&&!i.length&&m===r.canLocate)return null;const _={key:r.key,id:r.id,realPastureId:u,name:r.name,township:l||r.township,grasslands:i.length?i:r.grasslands,grasslandArea:i.length?Ct(i):O(r),canLocate:m,locateText:m?"定位":"--"};return xn(_,t),_}));if(w||t!==ae)return;const s=new Map;a.filter(Boolean).forEach(r=>{[r.key,r.id,r.realPastureId,r.name].filter(Boolean).forEach(u=>{s.set(String(u),r)})}),s.size&&dt(s)})}function Tn(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(b(e)||W(e).some(b))&&je(e).length?!0:t&&t!=="--"?!1:O(e)>0||We(e)}function xn(e,t=ae){if(!e||w||t!==ae)return;const n=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(a=>{n.set(String(a),e)}),dt(n)}function dt(e){e!=null&&e.size&&(H.value=H.value.map(t=>{var r,u;const n=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(o=>e.get(String(o))).find(Boolean);if(!n)return t;const a=n.township&&n.township!=="--"?n.township:t.township,s=Number(n.grasslandArea)>0?Number(n.grasslandArea):O(t);return P(g({},t),{township:a,grasslands:n.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:fe(n,n.grasslands),hasGrasslandBoundary:((u=(r=n.grasslands)==null?void 0:r.some)==null?void 0:u.call(r,b))||t.hasGrasslandBoundary,canLocate:n.canLocate,locateText:n.locateText,searchText:[t.name,a,t.id].filter(Boolean).join(" ")})}))}function we(e=[]){const t=[],n=a=>{if(!a)return;if(Array.isArray(a)){a.forEach(n);return}if(typeof a!="object")return;const s=W(a);if(s.length)t.push(...s);else{let r=!1;["rows","list","data","result","grassland","pasture","features"].forEach(u=>{const o=a==null?void 0:a[u];o&&(Array.isArray(o)||typeof o=="object")&&(r=!0,n(o))}),r||t.push(a)}};return n(e),t}function Rn(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const n of t.filter(Boolean)){const a=Array.isArray(n==null?void 0:n.fields)?n.fields:Array.isArray(n==null?void 0:n.children)?n.children:[],s=c(n,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return x(Ae(s));for(const u of a){const o=String((u==null?void 0:u.name)||(u==null?void 0:u.label)||(u==null?void 0:u.title)||"").trim(),i=c(u,["value","text","content"]);if(i&&/区域|地址|乡镇/.test(o))return x(Ae(i))}const r=Object.entries(n||{}).filter(([u])=>/fullName|full_name|address|areaName|area_name|town/i.test(u)).map(([,u])=>u);for(const u of r)if(u)return x(Ae(u))}return""}function Ae(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(n==null?void 0:n[1])||t}function ft(e,t,n){return C(this,null,function*(){const a=new Array(e.length);let s=0;const r=Array.from({length:Math.min(t,e.length)},()=>C(this,null,function*(){for(;sC(this,null,function*(){if(b(a))return a;const s=St(a);if(!s)return a;try{const r=yield Ma(s),o=we([r]).find(b);return o?na(a,o):a}catch(r){return a}}));return $e(n)})}function Fn(e){return C(this,null,function*(){var r,u,o,i;const t=++he;J(),(u=(r=h.value)==null?void 0:r.clearFloatingOverlays)==null||u.call(r);let n=[];try{n=yield gt(e)}catch(d){n=W(e)}if(t!==he)return;const a=n.filter(b);if(!a.length){mt();return}if(t!==he)return;((i=(o=h.value)==null?void 0:o.focusPasture)==null?void 0:i.call(o,{name:e==null?void 0:e.name,grasslands:a,highlightTone:"white"}))||mt()})}function zn(){ue.value=!1,U("loading-progress",{progress:0})}function En(){ue.value=!0,U("loading-progress",{progress:100}),U("map-ready")}function Mn(e=_e.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),n=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===jt||n.includes("t_pasture_grassland")}function Gn(e={}){const t=document.querySelector(".pasture-management"),n=t==null?void 0:t.getBoundingClientRect();return n?{x:((Number(e.x)||n.left+n.width/2)-n.left)/Math.max(1,n.width)*1920,y:((Number(e.y)||n.top+n.height/2)-n.top)/Math.max(1,n.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function pt(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([n,a])=>wn(n,a)).length)}function wn(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Ut.has(String(e||"").toLowerCase())}function Vn(e={}){const t=yt(e.lng),n=yt(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function yt(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function On(e={},t={}){var s,r;const n=$n(e);if(!n||!Object.keys(n).length)return null;const a=jn(e,n);return{id:n.id||n.grasslandId||n.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(r=t==null?void 0:t.lngLat)==null?void 0:r.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:a},geometry:a,layer:_e.value||Xt.value,lngLat:t.lngLat}}function $n(e={}){var o,i,d,l;const t=ht(e),n=j((t==null?void 0:t.grassland)||((o=t==null?void 0:t.data)==null?void 0:o.grassland)),a=j((t==null?void 0:t.pasture)||((i=t==null?void 0:t.data)==null?void 0:i.pasture)),s=j((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((d=t==null?void 0:t.data)==null?void 0:d.pasture_balance)),r=n||j(t==null?void 0:t.data)||j(t==null?void 0:t.result)||j(t);if(!r&&!a&&!s)return null;const u=c(r||{},["recognizedYakCount","recognized_yak_count"]);return P(g(g(g(g(g({},r||{}),s||{}),Ve(r)),Ve(a)),Ve(s)),{pastureName:c(a||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||c(r||{},["pastureName","pasture_name"]),recognizedYakCount:u,yakCount:(l=u!=null?u:c(a||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?l:c(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Ve(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((n,a)=>{var u,o;const s=String((a==null?void 0:a.field)||(a==null?void 0:a.key)||(a==null?void 0:a.title)||(a==null?void 0:a.label)||"").trim(),r=(o=(u=a==null?void 0:a.value)!=null?u:a==null?void 0:a.text)!=null?o:a==null?void 0:a.content;return s&&r!==void 0&&r!==null&&r!==""&&(n[s]=r),n},{})}function ht(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function jn(e={},t={}){var r,u;const n=ht(e),a=j((n==null?void 0:n.grassland)||((r=n==null?void 0:n.data)==null?void 0:r.grassland)),s=j((n==null?void 0:n.pasture)||((u=n==null?void 0:n.data)==null?void 0:u.pasture));return c(a||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(n,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function j(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Oe(){D.value=null,te.value=null,oe.value=!1,le.value=!1}function J(){var e,t;ie+=1,Oe(),(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function mt(){var e,t;he+=1,(t=(e=h.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Wn(e,t){return`${e}${e}${t}0.025${t}0.90.74`}function Kn(){return C(this,arguments,function*(e={}){var r,u,o,i,d,l;if(!Mn(e.overlayLayer||_e.value)){J();return}const t=Number((r=e==null?void 0:e.lngLat)==null?void 0:r.lng),n=Number((u=e==null?void 0:e.lngLat)==null?void 0:u.lat);if(!Number.isFinite(t)||!Number.isFinite(n)){J();return}const a=++ie,s=e.screen||{x:960,y:540};te.value=null,D.value=null,oe.value=!1,le.value=!0,(i=(o=h.value)==null?void 0:o.clearSelectedFeature)==null||i.call(o);try{const m=yield Ga(Vn({lng:t,lat:n}));if(a!==ie)return;const _=On(m,e);if(!_||pt(_)<=0){Oe();return}D.value=_,te.value=s,oe.value=!1,_.geometry&&((l=(d=h.value)==null?void 0:d.highlightFeature)==null||l.call(d,_,{highlightTone:"v21"}))}catch(m){if(a!==ie)return;Oe()}finally{a===ie&&(le.value=!1)}})}function Un(){var e,t;J(),(t=(e=h.value)==null?void 0:e.refreshView)==null||t.call(e)}function Dn(){var e,t,n,a;if(J(),(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(a=(n=h.value)==null?void 0:n.resetView)==null||a.call(n);return}ue.value=!1,Xe.value+=1,xe(()=>{window.setTimeout(()=>{var s,r;(r=(s=h.value)==null?void 0:s.refreshView)==null||r.call(s)},160)})}v({refreshMapView:Un,resetMap:Dn});function vt(){U("module-stats",{moduleKey:"pasture-management",items:Hn().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function Hn(){const e=new Map;(Array.isArray(at.value)?at.value:[]).forEach(n=>{!(n!=null&&n.name)||Yn(n.name)||e.set(n.name,n)});const t=e.get("牧户数量")||$t.find(n=>n.name==="牧户数量"||n.zh==="牧户数量");return e.set("牧户数量",P(g({},t),{name:"牧户数量",value:ge,unit:(t==null?void 0:t.unit)||"户"})),Kt.map(n=>e.get(n)||$t.find(a=>a.name===n||a.zh===n)).filter(Boolean).slice(0,4)}function kt(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=t.key||t.id||t.code||t.name||t.zh||`${n}`,s=t.name||t.title||t.label||t.zh,r=qn(s,a),u=c(t,["value","num","count","dataValue"]);if(!r||u===void 0||u===null||u==="")return null;const o=Zn(r,u,t.unit||t.dw||"");return{key:a,name:o.name,value:o.value,unit:o.unit,icon:t.icon||["town","area","yield","rate"][n%4]}}).filter(Boolean)}function qn(e,t){const n=String(e||t||""),a=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(a)||/户均.*牦牛|牦牛.*户均/.test(n)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(a)||/户均.*草地|草地.*户均/.test(n)?"户均草地面积":/income|revenue|人均收入/.test(a)||n.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(a)||n.includes("防反贫")||n.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(a)||n.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(a)||n.includes("牧户数量")?"牧户数量":/yak/.test(a)||n.includes("牦牛")?null:/grass/.test(a)||n.includes("草地面积")?"草地面积":/wet/.test(a)||n.includes("湿地")?"湿地面积":n.includes("牧户")||n.includes("牧场")?"牧户数量":/project/.test(a)||n.includes("工程")||n.includes("项目")?"工程数量":/base/.test(a)||n.includes("基地")?"基地数量":n}function Zn(e,t,n){const a=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:a,unit:n||"头"}:e==="户均草地面积"?{name:e,value:a,unit:n||"亩"}:e==="人均收入"?{name:e,value:a,unit:n||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:a,unit:n||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(n).includes("万")?{name:e,value:Math.round(a/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:a,unit:n||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:a,unit:n||"个"}:{name:e,value:a,unit:n}}function Yn(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function bt(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=c(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!n||a===void 0||a===null||a===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(a)||0,unit:"户"}}).filter(Boolean).sort((t,n)=>n.value-t.value)}function Jn(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=Number(c(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(c(t,["muhuCount","muhu_count","onlineCount"])),r=c(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),u=r!=null&&r!==""?r:a>0?s/a*100:void 0;return!n||u===void 0||u===null||u===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(String(u).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(a)&&a>0?`${s}/${a}户`:t.extra}}).filter(Boolean)}function Xn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=x((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return a?P(g({},a),{key:n.key,name:n.name,unit:a.unit||"%"}):{key:n.key,name:n.name,value:0,unit:"%",extra:"--"}})}function Qn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=x((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName)||(n==null?void 0:n.township));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return{key:n.key,name:n.name,value:Number(a==null?void 0:a.value)||0,unit:(a==null?void 0:a.unit)||"万亩"}}).sort((n,a)=>a.value-n.value)}function _t(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["ageRange","age_range","age","name","label"]),s=c(n,["number","value","count","num"]);!a||s===void 0||s===null||s===""||t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function Pt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["sex","gender","name"]),s=c(n,["number","value","count","num"]);if(!a||s===void 0||s===null||s==="")return;const r=String(a).includes("女")?"女":String(a).includes("男")?"男":a;t.set(r,(t.get(r)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function ea(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=c(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!a)return null;const s=W(t),r=O(t)||Ct(s),u=fe(t,s),o=Lt(t),i=Ie(t,s)||Le(t,a,o),d=Ce(t),l=P(g({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${a}-${n}`,id:o||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:o,name:a,pastureSortOrder:d,township:i||"--",grasslandArea:r,acreage:r,grasslandCount:u,hasGrasslandBoundary:u>0,grasslands:s});return l.canLocate=!!(o||Se(t)||s.some(b)||b(t)),l.locateText=l.canLocate?"定位":"--",l.value=l.grasslandArea,l.unit="亩",l.searchText=[l.name,l.herdsmanName,l.herdsman_name,l.phone,l.phonenumber,l.idCard,l.id_card,l.township,l.id].filter(Boolean).join(" "),l}).filter(Boolean).sort(At)}function Nt(e=[]){return[...Array.isArray(e)?e:[]].map(t=>P(g({},t),{pastureSortOrder:Ce(t),grasslandArea:O(t),acreage:O(t)})).sort(At)}function Ce(e={}){const t=c(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const n=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(n)?n:null}function At(e,t){const n=Ce(e),a=Ce(t);if(n!==null||a!==null)return n===null?1:a===null?-1:n!==a?n-a:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Se(e)?1:0,r=Se(t)?1:0;if(s!==r)return r-s;const u=fe(e),o=fe(t);if(u!==o)return o-u;const i=O(e),d=O(t),l=i>0?1:0,m=d>0?1:0;if(l!==m)return m-l;const _=We(e)?1:0,R=We(t)?1:0;return _!==R?R-_:i!==d?d-i:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Se(e={}){const t=c(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:fe(e)>0}function fe(e={},t=e==null?void 0:e.grasslands){const n=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const a of n){const s=Number(e==null?void 0:e[a]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function O(e={}){const n=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>ta(e==null?void 0:e[s]));return n.find(s=>s>0)||n.find(s=>s===0)||0}function Ct(e=[]){return(Array.isArray(e)?e:[]).reduce((t,n)=>t+O(n),0)}function ta(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const n=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!n)return 0;const a=Number(n[0]);return Number.isFinite(a)?t.includes("万")?a*1e4:a:0}function W(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const r=e==null?void 0:e[s];Array.isArray(r)?t.push(...r):Array.isArray(r==null?void 0:r.rows)?t.push(...r.rows):Array.isArray(r==null?void 0:r.list)?t.push(...r.list):Array.isArray(r==null?void 0:r.data)&&t.push(...r.data)});const a=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||e!=null&&e.geometry)&&t.push(P(g({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:a,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function b(e={}){var t,n;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function na(e={},t={}){var r,u,o,i,d;const n=P(g(g({},e),t),{id:(r=e==null?void 0:e.id)!=null?r:t==null?void 0:t.id,grasslandId:(d=(i=(o=(u=e==null?void 0:e.grasslandId)!=null?u:e==null?void 0:e.grassland_id)!=null?o:t==null?void 0:t.grasslandId)!=null?i:t==null?void 0:t.grassland_id)!=null?d:t==null?void 0:t.id}),a=c(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||s)&&(n.wkt=a||s),n.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),n}function $e(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(n=>{if(!n)return!1;const a=aa(n);return a&&t.has(a)?!1:(a&&t.add(a),!0)})}function aa(e={}){const t=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(a){return""}const n=St(e);return n?`id:${n}`:""}function St(e={}){return It(c(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(It).filter(Boolean).filter((t,n,a)=>a.indexOf(t)===n)}function It(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function Lt(e={}){return je(e)[0]||null}function We(e={}){return e!=null&&e.canLocate||b(e)?!0:W(e).some(b)}function c(e={},t=[]){for(const n of t){const a=e==null?void 0:e[n];if(a!=null&&a!=="")return a}}function Ie(e={},t=[]){const n=c(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),a=x(n);if(a)return a;const s=Ke(c(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const u of t){const o=c(u,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),i=x(o);if(i)return i;const d=Ke(c(u,["areaCode","area_code","townCode","town_code","code"]));if(d)return d}const r=Tt(e);if(r)return r;for(const u of t){const o=Tt(u);if(o)return o}return""}function x(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=Ke(t);if(n)return n;if(Ia(t))return t;const a=La.find(r=>t.includes(r));if(a)return a;const s=Ae(t);return s&&s!==t?x(s):""}function Le(e={},t="",n=""){const a=[n,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const r of a){const u=qt[String(r||"").trim()];if(u)return x(u)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const r of s){const u=Zt[ra(r)];if(u)return x(u)}return""}function ra(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ke(e){const t=String(e||"").trim();if(!t)return"";const n=t.replace(/\D/g,"");return n?Ta(n):""}function Tt(e={}){const t=Ue(e),n=oa(t);if(!n)return"";const a=Yt.find(s=>ia(n,s.geometry));return a!=null&&a.name?x(a.name):""}function Ue(e={}){var a,s;if((e==null?void 0:e.type)==="Feature")return Ue(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((a=e==null?void 0:e.geometry)!=null&&a.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=c(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const n=t.trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const r=JSON.parse(n);return Ue(r)}catch(r){return null}return sa(n)}function sa(e){var r;const t=String(e||"").trim(),n=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),a=(r=n==null?void 0:n[1])==null?void 0:r.toUpperCase();if(!a)return null;const s=t.slice(t.indexOf("("));return a==="POINT"?{type:"Point",coordinates:De(s)}:a==="MULTIPOINT"?{type:"MultiPoint",coordinates:Te(s).map(De).filter(Boolean)}:a==="LINESTRING"?{type:"LineString",coordinates:He(s)}:a==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Te(s).map(He).filter(u=>u.length)}:a==="POLYGON"?{type:"Polygon",coordinates:xt(s)}:a==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Te(s).map(xt).filter(u=>u.length)}:null}function De(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function He(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(De).filter(Boolean)}function xt(e){return Te(e).map(He).filter(t=>t.length>=3)}function Te(e){const t=[];let n=0,a=-1;return Array.from(String(e||"")).forEach((s,r)=>{s==="("?(n===0&&(a=r+1),n+=1):s===")"&&(n-=1,n===0&&a>=0&&(t.push(e.slice(a,r)),a=-1))}),t.length?t:[String(e||"")]}function ua(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(n=>{var a,s,r,u;return{name:((a=n==null?void 0:n.properties)==null?void 0:a.name)||((s=n==null?void 0:n.properties)==null?void 0:s.areaName)||((r=n==null?void 0:n.properties)==null?void 0:r.townName),code:(u=n==null?void 0:n.properties)==null?void 0:u.code,geometry:n==null?void 0:n.geometry}}).filter(n=>{var a;return n.name&&((a=n.geometry)==null?void 0:a.coordinates)})}catch(t){return[]}}function oa(e){const t=la(e);if(!t.length)return null;const n=t.reduce((a,s)=>({lng:a.lng+s[0],lat:a.lat+s[1]}),{lng:0,lat:0});return[n.lng/t.length,n.lat/t.length]}function la(e){const t=[],n=a=>{if(Array.isArray(a)){if(a.length>=2&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))){t.push([Number(a[0]),Number(a[1])]);return}a.forEach(n)}};return n(e==null?void 0:e.coordinates),t}function ia(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Rt(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(n=>Rt(e,n)):!1}function Rt(e,t){var u,o,i,d;const n=t==null?void 0:t[0];if(!Array.isArray(n)||n.length<3)return!1;let a=!1;const s=e[0],r=e[1];for(let l=0,m=n.length-1;lr!=Ft>r&&s<(Bt-_)*(r-R)/(Ft-R||1e-12)+_&&(a=!a)}return a}return(e,t)=>(F(),$("div",Da,[(F(),va(Aa,{key:Xe.value,ref_key:"mapSceneRef",ref:h,class:"pasture-ol-map-layer",active:ee.active,"tile-url-template":dr,center:Qe,"initial-zoom":9,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":_e.value,"overlay-layers":tt.value,onReady:En,onMapClick:Kn},null,8,["active","overlay-layer","overlay-layers"])),t[2]||(t[2]=S("div",{class:"pasture-map-scrim"},null,-1)),ue.value?re("",!0):(F(),$("div",Ha,"3D地图加载中")),S("div",qa,[S("div",Za,[S("div",Ya,[k(Q,{class:"pasture-side-card left-card",title:"牧户区域统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:ln.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"草场面积分布",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:cn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:K(z),height:L.value},{default:X(()=>[S("div",Ja,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:M.value.length<=1,"aria-label":"上一个监控点",onClick:_n}," ‹ ",8,Xa),S("div",{class:Mt(["pasture-video-grid",{"is-single":st.value.length<=1}])},[(F(!0),$(ka,null,ba(st.value,n=>(F(),$("div",{key:n.key,ref_for:!0,ref:a=>vn(a,n),class:Mt(["pasture-video-screen",{"is-active":n.isActive,"is-playing":q.value&&n.isActive,"is-loading":G.value&&n.isActive}]),style:Gt(bn(n.live,n.isActive)),onClick:a=>Nn(n.index)},[n.isActive?(F(),$("div",{key:0,id:B,class:"pasture-video-player"})):re("",!0),(!q.value||!n.isActive)&&n.live.hdPlayUrl?(F(),$("div",er)):re("",!0),G.value&&n.isActive?(F(),$("div",tr,"加载中")):re("",!0),A.value&&n.isActive?(F(),$("div",nr,wt(A.value),1)):re("",!0),S("div",ar,wt(n.live.title),1)],14,Qa))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:M.value.length<=1,"aria-label":"下一个监控点",onClick:Pn}," › ",8,rr)])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"牧户上线率",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:dn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",sr,[S("div",ur,[k(Q,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:fn.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card",title:"牧户性别统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:gn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:K(z),height:E.value},{default:X(()=>[k(se,{panel:pn.value,compact:"","visual-version":"v21",onRowSelect:Fn},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",or,[k(Ca,{modelValue:ne.value,"onUpdate:modelValue":t[0]||(t[0]=n=>ne.value=n),"selected-legend-key":Re.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=n=>Re.value=n),"topic-key":"grassland",layers:et.value,legends:Qt.value,multiple:"",width:232,height:430},null,8,["modelValue","selected-legend-key","layers","legends"])]),tn.value?(F(),$("div",{key:0,class:"pasture-map-feature-info",style:Gt(rn.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":`关闭${Wt}`,title:"关闭",onClick:_a(J,["stop"])}," × ",8,lr),k(Sa,{title:Wt,feature:D.value,empty:oe.value,loading:le.value,width:K(nn),height:an.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):re("",!0)])]))}};export{Ir as default}; +var ca=Object.defineProperty,da=Object.defineProperties;var fa=Object.getOwnPropertyDescriptors;var zt=Object.getOwnPropertySymbols;var ga=Object.prototype.hasOwnProperty,pa=Object.prototype.propertyIsEnumerable;var Et=(N,v,y)=>v in N?ca(N,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):N[v]=y,g=(N,v)=>{for(var y in v||(v={}))ga.call(v,y)&&Et(N,y,v[y]);if(zt)for(var y of zt(v))pa.call(v,y)&&Et(N,y,v[y]);return N},P=(N,v)=>da(N,fa(v));var C=(N,v,y)=>new Promise((ee,U)=>{var z=E=>{try{L(y.next(E))}catch(h){U(h)}},ye=E=>{try{L(y.throw(E))}catch(h){U(h)}},L=E=>E.done?ee(E.value):Promise.resolve(E.value).then(z,ye);L((y=y.apply(N,v)).next())});import{g as f,q as ya,h as ha,w as ma,o as F,c as $,C as va,a as S,j as re,b as k,x as X,u as K,n as Mt,F as ka,y as ba,J as Gt,t as wt,f as _a,d as p,A as xe}from"./index-1784132792831.js";import{g as Pa,l as Vt,E as Na}from"./live-scene-1-771d3631-1784132792831.js";import{_ as Q}from"./index-a4d3ff67-1784132792831.js";import{M as Aa}from"./index-24267a69-1784132792831.js";import{_ as Ca}from"./LayerPanel-fa97fc8c-1784132792831.js";import{a as se,_ as Sa}from"./FeatureInfoPanel-8ee1b2b1-1784132792831.js";import{l as Ia,d as La,e as Ta,m as xa}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{c as Ra,d as Ba,F as Fa,e as za,f as Ea,h as Ma,i as Ga}from"./featurePanelLayout-9d4ef87e-1784132792831.js";import{q as Ot,r as wa,s as Va}from"./screen2Standard-41868f75-1784132792831.js";import{p as Oa,a as qe,b as $a,c as ja,d as Wa,e as Ka,f as ge,g as Ze,h as Ye,i as $t,j as Ua}from"./data-bbf42c91-1784132792831.js";import"./index-a1b5e9c0-1784132792831.js";import"./index-e9f36657-1784132792831.js";import"./livestockData-36ec0ae2-1784132792831.js";const Da={class:"pasture-management"},Ha={key:0,class:"pasture-map-loading"},qa={class:"pasture-management-ui"},Za={class:"pasture-left"},Ya={class:"pasture-side-stack is-left"},Ja={class:"pasture-video-monitor"},Xa=["disabled"],Qa=["onClick"],er={key:1,class:"pasture-video-play"},tr={key:2,class:"pasture-video-loading"},nr={key:3,class:"pasture-video-error"},ar={class:"pasture-video-point-name"},rr=["disabled"],sr={class:"pasture-right"},ur={class:"pasture-side-stack is-right"},or={class:"pasture-map-layer-tools"},lr=["aria-label"],jt="pasture-grassland-boundary",ir="pasture-yak-marks-layer",cr=12e3,dr="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Je="#FFE600",Wt="草场详情",Ir={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(N,{expose:v,emit:y}){const ee=N,U=y,z=Ot.sideCardWidth;Ot.sideCardGap;const ye=p(typeof window=="undefined"?1080:window.innerHeight),L=f(()=>wa(ye.value)),E=f(()=>Va(L.value,2)),h=p(null),ue=p(!1),Xe=p(0);let he=0;const D=p(null),oe=p(!1),le=p(!1),te=p(null),T=p(Ze),H=p(Ye),ne=p([]),Re=p(""),Kt=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],me=["#30dcff","#24f6c4","#8bf7ff","#48cfff","#16b6e8","#b9fbff","#67ffe4"],B=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Ut=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),Qe=[102.58,32.72],Dt=Wn("ne:t_pasture_grassland",pe),Ht={key:ir,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别",color:Je,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Je,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Je,strokeColor:"#FFF58A",selectable:!1}]},Be={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Vt,playUrl:"",hdPlayUrl:"",token:""},Fe=p(null),M=p([]),ve=p(0),q=p(!1),G=p(!1),A=p("");let w=!1,ae=0,V=null,I=null,ze=!1,Z=0,ke=null,ie=0;const qt={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},Zt={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},Yt=ua(xa),et=f(()=>[{key:jt,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:Dt,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:Qe,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Ht]),Jt=f(()=>Array.isArray(ne.value)?ne.value.map(String).filter(Boolean):ne.value?[String(ne.value)]:[]),be=f(()=>{const e=new Set(Jt.value);return et.value.filter(t=>e.has(t.key))}),Xt=f(()=>be.value[0]||null),ce=f(()=>be.value.flatMap(e=>e.legends||[]).find(e=>e.key===Re.value)||null),Qt=f(()=>be.value.flatMap(e=>e.legends||[]));function en(e){var n;return e?!(e.legends||[]).some(a=>{var s;return a.key===((s=ce.value)==null?void 0:s.key)})||!((n=ce.value)!=null&&n.cqlFilter)?e:P(g({},e),{cqlFilter:ce.value.cqlFilter,activeLegend:ce.value,name:ce.value.name||e.name}):null}const tt=f(()=>be.value.map(en).filter(Boolean)),_e=f(()=>tt.value[0]||null),tn=f(()=>!!te.value),nn=Fa,nt=f(()=>Ra({point:te.value?Gn(te.value):null,rowCount:D.value?pt(D.value):0,loading:le.value,empty:oe.value||!D.value})),an=f(()=>nt.value.height),rn=f(()=>nt.value.style),at=f(()=>kt(T.value.core).length?kt(T.value.core):Oa),Pe=f(()=>Ee(bt(T.value.distribution).length?bt(T.value.distribution):qe,ge)),sn=f(()=>{const e=Jn(T.value.online);return Xn(e.length?e:$a)}),un=f(()=>Ee(_t(T.value.age).length?_t(T.value.age):ja,ge)),on=f(()=>Ee(Pt(T.value.age).length?Pt(T.value.age):Wa,ge)),rt=f(()=>Qn(Ua));f(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(Pe.value.length?Pe.value:Ka).map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),f(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:Pe.value})),f(()=>({key:"pasture-grassland-area",type:"heat",rows:rt.value}));const ln=f(()=>({key:"pasture-household-column",type:"column",variant:"plain",scrollable:!1,rows:hn(Pe.value).slice(0,10).map((e,t)=>P(g({},e),{unit:e.unit||"户",color:me[t%me.length]}))})),cn=f(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",rows:rt.value.map((e,t)=>P(g({},e),{unit:e.unit||"万亩",color:me[(t+1)%me.length]}))})),dn=f(()=>({key:"pasture-online",type:"line",rows:sn.value})),fn=f(()=>({key:"pasture-age",type:"column",variant:"plain",lineOverlay:!0,labelMode:"horizontal",scrollable:!1,rows:un.value})),gn=f(()=>({key:"pasture-gender",type:"donut",rows:on.value})),pn=f(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:H.value})),Ne=f(()=>{const e=M.value.length;return e?ve.value%e:0}),yn=f(()=>M.value[Ne.value]||Be),st=f(()=>kn(M.value,Ne.value,Be));function hn(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{var a,s,r;return P(g({},t),{key:t.key||t.code||t.name||`${n}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((r=(s=(a=t.value)!=null?a:t.number)!=null?s:t.count)!=null?r:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function Ee(e=[],t=ge){const n=Array.isArray(e)?e:[],a=n.reduce((u,o)=>u+(Number(o.value)||0),0);if(!n.length||!a||!t||a===t)return n;const s=n.map(u=>P(g({},u),{value:Math.round((Number(u.value)||0)/a*t)})),r=t-s.reduce((u,o)=>u+(Number(o.value)||0),0);if(r&&s.length){const u=s.reduce((o,i,d)=>{var l;return Number(i.value)>Number(((l=s[o])==null?void 0:l.value)||0)?d:o},0);s[u].value+=r}return s}function Me(){ye.value=typeof window=="undefined"?1080:window.innerHeight}ya(()=>{Me(),window.addEventListener("resize",Me),vt(),zn(),Sn(),mn()}),ha(()=>{w=!0,window.removeEventListener("resize",Me),Y(),V&&window.clearTimeout(V),ae+=1}),ma(()=>ee.active,e=>{var t,n;e||Y({resetError:!0}),h.value&&(e?(J(),(n=(t=h.value).refreshView)==null||n.call(t)):(V&&window.clearTimeout(V),V=null,ae+=1))});function mn(){return C(this,null,function*(){try{const e=yield Pa();if(w)return;M.value=e,ve.value=0,A.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(w)return;M.value=[],A.value="监控接口暂不可用",window.setTimeout(()=>{!w&&A.value==="监控接口暂不可用"&&(A.value="")},2400)}})}function vn(e,t){t!=null&&t.isActive&&(Fe.value=e||null)}function kn(e=[],t=0,n=Be){const a=Array.isArray(e)?e:[];if(!a.length)return[{key:`empty-${n.key||"video"}`,index:0,live:n,isActive:!0}];const s=(t+a.length)%a.length,r=a[s]||n;return[{key:`${r.key||r.title||"video"}-${s}`,index:s,live:r,isActive:!0}]}function bn(e,t=!0){const n=(e==null?void 0:e.image)||Vt;return q.value&&t?void 0:{backgroundImage:`url(${n})`}}function _n(){ut(-1)}function Pn(){ut(1)}function ut(e){const t=M.value.length;t&&(Y({resetError:!0}),ve.value=(Ne.value+e+t)%t)}function Nn(e){const t=M.value.length;if(!t){ot();return}const n=((Number(e)||0)+t)%t;(n!==Ne.value||I||G.value)&&Y({resetError:!0}),ve.value=n,xe(ot)}function ot(){return C(this,null,function*(){var a,s;const e=yn.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){A.value="暂无在线可播放摄像头";return}if(q.value||G.value)return;I&&Y({resetError:!0}),A.value="",G.value=!0,yield xe();const t=++Z;let n=null;An(t);try{const r=(s=(a=Fe.value)==null?void 0:a.getBoundingClientRect)==null?void 0:s.call(a),u=Math.max(300,Math.floor((r==null?void 0:r.width)||340)),o=Math.max(80,Math.floor((r==null?void 0:r.height)||120));if(n=new Na.EZUIKitPlayer({id:B,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:u,height:o,themeData:Cn(),handleError(i){t===Z&&(de(),console.warn("Pasture EZUIKit player error",i),A.value="视频加载失败",G.value=!1,q.value=!1,Z+=1,I=null,ze=!1,Ge())},handleSuccess(){t===Z&&(de(),A.value="",ze=!0,G.value=!1,it(),lt())},fullScreenChangeCallBack(){}}),t!==Z){ct(n),Ge();return}I=n,q.value=!0,xe(()=>{it(),lt()})}catch(r){de(),console.warn("Pasture EZUIKit init error",r),A.value="视频加载失败",Y()}})}function lt(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-ez-iframe-footer-container`),t=document.getElementById(`${B}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function it(){var d,l;if(typeof document=="undefined")return;const e=Fe.value,t=document.getElementById(`${B}-wrap`),n=document.getElementById(B),a=t||n;if(!e||!a)return;const s=(d=e.getBoundingClientRect)==null?void 0:d.call(e),r=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),u=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{I&&typeof I.reSize=="function"?I.reSize(r,u):I&&typeof I.autoResize=="function"&&I.autoResize()}catch(m){console.warn("Pasture EZUIKit resize failed",m)}Object.assign(a.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${r}px`,height:`${u}px`,verticalAlign:"top"}),t&&n&&Object.assign(n.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const o=document.getElementById(`EZUIKitPlayer-${B}`);o&&(o.setAttribute("width",String(r)),o.setAttribute("height",String(u))),[...Array.from((n==null?void 0:n.children)||[]),...Array.from(((l=n==null?void 0:n.querySelectorAll)==null?void 0:l.call(n,".play-window, video, canvas, iframe"))||[]),o].filter(Boolean).forEach(m=>{Object.assign(m.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function Y(e={}){const{clearElement:t=!0,resetError:n=!1}=e;de();const a=I;I=null,ze=!1,Z+=1,a&&ct(a),t&&Ge(),q.value=!1,G.value=!1,n&&(A.value="")}function An(e){de(),ke=window.setTimeout(()=>{e!==Z||!G.value||(A.value="视频加载超时",Y({resetError:!1}))},cr)}function de(){ke&&(window.clearTimeout(ke),ke=null)}function ct(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function Ge(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-wrap`);if(e){const n=document.createElement("div");n.id=B,n.className="pasture-video-player",e.replaceWith(n);return}const t=document.getElementById(B);t&&t.replaceChildren()}function Cn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function Sn(){return C(this,null,function*(){try{const e=yield Ba();if(w)return;T.value=g(g({},Ze),e),vt();const t=ea(e.list);H.value=t.length?t:Nt(Ye),In(H.value)}catch(e){T.value=Ze,H.value=Nt(Ye)}})}function In(e=H.value,t=600){w||!ee.active||(V&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null,!(w||!ee.active)&&Ln(e)},t))}function Ln(){return C(this,arguments,function*(e=[]){const t=++ae,n=(Array.isArray(e)?e:[]).filter(Tn).slice(0,60);if(!n.length)return;const a=yield ft(n,5,r=>C(this,null,function*(){const u=Lt(r),o=W(r);let i=o,d=null,l=Ie(r,o)||Le(r,r.name,u);try{(!l||!i.some(b))&&(i=yield gt(r))}catch(R){i=o}if(l=l||Ie(r,i)||Le(r,r.name,u),!l){try{d=u?yield za(u):null}catch(Bt){d=null}const R=W(d);l=Rn(d)||Ie(d,R),R.length&&!i.length&&(i=R)}l=l||Le(r,r.name,u);const m=!!(u||Se(r)||i.some(b)||b(r));if(!l&&!i.length&&m===r.canLocate)return null;const _={key:r.key,id:r.id,realPastureId:u,name:r.name,township:l||r.township,grasslands:i.length?i:r.grasslands,grasslandArea:i.length?Ct(i):O(r),canLocate:m,locateText:m?"定位":"--"};return xn(_,t),_}));if(w||t!==ae)return;const s=new Map;a.filter(Boolean).forEach(r=>{[r.key,r.id,r.realPastureId,r.name].filter(Boolean).forEach(u=>{s.set(String(u),r)})}),s.size&&dt(s)})}function Tn(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(b(e)||W(e).some(b))&&je(e).length?!0:t&&t!=="--"?!1:O(e)>0||We(e)}function xn(e,t=ae){if(!e||w||t!==ae)return;const n=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(a=>{n.set(String(a),e)}),dt(n)}function dt(e){e!=null&&e.size&&(H.value=H.value.map(t=>{var r,u;const n=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(o=>e.get(String(o))).find(Boolean);if(!n)return t;const a=n.township&&n.township!=="--"?n.township:t.township,s=Number(n.grasslandArea)>0?Number(n.grasslandArea):O(t);return P(g({},t),{township:a,grasslands:n.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:fe(n,n.grasslands),hasGrasslandBoundary:((u=(r=n.grasslands)==null?void 0:r.some)==null?void 0:u.call(r,b))||t.hasGrasslandBoundary,canLocate:n.canLocate,locateText:n.locateText,searchText:[t.name,a,t.id].filter(Boolean).join(" ")})}))}function we(e=[]){const t=[],n=a=>{if(!a)return;if(Array.isArray(a)){a.forEach(n);return}if(typeof a!="object")return;const s=W(a);if(s.length)t.push(...s);else{let r=!1;["rows","list","data","result","grassland","pasture","features"].forEach(u=>{const o=a==null?void 0:a[u];o&&(Array.isArray(o)||typeof o=="object")&&(r=!0,n(o))}),r||t.push(a)}};return n(e),t}function Rn(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const n of t.filter(Boolean)){const a=Array.isArray(n==null?void 0:n.fields)?n.fields:Array.isArray(n==null?void 0:n.children)?n.children:[],s=c(n,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return x(Ae(s));for(const u of a){const o=String((u==null?void 0:u.name)||(u==null?void 0:u.label)||(u==null?void 0:u.title)||"").trim(),i=c(u,["value","text","content"]);if(i&&/区域|地址|乡镇/.test(o))return x(Ae(i))}const r=Object.entries(n||{}).filter(([u])=>/fullName|full_name|address|areaName|area_name|town/i.test(u)).map(([,u])=>u);for(const u of r)if(u)return x(Ae(u))}return""}function Ae(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(n==null?void 0:n[1])||t}function ft(e,t,n){return C(this,null,function*(){const a=new Array(e.length);let s=0;const r=Array.from({length:Math.min(t,e.length)},()=>C(this,null,function*(){for(;sC(this,null,function*(){if(b(a))return a;const s=St(a);if(!s)return a;try{const r=yield Ma(s),o=we([r]).find(b);return o?na(a,o):a}catch(r){return a}}));return $e(n)})}function Fn(e){return C(this,null,function*(){var r,u,o,i;const t=++he;J(),(u=(r=h.value)==null?void 0:r.clearFloatingOverlays)==null||u.call(r);let n=[];try{n=yield gt(e)}catch(d){n=W(e)}if(t!==he)return;const a=n.filter(b);if(!a.length){mt();return}if(t!==he)return;((i=(o=h.value)==null?void 0:o.focusPasture)==null?void 0:i.call(o,{name:e==null?void 0:e.name,grasslands:a,highlightTone:"white"}))||mt()})}function zn(){ue.value=!1,U("loading-progress",{progress:0})}function En(){ue.value=!0,U("loading-progress",{progress:100}),U("map-ready")}function Mn(e=_e.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),n=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===jt||n.includes("t_pasture_grassland")}function Gn(e={}){const t=document.querySelector(".pasture-management"),n=t==null?void 0:t.getBoundingClientRect();return n?{x:((Number(e.x)||n.left+n.width/2)-n.left)/Math.max(1,n.width)*1920,y:((Number(e.y)||n.top+n.height/2)-n.top)/Math.max(1,n.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function pt(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([n,a])=>wn(n,a)).length)}function wn(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Ut.has(String(e||"").toLowerCase())}function Vn(e={}){const t=yt(e.lng),n=yt(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function yt(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function On(e={},t={}){var s,r;const n=$n(e);if(!n||!Object.keys(n).length)return null;const a=jn(e,n);return{id:n.id||n.grasslandId||n.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(r=t==null?void 0:t.lngLat)==null?void 0:r.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:a},geometry:a,layer:_e.value||Xt.value,lngLat:t.lngLat}}function $n(e={}){var o,i,d,l;const t=ht(e),n=j((t==null?void 0:t.grassland)||((o=t==null?void 0:t.data)==null?void 0:o.grassland)),a=j((t==null?void 0:t.pasture)||((i=t==null?void 0:t.data)==null?void 0:i.pasture)),s=j((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((d=t==null?void 0:t.data)==null?void 0:d.pasture_balance)),r=n||j(t==null?void 0:t.data)||j(t==null?void 0:t.result)||j(t);if(!r&&!a&&!s)return null;const u=c(r||{},["recognizedYakCount","recognized_yak_count"]);return P(g(g(g(g(g({},r||{}),s||{}),Ve(r)),Ve(a)),Ve(s)),{pastureName:c(a||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||c(r||{},["pastureName","pasture_name"]),recognizedYakCount:u,yakCount:(l=u!=null?u:c(a||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?l:c(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Ve(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((n,a)=>{var u,o;const s=String((a==null?void 0:a.field)||(a==null?void 0:a.key)||(a==null?void 0:a.title)||(a==null?void 0:a.label)||"").trim(),r=(o=(u=a==null?void 0:a.value)!=null?u:a==null?void 0:a.text)!=null?o:a==null?void 0:a.content;return s&&r!==void 0&&r!==null&&r!==""&&(n[s]=r),n},{})}function ht(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function jn(e={},t={}){var r,u;const n=ht(e),a=j((n==null?void 0:n.grassland)||((r=n==null?void 0:n.data)==null?void 0:r.grassland)),s=j((n==null?void 0:n.pasture)||((u=n==null?void 0:n.data)==null?void 0:u.pasture));return c(a||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(n,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function j(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Oe(){D.value=null,te.value=null,oe.value=!1,le.value=!1}function J(){var e,t;ie+=1,Oe(),(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function mt(){var e,t;he+=1,(t=(e=h.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Wn(e,t){return`${e}${e}${t}0.025${t}0.90.74`}function Kn(){return C(this,arguments,function*(e={}){var r,u,o,i,d,l;if(!Mn(e.overlayLayer||_e.value)){J();return}const t=Number((r=e==null?void 0:e.lngLat)==null?void 0:r.lng),n=Number((u=e==null?void 0:e.lngLat)==null?void 0:u.lat);if(!Number.isFinite(t)||!Number.isFinite(n)){J();return}const a=++ie,s=e.screen||{x:960,y:540};te.value=null,D.value=null,oe.value=!1,le.value=!0,(i=(o=h.value)==null?void 0:o.clearSelectedFeature)==null||i.call(o);try{const m=yield Ga(Vn({lng:t,lat:n}));if(a!==ie)return;const _=On(m,e);if(!_||pt(_)<=0){Oe();return}D.value=_,te.value=s,oe.value=!1,_.geometry&&((l=(d=h.value)==null?void 0:d.highlightFeature)==null||l.call(d,_,{highlightTone:"v21"}))}catch(m){if(a!==ie)return;Oe()}finally{a===ie&&(le.value=!1)}})}function Un(){var e,t;J(),(t=(e=h.value)==null?void 0:e.refreshView)==null||t.call(e)}function Dn(){var e,t,n,a;if(J(),(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(a=(n=h.value)==null?void 0:n.resetView)==null||a.call(n);return}ue.value=!1,Xe.value+=1,xe(()=>{window.setTimeout(()=>{var s,r;(r=(s=h.value)==null?void 0:s.refreshView)==null||r.call(s)},160)})}v({refreshMapView:Un,resetMap:Dn});function vt(){U("module-stats",{moduleKey:"pasture-management",items:Hn().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function Hn(){const e=new Map;(Array.isArray(at.value)?at.value:[]).forEach(n=>{!(n!=null&&n.name)||Yn(n.name)||e.set(n.name,n)});const t=e.get("牧户数量")||$t.find(n=>n.name==="牧户数量"||n.zh==="牧户数量");return e.set("牧户数量",P(g({},t),{name:"牧户数量",value:ge,unit:(t==null?void 0:t.unit)||"户"})),Kt.map(n=>e.get(n)||$t.find(a=>a.name===n||a.zh===n)).filter(Boolean).slice(0,4)}function kt(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=t.key||t.id||t.code||t.name||t.zh||`${n}`,s=t.name||t.title||t.label||t.zh,r=qn(s,a),u=c(t,["value","num","count","dataValue"]);if(!r||u===void 0||u===null||u==="")return null;const o=Zn(r,u,t.unit||t.dw||"");return{key:a,name:o.name,value:o.value,unit:o.unit,icon:t.icon||["town","area","yield","rate"][n%4]}}).filter(Boolean)}function qn(e,t){const n=String(e||t||""),a=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(a)||/户均.*牦牛|牦牛.*户均/.test(n)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(a)||/户均.*草地|草地.*户均/.test(n)?"户均草地面积":/income|revenue|人均收入/.test(a)||n.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(a)||n.includes("防反贫")||n.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(a)||n.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(a)||n.includes("牧户数量")?"牧户数量":/yak/.test(a)||n.includes("牦牛")?null:/grass/.test(a)||n.includes("草地面积")?"草地面积":/wet/.test(a)||n.includes("湿地")?"湿地面积":n.includes("牧户")||n.includes("牧场")?"牧户数量":/project/.test(a)||n.includes("工程")||n.includes("项目")?"工程数量":/base/.test(a)||n.includes("基地")?"基地数量":n}function Zn(e,t,n){const a=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:a,unit:n||"头"}:e==="户均草地面积"?{name:e,value:a,unit:n||"亩"}:e==="人均收入"?{name:e,value:a,unit:n||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:a,unit:n||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(n).includes("万")?{name:e,value:Math.round(a/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:a,unit:n||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:a,unit:n||"个"}:{name:e,value:a,unit:n}}function Yn(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function bt(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=c(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!n||a===void 0||a===null||a===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(a)||0,unit:"户"}}).filter(Boolean).sort((t,n)=>n.value-t.value)}function Jn(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=Number(c(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(c(t,["muhuCount","muhu_count","onlineCount"])),r=c(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),u=r!=null&&r!==""?r:a>0?s/a*100:void 0;return!n||u===void 0||u===null||u===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(String(u).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(a)&&a>0?`${s}/${a}户`:t.extra}}).filter(Boolean)}function Xn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=x((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return a?P(g({},a),{key:n.key,name:n.name,unit:a.unit||"%"}):{key:n.key,name:n.name,value:0,unit:"%",extra:"--"}})}function Qn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=x((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName)||(n==null?void 0:n.township));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return{key:n.key,name:n.name,value:Number(a==null?void 0:a.value)||0,unit:(a==null?void 0:a.unit)||"万亩"}}).sort((n,a)=>a.value-n.value)}function _t(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["ageRange","age_range","age","name","label"]),s=c(n,["number","value","count","num"]);!a||s===void 0||s===null||s===""||t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function Pt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["sex","gender","name"]),s=c(n,["number","value","count","num"]);if(!a||s===void 0||s===null||s==="")return;const r=String(a).includes("女")?"女":String(a).includes("男")?"男":a;t.set(r,(t.get(r)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function ea(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=c(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!a)return null;const s=W(t),r=O(t)||Ct(s),u=fe(t,s),o=Lt(t),i=Ie(t,s)||Le(t,a,o),d=Ce(t),l=P(g({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${a}-${n}`,id:o||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:o,name:a,pastureSortOrder:d,township:i||"--",grasslandArea:r,acreage:r,grasslandCount:u,hasGrasslandBoundary:u>0,grasslands:s});return l.canLocate=!!(o||Se(t)||s.some(b)||b(t)),l.locateText=l.canLocate?"定位":"--",l.value=l.grasslandArea,l.unit="亩",l.searchText=[l.name,l.herdsmanName,l.herdsman_name,l.phone,l.phonenumber,l.idCard,l.id_card,l.township,l.id].filter(Boolean).join(" "),l}).filter(Boolean).sort(At)}function Nt(e=[]){return[...Array.isArray(e)?e:[]].map(t=>P(g({},t),{pastureSortOrder:Ce(t),grasslandArea:O(t),acreage:O(t)})).sort(At)}function Ce(e={}){const t=c(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const n=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(n)?n:null}function At(e,t){const n=Ce(e),a=Ce(t);if(n!==null||a!==null)return n===null?1:a===null?-1:n!==a?n-a:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Se(e)?1:0,r=Se(t)?1:0;if(s!==r)return r-s;const u=fe(e),o=fe(t);if(u!==o)return o-u;const i=O(e),d=O(t),l=i>0?1:0,m=d>0?1:0;if(l!==m)return m-l;const _=We(e)?1:0,R=We(t)?1:0;return _!==R?R-_:i!==d?d-i:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Se(e={}){const t=c(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:fe(e)>0}function fe(e={},t=e==null?void 0:e.grasslands){const n=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const a of n){const s=Number(e==null?void 0:e[a]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function O(e={}){const n=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>ta(e==null?void 0:e[s]));return n.find(s=>s>0)||n.find(s=>s===0)||0}function Ct(e=[]){return(Array.isArray(e)?e:[]).reduce((t,n)=>t+O(n),0)}function ta(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const n=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!n)return 0;const a=Number(n[0]);return Number.isFinite(a)?t.includes("万")?a*1e4:a:0}function W(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const r=e==null?void 0:e[s];Array.isArray(r)?t.push(...r):Array.isArray(r==null?void 0:r.rows)?t.push(...r.rows):Array.isArray(r==null?void 0:r.list)?t.push(...r.list):Array.isArray(r==null?void 0:r.data)&&t.push(...r.data)});const a=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||e!=null&&e.geometry)&&t.push(P(g({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:a,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function b(e={}){var t,n;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function na(e={},t={}){var r,u,o,i,d;const n=P(g(g({},e),t),{id:(r=e==null?void 0:e.id)!=null?r:t==null?void 0:t.id,grasslandId:(d=(i=(o=(u=e==null?void 0:e.grasslandId)!=null?u:e==null?void 0:e.grassland_id)!=null?o:t==null?void 0:t.grasslandId)!=null?i:t==null?void 0:t.grassland_id)!=null?d:t==null?void 0:t.id}),a=c(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||s)&&(n.wkt=a||s),n.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),n}function $e(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(n=>{if(!n)return!1;const a=aa(n);return a&&t.has(a)?!1:(a&&t.add(a),!0)})}function aa(e={}){const t=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(a){return""}const n=St(e);return n?`id:${n}`:""}function St(e={}){return It(c(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(It).filter(Boolean).filter((t,n,a)=>a.indexOf(t)===n)}function It(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function Lt(e={}){return je(e)[0]||null}function We(e={}){return e!=null&&e.canLocate||b(e)?!0:W(e).some(b)}function c(e={},t=[]){for(const n of t){const a=e==null?void 0:e[n];if(a!=null&&a!=="")return a}}function Ie(e={},t=[]){const n=c(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),a=x(n);if(a)return a;const s=Ke(c(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const u of t){const o=c(u,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),i=x(o);if(i)return i;const d=Ke(c(u,["areaCode","area_code","townCode","town_code","code"]));if(d)return d}const r=Tt(e);if(r)return r;for(const u of t){const o=Tt(u);if(o)return o}return""}function x(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=Ke(t);if(n)return n;if(Ia(t))return t;const a=La.find(r=>t.includes(r));if(a)return a;const s=Ae(t);return s&&s!==t?x(s):""}function Le(e={},t="",n=""){const a=[n,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const r of a){const u=qt[String(r||"").trim()];if(u)return x(u)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const r of s){const u=Zt[ra(r)];if(u)return x(u)}return""}function ra(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ke(e){const t=String(e||"").trim();if(!t)return"";const n=t.replace(/\D/g,"");return n?Ta(n):""}function Tt(e={}){const t=Ue(e),n=oa(t);if(!n)return"";const a=Yt.find(s=>ia(n,s.geometry));return a!=null&&a.name?x(a.name):""}function Ue(e={}){var a,s;if((e==null?void 0:e.type)==="Feature")return Ue(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((a=e==null?void 0:e.geometry)!=null&&a.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=c(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const n=t.trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const r=JSON.parse(n);return Ue(r)}catch(r){return null}return sa(n)}function sa(e){var r;const t=String(e||"").trim(),n=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),a=(r=n==null?void 0:n[1])==null?void 0:r.toUpperCase();if(!a)return null;const s=t.slice(t.indexOf("("));return a==="POINT"?{type:"Point",coordinates:De(s)}:a==="MULTIPOINT"?{type:"MultiPoint",coordinates:Te(s).map(De).filter(Boolean)}:a==="LINESTRING"?{type:"LineString",coordinates:He(s)}:a==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Te(s).map(He).filter(u=>u.length)}:a==="POLYGON"?{type:"Polygon",coordinates:xt(s)}:a==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Te(s).map(xt).filter(u=>u.length)}:null}function De(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function He(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(De).filter(Boolean)}function xt(e){return Te(e).map(He).filter(t=>t.length>=3)}function Te(e){const t=[];let n=0,a=-1;return Array.from(String(e||"")).forEach((s,r)=>{s==="("?(n===0&&(a=r+1),n+=1):s===")"&&(n-=1,n===0&&a>=0&&(t.push(e.slice(a,r)),a=-1))}),t.length?t:[String(e||"")]}function ua(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(n=>{var a,s,r,u;return{name:((a=n==null?void 0:n.properties)==null?void 0:a.name)||((s=n==null?void 0:n.properties)==null?void 0:s.areaName)||((r=n==null?void 0:n.properties)==null?void 0:r.townName),code:(u=n==null?void 0:n.properties)==null?void 0:u.code,geometry:n==null?void 0:n.geometry}}).filter(n=>{var a;return n.name&&((a=n.geometry)==null?void 0:a.coordinates)})}catch(t){return[]}}function oa(e){const t=la(e);if(!t.length)return null;const n=t.reduce((a,s)=>({lng:a.lng+s[0],lat:a.lat+s[1]}),{lng:0,lat:0});return[n.lng/t.length,n.lat/t.length]}function la(e){const t=[],n=a=>{if(Array.isArray(a)){if(a.length>=2&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))){t.push([Number(a[0]),Number(a[1])]);return}a.forEach(n)}};return n(e==null?void 0:e.coordinates),t}function ia(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Rt(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(n=>Rt(e,n)):!1}function Rt(e,t){var u,o,i,d;const n=t==null?void 0:t[0];if(!Array.isArray(n)||n.length<3)return!1;let a=!1;const s=e[0],r=e[1];for(let l=0,m=n.length-1;lr!=Ft>r&&s<(Bt-_)*(r-R)/(Ft-R||1e-12)+_&&(a=!a)}return a}return(e,t)=>(F(),$("div",Da,[(F(),va(Aa,{key:Xe.value,ref_key:"mapSceneRef",ref:h,class:"pasture-ol-map-layer",active:ee.active,"tile-url-template":dr,center:Qe,"initial-zoom":9,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":_e.value,"overlay-layers":tt.value,onReady:En,onMapClick:Kn},null,8,["active","overlay-layer","overlay-layers"])),t[2]||(t[2]=S("div",{class:"pasture-map-scrim"},null,-1)),ue.value?re("",!0):(F(),$("div",Ha,"3D地图加载中")),S("div",qa,[S("div",Za,[S("div",Ya,[k(Q,{class:"pasture-side-card left-card",title:"牧户区域统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:ln.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"草场面积分布",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:cn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:K(z),height:L.value},{default:X(()=>[S("div",Ja,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:M.value.length<=1,"aria-label":"上一个监控点",onClick:_n}," ‹ ",8,Xa),S("div",{class:Mt(["pasture-video-grid",{"is-single":st.value.length<=1}])},[(F(!0),$(ka,null,ba(st.value,n=>(F(),$("div",{key:n.key,ref_for:!0,ref:a=>vn(a,n),class:Mt(["pasture-video-screen",{"is-active":n.isActive,"is-playing":q.value&&n.isActive,"is-loading":G.value&&n.isActive}]),style:Gt(bn(n.live,n.isActive)),onClick:a=>Nn(n.index)},[n.isActive?(F(),$("div",{key:0,id:B,class:"pasture-video-player"})):re("",!0),(!q.value||!n.isActive)&&n.live.hdPlayUrl?(F(),$("div",er)):re("",!0),G.value&&n.isActive?(F(),$("div",tr,"加载中")):re("",!0),A.value&&n.isActive?(F(),$("div",nr,wt(A.value),1)):re("",!0),S("div",ar,wt(n.live.title),1)],14,Qa))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:M.value.length<=1,"aria-label":"下一个监控点",onClick:Pn}," › ",8,rr)])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"牧户上线率",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:dn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",sr,[S("div",ur,[k(Q,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:fn.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card",title:"牧户性别统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:gn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:K(z),height:E.value},{default:X(()=>[k(se,{panel:pn.value,compact:"","visual-version":"v21",onRowSelect:Fn},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",or,[k(Ca,{modelValue:ne.value,"onUpdate:modelValue":t[0]||(t[0]=n=>ne.value=n),"selected-legend-key":Re.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=n=>Re.value=n),"topic-key":"grassland",layers:et.value,legends:Qt.value,multiple:"",width:232,height:430},null,8,["modelValue","selected-legend-key","layers","legends"])]),tn.value?(F(),$("div",{key:0,class:"pasture-map-feature-info",style:Gt(rn.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":`关闭${Wt}`,title:"关闭",onClick:_a(J,["stop"])}," × ",8,lr),k(Sa,{title:Wt,feature:D.value,empty:oe.value,loading:le.value,width:K(nn),height:an.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):re("",!0)])]))}};export{Ir as default}; diff --git a/docs/assets/index-6e1f3341-balabala-1784132466083.css b/docs/assets/index-6e1f3341-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-6e1f3341-balabala-1784132466083.css rename to docs/assets/index-6e1f3341-balabala-1784132792831.css diff --git a/docs/assets/index-7c335907-balabala-1784132466083.css b/docs/assets/index-7c335907-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-7c335907-balabala-1784132466083.css rename to docs/assets/index-7c335907-balabala-1784132792831.css diff --git a/docs/assets/index-8d752fbe-balabala-1784132466083.css b/docs/assets/index-8d752fbe-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-8d752fbe-balabala-1784132466083.css rename to docs/assets/index-8d752fbe-balabala-1784132792831.css diff --git a/docs/assets/index-ed255eef-1784132466083.js b/docs/assets/index-a1b5e9c0-1784132792831.js similarity index 82% rename from docs/assets/index-ed255eef-1784132466083.js rename to docs/assets/index-a1b5e9c0-1784132792831.js index 2623d2c..366fb69 100644 --- a/docs/assets/index-ed255eef-1784132466083.js +++ b/docs/assets/index-a1b5e9c0-1784132792831.js @@ -1,4 +1,4 @@ -var Yt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ye=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var ut=(e,o,a)=>o in e?Yt(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,P=(e,o)=>{for(var a in o||(o={}))ct.call(o,a)&&ut(e,a,o[a]);if(ye)for(var a of ye(o))dt.call(o,a)&&ut(e,a,o[a]);return e},ve=(e,o)=>Qt(e,Jt(o));var mt=(e,o)=>{var a={};for(var l in e)ct.call(e,l)&&o.indexOf(l)<0&&(a[l]=e[l]);if(e!=null&&ye)for(var l of ye(e))o.indexOf(l)<0&&dt.call(e,l)&&(a[l]=e[l]);return a};var X=(e,o,a)=>new Promise((l,s)=>{var c=_=>{try{p(a.next(_))}catch(g){s(g)}},h=_=>{try{p(a.throw(_))}catch(g){s(g)}},p=_=>_.done?l(_.value):Promise.resolve(_.value).then(c,h);p((a=a.apply(e,o)).next())});import{_ as bt,o as m,c as f,a as r,t as E,r as pe,b as x,d as k,w as We,p as ft,i as ht,n as B,u as R,e as we,f as yt,g as A,h as St,j as S,k as vt,l as Zt,m as Xt,q as ea,s as q,v as N,x as Le,F as ge,y as De,z as ta,A as Fe,B as aa,C as na,D as z,E as oa,G as H}from"./index-1784132466083.js";import{g as te}from"./index-e9f36657-1784132466083.js";const gt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1784132466083.svg",import.meta.url).href,pt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1784132466083.svg",import.meta.url).href;/** +var Yt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ye=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var ut=(e,o,a)=>o in e?Yt(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,P=(e,o)=>{for(var a in o||(o={}))ct.call(o,a)&&ut(e,a,o[a]);if(ye)for(var a of ye(o))dt.call(o,a)&&ut(e,a,o[a]);return e},ve=(e,o)=>Qt(e,Jt(o));var mt=(e,o)=>{var a={};for(var l in e)ct.call(e,l)&&o.indexOf(l)<0&&(a[l]=e[l]);if(e!=null&&ye)for(var l of ye(e))o.indexOf(l)<0&&dt.call(e,l)&&(a[l]=e[l]);return a};var X=(e,o,a)=>new Promise((l,s)=>{var c=_=>{try{p(a.next(_))}catch(g){s(g)}},h=_=>{try{p(a.throw(_))}catch(g){s(g)}},p=_=>_.done?l(_.value):Promise.resolve(_.value).then(c,h);p((a=a.apply(e,o)).next())});import{_ as bt,o as m,c as f,a as r,t as E,r as pe,b as x,d as k,w as We,p as ft,i as ht,n as B,u as R,e as we,f as yt,g as A,h as St,j as S,k as vt,l as Zt,m as Xt,q as ea,s as q,v as N,x as Le,F as ge,y as De,z as ta,A as Fe,B as aa,C as na,D as z,E as oa,G as H}from"./index-1784132792831.js";import{g as te}from"./index-e9f36657-1784132792831.js";const gt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1784132792831.svg",import.meta.url).href,pt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1784132792831.svg",import.meta.url).href;/** * @name: autofit.js * @author: Larry Zhu * @version: 3.2.8 @@ -13,4 +13,4 @@ ${b} { }`,V&&(v.innerHTML+=` ${b} div ,${b} span,${b} a,${b} * { font-size: ${V}px; - }`)}}ke.elRectification=Oe;const ia={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let e=1;return{maskId:"svgline-"+e,radialGradientId:"radialGradient-"+e}},mounted(){let e=this._.uid;this.maskId="svgline-"+e,this.radialGradientId="radialGradient-"+e}},la={class:"svg-line-animation"},sa=["viewBox"],ra=["id"],ua=["stop-opacity"],ca=["stop-opacity"],da=["id"],ma=["r","fill"],fa=["begin","dur","path","keyPoints"],ha=["d","stroke","stroke-width","mask"];function ya(e,o,a,l,s,c){return m(),f("div",la,[(m(),f("svg",{width:"100%",height:"100%",viewBox:`0 0 ${a.width} ${a.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[r("defs",null,[r("radialGradient",{id:s.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[r("stop",{offset:"0%","stop-color":"#fff","stop-opacity":a.dir[1]},null,8,ua),r("stop",{offset:"100%","stop-color":"#fff","stop-opacity":a.dir[0]},null,8,ca)],8,ra),r("mask",{id:s.maskId},[r("circle",{r:a.length,cx:"0",cy:"0",fill:`url(#${s.radialGradientId})`},[r("animateMotion",{begin:`${a.begin}s`,dur:`${a.duration}s`,path:a.path,rotate:"auto",keyPoints:`${a.dir[0]};${a.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,fa)],8,ma)],8,da)]),r("path",{class:"path-line",d:a.path,stroke:a.color,"stroke-width":a.strokeWidth,mask:`url(#${s.maskId})`},null,8,ha)],8,sa))])}const _e=bt(ia,[["render",ya]]);const va={class:"m-header"},ga={class:"m-header-wrap"},pa={class:"m-header-title"},wa={class:"m-header-subtext"},_a={class:"m-header-left",style:{color:"#fff"}},ka={class:"m-header-right"},ba={class:"m-header-line"},Sa={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(e){return(o,a)=>(m(),f("div",va,[r("div",ga,[r("div",pa,E(e.title),1),r("div",wa,E(e.subText),1)]),r("div",_a,[pe(o.$slots,"left")]),r("div",ka,[pe(o.$slots,"right")]),r("div",ba,[x(_e,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),x(_e,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const Ta={class:"m-menu"},$a={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(e,{emit:o}){const a=o,l=e,s=k(l.defaultActive);return ft("updateActive",h=>{h!==s.value&&(s.value=h,a("select",h))}),ft("activeIndex",s),We(()=>l.defaultActive,h=>{h!==s.value&&(s.value=h)}),(h,p)=>(m(),f("div",Ta,[pe(h.$slots,"default")]))}},xa=["aria-current","onKeydown"],Ea={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(e){const o=e,a=ht("updateActive"),l=ht("activeIndex"),s=()=>{a(o.index)};return(c,h)=>(m(),f("div",{class:B(["m-menu-item",{"is-active":e.index===R(l)}]),role:"button",tabindex:"0","aria-current":e.index===R(l)?"page":void 0,onClick:s,onKeydown:[we(yt(s,["prevent"]),["enter"]),we(yt(s,["prevent"]),["space"])]},[pe(c.$slots,"default")],42,xa))}};let _t=0;const kt="webkit moz ms o".split(" ");let D,F;const Ma=typeof window=="undefined";if(Ma)D=function(){},F=function(){};else{D=window.requestAnimationFrame,F=window.cancelAnimationFrame;let e;for(let o=0;o{o(a+l)},l);return _t=a+l,s},F=function(o){window.clearTimeout(o)})}const Va={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(e){return e>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(e,o,a,l){return a*(-Math.pow(2,-10*e/l)+1)*1024/1023+o}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=D(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){F(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,D(this.count)},reset(){this.startTime=null,F(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(e){this.startTime||(this.startTime=e),this.timestamp=e;const o=e-this.startTime;this.remaining=this.localDuration-o,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(o,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(o,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(o/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(o/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),o1?this.decimal+o[1]:"",s=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;s.test(a);)a=a.replace(s,"$1"+this.separator+"$2");return this.prefix+a+l+this.suffix}},destroyed(){F(this.rAF)}};function Aa(e,o,a,l,s,c){return m(),f("span",null,E(s.displayValue),1)}const $t=bt(Va,[["render",Aa]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",$t);const Ra={class:"count-card-left"},Ca={class:"count-card-title"},La={class:"title-zh"},Da={key:0,class:"title-en"},Fa={class:"count-card-right"},Ia={class:"unit"},Pa={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(e){const o=e,a=k(!0),l=k(!1),s=k(0);let c=null;const h=A(()=>o.info.duration||1800);We(()=>[o.info.value,o.info.zh],()=>{c&&window.clearTimeout(c),a.value=!0,l.value=!1,s.value+=1},{immediate:!0});function p(v){return v.toUpperCase()}function _(){a.value=!0,l.value=!1}function g(){a.value=!1,l.value=!0,c&&window.clearTimeout(c),c=window.setTimeout(()=>{l.value=!1},900)}return St(()=>{c&&window.clearTimeout(c)}),(v,w)=>(m(),f("div",{class:B(["count-card",{"is-counting":a.value,"is-settled":l.value}])},[r("div",Ra,[r("div",{class:B(["count-card-icon","icon-"+e.info.icon])},null,2),r("div",Ca,[r("div",La,E(e.info.zh),1),e.info.en?(m(),f("div",Da,E(p(e.info.en)),1)):S("",!0)])]),r("div",Fa,[(m(),f("div",{class:"value",key:s.value},[x(R($t),{startVal:0,endVal:e.info.value,decimals:e.info.decimals,duration:h.value,separator:"",autoplay:!0,onMountedCallback:_,onCallback:g},null,8,["endVal","decimals","duration"])])),r("div",Ia,E(e.info.unit),1)])],2))}},ae=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛产业全链",bottomLabel:"产业全链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function qa(e){return ae.find(o=>o.key===e)||ae[1]}const Ne=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],Na=12e3;function za(e,o={}){const a=new URLSearchParams;Object.entries(o).forEach(([s,c])=>{c!=null&&c!==""&&a.append(s,c)});const l=a.toString();return l?`${e}${e.includes("?")?"&":"?"}${l}`:e}function Ha(a){return X(this,arguments,function*(e,o={}){const g=o,{params:l,timeout:s=Na}=g,c=mt(g,["params","timeout"]),h=new AbortController;let p=!1;const _=window.setTimeout(()=>{p=!0,h.abort()},s);try{const v=yield fetch(za(e,l),ve(P({credentials:"include"},c),{signal:h.signal,headers:P({Accept:"application/json"},c.headers||{})}));if(!v.ok){const u=new Error(v.status===401?"用户未登录或授权已过期。":`HTTP ${v.status}`);throw u.code=`HTTP_${v.status}`,u.status=v.status,v.status===401&&vt(),u}const w=yield v.json();if((w==null?void 0:w.code)===401||(w==null?void 0:w.code)==="401"){const u=new Error((w==null?void 0:w.msg)||"用户未登录或授权已过期。");throw u.code="HTTP_401",u.status=401,vt(),u}return w}catch(v){if(h.signal.aborted||(v==null?void 0:v.name)==="AbortError"||/aborted/i.test((v==null?void 0:v.message)||"")){const u=new Error(p?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw u.code=p?"REQUEST_TIMEOUT":"REQUEST_ABORTED",u}throw v}finally{window.clearTimeout(_)}})}function Oa(e){return(e==null?void 0:e.data)!==void 0?e.data:(e==null?void 0:e.result)!==void 0?e.result:e}const Wa="/jsyApi",ja={}.VITE_AMAP_WEATHER_KEY||"b72b3e3b2023760dae2cdf2e00561812",Ka="513233";function Ba(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"天气接口请求失败");return Oa(e)}function xt(e){var h,p,_,g;const o=(p=(h=e==null?void 0:e.data)!=null?h:e==null?void 0:e.result)!=null?p:e,a=Array.isArray(o)?o[0]:Array.isArray(o==null?void 0:o.rows)?o.rows[0]:Array.isArray(o==null?void 0:o.list)?o.list[0]:o;if(!a||typeof a!="object")return null;const l=(...v)=>v.find(w=>w!=null&&w!==""),s=l(a.temp,a.temperature,a.temperature_float,a.tempDay,a.temperatureDay),c=l(a.humidity,a.humidity_float,a.pop,a.relativeHumidity);return{condition:a.conditionDay||a.condition||a.weather||a.weatherText||"",temperature:s==null||s===""?"--":s,humidity:c==null||c===""?"--":c,windDirection:a.windDir||a.windDirection||"",windLevel:a.windLevel||a.windScale||a.windPower||"",icon:(g=(_=a.icon)!=null?_:a.weatherIcon)!=null?g:null}}function Ua(e){return X(this,null,function*(){const o=yield Ha(`${Wa}${e}`,{timeout:8e3});return xt(Ba(o))})}function Ga(){return new Promise((e,o)=>{const a=`__hongyuanWeather${Date.now()}${Math.random().toString(16).slice(2)}`,l=document.createElement("script"),s=()=>{window.clearTimeout(c),l.remove(),delete window[a]},c=window.setTimeout(()=>{s(),o(new Error("高德天气接口响应超时"))},8e3);window[a]=p=>{var g;const _=(g=p==null?void 0:p.lives)==null?void 0:g[0];if(s(),!_){o(new Error((p==null?void 0:p.info)||"高德天气暂无数据"));return}e(xt(_))},l.onerror=()=>{s(),o(new Error("高德天气接口加载失败"))};const h=new URLSearchParams({city:Ka,key:ja,extensions:"base",output:"JSON",callback:a});l.src=`https://restapi.amap.com/v3/weather/weatherInfo?${h}`,document.head.appendChild(l)})}function Ya(){return X(this,null,function*(){const e=["/api/home/realTimeWeather","/api/home/weatherForecast"];let o=null;for(const a of e)try{const l=yield Ua(a);if(l)return l}catch(l){o=l}try{const a=yield Ga();if(a)return a}catch(a){o=a}throw o||new Error("天气数据暂不可用")})}const Qa={key:0,class:"platform-module-pane"},Ja={key:1,class:"platform-module-pane"},Za={key:2,class:"platform-module-pane"},Xa={key:3,class:"platform-module-pane"},en={key:4,class:"platform-module-pane"},tn={key:5,class:"platform-module-pane"},an={key:6,class:"platform-module-pane"},nn={key:7,class:"platform-module-pane"},on={class:"large-screen-wrap"},ln={class:"m-header-tools"},sn=["src","alt"],rn={key:1,class:"platform-weather__fallback-icon","aria-hidden":"true"},un={class:"platform-weather__copy"},cn={class:"platform-weather__primary"},dn={key:0},mn={key:0},fn={key:0},hn={key:1,"aria-hidden":"true"},yn={key:2},vn={class:"platform-datetime","aria-label":"当前日期和时间"},gn={class:"top-menu"},pn={key:0,class:"top-menu-mid-space"},wn={key:1,class:"platform-map-tools","aria-label":"地图工具"},_n=["title","aria-label"],kn={key:2,class:"module-coming"},bn={class:"module-coming-title"},Sn={key:3,class:"bottom-tray"},Tn={class:"bottom-menu"},$n=["onClick"],xn={key:8,class:"loading platform-loading"},En={class:"loading-progress"},Mn={class:"value"},Vn=2,An=650,Rn={__name:"index",setup(e){const o=z(()=>H(()=>import("./index-cd8a1218-1784132466083.js"),["./index-cd8a1218-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./live-scene-1-bedc4ad6-1784132466083.js","./index.esm.min-e7a22049-1784132466083.js","./index-fe70e5de-1784132466083.js","./index-148a2898-balabala-1784132466083.css","./index-36438a28-1784132466083.js","./townshipBoundaries-822b7d9e-1784132466083.js","./index-1d3ffd1c-balabala-1784132466083.css","./screen2Standard-483e466b-1784132466083.js","./index-e9f36657-1784132466083.js","./screen2Standard-cdb21878-balabala-1784132466083.css","./data-1f73e057-1784132466083.js","./TopicSwitcher-7006d8b4-1784132466083.js","./TopicSwitcher-c994e245-balabala-1784132466083.css","./livestockData-36ec0ae2-1784132466083.js","./FeatureInfoPanel-3970d641-1784132466083.js","./FeatureInfoPanel-84703f43-balabala-1784132466083.css","./openApi-d69f269f-1784132466083.js","./geoserver-b1a62bfb-1784132466083.js","./featurePanelLayout-62f917d3-1784132466083.js","./yakApi-08a6746e-1784132466083.js","./chartTheme-e9ae7be8-1784132466083.js","./data-5c83c66b-1784132466083.js","./data-19be80ff-1784132466083.js","./index-034c61c5-balabala-1784132466083.css"],import.meta.url)),a=z(()=>H(()=>import("./index-9f1a597b-1784132466083.js"),["./index-9f1a597b-1784132466083.js","./index-e9f36657-1784132466083.js","./assets-8617da22-1784132466083.js","./screen2Standard-483e466b-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./screen2Standard-cdb21878-balabala-1784132466083.css","./TopicSwitcher-7006d8b4-1784132466083.js","./townshipBoundaries-822b7d9e-1784132466083.js","./TopicSwitcher-c994e245-balabala-1784132466083.css","./index-36438a28-1784132466083.js","./index-1d3ffd1c-balabala-1784132466083.css","./openApi-d69f269f-1784132466083.js","./geoserver-b1a62bfb-1784132466083.js","./featurePanelLayout-62f917d3-1784132466083.js","./LayerPanel-5b73c261-1784132466083.js","./index-fe70e5de-1784132466083.js","./index-148a2898-balabala-1784132466083.css","./LayerPanel-7a55b2bc-balabala-1784132466083.css","./FeatureInfoPanel-3970d641-1784132466083.js","./FeatureInfoPanel-84703f43-balabala-1784132466083.css","./index-6e1f3341-balabala-1784132466083.css","./layout-b708cd9c-balabala-1784132466083.css"],import.meta.url)),l=z(()=>H(()=>import("./index-de71c4fe-1784132466083.js"),["./index-de71c4fe-1784132466083.js","./index-e9f36657-1784132466083.js","./index-fe70e5de-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./index-148a2898-balabala-1784132466083.css","./townshipBoundaries-822b7d9e-1784132466083.js","./featurePanelLayout-62f917d3-1784132466083.js","./assets-8617da22-1784132466083.js","./screen2Standard-483e466b-1784132466083.js","./screen2Standard-cdb21878-balabala-1784132466083.css","./TopicSwitcher-7006d8b4-1784132466083.js","./TopicSwitcher-c994e245-balabala-1784132466083.css","./index-36438a28-1784132466083.js","./index-1d3ffd1c-balabala-1784132466083.css","./LayerPanel-5b73c261-1784132466083.js","./LayerPanel-7a55b2bc-balabala-1784132466083.css","./FeatureInfoPanel-3970d641-1784132466083.js","./FeatureInfoPanel-84703f43-balabala-1784132466083.css","./data-09f482ff-1784132466083.js","./data-5c83c66b-1784132466083.js","./index-7c335907-balabala-1784132466083.css","./layout-b708cd9c-balabala-1784132466083.css"],import.meta.url)),s=z(()=>H(()=>import("./index-f58ea5e1-1784132466083.js"),["./index-f58ea5e1-1784132466083.js","./index-fe70e5de-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./index-148a2898-balabala-1784132466083.css","./data-5c83c66b-1784132466083.js","./index-e9f36657-1784132466083.js","./index-c36df85d-balabala-1784132466083.css"],import.meta.url)),c=z(()=>H(()=>import("./index-503e7d65-1784132466083.js"),["./index-503e7d65-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./index.esm.min-e7a22049-1784132466083.js","./index-fe70e5de-1784132466083.js","./index-148a2898-balabala-1784132466083.css","./screen2Standard-483e466b-1784132466083.js","./index-e9f36657-1784132466083.js","./screen2Standard-cdb21878-balabala-1784132466083.css","./data-1f73e057-1784132466083.js","./TopicSwitcher-7006d8b4-1784132466083.js","./townshipBoundaries-822b7d9e-1784132466083.js","./TopicSwitcher-c994e245-balabala-1784132466083.css","./livestockData-36ec0ae2-1784132466083.js","./geoserver-b1a62bfb-1784132466083.js","./LayerPanel-5b73c261-1784132466083.js","./LayerPanel-7a55b2bc-balabala-1784132466083.css","./assets-8617da22-1784132466083.js","./index-36438a28-1784132466083.js","./index-1d3ffd1c-balabala-1784132466083.css","./yakApi-08a6746e-1784132466083.js","./index-2bde92c2-balabala-1784132466083.css"],import.meta.url)),h=z(()=>H(()=>import("./index-c521be47-1784132466083.js"),["./index-c521be47-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./live-scene-1-bedc4ad6-1784132466083.js","./index-fe70e5de-1784132466083.js","./index-148a2898-balabala-1784132466083.css","./index-36438a28-1784132466083.js","./townshipBoundaries-822b7d9e-1784132466083.js","./index-1d3ffd1c-balabala-1784132466083.css","./LayerPanel-5b73c261-1784132466083.js","./LayerPanel-7a55b2bc-balabala-1784132466083.css","./FeatureInfoPanel-3970d641-1784132466083.js","./screen2Standard-483e466b-1784132466083.js","./index-e9f36657-1784132466083.js","./screen2Standard-cdb21878-balabala-1784132466083.css","./FeatureInfoPanel-84703f43-balabala-1784132466083.css","./featurePanelLayout-62f917d3-1784132466083.js","./data-e9a1e061-1784132466083.js","./livestockData-36ec0ae2-1784132466083.js","./index-41d168c2-balabala-1784132466083.css"],import.meta.url)),p=z(()=>H(()=>import("./index-14f1aa65-1784132466083.js"),["./index-14f1aa65-1784132466083.js","./index.esm.min-e7a22049-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./index-fe70e5de-1784132466083.js","./index-148a2898-balabala-1784132466083.css","./index-36438a28-1784132466083.js","./townshipBoundaries-822b7d9e-1784132466083.js","./index-1d3ffd1c-balabala-1784132466083.css","./FeatureInfoPanel-3970d641-1784132466083.js","./screen2Standard-483e466b-1784132466083.js","./index-e9f36657-1784132466083.js","./screen2Standard-cdb21878-balabala-1784132466083.css","./FeatureInfoPanel-84703f43-balabala-1784132466083.css","./LayerPanel-5b73c261-1784132466083.js","./LayerPanel-7a55b2bc-balabala-1784132466083.css","./TopicSwitcher-7006d8b4-1784132466083.js","./TopicSwitcher-c994e245-balabala-1784132466083.css","./assets-8617da22-1784132466083.js","./chartTheme-e9ae7be8-1784132466083.js","./data-8833788f-1784132466083.js","./livestockData-36ec0ae2-1784132466083.js","./index-5afedc21-balabala-1784132466083.css"],import.meta.url)),_=z(()=>H(()=>import("./index-e4e210df-1784132466083.js"),["./index-e4e210df-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./yakApi-08a6746e-1784132466083.js","./data-19be80ff-1784132466083.js","./livestockData-36ec0ae2-1784132466083.js","./data-5c83c66b-1784132466083.js","./data-e9a1e061-1784132466083.js","./data-09f482ff-1784132466083.js","./townshipBoundaries-822b7d9e-1784132466083.js","./data-8833788f-1784132466083.js","./index-e9f36657-1784132466083.js","./index-089a3dd0-balabala-1784132466083.css"],import.meta.url)),g=Zt(),v=Xt(),w=re(g.query.module),u=k(w),b=k(w==="ecological-protection"?at(g.query.view):"ecological-redline"),M=k(w==="yak-management"?Re(g.query.view):"structure"),V=k({[w]:!0});let I=[w];const U=k({}),G=k(!0),Y=k(0),be=k(null),Se=k(null),je=k(null),Ke=k(null),Be=k(null),Ue=k(null),Ge=k(null),Ye=k(!1),Qe=k(""),Je=k(""),C=k({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),Q=k(!1),Te=k(!1);let J=null,$e=null,xe=null,oe=!1,ie=null;const Et=Date.now(),O={progress:0},Mt=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),W=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],Vt=new Set(W),d=A(()=>qa(u.value)),At=A(()=>`/images/weather/W${C.value.icon}.png`),Rt=A(()=>Q.value&&C.value.icon!==null&&!Te.value),Ee=A(()=>!["","--",null,void 0].includes(C.value.humidity)),le=A(()=>{const t=String(C.value.windDirection||"").trim(),n=String(C.value.windLevel||"").trim();return!t&&!n?"":`${t}${t&&n?" ":""}${n?`${n}级`:""}`}),Ze=A(()=>Ye.value?"退出":"全屏"),Ct=A(()=>!["smart-management","grass-livestock-balance"].includes(d.value.key)),Lt=A(()=>j.value.length===5&&(d.value.key==="home"||d.value.key==="ecological-protection"&&Me.value==="national-park")),Dt=A(()=>u.value==="ecological-protection"?Ne:ae),Me=A(()=>u.value==="ecological-protection"?b.value:u.value),j=A(()=>{const t=U.value[u.value];return Array.isArray(t)||t!=null&&t.length?t:ot([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});ea(()=>{Xe(),et(),$e=window.setInterval(Xe,1e3),xe=window.setInterval(et,30*60*1e3),J=ke.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),jt(),fe(),Ce(),Nt(u.value)?zt(u.value):(oe=!0,Y.value=100,G.value=!1)}),St(()=>{var t;$e&&window.clearInterval($e),xe&&window.clearInterval(xe),de(),(t=J==null?void 0:J.off)==null||t.call(J,"#large-screen"),Kt(),te.killTweensOf(O)});function Xe(){const t=new Date,n=T=>String(T).padStart(2,"0"),i=["周日","周一","周二","周三","周四","周五","周六"];Qe.value=`${t.getFullYear()}.${n(t.getMonth()+1)}.${n(t.getDate())} ${i[t.getDay()]}`,Je.value=`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function et(){return X(this,null,function*(){try{C.value=yield Ya(),Q.value=!0,Te.value=!1}catch(t){Q.value=!1,console.warn("[platform] weather unavailable",t)}})}function Ft(){Te.value=!0}function Ve(t,n={}){const i=re(t),T=i==="home"&&!n.fromRoute;if(i==="yak-management"&&!n.fromRoute&&(M.value="structure"),i===u.value){T&&me(),se(i);return}u.value=i,Wt(i),se(i),T&&me(),Fe(Ce)}function Ae(t){re(t)==="home"&&u.value==="home"&&me()}function It(t){if(t!=null&&t.key){if(u.value==="ecological-protection"){tt(t.key);return}Ve(t.key)}}function tt(t){const n=Ne.some(i=>i.key===t)?t:"ecological-redline";n===b.value&&u.value==="ecological-protection"||(b.value=n,u.value==="ecological-protection"&&se("ecological-protection"),Fe(Ce))}function Pt(t){const n=Re(t);n!==M.value&&(M.value=n,u.value==="yak-management"&&se("yak-management"))}We(()=>[g.query.module,g.query.view],([t,n])=>{const i=re(t);i==="ecological-protection"&&(b.value=at(n)),i==="yak-management"&&(M.value=Re(n)),i!==u.value&&Ve(i,{fromRoute:!0})});function se(t=u.value){const n=ve(P({},g.query),{module:t});t==="yak-management"?n.view=M.value:t==="ecological-protection"?n.view=b.value:delete n.view;const i=g.query||{},T=String(i.module||"")===String(n.module||"")&&String(i.view||"")===String(n.view||"");g.path==="/platform"&&T||v.replace({path:"/platform",query:n}).catch(()=>{})}function re(t){const n=Array.isArray(t)?t[0]:t;return ae.some(i=>i.key===n)?n:"home"}function Re(t){const n=Array.isArray(t)?t[0]:t;return["structure","forecast","epidemic","trade"].includes(n)?n:"structure"}function at(t){const n=Array.isArray(t)?t[0]:t;return Ne.some(i=>i.key===n)?n:"ecological-redline"}function K(t){const n=t.moduleKey||(t.topicKey?"forest-grass-wet":u.value);U.value=ve(P({},U.value),{[n]:ot(t.items||[])})}function ue(t={}){const n=typeof t=="number"?t:t.progress;qt(n)}function ce(){de(),te.killTweensOf(O),O.progress=100,Y.value=100;const t=Date.now()-Et,n=Math.max(80,An-t);window.setTimeout(nt,n)}function qt(t){if(!G.value)return;const n=Math.max(0,Math.min(100,Math.floor(Number(t)||0)));n{Y.value=Math.floor(O.progress)}})}function nt(){if(!G.value||oe)return;de(),oe=!0;const t=te.timeline({onComplete:()=>{G.value=!1}});t.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:.45,stagger:.035}),t.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:.3},"<"),t.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.28},"-=0.12")}function Nt(t){return Mt.has(t)}function zt(t){de();const n=t==="home"?12e3:8e3;ie=window.setTimeout(()=>{!G.value||oe||(te.killTweensOf(O),O.progress=100,Y.value=100,window.setTimeout(nt,120))},n)}function de(){ie&&(window.clearTimeout(ie),ie=null)}function ot(t=[]){const n=new Set;return t.slice(0,10).map((i,T)=>{var Z;const y=Number(i.value)||0,L={zh:i.zh||i.name||`指标${T+1}`,en:i.en||"",value:y,unit:i.unit||"",decimals:(Z=i.decimals)!=null?Z:Number.isInteger(y)?0:2},he=Ht(P(P({},i),L),T,n);return n.add(he),P({icon:he},L)})}function Ht(t={},n=0,i=new Set){const y=Ot(t,n).find(L=>Vt.has(L)&&!i.has(L));return y||W.find(L=>!i.has(L))||W[n%W.length]}function Ot(t={},n=0){const i=`${t.zh||t.name||""}${t.unit||""}`,T=[],y=(...he)=>{he.forEach(Z=>{Z&&!T.includes(Z)&&T.push(Z)})};y(t.icon),/风险|预警|告警/.test(i)&&y("risk","rate"),/模型|修正|共识|预测|变化|净/.test(i)&&y("rate","stack"),/率|占比|比例|超载/.test(i)&&y("rate","project"),/生态牧场|家庭生态/.test(i)&&y("leaf","town"),/出证|证书|证/.test(i)&&y("certificate","project"),/交易|销售/.test(i)&&y("yield","certificate"),/流通|出栏|流出/.test(i)&&y("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test(i)&&y("device","length"),/工程长度|长度|公里/.test(i)&&y("length","project"),/修复项目|项目|工程|治理/.test(i)&&y("project","length"),/国家公园|保护范围|保护区|划定/.test(i)&&y("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test(i)&&y("yield","leaf"),/湿地/.test(i)&&y("wetland","leaf"),/基本草原/.test(i)&&y("grass-basic","area"),/一般草原/.test(i)&&y("grass-general","area"),/林地|森林|公益林/.test(i)&&y("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test(i)&&y("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test(i)&&y("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test(i)&&y("town","project"),/生态|林草/.test(i)&&y("leaf","wetland");const L=n%W.length;return y(...W.slice(L),...W.slice(0,L)),T}function Wt(t){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(t)&&(I=I.filter(n=>n!==t),I.push(t),I=I.slice(-Vn),V.value=Object.fromEntries(I.map(n=>[n,!0])))}function Ce(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const t=document.querySelector("#app");t&&(t.scrollTop=0)}function me(t=4){Fe(()=>{const n=Se.value;if(n!=null&&n.showDefaultThreeMap){n.showDefaultThreeMap();return}t>0&&window.setTimeout(()=>me(t-1),80)})}const it=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function lt(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function fe(){var i;const t=lt(),n=be.value;Ye.value=!!(n&&t&&(t===n||n.contains(t)||(i=t.contains)!=null&&i.call(t,n)))}function jt(){typeof document!="undefined"&&it.forEach(t=>document.addEventListener(t,fe))}function Kt(){typeof document!="undefined"&&it.forEach(t=>document.removeEventListener(t,fe))}function st(){var t,n;(n=(t=rt())==null?void 0:t.refreshMapView)==null||n.call(t)}function Bt(){return X(this,null,function*(){if(typeof document=="undefined")return;const t=lt();try{if(t){const n=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield n==null?void 0:n.call(document)}else{const n=be.value||document.documentElement,i=n.requestFullscreen||n.webkitRequestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen;yield i==null?void 0:i.call(n)}}catch(n){console.warn("[platform] fullscreen toggle failed",n)}finally{fe(),window.setTimeout(st,80),window.setTimeout(st,280)}})}function Ut(){var t,n;(n=(t=rt())==null?void 0:t.resetMap)==null||n.call(t)}function rt(){return d.value.key==="home"?Se.value:d.value.key==="forest-grass-wet"?je.value:d.value.key==="ecological-protection"?Ke.value:d.value.key==="yak-management"?Be.value:d.value.key==="pasture-management"?Ue.value:d.value.key==="yak-industry-chain"?Ge.value:null}function Gt(){oa()}return(t,n)=>(m(),f("div",{ref_key:"platformScreenRef",ref:be,class:B(["large-screen platform-screen",{"is-home":d.value.key==="home","is-forest-grass-wet":d.value.key==="forest-grass-wet","is-ecological-protection":d.value.key==="ecological-protection","is-grass-livestock-balance":d.value.key==="grass-livestock-balance","is-yak-management":d.value.key==="yak-management","is-pasture-management":d.value.key==="pasture-management","is-yak-industry-chain":d.value.key==="yak-industry-chain","is-smart-management":d.value.key==="smart-management","is-ecology-national-park":d.value.key==="ecological-protection"&&Me.value==="national-park"}]),id:"large-screen"},[V.value.home?q((m(),f("div",Qa,[x(R(o),{ref_key:"homeDashboardRef",ref:Se,active:d.value.key==="home",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="home"]]):S("",!0),V.value["forest-grass-wet"]?q((m(),f("div",Ja,[x(R(a),{ref_key:"forestGrassWetRef",ref:je,active:d.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:K},null,8,["active"])],512)),[[N,d.value.key==="forest-grass-wet"]]):S("",!0),V.value["ecological-protection"]?q((m(),f("div",Za,[x(R(l),{ref_key:"ecologicalProtectionRef",ref:Ke,active:d.value.key==="ecological-protection","active-view":b.value,"show-loading":!1,onModuleStats:K,onViewChange:tt},null,8,["active","active-view"])],512)),[[N,d.value.key==="ecological-protection"]]):S("",!0),V.value["grass-livestock-balance"]?q((m(),f("div",Xa,[x(R(s),{active:d.value.key==="grass-livestock-balance",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="grass-livestock-balance"]]):S("",!0),V.value["yak-management"]?q((m(),f("div",en,[x(R(c),{ref_key:"yakManagementRef",ref:Be,active:d.value.key==="yak-management","view-key":M.value,onModuleStats:K,onViewChange:Pt},null,8,["active","view-key"])],512)),[[N,d.value.key==="yak-management"]]):S("",!0),V.value["pasture-management"]?q((m(),f("div",tn,[x(R(h),{ref_key:"pastureManagementRef",ref:Ue,active:d.value.key==="pasture-management",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="pasture-management"]]):S("",!0),V.value["yak-industry-chain"]?q((m(),f("div",an,[x(R(p),{ref_key:"yakIndustryChainRef",ref:Ge,active:d.value.key==="yak-industry-chain",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="yak-industry-chain"]]):S("",!0),V.value["smart-management"]?q((m(),f("div",nn,[x(R(_),{active:d.value.key==="smart-management"},null,8,["active"])],512)),[[N,d.value.key==="smart-management"]]):S("",!0),r("div",on,[x(Sa,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:Le(()=>[r("div",ln,[r("div",{class:B(["platform-weather",{"is-unavailable":!Q.value}])},[Rt.value?(m(),f("img",{key:0,class:"platform-weather__icon",src:At.value,alt:C.value.condition||"天气",onError:Ft},null,40,sn)):(m(),f("span",rn)),r("div",un,[r("div",cn,[r("strong",null,E(Q.value?C.value.condition||"实时天气":"天气暂无数据"),1),Q.value?(m(),f("em",dn,E(C.value.temperature)+"℃",1)):S("",!0)]),Ee.value||le.value?(m(),f("small",mn,[Ee.value?(m(),f("span",fn,"湿度 "+E(C.value.humidity)+"%",1)):S("",!0),Ee.value&&le.value?(m(),f("i",hn)):S("",!0),le.value?(m(),f("span",yn,E(le.value),1)):S("",!0)])):S("",!0)])],2),r("div",vn,[r("strong",null,E(Je.value),1),r("span",null,E(Qe.value),1)]),r("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:Gt},[...n[0]||(n[0]=[r("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[r("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),r("path",{d:"M16 17l5-5-5-5"}),r("path",{d:"M21 12H9"})],-1)])])])]),_:1}),r("div",gn,[x($a,{"default-active":u.value,onSelect:Ve},{default:Le(()=>[(m(!0),f(ge,null,De(R(ae),(i,T)=>(m(),f(ge,{key:i.key},[x(Ea,{index:i.key,onClick:y=>Ae(i.key),onKeydown:[we(y=>Ae(i.key),["enter"]),we(y=>Ae(i.key),["space"])]},{default:Le(()=>[aa(E(i.label),1)]),_:2},1032,["index","onClick","onKeydown"]),T===3?(m(),f("div",pn)):S("",!0)],64))),128))]),_:1},8,["default-active"])]),j.value.length&&!["smart-management","grass-livestock-balance"].includes(d.value.key)?(m(),f("div",{key:0,class:B(["top-count-card",{"is-four":j.value.length>3&&j.value.length<=4,"is-multi":j.value.length>4,"is-count-five":j.value.length===5,"is-home-five":Lt.value}])},[(m(!0),f(ge,null,De(j.value,i=>(m(),na(Pa,{key:i.zh,info:i},null,8,["info"]))),128))],2)):S("",!0),Ct.value?(m(),f("div",wn,[r("button",{type:"button",title:Ze.value,"aria-label":Ze.value,onClick:Bt},[...n[1]||(n[1]=[r("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,_n),r("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:Ut},[...n[2]||(n[2]=[r("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):S("",!0),d.value.status!=="ready"?(m(),f("div",kn,[r("div",bn,E(d.value.label),1),n[3]||(n[3]=r("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):S("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(d.value.key)?S("",!0):(m(),f("div",Sn,[x(_e,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),x(_e,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),n[4]||(n[4]=r("div",{class:"bottom-tray-arrow"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1)),r("div",Tn,[(m(!0),f(ge,null,De(Dt.value,i=>(m(),f("div",{key:i.key,class:B(["bottom-menu-item",{"is-active":i.key===Me.value}]),onClick:T=>It(i)},[r("span",null,E(i.bottomLabel),1)],10,$n))),128))]),n[5]||(n[5]=r("div",{class:"bottom-tray-arrow is-reverse"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1))])),n[6]||(n[6]=r("div",{class:"large-screen-left-zsline"},null,-1)),n[7]||(n[7]=r("div",{class:"large-screen-right-zsline"},null,-1))]),G.value?(m(),f("div",xn,[n[9]||(n[9]=ta('
LOADING
',1)),r("div",En,[r("span",Mn,E(Y.value),1),n[8]||(n[8]=r("span",{class:"unit"},"%",-1))])])):S("",!0)],2))}},Fn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));export{gt as _,pt as a,Fn as i,Oa as n,Ha as r}; + }`)}}ke.elRectification=Oe;const ia={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let e=1;return{maskId:"svgline-"+e,radialGradientId:"radialGradient-"+e}},mounted(){let e=this._.uid;this.maskId="svgline-"+e,this.radialGradientId="radialGradient-"+e}},la={class:"svg-line-animation"},sa=["viewBox"],ra=["id"],ua=["stop-opacity"],ca=["stop-opacity"],da=["id"],ma=["r","fill"],fa=["begin","dur","path","keyPoints"],ha=["d","stroke","stroke-width","mask"];function ya(e,o,a,l,s,c){return m(),f("div",la,[(m(),f("svg",{width:"100%",height:"100%",viewBox:`0 0 ${a.width} ${a.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[r("defs",null,[r("radialGradient",{id:s.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[r("stop",{offset:"0%","stop-color":"#fff","stop-opacity":a.dir[1]},null,8,ua),r("stop",{offset:"100%","stop-color":"#fff","stop-opacity":a.dir[0]},null,8,ca)],8,ra),r("mask",{id:s.maskId},[r("circle",{r:a.length,cx:"0",cy:"0",fill:`url(#${s.radialGradientId})`},[r("animateMotion",{begin:`${a.begin}s`,dur:`${a.duration}s`,path:a.path,rotate:"auto",keyPoints:`${a.dir[0]};${a.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,fa)],8,ma)],8,da)]),r("path",{class:"path-line",d:a.path,stroke:a.color,"stroke-width":a.strokeWidth,mask:`url(#${s.maskId})`},null,8,ha)],8,sa))])}const _e=bt(ia,[["render",ya]]);const va={class:"m-header"},ga={class:"m-header-wrap"},pa={class:"m-header-title"},wa={class:"m-header-subtext"},_a={class:"m-header-left",style:{color:"#fff"}},ka={class:"m-header-right"},ba={class:"m-header-line"},Sa={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(e){return(o,a)=>(m(),f("div",va,[r("div",ga,[r("div",pa,E(e.title),1),r("div",wa,E(e.subText),1)]),r("div",_a,[pe(o.$slots,"left")]),r("div",ka,[pe(o.$slots,"right")]),r("div",ba,[x(_e,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),x(_e,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const Ta={class:"m-menu"},$a={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(e,{emit:o}){const a=o,l=e,s=k(l.defaultActive);return ft("updateActive",h=>{h!==s.value&&(s.value=h,a("select",h))}),ft("activeIndex",s),We(()=>l.defaultActive,h=>{h!==s.value&&(s.value=h)}),(h,p)=>(m(),f("div",Ta,[pe(h.$slots,"default")]))}},xa=["aria-current","onKeydown"],Ea={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(e){const o=e,a=ht("updateActive"),l=ht("activeIndex"),s=()=>{a(o.index)};return(c,h)=>(m(),f("div",{class:B(["m-menu-item",{"is-active":e.index===R(l)}]),role:"button",tabindex:"0","aria-current":e.index===R(l)?"page":void 0,onClick:s,onKeydown:[we(yt(s,["prevent"]),["enter"]),we(yt(s,["prevent"]),["space"])]},[pe(c.$slots,"default")],42,xa))}};let _t=0;const kt="webkit moz ms o".split(" ");let D,F;const Ma=typeof window=="undefined";if(Ma)D=function(){},F=function(){};else{D=window.requestAnimationFrame,F=window.cancelAnimationFrame;let e;for(let o=0;o{o(a+l)},l);return _t=a+l,s},F=function(o){window.clearTimeout(o)})}const Va={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(e){return e>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(e,o,a,l){return a*(-Math.pow(2,-10*e/l)+1)*1024/1023+o}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=D(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){F(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,D(this.count)},reset(){this.startTime=null,F(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(e){this.startTime||(this.startTime=e),this.timestamp=e;const o=e-this.startTime;this.remaining=this.localDuration-o,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(o,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(o,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(o/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(o/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),o1?this.decimal+o[1]:"",s=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;s.test(a);)a=a.replace(s,"$1"+this.separator+"$2");return this.prefix+a+l+this.suffix}},destroyed(){F(this.rAF)}};function Aa(e,o,a,l,s,c){return m(),f("span",null,E(s.displayValue),1)}const $t=bt(Va,[["render",Aa]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",$t);const Ra={class:"count-card-left"},Ca={class:"count-card-title"},La={class:"title-zh"},Da={key:0,class:"title-en"},Fa={class:"count-card-right"},Ia={class:"unit"},Pa={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(e){const o=e,a=k(!0),l=k(!1),s=k(0);let c=null;const h=A(()=>o.info.duration||1800);We(()=>[o.info.value,o.info.zh],()=>{c&&window.clearTimeout(c),a.value=!0,l.value=!1,s.value+=1},{immediate:!0});function p(v){return v.toUpperCase()}function _(){a.value=!0,l.value=!1}function g(){a.value=!1,l.value=!0,c&&window.clearTimeout(c),c=window.setTimeout(()=>{l.value=!1},900)}return St(()=>{c&&window.clearTimeout(c)}),(v,w)=>(m(),f("div",{class:B(["count-card",{"is-counting":a.value,"is-settled":l.value}])},[r("div",Ra,[r("div",{class:B(["count-card-icon","icon-"+e.info.icon])},null,2),r("div",Ca,[r("div",La,E(e.info.zh),1),e.info.en?(m(),f("div",Da,E(p(e.info.en)),1)):S("",!0)])]),r("div",Fa,[(m(),f("div",{class:"value",key:s.value},[x(R($t),{startVal:0,endVal:e.info.value,decimals:e.info.decimals,duration:h.value,separator:"",autoplay:!0,onMountedCallback:_,onCallback:g},null,8,["endVal","decimals","duration"])])),r("div",Ia,E(e.info.unit),1)])],2))}},ae=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛产业全链",bottomLabel:"产业全链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function qa(e){return ae.find(o=>o.key===e)||ae[1]}const Ne=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],Na=12e3;function za(e,o={}){const a=new URLSearchParams;Object.entries(o).forEach(([s,c])=>{c!=null&&c!==""&&a.append(s,c)});const l=a.toString();return l?`${e}${e.includes("?")?"&":"?"}${l}`:e}function Ha(a){return X(this,arguments,function*(e,o={}){const g=o,{params:l,timeout:s=Na}=g,c=mt(g,["params","timeout"]),h=new AbortController;let p=!1;const _=window.setTimeout(()=>{p=!0,h.abort()},s);try{const v=yield fetch(za(e,l),ve(P({credentials:"include"},c),{signal:h.signal,headers:P({Accept:"application/json"},c.headers||{})}));if(!v.ok){const u=new Error(v.status===401?"用户未登录或授权已过期。":`HTTP ${v.status}`);throw u.code=`HTTP_${v.status}`,u.status=v.status,v.status===401&&vt(),u}const w=yield v.json();if((w==null?void 0:w.code)===401||(w==null?void 0:w.code)==="401"){const u=new Error((w==null?void 0:w.msg)||"用户未登录或授权已过期。");throw u.code="HTTP_401",u.status=401,vt(),u}return w}catch(v){if(h.signal.aborted||(v==null?void 0:v.name)==="AbortError"||/aborted/i.test((v==null?void 0:v.message)||"")){const u=new Error(p?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw u.code=p?"REQUEST_TIMEOUT":"REQUEST_ABORTED",u}throw v}finally{window.clearTimeout(_)}})}function Oa(e){return(e==null?void 0:e.data)!==void 0?e.data:(e==null?void 0:e.result)!==void 0?e.result:e}const Wa="/jsyApi",ja={}.VITE_AMAP_WEATHER_KEY||"b72b3e3b2023760dae2cdf2e00561812",Ka="513233";function Ba(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"天气接口请求失败");return Oa(e)}function xt(e){var h,p,_,g;const o=(p=(h=e==null?void 0:e.data)!=null?h:e==null?void 0:e.result)!=null?p:e,a=Array.isArray(o)?o[0]:Array.isArray(o==null?void 0:o.rows)?o.rows[0]:Array.isArray(o==null?void 0:o.list)?o.list[0]:o;if(!a||typeof a!="object")return null;const l=(...v)=>v.find(w=>w!=null&&w!==""),s=l(a.temp,a.temperature,a.temperature_float,a.tempDay,a.temperatureDay),c=l(a.humidity,a.humidity_float,a.pop,a.relativeHumidity);return{condition:a.conditionDay||a.condition||a.weather||a.weatherText||"",temperature:s==null||s===""?"--":s,humidity:c==null||c===""?"--":c,windDirection:a.windDir||a.windDirection||"",windLevel:a.windLevel||a.windScale||a.windPower||"",icon:(g=(_=a.icon)!=null?_:a.weatherIcon)!=null?g:null}}function Ua(e){return X(this,null,function*(){const o=yield Ha(`${Wa}${e}`,{timeout:8e3});return xt(Ba(o))})}function Ga(){return new Promise((e,o)=>{const a=`__hongyuanWeather${Date.now()}${Math.random().toString(16).slice(2)}`,l=document.createElement("script"),s=()=>{window.clearTimeout(c),l.remove(),delete window[a]},c=window.setTimeout(()=>{s(),o(new Error("高德天气接口响应超时"))},8e3);window[a]=p=>{var g;const _=(g=p==null?void 0:p.lives)==null?void 0:g[0];if(s(),!_){o(new Error((p==null?void 0:p.info)||"高德天气暂无数据"));return}e(xt(_))},l.onerror=()=>{s(),o(new Error("高德天气接口加载失败"))};const h=new URLSearchParams({city:Ka,key:ja,extensions:"base",output:"JSON",callback:a});l.src=`https://restapi.amap.com/v3/weather/weatherInfo?${h}`,document.head.appendChild(l)})}function Ya(){return X(this,null,function*(){const e=["/api/home/realTimeWeather","/api/home/weatherForecast"];let o=null;for(const a of e)try{const l=yield Ua(a);if(l)return l}catch(l){o=l}try{const a=yield Ga();if(a)return a}catch(a){o=a}throw o||new Error("天气数据暂不可用")})}const Qa={key:0,class:"platform-module-pane"},Ja={key:1,class:"platform-module-pane"},Za={key:2,class:"platform-module-pane"},Xa={key:3,class:"platform-module-pane"},en={key:4,class:"platform-module-pane"},tn={key:5,class:"platform-module-pane"},an={key:6,class:"platform-module-pane"},nn={key:7,class:"platform-module-pane"},on={class:"large-screen-wrap"},ln={class:"m-header-tools"},sn=["src","alt"],rn={key:1,class:"platform-weather__fallback-icon","aria-hidden":"true"},un={class:"platform-weather__copy"},cn={class:"platform-weather__primary"},dn={key:0},mn={key:0},fn={key:0},hn={key:1,"aria-hidden":"true"},yn={key:2},vn={class:"platform-datetime","aria-label":"当前日期和时间"},gn={class:"top-menu"},pn={key:0,class:"top-menu-mid-space"},wn={key:1,class:"platform-map-tools","aria-label":"地图工具"},_n=["title","aria-label"],kn={key:2,class:"module-coming"},bn={class:"module-coming-title"},Sn={key:3,class:"bottom-tray"},Tn={class:"bottom-menu"},$n=["onClick"],xn={key:8,class:"loading platform-loading"},En={class:"loading-progress"},Mn={class:"value"},Vn=2,An=650,Rn={__name:"index",setup(e){const o=z(()=>H(()=>import("./index-cc6a0a71-1784132792831.js"),["./index-cc6a0a71-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./live-scene-1-771d3631-1784132792831.js","./index.esm.min-da05f706-1784132792831.js","./index-a4d3ff67-1784132792831.js","./index-148a2898-balabala-1784132792831.css","./index-24267a69-1784132792831.js","./townshipBoundaries-822b7d9e-1784132792831.js","./index-1d3ffd1c-balabala-1784132792831.css","./screen2Standard-41868f75-1784132792831.js","./index-e9f36657-1784132792831.js","./screen2Standard-cdb21878-balabala-1784132792831.css","./data-888ba847-1784132792831.js","./TopicSwitcher-2e4ca291-1784132792831.js","./TopicSwitcher-f90bcf5a-balabala-1784132792831.css","./livestockData-36ec0ae2-1784132792831.js","./FeatureInfoPanel-8ee1b2b1-1784132792831.js","./FeatureInfoPanel-84703f43-balabala-1784132792831.css","./openApi-50c9b694-1784132792831.js","./geoserver-c6c88e84-1784132792831.js","./featurePanelLayout-9d4ef87e-1784132792831.js","./yakApi-dd638538-1784132792831.js","./chartTheme-73e4a943-1784132792831.js","./data-ee410ed3-1784132792831.js","./data-ee3975ea-1784132792831.js","./index-3099739a-balabala-1784132792831.css"],import.meta.url)),a=z(()=>H(()=>import("./index-29c113f9-1784132792831.js"),["./index-29c113f9-1784132792831.js","./index-e9f36657-1784132792831.js","./assets-8cd57427-1784132792831.js","./screen2Standard-41868f75-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./screen2Standard-cdb21878-balabala-1784132792831.css","./TopicSwitcher-2e4ca291-1784132792831.js","./townshipBoundaries-822b7d9e-1784132792831.js","./TopicSwitcher-f90bcf5a-balabala-1784132792831.css","./index-24267a69-1784132792831.js","./index-1d3ffd1c-balabala-1784132792831.css","./openApi-50c9b694-1784132792831.js","./geoserver-c6c88e84-1784132792831.js","./featurePanelLayout-9d4ef87e-1784132792831.js","./LayerPanel-fa97fc8c-1784132792831.js","./index-a4d3ff67-1784132792831.js","./index-148a2898-balabala-1784132792831.css","./LayerPanel-7a55b2bc-balabala-1784132792831.css","./FeatureInfoPanel-8ee1b2b1-1784132792831.js","./FeatureInfoPanel-84703f43-balabala-1784132792831.css","./index-6e1f3341-balabala-1784132792831.css","./layout-b708cd9c-balabala-1784132792831.css"],import.meta.url)),l=z(()=>H(()=>import("./index-007453d8-1784132792831.js"),["./index-007453d8-1784132792831.js","./index-e9f36657-1784132792831.js","./index-a4d3ff67-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./index-148a2898-balabala-1784132792831.css","./townshipBoundaries-822b7d9e-1784132792831.js","./featurePanelLayout-9d4ef87e-1784132792831.js","./assets-8cd57427-1784132792831.js","./screen2Standard-41868f75-1784132792831.js","./screen2Standard-cdb21878-balabala-1784132792831.css","./TopicSwitcher-2e4ca291-1784132792831.js","./TopicSwitcher-f90bcf5a-balabala-1784132792831.css","./index-24267a69-1784132792831.js","./index-1d3ffd1c-balabala-1784132792831.css","./LayerPanel-fa97fc8c-1784132792831.js","./LayerPanel-7a55b2bc-balabala-1784132792831.css","./FeatureInfoPanel-8ee1b2b1-1784132792831.js","./FeatureInfoPanel-84703f43-balabala-1784132792831.css","./data-85b25709-1784132792831.js","./data-ee410ed3-1784132792831.js","./index-7c335907-balabala-1784132792831.css","./layout-b708cd9c-balabala-1784132792831.css"],import.meta.url)),s=z(()=>H(()=>import("./index-ee5660f2-1784132792831.js"),["./index-ee5660f2-1784132792831.js","./index-a4d3ff67-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./index-148a2898-balabala-1784132792831.css","./data-ee410ed3-1784132792831.js","./index-e9f36657-1784132792831.js","./index-c36df85d-balabala-1784132792831.css"],import.meta.url)),c=z(()=>H(()=>import("./index-fe494e89-1784132792831.js"),["./index-fe494e89-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./index.esm.min-da05f706-1784132792831.js","./index-a4d3ff67-1784132792831.js","./index-148a2898-balabala-1784132792831.css","./screen2Standard-41868f75-1784132792831.js","./index-e9f36657-1784132792831.js","./screen2Standard-cdb21878-balabala-1784132792831.css","./data-888ba847-1784132792831.js","./TopicSwitcher-2e4ca291-1784132792831.js","./townshipBoundaries-822b7d9e-1784132792831.js","./TopicSwitcher-f90bcf5a-balabala-1784132792831.css","./livestockData-36ec0ae2-1784132792831.js","./geoserver-c6c88e84-1784132792831.js","./LayerPanel-fa97fc8c-1784132792831.js","./LayerPanel-7a55b2bc-balabala-1784132792831.css","./assets-8cd57427-1784132792831.js","./index-24267a69-1784132792831.js","./index-1d3ffd1c-balabala-1784132792831.css","./yakApi-dd638538-1784132792831.js","./index-2bde92c2-balabala-1784132792831.css"],import.meta.url)),h=z(()=>H(()=>import("./index-69e64e91-1784132792831.js"),["./index-69e64e91-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./live-scene-1-771d3631-1784132792831.js","./index-a4d3ff67-1784132792831.js","./index-148a2898-balabala-1784132792831.css","./index-24267a69-1784132792831.js","./townshipBoundaries-822b7d9e-1784132792831.js","./index-1d3ffd1c-balabala-1784132792831.css","./LayerPanel-fa97fc8c-1784132792831.js","./LayerPanel-7a55b2bc-balabala-1784132792831.css","./FeatureInfoPanel-8ee1b2b1-1784132792831.js","./screen2Standard-41868f75-1784132792831.js","./index-e9f36657-1784132792831.js","./screen2Standard-cdb21878-balabala-1784132792831.css","./FeatureInfoPanel-84703f43-balabala-1784132792831.css","./featurePanelLayout-9d4ef87e-1784132792831.js","./data-bbf42c91-1784132792831.js","./livestockData-36ec0ae2-1784132792831.js","./index-41d168c2-balabala-1784132792831.css"],import.meta.url)),p=z(()=>H(()=>import("./index-427feaa9-1784132792831.js"),["./index-427feaa9-1784132792831.js","./index.esm.min-da05f706-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./index-a4d3ff67-1784132792831.js","./index-148a2898-balabala-1784132792831.css","./index-24267a69-1784132792831.js","./townshipBoundaries-822b7d9e-1784132792831.js","./index-1d3ffd1c-balabala-1784132792831.css","./FeatureInfoPanel-8ee1b2b1-1784132792831.js","./screen2Standard-41868f75-1784132792831.js","./index-e9f36657-1784132792831.js","./screen2Standard-cdb21878-balabala-1784132792831.css","./FeatureInfoPanel-84703f43-balabala-1784132792831.css","./LayerPanel-fa97fc8c-1784132792831.js","./LayerPanel-7a55b2bc-balabala-1784132792831.css","./TopicSwitcher-2e4ca291-1784132792831.js","./TopicSwitcher-f90bcf5a-balabala-1784132792831.css","./assets-8cd57427-1784132792831.js","./chartTheme-73e4a943-1784132792831.js","./data-b4247fde-1784132792831.js","./livestockData-36ec0ae2-1784132792831.js","./index-5afedc21-balabala-1784132792831.css"],import.meta.url)),_=z(()=>H(()=>import("./index-a9ca4fc7-1784132792831.js"),["./index-a9ca4fc7-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./yakApi-dd638538-1784132792831.js","./data-ee3975ea-1784132792831.js","./livestockData-36ec0ae2-1784132792831.js","./data-ee410ed3-1784132792831.js","./data-bbf42c91-1784132792831.js","./data-85b25709-1784132792831.js","./townshipBoundaries-822b7d9e-1784132792831.js","./data-b4247fde-1784132792831.js","./index-e9f36657-1784132792831.js","./index-089a3dd0-balabala-1784132792831.css"],import.meta.url)),g=Zt(),v=Xt(),w=re(g.query.module),u=k(w),b=k(w==="ecological-protection"?at(g.query.view):"ecological-redline"),M=k(w==="yak-management"?Re(g.query.view):"structure"),V=k({[w]:!0});let I=[w];const U=k({}),G=k(!0),Y=k(0),be=k(null),Se=k(null),je=k(null),Ke=k(null),Be=k(null),Ue=k(null),Ge=k(null),Ye=k(!1),Qe=k(""),Je=k(""),C=k({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),Q=k(!1),Te=k(!1);let J=null,$e=null,xe=null,oe=!1,ie=null;const Et=Date.now(),O={progress:0},Mt=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),W=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],Vt=new Set(W),d=A(()=>qa(u.value)),At=A(()=>`/images/weather/W${C.value.icon}.png`),Rt=A(()=>Q.value&&C.value.icon!==null&&!Te.value),Ee=A(()=>!["","--",null,void 0].includes(C.value.humidity)),le=A(()=>{const t=String(C.value.windDirection||"").trim(),n=String(C.value.windLevel||"").trim();return!t&&!n?"":`${t}${t&&n?" ":""}${n?`${n}级`:""}`}),Ze=A(()=>Ye.value?"退出":"全屏"),Ct=A(()=>!["smart-management","grass-livestock-balance"].includes(d.value.key)),Lt=A(()=>j.value.length===5&&(d.value.key==="home"||d.value.key==="ecological-protection"&&Me.value==="national-park")),Dt=A(()=>u.value==="ecological-protection"?Ne:ae),Me=A(()=>u.value==="ecological-protection"?b.value:u.value),j=A(()=>{const t=U.value[u.value];return Array.isArray(t)||t!=null&&t.length?t:ot([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});ea(()=>{Xe(),et(),$e=window.setInterval(Xe,1e3),xe=window.setInterval(et,30*60*1e3),J=ke.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),jt(),fe(),Ce(),Nt(u.value)?zt(u.value):(oe=!0,Y.value=100,G.value=!1)}),St(()=>{var t;$e&&window.clearInterval($e),xe&&window.clearInterval(xe),de(),(t=J==null?void 0:J.off)==null||t.call(J,"#large-screen"),Kt(),te.killTweensOf(O)});function Xe(){const t=new Date,n=T=>String(T).padStart(2,"0"),i=["周日","周一","周二","周三","周四","周五","周六"];Qe.value=`${t.getFullYear()}.${n(t.getMonth()+1)}.${n(t.getDate())} ${i[t.getDay()]}`,Je.value=`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function et(){return X(this,null,function*(){try{C.value=yield Ya(),Q.value=!0,Te.value=!1}catch(t){Q.value=!1,console.warn("[platform] weather unavailable",t)}})}function Ft(){Te.value=!0}function Ve(t,n={}){const i=re(t),T=i==="home"&&!n.fromRoute;if(i==="yak-management"&&!n.fromRoute&&(M.value="structure"),i===u.value){T&&me(),se(i);return}u.value=i,Wt(i),se(i),T&&me(),Fe(Ce)}function Ae(t){re(t)==="home"&&u.value==="home"&&me()}function It(t){if(t!=null&&t.key){if(u.value==="ecological-protection"){tt(t.key);return}Ve(t.key)}}function tt(t){const n=Ne.some(i=>i.key===t)?t:"ecological-redline";n===b.value&&u.value==="ecological-protection"||(b.value=n,u.value==="ecological-protection"&&se("ecological-protection"),Fe(Ce))}function Pt(t){const n=Re(t);n!==M.value&&(M.value=n,u.value==="yak-management"&&se("yak-management"))}We(()=>[g.query.module,g.query.view],([t,n])=>{const i=re(t);i==="ecological-protection"&&(b.value=at(n)),i==="yak-management"&&(M.value=Re(n)),i!==u.value&&Ve(i,{fromRoute:!0})});function se(t=u.value){const n=ve(P({},g.query),{module:t});t==="yak-management"?n.view=M.value:t==="ecological-protection"?n.view=b.value:delete n.view;const i=g.query||{},T=String(i.module||"")===String(n.module||"")&&String(i.view||"")===String(n.view||"");g.path==="/platform"&&T||v.replace({path:"/platform",query:n}).catch(()=>{})}function re(t){const n=Array.isArray(t)?t[0]:t;return ae.some(i=>i.key===n)?n:"home"}function Re(t){const n=Array.isArray(t)?t[0]:t;return["structure","forecast","epidemic","trade"].includes(n)?n:"structure"}function at(t){const n=Array.isArray(t)?t[0]:t;return Ne.some(i=>i.key===n)?n:"ecological-redline"}function K(t){const n=t.moduleKey||(t.topicKey?"forest-grass-wet":u.value);U.value=ve(P({},U.value),{[n]:ot(t.items||[])})}function ue(t={}){const n=typeof t=="number"?t:t.progress;qt(n)}function ce(){de(),te.killTweensOf(O),O.progress=100,Y.value=100;const t=Date.now()-Et,n=Math.max(80,An-t);window.setTimeout(nt,n)}function qt(t){if(!G.value)return;const n=Math.max(0,Math.min(100,Math.floor(Number(t)||0)));n{Y.value=Math.floor(O.progress)}})}function nt(){if(!G.value||oe)return;de(),oe=!0;const t=te.timeline({onComplete:()=>{G.value=!1}});t.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:.45,stagger:.035}),t.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:.3},"<"),t.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.28},"-=0.12")}function Nt(t){return Mt.has(t)}function zt(t){de();const n=t==="home"?12e3:8e3;ie=window.setTimeout(()=>{!G.value||oe||(te.killTweensOf(O),O.progress=100,Y.value=100,window.setTimeout(nt,120))},n)}function de(){ie&&(window.clearTimeout(ie),ie=null)}function ot(t=[]){const n=new Set;return t.slice(0,10).map((i,T)=>{var Z;const y=Number(i.value)||0,L={zh:i.zh||i.name||`指标${T+1}`,en:i.en||"",value:y,unit:i.unit||"",decimals:(Z=i.decimals)!=null?Z:Number.isInteger(y)?0:2},he=Ht(P(P({},i),L),T,n);return n.add(he),P({icon:he},L)})}function Ht(t={},n=0,i=new Set){const y=Ot(t,n).find(L=>Vt.has(L)&&!i.has(L));return y||W.find(L=>!i.has(L))||W[n%W.length]}function Ot(t={},n=0){const i=`${t.zh||t.name||""}${t.unit||""}`,T=[],y=(...he)=>{he.forEach(Z=>{Z&&!T.includes(Z)&&T.push(Z)})};y(t.icon),/风险|预警|告警/.test(i)&&y("risk","rate"),/模型|修正|共识|预测|变化|净/.test(i)&&y("rate","stack"),/率|占比|比例|超载/.test(i)&&y("rate","project"),/生态牧场|家庭生态/.test(i)&&y("leaf","town"),/出证|证书|证/.test(i)&&y("certificate","project"),/交易|销售/.test(i)&&y("yield","certificate"),/流通|出栏|流出/.test(i)&&y("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test(i)&&y("device","length"),/工程长度|长度|公里/.test(i)&&y("length","project"),/修复项目|项目|工程|治理/.test(i)&&y("project","length"),/国家公园|保护范围|保护区|划定/.test(i)&&y("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test(i)&&y("yield","leaf"),/湿地/.test(i)&&y("wetland","leaf"),/基本草原/.test(i)&&y("grass-basic","area"),/一般草原/.test(i)&&y("grass-general","area"),/林地|森林|公益林/.test(i)&&y("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test(i)&&y("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test(i)&&y("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test(i)&&y("town","project"),/生态|林草/.test(i)&&y("leaf","wetland");const L=n%W.length;return y(...W.slice(L),...W.slice(0,L)),T}function Wt(t){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(t)&&(I=I.filter(n=>n!==t),I.push(t),I=I.slice(-Vn),V.value=Object.fromEntries(I.map(n=>[n,!0])))}function Ce(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const t=document.querySelector("#app");t&&(t.scrollTop=0)}function me(t=4){Fe(()=>{const n=Se.value;if(n!=null&&n.showDefaultThreeMap){n.showDefaultThreeMap();return}t>0&&window.setTimeout(()=>me(t-1),80)})}const it=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function lt(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function fe(){var i;const t=lt(),n=be.value;Ye.value=!!(n&&t&&(t===n||n.contains(t)||(i=t.contains)!=null&&i.call(t,n)))}function jt(){typeof document!="undefined"&&it.forEach(t=>document.addEventListener(t,fe))}function Kt(){typeof document!="undefined"&&it.forEach(t=>document.removeEventListener(t,fe))}function st(){var t,n;(n=(t=rt())==null?void 0:t.refreshMapView)==null||n.call(t)}function Bt(){return X(this,null,function*(){if(typeof document=="undefined")return;const t=lt();try{if(t){const n=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield n==null?void 0:n.call(document)}else{const n=be.value||document.documentElement,i=n.requestFullscreen||n.webkitRequestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen;yield i==null?void 0:i.call(n)}}catch(n){console.warn("[platform] fullscreen toggle failed",n)}finally{fe(),window.setTimeout(st,80),window.setTimeout(st,280)}})}function Ut(){var t,n;(n=(t=rt())==null?void 0:t.resetMap)==null||n.call(t)}function rt(){return d.value.key==="home"?Se.value:d.value.key==="forest-grass-wet"?je.value:d.value.key==="ecological-protection"?Ke.value:d.value.key==="yak-management"?Be.value:d.value.key==="pasture-management"?Ue.value:d.value.key==="yak-industry-chain"?Ge.value:null}function Gt(){oa()}return(t,n)=>(m(),f("div",{ref_key:"platformScreenRef",ref:be,class:B(["large-screen platform-screen",{"is-home":d.value.key==="home","is-forest-grass-wet":d.value.key==="forest-grass-wet","is-ecological-protection":d.value.key==="ecological-protection","is-grass-livestock-balance":d.value.key==="grass-livestock-balance","is-yak-management":d.value.key==="yak-management","is-pasture-management":d.value.key==="pasture-management","is-yak-industry-chain":d.value.key==="yak-industry-chain","is-smart-management":d.value.key==="smart-management","is-ecology-national-park":d.value.key==="ecological-protection"&&Me.value==="national-park"}]),id:"large-screen"},[V.value.home?q((m(),f("div",Qa,[x(R(o),{ref_key:"homeDashboardRef",ref:Se,active:d.value.key==="home",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="home"]]):S("",!0),V.value["forest-grass-wet"]?q((m(),f("div",Ja,[x(R(a),{ref_key:"forestGrassWetRef",ref:je,active:d.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:K},null,8,["active"])],512)),[[N,d.value.key==="forest-grass-wet"]]):S("",!0),V.value["ecological-protection"]?q((m(),f("div",Za,[x(R(l),{ref_key:"ecologicalProtectionRef",ref:Ke,active:d.value.key==="ecological-protection","active-view":b.value,"show-loading":!1,onModuleStats:K,onViewChange:tt},null,8,["active","active-view"])],512)),[[N,d.value.key==="ecological-protection"]]):S("",!0),V.value["grass-livestock-balance"]?q((m(),f("div",Xa,[x(R(s),{active:d.value.key==="grass-livestock-balance",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="grass-livestock-balance"]]):S("",!0),V.value["yak-management"]?q((m(),f("div",en,[x(R(c),{ref_key:"yakManagementRef",ref:Be,active:d.value.key==="yak-management","view-key":M.value,onModuleStats:K,onViewChange:Pt},null,8,["active","view-key"])],512)),[[N,d.value.key==="yak-management"]]):S("",!0),V.value["pasture-management"]?q((m(),f("div",tn,[x(R(h),{ref_key:"pastureManagementRef",ref:Ue,active:d.value.key==="pasture-management",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="pasture-management"]]):S("",!0),V.value["yak-industry-chain"]?q((m(),f("div",an,[x(R(p),{ref_key:"yakIndustryChainRef",ref:Ge,active:d.value.key==="yak-industry-chain",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="yak-industry-chain"]]):S("",!0),V.value["smart-management"]?q((m(),f("div",nn,[x(R(_),{active:d.value.key==="smart-management"},null,8,["active"])],512)),[[N,d.value.key==="smart-management"]]):S("",!0),r("div",on,[x(Sa,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:Le(()=>[r("div",ln,[r("div",{class:B(["platform-weather",{"is-unavailable":!Q.value}])},[Rt.value?(m(),f("img",{key:0,class:"platform-weather__icon",src:At.value,alt:C.value.condition||"天气",onError:Ft},null,40,sn)):(m(),f("span",rn)),r("div",un,[r("div",cn,[r("strong",null,E(Q.value?C.value.condition||"实时天气":"天气暂无数据"),1),Q.value?(m(),f("em",dn,E(C.value.temperature)+"℃",1)):S("",!0)]),Ee.value||le.value?(m(),f("small",mn,[Ee.value?(m(),f("span",fn,"湿度 "+E(C.value.humidity)+"%",1)):S("",!0),Ee.value&&le.value?(m(),f("i",hn)):S("",!0),le.value?(m(),f("span",yn,E(le.value),1)):S("",!0)])):S("",!0)])],2),r("div",vn,[r("strong",null,E(Je.value),1),r("span",null,E(Qe.value),1)]),r("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:Gt},[...n[0]||(n[0]=[r("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[r("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),r("path",{d:"M16 17l5-5-5-5"}),r("path",{d:"M21 12H9"})],-1)])])])]),_:1}),r("div",gn,[x($a,{"default-active":u.value,onSelect:Ve},{default:Le(()=>[(m(!0),f(ge,null,De(R(ae),(i,T)=>(m(),f(ge,{key:i.key},[x(Ea,{index:i.key,onClick:y=>Ae(i.key),onKeydown:[we(y=>Ae(i.key),["enter"]),we(y=>Ae(i.key),["space"])]},{default:Le(()=>[aa(E(i.label),1)]),_:2},1032,["index","onClick","onKeydown"]),T===3?(m(),f("div",pn)):S("",!0)],64))),128))]),_:1},8,["default-active"])]),j.value.length&&!["smart-management","grass-livestock-balance"].includes(d.value.key)?(m(),f("div",{key:0,class:B(["top-count-card",{"is-four":j.value.length>3&&j.value.length<=4,"is-multi":j.value.length>4,"is-count-five":j.value.length===5,"is-home-five":Lt.value}])},[(m(!0),f(ge,null,De(j.value,i=>(m(),na(Pa,{key:i.zh,info:i},null,8,["info"]))),128))],2)):S("",!0),Ct.value?(m(),f("div",wn,[r("button",{type:"button",title:Ze.value,"aria-label":Ze.value,onClick:Bt},[...n[1]||(n[1]=[r("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,_n),r("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:Ut},[...n[2]||(n[2]=[r("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):S("",!0),d.value.status!=="ready"?(m(),f("div",kn,[r("div",bn,E(d.value.label),1),n[3]||(n[3]=r("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):S("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(d.value.key)?S("",!0):(m(),f("div",Sn,[x(_e,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),x(_e,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),n[4]||(n[4]=r("div",{class:"bottom-tray-arrow"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1)),r("div",Tn,[(m(!0),f(ge,null,De(Dt.value,i=>(m(),f("div",{key:i.key,class:B(["bottom-menu-item",{"is-active":i.key===Me.value}]),onClick:T=>It(i)},[r("span",null,E(i.bottomLabel),1)],10,$n))),128))]),n[5]||(n[5]=r("div",{class:"bottom-tray-arrow is-reverse"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1))])),n[6]||(n[6]=r("div",{class:"large-screen-left-zsline"},null,-1)),n[7]||(n[7]=r("div",{class:"large-screen-right-zsline"},null,-1))]),G.value?(m(),f("div",xn,[n[9]||(n[9]=ta('
LOADING
',1)),r("div",En,[r("span",Mn,E(Y.value),1),n[8]||(n[8]=r("span",{class:"unit"},"%",-1))])])):S("",!0)],2))}},Fn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));export{gt as _,pt as a,Fn as i,Oa as n,Ha as r}; diff --git a/docs/assets/index-fe70e5de-1784132466083.js b/docs/assets/index-a4d3ff67-1784132792831.js similarity index 96% rename from docs/assets/index-fe70e5de-1784132466083.js rename to docs/assets/index-a4d3ff67-1784132792831.js index ae6f3ac..6a76625 100644 --- a/docs/assets/index-fe70e5de-1784132466083.js +++ b/docs/assets/index-a4d3ff67-1784132792831.js @@ -1,4 +1,4 @@ -import{g as p,q as g,O as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,J as u,d as w}from"./index-1784132466083.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1784132466083.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1784132466083.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1784132466083.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1784132466083.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1784132466083.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],O=["x1"],k=["id","x1"],D=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],J={class:"m-card-bd-content"},K={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5 +import{g as p,q as g,O as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,J as u,d as w}from"./index-1784132792831.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1784132792831.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1784132792831.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1784132792831.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1784132792831.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1784132792831.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],O=["x1"],k=["id","x1"],D=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],J={class:"m-card-bd-content"},K={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5 L165.707 -0.207107 L165.414 -0.5 H165 diff --git a/docs/assets/index-e4e210df-1784132466083.js b/docs/assets/index-a9ca4fc7-1784132792831.js similarity index 97% rename from docs/assets/index-e4e210df-1784132466083.js rename to docs/assets/index-a9ca4fc7-1784132792831.js index 821c6a5..06ccae1 100644 --- a/docs/assets/index-e4e210df-1784132466083.js +++ b/docs/assets/index-a9ca4fc7-1784132792831.js @@ -1,4 +1,4 @@ -var Gt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable;var kt=(e,t,s)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,T=(e,t)=>{for(var s in t||(t={}))Xt.call(t,s)&&kt(e,s,t[s]);if(ht)for(var s of ht(t))Zt.call(t,s)&&kt(e,s,t[s]);return e},M=(e,t)=>Qt(e,Jt(t));var F=(e,t,s)=>new Promise((n,r)=>{var u=f=>{try{v(s.next(f))}catch(h){r(h)}},w=f=>{try{v(s.throw(f))}catch(h){r(h)}},v=f=>f.done?n(f.value):Promise.resolve(f.value).then(u,w);v((s=s.apply(e,t)).next())});import{g as it,q as te,h as ee,w as ne,o as y,c as p,z as At,F as P,y as z,n as j,a as g,t as A,j as k,C as se,u as ie,B as St,f as _t,s as ae,H as oe,e as re,D as ue,G as le,d as D,A as ce}from"./index-1784132466083.js";import{r as $t,n as Nt}from"./index-ed255eef-1784132466083.js";import{a as de,c as me,b as fe,l as ge}from"./yakApi-08a6746e-1784132466083.js";import{h as ye,a as ve,r as Ct,b as pe,t as xt,y as be,c as we,s as he,d as ke,e as Ae}from"./data-19be80ff-1784132466083.js";import{p as Se,i as _e,a as Re,b as Te,k as $e,c as Ne,d as Ce,h as xe,j as Ee,l as Me,e as De}from"./data-e9a1e061-1784132466083.js";import{b as rt,e as Et,a as Le,B as Pe}from"./data-5c83c66b-1784132466083.js";import{f as Fe,h as ze,i as He,j as Oe,k as Be,l as je,p as qe,r as Ie,a as Ve}from"./data-09f482ff-1784132466083.js";import{f as Ue,h as Ke,s as We,j as Ye,k as Ge,l as Qe,m as Je,p as Xe,n as Ze,o as tn,q as en,r as nn,t as sn,u as an}from"./data-8833788f-1784132466083.js";import"./index-e9f36657-1784132466083.js";import"./livestockData-36ec0ae2-1784132466083.js";import"./townshipBoundaries-822b7d9e-1784132466083.js";const on="/openApi";function rn(e){return/^https?:\/\//.test(e)?e:`${on}${e.startsWith("/")?e:`/${e}`}`}function un(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"图表接口请求失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function ln(n){return F(this,arguments,function*(e,t=window.location.hash||window.location.pathname,s="智慧管理"){const r=yield $t(rn("/ai/stat/charts"),{params:{question:e,pagePath:t,pageName:s},timeout:12e3}).then(un);return(Array.isArray(r==null?void 0:r.charts)?r.charts:[]).map(cn).filter(w=>w.rows.length)})}function cn(e,t){const s=Array.isArray(e==null?void 0:e.rows)?e.rows:[];return{id:(e==null?void 0:e.id)||`smart-chart-${t}`,type:dn(e==null?void 0:e.type),title:(e==null?void 0:e.title)||`统计图表${t+1}`,subtitle:mn(e==null?void 0:e.subtitle),unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:s.map((n,r)=>({key:(n==null?void 0:n.key)||`${(n==null?void 0:n.name)||"row"}-${r}`,name:String((n==null?void 0:n.name)||`指标${r+1}`),value:fn(n==null?void 0:n.value),rawValue:n==null?void 0:n.value,unit:(n==null?void 0:n.unit)||(e==null?void 0:e.unit)||"",extra:(n==null?void 0:n.extra)||""})).filter(n=>n.name&&Number.isFinite(n.value))}}function dn(e){return["pie","donut"].includes(e)?"pie":["line","trend"].includes(e)?"line":"bar"}function mn(e){const t=String(e||"").trim();return!t||/^(数据)?来源[::]/.test(t)||t.includes("固定展示")?"":t}function fn(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}const Rt="智慧管理",gn=80,yn=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:An},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:wn},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:Sn},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:_n},{key:"industry",label:"牦牛产业链",patterns:[/产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:Rn}];function vn(s){return F(this,arguments,function*(e,t={}){var C;const n=Lt(e),r=t.pagePath||window.location.hash||window.location.pathname,u=[],w=ln(n,r,Rt).catch(E=>(u.push(Pt(E,"辅助图表暂不可用")),[])),v=bn(n),f=yield Promise.all(v.map(E=>E.build(n,u))),h=Nn(f.flat()),b=yield w,$=v.length===1&&((C=v[0])==null?void 0:C.key)==="overview",H=h.length?h:$?Mt():[],Z=Mn(n,H),O={question:n,pageName:Rt,pagePath:r,scope:Z,intents:v.map(E=>({key:E.key,label:E.label})),datasets:H,charts:b,notes:Cn(H,b,u),warnings:u};return M(T({},O),{insights:xn(O)})})}function pn(e={}){const t=Array.isArray(e.datasets)?e.datasets:[],s=Array.isArray(e.insights)?e.insights:[],n=e.scope||"红原县",r=t.slice(0,4).map(v=>v.title).filter(Boolean),u=s.slice(0,5).map(v=>`- ${v.label}:${v.value}${v.note?`(${v.note})`:""}`),w=(e.notes||[]).slice(0,3).map(v=>`- ${v}`);return["**总体情况**",`已按${n}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...r.length?r.map(v=>`- ${v}`):["- 平台综合业务数据"],"",u.length?"**关键数据**":"",...u,"",w.length?"**数据说明**":"",...w].filter(Boolean).join(` +var Gt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable;var kt=(e,t,s)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,T=(e,t)=>{for(var s in t||(t={}))Xt.call(t,s)&&kt(e,s,t[s]);if(ht)for(var s of ht(t))Zt.call(t,s)&&kt(e,s,t[s]);return e},M=(e,t)=>Qt(e,Jt(t));var F=(e,t,s)=>new Promise((n,r)=>{var u=f=>{try{v(s.next(f))}catch(h){r(h)}},w=f=>{try{v(s.throw(f))}catch(h){r(h)}},v=f=>f.done?n(f.value):Promise.resolve(f.value).then(u,w);v((s=s.apply(e,t)).next())});import{g as it,q as te,h as ee,w as ne,o as y,c as p,z as At,F as P,y as z,n as j,a as g,t as A,j as k,C as se,u as ie,B as St,f as _t,s as ae,H as oe,e as re,D as ue,G as le,d as D,A as ce}from"./index-1784132792831.js";import{r as $t,n as Nt}from"./index-a1b5e9c0-1784132792831.js";import{a as de,c as me,b as fe,l as ge}from"./yakApi-dd638538-1784132792831.js";import{h as ye,a as ve,r as Ct,b as pe,t as xt,y as be,c as we,s as he,d as ke,e as Ae}from"./data-ee3975ea-1784132792831.js";import{p as Se,i as _e,a as Re,b as Te,k as $e,c as Ne,d as Ce,h as xe,j as Ee,l as Me,e as De}from"./data-bbf42c91-1784132792831.js";import{b as rt,c as Et,e as Le,B as Pe}from"./data-ee410ed3-1784132792831.js";import{f as Fe,h as ze,i as He,j as Oe,k as Be,l as je,p as qe,r as Ie,a as Ve}from"./data-85b25709-1784132792831.js";import{f as Ue,h as Ke,s as We,j as Ye,k as Ge,l as Qe,m as Je,p as Xe,n as Ze,o as tn,q as en,r as nn,t as sn,u as an}from"./data-b4247fde-1784132792831.js";import"./index-e9f36657-1784132792831.js";import"./livestockData-36ec0ae2-1784132792831.js";import"./townshipBoundaries-822b7d9e-1784132792831.js";const on="/openApi";function rn(e){return/^https?:\/\//.test(e)?e:`${on}${e.startsWith("/")?e:`/${e}`}`}function un(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"图表接口请求失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function ln(n){return F(this,arguments,function*(e,t=window.location.hash||window.location.pathname,s="智慧管理"){const r=yield $t(rn("/ai/stat/charts"),{params:{question:e,pagePath:t,pageName:s},timeout:12e3}).then(un);return(Array.isArray(r==null?void 0:r.charts)?r.charts:[]).map(cn).filter(w=>w.rows.length)})}function cn(e,t){const s=Array.isArray(e==null?void 0:e.rows)?e.rows:[];return{id:(e==null?void 0:e.id)||`smart-chart-${t}`,type:dn(e==null?void 0:e.type),title:(e==null?void 0:e.title)||`统计图表${t+1}`,subtitle:mn(e==null?void 0:e.subtitle),unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:s.map((n,r)=>({key:(n==null?void 0:n.key)||`${(n==null?void 0:n.name)||"row"}-${r}`,name:String((n==null?void 0:n.name)||`指标${r+1}`),value:fn(n==null?void 0:n.value),rawValue:n==null?void 0:n.value,unit:(n==null?void 0:n.unit)||(e==null?void 0:e.unit)||"",extra:(n==null?void 0:n.extra)||""})).filter(n=>n.name&&Number.isFinite(n.value))}}function dn(e){return["pie","donut"].includes(e)?"pie":["line","trend"].includes(e)?"line":"bar"}function mn(e){const t=String(e||"").trim();return!t||/^(数据)?来源[::]/.test(t)||t.includes("固定展示")?"":t}function fn(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}const Rt="智慧管理",gn=80,yn=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:An},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:wn},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:Sn},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:_n},{key:"industry",label:"牦牛产业链",patterns:[/产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:Rn}];function vn(s){return F(this,arguments,function*(e,t={}){var C;const n=Lt(e),r=t.pagePath||window.location.hash||window.location.pathname,u=[],w=ln(n,r,Rt).catch(E=>(u.push(Pt(E,"辅助图表暂不可用")),[])),v=bn(n),f=yield Promise.all(v.map(E=>E.build(n,u))),h=Nn(f.flat()),b=yield w,$=v.length===1&&((C=v[0])==null?void 0:C.key)==="overview",H=h.length?h:$?Mt():[],Z=Mn(n,H),O={question:n,pageName:Rt,pagePath:r,scope:Z,intents:v.map(E=>({key:E.key,label:E.label})),datasets:H,charts:b,notes:Cn(H,b,u),warnings:u};return M(T({},O),{insights:xn(O)})})}function pn(e={}){const t=Array.isArray(e.datasets)?e.datasets:[],s=Array.isArray(e.insights)?e.insights:[],n=e.scope||"红原县",r=t.slice(0,4).map(v=>v.title).filter(Boolean),u=s.slice(0,5).map(v=>`- ${v.label}:${v.value}${v.note?`(${v.note})`:""}`),w=(e.notes||[]).slice(0,3).map(v=>`- ${v}`);return["**总体情况**",`已按${n}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...r.length?r.map(v=>`- ${v}`):["- 平台综合业务数据"],"",u.length?"**关键数据**":"",...u,"",w.length?"**数据说明**":"",...w].filter(Boolean).join(` `)}function bn(e){const t=yn.filter(s=>s.patterns.some(n=>n.test(e)));return t.length?t:[{key:"overview",label:"综合总览",build:()=>Mt()}]}function Mt(){return[l("home.topStats","首页核心指标",ye,"平台业务汇总数据"),l("home.heroStats","资源与草畜概览",ve,"平台业务汇总数据"),l("home.resourceComposition","资源构成",Ct,"平台业务汇总数据"),l("home.businessMatrix","业务矩阵",pe,"平台业务汇总数据"),l("home.townSynergy","乡镇林草湿与牦牛协同",xt,"平台业务汇总数据"),l("home.yakTown","首页牦牛乡镇排行",be,"平台业务汇总数据"),l("home.trade","首页交易结构",we,"平台业务汇总数据"),l("home.support","首页支撑产业",he,"平台业务汇总数据"),l("home.dataFlow","数据流汇总",ke,"平台业务汇总数据"),l("home.centerOrbit","首页中心节点",Ae,"平台业务汇总数据")]}function wn(s){return F(this,arguments,function*(e,t=[]){const[n,r,u,w]=yield Promise.allSettled([de(),me(),fe(),ge()]);J(n,t,"牦牛乡镇存栏数据暂未取得"),J(r,t,"牦牛畜群结构数据暂未取得"),J(u,t,"牦牛预测数据暂未取得"),J(w,t,"牦牛交易数据暂未取得");const v=hn(Q(n)),f=Tt(Q(r)),h=kn(Q(u)),b=Tt(Q(w));return[l("yak.town","乡镇牦牛存栏分布",v,"牦牛管理接口数据"),l("yak.structureRows","畜群结构数量",f,"牦牛管理接口数据"),l("yak.forecastRows","牦牛月度预测",h,"牦牛管理接口数据"),l("yak.tradeImpact","交易影响",b,"牦牛交易接口数据")]})}function Q(e){return e.status==="fulfilled"&&Array.isArray(e.value)?e.value:[]}function J(e,t,s){e.status==="rejected"&&t.push(Pt(e.reason,s))}function hn(e=[]){return e.map((t,s)=>{var u,w,v,f;const n=String(t.name||t.areaName||t.area_name||t.townName||t.zoneName||"").trim(),r=ut((f=(v=(w=(u=t.count)!=null?u:t.value)!=null?w:t.number)!=null?v:t.yakCount)!=null?f:t.yak_count);return{key:t.key||t.id||t.areaCode||t.area_code||`${n||"yak-town"}-${s}`,name:n,count:r,value:r,unit:t.unit||"头"}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,s)=>s.count-t.count)}function Tt(e=[]){return e.map((t,s)=>{var u,w,v,f,h;const n=String(t.name||t.label||t.type||t.key||"").trim(),r=ut((h=(f=(v=(w=(u=t.count)!=null?u:t.value)!=null?w:t.number)!=null?v:t.yakCount)!=null?f:t.headCount)!=null?h:t.amount);return{key:t.key||t.id||`${n||"yak-metric"}-${s}`,name:n,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,s)=>s.count-t.count)}function kn(e=[]){return e.map((t,s)=>{var u,w,v,f;const n=String(t.name||t.label||t.month||t.date||t.time||"").trim(),r=ut((f=(v=(w=(u=t.stock)!=null?u:t.count)!=null?w:t.value)!=null?v:t.number)!=null?f:t.yakCount);return{key:t.key||t.id||`${n||"yak-forecast"}-${s}`,name:n,label:n,stock:r,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.stock))}function An(e){const t=Tn(e),s=(t==null?void 0:t.name)||"红原县";return[l("balance.target",`${s}草畜平衡`,[t],"平台业务汇总数据"),l("balance.county","全县草畜平衡",[Et],"平台业务汇总数据"),l("balance.town","乡镇草畜平衡",rt,"平台业务汇总数据"),l("balance.fallbackRows","草畜平衡兜底数据",Le,"平台业务汇总数据"),l("balance.params","草畜平衡计算参数",[Pe],"平台业务汇总数据")]}function Sn(){return[l("pasture.core","牧户核心指标",Se,"平台业务汇总数据"),l("pasture.topStats","牧户顶部指标",_e,"平台业务汇总数据"),l("pasture.town","牧户乡镇分布",Re,"平台业务汇总数据"),l("pasture.online","牧户在线率",Te,"平台业务汇总数据"),l("pasture.structure","牧户年龄性别结构",$e,"平台业务汇总数据"),l("pasture.age","牧户年龄结构",Ne,"平台业务汇总数据"),l("pasture.gender","牧户性别结构",Ce,"平台业务汇总数据"),l("pasture.list","牧户示例列表",xe,"平台业务汇总数据"),l("pasture.grassland","牧户草场资源",Ee,"平台业务汇总数据"),l("pasture.season","牧户季节草场",Me,"平台业务汇总数据"),l("pasture.map","牧户地图统计",De,"平台业务汇总数据")]}function _n(){return[l("ecology.parkTopStats","生态保护核心指标",Fe,"平台业务汇总数据"),l("ecology.parkCore","国家公园核心指标",ze,"平台业务汇总数据"),l("ecology.parkTownRows","国家公园乡镇数据",He,"平台业务汇总数据"),l("ecology.restorationTopStats","生态修复项目汇总",Oe,"平台业务汇总数据"),l("ecology.engineeringTopStats","生态工程分析指标",Be,"平台业务汇总数据"),l("ecology.engineeringProjectFeatures","工程分析项目点",je,"平台业务汇总数据"),l("ecology.parkPanels","生态保护图表数据",at(qe),"平台业务汇总数据"),l("ecology.restorationPanels","生态修复图表数据",at(Ie),"平台业务汇总数据"),l("ecology.engineeringAnalysisPanels","工程分析图表数据",at(Ve),"平台业务汇总数据"),l("home.resourceComposition","林草湿资源构成",Ct,"平台业务汇总数据"),l("home.townSynergy","乡镇林草湿与牦牛协同",xt,"平台业务汇总数据")]}function Rn(){return[l("industry.topStats","产业链核心指标",Ue,"平台业务汇总数据"),l("industry.overview","产业链总览",Ke,"平台业务汇总数据"),l("industry.stageComposition","产业阶段构成",We,"平台业务汇总数据"),l("industry.stageRows","产业阶段说明",Ye,"平台业务汇总数据"),l("industry.breedingLevel","养殖水平",Ge,"平台业务汇总数据"),l("industry.forageSecurity","饲草保障能力",Qe,"平台业务汇总数据"),l("industry.value","产业价值指标",Je,"平台业务汇总数据"),l("industry.processingAbility","加工能力指标",Xe,"平台业务汇总数据"),l("industry.serviceCapability","服务能力指标",Ze,"平台业务汇总数据"),l("industry.financial","金融服务",tn,"平台业务汇总数据"),l("industry.supportPoints","饲草储备点位",en,"平台业务汇总数据"),l("industry.processingPoints","加工屠宰点位",nn,"平台业务汇总数据"),l("industry.points","产业链点位",sn,"平台业务汇总数据"),l("industry.list","产业链主体列表",an,"平台业务汇总数据")]}function Tn(e){return rt.find(t=>Dt(e,t.name))||Et}function l(e,t,s,n){return{id:e,title:t,suggestedView:Dn(t,s),source:{label:n||"平台展示数据"},rows:$n(s)}}function $n(e){return(Array.isArray(e)?e:[]).slice(0,gn).map(t=>ot(t)).filter(t=>t&&typeof t=="object")}function ot(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,30).map(s=>ot(s,t+1)):typeof e=="object"?Object.entries(e).reduce((s,[n,r])=>(["icon","color","tone","image","cover","component"].includes(n)||(s[n]=ot(r,t+1)),s),{}):String(e)}function Nn(e=[]){const t=new Set;return e.filter(s=>{var n;return!((n=s==null?void 0:s.rows)!=null&&n.length)||t.has(s.id)?!1:(t.add(s.id),!0)})}function Cn(e,t,s){return[...s].filter(Boolean)}function xn(e){const t=[];return(e.datasets||[]).some(s=>{const n=En(s);return n&&t.push(n),t.length>=5}),(e.charts||[]).some(s=>{var f,h;const n=(s.rows||[]).filter(b=>Number.isFinite(Number(b.value)));if(!n.length)return!1;const r=n.slice().sort((b,$)=>Number($.value||0)-Number(b.value||0)),u=s.unit==="%"||/率|占比|比例/.test(s.title||""),w=u?(f=r[0])==null?void 0:f.value:n.reduce((b,$)=>b+Number($.value||0),0),v=u&&((h=r[0])!=null&&h.name)?`${s.title||"关联图表"}:${r[0].name}`:s.title||"关联图表";return t.push({label:v,value:`${Ft(w)}${s.unit||""}`,note:n.length>1?u?"数值较高项":`覆盖 ${n.length} 项`:""}),t.length>=5}),t.slice(0,5)}function En(e){var w,v,f,h;const t=(e.rows||[]).find(Boolean);if(!t)return null;const s=t.name||t.areaName||t.zh||t.label||e.title,n=t.overloadRate!==void 0||t.overloadrate!==void 0,r=n?(w=t.overloadRate)!=null?w:t.overloadrate:(h=(f=(v=t.value)!=null?v:t.yakNumber)!=null?f:t.livestockCapacity)!=null?h:t.areaRange;if(r==null||r==="")return null;const u=t.unit||(n?"%":t.yakNumber!==void 0||t.livestockCapacity!==void 0?"头":"");return{label:n?`${s}超载率`:s,value:`${Ft(r)}${u}`,note:n&&t.level||e.title}}function at(e={}){return Object.entries(e||{}).flatMap(([t,s])=>(Array.isArray(s)?s:[]).flatMap(n=>(Array.isArray(n==null?void 0:n.rows)?n.rows:Array.isArray(n==null?void 0:n.data)?n.data:[]).map(u=>T({groupKey:t,panelKey:n.key,panelTitle:n.title},u))))}function Mn(e,t){var r,u;const s=rt.find(w=>Dt(e,w.name));if(s)return s.name;const n=(u=(r=t.find(w=>w.id==="balance.target"))==null?void 0:r.rows)==null?void 0:u[0];return n!=null&&n.name?n.name:n!=null&&n.areaName?n.areaName:"红原县"}function Dn(e,t){return!Array.isArray(t)||t.length<=1?"metrics":/结构|构成|占比|比例/.test(e)?"pie":/趋势|预测/.test(e)?"line":"bar-table"}function Dt(e,t){const s=Lt(e),n=String(t||"").replace(/(县|镇|村|乡|牧场|牧户|联户)$/g,"");return!!(t&&(s.includes(t)||n&&s.includes(n)))}function Lt(e){return String(e||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛").trim()}function Pt(e,t){const s=String((e==null?void 0:e.message)||"");return(e==null?void 0:e.code)===401||(e==null?void 0:e.code)==="401"||/未登录|授权|Unauthorized|HTTP 401/i.test(s)?"当前登录状态已失效,部分接口数据未取得":/timeout|timed out|超时/i.test(s)?`${t},接口响应超时`:t}function ut(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}function Ft(e){const t=Number(String(e).replace(/,/g,""));return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:2}):e||"--"}const Ln="/openApi",Pn=12e4,Fn=8e3,zn=12,Hn=500;function On(e){return/^https?:\/\//.test(e)?e:`${Ln}${e.startsWith("/")?e:`/${e}`}`}function Bn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.message)||(e==null?void 0:e.msg)||"HTML界面生成失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function jn(){return F(this,arguments,function*({question:e,answer:t="",charts:s=[],datasets:n=[],context:r=null,pagePath:u=window.location.hash||window.location.pathname,pageName:w="智慧管理"}={}){const v=qn({question:e,answer:t,charts:s,datasets:n,context:r}),f=yield $t(On("/ai/artifact/html"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:e,pagePath:u,pageName:w,dataJson:v}),timeout:11e4}).then(Bn),h=String((f==null?void 0:f.provider)||""),b=String((f==null?void 0:f.model)||"");if(h.toLowerCase()!=="deepseek"||!b.toLowerCase().startsWith("deepseek-"))throw new Error("HTML界面不是由DeepSeek模型生成,已拒绝展示");const $=Kn((f==null?void 0:f.html)||(f==null?void 0:f.content)||f);if(!$)throw new Error("代码模型没有返回完整HTML");if(Wn($))throw new Error("专题页面仍为原始数据表,已拒绝展示,请重新生成");return M(T({},f),{html:$})})}function qn({question:e,answer:t,charts:s,datasets:n,context:r}){const u={question:String(e||"").trim(),generatedAt:new Date().toISOString(),presentation:{format:"business-report",requirements:["输出应为业务报告页面,而不是原始数据表或字段清单。","不要直接展示 key、rawValue、areaCode、areaRange 等技术字段名。","页面需包含结论、关键指标、图表化对比、重点对象和工作建议。"]},answer:String(t||"").slice(0,Fn),context:In(r),datasets:[...Vn(s),...Un(n)]},w=JSON.stringify(u);if(w.length>Pn){const v=new Error("汇总数据超过120000字符,请先缩小查询范围");throw v.code="ARTIFACT_DATA_TOO_LARGE",v}return w}function In(e){if(!e||typeof e!="object")return null;const{question:t,pageName:s,pagePath:n,scope:r,intents:u,notes:w,warnings:v,insights:f}=e;return X({question:t,pageName:s,pagePath:n,scope:r,intents:u,notes:w,warnings:v,insights:f})}function Vn(e=[]){return(Array.isArray(e)?e:[]).slice(0,6).map((t,s)=>({id:(t==null?void 0:t.id)||`chart-${s+1}`,title:(t==null?void 0:t.title)||`统计数据${s+1}`,suggestedView:(t==null?void 0:t.type)||"bar",unit:(t==null?void 0:t.unit)||"",subtitle:(t==null?void 0:t.subtitle)||"",source:(t==null?void 0:t.source)||{},rows:zt(t==null?void 0:t.rows)}))}function Un(e=[]){return(Array.isArray(e)?e:[]).slice(0,zn).map((t,s)=>({id:(t==null?void 0:t.id)||`dataset-${s+1}`,title:(t==null?void 0:t.title)||(t==null?void 0:t.name)||`汇总数据${s+1}`,suggestedView:(t==null?void 0:t.suggestedView)||(t==null?void 0:t.type)||"auto",unit:(t==null?void 0:t.unit)||"",source:(t==null?void 0:t.source)||{},rows:zt((t==null?void 0:t.rows)||(t==null?void 0:t.data)||t)}))}function zt(e){return(Array.isArray(e)?e:[]).slice(0,Hn).map(t=>X(t))}function X(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,50).map(s=>X(s,t+1)):typeof e=="object"?Object.entries(e).reduce((s,[n,r])=>(s[n]=X(r,t+1),s),{}):String(e)}function Kn(e){let t=String(e||"").trim();t.startsWith("```")&&(t=t.replace(/^```(?:html)?\s*/i,"").replace(/\s*```$/i,"").trim());const s=t.match(/");return s&&n>=s.index&&(t=t.slice(s.index,n+7)),/]+>/g," ").replace(/\s+/g," ").toLowerCase(),n=(t.match(/s.includes(w)).length;return n>=2&&u>=4||n>=1&&u>=6}function Yn(e){const t=String(e||"").trim();if(!t||typeof DOMParser=="undefined")return"";const s=new DOMParser().parseFromString(t,"text/html"),n=s.createElement("script");return n.textContent=` (() => { const notify = (type, message = "") => { @@ -9,5 +9,5 @@ var Gt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnProp window.addEventListener("DOMContentLoaded", () => notify("ready")); })(); `,s.head.prepend(n),` -${s.documentElement.outerHTML}`}const Gn={class:"wisdom-management"},Qn={key:0,class:"wisdom-side wisdom-side-left"},Jn={key:0,class:"wisdom-side-header"},Xn={key:0},Zn={key:1,class:"wisdom-side-metrics"},ts={key:0},es=["innerHTML"],ns={key:3,class:"wisdom-side-actions"},ss=["disabled","onClick"],is={key:1,class:"wisdom-side wisdom-side-right"},as={key:0,class:"wisdom-side-header"},os={key:0},rs={key:2,class:"wisdom-side-metrics"},us={key:0},ls=["innerHTML"],cs={key:4,class:"wisdom-side-actions"},ds=["disabled","onClick"],ms={key:2,class:"wisdom-artifact-workspace"},fs={class:"wisdom-artifact-header"},gs={class:"wisdom-artifact-heading"},ys={class:"wisdom-artifact-tools"},vs=["disabled"],ps={class:"wisdom-artifact-body"},bs={key:0,class:"wisdom-artifact-building"},ws={class:"wisdom-artifact-building__intro"},hs=["srcdoc"],ks={key:2,class:"wisdom-artifact-error"},As=["disabled"],Ss={key:0,class:"wisdom-empty-state"},_s={key:0,class:"wisdom-message-mark"},Rs={class:"wisdom-bubble"},Ts={key:0,class:"wisdom-digesting"},$s=["innerHTML"],Ns={key:2,class:"wisdom-stream-caret"},Cs={key:3,class:"wisdom-suggestion-list"},xs=["disabled","onClick"],Es={class:"wisdom-input-shell"},Ms=["disabled"],Ds=["disabled","title","aria-label"],Ls=["disabled"],Ps={key:0,class:"wisdom-button-loading"},Fs="请输入需要了解的业务事项,系统将依据平台汇总数据形成要点分析和专题页面。",Gs={__name:"index",props:{active:{type:Boolean,default:!0}},setup(e){const t=ue({loader:()=>le(()=>import("./SmartChartRenderer-0192bb51-1784132466083.js"),["./SmartChartRenderer-0192bb51-1784132466083.js","./index-1784132466083.js","./index-09a742df-balabala-1784132466083.css","./index.esm.min-e7a22049-1784132466083.js","./SmartChartRenderer-7a3a96b9-balabala-1784132466083.css"],import.meta.url),loadingComponent:{template:'
正在绘制统计图表
'}}),s=e,n=D(""),r=D([]),u=D(!1),w=D(null),v=D(null),f=D([]),h=D([]),b=D(lt()),$=it(()=>b.value.status!=="idle"),H=it(()=>["collecting","generating"].includes(b.value.status)),Z=it(()=>b.value.status==="collecting"?"汇总数据":b.value.status==="generating"?"生成页面":b.value.status==="ready"?"DeepSeek生成":b.value.status==="error"?"生成失败":b.value.status==="waiting"?"等待选择":"待生成"),O=D(!1),C=D(!1),E=D("");let q=null,x=null,B=0;const I=D(null);te(()=>{qt(),window.addEventListener("message",ft)}),ee(()=>{tt(),Y(),B+=1,window.removeEventListener("message",ft)}),ne(()=>s.active,i=>{i||(tt(),Y(),B+=1,u.value=!1,r.value=r.value.map(o=>o.streaming?M(T({},o),{streaming:!1,digesting:!1}):o))});function W(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function lt(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function Ht(i){B+=1,I.value=null,b.value=M(T({},lt()),{status:"collecting",title:ct(i),question:i})}function ct(i){const o=String(i||"动态分析").replace(/[??。!!]+$/g,"").trim();return o.length>28?`${o.slice(0,28)}...`:o||"动态分析"}function dt(i){return F(this,null,function*(){const o={question:(i==null?void 0:i.question)||b.value.question,answer:(i==null?void 0:i.answer)||"",charts:Array.isArray(i==null?void 0:i.charts)?i.charts:[],datasets:Array.isArray(i==null?void 0:i.datasets)?i.datasets:[],context:(i==null?void 0:i.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};I.value=o;const a=++B;b.value=M(T({},b.value),{status:"generating",title:ct(o.question),question:o.question,html:"",error:"",model:""});try{const c=yield jn(o);if(a!==B)return{stale:!0};const d=Yn(c.html);if(!d)throw new Error("生成页面内容为空");return b.value=M(T({},b.value),{status:"ready",html:d,error:"",model:c.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:c}}catch(c){if(a!==B)return{stale:!0};const d=bt(c,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",c),b.value=M(T({},b.value),{status:"error",html:"",error:d,model:"",renderKey:Date.now()}),{ok:!1,message:d,error:c}}})}function mt(){!I.value||H.value||dt(I.value)}function Ot(i){B+=1,b.value=M(T({},b.value),{status:"error",html:"",error:i,renderKey:Date.now()})}function Bt(){b.value.status!=="ready"&&(b.value=M(T({},b.value),{status:"ready"}))}function ft(i){var o,a;i.source!==((o=v.value)==null?void 0:o.contentWindow)||((a=i.data)==null?void 0:a.source)!=="smart-artifact"||i.data.type==="runtime-error"&&(b.value=M(T({},b.value),{status:"error",html:"",error:i.data.message||"生成界面运行异常",renderKey:Date.now()}))}function gt(i){return String(i||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function jt(i){return gt(i).trim()}function qt(){if(typeof window=="undefined")return;const i=window.SpeechRecognition||window.webkitSpeechRecognition;O.value=!!i,i&&(x=new i,x.lang="zh-CN",x.continuous=!1,x.interimResults=!0,x.maxAlternatives=1,x.onstart=()=>{C.value=!0,E.value=""},x.onresult=o=>{const c=Array.from(o.results||[]).map(d=>{var m;return((m=d==null?void 0:d[0])==null?void 0:m.transcript)||""}).join("").trim();c&&(n.value=c)},x.onerror=o=>{C.value=!1,E.value=(o==null?void 0:o.error)||"语音输入失败"},x.onend=()=>{C.value=!1})}function It(){if(!(!x||u.value)){if(C.value){Y();return}try{E.value="",x.start()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入启动失败",C.value=!1}}}function Y(){if(!(!x||!C.value))try{x.stop()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入已结束"}finally{C.value=!1}}function V(){return F(this,arguments,function*(i=n.value){const o=jt(i);if(!o||u.value)return;Y();const a={id:W(),role:"user",text:o},c={id:W(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};r.value=[...r.value,a,c],n.value="",u.value=!0,Ht(o),yield wt(),yield Vt(o,c.id)})}function Vt(i,o){return F(this,null,function*(){var a;U(o,{digestText:"生成中"});try{const c=window.location.hash||window.location.pathname,d=yield vn(i,{pagePath:c}),m=pn(d),S=(a=d.insights)!=null&&a.length?d.insights:vt(d.charts||[]);U(o,{digesting:!0,digestText:"生成中",insights:S,suggestions:[],allowFollowUp:!0}),yt({question:i,answer:m,charts:d.charts||[],insights:S,suggestions:[]}),pt(o,Ut()),dt({question:i,answer:m,charts:d.charts||[],datasets:d.datasets||[],context:d})}catch(c){const d=bt(c,"上下文数据整理失败,请稍后重试。");yt({question:i,answer:d,charts:[],insights:[],suggestions:[]}),Ot(d),pt(o,d)}})}function Ut(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` +${s.documentElement.outerHTML}`}const Gn={class:"wisdom-management"},Qn={key:0,class:"wisdom-side wisdom-side-left"},Jn={key:0,class:"wisdom-side-header"},Xn={key:0},Zn={key:1,class:"wisdom-side-metrics"},ts={key:0},es=["innerHTML"],ns={key:3,class:"wisdom-side-actions"},ss=["disabled","onClick"],is={key:1,class:"wisdom-side wisdom-side-right"},as={key:0,class:"wisdom-side-header"},os={key:0},rs={key:2,class:"wisdom-side-metrics"},us={key:0},ls=["innerHTML"],cs={key:4,class:"wisdom-side-actions"},ds=["disabled","onClick"],ms={key:2,class:"wisdom-artifact-workspace"},fs={class:"wisdom-artifact-header"},gs={class:"wisdom-artifact-heading"},ys={class:"wisdom-artifact-tools"},vs=["disabled"],ps={class:"wisdom-artifact-body"},bs={key:0,class:"wisdom-artifact-building"},ws={class:"wisdom-artifact-building__intro"},hs=["srcdoc"],ks={key:2,class:"wisdom-artifact-error"},As=["disabled"],Ss={key:0,class:"wisdom-empty-state"},_s={key:0,class:"wisdom-message-mark"},Rs={class:"wisdom-bubble"},Ts={key:0,class:"wisdom-digesting"},$s=["innerHTML"],Ns={key:2,class:"wisdom-stream-caret"},Cs={key:3,class:"wisdom-suggestion-list"},xs=["disabled","onClick"],Es={class:"wisdom-input-shell"},Ms=["disabled"],Ds=["disabled","title","aria-label"],Ls=["disabled"],Ps={key:0,class:"wisdom-button-loading"},Fs="请输入需要了解的业务事项,系统将依据平台汇总数据形成要点分析和专题页面。",Gs={__name:"index",props:{active:{type:Boolean,default:!0}},setup(e){const t=ue({loader:()=>le(()=>import("./SmartChartRenderer-9bb0d9e2-1784132792831.js"),["./SmartChartRenderer-9bb0d9e2-1784132792831.js","./index-1784132792831.js","./index-10abf3f4-balabala-1784132792831.css","./index.esm.min-da05f706-1784132792831.js","./SmartChartRenderer-7a3a96b9-balabala-1784132792831.css"],import.meta.url),loadingComponent:{template:'
正在绘制统计图表
'}}),s=e,n=D(""),r=D([]),u=D(!1),w=D(null),v=D(null),f=D([]),h=D([]),b=D(lt()),$=it(()=>b.value.status!=="idle"),H=it(()=>["collecting","generating"].includes(b.value.status)),Z=it(()=>b.value.status==="collecting"?"汇总数据":b.value.status==="generating"?"生成页面":b.value.status==="ready"?"DeepSeek生成":b.value.status==="error"?"生成失败":b.value.status==="waiting"?"等待选择":"待生成"),O=D(!1),C=D(!1),E=D("");let q=null,x=null,B=0;const I=D(null);te(()=>{qt(),window.addEventListener("message",ft)}),ee(()=>{tt(),Y(),B+=1,window.removeEventListener("message",ft)}),ne(()=>s.active,i=>{i||(tt(),Y(),B+=1,u.value=!1,r.value=r.value.map(o=>o.streaming?M(T({},o),{streaming:!1,digesting:!1}):o))});function W(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function lt(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function Ht(i){B+=1,I.value=null,b.value=M(T({},lt()),{status:"collecting",title:ct(i),question:i})}function ct(i){const o=String(i||"动态分析").replace(/[??。!!]+$/g,"").trim();return o.length>28?`${o.slice(0,28)}...`:o||"动态分析"}function dt(i){return F(this,null,function*(){const o={question:(i==null?void 0:i.question)||b.value.question,answer:(i==null?void 0:i.answer)||"",charts:Array.isArray(i==null?void 0:i.charts)?i.charts:[],datasets:Array.isArray(i==null?void 0:i.datasets)?i.datasets:[],context:(i==null?void 0:i.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};I.value=o;const a=++B;b.value=M(T({},b.value),{status:"generating",title:ct(o.question),question:o.question,html:"",error:"",model:""});try{const c=yield jn(o);if(a!==B)return{stale:!0};const d=Yn(c.html);if(!d)throw new Error("生成页面内容为空");return b.value=M(T({},b.value),{status:"ready",html:d,error:"",model:c.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:c}}catch(c){if(a!==B)return{stale:!0};const d=bt(c,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",c),b.value=M(T({},b.value),{status:"error",html:"",error:d,model:"",renderKey:Date.now()}),{ok:!1,message:d,error:c}}})}function mt(){!I.value||H.value||dt(I.value)}function Ot(i){B+=1,b.value=M(T({},b.value),{status:"error",html:"",error:i,renderKey:Date.now()})}function Bt(){b.value.status!=="ready"&&(b.value=M(T({},b.value),{status:"ready"}))}function ft(i){var o,a;i.source!==((o=v.value)==null?void 0:o.contentWindow)||((a=i.data)==null?void 0:a.source)!=="smart-artifact"||i.data.type==="runtime-error"&&(b.value=M(T({},b.value),{status:"error",html:"",error:i.data.message||"生成界面运行异常",renderKey:Date.now()}))}function gt(i){return String(i||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function jt(i){return gt(i).trim()}function qt(){if(typeof window=="undefined")return;const i=window.SpeechRecognition||window.webkitSpeechRecognition;O.value=!!i,i&&(x=new i,x.lang="zh-CN",x.continuous=!1,x.interimResults=!0,x.maxAlternatives=1,x.onstart=()=>{C.value=!0,E.value=""},x.onresult=o=>{const c=Array.from(o.results||[]).map(d=>{var m;return((m=d==null?void 0:d[0])==null?void 0:m.transcript)||""}).join("").trim();c&&(n.value=c)},x.onerror=o=>{C.value=!1,E.value=(o==null?void 0:o.error)||"语音输入失败"},x.onend=()=>{C.value=!1})}function It(){if(!(!x||u.value)){if(C.value){Y();return}try{E.value="",x.start()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入启动失败",C.value=!1}}}function Y(){if(!(!x||!C.value))try{x.stop()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入已结束"}finally{C.value=!1}}function V(){return F(this,arguments,function*(i=n.value){const o=jt(i);if(!o||u.value)return;Y();const a={id:W(),role:"user",text:o},c={id:W(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};r.value=[...r.value,a,c],n.value="",u.value=!0,Ht(o),yield wt(),yield Vt(o,c.id)})}function Vt(i,o){return F(this,null,function*(){var a;U(o,{digestText:"生成中"});try{const c=window.location.hash||window.location.pathname,d=yield vn(i,{pagePath:c}),m=pn(d),S=(a=d.insights)!=null&&a.length?d.insights:vt(d.charts||[]);U(o,{digesting:!0,digestText:"生成中",insights:S,suggestions:[],allowFollowUp:!0}),yt({question:i,answer:m,charts:d.charts||[],insights:S,suggestions:[]}),pt(o,Ut()),dt({question:i,answer:m,charts:d.charts||[],datasets:d.datasets||[],context:d})}catch(c){const d=bt(c,"上下文数据整理失败,请稍后重试。");yt({question:i,answer:d,charts:[],insights:[],suggestions:[]}),Ot(d),pt(o,d)}})}function Ut(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` `)}function G(i){const o=Number(String(i).replace(/,/g,""));return Number.isFinite(o)?o.toLocaleString("zh-CN",{maximumFractionDigits:2}):i||"--"}function yt({question:i,answer:o,charts:a=[],insights:c=[],suggestions:d=[],aiPanels:m}={}){const S=(m==null?void 0:m.leftPanels)||[],R=(m==null?void 0:m.rightPanels)||[];if(S.length||R.length){f.value=S,h.value=R;return}const _=Kt({question:i,answer:o,charts:a,insights:c,suggestions:d});f.value=_.left,h.value=_.right}function Kt({question:i,answer:o,charts:a=[],insights:c=[],suggestions:d=[]}={}){const m=[],S=[],R=(c.length?c:vt(a)).map(_=>({label:_.label,value:_.value,note:_.note}));return!a.length&&!R.length?{left:m,right:S}:(R.length&&m.push({id:`summary-${W()}`,type:"metrics",kicker:"数据要点",title:"数据摘要",badge:"实时",items:R.slice(0,4),actions:[]}),a.slice(0,2).forEach((_,L)=>{S.push({id:`chart-${_.id||L}-${W()}`,type:"chart",kicker:L===0?"可视分析":"关联图表",title:_.title||`统计图表${L+1}`,badge:_.unit||"",chart:_,items:[],actions:[],text:""})}),{left:m.slice(0,2),right:S.slice(0,2)})}function vt(i=[]){const o=[];return i.slice(0,2).forEach(a=>{var K;const c=(a.rows||[]).map(N=>M(T({},N),{value:Number(N.value)})).filter(N=>N.name&&Number.isFinite(N.value));if(!c.length)return;const d=a.unit||((K=c.find(N=>N.unit))==null?void 0:K.unit)||"",m=c.slice().sort((N,st)=>st.value-N.value),S=c.reduce((N,st)=>N+st.value,0),R=S/c.length,_=m[0],L=m[m.length-1];o.push({label:"最高",value:`${_.name} ${G(_.value)}${d}`,note:a.title}),c.length>2&&o.push({label:a.type==="pie"?"占比项":"最低",value:`${L.name} ${G(L.value)}${d}`,note:a.type==="pie"?"最小结构项":"低值区域"}),o.push({label:"合计",value:`${G(S)}${d}`,note:c.length>1?`覆盖 ${c.length} 项`:a.title}),a.type!=="pie"&&c.length>1&&o.push({label:"均值",value:`${G(R)}${d}`,note:"按当前图表项计算"})}),o.slice(0,4)}function U(i,o,a=!0){r.value=r.value.map(c=>c.id===i?T(T({},c),o):c),a&&wt()}function pt(i,o){U(i,{digesting:!1}),Wt(i,o)}function bt(i,o){const a=String((i==null?void 0:i.message)||"");return(i==null?void 0:i.code)===401||(i==null?void 0:i.code)==="401"||(i==null?void 0:i.code)==="HTTP_401"||/未登录|授权|Unauthorized|HTTP 401/i.test(a)?"当前登录状态已失效,请重新登录后查询。":(i==null?void 0:i.code)==="REQUEST_TIMEOUT"||/timeout|timed out|超时/i.test(a)?"服务响应时间较长,请稍后再试,或换一个更具体的问题。":(i==null?void 0:i.code)==="REQUEST_ABORTED"||/aborted|abort|signal/i.test(a)?"本次分析已中断,请重新提交。":(i==null?void 0:i.code)==="HTTP_404"||(i==null?void 0:i.status)===404||/HTTP 404/i.test(a)?"专题分析页面生成服务暂不可用,请稍后重试。":/Failed to fetch|NetworkError|Load failed|HTTP 50|HTTP 40/i.test(a)||/[a-zA-Z]{4,}/.test(a)?o:a||o}function Wt(i,o){tt();const a=gt(o),c=a.length>1200?36:a.length>700?24:14;let d=0;U(i,{fullText:a,visibleText:"",streaming:!0,charts:[]});const m=()=>{if(d=Math.min(d+c,a.length),U(i,{visibleText:a.slice(0,d),streaming:d=a.length){q=null,u.value=!1;return}q=window.setTimeout(m,18)};q=window.setTimeout(m,0)}function tt(){q&&(window.clearTimeout(q),q=null)}function et(i){const o=Yt(i).split(/\r?\n/),a=[];let c=[],d=!1;const m=()=>{c.length&&(a.push(`<${d?"ol":"ul"}>${c.map(S=>`
  • ${nt(S)}
  • `).join("")}`),c=[],d=!1)};return o.forEach(S=>{const R=S.trim();if(!R){m();return}const _=R.match(/^#{1,4}\s+(.+)$/)||R.match(/^\*\*(.+)\*\*$/);if(_){m(),a.push(`

    ${nt(_[1])}

    `);return}const L=R.match(/^\d+[.)、]\s+(.+)$/),K=R.match(/^[-*]\s+(.+)$/);if(L||K){const N=!!L;c.length&&d!==N&&m(),d=N,c.push(L?L[1]:K[1]);return}m(),a.push(`

    ${nt(R)}

    `)}),m(),a.join("")}function nt(i){return i.replace(/\*\*([^*]+)\*\*/g,"$1")}function Yt(i){return String(i||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function wt(){return F(this,null,function*(){yield ce(),window.requestAnimationFrame(()=>{w.value&&(w.value.scrollTop=w.value.scrollHeight)})})}return(i,o)=>(y(),p("div",Gn,[o[17]||(o[17]=At('',1)),f.value.length&&!$.value?(y(),p("aside",Qn,[(y(!0),p(P,null,z(f.value,a=>{var c,d;return y(),p("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(y(),p("header",Jn,[g("div",null,[g("span",null,A(a.kicker),1),g("strong",null,A(a.title),1)]),a.badge?(y(),p("em",Xn,A(a.badge),1)):k("",!0)])),(c=a.items)!=null&&c.length?(y(),p("div",Zn,[(y(!0),p(P,null,z(a.items,m=>(y(),p("div",{key:`${a.id}-${m.label}`,class:"wisdom-side-metric"},[g("span",null,A(m.label),1),g("strong",null,A(m.value),1),m.note?(y(),p("em",ts,A(m.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(y(),p("div",{key:2,class:"wisdom-side-text",innerHTML:et(a.text)},null,8,es)):k("",!0),(d=a.actions)!=null&&d.length?(y(),p("div",ns,[(y(!0),p(P,null,z(a.actions,m=>(y(),p("button",{key:m.question,type:"button",disabled:u.value,onClick:S=>V(m.question)},A(m.label),9,ss))),128))])):k("",!0)],2)}),128))])):k("",!0),h.value.length&&!$.value?(y(),p("aside",is,[(y(!0),p(P,null,z(h.value,a=>{var c,d;return y(),p("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(y(),p("header",as,[g("div",null,[g("span",null,A(a.kicker),1),g("strong",null,A(a.title),1)]),a.badge?(y(),p("em",os,A(a.badge),1)):k("",!0)])),a.chart?(y(),se(ie(t),{key:1,class:"wisdom-side-chart",chart:a.chart},null,8,["chart"])):k("",!0),(c=a.items)!=null&&c.length?(y(),p("div",rs,[(y(!0),p(P,null,z(a.items,m=>(y(),p("div",{key:`${a.id}-${m.label}`,class:"wisdom-side-metric"},[g("span",null,A(m.label),1),g("strong",null,A(m.value),1),m.note?(y(),p("em",us,A(m.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(y(),p("div",{key:3,class:"wisdom-side-text",innerHTML:et(a.text)},null,8,ls)):k("",!0),(d=a.actions)!=null&&d.length?(y(),p("div",cs,[(y(!0),p(P,null,z(a.actions,m=>(y(),p("button",{key:m.question,type:"button",disabled:u.value,onClick:S=>V(m.question)},A(m.label),9,ds))),128))])):k("",!0)],2)}),128))])):k("",!0),$.value?(y(),p("section",ms,[g("header",fs,[g("div",gs,[o[4]||(o[4]=g("span",{class:"wisdom-artifact-mark","aria-hidden":"true"},null,-1)),g("div",null,[o[3]||(o[3]=g("small",null,"专题分析",-1)),g("strong",null,A(b.value.title),1)])]),g("div",ys,[g("span",{class:j(["wisdom-artifact-status",`is-${b.value.status}`])},[o[5]||(o[5]=g("i",null,null,-1)),St(A(Z.value),1)],2),b.value.status==="ready"||b.value.status==="error"?(y(),p("button",{key:0,type:"button",disabled:H.value||!I.value,title:"重新生成当前界面",onClick:mt}," 重新生成 ",8,vs)):k("",!0)])]),g("div",ps,[H.value?(y(),p("div",bs,[g("div",ws,[o[6]||(o[6]=g("span",{class:"wisdom-artifact-building__spinner"},null,-1)),g("div",null,[g("strong",null,A(b.value.status==="collecting"?"正在汇总业务数据":"正在生成专题分析页面"),1)])]),o[7]||(o[7]=At('
    ',3))])):b.value.html?(y(),p("iframe",{key:b.value.renderKey,ref_key:"artifactFrameRef",ref:v,class:"wisdom-artifact-frame",srcdoc:b.value.html,sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",referrerpolicy:"no-referrer",title:"专题分析页面",onLoad:Bt},null,40,hs)):(y(),p("div",ks,[o[8]||(o[8]=g("strong",null,"专题分析页面暂未生成",-1)),g("p",null,A(b.value.error||"当前数据不足以形成专题分析页面。"),1),g("button",{type:"button",disabled:!I.value,onClick:mt},"重新生成",8,As)]))])])):k("",!0),g("main",{class:j(["wisdom-chat",{"has-artifact":$.value}])},[g("div",{ref_key:"dialogueRef",ref:w,class:j(["wisdom-dialogue",{"is-empty":!r.value.length}])},[r.value.length?k("",!0):(y(),p("section",Ss,[o[9]||(o[9]=g("div",{class:"wisdom-empty-mark"},[g("span"),g("strong",null,"AI")],-1)),o[10]||(o[10]=g("h2",null,"智慧辅助分析",-1)),g("p",null,A(Fs))])),(y(!0),p(P,null,z(r.value,a=>{var c;return y(),p("article",{key:a.id,class:j(["wisdom-message",`is-${a.role}`])},[a.role==="assistant"?(y(),p("div",_s,[...o[11]||(o[11]=[g("span",null,"智",-1)])])):k("",!0),g("div",Rs,[a.role==="user"?(y(),p(P,{key:0},[St(A(a.text),1)],64)):(y(),p(P,{key:1},[a.digesting?(y(),p("div",Ts,[o[12]||(o[12]=g("span",null,null,-1)),o[13]||(o[13]=g("span",null,null,-1)),o[14]||(o[14]=g("span",null,null,-1)),g("em",null,A(a.digestText||"正在汇总分析"),1)])):k("",!0),a.visibleText?(y(),p("div",{key:1,class:"wisdom-answer",innerHTML:et(a.visibleText)},null,8,$s)):k("",!0),a.streaming?(y(),p("span",Ns)):k("",!0),(c=a.suggestions)!=null&&c.length&&(a.allowFollowUp||!a.digesting&&!a.streaming)?(y(),p("div",Cs,[(y(!0),p(P,null,z(a.suggestions,d=>(y(),p("button",{key:d.question,type:"button",disabled:u.value,onClick:m=>V(d.question)},A(d.label),9,xs))),128))])):k("",!0)],64))])],2)}),128))],2),g("form",{class:"wisdom-input-bar",onSubmit:o[2]||(o[2]=_t(a=>V(),["prevent"]))},[g("div",Es,[o[16]||(o[16]=g("span",{class:"wisdom-input-icon"},null,-1)),ae(g("input",{"onUpdate:modelValue":o[0]||(o[0]=a=>n.value=a),disabled:u.value,autocomplete:"off",placeholder:"请输入需要了解的业务事项",onKeydown:o[1]||(o[1]=re(_t(a=>V(),["prevent"]),["enter"]))},null,40,Ms),[[oe,n.value]]),g("button",{type:"button",class:j(["wisdom-voice-button",{"is-listening":C.value}]),disabled:u.value||!O.value,title:O.value?C.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入","aria-label":O.value?C.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入",onClick:It},[...o[15]||(o[15]=[g("span",null,null,-1)])],10,Ds),g("button",{class:"wisdom-submit-button",type:"submit",disabled:u.value||!n.value.trim()},[u.value?(y(),p("span",Ps)):k("",!0),g("span",null,A(u.value?"分析中":"发送"),1)],8,Ls)])],32)],2)]))}};export{Gs as default}; diff --git a/docs/assets/index-ddc73668-1784132466083.js b/docs/assets/index-b72a9c1f-1784132792831.js similarity index 96% rename from docs/assets/index-ddc73668-1784132466083.js rename to docs/assets/index-b72a9c1f-1784132792831.js index 379220b..e710892 100644 --- a/docs/assets/index-ddc73668-1784132466083.js +++ b/docs/assets/index-b72a9c1f-1784132792831.js @@ -1 +1 @@ -var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,l as w,m as h,g as S,o as _,c as f,a as e,f as V,s as g,H as b,t as y,j as k,d as p,I as B}from"./index-1784132466083.js";const D={class:"login-screen"},H={class:"login-shell"},I={class:"login-field"},M={class:"login-field"},R={key:0,class:"login-error"},U=["disabled"],q={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=S(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield B(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",D,[e("div",H,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:V(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",I,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[b,i.value,void 0,{trim:!0}]])]),e("label",M,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[b,a.value]])]),o.value?(_(),f("div",R,y(o.value),1)):k("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},y(u.value?"登录中":"登录"),9,U)],32)])]))}},P=x(q,[["__scopeId","data-v-8ebd0d6e"]]);export{P as default}; +var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,l as w,m as h,g as S,o as _,c as f,a as e,f as V,s as g,H as b,t as y,j as k,d as p,I as B}from"./index-1784132792831.js";const D={class:"login-screen"},H={class:"login-shell"},I={class:"login-field"},M={class:"login-field"},R={key:0,class:"login-error"},U=["disabled"],q={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=S(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield B(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",D,[e("div",H,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:V(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",I,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[b,i.value,void 0,{trim:!0}]])]),e("label",M,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[b,a.value]])]),o.value?(_(),f("div",R,y(o.value),1)):k("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},y(u.value?"登录中":"登录"),9,U)],32)])]))}},P=x(q,[["__scopeId","data-v-8ebd0d6e"]]);export{P as default}; diff --git a/docs/assets/index-c36df85d-balabala-1784132466083.css b/docs/assets/index-c36df85d-balabala-1784132792831.css similarity index 100% rename from docs/assets/index-c36df85d-balabala-1784132466083.css rename to docs/assets/index-c36df85d-balabala-1784132792831.css diff --git a/docs/assets/index-cd8a1218-1784132466083.js b/docs/assets/index-cc6a0a71-1784132792831.js similarity index 98% rename from docs/assets/index-cd8a1218-1784132466083.js rename to docs/assets/index-cc6a0a71-1784132792831.js index 0de98bd..9244955 100644 --- a/docs/assets/index-cd8a1218-1784132466083.js +++ b/docs/assets/index-cc6a0a71-1784132792831.js @@ -1,4 +1,4 @@ -var Qn=Object.defineProperty,Jn=Object.defineProperties;var Zn=Object.getOwnPropertyDescriptors;var io=Object.getOwnPropertySymbols;var Xn=Object.prototype.hasOwnProperty,ei=Object.prototype.propertyIsEnumerable;var ro=(k,n,i)=>n in k?Qn(k,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):k[n]=i,D=(k,n)=>{for(var i in n||(n={}))Xn.call(n,i)&&ro(k,i,n[i]);if(io)for(var i of io(n))ei.call(n,i)&&ro(k,i,n[i]);return k},V=(k,n)=>Jn(k,Zn(n));var re=(k,n,i)=>new Promise((c,s)=>{var f=m=>{try{h(i.next(m))}catch(b){s(b)}},p=m=>{try{h(i.throw(m))}catch(b){s(b)}},h=m=>m.done?c(m.value):Promise.resolve(m.value).then(f,p);h((i=i.apply(k,n)).next())});import{h as Lo,w as ht,o as A,c as F,a as w,d as G,K as ti,g as _,L as je,q as ai,A as W,s as so,v as lo,b as Tt,C as xe,j as Y,J as lt,u as We,F as _e,y as Ie,x as la,B as oi,n as Ue,e as _t,f as Se,t as z,T as ni,M as ii}from"./index-1784132466083.js";import{l as co,g as ri,E as si}from"./live-scene-1-bedc4ad6-1784132466083.js";import{H as ca}from"./index.esm.min-e7a22049-1784132466083.js";import{_ as uo}from"./index-fe70e5de-1784132466083.js";import{g as ua,C as li,H as ci,a as ui,M as di}from"./index-36438a28-1784132466083.js";import{O as fi,P as Ee,a as X,D as qe,C as se,A as me,b as J,e as hi,F as mi,G as fe,c as pi,d as gi,f as vi,g as fo,L as ho,V as Q,h as mo,R as he,B as yi,S as da,i as bi,j as wi,k as xi,l as Si,N as Mi,Q as ki,T as Pi,m as Ci,n as po,o as go,p as Ai,q as vo,r as Li}from"./screen2Standard-483e466b-1784132466083.js";import{M as Ti,g as _i,h as Ii,L as Fi,B as yo,a as fa,E as Ei,G as Oi,D as Bi,b as Gi,l as ha,P as bo,c as wo,d as Ni,s as ma,f as It,e as Ri,i as Hi,j as Di,k as xo}from"./data-1f73e057-1784132466083.js";import{g as Ye}from"./index-e9f36657-1784132466083.js";import{h as zi,a as To,f as $i,g as Vi,b as ji}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{R as Wi,r as Ui,a as Ki,c as qi,o as Yi,s as Qi,p as Ji,b as So,d as Zi,h as Xi,g as Mo,e as er,f as tr,i as ar,j as or,k as nr,l as ir,m as rr,n as sr,_ as lr}from"./TopicSwitcher-7006d8b4-1784132466083.js";import{_ as cr,a as ko}from"./FeatureInfoPanel-3970d641-1784132466083.js";import{g as Po,a as ur}from"./openApi-d69f269f-1784132466083.js";import{c as dr,F as fr,g as hr,a as mr}from"./featurePanelLayout-62f917d3-1784132466083.js";import{g as pr}from"./yakApi-08a6746e-1784132466083.js";import{w as ct,f as pa}from"./chartTheme-e9ae7be8-1784132466083.js";import{b as gr}from"./data-5c83c66b-1784132466083.js";import{h as vr,y as yr}from"./data-19be80ff-1784132466083.js";import"./index-ed255eef-1784132466083.js";import"./livestockData-36ec0ae2-1784132466083.js";import"./geoserver-b1a62bfb-1784132466083.js";class br extends fi{constructor(n,i){super(),this.config=Object.assign({color1:16566615,color2:16777215},i),this.assets={instance:null},this.assets.instance=n.assets.instance,this.sceneGroup=n.sceneGroup,this.gsapObjects=[],this.animateElements={},this.init()}init(){let n=this.config.color1,i=new Ee(1.5,1.5,1),c=new Ee(1,3,1);c.translate(0,1,0);let s=new X({color:n,transparent:!0,fog:!1,side:qe,depthWrite:!1}),f=s.clone();f.map=this.assets.instance.getResource("focusArrows");let p=s.clone();p.map=this.assets.instance.getResource("focusBar");let h=s.clone();h.map=this.assets.instance.getResource("focusBg");let m=s.clone();m.color=new se(this.config.color2),m.map=this.assets.instance.getResource("focusMidQuan");let b=s.clone();b.map=this.assets.instance.getResource("focusMoveBg"),b.blending=me;let C=new J(i,f),S=new J(c,p);S.rotation.x=Math.PI/2;let O=S.clone();O.rotation.y=Math.PI/2;let x=new J(i,h),v=new J(i,m),I=new J(i,b),B=[v,x,C,I,S,O];B.map(R=>{R.renderOrder=99}),this.add(...B);let E=0;I.scale.setScalar(E),this.animateElements={focusMidQuan:v,focusArrows:C,focusMoveBg:I},this.startAnimate()}startAnimate(){let n=Ye.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),i=Ye.to(this.animateElements.focusArrows.rotation,{z:2*Math.PI,duration:5,repeat:-1,ease:"none"}),c=Ye.to(this.animateElements.focusMoveBg.scale,{x:1.5,y:1.5,z:1.5,duration:2.5,repeat:-1,ease:"none"}),s=Ye.to(this.animateElements.focusMoveBg.material,{opacity:0,duration:2.5,repeat:-1,ease:"none"});this.gsapObjects=[n,i,c,s]}pausedAnimate(){this.gsapObjects.map(n=>{n.paused=!0})}destroy(){this.gsapObjects.map(n=>{n.kill()}),hi(this)}}const wr=zi.map(k=>D({},k)),Co=To.map(k=>D({},k)),xr=To.map(k=>{var n,i;return{name:k.name,value:k.value,lng:(n=k.center)==null?void 0:n[0],lat:(i=k.center)==null?void 0:i[1]}}),Sr=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];function ga(k){return k.sort((n,i)=>i.value-n.value),k}function Mr(k){return k?typeof k=="string"?JSON.parse(k):k:null}function va(k){const n=Mr(k);return n!=null&&n.features&&n.features.forEach(i=>{var c;((c=i.geometry)==null?void 0:c.type)==="Polygon"&&(i.geometry.coordinates=[i.geometry.coordinates])}),n}function kr(k,n){var i;try{return(i=k==null?void 0:k.getResource)==null?void 0:i.call(k,n)}catch(c){return null}}function Pr(k,n,i){const c=Number(k);return Number.isFinite(c)?Math.max(n,Math.min(i,c)):n}class Cr extends Ti{constructor(n,i,c={}){var s;super(n,{maxPixelRatio:(s=c.maxPixelRatio)!=null?s:c.showDataOverlays===!1?1.35:void 0,antialias:c.antialias}),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,this.geoProjectionFn=_i().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),this.flyLineCenter=[102.60242339873115,32.83022561372293],this.depth=.5,this.clicked=!1,this.sceneMode=c.sceneMode||"default",this.showDataOverlays=c.showDataOverlays!==!1,this.mapAnimationDone=!1,this.sceneTweens=[],this.sceneTimers=[],this.scene.fog=new mi(1058614,1,50),this.scene.background=new se(1058614),this.camera.instance.position.set(-13.767695123014105,12.990152163077308,39.28228164159694),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.interactionManager=new Ii(this.renderer.instance,this.camera.instance,this.canvas),this.assets=i,this.staticMapData={china:va(kr(this.assets.instance,"china")),mapJson:va(this.assets.instance.getResource("mapJson")),mapStroke:va(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(n){var i;return n&&(this.sceneTweens.push(n),this.scenePaused&&((i=n.pause)==null||i.call(n)),n)}addSceneTimer(n){return n&&this.sceneTimers.push(n),n}init(){this.labelGroup=new fe,this.label3d=new Fi(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new fe,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createParticles(),this.showDataOverlays&&(this.createFlyLine(),this.createFocus(),this.createScatter(),this.createInfoPoint()),this.createStorke();let n=Ye.timeline({onComplete:()=>{}});n.pause(),this.animateTl=n,n.addLabel("focusMap",1.5),n.addLabel("focusMapOpacity",2),n.addLabel("bar",3),n.to(this.camera.instance.position,{duration:2,x:-.17427287762525134,y:13.678992786206543,z:20.688611202093714,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1)}}),n.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),n.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{this.showDataOverlays&&(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!0),this.applySceneMode()}},"focusMap"),n.to(this.focusMapTopMaterial,{duration:1,opacity:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((i,c)=>{let s=i.element.querySelector(".other-label");n.to(s,{duration:1,delay:.1*c,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),n.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),n.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var i,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(i=this.options).onPlayComplete)==null||c.call(i)}},"focusMapOpacity"),(this.allBar||[]).map((i,c)=>{if(i.userData.name==="邛溪镇")return!1;n.to(i.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((i,c)=>{n.to(i,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((i,c)=>{let s=i.element.querySelector(".provinces-label-wrap"),f=i.element.querySelector(".number .value"),p=Number(f.innerText),h={score:0};n.to(s,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),n.to(h,{duration:1,delay:.2*c,score:p,onUpdate:m},"bar");function m(){f.innerText=h.score.toFixed(0)}}),(this.allGuangquan||[]).map((i,c)=>{n.to(i.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),n.to(i.children[1].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let n=new pi(16777215,5);this.scene.add(n);let i=new gi(16777215,5);i.position.set(-30,6,-8),i.castShadow=!0,i.shadow.radius=20,i.shadow.mapSize.width=1024,i.shadow.mapSize.height=1024,this.scene.add(i),this.createPointLight({color:"#1d5e5e",intensity:800,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#1d5e5e",intensity:200,distance:1e4,x:0,y:2,z:5})}createPointLight(n){const i=new vi(1924702,n.intensity,n.distance);i.position.set(n.x,n.y,n.z),this.scene.add(i)}createMap(){let n=new fe,i=new fe;this.focusMapGroup=i;let{china:c,chinaTopLine:s}=this.createChina(),{map:f,mapTop:p,mapLine:h}=this.createProvince();c==null||c.setParent(n),s==null||s.setParent(n),this.createDiffuse(),f.setParent(i),p.setParent(i),h.setParent(i),i.position.set(0,0,-.01),i.scale.set(1,1,0),n.add(i),n.rotation.x=-Math.PI/2,n.position.set(0,.2,0),this.scene.add(n),this.showDataOverlays?this.createBar():(this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[])}createChina(){var h;let n={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},i=this.staticMapData.china;if(!((h=i==null?void 0:i.features)!=null&&h.length))return{china:null,chinaTopLine:null};let c=new fo({color:new se(n.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),s=new yo(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),f=new ho({color:n.lineColor}),p=new fa(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,material:f,renderOrder:3});return p.lineGroup.position.z+=.01,{china:s,chinaTopLine:p}}createProvince(){let n=this.staticMapData.mapJson,[i,c]=this.createProvinceMaterial();this.focusMapTopMaterial=i,this.focusMapSideMaterial=c;let s=new Ei(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,.11),data:n,depth:this.depth,topFaceMaterial:i,sideMaterial:c,renderOrder:9}),f=new mo({color:16777215,transparent:!0,opacity:.5});this.createTerrainSurfaceShader(f),this.defaultMaterial=f,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new se("rgba(115,208,255,1)"),this.defaultLightMaterial.opacity=.8;let p=new yo(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,this.depth+.22),data:n,material:f,renderOrder:2});p.mapGroup.children.map(m=>{m.children.map(b=>{b.type==="Mesh"&&this.eventElement.push(b)})}),this.mapLineMaterial=new ho({color:16777215,opacity:0,transparent:!0,fog:!1});let h=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:n,material:this.mapLineMaterial,renderOrder:3});return h.lineGroup.position.z+=this.depth+.23,{map:s,mapTop:p,mapLine:h}}createProvinceMaterial(){let n=new fo({color:16777215,transparent:!0,opacity:0,fog:!1,side:qe});n.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(1058614)}}),s.vertexShader=s.vertexShader.replace("void main() {",` +var Qn=Object.defineProperty,Jn=Object.defineProperties;var Zn=Object.getOwnPropertyDescriptors;var io=Object.getOwnPropertySymbols;var Xn=Object.prototype.hasOwnProperty,ei=Object.prototype.propertyIsEnumerable;var ro=(k,n,i)=>n in k?Qn(k,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):k[n]=i,D=(k,n)=>{for(var i in n||(n={}))Xn.call(n,i)&&ro(k,i,n[i]);if(io)for(var i of io(n))ei.call(n,i)&&ro(k,i,n[i]);return k},V=(k,n)=>Jn(k,Zn(n));var re=(k,n,i)=>new Promise((c,s)=>{var f=m=>{try{h(i.next(m))}catch(b){s(b)}},p=m=>{try{h(i.throw(m))}catch(b){s(b)}},h=m=>m.done?c(m.value):Promise.resolve(m.value).then(f,p);h((i=i.apply(k,n)).next())});import{h as Lo,w as ht,o as A,c as F,a as w,d as G,K as ti,g as _,L as je,q as ai,A as W,s as so,v as lo,b as Tt,C as xe,j as Y,J as lt,u as We,F as _e,y as Ie,x as la,B as oi,n as Ue,e as _t,f as Se,t as z,T as ni,M as ii}from"./index-1784132792831.js";import{l as co,g as ri,E as si}from"./live-scene-1-771d3631-1784132792831.js";import{H as ca}from"./index.esm.min-da05f706-1784132792831.js";import{_ as uo}from"./index-a4d3ff67-1784132792831.js";import{g as ua,C as li,H as ci,a as ui,M as di}from"./index-24267a69-1784132792831.js";import{O as fi,P as Ee,a as X,D as qe,C as se,A as me,b as J,e as hi,F as mi,G as fe,c as pi,d as gi,f as vi,g as fo,L as ho,V as Q,h as mo,R as he,B as yi,S as da,i as bi,j as wi,k as xi,l as Si,N as Mi,Q as ki,T as Pi,m as Ci,n as po,o as go,p as Ai,q as vo,r as Li}from"./screen2Standard-41868f75-1784132792831.js";import{M as Ti,g as _i,h as Ii,L as Fi,B as yo,a as fa,E as Ei,G as Oi,D as Bi,b as Gi,l as ha,P as bo,c as wo,d as Ni,s as ma,f as It,e as Ri,i as Hi,j as Di,k as xo}from"./data-888ba847-1784132792831.js";import{g as Ye}from"./index-e9f36657-1784132792831.js";import{h as zi,a as To,f as $i,g as Vi,b as ji}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{R as Wi,r as Ui,a as Ki,c as qi,o as Yi,s as Qi,p as Ji,b as So,d as Zi,h as Xi,g as Mo,e as er,f as tr,i as ar,j as or,k as nr,l as ir,m as rr,n as sr,_ as lr}from"./TopicSwitcher-2e4ca291-1784132792831.js";import{_ as cr,a as ko}from"./FeatureInfoPanel-8ee1b2b1-1784132792831.js";import{g as Po,a as ur}from"./openApi-50c9b694-1784132792831.js";import{c as dr,F as fr,g as hr,a as mr}from"./featurePanelLayout-9d4ef87e-1784132792831.js";import{g as pr}from"./yakApi-dd638538-1784132792831.js";import{w as ct,f as pa}from"./chartTheme-73e4a943-1784132792831.js";import{b as gr}from"./data-ee410ed3-1784132792831.js";import{h as vr,y as yr}from"./data-ee3975ea-1784132792831.js";import"./index-a1b5e9c0-1784132792831.js";import"./livestockData-36ec0ae2-1784132792831.js";import"./geoserver-c6c88e84-1784132792831.js";class br extends fi{constructor(n,i){super(),this.config=Object.assign({color1:16566615,color2:16777215},i),this.assets={instance:null},this.assets.instance=n.assets.instance,this.sceneGroup=n.sceneGroup,this.gsapObjects=[],this.animateElements={},this.init()}init(){let n=this.config.color1,i=new Ee(1.5,1.5,1),c=new Ee(1,3,1);c.translate(0,1,0);let s=new X({color:n,transparent:!0,fog:!1,side:qe,depthWrite:!1}),f=s.clone();f.map=this.assets.instance.getResource("focusArrows");let p=s.clone();p.map=this.assets.instance.getResource("focusBar");let h=s.clone();h.map=this.assets.instance.getResource("focusBg");let m=s.clone();m.color=new se(this.config.color2),m.map=this.assets.instance.getResource("focusMidQuan");let b=s.clone();b.map=this.assets.instance.getResource("focusMoveBg"),b.blending=me;let C=new J(i,f),S=new J(c,p);S.rotation.x=Math.PI/2;let O=S.clone();O.rotation.y=Math.PI/2;let x=new J(i,h),v=new J(i,m),I=new J(i,b),B=[v,x,C,I,S,O];B.map(R=>{R.renderOrder=99}),this.add(...B);let E=0;I.scale.setScalar(E),this.animateElements={focusMidQuan:v,focusArrows:C,focusMoveBg:I},this.startAnimate()}startAnimate(){let n=Ye.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),i=Ye.to(this.animateElements.focusArrows.rotation,{z:2*Math.PI,duration:5,repeat:-1,ease:"none"}),c=Ye.to(this.animateElements.focusMoveBg.scale,{x:1.5,y:1.5,z:1.5,duration:2.5,repeat:-1,ease:"none"}),s=Ye.to(this.animateElements.focusMoveBg.material,{opacity:0,duration:2.5,repeat:-1,ease:"none"});this.gsapObjects=[n,i,c,s]}pausedAnimate(){this.gsapObjects.map(n=>{n.paused=!0})}destroy(){this.gsapObjects.map(n=>{n.kill()}),hi(this)}}const wr=zi.map(k=>D({},k)),Co=To.map(k=>D({},k)),xr=To.map(k=>{var n,i;return{name:k.name,value:k.value,lng:(n=k.center)==null?void 0:n[0],lat:(i=k.center)==null?void 0:i[1]}}),Sr=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];function ga(k){return k.sort((n,i)=>i.value-n.value),k}function Mr(k){return k?typeof k=="string"?JSON.parse(k):k:null}function va(k){const n=Mr(k);return n!=null&&n.features&&n.features.forEach(i=>{var c;((c=i.geometry)==null?void 0:c.type)==="Polygon"&&(i.geometry.coordinates=[i.geometry.coordinates])}),n}function kr(k,n){var i;try{return(i=k==null?void 0:k.getResource)==null?void 0:i.call(k,n)}catch(c){return null}}function Pr(k,n,i){const c=Number(k);return Number.isFinite(c)?Math.max(n,Math.min(i,c)):n}class Cr extends Ti{constructor(n,i,c={}){var s;super(n,{maxPixelRatio:(s=c.maxPixelRatio)!=null?s:c.showDataOverlays===!1?1.35:void 0,antialias:c.antialias}),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,this.geoProjectionFn=_i().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),this.flyLineCenter=[102.60242339873115,32.83022561372293],this.depth=.5,this.clicked=!1,this.sceneMode=c.sceneMode||"default",this.showDataOverlays=c.showDataOverlays!==!1,this.mapAnimationDone=!1,this.sceneTweens=[],this.sceneTimers=[],this.scene.fog=new mi(1058614,1,50),this.scene.background=new se(1058614),this.camera.instance.position.set(-13.767695123014105,12.990152163077308,39.28228164159694),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.interactionManager=new Ii(this.renderer.instance,this.camera.instance,this.canvas),this.assets=i,this.staticMapData={china:va(kr(this.assets.instance,"china")),mapJson:va(this.assets.instance.getResource("mapJson")),mapStroke:va(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(n){var i;return n&&(this.sceneTweens.push(n),this.scenePaused&&((i=n.pause)==null||i.call(n)),n)}addSceneTimer(n){return n&&this.sceneTimers.push(n),n}init(){this.labelGroup=new fe,this.label3d=new Fi(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new fe,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createParticles(),this.showDataOverlays&&(this.createFlyLine(),this.createFocus(),this.createScatter(),this.createInfoPoint()),this.createStorke();let n=Ye.timeline({onComplete:()=>{}});n.pause(),this.animateTl=n,n.addLabel("focusMap",1.5),n.addLabel("focusMapOpacity",2),n.addLabel("bar",3),n.to(this.camera.instance.position,{duration:2,x:-.17427287762525134,y:13.678992786206543,z:20.688611202093714,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1)}}),n.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),n.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{this.showDataOverlays&&(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!0),this.applySceneMode()}},"focusMap"),n.to(this.focusMapTopMaterial,{duration:1,opacity:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((i,c)=>{let s=i.element.querySelector(".other-label");n.to(s,{duration:1,delay:.1*c,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),n.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),n.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var i,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(i=this.options).onPlayComplete)==null||c.call(i)}},"focusMapOpacity"),(this.allBar||[]).map((i,c)=>{if(i.userData.name==="邛溪镇")return!1;n.to(i.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((i,c)=>{n.to(i,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((i,c)=>{let s=i.element.querySelector(".provinces-label-wrap"),f=i.element.querySelector(".number .value"),p=Number(f.innerText),h={score:0};n.to(s,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),n.to(h,{duration:1,delay:.2*c,score:p,onUpdate:m},"bar");function m(){f.innerText=h.score.toFixed(0)}}),(this.allGuangquan||[]).map((i,c)=>{n.to(i.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),n.to(i.children[1].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let n=new pi(16777215,5);this.scene.add(n);let i=new gi(16777215,5);i.position.set(-30,6,-8),i.castShadow=!0,i.shadow.radius=20,i.shadow.mapSize.width=1024,i.shadow.mapSize.height=1024,this.scene.add(i),this.createPointLight({color:"#1d5e5e",intensity:800,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#1d5e5e",intensity:200,distance:1e4,x:0,y:2,z:5})}createPointLight(n){const i=new vi(1924702,n.intensity,n.distance);i.position.set(n.x,n.y,n.z),this.scene.add(i)}createMap(){let n=new fe,i=new fe;this.focusMapGroup=i;let{china:c,chinaTopLine:s}=this.createChina(),{map:f,mapTop:p,mapLine:h}=this.createProvince();c==null||c.setParent(n),s==null||s.setParent(n),this.createDiffuse(),f.setParent(i),p.setParent(i),h.setParent(i),i.position.set(0,0,-.01),i.scale.set(1,1,0),n.add(i),n.rotation.x=-Math.PI/2,n.position.set(0,.2,0),this.scene.add(n),this.showDataOverlays?this.createBar():(this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[])}createChina(){var h;let n={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},i=this.staticMapData.china;if(!((h=i==null?void 0:i.features)!=null&&h.length))return{china:null,chinaTopLine:null};let c=new fo({color:new se(n.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),s=new yo(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),f=new ho({color:n.lineColor}),p=new fa(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,material:f,renderOrder:3});return p.lineGroup.position.z+=.01,{china:s,chinaTopLine:p}}createProvince(){let n=this.staticMapData.mapJson,[i,c]=this.createProvinceMaterial();this.focusMapTopMaterial=i,this.focusMapSideMaterial=c;let s=new Ei(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,.11),data:n,depth:this.depth,topFaceMaterial:i,sideMaterial:c,renderOrder:9}),f=new mo({color:16777215,transparent:!0,opacity:.5});this.createTerrainSurfaceShader(f),this.defaultMaterial=f,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new se("rgba(115,208,255,1)"),this.defaultLightMaterial.opacity=.8;let p=new yo(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,this.depth+.22),data:n,material:f,renderOrder:2});p.mapGroup.children.map(m=>{m.children.map(b=>{b.type==="Mesh"&&this.eventElement.push(b)})}),this.mapLineMaterial=new ho({color:16777215,opacity:0,transparent:!0,fog:!1});let h=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:n,material:this.mapLineMaterial,renderOrder:3});return h.lineGroup.position.z+=this.depth+.23,{map:s,mapTop:p,mapLine:h}}createProvinceMaterial(){let n=new fo({color:16777215,transparent:!0,opacity:0,fog:!1,side:qe});n.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(1058614)}}),s.vertexShader=s.vertexShader.replace("void main() {",` attribute float alpha; varying vec3 vPosition; varying float vAlpha; @@ -109,4 +109,4 @@ var Qn=Object.defineProperty,Jn=Object.defineProperties;var Zn=Object.getOwnProp - `,new Q(O,-x,n.depth+1.9)),b.setLabelStyle(S,.015,"x"),S.setParent(C),S.visible=!1,S}}emitTownClick(n={},i="region"){var s,f;const c=n.name||n.fullName;c&&((f=(s=this.options)==null?void 0:s.onTownClick)==null||f.call(s,V(D({},n),{name:c,source:i})))}setSceneMode(n="default"){this.sceneMode=n,this.applySceneMode()}setDataOverlaysVisible(n=!0){this.showDataOverlays=!!n,this.applySceneMode()}applySceneMode(){var i,c,s,f;if(!this.showDataOverlays){this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),this.barGroup&&(this.barGroup.visible=!1),(i=this.allProvinceLabel)==null||i.forEach(p=>{p.visible=!1}),(c=this.allGuangquan)==null||c.forEach(p=>{p.visible=!1});return}const n=this.sceneMode==="trade";this.flyLineGroup&&(this.flyLineGroup.visible=n||this.mapAnimationDone),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=n||this.mapAnimationDone),this.flyLineMaterial&&(this.flyLineMaterial.color.set(n?7534280:2781042),this.flyLineMaterial.opacity=n?1:.82),this.flyLineTexture&&this.flyLineTexture.repeat.set(n?.32:.5,n?3:2),this.scatterGroup&&(this.scatterGroup.visible=!n&&this.mapAnimationDone),this.InfoPointGroup&&(this.InfoPointGroup.visible=!n&&this.mapAnimationDone),this.barGroup&&(this.barGroup.visible=!n),(s=this.allProvinceLabel)==null||s.forEach(p=>{p.visible=!n}),(f=this.allGuangquan)==null||f.forEach(p=>{p.visible=!n})}createInfoPointLabelLoop(){var n;this.scenePaused||!((n=this.infoLabelElement)!=null&&n.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((i,c)=>{this.infoPointIndex===c?i.visible=!0:i.visible=!1})},3e3))}createStorke(){const n=this.staticMapData.mapStroke,i=this.assets.instance.getResource("pathLine3");i.wrapS=i.wrapT=he,i.repeat.set(2,1);let c=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,this.depth+.24),data:n,material:new X({color:2868444,map:i,alphaMap:i,fog:!1,transparent:!0,opacity:1,blending:me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{i.offset.x+=.005})}geoProjection(n){return this.geoProjectionFn(n)}updateTownLabelScale(){var h,m,b;const n=this.otherLabel||[],i=(h=this.camera)==null?void 0:h.instance,c=(b=(m=this.camera)==null?void 0:m.controls)==null?void 0:b.target;if(!n.length||!i||!c)return;const s=i.position.distanceTo(c),f=Pr(s*72e-5,.011,.026),p=s>45?"0.76":s<22?"0.94":"1";n.forEach(C=>{var O,x,v;if(((O=C==null?void 0:C.userData)==null?void 0:O.labelType)!=="town-label")return;C.scale.set(f,f,f);const S=(v=(x=C.element)==null?void 0:x.querySelector)==null?void 0:v.call(x,".other-label");S&&(S.style.opacity=p)})}update(){super.update(),this.updateTownLabelScale(),this.interactionManager&&this.interactionManager.update()}pauseScene(){var n,i;this.scenePaused=!0,(i=(n=this.time)==null?void 0:n.pause)==null||i.call(n),this.sceneTweens.forEach(c=>{var s;return(s=c==null?void 0:c.pause)==null?void 0:s.call(c)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var n,i,c;this.scenePaused=!1,(i=(n=this.time)==null?void 0:n.resume)==null||i.call(n),this.sceneTweens.forEach(s=>{var f;return(f=s==null?void 0:s.resume)==null?void 0:f.call(s)}),(c=this.InfoPointGroup)!=null&&c.visible&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){this.pauseScene(),this.sceneTimers.forEach(n=>clearTimeout(n)),this.sceneTimers=[],this.sceneTweens.forEach(n=>{var i;return(i=n==null?void 0:n.kill)==null?void 0:i.call(n)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const Ar={class:"map"},Lr={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0},maxPixelRatio:{type:Number,default:0}},emits:["town-click","play-complete"],setup(k,{expose:n,emit:i}){const c=G(null),s=ti(null),f=k,p=i;let h=!1;Lo(()=>{O()});function m(x){var v,I,B,E;s.value||!c.value||(s.value=new Cr(c.value,x,{showDataOverlays:f.showDataOverlays,maxPixelRatio:f.maxPixelRatio||void 0,onTownClick:R=>p("town-click",R),onPlayComplete:()=>p("play-complete")}),(I=(v=s.value).setSceneMode)==null||I.call(v,f.sceneMode),(E=(B=s.value).setDataOverlaysVisible)==null||E.call(B,f.showDataOverlays),s.value.time.pause())}function b(){return re(this,null,function*(){var x,v,I,B;s.value&&(C(),!(h||s.value.mapAnimationDone)&&(h=!0,(v=(x=s.value.animateTl)==null?void 0:x.timeScale)==null||v.call(x,1),(B=(I=s.value.animateTl)==null?void 0:I.play)==null||B.call(I)))})}function C(){var x,v;s.value&&((v=(x=s.value).resumeScene)==null||v.call(x),s.value.resumeScene||s.value.time.resume())}function S(){var x,v,I,B,E,R;s.value&&((v=(x=s.value.animateTl)==null?void 0:x.pause)==null||v.call(x),(B=(I=s.value).pauseScene)==null||B.call(I),s.value.pauseScene||(R=(E=s.value.time)==null?void 0:E.pause)==null||R.call(E))}function O(){var x,v;(v=(x=s.value)==null?void 0:x.destroy)==null||v.call(x),s.value=null}return n({loadMap:m,play:b,resume:C,pause:S,destroyMap:O,canvasMap:s}),ht(()=>f.sceneMode,x=>{var v,I;(I=(v=s.value)==null?void 0:v.setSceneMode)==null||I.call(v,x)},{immediate:!0}),ht(()=>f.showDataOverlays,x=>{var v,I;(I=(v=s.value)==null?void 0:v.setDataOverlaysVisible)==null||I.call(v,x)}),(x,v)=>(A(),F("div",Ar,[w("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Tr=""+new URL("flyline6-525edf67-balabala-1784132466083.png",import.meta.url).href;class _r{constructor(n={}){this.options=n||{},this.init()}init(){this.instance=new Wi,this.instance.addLoader(Ai,"FileLoader");const n={type:"File",name:"china",path:ua(li)},i=[{type:"File",name:"mapJson",path:ua(ci)},{type:"File",name:"mapStroke",path:ua(ui)},{type:"Texture",name:"rotationBorder1",path:Ui},{type:"Texture",name:"rotationBorder2",path:Ki},{type:"Texture",name:"chinaBlurLine",path:qi},{type:"Texture",name:"ocean",path:Yi},{type:"Texture",name:"side",path:Qi},{type:"Texture",name:"pathLine3",path:Ji}],c=[{type:"Texture",name:"flyline",path:So},{type:"Texture",name:"pathLine",path:So},{type:"Texture",name:"pathLine2",path:Zi},{type:"Texture",name:"huiguang",path:Xi},{type:"Texture",name:"guangquan1",path:Mo},{type:"Texture",name:"guangquan2",path:er},{type:"Texture",name:"flyLineFocus",path:Mo},{type:"Texture",name:"mapFlyline",path:Tr},{type:"Texture",name:"arrow",path:tr},{type:"Texture",name:"point",path:ar},{type:"Texture",name:"focusArrows",path:or},{type:"Texture",name:"focusBar",path:nr},{type:"Texture",name:"focusBg",path:ir},{type:"Texture",name:"focusMidQuan",path:rr},{type:"Texture",name:"focusMoveBg",path:sr}],s=this.options.showDataOverlays===!1?i:[n,...i,...c];this.instance.loadAll(s)}}const Ir={class:"home-dashboard"},Fr={class:"home-bottom-switcher"},Er={class:"home-left"},Or={class:"home-side-stack is-left"},Br={class:"home-right"},Gr={class:"home-side-stack is-right"},Nr=["aria-label","onClick"],Rr={key:0,class:"home-video-monitor"},Hr=["disabled"],Dr=["data-video-index","onClick","onKeydown"],zr={key:0,class:"home-video-loading"},$r={key:1,class:"home-video-error"},Vr=["onClick"],jr={class:"home-video-point-name"},Wr=["disabled"],Ur={key:1,class:"home-forecast-trend-card"},Kr={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},qr=["onClick"],Yr={key:3,class:"home-balance-gauge-grid"},Qr={class:"home-balance-gauge-head"},Jr={class:"home-balance-gauge-ring"},Zr={class:"home-balance-gauge-value"},Xr={class:"home-balance-gauge-name"},es={class:"home-balance-gauge-extra"},ts={class:"home-more-dialog home-video-dialog"},as={class:"home-more-dialog-head"},os={key:0,class:"home-video-modal-grid"},ns=["data-video-index","onClick","onKeydown"],is={key:0,class:"home-video-loading"},rs={key:1,class:"home-video-error"},ss=["onClick"],ls={class:"home-video-point-name"},cs={key:1,class:"home-more-empty"},us={key:2,class:"home-more-pager"},ds=["disabled"],fs=["disabled"],hs={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},ms={class:"home-more-dialog home-balance-dialog"},ps={class:"home-more-dialog-head"},gs={class:"home-balance-modal-grid"},vs={class:"home-balance-modal-title"},ys={class:"home-balance-modal-value"},bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAL1JREFUOE9j/P///38GMgAjSKOMdxRJWp9sXcYA18giJMLw99MHhv9//mA1hJGZhYGZX4Dhz7s3DCgaGVlYGDjVtBi+37rO8P/PbxTNjCysDJyqWgzfb18Dy6FoBKmEKfh17wZcM0iMTUkDrgmkDkMjSJCFnZ3hwbr5KDYqBCUy/Pn5Ey6GVSMzMxPDw01LUDTK+8Uw/P37j0YayXIqWYGDHuTInsQbHeAE8PEDw/+/JCYAUtIcPDpI0QRTCwDhurXXJ/EmUwAAAABJRU5ErkJggg==",ws="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",xs=4,Ao="#ffffff",ut="#ffffff",dt="rgba(246, 253, 255, 0.92)",Ke="rgba(242, 253, 255, 0.9)",Ft="rgba(218, 250, 255, 0.28)",Ss=12e3,Ms=9.35,Fe="home-3d",ft=9,Ws={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(k,{expose:n,emit:i}){const c={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},s=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),f=k,p=i,h=G(null),m=G(null),b=G(null),C=G(null),S=new Map,O=G({}),x=new Map;let v=!1,I=!1,B=null,E=null;const R=new Map,ee=new Map,Et=new Set,Ot=new Map;let Me=null,Qe="",ya=!1,Je=0,te=null,Ze=!1,Bt=!1;const ke=new Map,pe=G(0),ae=G([]),Gt=G(0),ye=G(0),le=G(!1),ce=G(1),Xe=G(!1),oe=G(null),Nt=G(!1),Rt=G("month"),Ht=G(!1),ba=G(!1),U=G(""),_o=`home-video-player-${Math.random().toString(36).slice(2)}`,ge=ii({}),Io=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],wa=vo.sideCardWidth,xa=G(typeof window=="undefined"?1080:window.innerHeight);vo.sideCardGap;const et=_(()=>Li(xa.value)),mt=_(()=>et.value),Fo=mt,Eo=Ni("2028"),Dt=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],pt=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92}],Oo={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},Sa={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},K=G(Fe),ue=G(null),Oe=G(!1),Be=G(!1),de=G(null),Z=_(()=>K.value!==Fe),Bo=_(()=>f.active&&!Z.value),Ma=_(()=>{var d,g,M;const e=K.value,t=Sa[e];if(!t)return null;const a=$i.find(P=>P.key===t.topicKey),o=Fn(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const r=Oo[e],l=t.legendKey?(o.legends||[]).find(P=>P.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(P=>(o.legends||[]).find(y=>y.key===P)).filter(Boolean):[];return t.type==="vector"?V(D({},o),{activeLegend:l||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=pt.find(P=>P.key===e))==null?void 0:d.name)||o.name}图层`,opacity:(g=t.opacity)!=null?g:o.opacity,homePresentationMaxOpacity:(M=t.opacity)!=null?M:.96,showPointLabels:!1,hidePointFeatures:!1}):r?V(D({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:r.opacity,homePresentationMaxOpacity:r.maxOpacity,softMask:!1,homeGlowColor:r.glowColor,homeGlowBlur:r.glowBlur,homeGlowOpacity:r.glowOpacity,sldBody:En(o.layerName,r)}):null}),zt=_(()=>!!de.value),Go=fr,ka=_(()=>dr({point:de.value?Bn(de.value):null,rowCount:ue.value?ra(ue.value):0,loading:Be.value,empty:Oe.value||!ue.value})),No=_(()=>ka.value.height),Ro=_(()=>ka.value.style),Ho=_(()=>{var t;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情",yak:"牦牛识别详情"}[K.value]||`${((t=pt.find(a=>a.key===K.value))==null?void 0:t.name)||"地图"}详情`}),Pa=_(()=>ta(ma.length)),Ge=_(()=>ta(It.length)),Ca=_(()=>Cn(Rt.value)),Aa=_(()=>An(Eo,Ca.value.key)),tt=_(()=>ta(Aa.value.labels.length)),gt=_(()=>gr.filter(t=>t==null?void 0:t.name).map((t,a)=>({key:`home-balance-${t.areaCode||t.key||t.name}`,sourceIndex:a,name:t.name,value:t.overloadRate,unit:"%",status:t.level||"总体可控",extra:`载畜 ${ie(t.livestockCapacity)}头`}))),$t=_(()=>{const e=gt.value,t=3,a=e.length?Math.floor(pe.value/2)*t%e.length:0;return Array.from({length:Math.min(t,e.length)},(o,r)=>e[(a+r)%e.length])}),Do=_(()=>{const e=$t.value.length;return e?pe.value%e:0}),vt={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:co,playUrl:"",hdPlayUrl:"",token:""};function at(e){return(e==null?void 0:e.status)==="直播中"&&!!(e!=null&&e.hdPlayUrl&&(e!=null&&e.token))}const Ne=_(()=>ae.value.map((e,t)=>({key:`home-video-carousel-${e.key||e.title||t}`,index:t,live:e})).filter(e=>at(e.live))),Vt=_(()=>{const e=Ne.value;if(!e.length)return 0;const t=q(ye.value),a=e.findIndex(r=>r.index===t),o=a>=0?a:0;return Xe.value||Ht.value||le.value?o:(Math.floor(pe.value/xs)+o)%e.length}),H=_(()=>{var e,t;return ae.value.length?le.value?q(ye.value):(t=(e=Ne.value[Vt.value])==null?void 0:e.index)!=null?t:0:0}),zo=_(()=>ae.value[H.value]||vt),La=_(()=>an(Ne.value,Vt.value,vt)),$o=_(()=>ae.value.filter(e=>at(e)).length),yt=_(()=>ae.value.map((e,t)=>({index:t,live:e})).sort((e,t)=>Number(at(t.live))-Number(at(e.live))||e.index-t.index)),bt=_(()=>Math.max(1,Math.ceil(yt.value.length/ft))),Ta=_(()=>{const e=(ce.value-1)*ft;return yt.value.slice(e,e+ft).map(t=>({key:`home-video-modal-${t.live.key||t.live.title}-${t.index}`,index:t.index,live:t.live}))}),Vo=_(()=>vr.map(e=>e.key==="today-outflow"?V(D({},e),{value:Gt.value}):e)),jo=_(()=>{const e=Mn();return e.length?{key:"home-pasture-productivity",title:"草地生产力",rows:e,option:Pn(e,"生产力"),height:et.value}:null}),Wo=_(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:mt.value,option:oa({key:"yak-stock-distribution",rows:yr},"牦牛存栏",{showTrendLine:!0})})),Uo=_(()=>[aa(Le("grassland","grassland-town"),"草地面积"),aa(Le("wetland","wetland-town-area"),"湿地面积"),aa(Le("grassland","grassland-type-proportion"),"草原类别"),jo.value].filter(Boolean).map((e,t)=>kn(e,`forest-grass-wet-${t}`))),Ko=_(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:Fo.value,live:zo.value},Wo.value,{key:"yak-structure",title:"畜群结构",height:mt.value,option:qo.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:mt.value,max:100,rows:$t.value}]),qo=_(()=>ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:Io,tooltip:pa(e=>`${e.name}
    占比:${e.percent}%
    估算数量:${ie(e.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(e){const t=ma.find(a=>a.name===e);return t?`${e} ${we(t.count)}头`:e},textStyle:{color:dt,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:ut,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:ma.map((e,t)=>({name:e.name,value:e.count,selected:t===Pa.value}))}]}));_(()=>ct({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:V(D({},pa()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(e){const t=It[e[0].dataIndex];return`${t.label}
    预测存栏:${ie(t.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:It.map(e=>e.shortLabel),axisLabel:{color:Ke,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(e){return Math.max(0,Math.floor(e.min/1e4)*1e4)},axisLabel:{color:Ke,fontSize:10,margin:4,formatter:e=>Za(e,1)},splitLine:{lineStyle:{color:Ft,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:It.map((e,t)=>({value:e.stock,itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:t===Ge.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t===Ge.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t===Ge.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t===Ge.value?16:8,shadowColor:t===Ge.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:ut,fontSize:10,formatter:({value:e})=>Za(e)}}]})),_(()=>{const e=Ca.value,t=Aa.value,a=_n(t),o=Ln(a.length,e.key);return ct({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:V(D({},pa()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(r){var M,P,y;const l=Array.isArray(r)?r:[r],u=l.find(T=>T.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(y=(P=u==null?void 0:u.dataIndex)!=null?P:(M=l[0])==null?void 0:M.dataIndex)!=null?y:0];if(!d)return"";const g=d.close-d.open;return[`${d.label}|${e.unit}度预测`,`预测存栏:${ie(d.close)}头`,`较上期:${In(g)}头`,`繁殖补充:${ie(d.birth)}头`,`出栏扣减:${ie(d.outflow)}头`].join("
    ")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:dt,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t.labels,axisLabel:{color:Ke,fontSize:10,interval:o},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:Ke,fontSize:10,formatter:we},splitLine:{lineStyle:{color:Ft,type:"dashed"}}},{type:"value",axisLabel:{color:dt,fontSize:10,formatter:we},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:Tn(a.length,e.key),data:a,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:a.map((r,l)=>({value:r.close,symbolSize:l===tt.value?7:3,itemStyle:{color:l===tt.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},Ja("繁殖补充",t.births,"#8bf7ff",1,!1,tt.value),Ja("出栏扣减",t.outflow,"#48cfff",1,!1,tt.value)]})}),ai(()=>{na(),window.addEventListener("resize",na),window.addEventListener("keydown",eo),document.addEventListener("pointerdown",no,!0),document.addEventListener("click",Wa,!0),Ra(),jt()}),Lo(()=>{var e,t,a,o;v=!0,window.removeEventListener("resize",na),window.removeEventListener("keydown",eo),document.removeEventListener("pointerdown",no,!0),document.removeEventListener("click",Wa,!0),qa(),be(),Ut(),qt(),x.clear(),(t=(e=h.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=m.value)==null?void 0:a.destroyMap)==null||o.call(a),Zo()}),ht(H,()=>{if(!le.value){if(!Ht.value&&!ba.value&&!R.size){U.value="";return}be({resetError:!0})}}),ht(K,e=>{var t,a;if(ve(),e===Fe){(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),W(()=>{wt(),Pe()});return}Fa(),W(()=>{var o,r;(r=(o=h.value)==null?void 0:o.resume)==null||r.call(o)})}),ht(()=>f.active,e=>{var t,a;e?(jt(),Xo(),Ga(),ya||Oa()):(I=!1,(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),Fa(),Ut(),qt(),be({resetError:!0}),St(),Mt())});function jt(){I=!1,p("loading-progress",{progress:0}),W(()=>{var e,t,a,o;if(Z.value){(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)?Re():(o=(a=h.value)==null?void 0:a.loadMap)==null||o.call(a);return}wt()})}function wt(){if(!(v||!f.active||Z.value)){if(Ea()){Pe(),Re();return}if(Bt){Ia();return}Ze||(Ze=!0,te=new _r({showDataOverlays:!1}),te.instance.on("onProgress",Yo),te.instance.on("onLoad",_a),te.instance.on("onError",Qo),te.instance.loaded&&_a())}}function Yo(e,t,a){if(v||Z.value)return;const o=Math.max(1,Number(a)||1),r=Math.max(0,Number(t)||0);p("loading-progress",{progress:Math.min(98,Math.floor(r/o*92))})}function _a(){v||(Ze=!1,Bt=!0,p("loading-progress",{progress:96}),W(Ia))}function Qo(e){Ze=!1,console.warn("[home] 3D map assets load failed",e),Re()}function Ia(){var e,t,a,o;v||!f.active||Z.value||!te||((t=(e=m.value)==null?void 0:e.loadMap)==null||t.call(e,te),Pe(),(o=(a=m.value)==null?void 0:a.play)==null||o.call(a),Re())}function Pe(){var a,o,r,l,u,d,g,M;const e=m.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=Ea();(r=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||r.call(o),(l=t==null?void 0:t.resize)==null||l.call(t),(d=(u=t==null?void 0:t.label3d)==null?void 0:u.resize)==null||d.call(u),(M=(g=t==null?void 0:t.label3d)==null?void 0:g.update)==null||M.call(g)}function Fa(){var e,t;(t=(e=m.value)==null?void 0:e.pause)==null||t.call(e)}function Ea(){var t;const e=(t=m.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Jo(){Z.value||Re()}function Zo(){var e,t;(t=(e=te==null?void 0:te.instance)==null?void 0:e.destroy)==null||t.call(e),te=null,Ze=!1,Bt=!1}function Re(){v||I||(I=!0,p("loading-progress",{progress:100}),p("map-ready"),Oa())}function Wt(e={}){var t,a,o,r,l,u,d,g,M;if(!Z.value){Pe();return}if((a=(t=h.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(r=(o=h.value)==null?void 0:o.resetView)==null||r.call(o),(l=h.value)!=null&&l.resetView||(d=(u=h.value)==null?void 0:u.refreshView)==null||d.call(u);return}(M=(g=h.value)==null?void 0:g.refreshView)==null||M.call(g)}function Xo(){K.value!==Fe&&!Sa[K.value]&&(K.value=Fe);const e=()=>{if(!(v||!f.active)){if(Z.value){Wt({reset:!0});return}wt(),Pe()}};W(()=>{e(),window.setTimeout(e,180)})}function en(){var e,t;if(ve(),!Z.value){Pe();return}if((t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){Wt({reset:!0});return}jt(),W(()=>{var a,o;(o=(a=h.value)==null?void 0:a.resume)==null||o.call(a)})}function tn(){if(ve(),K.value===Fe){W(()=>{wt(),Pe()});return}K.value=Fe}n({refreshMapView:Wt,resetMap:en,showDefaultThreeMap:tn});function Oa(){Ut();const e=()=>{Me=null,Qe="",!(v||!f.active)&&(ya=!0,Sn(),rn(),on(),f.active&&Ga())};if(typeof window.requestIdleCallback=="function"){Qe="idle",Me=window.requestIdleCallback(e,{timeout:1800});return}Qe="timeout",Me=window.setTimeout(e,650)}function Ut(){Me&&(Qe==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Me):window.clearTimeout(Me),Me=null,Qe="")}function Kt(e,t){e&&(t?x.set(e,t):x.delete(e))}function Ba(e,t){const a=Number(t==null?void 0:t.index);Number.isFinite(a)&&(e?S.set(a,e):S.delete(a)),t!=null&&t.isActive&&(b.value=e||null)}function an(e=[],t=0,a=vt){const o=Array.isArray(e)?e:[];if(!o.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const r=(t+o.length)%o.length,l=o[r],u=(l==null?void 0:l.live)||l||a,d=Number.isFinite(Number(l==null?void 0:l.index))?Number(l.index):r;return[{key:`${u.key||u.title||"video"}-${d}`,index:d,live:u,isActive:!0}]}function Ga(){!f.active||v||(qt(),B=window.setInterval(Na,2600),E=window.setTimeout(Na,800))}function qt(){B&&(window.clearInterval(B),B=null),E&&(window.clearTimeout(E),E=null)}function Na(){v||!f.active||(E=null,pe.value+=1,bn(),wn(),xn())}function Ra(){p("module-stats",{moduleKey:"home",items:Vo.value})}function on(){return re(this,null,function*(){var t,a;const e=nn(new Date);try{const o=yield pr({year:Number(e.slice(0,4)),startDate:e,endDate:e}),r=(o==null?void 0:o.metrics)||{},l=Number((a=(t=r.headCount)!=null?t:r.head_count)!=null?a:0);Gt.value=Number.isFinite(l)?l:0}catch(o){Gt.value=0}v||Ra()})}function nn(e){const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${o}`}function rn(){return re(this,null,function*(){try{const e=yield ri({includeOffline:!0,includeHidden:!0});if(v)return;ae.value=e,ye.value=0,ce.value=1,Xe.value=!1,U.value=e.some(t=>at(t))?"":"暂无在线可播放摄像头"}catch(e){if(v)return;ae.value=[],U.value="监控接口暂不可用",window.setTimeout(()=>{v||U.value==="监控接口暂不可用"&&(U.value="")},2400)}})}function q(e){const t=ae.value.length;return t?((Number(e)||0)+t)%t:0}function ne(e){return String(q(e))}function Ha(e){const t=ne(e);return ge[t]||(ge[t]={playing:!1,loading:!1,ready:!1,error:""}),ge[t]}function ot(e){return ge[ne(e)]||{}}function nt(e){return`${_o}-${ne(e)}`}function Yt(e){return!!ot(e).playing}function xt(e){return!!ot(e).loading}function He(e){const t=ot(e).error;return t||(q(e)===H.value?U.value:"")}function Da(e){const t=ot(e);return!!(t.playing||t.loading)}function Ce(){const e=Object.values(ge);Ht.value=e.some(t=>t.playing),ba.value=e.some(t=>t.loading)}function za(e,t=!0,a=H.value){const o=(e==null?void 0:e.image)||co;return Yt(a)&&t?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${o})`}}function sn(){Va(-1)}function ln(){Va(1)}function cn(){const e=H.value;be({resetError:!0}),ye.value=e,Xe.value=!0,pe.value=0;const t=yt.value.findIndex(a=>a.index===e);ce.value=Math.floor(Math.max(0,t)/ft)+1,le.value=!0,W(()=>Jt())}function St(){le.value&&(be({resetError:!0}),le.value=!1)}function $a(e){var o,r;const t=Math.max(1,Math.min(bt.value,Number(e)||1));if(t===ce.value)return;be({resetError:!0}),ce.value=t;const a=(t-1)*ft;ye.value=(r=(o=yt.value[a])==null?void 0:o.index)!=null?r:0,W(()=>Jt())}function un(){Nt.value=!0}function Mt(){Nt.value=!1}function Va(e){var r,l;const t=Ne.value,a=t.length;if(!a)return;be({resetError:!0});const o=Vt.value;ye.value=(l=(r=t[(o+e+a)%a])==null?void 0:r.index)!=null?l:0,Xe.value=!0,pe.value=0}function Ae(e){if(!ae.value.length){pn();return}const a=q(e),o=ne(a),r=ot(a);if(ye.value=a,Xe.value=!0,pe.value=0,Et.has(o)||R.has(o)||(r.playing||r.loading)&&!r.error){ze(a);return}Et.add(o),W(()=>re(this,null,function*(){try{yield Ka(a,{stopOthers:!le.value})}finally{Et.delete(o)}}))}function ja(e,t){fn(t==null?void 0:t.target)||Ae(e)}function Wa(e){var r,l,u,d,g,M,P,y,T,L;const t=((l=(r=e==null?void 0:e.target)==null?void 0:r.closest)==null?void 0:l.call(r,'[id$="-webExpend-content"]'))||((u=e==null?void 0:e.composedPath)==null?void 0:u.call(e).find(N=>String((N==null?void 0:N.id)||"").endsWith("-webExpend-content")));if(!t)return;const a=Number((M=(g=(d=t.closest)==null?void 0:d.call(t,"[data-video-index]"))==null?void 0:g.dataset)==null?void 0:M.videoIndex),o=(P=oe.value)!=null?P:Number.isFinite(a)?a:H.value;(y=e.preventDefault)==null||y.call(e),(T=e.stopPropagation)==null||T.call(e),(L=e.stopImmediatePropagation)==null||L.call(e),dn(o)}function dn(e){return re(this,null,function*(){var r,l;const t=q(e);if(oe.value===t){kt();return}oe.value!==null&&kt();const a=document.getElementById(`${nt(t)}-wrap`);if(!a)return;oe.value=t,yield W();const o=(l=(r=C.value)==null?void 0:r.querySelector)==null?void 0:l.call(r,".home-video-web-player-slot");if(!o){oe.value=null;return}o.appendChild(a),ze(t),De(t)})}function kt(e={}){var r;const{restore:t=!0}=e,a=oe.value;if(a===null)return;const o=document.getElementById(`${nt(a)}-wrap`);if(t&&o){const l=Pt(a)||b.value,u=(r=l==null?void 0:l.querySelector)==null?void 0:r.call(l,".home-video-player-host");u&&u.appendChild(o)}oe.value=null,t&&W(()=>{ze(a),De(a)})}function fn(e){var t;return!!((t=e==null?void 0:e.closest)!=null&&t.call(e,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function hn(e){const t=Math.max(0,Number((e==null?void 0:e.value)||0)),a=Math.max(5,...gt.value.map(o=>Math.max(0,Number(o.value||0))));return Math.max(6,Math.min(100,t/a*100))}function mn(e){const t=Number(e==null?void 0:e.value),a=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return Number.isFinite(t)?t>20||/严重|重度|高超载/.test(a)?"#8bf7ff":t>10||/中度|预警/.test(a)?"#48cfff":t>5||/轻度/.test(a)?"#8bf7ff":t<=0||/总体可控|合理|正常|达标|无超载/.test(a)?"#24f6c4":"#30dcff":"#30dcff"}function Ua(e){return{"--balance-color":mn(e),"--balance-progress":`${hn(e)}%`}}function pn(){return re(this,null,function*(){return Ka(H.value,{stopOthers:!le.value})})}function Ka(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,r=q(e),l=ae.value[r]||vt,u=ne(r);let d=Ha(r);if((l==null?void 0:l.status)!=="直播中"||!(l!=null&&l.hdPlayUrl)||!(l!=null&&l.token)){d.error=(l==null?void 0:l.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",d.loading=!1,d.playing=!1,d.ready=!1,r===H.value&&(U.value=d.error),Ce();return}if(R.has(u)||(d.playing||d.loading)&&!d.error)return;ye.value=r,pe.value=0,o?be({resetError:!0}):(R.has(u)||d.loading)&&it(r,{resetError:!0}),d=Ha(r),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,r===H.value&&(U.value=""),Ce(),yield W();const g=(ee.get(u)||0)+1;ee.set(u,g);let M=null;vn(r,g);try{const P=Pt(r)||b.value,y=nt(r);if(!gn(P,y))throw new Error("视频容器未就绪");const{width:T,height:L}=Ya(P,340,92);if(M=new si.EZUIKitPlayer({id:y,accessToken:l.token,url:l.hdPlayUrl,audio:0,width:T,height:L,themeData:yn(),handleError(N){g===ee.get(u)&&(rt(r),console.warn("EZUIKit player error",N),Zt(M),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,ee.set(u,g+1),R.delete(u),Xt(r),r===H.value&&(U.value=d.error),Ce())},handleSuccess(){g===ee.get(u)&&(rt(r),d.error="",d.ready=!0,d.loading=!1,r===H.value&&(U.value=""),ze(r),De(r),Qt(y),Ce())},fullScreenChangeCallBack(){}}),g!==ee.get(u)){Zt(M),Xt(r);return}R.set(u,M),d.playing=!0,Ce(),W(()=>{ze(r),De(r),Qt(y)})}catch(P){rt(r),console.warn("EZUIKit init error",P),d.error="视频加载失败",r===H.value&&(U.value=d.error),it(r,{resetError:!1})}})}function Qt(e){if(typeof document=="undefined"||!e)return;const t=document.getElementById(`${e}-ez-iframe-footer-container`),a=document.getElementById(`${e}-audioControls`);t&&Object.assign(t.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),a&&Object.assign(a.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function De(e=H.value,t=0){if(typeof window=="undefined")return;const a=q(e),o=ne(a),r=ke.get(o);t===0&&r&&window.cancelAnimationFrame(r);const l=window.requestAnimationFrame(()=>{ze(a),t<8?De(a,t+1):ke.delete(o)});ke.set(o,l)}function qa(e){if(typeof window!="undefined"){if(e!==void 0){const t=ne(e),a=ke.get(t);a&&window.cancelAnimationFrame(a),ke.delete(t);return}ke.forEach(t=>window.cancelAnimationFrame(t)),ke.clear()}}function Jt(){Array.from(R.keys()).forEach(e=>{const t=Number(e);Number.isFinite(t)&&De(t)})}function Ya(e,t=1,a=1){var u;if(!e)return{width:Math.max(1,Math.floor(t||1)),height:Math.max(1,Math.floor(a||1))};const o=(u=e.getBoundingClientRect)==null?void 0:u.call(e),r=e.clientWidth||e.offsetWidth||(o==null?void 0:o.width)||t,l=e.clientHeight||e.offsetHeight||(o==null?void 0:o.height)||a;return{width:Math.max(1,Math.floor(r||1)),height:Math.max(1,Math.floor(l||1))}}function Pt(e=H.value){if(typeof document=="undefined")return null;const t=q(e),a=le.value?".home-video-modal-item":".home-video-card .home-video-screen",o=document.querySelector(`${a}[data-video-index="${t}"]`);if(o)return o;const r=S.get(t);return r!=null&&r.isConnected?r:null}function gn(e,t){var r;const a=(r=e==null?void 0:e.querySelector)==null?void 0:r.call(e,".home-video-player-host");if(!a)return null;a.replaceChildren();const o=document.createElement("div");return o.id=t,o.className="home-video-player",a.appendChild(o),o}function ze(e=H.value){var $e,Ve;if(typeof document=="undefined")return;const t=q(e),a=ne(t),o=nt(t),r=oe.value===t&&C.value?C.value:Pt(t)||b.value,l=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=l||u;if(!r||!d)return;const{width:g,height:M}=Ya(r),P=R.get(a);try{l&&u&&P&&typeof P.reSize=="function"?P.reSize(g,M):l&&u&&P&&typeof P.autoResize=="function"&&P.autoResize()}catch(j){console.warn("EZUIKit resize failed",j)}const y={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${g}px`,height:`${M}px`};Object.assign(d.style,y,{display:"block",verticalAlign:"top"}),l&&u&&Object.assign(u.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const T=document.getElementById(`EZUIKitPlayer-${o}`);T&&(T.setAttribute("width",String(g)),T.setAttribute("height",String(M)));const L=document.getElementById(`${o}-player`),N=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),Te=[d,u,L,N==null?void 0:N.parentElement,N,$==null?void 0:$.parentElement,$,...Array.from((u==null?void 0:u.children)||[]),...Array.from((($e=d==null?void 0:d.querySelectorAll)==null?void 0:$e.call(d,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((Ve=u==null?void 0:u.querySelectorAll)==null?void 0:Ve.call(u,".play-window, video, canvas, iframe, object, embed"))||[]),T].filter(Boolean);Array.from(new Set(Te)).forEach(j=>{var st,Lt;(st=j.setAttribute)==null||st.call(j,"width",String(g)),(Lt=j.setAttribute)==null||Lt.call(j,"height",String(M)),Object.assign(j.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),Qt(o)}function be(e={}){Array.from(R.keys()).forEach(t=>{it(Number(t),e)}),Object.keys(ge).forEach(t=>{R.has(t)||it(Number(t),e)}),Ce()}function it(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,r=q(e),l=ne(r);qa(r),rt(r);const u=R.get(l);R.delete(l),ee.set(l,(ee.get(l)||0)+1),u&&Zt(u),a&&Xt(r);const d=ge[l];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[l]),r===H.value&&o&&(U.value=""),Ce()}function vn(e,t){const a=q(e),o=ne(a);rt(a);const r=window.setTimeout(()=>{const l=ge[o];t!==ee.get(o)||!(l!=null&&l.loading)||(l.error="视频加载超时",a===H.value&&(U.value=l.error),it(a,{resetError:!1}))},Ss);Ot.set(o,r)}function rt(e){const t=ne(e),a=Ot.get(t);a&&(window.clearTimeout(a),Ot.delete(t))}function Zt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("EZUIKit stop error",t)}}function Xt(e=H.value){var d;if(typeof document=="undefined")return;const t=q(e),a=nt(t),o=document.getElementById(`${a}-wrap`),r=document.getElementById(a),l=Pt(t)||b.value,u=(d=l==null?void 0:l.querySelector)==null?void 0:d.call(l,".home-video-player-host");oe.value===t&&kt({restore:!1}),u&&u.replaceChildren(),o!=null&&o.isConnected&&o.remove(),r!=null&&r.isConnected&&r.remove()}function yn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function bn(){const e=x.get("yak-structure");ea(e,"畜群结构",Pa.value)}function wn(){const e=x.get("yak-three-year-forecast");ea(e,"预测存栏",Ge.value)}function xn(){const e=x.get("yak-forecast-trend");ea(e,"预测存栏",tt.value)}function ea(e,t,a){const o=typeof(e==null?void 0:e.dispatchAction)=="function"?e:e==null?void 0:e.chart;!o||a<0||(o.dispatchAction({type:"downplay",seriesName:t}),o.dispatchAction({type:"hideTip"}),o.dispatchAction({type:"highlight",seriesName:t,dataIndex:a}),o.dispatchAction({type:"showTip",seriesName:t,dataIndex:a}))}function ta(e){return e?pe.value%e:0}function Sn(){return re(this,null,function*(){const[e,t]=yield Promise.all([Po("grassland","grassland-distribution"),Po("wetland","wetland-distribution")]);v||(O.value={grassland:e,wetland:t})})}function Le(e,t){const a=O.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(r=>(r==null?void 0:r.key)===t)}function aa(e,t){return e?V(D({},e),{title:t}):null}function Mn(){var M,P,y,T;const e=((M=Le("grassland","grassland-town"))==null?void 0:M.rows)||[],t=((P=Le("wetland","wetland-town-area"))==null?void 0:P.rows)||[],a=((y=Le("grassland","grassland-productivity-town"))==null?void 0:y.rows)||[],o=((T=Le("wetland","wetland-mu-yield"))==null?void 0:T.rows)||[],r=Ct(e),l=Ct(t),u=Ct(a),d=Ct(o);return[...new Set([...e,...t,...a,...o].map(L=>L==null?void 0:L.name).filter(Boolean))].map((L,N)=>{const $=r.get(L)||0,Te=l.get(L)||0,At=u.get(L)||0,$e=d.get(L)||0;let Ve=0,j=0;$>0&&At>0&&(Ve+=$*At,j+=$),Te>0&&$e>0&&(Ve+=Te*$e,j+=Te);const st=[At,$e].filter(sa=>sa>0),Lt=j>0?Ve/j:st.reduce((sa,Yn)=>sa+Yn,0)/Math.max(st.length,1);return{key:`home-pasture-productivity-${L}`,name:L,value:Number(Lt.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:N}}).filter(L=>L.value>0)}function Ct(e=[]){return new Map(e.map(t=>[t.name,Number(t.value)||0]))}function kn(e,t){const a=String((e==null?void 0:e.key)||"");return a.includes("grassland-town")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title)}):a.includes("wetland-town-area")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title,{variant:"water"})}):V(D({},e),{key:`home-${t}-${e.key}`,height:et.value})}function oa(e,t,a={}){var P;const o=(e.rows||[]).filter(y=>Number.isFinite(Number(y.value))).slice(0,10),r=((P=o.find(y=>y.unit))==null?void 0:P.unit)||"万亩",l=o.map(y=>Number(y.value)||0),u=Math.max(...l,1),d=Math.ceil(u*1.14),g=a.showTrendLine===!0,M=a.variant==="water";return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${r}`,left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(y){var $;const T=Array.isArray(y)?y:[y],L=T.find(Te=>Te.seriesName===t)||T[0],N=o[($=L==null?void 0:L.dataIndex)!=null?$:0];return N?`${N.name}
    ${t}:${ie(N.value)}${N.unit||r}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(y=>y.name),axisLabel:{interval:0,hideOverlap:!1,color:Ao,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:Xa},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:o.map(y=>y.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:d,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Ft,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,type:"bar",barWidth:M?10:6,stack:"b",z:3,data:o.map(y=>Number(y.value)||0),label:{show:!0,position:"top",distance:9,color:ut,fontSize:10,fontWeight:700,formatter:({value:y})=>we(y)},itemStyle:{borderRadius:M?[7,7,3,3]:2,color:new je(0,0,0,1,[...M?[{offset:0,color:"#a8fbff"},{offset:.42,color:"#31dcff"},{offset:1,color:"#2b8fff"}]:[{offset:0,color:"#19FFC6"},{offset:1,color:"#33AAFF"}]])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:M?"rgba(49, 220, 255, 0.18)":"rgba(25, 255, 198, 0.16)"}}},...g?[{name:`${t}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:l,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:ut,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],...M?[{name:"水柱顶",type:"pictorialBar",symbol:"circle",symbolSize:[18,7],symbolOffset:[0,-2],symbolPosition:"end",data:l,itemStyle:{color:"#a8fbff",opacity:.92,shadowBlur:3,shadowColor:"rgba(168, 251, 255, 0.18)"},tooltip:{show:!1},z:4}]:[{type:"custom",renderItem(y,T){const L=T.value(0),N=T.value(1),$=T.coord([L,N]);return{type:"image",style:{x:$[0]-4.5,y:$[1]-9,width:10,height:10,image:bs},silent:!0}},data:o.map((y,T)=>[T,Number(y.value)||0]),tooltip:{show:!1},z:4}],{type:"bar",barWidth:M?20:30,xAxisIndex:1,barGap:"-220%",data:o.map(()=>d),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:M?"rgba(58, 164, 215, 0.75)":"rgba(122, 140, 153, 0.6)",opacity:M?.12:.075},tooltip:{show:!1},z:0}]})}function Pn(e=[],t="数值"){var d;const a=e.filter(g=>Number.isFinite(Number(g.value))).slice(0,10),o=((d=a.find(g=>g.unit))==null?void 0:d.unit)||"",r=a.map(g=>Number(g.value)||0),l=Math.max(...r,1),u=Math.ceil(l*1.12);return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:o?`单位:${o}`:"",left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(g){var T;const P=(Array.isArray(g)?g:[g])[0],y=a[(T=P==null?void 0:P.dataIndex)!=null?T:0];return y?`${y.name}
    ${t}:${ie(y.value)}${y.unit||o}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:a.map(g=>g.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Ao,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:Xa}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Ft,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,data:r,type:"line",smooth:!0,symbol:ws,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:ut,fontSize:10,fontWeight:700,formatter:({value:g})=>we(g)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new je(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new je(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function Qa(e){const t=String((e==null?void 0:e.key)||"");return t.includes("grassland-town")||t.includes("wetland-town-area")}function Ja(e,t,a,o=0,r=!1,l=-1){return{name:e,type:"line",yAxisIndex:o,smooth:!0,symbolSize:5,data:t.map((u,d)=>({value:u,symbolSize:d===l?10:5,itemStyle:{color:d===l?"#ffffff":a},label:{show:d===l,position:"top",color:a,fontSize:10,formatter:({value:g})=>we(g)}})),lineStyle:{width:2.4,color:a},itemStyle:{color:a},areaStyle:r?{color:new je(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function Cn(e){return Dt.find(t=>t.key===e)||Dt[2]}function An(e,t="month"){if(t==="month")return Ri(e);const a=Hi(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),r=t==="week"?7:1,l=Math.ceil(o/r)+1,u=Array.from({length:l},(P,y)=>{const T=Math.min(o,y*r);return Di(T)}),d=u.map((P,y)=>{const L=Math.min(o,y*r)/o,N=Math.sin(y/(t==="week"?1.8:8.5))*Math.sin(Math.PI*L)*Math.min(360,e.months*18);return Math.round(xo+(e.stock-xo)*L+N)}),g=u.map((P,y)=>Math.round(e.births*(Math.min(o,y*r)/o))),M=u.map((P,y)=>Math.round(e.outflow*(Math.min(o,y*r)/o)));return{labels:u,stock:d,births:g,outflow:M}}function Ln(e,t){return t==="day"?Math.max(10,Math.ceil(e/6)):t==="week"?Math.max(2,Math.ceil(e/7)):e>24?4:e>14?2:1}function Tn(e,t){return t==="day"?e>700?2:e>360?3:4:t==="week"?e>110?4:6:e>24?7:10}function _n(e){return(e.labels||[]).map((t,a)=>{var P,y,T,L,N,$;const o=Number(((P=e.stock)==null?void 0:P[Math.max(a-1,0)])||0),r=Number(((y=e.stock)==null?void 0:y[a])||o),l=Math.max(0,Number(((T=e.births)==null?void 0:T[a])||0)-Number(((L=e.births)==null?void 0:L[Math.max(a-1,0)])||0)),u=Math.max(0,Number(((N=e.outflow)==null?void 0:N[a])||0)-Number((($=e.outflow)==null?void 0:$[Math.max(a-1,0)])||0)),d=Math.max(120,Math.round((l+u)*.18)),g=Math.max(o,r)+Math.max(d,Math.round(l*.32)),M=Math.max(0,Math.min(o,r)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:r,low:M,high:g,birth:l,outflow:u,value:[o,r,M,g]}})}function ie(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t)?0:2}):"--"}function In(e){const t=Number(e);return Number.isFinite(t)?`${t>0?"+":""}${ie(t)}`:"--"}function we(e){const t=Number(e);return Number.isFinite(t)?Math.abs(t)>=1e4?`${(t/1e4).toFixed(Math.abs(t)>=1e5?0:1)}万`:Math.round(t).toLocaleString("zh-CN"):"--"}function Za(e,t=2){const a=Number(e);return Number.isFinite(a)?Math.abs(a)>=1e4?`${(a/1e4).toFixed(t)}万`:Math.round(a).toLocaleString("zh-CN"):"--"}function Xa(e){return String(e||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function Fn(e){if(!e)return null;const t=Vi(e.topicKey,e.layerKey);if(t)return t;const a=ji(e.topicKey);return a.find(o=>o.key===e.layerKey)||a[0]||null}function En(e,t){const a=Number.isFinite(Number(t.fillOpacity))?Number(t.fillOpacity):.46,o=t.stroke||t.strokeColor||"#E5FCFF",r=Number.isFinite(Number(t.strokeOpacity))?Number(t.strokeOpacity):.86,l=Number.isFinite(Number(t.strokeWidth))?Number(t.strokeWidth):1.1;return`${e}${t.fill}${a}${o}${r}${l}round`}function On(e){pt.some(t=>t.key===e)&&(K.value=e)}function eo(e){if(e.key==="Escape"){if(oe.value!==null){kt();return}St(),Mt()}}function na(){xa.value=typeof window=="undefined"?1080:window.innerHeight,Jt()}function Bn(e){const t=document.querySelector(".home-dashboard"),a=t==null?void 0:t.getBoundingClientRect();if(!(a!=null&&a.width)||!(a!=null&&a.height))return e;const o=Number(e==null?void 0:e.x),r=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(r)?{x:960,y:540}:o>=0&&o<=1920&&r>=0&&r<=1080&&(o>a.width||r>a.height)?{x:o,y:r}:{x:(o-a.left)/a.width*1920,y:(r-a.top)/a.height*1080}}function ia(e,t){var a,o,r,l;return((o=(a=h.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((l=(r=h.value)==null?void 0:r.getVectorFeatureScreen)==null?void 0:l.call(r,e))||t}function Gn(){if(!zt.value||!ue.value)return;const e=ia(ue.value,de.value);if(!e)return;const t=de.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(de.value=e)}function ra(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(o=>to(o,t[o])).length}function to(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!s.has(String(e||"").toLowerCase())}function ao(e={}){const t=String(K.value||"").toLowerCase(),a=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return t==="woodland"||a.includes("woodland")||a.includes("t_woodland")?"woodland":t==="wetland"||a.includes("wetland")||a.includes("shidi")?"wetland":t==="grassland"||a.includes("grassland")||a.includes("caodi")?"grassland":""}function Nn(e={}){const t=oo(e.lng),a=oo(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function oo(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Rn(){return re(this,arguments,function*(e={}){var d,g,M,P,y,T;const t=Number((d=e==null?void 0:e.lngLat)==null?void 0:d.lng),a=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lat),o=Ma.value,r=ao(o);if(!Number.isFinite(t)||!Number.isFinite(a)||!r){ve();return}const l=++Je,u=e.screen||{x:960,y:540};de.value=null,ue.value=null,Oe.value=!1,Be.value=!0,(P=(M=h.value)==null?void 0:M.clearSelectedFeature)==null||P.call(M);try{const L=yield Hn(o,{lng:t,lat:a},r);if(l!==Je||v)return;if(!L){ve();return}ue.value=L,Oe.value=!1,(T=(y=h.value)==null?void 0:y.highlightFeature)==null||T.call(y,L,{highlightTone:"v21"}),de.value=ia(L,u)}catch(L){l===Je&&ve()}finally{l===Je&&(Be.value=!1)}})}function Hn(o,r){return re(this,arguments,function*(e,t,a=ao(e)){const l=Nn(t);if(!l)return null;let u=null;a==="grassland"?u=yield hr({wkt:l}):a==="wetland"?u=yield mr({wkt:l}):a==="woodland"&&(u=yield ur(l));const d=Dn(u,a);if(!$n(d))return null;const g=jn(d,e,t,a);return ra(g)>0?g:null})}function Dn(e,t){var o,r,l,u;const a=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,(o=e==null?void 0:e.data)==null?void 0:o[t],(r=e==null?void 0:e.data)==null?void 0:r.grassland,(l=e==null?void 0:e.data)==null?void 0:l.wetland,(u=e==null?void 0:e.data)==null?void 0:u.woodland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const d of a){const g=zn(d);if(g)return g}return null}function zn(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function $n(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(Vn)?!0:Object.keys(e).some(t=>to(t,e[t]))}function Vn(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function jn(e,t,a,o){const r=Un(e),l=Wn(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${o}-${a.lng}-${a.lat}`,properties:r,feature:{type:"Feature",properties:r,geometry:l},geometry:l,layer:t,lngLat:a}}function Wn(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Un(e={}){const t=D({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(o=>{const r=o==null?void 0:o.value;if(r==null||r==="")return;const l=c[String((o==null?void 0:o.title)||"").trim()],u=String((o==null?void 0:o.field)||"").trim();[u,Kn(u),l].filter(Boolean).forEach(g=>{(t[g]===void 0||t[g]===null||t[g]==="")&&(t[g]=r)})}),t}function Kn(e){const t=String(e||"").trim();return t?t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function qn(e){var a,o;const t=(o=(a=e==null?void 0:e.feature)!=null?a:e)!=null?o:null;if(!t||ra(t)<=0){ve();return}ue.value=t,Oe.value=!1,e!=null&&e.screen&&(de.value=ia(t,e.screen))}function ve(){var e,t;Je+=1,ue.value=null,Oe.value=!1,Be.value=!1,de.value=null,(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function no(e){if(!zt.value)return;const t=document.querySelector(".home-map-feature-info"),a=document.querySelector(".home-dashboard .cesium-map"),o=e.target;t&&o instanceof Node&&t.contains(o)||a&&o instanceof Node&&a.contains(o)||ve()}return(e,t)=>(A(),F("div",Ir,[so(Tt(Lr,{ref_key:"threeMapSceneRef",ref:m,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,"max-pixel-ratio":1.35,onPlayComplete:Jo},null,512),[[lo,Bo.value]]),Z.value?so((A(),xe(di,{key:0,ref_key:"mapSceneRef",ref:h,class:"home-map-scene home-remote-map-scene",active:f.active&&Z.value,"active-layer":Ma.value,"admin-boundary-line-scale":2.4,"initial-zoom":Ms,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!1,"hide-town-label-stats":"",onReady:Re,onFeatureLoading:t[0]||(t[0]=a=>Be.value=a),onFeatureInfo:qn,onMapClick:Rn,onViewChange:Gn},null,8,["active","active-layer"])),[[lo,Z.value]]):Y("",!0),t[12]||(t[12]=w("div",{class:"home-map-scrim"},null,-1)),w("div",Fr,[Tt(lr,{"model-value":K.value,topics:pt,"onUpdate:modelValue":On},null,8,["model-value"])]),zt.value?(A(),F("div",{key:1,class:"home-map-feature-info",style:lt(Ro.value)},[Tt(cr,{title:Ho.value,feature:ue.value,empty:Oe.value,loading:Be.value,width:We(Go),height:No.value,closable:"",onClose:ve},null,8,["title","feature","empty","loading","width","height"])],4)):Y("",!0),w("div",Er,[w("div",Or,[(A(!0),F(_e,null,Ie(Uo.value,a=>(A(),xe(uo,{key:a.key,class:"home-card left-card",title:a.title,width:We(wa),height:a.height},{default:la(()=>[a.option?(A(),xe(We(ca),{key:0,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-town-column-chart",option:a.option,autoresize:!0},null,8,["option"])):(A(),xe(ko,{key:1,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),w("div",Br,[w("div",Gr,[(A(!0),F(_e,null,Ie(Ko.value,a=>(A(),xe(uo,{key:a.key,class:Ue(["home-card","right-card",{"home-video-card":a.type==="video"}]),title:a.title,width:We(wa),height:a.height},{extra:la(()=>[a.type==="video"||a.key==="home-town-balance-gauge"?(A(),F("button",{key:0,class:"home-card-more",type:"button","aria-label":a.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:o=>a.type==="video"?cn():un()},[...t[3]||(t[3]=[oi(" 更多 ",-1),w("span",{"aria-hidden":"true"},"›",-1)])],8,Nr)):Y("",!0)]),default:la(()=>[a.type==="video"?(A(),F("div",Rr,[w("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ne.value.length<=1,onClick:sn},"‹",8,Hr),w("div",{class:Ue(["home-video-grid",{"is-single":La.value.length<=1}])},[(A(!0),F(_e,null,Ie(La.value,o=>(A(),F("div",{key:o.key,ref_for:!0,ref:r=>Ba(r,o),"data-video-index":o.index,class:Ue(["home-video-screen",{"is-active":o.isActive,"is-playing":Yt(o.index),"is-loading":xt(o.index)}]),style:lt(za(o.live,o.isActive,o.index)),role:"button",tabindex:"0",onClick:r=>ja(o.index,r),onKeydown:[_t(Se(r=>Ae(o.index),["prevent"]),["enter"]),_t(Se(r=>Ae(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=w("div",{class:"home-video-player-host"},null,-1)),xt(o.index)?(A(),F("div",zr,"加载中")):Y("",!0),He(o.index)?(A(),F("div",$r,z(He(o.index)),1)):Y("",!0),o.live.hdPlayUrl&&(!Da(o.index)||He(o.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(r=>Ae(o.index),["stop"])},null,8,Vr)):Y("",!0),w("div",jr,z(o.live.title),1)],46,Dr))),128))],2),w("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:Ne.value.length<=1,onClick:ln},"›",8,Wr)])):a.key==="yak-forecast-trend"?(A(),F("div",Ur,[w("div",Kr,[(A(),F(_e,null,Ie(Dt,o=>w("button",{key:o.key,type:"button",class:Ue({active:o.key===Rt.value}),onClick:r=>Rt.value=o.key},z(o.label),11,qr)),64))]),Tt(We(ca),{ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-forecast-kline-chart",option:a.option,autoresize:!0},null,8,["option"])])):a.option?(A(),xe(We(ca),{key:2,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart",option:a.option,autoresize:!0},null,8,["option"])):a.key==="home-town-balance-gauge"?(A(),F("div",Yr,[(A(!0),F(_e,null,Ie($t.value,(o,r)=>(A(),F("div",{key:o.key,class:Ue(["home-balance-gauge-card",{"is-active":r===Do.value}]),style:lt(Ua(o))},[w("div",Qr,[w("strong",null,z(o.status),1)]),w("div",Jr,[w("div",Zr,[w("strong",null,z(ie(o.value)),1),t[5]||(t[5]=w("em",null,"%",-1))])]),w("div",Xr,z(o.name),1),w("div",es,z(o.extra),1)],6))),128))])):(A(),xe(ko,{key:4,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),le.value?(A(),F("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Se(St,["self"])},[w("section",ts,[w("header",as,[w("div",null,[t[6]||(t[6]=w("h2",null,"基地监控",-1)),w("p",null,"共 "+z(ae.value.length)+" 路,在线 "+z($o.value)+" 路",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:St},"×")]),Ta.value.length?(A(),F("div",os,[(A(!0),F(_e,null,Ie(Ta.value,a=>(A(),F("div",{key:a.key,ref_for:!0,ref:o=>Ba(o,a),"data-video-index":a.index,class:Ue(["home-video-modal-item home-video-screen",{"is-active":a.index===H.value,"is-playing":Yt(a.index),"is-loading":xt(a.index),"is-offline":a.live.status!=="直播中"}]),style:lt(za(a.live,a.index===H.value,a.index)),role:"button",tabindex:"0",onClick:o=>ja(a.index,o),onKeydown:[_t(Se(o=>Ae(a.index),["prevent"]),["enter"]),_t(Se(o=>Ae(a.index),["prevent"]),["space"])]},[t[7]||(t[7]=w("div",{class:"home-video-player-host"},null,-1)),xt(a.index)?(A(),F("div",is,"加载中")):Y("",!0),He(a.index)?(A(),F("div",rs,z(He(a.index)),1)):Y("",!0),a.live.hdPlayUrl&&(!Da(a.index)||He(a.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(o=>Ae(a.index),["stop"])},null,8,ss)):Y("",!0),w("span",ls,z(a.live.title),1)],46,ns))),128))])):(A(),F("div",cs,"暂无监控数据")),bt.value>1?(A(),F("footer",us,[w("button",{type:"button",disabled:ce.value<=1,onClick:t[1]||(t[1]=a=>$a(ce.value-1))},"上一页",8,ds),w("span",null,z(ce.value)+" / "+z(bt.value),1),w("button",{type:"button",disabled:ce.value>=bt.value,onClick:t[2]||(t[2]=a=>$a(ce.value+1))},"下一页",8,fs)])):Y("",!0)])])):Y("",!0),(A(),xe(ni,{to:"body"},[oe.value!==null?(A(),F("div",hs,[w("div",{ref_key:"homeVideoWebStageRef",ref:C,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t[8]||(t[8]=[w("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):Y("",!0)])),Nt.value?(A(),F("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Se(Mt,["self"])},[w("section",ms,[w("header",ps,[w("div",null,[t[9]||(t[9]=w("h2",null,"全县乡镇草畜平衡",-1)),w("p",null,"全部 "+z(gt.value.length)+" 个乡镇,超载率沿用草畜平衡结果库口径",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:Mt},"×")]),w("div",gs,[(A(!0),F(_e,null,Ie(gt.value,a=>(A(),F("article",{key:a.key,class:"home-balance-modal-item",style:lt(Ua(a))},[w("div",vs,[w("strong",null,z(a.name),1),w("span",null,z(a.status),1)]),w("div",ys,[w("strong",null,z(ie(a.value)),1),t[10]||(t[10]=w("em",null,"%",-1))]),t[11]||(t[11]=w("div",{class:"home-balance-modal-track"},[w("i")],-1)),w("p",null,z(a.extra),1)],4))),128))])])])):Y("",!0)]))}};export{Ws as default}; + `,new Q(O,-x,n.depth+1.9)),b.setLabelStyle(S,.015,"x"),S.setParent(C),S.visible=!1,S}}emitTownClick(n={},i="region"){var s,f;const c=n.name||n.fullName;c&&((f=(s=this.options)==null?void 0:s.onTownClick)==null||f.call(s,V(D({},n),{name:c,source:i})))}setSceneMode(n="default"){this.sceneMode=n,this.applySceneMode()}setDataOverlaysVisible(n=!0){this.showDataOverlays=!!n,this.applySceneMode()}applySceneMode(){var i,c,s,f;if(!this.showDataOverlays){this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),this.barGroup&&(this.barGroup.visible=!1),(i=this.allProvinceLabel)==null||i.forEach(p=>{p.visible=!1}),(c=this.allGuangquan)==null||c.forEach(p=>{p.visible=!1});return}const n=this.sceneMode==="trade";this.flyLineGroup&&(this.flyLineGroup.visible=n||this.mapAnimationDone),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=n||this.mapAnimationDone),this.flyLineMaterial&&(this.flyLineMaterial.color.set(n?7534280:2781042),this.flyLineMaterial.opacity=n?1:.82),this.flyLineTexture&&this.flyLineTexture.repeat.set(n?.32:.5,n?3:2),this.scatterGroup&&(this.scatterGroup.visible=!n&&this.mapAnimationDone),this.InfoPointGroup&&(this.InfoPointGroup.visible=!n&&this.mapAnimationDone),this.barGroup&&(this.barGroup.visible=!n),(s=this.allProvinceLabel)==null||s.forEach(p=>{p.visible=!n}),(f=this.allGuangquan)==null||f.forEach(p=>{p.visible=!n})}createInfoPointLabelLoop(){var n;this.scenePaused||!((n=this.infoLabelElement)!=null&&n.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((i,c)=>{this.infoPointIndex===c?i.visible=!0:i.visible=!1})},3e3))}createStorke(){const n=this.staticMapData.mapStroke,i=this.assets.instance.getResource("pathLine3");i.wrapS=i.wrapT=he,i.repeat.set(2,1);let c=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,this.depth+.24),data:n,material:new X({color:2868444,map:i,alphaMap:i,fog:!1,transparent:!0,opacity:1,blending:me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{i.offset.x+=.005})}geoProjection(n){return this.geoProjectionFn(n)}updateTownLabelScale(){var h,m,b;const n=this.otherLabel||[],i=(h=this.camera)==null?void 0:h.instance,c=(b=(m=this.camera)==null?void 0:m.controls)==null?void 0:b.target;if(!n.length||!i||!c)return;const s=i.position.distanceTo(c),f=Pr(s*72e-5,.011,.026),p=s>45?"0.76":s<22?"0.94":"1";n.forEach(C=>{var O,x,v;if(((O=C==null?void 0:C.userData)==null?void 0:O.labelType)!=="town-label")return;C.scale.set(f,f,f);const S=(v=(x=C.element)==null?void 0:x.querySelector)==null?void 0:v.call(x,".other-label");S&&(S.style.opacity=p)})}update(){super.update(),this.updateTownLabelScale(),this.interactionManager&&this.interactionManager.update()}pauseScene(){var n,i;this.scenePaused=!0,(i=(n=this.time)==null?void 0:n.pause)==null||i.call(n),this.sceneTweens.forEach(c=>{var s;return(s=c==null?void 0:c.pause)==null?void 0:s.call(c)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var n,i,c;this.scenePaused=!1,(i=(n=this.time)==null?void 0:n.resume)==null||i.call(n),this.sceneTweens.forEach(s=>{var f;return(f=s==null?void 0:s.resume)==null?void 0:f.call(s)}),(c=this.InfoPointGroup)!=null&&c.visible&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){this.pauseScene(),this.sceneTimers.forEach(n=>clearTimeout(n)),this.sceneTimers=[],this.sceneTweens.forEach(n=>{var i;return(i=n==null?void 0:n.kill)==null?void 0:i.call(n)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const Ar={class:"map"},Lr={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0},maxPixelRatio:{type:Number,default:0}},emits:["town-click","play-complete"],setup(k,{expose:n,emit:i}){const c=G(null),s=ti(null),f=k,p=i;let h=!1;Lo(()=>{O()});function m(x){var v,I,B,E;s.value||!c.value||(s.value=new Cr(c.value,x,{showDataOverlays:f.showDataOverlays,maxPixelRatio:f.maxPixelRatio||void 0,onTownClick:R=>p("town-click",R),onPlayComplete:()=>p("play-complete")}),(I=(v=s.value).setSceneMode)==null||I.call(v,f.sceneMode),(E=(B=s.value).setDataOverlaysVisible)==null||E.call(B,f.showDataOverlays),s.value.time.pause())}function b(){return re(this,null,function*(){var x,v,I,B;s.value&&(C(),!(h||s.value.mapAnimationDone)&&(h=!0,(v=(x=s.value.animateTl)==null?void 0:x.timeScale)==null||v.call(x,1),(B=(I=s.value.animateTl)==null?void 0:I.play)==null||B.call(I)))})}function C(){var x,v;s.value&&((v=(x=s.value).resumeScene)==null||v.call(x),s.value.resumeScene||s.value.time.resume())}function S(){var x,v,I,B,E,R;s.value&&((v=(x=s.value.animateTl)==null?void 0:x.pause)==null||v.call(x),(B=(I=s.value).pauseScene)==null||B.call(I),s.value.pauseScene||(R=(E=s.value.time)==null?void 0:E.pause)==null||R.call(E))}function O(){var x,v;(v=(x=s.value)==null?void 0:x.destroy)==null||v.call(x),s.value=null}return n({loadMap:m,play:b,resume:C,pause:S,destroyMap:O,canvasMap:s}),ht(()=>f.sceneMode,x=>{var v,I;(I=(v=s.value)==null?void 0:v.setSceneMode)==null||I.call(v,x)},{immediate:!0}),ht(()=>f.showDataOverlays,x=>{var v,I;(I=(v=s.value)==null?void 0:v.setDataOverlaysVisible)==null||I.call(v,x)}),(x,v)=>(A(),F("div",Ar,[w("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Tr=""+new URL("flyline6-525edf67-balabala-1784132792831.png",import.meta.url).href;class _r{constructor(n={}){this.options=n||{},this.init()}init(){this.instance=new Wi,this.instance.addLoader(Ai,"FileLoader");const n={type:"File",name:"china",path:ua(li)},i=[{type:"File",name:"mapJson",path:ua(ci)},{type:"File",name:"mapStroke",path:ua(ui)},{type:"Texture",name:"rotationBorder1",path:Ui},{type:"Texture",name:"rotationBorder2",path:Ki},{type:"Texture",name:"chinaBlurLine",path:qi},{type:"Texture",name:"ocean",path:Yi},{type:"Texture",name:"side",path:Qi},{type:"Texture",name:"pathLine3",path:Ji}],c=[{type:"Texture",name:"flyline",path:So},{type:"Texture",name:"pathLine",path:So},{type:"Texture",name:"pathLine2",path:Zi},{type:"Texture",name:"huiguang",path:Xi},{type:"Texture",name:"guangquan1",path:Mo},{type:"Texture",name:"guangquan2",path:er},{type:"Texture",name:"flyLineFocus",path:Mo},{type:"Texture",name:"mapFlyline",path:Tr},{type:"Texture",name:"arrow",path:tr},{type:"Texture",name:"point",path:ar},{type:"Texture",name:"focusArrows",path:or},{type:"Texture",name:"focusBar",path:nr},{type:"Texture",name:"focusBg",path:ir},{type:"Texture",name:"focusMidQuan",path:rr},{type:"Texture",name:"focusMoveBg",path:sr}],s=this.options.showDataOverlays===!1?i:[n,...i,...c];this.instance.loadAll(s)}}const Ir={class:"home-dashboard"},Fr={class:"home-bottom-switcher"},Er={class:"home-left"},Or={class:"home-side-stack is-left"},Br={class:"home-right"},Gr={class:"home-side-stack is-right"},Nr=["aria-label","onClick"],Rr={key:0,class:"home-video-monitor"},Hr=["disabled"],Dr=["data-video-index","onClick","onKeydown"],zr={key:0,class:"home-video-loading"},$r={key:1,class:"home-video-error"},Vr=["onClick"],jr={class:"home-video-point-name"},Wr=["disabled"],Ur={key:1,class:"home-forecast-trend-card"},Kr={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},qr=["onClick"],Yr={key:3,class:"home-balance-gauge-grid"},Qr={class:"home-balance-gauge-head"},Jr={class:"home-balance-gauge-ring"},Zr={class:"home-balance-gauge-value"},Xr={class:"home-balance-gauge-name"},es={class:"home-balance-gauge-extra"},ts={class:"home-more-dialog home-video-dialog"},as={class:"home-more-dialog-head"},os={key:0,class:"home-video-modal-grid"},ns=["data-video-index","onClick","onKeydown"],is={key:0,class:"home-video-loading"},rs={key:1,class:"home-video-error"},ss=["onClick"],ls={class:"home-video-point-name"},cs={key:1,class:"home-more-empty"},us={key:2,class:"home-more-pager"},ds=["disabled"],fs=["disabled"],hs={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},ms={class:"home-more-dialog home-balance-dialog"},ps={class:"home-more-dialog-head"},gs={class:"home-balance-modal-grid"},vs={class:"home-balance-modal-title"},ys={class:"home-balance-modal-value"},bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAL1JREFUOE9j/P///38GMgAjSKOMdxRJWp9sXcYA18giJMLw99MHhv9//mA1hJGZhYGZX4Dhz7s3DCgaGVlYGDjVtBi+37rO8P/PbxTNjCysDJyqWgzfb18Dy6FoBKmEKfh17wZcM0iMTUkDrgmkDkMjSJCFnZ3hwbr5KDYqBCUy/Pn5Ey6GVSMzMxPDw01LUDTK+8Uw/P37j0YayXIqWYGDHuTInsQbHeAE8PEDw/+/JCYAUtIcPDpI0QRTCwDhurXXJ/EmUwAAAABJRU5ErkJggg==",ws="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",xs=4,Ao="#ffffff",ut="#ffffff",dt="rgba(246, 253, 255, 0.92)",Ke="rgba(242, 253, 255, 0.9)",Ft="rgba(218, 250, 255, 0.28)",Ss=12e3,Ms=9.35,Fe="home-3d",ft=9,Ws={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(k,{expose:n,emit:i}){const c={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},s=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),f=k,p=i,h=G(null),m=G(null),b=G(null),C=G(null),S=new Map,O=G({}),x=new Map;let v=!1,I=!1,B=null,E=null;const R=new Map,ee=new Map,Et=new Set,Ot=new Map;let Me=null,Qe="",ya=!1,Je=0,te=null,Ze=!1,Bt=!1;const ke=new Map,pe=G(0),ae=G([]),Gt=G(0),ye=G(0),le=G(!1),ce=G(1),Xe=G(!1),oe=G(null),Nt=G(!1),Rt=G("month"),Ht=G(!1),ba=G(!1),U=G(""),_o=`home-video-player-${Math.random().toString(36).slice(2)}`,ge=ii({}),Io=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],wa=vo.sideCardWidth,xa=G(typeof window=="undefined"?1080:window.innerHeight);vo.sideCardGap;const et=_(()=>Li(xa.value)),mt=_(()=>et.value),Fo=mt,Eo=Ni("2028"),Dt=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],pt=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92}],Oo={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},Sa={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},K=G(Fe),ue=G(null),Oe=G(!1),Be=G(!1),de=G(null),Z=_(()=>K.value!==Fe),Bo=_(()=>f.active&&!Z.value),Ma=_(()=>{var d,g,M;const e=K.value,t=Sa[e];if(!t)return null;const a=$i.find(P=>P.key===t.topicKey),o=Fn(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const r=Oo[e],l=t.legendKey?(o.legends||[]).find(P=>P.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(P=>(o.legends||[]).find(y=>y.key===P)).filter(Boolean):[];return t.type==="vector"?V(D({},o),{activeLegend:l||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=pt.find(P=>P.key===e))==null?void 0:d.name)||o.name}图层`,opacity:(g=t.opacity)!=null?g:o.opacity,homePresentationMaxOpacity:(M=t.opacity)!=null?M:.96,showPointLabels:!1,hidePointFeatures:!1}):r?V(D({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:r.opacity,homePresentationMaxOpacity:r.maxOpacity,softMask:!1,homeGlowColor:r.glowColor,homeGlowBlur:r.glowBlur,homeGlowOpacity:r.glowOpacity,sldBody:En(o.layerName,r)}):null}),zt=_(()=>!!de.value),Go=fr,ka=_(()=>dr({point:de.value?Bn(de.value):null,rowCount:ue.value?ra(ue.value):0,loading:Be.value,empty:Oe.value||!ue.value})),No=_(()=>ka.value.height),Ro=_(()=>ka.value.style),Ho=_(()=>{var t;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情",yak:"牦牛识别详情"}[K.value]||`${((t=pt.find(a=>a.key===K.value))==null?void 0:t.name)||"地图"}详情`}),Pa=_(()=>ta(ma.length)),Ge=_(()=>ta(It.length)),Ca=_(()=>Cn(Rt.value)),Aa=_(()=>An(Eo,Ca.value.key)),tt=_(()=>ta(Aa.value.labels.length)),gt=_(()=>gr.filter(t=>t==null?void 0:t.name).map((t,a)=>({key:`home-balance-${t.areaCode||t.key||t.name}`,sourceIndex:a,name:t.name,value:t.overloadRate,unit:"%",status:t.level||"总体可控",extra:`载畜 ${ie(t.livestockCapacity)}头`}))),$t=_(()=>{const e=gt.value,t=3,a=e.length?Math.floor(pe.value/2)*t%e.length:0;return Array.from({length:Math.min(t,e.length)},(o,r)=>e[(a+r)%e.length])}),Do=_(()=>{const e=$t.value.length;return e?pe.value%e:0}),vt={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:co,playUrl:"",hdPlayUrl:"",token:""};function at(e){return(e==null?void 0:e.status)==="直播中"&&!!(e!=null&&e.hdPlayUrl&&(e!=null&&e.token))}const Ne=_(()=>ae.value.map((e,t)=>({key:`home-video-carousel-${e.key||e.title||t}`,index:t,live:e})).filter(e=>at(e.live))),Vt=_(()=>{const e=Ne.value;if(!e.length)return 0;const t=q(ye.value),a=e.findIndex(r=>r.index===t),o=a>=0?a:0;return Xe.value||Ht.value||le.value?o:(Math.floor(pe.value/xs)+o)%e.length}),H=_(()=>{var e,t;return ae.value.length?le.value?q(ye.value):(t=(e=Ne.value[Vt.value])==null?void 0:e.index)!=null?t:0:0}),zo=_(()=>ae.value[H.value]||vt),La=_(()=>an(Ne.value,Vt.value,vt)),$o=_(()=>ae.value.filter(e=>at(e)).length),yt=_(()=>ae.value.map((e,t)=>({index:t,live:e})).sort((e,t)=>Number(at(t.live))-Number(at(e.live))||e.index-t.index)),bt=_(()=>Math.max(1,Math.ceil(yt.value.length/ft))),Ta=_(()=>{const e=(ce.value-1)*ft;return yt.value.slice(e,e+ft).map(t=>({key:`home-video-modal-${t.live.key||t.live.title}-${t.index}`,index:t.index,live:t.live}))}),Vo=_(()=>vr.map(e=>e.key==="today-outflow"?V(D({},e),{value:Gt.value}):e)),jo=_(()=>{const e=Mn();return e.length?{key:"home-pasture-productivity",title:"草地生产力",rows:e,option:Pn(e,"生产力"),height:et.value}:null}),Wo=_(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:mt.value,option:oa({key:"yak-stock-distribution",rows:yr},"牦牛存栏",{showTrendLine:!0})})),Uo=_(()=>[aa(Le("grassland","grassland-town"),"草地面积"),aa(Le("wetland","wetland-town-area"),"湿地面积"),aa(Le("grassland","grassland-type-proportion"),"草原类别"),jo.value].filter(Boolean).map((e,t)=>kn(e,`forest-grass-wet-${t}`))),Ko=_(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:Fo.value,live:zo.value},Wo.value,{key:"yak-structure",title:"畜群结构",height:mt.value,option:qo.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:mt.value,max:100,rows:$t.value}]),qo=_(()=>ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:Io,tooltip:pa(e=>`${e.name}
    占比:${e.percent}%
    估算数量:${ie(e.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(e){const t=ma.find(a=>a.name===e);return t?`${e} ${we(t.count)}头`:e},textStyle:{color:dt,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:ut,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:ma.map((e,t)=>({name:e.name,value:e.count,selected:t===Pa.value}))}]}));_(()=>ct({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:V(D({},pa()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(e){const t=It[e[0].dataIndex];return`${t.label}
    预测存栏:${ie(t.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:It.map(e=>e.shortLabel),axisLabel:{color:Ke,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(e){return Math.max(0,Math.floor(e.min/1e4)*1e4)},axisLabel:{color:Ke,fontSize:10,margin:4,formatter:e=>Za(e,1)},splitLine:{lineStyle:{color:Ft,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:It.map((e,t)=>({value:e.stock,itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:t===Ge.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t===Ge.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t===Ge.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t===Ge.value?16:8,shadowColor:t===Ge.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:ut,fontSize:10,formatter:({value:e})=>Za(e)}}]})),_(()=>{const e=Ca.value,t=Aa.value,a=_n(t),o=Ln(a.length,e.key);return ct({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:V(D({},pa()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(r){var M,P,y;const l=Array.isArray(r)?r:[r],u=l.find(T=>T.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(y=(P=u==null?void 0:u.dataIndex)!=null?P:(M=l[0])==null?void 0:M.dataIndex)!=null?y:0];if(!d)return"";const g=d.close-d.open;return[`${d.label}|${e.unit}度预测`,`预测存栏:${ie(d.close)}头`,`较上期:${In(g)}头`,`繁殖补充:${ie(d.birth)}头`,`出栏扣减:${ie(d.outflow)}头`].join("
    ")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:dt,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t.labels,axisLabel:{color:Ke,fontSize:10,interval:o},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:Ke,fontSize:10,formatter:we},splitLine:{lineStyle:{color:Ft,type:"dashed"}}},{type:"value",axisLabel:{color:dt,fontSize:10,formatter:we},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:Tn(a.length,e.key),data:a,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:a.map((r,l)=>({value:r.close,symbolSize:l===tt.value?7:3,itemStyle:{color:l===tt.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},Ja("繁殖补充",t.births,"#8bf7ff",1,!1,tt.value),Ja("出栏扣减",t.outflow,"#48cfff",1,!1,tt.value)]})}),ai(()=>{na(),window.addEventListener("resize",na),window.addEventListener("keydown",eo),document.addEventListener("pointerdown",no,!0),document.addEventListener("click",Wa,!0),Ra(),jt()}),Lo(()=>{var e,t,a,o;v=!0,window.removeEventListener("resize",na),window.removeEventListener("keydown",eo),document.removeEventListener("pointerdown",no,!0),document.removeEventListener("click",Wa,!0),qa(),be(),Ut(),qt(),x.clear(),(t=(e=h.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=m.value)==null?void 0:a.destroyMap)==null||o.call(a),Zo()}),ht(H,()=>{if(!le.value){if(!Ht.value&&!ba.value&&!R.size){U.value="";return}be({resetError:!0})}}),ht(K,e=>{var t,a;if(ve(),e===Fe){(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),W(()=>{wt(),Pe()});return}Fa(),W(()=>{var o,r;(r=(o=h.value)==null?void 0:o.resume)==null||r.call(o)})}),ht(()=>f.active,e=>{var t,a;e?(jt(),Xo(),Ga(),ya||Oa()):(I=!1,(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),Fa(),Ut(),qt(),be({resetError:!0}),St(),Mt())});function jt(){I=!1,p("loading-progress",{progress:0}),W(()=>{var e,t,a,o;if(Z.value){(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)?Re():(o=(a=h.value)==null?void 0:a.loadMap)==null||o.call(a);return}wt()})}function wt(){if(!(v||!f.active||Z.value)){if(Ea()){Pe(),Re();return}if(Bt){Ia();return}Ze||(Ze=!0,te=new _r({showDataOverlays:!1}),te.instance.on("onProgress",Yo),te.instance.on("onLoad",_a),te.instance.on("onError",Qo),te.instance.loaded&&_a())}}function Yo(e,t,a){if(v||Z.value)return;const o=Math.max(1,Number(a)||1),r=Math.max(0,Number(t)||0);p("loading-progress",{progress:Math.min(98,Math.floor(r/o*92))})}function _a(){v||(Ze=!1,Bt=!0,p("loading-progress",{progress:96}),W(Ia))}function Qo(e){Ze=!1,console.warn("[home] 3D map assets load failed",e),Re()}function Ia(){var e,t,a,o;v||!f.active||Z.value||!te||((t=(e=m.value)==null?void 0:e.loadMap)==null||t.call(e,te),Pe(),(o=(a=m.value)==null?void 0:a.play)==null||o.call(a),Re())}function Pe(){var a,o,r,l,u,d,g,M;const e=m.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=Ea();(r=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||r.call(o),(l=t==null?void 0:t.resize)==null||l.call(t),(d=(u=t==null?void 0:t.label3d)==null?void 0:u.resize)==null||d.call(u),(M=(g=t==null?void 0:t.label3d)==null?void 0:g.update)==null||M.call(g)}function Fa(){var e,t;(t=(e=m.value)==null?void 0:e.pause)==null||t.call(e)}function Ea(){var t;const e=(t=m.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Jo(){Z.value||Re()}function Zo(){var e,t;(t=(e=te==null?void 0:te.instance)==null?void 0:e.destroy)==null||t.call(e),te=null,Ze=!1,Bt=!1}function Re(){v||I||(I=!0,p("loading-progress",{progress:100}),p("map-ready"),Oa())}function Wt(e={}){var t,a,o,r,l,u,d,g,M;if(!Z.value){Pe();return}if((a=(t=h.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(r=(o=h.value)==null?void 0:o.resetView)==null||r.call(o),(l=h.value)!=null&&l.resetView||(d=(u=h.value)==null?void 0:u.refreshView)==null||d.call(u);return}(M=(g=h.value)==null?void 0:g.refreshView)==null||M.call(g)}function Xo(){K.value!==Fe&&!Sa[K.value]&&(K.value=Fe);const e=()=>{if(!(v||!f.active)){if(Z.value){Wt({reset:!0});return}wt(),Pe()}};W(()=>{e(),window.setTimeout(e,180)})}function en(){var e,t;if(ve(),!Z.value){Pe();return}if((t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){Wt({reset:!0});return}jt(),W(()=>{var a,o;(o=(a=h.value)==null?void 0:a.resume)==null||o.call(a)})}function tn(){if(ve(),K.value===Fe){W(()=>{wt(),Pe()});return}K.value=Fe}n({refreshMapView:Wt,resetMap:en,showDefaultThreeMap:tn});function Oa(){Ut();const e=()=>{Me=null,Qe="",!(v||!f.active)&&(ya=!0,Sn(),rn(),on(),f.active&&Ga())};if(typeof window.requestIdleCallback=="function"){Qe="idle",Me=window.requestIdleCallback(e,{timeout:1800});return}Qe="timeout",Me=window.setTimeout(e,650)}function Ut(){Me&&(Qe==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Me):window.clearTimeout(Me),Me=null,Qe="")}function Kt(e,t){e&&(t?x.set(e,t):x.delete(e))}function Ba(e,t){const a=Number(t==null?void 0:t.index);Number.isFinite(a)&&(e?S.set(a,e):S.delete(a)),t!=null&&t.isActive&&(b.value=e||null)}function an(e=[],t=0,a=vt){const o=Array.isArray(e)?e:[];if(!o.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const r=(t+o.length)%o.length,l=o[r],u=(l==null?void 0:l.live)||l||a,d=Number.isFinite(Number(l==null?void 0:l.index))?Number(l.index):r;return[{key:`${u.key||u.title||"video"}-${d}`,index:d,live:u,isActive:!0}]}function Ga(){!f.active||v||(qt(),B=window.setInterval(Na,2600),E=window.setTimeout(Na,800))}function qt(){B&&(window.clearInterval(B),B=null),E&&(window.clearTimeout(E),E=null)}function Na(){v||!f.active||(E=null,pe.value+=1,bn(),wn(),xn())}function Ra(){p("module-stats",{moduleKey:"home",items:Vo.value})}function on(){return re(this,null,function*(){var t,a;const e=nn(new Date);try{const o=yield pr({year:Number(e.slice(0,4)),startDate:e,endDate:e}),r=(o==null?void 0:o.metrics)||{},l=Number((a=(t=r.headCount)!=null?t:r.head_count)!=null?a:0);Gt.value=Number.isFinite(l)?l:0}catch(o){Gt.value=0}v||Ra()})}function nn(e){const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${o}`}function rn(){return re(this,null,function*(){try{const e=yield ri({includeOffline:!0,includeHidden:!0});if(v)return;ae.value=e,ye.value=0,ce.value=1,Xe.value=!1,U.value=e.some(t=>at(t))?"":"暂无在线可播放摄像头"}catch(e){if(v)return;ae.value=[],U.value="监控接口暂不可用",window.setTimeout(()=>{v||U.value==="监控接口暂不可用"&&(U.value="")},2400)}})}function q(e){const t=ae.value.length;return t?((Number(e)||0)+t)%t:0}function ne(e){return String(q(e))}function Ha(e){const t=ne(e);return ge[t]||(ge[t]={playing:!1,loading:!1,ready:!1,error:""}),ge[t]}function ot(e){return ge[ne(e)]||{}}function nt(e){return`${_o}-${ne(e)}`}function Yt(e){return!!ot(e).playing}function xt(e){return!!ot(e).loading}function He(e){const t=ot(e).error;return t||(q(e)===H.value?U.value:"")}function Da(e){const t=ot(e);return!!(t.playing||t.loading)}function Ce(){const e=Object.values(ge);Ht.value=e.some(t=>t.playing),ba.value=e.some(t=>t.loading)}function za(e,t=!0,a=H.value){const o=(e==null?void 0:e.image)||co;return Yt(a)&&t?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${o})`}}function sn(){Va(-1)}function ln(){Va(1)}function cn(){const e=H.value;be({resetError:!0}),ye.value=e,Xe.value=!0,pe.value=0;const t=yt.value.findIndex(a=>a.index===e);ce.value=Math.floor(Math.max(0,t)/ft)+1,le.value=!0,W(()=>Jt())}function St(){le.value&&(be({resetError:!0}),le.value=!1)}function $a(e){var o,r;const t=Math.max(1,Math.min(bt.value,Number(e)||1));if(t===ce.value)return;be({resetError:!0}),ce.value=t;const a=(t-1)*ft;ye.value=(r=(o=yt.value[a])==null?void 0:o.index)!=null?r:0,W(()=>Jt())}function un(){Nt.value=!0}function Mt(){Nt.value=!1}function Va(e){var r,l;const t=Ne.value,a=t.length;if(!a)return;be({resetError:!0});const o=Vt.value;ye.value=(l=(r=t[(o+e+a)%a])==null?void 0:r.index)!=null?l:0,Xe.value=!0,pe.value=0}function Ae(e){if(!ae.value.length){pn();return}const a=q(e),o=ne(a),r=ot(a);if(ye.value=a,Xe.value=!0,pe.value=0,Et.has(o)||R.has(o)||(r.playing||r.loading)&&!r.error){ze(a);return}Et.add(o),W(()=>re(this,null,function*(){try{yield Ka(a,{stopOthers:!le.value})}finally{Et.delete(o)}}))}function ja(e,t){fn(t==null?void 0:t.target)||Ae(e)}function Wa(e){var r,l,u,d,g,M,P,y,T,L;const t=((l=(r=e==null?void 0:e.target)==null?void 0:r.closest)==null?void 0:l.call(r,'[id$="-webExpend-content"]'))||((u=e==null?void 0:e.composedPath)==null?void 0:u.call(e).find(N=>String((N==null?void 0:N.id)||"").endsWith("-webExpend-content")));if(!t)return;const a=Number((M=(g=(d=t.closest)==null?void 0:d.call(t,"[data-video-index]"))==null?void 0:g.dataset)==null?void 0:M.videoIndex),o=(P=oe.value)!=null?P:Number.isFinite(a)?a:H.value;(y=e.preventDefault)==null||y.call(e),(T=e.stopPropagation)==null||T.call(e),(L=e.stopImmediatePropagation)==null||L.call(e),dn(o)}function dn(e){return re(this,null,function*(){var r,l;const t=q(e);if(oe.value===t){kt();return}oe.value!==null&&kt();const a=document.getElementById(`${nt(t)}-wrap`);if(!a)return;oe.value=t,yield W();const o=(l=(r=C.value)==null?void 0:r.querySelector)==null?void 0:l.call(r,".home-video-web-player-slot");if(!o){oe.value=null;return}o.appendChild(a),ze(t),De(t)})}function kt(e={}){var r;const{restore:t=!0}=e,a=oe.value;if(a===null)return;const o=document.getElementById(`${nt(a)}-wrap`);if(t&&o){const l=Pt(a)||b.value,u=(r=l==null?void 0:l.querySelector)==null?void 0:r.call(l,".home-video-player-host");u&&u.appendChild(o)}oe.value=null,t&&W(()=>{ze(a),De(a)})}function fn(e){var t;return!!((t=e==null?void 0:e.closest)!=null&&t.call(e,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function hn(e){const t=Math.max(0,Number((e==null?void 0:e.value)||0)),a=Math.max(5,...gt.value.map(o=>Math.max(0,Number(o.value||0))));return Math.max(6,Math.min(100,t/a*100))}function mn(e){const t=Number(e==null?void 0:e.value),a=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return Number.isFinite(t)?t>20||/严重|重度|高超载/.test(a)?"#8bf7ff":t>10||/中度|预警/.test(a)?"#48cfff":t>5||/轻度/.test(a)?"#8bf7ff":t<=0||/总体可控|合理|正常|达标|无超载/.test(a)?"#24f6c4":"#30dcff":"#30dcff"}function Ua(e){return{"--balance-color":mn(e),"--balance-progress":`${hn(e)}%`}}function pn(){return re(this,null,function*(){return Ka(H.value,{stopOthers:!le.value})})}function Ka(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,r=q(e),l=ae.value[r]||vt,u=ne(r);let d=Ha(r);if((l==null?void 0:l.status)!=="直播中"||!(l!=null&&l.hdPlayUrl)||!(l!=null&&l.token)){d.error=(l==null?void 0:l.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",d.loading=!1,d.playing=!1,d.ready=!1,r===H.value&&(U.value=d.error),Ce();return}if(R.has(u)||(d.playing||d.loading)&&!d.error)return;ye.value=r,pe.value=0,o?be({resetError:!0}):(R.has(u)||d.loading)&&it(r,{resetError:!0}),d=Ha(r),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,r===H.value&&(U.value=""),Ce(),yield W();const g=(ee.get(u)||0)+1;ee.set(u,g);let M=null;vn(r,g);try{const P=Pt(r)||b.value,y=nt(r);if(!gn(P,y))throw new Error("视频容器未就绪");const{width:T,height:L}=Ya(P,340,92);if(M=new si.EZUIKitPlayer({id:y,accessToken:l.token,url:l.hdPlayUrl,audio:0,width:T,height:L,themeData:yn(),handleError(N){g===ee.get(u)&&(rt(r),console.warn("EZUIKit player error",N),Zt(M),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,ee.set(u,g+1),R.delete(u),Xt(r),r===H.value&&(U.value=d.error),Ce())},handleSuccess(){g===ee.get(u)&&(rt(r),d.error="",d.ready=!0,d.loading=!1,r===H.value&&(U.value=""),ze(r),De(r),Qt(y),Ce())},fullScreenChangeCallBack(){}}),g!==ee.get(u)){Zt(M),Xt(r);return}R.set(u,M),d.playing=!0,Ce(),W(()=>{ze(r),De(r),Qt(y)})}catch(P){rt(r),console.warn("EZUIKit init error",P),d.error="视频加载失败",r===H.value&&(U.value=d.error),it(r,{resetError:!1})}})}function Qt(e){if(typeof document=="undefined"||!e)return;const t=document.getElementById(`${e}-ez-iframe-footer-container`),a=document.getElementById(`${e}-audioControls`);t&&Object.assign(t.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),a&&Object.assign(a.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function De(e=H.value,t=0){if(typeof window=="undefined")return;const a=q(e),o=ne(a),r=ke.get(o);t===0&&r&&window.cancelAnimationFrame(r);const l=window.requestAnimationFrame(()=>{ze(a),t<8?De(a,t+1):ke.delete(o)});ke.set(o,l)}function qa(e){if(typeof window!="undefined"){if(e!==void 0){const t=ne(e),a=ke.get(t);a&&window.cancelAnimationFrame(a),ke.delete(t);return}ke.forEach(t=>window.cancelAnimationFrame(t)),ke.clear()}}function Jt(){Array.from(R.keys()).forEach(e=>{const t=Number(e);Number.isFinite(t)&&De(t)})}function Ya(e,t=1,a=1){var u;if(!e)return{width:Math.max(1,Math.floor(t||1)),height:Math.max(1,Math.floor(a||1))};const o=(u=e.getBoundingClientRect)==null?void 0:u.call(e),r=e.clientWidth||e.offsetWidth||(o==null?void 0:o.width)||t,l=e.clientHeight||e.offsetHeight||(o==null?void 0:o.height)||a;return{width:Math.max(1,Math.floor(r||1)),height:Math.max(1,Math.floor(l||1))}}function Pt(e=H.value){if(typeof document=="undefined")return null;const t=q(e),a=le.value?".home-video-modal-item":".home-video-card .home-video-screen",o=document.querySelector(`${a}[data-video-index="${t}"]`);if(o)return o;const r=S.get(t);return r!=null&&r.isConnected?r:null}function gn(e,t){var r;const a=(r=e==null?void 0:e.querySelector)==null?void 0:r.call(e,".home-video-player-host");if(!a)return null;a.replaceChildren();const o=document.createElement("div");return o.id=t,o.className="home-video-player",a.appendChild(o),o}function ze(e=H.value){var $e,Ve;if(typeof document=="undefined")return;const t=q(e),a=ne(t),o=nt(t),r=oe.value===t&&C.value?C.value:Pt(t)||b.value,l=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=l||u;if(!r||!d)return;const{width:g,height:M}=Ya(r),P=R.get(a);try{l&&u&&P&&typeof P.reSize=="function"?P.reSize(g,M):l&&u&&P&&typeof P.autoResize=="function"&&P.autoResize()}catch(j){console.warn("EZUIKit resize failed",j)}const y={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${g}px`,height:`${M}px`};Object.assign(d.style,y,{display:"block",verticalAlign:"top"}),l&&u&&Object.assign(u.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const T=document.getElementById(`EZUIKitPlayer-${o}`);T&&(T.setAttribute("width",String(g)),T.setAttribute("height",String(M)));const L=document.getElementById(`${o}-player`),N=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),Te=[d,u,L,N==null?void 0:N.parentElement,N,$==null?void 0:$.parentElement,$,...Array.from((u==null?void 0:u.children)||[]),...Array.from((($e=d==null?void 0:d.querySelectorAll)==null?void 0:$e.call(d,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((Ve=u==null?void 0:u.querySelectorAll)==null?void 0:Ve.call(u,".play-window, video, canvas, iframe, object, embed"))||[]),T].filter(Boolean);Array.from(new Set(Te)).forEach(j=>{var st,Lt;(st=j.setAttribute)==null||st.call(j,"width",String(g)),(Lt=j.setAttribute)==null||Lt.call(j,"height",String(M)),Object.assign(j.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),Qt(o)}function be(e={}){Array.from(R.keys()).forEach(t=>{it(Number(t),e)}),Object.keys(ge).forEach(t=>{R.has(t)||it(Number(t),e)}),Ce()}function it(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,r=q(e),l=ne(r);qa(r),rt(r);const u=R.get(l);R.delete(l),ee.set(l,(ee.get(l)||0)+1),u&&Zt(u),a&&Xt(r);const d=ge[l];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[l]),r===H.value&&o&&(U.value=""),Ce()}function vn(e,t){const a=q(e),o=ne(a);rt(a);const r=window.setTimeout(()=>{const l=ge[o];t!==ee.get(o)||!(l!=null&&l.loading)||(l.error="视频加载超时",a===H.value&&(U.value=l.error),it(a,{resetError:!1}))},Ss);Ot.set(o,r)}function rt(e){const t=ne(e),a=Ot.get(t);a&&(window.clearTimeout(a),Ot.delete(t))}function Zt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("EZUIKit stop error",t)}}function Xt(e=H.value){var d;if(typeof document=="undefined")return;const t=q(e),a=nt(t),o=document.getElementById(`${a}-wrap`),r=document.getElementById(a),l=Pt(t)||b.value,u=(d=l==null?void 0:l.querySelector)==null?void 0:d.call(l,".home-video-player-host");oe.value===t&&kt({restore:!1}),u&&u.replaceChildren(),o!=null&&o.isConnected&&o.remove(),r!=null&&r.isConnected&&r.remove()}function yn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function bn(){const e=x.get("yak-structure");ea(e,"畜群结构",Pa.value)}function wn(){const e=x.get("yak-three-year-forecast");ea(e,"预测存栏",Ge.value)}function xn(){const e=x.get("yak-forecast-trend");ea(e,"预测存栏",tt.value)}function ea(e,t,a){const o=typeof(e==null?void 0:e.dispatchAction)=="function"?e:e==null?void 0:e.chart;!o||a<0||(o.dispatchAction({type:"downplay",seriesName:t}),o.dispatchAction({type:"hideTip"}),o.dispatchAction({type:"highlight",seriesName:t,dataIndex:a}),o.dispatchAction({type:"showTip",seriesName:t,dataIndex:a}))}function ta(e){return e?pe.value%e:0}function Sn(){return re(this,null,function*(){const[e,t]=yield Promise.all([Po("grassland","grassland-distribution"),Po("wetland","wetland-distribution")]);v||(O.value={grassland:e,wetland:t})})}function Le(e,t){const a=O.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(r=>(r==null?void 0:r.key)===t)}function aa(e,t){return e?V(D({},e),{title:t}):null}function Mn(){var M,P,y,T;const e=((M=Le("grassland","grassland-town"))==null?void 0:M.rows)||[],t=((P=Le("wetland","wetland-town-area"))==null?void 0:P.rows)||[],a=((y=Le("grassland","grassland-productivity-town"))==null?void 0:y.rows)||[],o=((T=Le("wetland","wetland-mu-yield"))==null?void 0:T.rows)||[],r=Ct(e),l=Ct(t),u=Ct(a),d=Ct(o);return[...new Set([...e,...t,...a,...o].map(L=>L==null?void 0:L.name).filter(Boolean))].map((L,N)=>{const $=r.get(L)||0,Te=l.get(L)||0,At=u.get(L)||0,$e=d.get(L)||0;let Ve=0,j=0;$>0&&At>0&&(Ve+=$*At,j+=$),Te>0&&$e>0&&(Ve+=Te*$e,j+=Te);const st=[At,$e].filter(sa=>sa>0),Lt=j>0?Ve/j:st.reduce((sa,Yn)=>sa+Yn,0)/Math.max(st.length,1);return{key:`home-pasture-productivity-${L}`,name:L,value:Number(Lt.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:N}}).filter(L=>L.value>0)}function Ct(e=[]){return new Map(e.map(t=>[t.name,Number(t.value)||0]))}function kn(e,t){const a=String((e==null?void 0:e.key)||"");return a.includes("grassland-town")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title)}):a.includes("wetland-town-area")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title,{variant:"water"})}):V(D({},e),{key:`home-${t}-${e.key}`,height:et.value})}function oa(e,t,a={}){var P;const o=(e.rows||[]).filter(y=>Number.isFinite(Number(y.value))).slice(0,10),r=((P=o.find(y=>y.unit))==null?void 0:P.unit)||"万亩",l=o.map(y=>Number(y.value)||0),u=Math.max(...l,1),d=Math.ceil(u*1.14),g=a.showTrendLine===!0,M=a.variant==="water";return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${r}`,left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(y){var $;const T=Array.isArray(y)?y:[y],L=T.find(Te=>Te.seriesName===t)||T[0],N=o[($=L==null?void 0:L.dataIndex)!=null?$:0];return N?`${N.name}
    ${t}:${ie(N.value)}${N.unit||r}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(y=>y.name),axisLabel:{interval:0,hideOverlap:!1,color:Ao,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:Xa},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:o.map(y=>y.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:d,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Ft,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,type:"bar",barWidth:M?10:6,stack:"b",z:3,data:o.map(y=>Number(y.value)||0),label:{show:!0,position:"top",distance:9,color:ut,fontSize:10,fontWeight:700,formatter:({value:y})=>we(y)},itemStyle:{borderRadius:M?[7,7,3,3]:2,color:new je(0,0,0,1,[...M?[{offset:0,color:"#a8fbff"},{offset:.42,color:"#31dcff"},{offset:1,color:"#2b8fff"}]:[{offset:0,color:"#19FFC6"},{offset:1,color:"#33AAFF"}]])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:M?"rgba(49, 220, 255, 0.18)":"rgba(25, 255, 198, 0.16)"}}},...g?[{name:`${t}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:l,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:ut,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],...M?[{name:"水柱顶",type:"pictorialBar",symbol:"circle",symbolSize:[18,7],symbolOffset:[0,-2],symbolPosition:"end",data:l,itemStyle:{color:"#a8fbff",opacity:.92,shadowBlur:3,shadowColor:"rgba(168, 251, 255, 0.18)"},tooltip:{show:!1},z:4}]:[{type:"custom",renderItem(y,T){const L=T.value(0),N=T.value(1),$=T.coord([L,N]);return{type:"image",style:{x:$[0]-4.5,y:$[1]-9,width:10,height:10,image:bs},silent:!0}},data:o.map((y,T)=>[T,Number(y.value)||0]),tooltip:{show:!1},z:4}],{type:"bar",barWidth:M?20:30,xAxisIndex:1,barGap:"-220%",data:o.map(()=>d),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:M?"rgba(58, 164, 215, 0.75)":"rgba(122, 140, 153, 0.6)",opacity:M?.12:.075},tooltip:{show:!1},z:0}]})}function Pn(e=[],t="数值"){var d;const a=e.filter(g=>Number.isFinite(Number(g.value))).slice(0,10),o=((d=a.find(g=>g.unit))==null?void 0:d.unit)||"",r=a.map(g=>Number(g.value)||0),l=Math.max(...r,1),u=Math.ceil(l*1.12);return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:o?`单位:${o}`:"",left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(g){var T;const P=(Array.isArray(g)?g:[g])[0],y=a[(T=P==null?void 0:P.dataIndex)!=null?T:0];return y?`${y.name}
    ${t}:${ie(y.value)}${y.unit||o}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:a.map(g=>g.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Ao,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:Xa}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Ft,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,data:r,type:"line",smooth:!0,symbol:ws,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:ut,fontSize:10,fontWeight:700,formatter:({value:g})=>we(g)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new je(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new je(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function Qa(e){const t=String((e==null?void 0:e.key)||"");return t.includes("grassland-town")||t.includes("wetland-town-area")}function Ja(e,t,a,o=0,r=!1,l=-1){return{name:e,type:"line",yAxisIndex:o,smooth:!0,symbolSize:5,data:t.map((u,d)=>({value:u,symbolSize:d===l?10:5,itemStyle:{color:d===l?"#ffffff":a},label:{show:d===l,position:"top",color:a,fontSize:10,formatter:({value:g})=>we(g)}})),lineStyle:{width:2.4,color:a},itemStyle:{color:a},areaStyle:r?{color:new je(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function Cn(e){return Dt.find(t=>t.key===e)||Dt[2]}function An(e,t="month"){if(t==="month")return Ri(e);const a=Hi(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),r=t==="week"?7:1,l=Math.ceil(o/r)+1,u=Array.from({length:l},(P,y)=>{const T=Math.min(o,y*r);return Di(T)}),d=u.map((P,y)=>{const L=Math.min(o,y*r)/o,N=Math.sin(y/(t==="week"?1.8:8.5))*Math.sin(Math.PI*L)*Math.min(360,e.months*18);return Math.round(xo+(e.stock-xo)*L+N)}),g=u.map((P,y)=>Math.round(e.births*(Math.min(o,y*r)/o))),M=u.map((P,y)=>Math.round(e.outflow*(Math.min(o,y*r)/o)));return{labels:u,stock:d,births:g,outflow:M}}function Ln(e,t){return t==="day"?Math.max(10,Math.ceil(e/6)):t==="week"?Math.max(2,Math.ceil(e/7)):e>24?4:e>14?2:1}function Tn(e,t){return t==="day"?e>700?2:e>360?3:4:t==="week"?e>110?4:6:e>24?7:10}function _n(e){return(e.labels||[]).map((t,a)=>{var P,y,T,L,N,$;const o=Number(((P=e.stock)==null?void 0:P[Math.max(a-1,0)])||0),r=Number(((y=e.stock)==null?void 0:y[a])||o),l=Math.max(0,Number(((T=e.births)==null?void 0:T[a])||0)-Number(((L=e.births)==null?void 0:L[Math.max(a-1,0)])||0)),u=Math.max(0,Number(((N=e.outflow)==null?void 0:N[a])||0)-Number((($=e.outflow)==null?void 0:$[Math.max(a-1,0)])||0)),d=Math.max(120,Math.round((l+u)*.18)),g=Math.max(o,r)+Math.max(d,Math.round(l*.32)),M=Math.max(0,Math.min(o,r)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:r,low:M,high:g,birth:l,outflow:u,value:[o,r,M,g]}})}function ie(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t)?0:2}):"--"}function In(e){const t=Number(e);return Number.isFinite(t)?`${t>0?"+":""}${ie(t)}`:"--"}function we(e){const t=Number(e);return Number.isFinite(t)?Math.abs(t)>=1e4?`${(t/1e4).toFixed(Math.abs(t)>=1e5?0:1)}万`:Math.round(t).toLocaleString("zh-CN"):"--"}function Za(e,t=2){const a=Number(e);return Number.isFinite(a)?Math.abs(a)>=1e4?`${(a/1e4).toFixed(t)}万`:Math.round(a).toLocaleString("zh-CN"):"--"}function Xa(e){return String(e||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function Fn(e){if(!e)return null;const t=Vi(e.topicKey,e.layerKey);if(t)return t;const a=ji(e.topicKey);return a.find(o=>o.key===e.layerKey)||a[0]||null}function En(e,t){const a=Number.isFinite(Number(t.fillOpacity))?Number(t.fillOpacity):.46,o=t.stroke||t.strokeColor||"#E5FCFF",r=Number.isFinite(Number(t.strokeOpacity))?Number(t.strokeOpacity):.86,l=Number.isFinite(Number(t.strokeWidth))?Number(t.strokeWidth):1.1;return`${e}${t.fill}${a}${o}${r}${l}round`}function On(e){pt.some(t=>t.key===e)&&(K.value=e)}function eo(e){if(e.key==="Escape"){if(oe.value!==null){kt();return}St(),Mt()}}function na(){xa.value=typeof window=="undefined"?1080:window.innerHeight,Jt()}function Bn(e){const t=document.querySelector(".home-dashboard"),a=t==null?void 0:t.getBoundingClientRect();if(!(a!=null&&a.width)||!(a!=null&&a.height))return e;const o=Number(e==null?void 0:e.x),r=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(r)?{x:960,y:540}:o>=0&&o<=1920&&r>=0&&r<=1080&&(o>a.width||r>a.height)?{x:o,y:r}:{x:(o-a.left)/a.width*1920,y:(r-a.top)/a.height*1080}}function ia(e,t){var a,o,r,l;return((o=(a=h.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((l=(r=h.value)==null?void 0:r.getVectorFeatureScreen)==null?void 0:l.call(r,e))||t}function Gn(){if(!zt.value||!ue.value)return;const e=ia(ue.value,de.value);if(!e)return;const t=de.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(de.value=e)}function ra(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(o=>to(o,t[o])).length}function to(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!s.has(String(e||"").toLowerCase())}function ao(e={}){const t=String(K.value||"").toLowerCase(),a=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return t==="woodland"||a.includes("woodland")||a.includes("t_woodland")?"woodland":t==="wetland"||a.includes("wetland")||a.includes("shidi")?"wetland":t==="grassland"||a.includes("grassland")||a.includes("caodi")?"grassland":""}function Nn(e={}){const t=oo(e.lng),a=oo(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function oo(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Rn(){return re(this,arguments,function*(e={}){var d,g,M,P,y,T;const t=Number((d=e==null?void 0:e.lngLat)==null?void 0:d.lng),a=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lat),o=Ma.value,r=ao(o);if(!Number.isFinite(t)||!Number.isFinite(a)||!r){ve();return}const l=++Je,u=e.screen||{x:960,y:540};de.value=null,ue.value=null,Oe.value=!1,Be.value=!0,(P=(M=h.value)==null?void 0:M.clearSelectedFeature)==null||P.call(M);try{const L=yield Hn(o,{lng:t,lat:a},r);if(l!==Je||v)return;if(!L){ve();return}ue.value=L,Oe.value=!1,(T=(y=h.value)==null?void 0:y.highlightFeature)==null||T.call(y,L,{highlightTone:"v21"}),de.value=ia(L,u)}catch(L){l===Je&&ve()}finally{l===Je&&(Be.value=!1)}})}function Hn(o,r){return re(this,arguments,function*(e,t,a=ao(e)){const l=Nn(t);if(!l)return null;let u=null;a==="grassland"?u=yield hr({wkt:l}):a==="wetland"?u=yield mr({wkt:l}):a==="woodland"&&(u=yield ur(l));const d=Dn(u,a);if(!$n(d))return null;const g=jn(d,e,t,a);return ra(g)>0?g:null})}function Dn(e,t){var o,r,l,u;const a=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,(o=e==null?void 0:e.data)==null?void 0:o[t],(r=e==null?void 0:e.data)==null?void 0:r.grassland,(l=e==null?void 0:e.data)==null?void 0:l.wetland,(u=e==null?void 0:e.data)==null?void 0:u.woodland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const d of a){const g=zn(d);if(g)return g}return null}function zn(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function $n(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(Vn)?!0:Object.keys(e).some(t=>to(t,e[t]))}function Vn(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function jn(e,t,a,o){const r=Un(e),l=Wn(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${o}-${a.lng}-${a.lat}`,properties:r,feature:{type:"Feature",properties:r,geometry:l},geometry:l,layer:t,lngLat:a}}function Wn(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Un(e={}){const t=D({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(o=>{const r=o==null?void 0:o.value;if(r==null||r==="")return;const l=c[String((o==null?void 0:o.title)||"").trim()],u=String((o==null?void 0:o.field)||"").trim();[u,Kn(u),l].filter(Boolean).forEach(g=>{(t[g]===void 0||t[g]===null||t[g]==="")&&(t[g]=r)})}),t}function Kn(e){const t=String(e||"").trim();return t?t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function qn(e){var a,o;const t=(o=(a=e==null?void 0:e.feature)!=null?a:e)!=null?o:null;if(!t||ra(t)<=0){ve();return}ue.value=t,Oe.value=!1,e!=null&&e.screen&&(de.value=ia(t,e.screen))}function ve(){var e,t;Je+=1,ue.value=null,Oe.value=!1,Be.value=!1,de.value=null,(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function no(e){if(!zt.value)return;const t=document.querySelector(".home-map-feature-info"),a=document.querySelector(".home-dashboard .cesium-map"),o=e.target;t&&o instanceof Node&&t.contains(o)||a&&o instanceof Node&&a.contains(o)||ve()}return(e,t)=>(A(),F("div",Ir,[so(Tt(Lr,{ref_key:"threeMapSceneRef",ref:m,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,"max-pixel-ratio":1.35,onPlayComplete:Jo},null,512),[[lo,Bo.value]]),Z.value?so((A(),xe(di,{key:0,ref_key:"mapSceneRef",ref:h,class:"home-map-scene home-remote-map-scene",active:f.active&&Z.value,"active-layer":Ma.value,"admin-boundary-line-scale":2.4,"initial-zoom":Ms,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!1,"hide-town-label-stats":"",onReady:Re,onFeatureLoading:t[0]||(t[0]=a=>Be.value=a),onFeatureInfo:qn,onMapClick:Rn,onViewChange:Gn},null,8,["active","active-layer"])),[[lo,Z.value]]):Y("",!0),t[12]||(t[12]=w("div",{class:"home-map-scrim"},null,-1)),w("div",Fr,[Tt(lr,{"model-value":K.value,topics:pt,"onUpdate:modelValue":On},null,8,["model-value"])]),zt.value?(A(),F("div",{key:1,class:"home-map-feature-info",style:lt(Ro.value)},[Tt(cr,{title:Ho.value,feature:ue.value,empty:Oe.value,loading:Be.value,width:We(Go),height:No.value,closable:"",onClose:ve},null,8,["title","feature","empty","loading","width","height"])],4)):Y("",!0),w("div",Er,[w("div",Or,[(A(!0),F(_e,null,Ie(Uo.value,a=>(A(),xe(uo,{key:a.key,class:"home-card left-card",title:a.title,width:We(wa),height:a.height},{default:la(()=>[a.option?(A(),xe(We(ca),{key:0,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-town-column-chart",option:a.option,autoresize:!0},null,8,["option"])):(A(),xe(ko,{key:1,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),w("div",Br,[w("div",Gr,[(A(!0),F(_e,null,Ie(Ko.value,a=>(A(),xe(uo,{key:a.key,class:Ue(["home-card","right-card",{"home-video-card":a.type==="video"}]),title:a.title,width:We(wa),height:a.height},{extra:la(()=>[a.type==="video"||a.key==="home-town-balance-gauge"?(A(),F("button",{key:0,class:"home-card-more",type:"button","aria-label":a.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:o=>a.type==="video"?cn():un()},[...t[3]||(t[3]=[oi(" 更多 ",-1),w("span",{"aria-hidden":"true"},"›",-1)])],8,Nr)):Y("",!0)]),default:la(()=>[a.type==="video"?(A(),F("div",Rr,[w("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ne.value.length<=1,onClick:sn},"‹",8,Hr),w("div",{class:Ue(["home-video-grid",{"is-single":La.value.length<=1}])},[(A(!0),F(_e,null,Ie(La.value,o=>(A(),F("div",{key:o.key,ref_for:!0,ref:r=>Ba(r,o),"data-video-index":o.index,class:Ue(["home-video-screen",{"is-active":o.isActive,"is-playing":Yt(o.index),"is-loading":xt(o.index)}]),style:lt(za(o.live,o.isActive,o.index)),role:"button",tabindex:"0",onClick:r=>ja(o.index,r),onKeydown:[_t(Se(r=>Ae(o.index),["prevent"]),["enter"]),_t(Se(r=>Ae(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=w("div",{class:"home-video-player-host"},null,-1)),xt(o.index)?(A(),F("div",zr,"加载中")):Y("",!0),He(o.index)?(A(),F("div",$r,z(He(o.index)),1)):Y("",!0),o.live.hdPlayUrl&&(!Da(o.index)||He(o.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(r=>Ae(o.index),["stop"])},null,8,Vr)):Y("",!0),w("div",jr,z(o.live.title),1)],46,Dr))),128))],2),w("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:Ne.value.length<=1,onClick:ln},"›",8,Wr)])):a.key==="yak-forecast-trend"?(A(),F("div",Ur,[w("div",Kr,[(A(),F(_e,null,Ie(Dt,o=>w("button",{key:o.key,type:"button",class:Ue({active:o.key===Rt.value}),onClick:r=>Rt.value=o.key},z(o.label),11,qr)),64))]),Tt(We(ca),{ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-forecast-kline-chart",option:a.option,autoresize:!0},null,8,["option"])])):a.option?(A(),xe(We(ca),{key:2,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart",option:a.option,autoresize:!0},null,8,["option"])):a.key==="home-town-balance-gauge"?(A(),F("div",Yr,[(A(!0),F(_e,null,Ie($t.value,(o,r)=>(A(),F("div",{key:o.key,class:Ue(["home-balance-gauge-card",{"is-active":r===Do.value}]),style:lt(Ua(o))},[w("div",Qr,[w("strong",null,z(o.status),1)]),w("div",Jr,[w("div",Zr,[w("strong",null,z(ie(o.value)),1),t[5]||(t[5]=w("em",null,"%",-1))])]),w("div",Xr,z(o.name),1),w("div",es,z(o.extra),1)],6))),128))])):(A(),xe(ko,{key:4,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),le.value?(A(),F("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Se(St,["self"])},[w("section",ts,[w("header",as,[w("div",null,[t[6]||(t[6]=w("h2",null,"基地监控",-1)),w("p",null,"共 "+z(ae.value.length)+" 路,在线 "+z($o.value)+" 路",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:St},"×")]),Ta.value.length?(A(),F("div",os,[(A(!0),F(_e,null,Ie(Ta.value,a=>(A(),F("div",{key:a.key,ref_for:!0,ref:o=>Ba(o,a),"data-video-index":a.index,class:Ue(["home-video-modal-item home-video-screen",{"is-active":a.index===H.value,"is-playing":Yt(a.index),"is-loading":xt(a.index),"is-offline":a.live.status!=="直播中"}]),style:lt(za(a.live,a.index===H.value,a.index)),role:"button",tabindex:"0",onClick:o=>ja(a.index,o),onKeydown:[_t(Se(o=>Ae(a.index),["prevent"]),["enter"]),_t(Se(o=>Ae(a.index),["prevent"]),["space"])]},[t[7]||(t[7]=w("div",{class:"home-video-player-host"},null,-1)),xt(a.index)?(A(),F("div",is,"加载中")):Y("",!0),He(a.index)?(A(),F("div",rs,z(He(a.index)),1)):Y("",!0),a.live.hdPlayUrl&&(!Da(a.index)||He(a.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(o=>Ae(a.index),["stop"])},null,8,ss)):Y("",!0),w("span",ls,z(a.live.title),1)],46,ns))),128))])):(A(),F("div",cs,"暂无监控数据")),bt.value>1?(A(),F("footer",us,[w("button",{type:"button",disabled:ce.value<=1,onClick:t[1]||(t[1]=a=>$a(ce.value-1))},"上一页",8,ds),w("span",null,z(ce.value)+" / "+z(bt.value),1),w("button",{type:"button",disabled:ce.value>=bt.value,onClick:t[2]||(t[2]=a=>$a(ce.value+1))},"下一页",8,fs)])):Y("",!0)])])):Y("",!0),(A(),xe(ni,{to:"body"},[oe.value!==null?(A(),F("div",hs,[w("div",{ref_key:"homeVideoWebStageRef",ref:C,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t[8]||(t[8]=[w("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):Y("",!0)])),Nt.value?(A(),F("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Se(Mt,["self"])},[w("section",ms,[w("header",ps,[w("div",null,[t[9]||(t[9]=w("h2",null,"全县乡镇草畜平衡",-1)),w("p",null,"全部 "+z(gt.value.length)+" 个乡镇,超载率沿用草畜平衡结果库口径",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:Mt},"×")]),w("div",gs,[(A(!0),F(_e,null,Ie(gt.value,a=>(A(),F("article",{key:a.key,class:"home-balance-modal-item",style:lt(Ua(a))},[w("div",vs,[w("strong",null,z(a.name),1),w("span",null,z(a.status),1)]),w("div",ys,[w("strong",null,z(ie(a.value)),1),t[10]||(t[10]=w("em",null,"%",-1))]),t[11]||(t[11]=w("div",{class:"home-balance-modal-track"},[w("i")],-1)),w("p",null,z(a.extra),1)],4))),128))])])])):Y("",!0)]))}};export{Ws as default}; diff --git a/docs/assets/index-b1fbd7ae-1784132466083.js b/docs/assets/index-d6ceab05-1784132792831.js similarity index 96% rename from docs/assets/index-b1fbd7ae-1784132466083.js rename to docs/assets/index-d6ceab05-1784132792831.js index bc7c967..8895c4a 100644 --- a/docs/assets/index-b1fbd7ae-1784132466083.js +++ b/docs/assets/index-d6ceab05-1784132792831.js @@ -1,2 +1,2 @@ -import{H as Q}from"./index.esm.min-e7a22049-1784132466083.js";import{_ as U}from"./index-fe70e5de-1784132466083.js";import{M as X}from"./screen2Standard-483e466b-1784132466083.js";import{c as $,a as Y,b as ee,d as x,w as h,e as o,f as v,g as z,h as te,i as ae,v as ne,j as p,k as oe}from"./chartTheme-e9ae7be8-1784132466083.js";import{_ as re,o as i,c as s,a as t,F as u,y as g,u as B,J as m,b as L,x as O,n as F,C as le,j as N,t as l,B as y}from"./index-1784132466083.js";import"./index-e9f36657-1784132466083.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},ve={class:"guide-band-list"},be={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=o,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Y({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:ee({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:I({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:j()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:E()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:J()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:Z()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],b=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:o[0]},{name:"林地",percent:24,color:o[1]},{name:"湿地",percent:14,color:o[2]},{name:"保护地",percent:10,color:o[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},M=[{name:"正常",value:"128",percent:100,color:o[0]},{name:"关注",value:"36",percent:45,color:o[2]},{name:"预警",value:"12",percent:18,color:o[4]}],T=[{name:"草地修复",percent:92,color:o[0]},{name:"湿地巡护",percent:86,color:o[1]},{name:"林地管护",percent:78,color:o[2]},{name:"风险处置",percent:94,color:o[3]}];function D(r){return`C${String(r+1).padStart(2,"0")}`}function C(r){return f[r.size||"standard"]||f.standard}function H(r={}){const n=b.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(r.value)||0)/n*100).toFixed(1)}%`}function I({rows:r=[],unit:n="",name:a="结构占比"}={}){const c=r.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:o,tooltip:v(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=r.find(K=>K.name===e),q=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${q}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:r.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||o[d%o.length]}}))}]})}function j(){const r=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:o,tooltip:v(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:r}]})}function E(){const r=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:o,grid:te({left:40,right:18,top:22,bottom:34}),tooltip:v(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:ae(r),yAxis:ne(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:oe(o[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function J(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:o[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function Z(){return h({tooltip:v(r=>`${r.marker}${r.name}:${r.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:o[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% +import{H as Q}from"./index.esm.min-da05f706-1784132792831.js";import{_ as U}from"./index-a4d3ff67-1784132792831.js";import{M as X}from"./screen2Standard-41868f75-1784132792831.js";import{c as $,a as Y,b as ee,d as x,w as h,e as o,f as v,g as z,h as te,i as ae,v as ne,j as p,k as oe}from"./chartTheme-73e4a943-1784132792831.js";import{_ as re,o as i,c as s,a as t,F as u,y as g,u as B,J as m,b as L,x as O,n as F,C as le,j as N,t as l,B as y}from"./index-1784132792831.js";import"./index-e9f36657-1784132792831.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},ve={class:"guide-band-list"},be={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=o,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Y({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:ee({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:I({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:j()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:E()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:J()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:Z()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],b=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:o[0]},{name:"林地",percent:24,color:o[1]},{name:"湿地",percent:14,color:o[2]},{name:"保护地",percent:10,color:o[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},M=[{name:"正常",value:"128",percent:100,color:o[0]},{name:"关注",value:"36",percent:45,color:o[2]},{name:"预警",value:"12",percent:18,color:o[4]}],T=[{name:"草地修复",percent:92,color:o[0]},{name:"湿地巡护",percent:86,color:o[1]},{name:"林地管护",percent:78,color:o[2]},{name:"风险处置",percent:94,color:o[3]}];function D(r){return`C${String(r+1).padStart(2,"0")}`}function C(r){return f[r.size||"standard"]||f.standard}function H(r={}){const n=b.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(r.value)||0)/n*100).toFixed(1)}%`}function I({rows:r=[],unit:n="",name:a="结构占比"}={}){const c=r.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:o,tooltip:v(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=r.find(K=>K.name===e),q=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${q}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:r.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||o[d%o.length]}}))}]})}function j(){const r=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:o,tooltip:v(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:r}]})}function E(){const r=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:o,grid:te({left:40,right:18,top:22,bottom:34}),tooltip:v(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:ae(r),yAxis:ne(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:oe(o[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function J(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:o[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function Z(){return h({tooltip:v(r=>`${r.marker}${r.name}:${r.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:o[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% 完成`,color:"#ffe06b",fontSize:22,lineHeight:30,fontWeight:700},data:[{value:1,itemStyle:{color:"rgba(255, 224, 107, .28)"}}]}]})}return(r,n)=>(i(),s("div",ie,[n[1]||(n[1]=t("div",{class:"guide-bg guide-bg-grid"},null,-1)),n[2]||(n[2]=t("div",{class:"guide-bg guide-bg-glow"},null,-1)),t("header",se,[n[0]||(n[0]=t("div",null,[t("div",{class:"guide-kicker"},"Chart Style System"),t("h1",null,"图表样式规范")],-1)),t("div",ue,[(i(!0),s(u,null,g(B(P),a=>(i(),s("span",{key:a,style:m({background:a})},null,4))),128))])]),t("main",ce,[t("section",de,[(i(),s(u,null,g(A,(a,c)=>L(U,{key:a.key,class:F(["guide-chart-card",`is-${a.size||"standard"}`]),width:C(a).width,height:C(a).height,title:`${D(c)} ${a.title}`,"data-unit":a.unit},{default:O(()=>[t("div",{class:F(["guide-card-content",a.visual?`is-${a.visual}`:""])},[a.option?(i(),le(B(Q),{key:0,class:"guide-chart",option:a.option,autoresize:""},null,8,["option"])):N("",!0),a.visual==="three-pie"?(i(),s(u,{key:1},[t("div",ge,[L(X,{data:b,colors:w,delay:3e3,opacity:.62,class:"guide-three-pie"},{default:O(({data:e})=>[t("div",me,[t("strong",null,l(H(e)),1),t("span",null,l((e==null?void 0:e.name)||"结构占比"),1)])]),_:1})]),t("div",pe,[(i(),s(u,null,g(b,(e,d)=>t("div",{key:e.name},[t("i",{style:m({borderColor:w[d]})},null,4),t("span",null,l(e.name),1),t("strong",null,[y(l(e.value),1),t("em",null,l(e.unit),1)])])),64))])],64)):a.visual==="structure-band"?(i(),s(u,{key:2},[t("div",he,[(i(),s(u,null,g(_,e=>t("i",{key:e.name,style:m({width:`${e.percent}%`,background:e.color})},null,4)),64))]),t("div",ve,[(i(),s(u,null,g(_,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("strong",null,l(e.percent)+"%",1)])),64))])],64)):a.visual==="rank-list"?(i(),s(u,{key:3},g(V,(e,d)=>t("div",{key:e.name,class:"guide-rank-row"},[t("span",null,l(d+1),1),t("em",null,l(e.name),1),t("i",null,[t("b",{style:m({width:`${e.percent}%`})},null,4)]),t("strong",null,l(e.value),1)])),64)):a.visual==="warning-band"?(i(),s(u,{key:4},[t("div",be,[t("strong",null,l(S.value),1),t("span",null,l(S.name),1)]),t("div",ye,[(i(),s(u,null,g(M,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("em",null,l(e.value),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)])])),64))])],64)):a.visual==="target-stack"?(i(),s(u,{key:5},g(T,e=>t("div",{key:e.name,class:"guide-target-row"},[t("span",null,l(e.name),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)]),t("strong",null,l(e.percent)+"%",1)])),64)):N("",!0)],2)]),_:2},1032,["class","width","height","title","data-unit"])),64))])])]))}},ze=re(fe,[["__scopeId","data-v-1d923a5c"]]);export{ze as default}; diff --git a/docs/assets/index-e9f36657-1784132466083.js b/docs/assets/index-e9f36657-1784132792831.js similarity index 100% rename from docs/assets/index-e9f36657-1784132466083.js rename to docs/assets/index-e9f36657-1784132792831.js diff --git a/docs/assets/index-ee5660f2-1784132792831.js b/docs/assets/index-ee5660f2-1784132792831.js new file mode 100644 index 0000000..72ee9b7 --- /dev/null +++ b/docs/assets/index-ee5660f2-1784132792831.js @@ -0,0 +1 @@ +var ea=Object.defineProperty,aa=Object.defineProperties;var na=Object.getOwnPropertyDescriptors;var oe=Object.getOwnPropertySymbols;var la=Object.prototype.hasOwnProperty,ta=Object.prototype.propertyIsEnumerable;var ce=(l,r,u)=>r in l?ea(l,r,{enumerable:!0,configurable:!0,writable:!0,value:u}):l[r]=u,N=(l,r)=>{for(var u in r||(r={}))la.call(r,u)&&ce(l,u,r[u]);if(oe)for(var u of oe(r))ta.call(r,u)&&ce(l,u,r[u]);return l},D=(l,r)=>aa(l,na(r));var M=(l,r,u)=>new Promise((g,x)=>{var m=A=>{try{$(u.next(A))}catch(b){x(b)}},X=A=>{try{$(u.throw(A))}catch(b){x(b)}},$=A=>A.done?g(A.value):Promise.resolve(A.value).then(m,X);$((u=u.apply(l,r)).next())});import{_ as ve}from"./index-a4d3ff67-1784132792831.js";import{r as sa,n as ia}from"./index-a1b5e9c0-1784132792831.js";import{n as ra,d as ua,f as se,a as G,s as oa,p as de}from"./data-ee410ed3-1784132792831.js";import{g as o,q as ca,h as va,w as ye,o as y,c as f,a,b as fe,x as ge,F as T,y as P,n as E,t as i,J as q,u as O,d as S}from"./index-1784132792831.js";import"./index-e9f36657-1784132792831.js";const Q=ya("/jsyApi"),me="/openApi";function da(l,r){return/^https?:\/\//.test(r)?r:`${l}${r.startsWith("/")?r:`/${r}`}`}function ya(l){const r=String(l||"/jsyApi").replace(/\/+$/,"");return r.endsWith("/api")?r:`${r}/api`}function fa(l){if((l==null?void 0:l.success)===!1||(l==null?void 0:l.code)!==void 0&&![0,200,"0","200"].includes(l.code)){const u=new Error((l==null?void 0:l.msg)||(l==null?void 0:l.message)||"接口请求失败");throw u.code=l==null?void 0:l.code,u}return ia(l)}function H(l,r,u,g={}){return sa(da(l,r),{params:u,timeout:g.timeout||16e3}).then(fa)}function be(l){return Array.isArray(l)?l:Array.isArray(l==null?void 0:l.rows)?l.rows:Array.isArray(l==null?void 0:l.list)?l.list:Array.isArray(l==null?void 0:l.data)?l.data:[]}function ga(l){return Array.isArray(l)?l.length>0:!l||typeof l!="object"?l!=null&&l!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(u=>l[u]!==void 0&&l[u]!==null&&l[u]!=="")}function ma(){return M(this,arguments,function*({areaCode:l}={}){const r={areaCode:l},u=[()=>H(Q,"/ai/livestockBalance",r,{timeout:18e3}),()=>H(me,"/ai/balance/advice",r,{timeout:18e3})];let g;for(const x of u)try{const m=yield x();if(ga(m))return m}catch(m){g=m}throw g||new Error("草畜平衡接口不可用")})}function ba(){return M(this,null,function*(){const l=[()=>H(Q,"/ai/livestockBalanceRows",{},{timeout:18e3}),()=>H(me,"/ai/balance/areaRows",{},{timeout:18e3})];let r;for(const u of l)try{const g=be(yield u());if(g.length)return g}catch(g){r=g}if(r)throw r;return[]})}function pa(l){return M(this,null,function*(){const r=[()=>H(Q,"/area/children",{areaCode:l},{timeout:12e3}),()=>H(Q,"/map/areaCode",{areaCode:l},{timeout:12e3})];let u,g=!1;for(const x of r)try{const m=be(yield x());if(m.length)return m;g=!0}catch(m){u=m}if(g)return[];throw u||new Error("区划接口不可用")})}const ka={class:"grass-livestock-balance"},ha={class:"balance-selector"},_a={class:"balance-scope-tabs"},wa=["onClick"],Ra={class:"balance-target-list"},Aa=["title","onClick"],Ca={class:"balance-action-box"},$a=["disabled"],Sa={key:0,class:"balance-running"},xa={class:"balance-running-head"},Ba={class:"balance-core-inner"},Na={class:"balance-running-title"},Ma={class:"balance-progress-line"},Ea={class:"balance-live-process"},Ta={key:1,class:"balance-waiting"},Pa={class:"balance-wait-core"},qa={class:"balance-core-ring is-empty"},za={class:"balance-core-inner"},Ia={class:"balance-preflight"},Va={key:2,class:"balance-analysis"},Da={class:"balance-dashboard"},Ha={class:"balance-object-block"},La={class:"balance-core"},ja={class:"balance-core-inner"},Ka={class:"balance-compare"},Fa={class:"balance-bar-row"},Oa={class:"balance-bar-row is-livestock"},Ja={class:"balance-detail"},Wa={class:"balance-process"},Ua={class:"balance-section-title"},Ya={class:"balance-process-track"},Ga={class:"balance-decision"},Qa={class:"balance-section-title"},Xa={class:"balance-conclusion"},Za={class:"balance-advice-list"},en={class:"balance-overload-ranking"},an={class:"balance-rank-list"},nn=326,ln=1310,tn=128,sn=8,rn=6200,fn={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(l,{emit:r}){const u=l,g=r,x=S(typeof window=="undefined"?1080:window.innerHeight),m=o(()=>{const e=Math.max(1080,Number(x.value)||1080);return Math.max(944,e-tn-sn)}),X=o(()=>m.value),$=S("county"),A=S(""),b=S("idle"),w=S(0),C=S(0),h=S(""),L=S({}),J=S([]),j=S([]);let B=!1,Z=0,W=null,U=0,K=0,z=null;const Y=o(()=>[...J.value,...j.value].map(e=>ra(L.value[e.key]||e,e))),pe=o(()=>Y.value.filter(e=>e.type==="county")),ee=o(()=>Y.value.filter(e=>e.type==="town")),ke=o(()=>Y.value.filter(e=>e.type==="village")),he=o(()=>$.value==="town"?ee.value:$.value==="village"?ke.value:pe.value),d=o(()=>Y.value.find(e=>e.key===A.value)||null),_=o(()=>!!d.value),k=o(()=>b.value==="running"),p=o(()=>_.value&&b.value==="done"),v=o(()=>ua(d.value||{})),ie=o(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),_e=o(()=>{var e;return((e=ie.value.find(n=>n.key===$.value))==null?void 0:e.name)||"县"}),we=o(()=>d.value?d.value.areaCode?`行政区划 ${d.value.areaCode}`:d.value.township||"核算对象":"等待选择核算对象"),Re=o(()=>h.value?h.value:_.value?p.value?"分析已完成":k.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),Ae=o(()=>p.value?"草畜平衡分析舱":"草畜平衡分析"),Ce=o(()=>_.value?k.value?"分析中":"待开始":"待选择"),$e=o(()=>_.value?k.value?`${d.value.name} 正在分析`:`${d.value.name} 待开始分析`:"先选择一个核算对象"),Se=o(()=>h.value?h.value:_.value?k.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),xe=o(()=>{const e=v.value;return e.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${e.delta>0?"超载量":"承载余量"} ${se(Math.abs(e.delta))},承载利用率 ${G(e.usageRate)}。`}),Be=o(()=>v.value.risk.key==="healthy"?"保持监测":v.value.risk.key==="watch"?"基本平衡":v.value.risk.key==="light"?"关注调控":v.value.delta===null?"按结果表判定":v.value.delta>0?"需调控载畜量":"承载能力可覆盖"),Ne=o(()=>v.value.risk.key==="healthy"||v.value.risk.key==="watch"?"保持监测":v.value.risk.key==="light"?"关注调控":v.value.delta===null?"结果表口径":v.value.delta>0?"需要调控":"保持监测"),Me=o(()=>{const e=Math.max(0,Math.min(130,Number(v.value.usageRate)||0));return`${Math.round(e/130*360)}deg`}),Ee=o(()=>[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核定草地范围、面积和产草量等级,形成生产力基础口径。"},{key:"forage",index:"02",name:"可利用草量折算",desc:"扣除不可食草量、生态保留量和利用限制,折算可供放牧利用草量。"},{key:"livestock",index:"03",name:"载畜量折算",desc:"依据实际存栏和草畜平衡标准,统一形成载畜压力口径。"},{key:"balance",index:"04",name:"平衡判定",desc:"对比草地承载能力与载畜压力,输出平衡状态和调控方案。"}]),I=o(()=>{const e=v.value;return[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核算草地面积与产草能力",pending:"等待草地参数",plan:"核定草地范围、面积和产草量等级"},{key:"forage",index:"02",name:"可利用草量折算",desc:"折算可供放牧利用草量",pending:"等待草量折算",plan:"扣除不可食草量、生态保留量和利用限制"},{key:"livestock",index:"03",name:"载畜量折算",desc:"形成实际载畜压力口径",pending:"等待载畜折算",plan:"依据实际存栏和草畜平衡标准进行折算"},{key:"balance",index:"04",name:"平衡判定",desc:"生成结论与调控方向",pending:"等待平衡判定",plan:["healthy","watch"].includes(e.risk.key)?"判定平衡状态并生成监测方案":"判定超载风险并生成调控方案"}]}),ae=o(()=>I.value[Math.min(C.value,I.value.length-1)]||I.value[0]),Te=o(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:p.value?"草地生产力核算":_.value?"等待核算":"等待选择",state:_.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:p.value?"可利用草量折算":"分析后折算",state:k.value?"active":p.value?"done":_.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:p.value?"载畜压力折算":"等待折算",state:k.value?"active":p.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:p.value?v.value.risk.label:"等待判定",state:p.value?"done":"disabled"}]),Pe=o(()=>p.value?oa(d.value,v.value.risk):[]),re=o(()=>ee.value.filter(e=>Number.isFinite(Number(e.overloadRate))).slice().sort((e,n)=>Number(n.overloadRate)-Number(e.overloadRate)).slice(0,10)),qe=o(()=>Math.max(1,...re.value.map(e=>Math.max(0,Number(e.overloadRate)||0)))),ze=o(()=>re.value.map((e,n)=>D(N({},e),{rank:n+1})));function Ie(e){const n=Math.max(0,Number(e==null?void 0:e.overloadRate)||0);return Math.max(6,Math.min(100,n/qe.value*100))}function Ve(e){const n=Number(e==null?void 0:e.overloadRate);return Number.isFinite(n)?n>=2.5?"is-alert":n>=2?"is-warning":"is-stable":"is-empty"}function ne(){x.value=typeof window=="undefined"?1080:window.innerHeight}ca(()=>{ne(),window.addEventListener("resize",ne),g("loading-progress",{progress:100}),g("map-ready"),Ke()}),va(()=>{B=!0,window.removeEventListener("resize",ne),Z+=1,U+=1,K+=1,F()}),ye(()=>{var e;return(e=d.value)==null?void 0:e.key},()=>{b.value="idle",w.value=0,C.value=0,h.value="",z=null,F()}),ye(()=>u.active,e=>{e||!k.value||(b.value="idle",w.value=0,C.value=0,h.value="",z=null,F())});function De(e){$.value=e,A.value="",b.value="idle",h.value=""}function He(e){e&&($.value=["county","town","village"].includes(e.type)?e.type:"county",A.value=e.key,b.value="idle",h.value="")}function Le(){if(!u.active||!d.value||k.value)return;b.value="running",w.value=0,C.value=0,h.value="",F();const e=Date.now();let n=!1;const t=je().catch(s=>(n=!0,console.warn("[grassLivestockBalance] balance result unavailable",s),h.value=(s==null?void 0:s.message)||"草畜平衡结果接口暂不可用",null));z=t,W=window.setInterval(()=>{if(B)return;const s=z===t?92:100;w.value=Math.min(s,w.value+2),C.value=Math.min(I.value.length-1,Math.floor(w.value/25))},140),t.finally(()=>M(this,null,function*(){const s=rn-(Date.now()-e);if(s>0&&(yield new Promise(c=>window.setTimeout(c,s))),!(B||b.value!=="running"||z!==t)){if(z=null,F(),!d.value){w.value=0,C.value=0,b.value="idle";return}if(n||!ue(d.value)){w.value=0,C.value=0,b.value="idle";return}w.value=100,C.value=I.value.length-1,b.value="done"}}))}function je(){return M(this,null,function*(){const e=d.value;if(!e)throw new Error("请先选择具体核算对象");if(L.value[e.key])return L.value[e.key];if(ue(e))return e;const n=++Z,t=yield ma({areaCode:e.areaCode});if(B||n!==Z)return null;if(!t||typeof t!="object"||!Object.keys(t).length)throw new Error("未查询到该对象的草畜平衡结果");return L.value=D(N({},L.value),{[e.key]:t}),t})}function Ke(){return M(this,null,function*(){const e=++U;try{const n=yield ba();if(B||e!==U)return;if(J.value=Ye(n),!J.value.length){h.value="数据库暂无县、乡镇草畜平衡结果",j.value=[];return}h.value="",Fe()}catch(n){if(B||e!==U)return;console.warn("[grassLivestockBalance] area balance rows unavailable",n),J.value=[],j.value=[],h.value=(n==null?void 0:n.message)||"草畜平衡结果接口暂不可用"}})}function Fe(){return M(this,null,function*(){const e=++K,n=ee.value.filter(t=>t==null?void 0:t.areaCode).map(t=>N({},t));if(n.length)try{const t=yield Promise.all(n.map(s=>M(this,null,function*(){try{const c=yield pa(s.areaCode);return B||e!==K?[]:Oe(c,s)}catch(c){return[]}})));if(B||e!==K)return;j.value=t.flat()}catch(t){if(B||e!==K)return;j.value=[]}})}function Oe(e=[],n={}){const s=(Array.isArray(e)?e:[]).filter(c=>{const R=le(c),V=te(c);return!!(R||V)}).map((c,R)=>Ue(c,R,n)).filter(Boolean);return Je(s,n)}function Je(e=[],n={}){const t=new Map;return e.forEach(s=>{const c=We(s,n),R=t.get(c);if(!R){t.set(c,D(N({},s),{duplicateSources:[s.source].filter(Boolean)}));return}const Ze=!R.areaCode&&s.areaCode?N(N({},R),s):R;t.set(c,D(N({},Ze),{duplicateSources:[...R.duplicateSources||[],s.source].filter(Boolean)}))}),[...t.values()]}function We(e={},n={}){const t=String(e.name||"").replace(/\s+/g,"").trim();return`${String(e.township||n.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${t||e.areaCode||"unknown-village"}`}function Ue(e={},n=0,t={}){const s=le(e),c=te(e)||(s?`村级区划${s}`:"");return!s&&!c?null:{key:`village-${s||`${t.key||t.name}-${c}-${n}`}`,type:"village",name:c,areaCode:s,township:t.name,source:e,year:"2026"}}function Ye(e=[]){return(Array.isArray(e)?e:[]).map((n,t)=>Ge(n,t)).filter(Boolean)}function Ge(e={},n=0){const t=le(e),s=te(e)||(t?`核算对象${t}`:"");if(!t&&!s)return null;const c=String(e.type||e.areaType||e.area_type||"").trim(),R=t.length===6?"county":t.length===9?"town":c||"area",V=["county","town"].includes(c)?c:R;return["county","town"].includes(V)?D(N({},e),{key:e.key||`${V}-${t||n}`,type:V,name:s,areaCode:t,year:e.year||"2026"}):null}function ue(e={}){return["overloadRate","overload_rate","bearingCapacity","bearing_capacity","livestockCapacity","livestock_capacity"].some(n=>(e==null?void 0:e[n])!==void 0&&(e==null?void 0:e[n])!==null&&(e==null?void 0:e[n])!=="")}function le(e={}){return String(de(e,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function te(e={}){return String(de(e,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function F(){W&&(window.clearInterval(W),W=null)}function Qe(e){return p.value||k.value&&e<=C.value}function Xe(e){return e(y(),f("div",ka,[n[15]||(n[15]=a("div",{class:"balance-backdrop","aria-hidden":"true"},[a("div",{class:"balance-orbit is-left"}),a("div",{class:"balance-orbit is-right"}),a("div",{class:"balance-energy-band"})],-1)),a("div",{class:"balance-screen",style:q({"--balance-card-height":`${m.value}px`})},[fe(ve,{class:"balance-card balance-target-card",title:"核算对象",width:nn,height:X.value},{default:ge(()=>{var t;return[a("div",ha,[a("div",_a,[(y(!0),f(T,null,P(ie.value,s=>(y(),f("button",{key:s.key,type:"button",class:E({active:$.value===s.key}),onClick:c=>De(s.key)},i(s.name),11,wa))),128))]),a("div",Ra,[(y(!0),f(T,null,P(he.value,s=>{var c;return y(),f("button",{key:s.key,type:"button",class:E({active:s.key===((c=d.value)==null?void 0:c.key)}),title:s.name,onClick:R=>He(s)},[a("span",null,i(s.name),1)],10,Aa)}),128))]),a("div",Ca,[n[0]||(n[0]=a("span",null,"当前对象",-1)),a("strong",null,i(((t=d.value)==null?void 0:t.name)||"未选择"),1),a("small",null,i(Re.value),1),a("button",{type:"button",disabled:!_.value||k.value,onClick:Le},i(k.value?"分析中...":p.value?"重新分析":"开始分析"),9,$a)])])]}),_:1},8,["height"]),fe(ve,{class:"balance-card balance-sheet-card",title:Ae.value,width:ln,height:m.value},{default:ge(()=>[a("div",{class:E(["balance-sheet",{"is-ready":p.value,"is-running":k.value}])},[n[14]||(n[14]=a("div",{class:"balance-field-lines","aria-hidden":"true"},[a("i"),a("i"),a("i")],-1)),k.value?(y(),f("section",Sa,[a("div",xa,[a("div",{class:"balance-core-ring is-running",style:q({"--usage-angle":`${w.value*3.6}deg`})},[a("div",Ba,[n[1]||(n[1]=a("span",null,"分析进度",-1)),a("strong",null,i(w.value)+"%",1),a("small",null,i(ae.value.name),1)])],4),a("div",Na,[a("span",null,i(d.value.name),1),a("strong",null,i(ae.value.desc),1),a("small",null,i(ae.value.plan),1),a("div",Ma,[a("i",{style:q({width:`${w.value}%`})},null,4)])])]),a("div",Ea,[(y(!0),f(T,null,P(I.value,(t,s)=>(y(),f("div",{key:t.key,class:E(["balance-live-step",`is-${Xe(s)}`])},[a("span",null,i(t.index),1),a("div",null,[a("strong",null,i(t.name),1),a("p",null,i(Qe(s)?t.plan:t.pending),1)])],2))),128))])])):p.value?(y(),f("section",Va,[a("div",Da,[a("div",Ha,[a("span",null,i(_e.value)+"核算对象",1),a("strong",null,i(d.value.name),1),a("small",null,i(we.value),1)]),a("div",La,[a("div",{class:"balance-core-ring",style:q({"--usage-angle":Me.value})},[a("div",ja,[n[5]||(n[5]=a("span",null,"承载利用率",-1)),a("strong",null,i(O(G)(v.value.usageRate)),1),a("small",null,"超载率 "+i(O(G)(v.value.overloadRate)),1)])],4),n[6]||(n[6]=a("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),a("div",{class:E(["balance-verdict-card",`is-${v.value.risk.key}`])},[n[7]||(n[7]=a("span",null,"分析结论",-1)),a("strong",null,i(v.value.risk.label),1),a("small",null,i(Be.value),1)],2)]),a("div",Ka,[a("div",Fa,[n[8]||(n[8]=a("span",null,"理论承载力",-1)),a("div",null,[a("i",{style:q({width:`${v.value.bearingPercent}%`})},null,4)]),a("strong",null,i(O(se)(v.value.bearing)),1)]),a("div",Oa,[n[9]||(n[9]=a("span",null,"实际载畜量",-1)),a("div",null,[a("i",{style:q({width:`${v.value.livestockPercent}%`})},null,4)]),a("strong",null,i(O(se)(v.value.livestock)),1)])]),a("div",Ja,[a("div",Wa,[a("div",Ua,[n[10]||(n[10]=a("span",null,"分析过程",-1)),a("small",null,i(d.value.year||"当前年度"),1)]),a("div",Ya,[(y(!0),f(T,null,P(Te.value,t=>(y(),f("span",{key:`track-${t.key}`,class:E(`is-${t.state}`)},i(t.name),3))),128))]),(y(!0),f(T,null,P(Ee.value,t=>(y(),f("div",{key:t.key,class:"balance-formula-row"},[a("span",null,i(t.index),1),a("div",null,[a("strong",null,i(t.name),1),a("p",null,i(t.desc),1)])]))),128))]),a("div",Ga,[a("div",Qa,[n[11]||(n[11]=a("span",null,"结论与建议",-1)),a("small",null,i(Ne.value),1)]),a("div",Xa,[a("strong",null,i(v.value.risk.description),1),a("p",null,i(xe.value),1)]),a("div",Za,[(y(!0),f(T,null,P(Pe.value,(t,s)=>(y(),f("div",{key:`${t}-${s}`,class:"balance-advice-item"},[a("span",null,i(s+1),1),a("p",null,i(t),1)]))),128))])]),a("div",en,[n[13]||(n[13]=a("div",{class:"balance-section-title"},[a("span",null,"超载率排行"),a("small",null,"乡镇 Top10")],-1)),a("div",an,[(y(!0),f(T,null,P(ze.value,t=>(y(),f("div",{key:`overload-${t.key||t.name}`,class:E(["balance-rank-row",Ve(t)]),style:q({"--rank-progress":`${Ie(t)}%`})},[a("span",null,i(t.rank),1),a("strong",null,i(t.name),1),n[12]||(n[12]=a("div",null,[a("i")],-1)),a("em",null,i(O(G)(t.overloadRate)),1)],6))),128))])])])])):(y(),f("section",Ta,[a("div",Pa,[a("div",qa,[a("div",za,[a("span",null,i(Ce.value),1),a("strong",null,i(_.value?d.value.name:"草畜平衡"),1),a("small",null,i(_.value?"待执行模型分析":"等待核算对象"),1)])]),a("h2",null,i($e.value),1),a("p",null,i(Se.value),1)]),a("div",Ia,[a("span",{class:E({active:_.value})},"对象锁定",2),n[2]||(n[2]=a("i",null,null,-1)),a("span",{class:E({active:_.value})},"等待启动分析",2),n[3]||(n[3]=a("i",null,null,-1)),n[4]||(n[4]=a("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}};export{fn as default}; diff --git a/docs/assets/index-f58ea5e1-1784132466083.js b/docs/assets/index-f58ea5e1-1784132466083.js deleted file mode 100644 index 289a707..0000000 --- a/docs/assets/index-f58ea5e1-1784132466083.js +++ /dev/null @@ -1 +0,0 @@ -var Ge=Object.defineProperty,Qe=Object.defineProperties;var Xe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var Ze=Object.prototype.hasOwnProperty,ea=Object.prototype.propertyIsEnumerable;var ue=(n,u,o)=>u in n?Ge(n,u,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[u]=o,S=(n,u)=>{for(var o in u||(u={}))Ze.call(u,o)&&ue(n,o,u[o]);if(ie)for(var o of ie(u))ea.call(u,o)&&ue(n,o,u[o]);return n},H=(n,u)=>Qe(n,Xe(u));var B=(n,u,o)=>new Promise((w,$)=>{var m=_=>{try{C(o.next(_))}catch(p){$(p)}},W=_=>{try{C(o.throw(_))}catch(p){$(p)}},C=_=>_.done?w(_.value):Promise.resolve(_.value).then(m,W);C((o=o.apply(n,u)).next())});import{_ as oe}from"./index-fe70e5de-1784132466083.js";import{r as aa,n as na}from"./index-ed255eef-1784132466083.js";import{a as ce,n as la,d as ta,f as ee,c as F,s as sa,p as ve}from"./data-5c83c66b-1784132466083.js";import{g as c,q as ra,h as ia,w as de,o as f,c as g,a as e,b as ye,x as fe,F as z,y as I,n as N,t as i,J as T,u as K,d as M}from"./index-1784132466083.js";import"./index-e9f36657-1784132466083.js";const ae=ca("/jsyApi"),ua="/openApi";function oa(n,u){return/^https?:\/\//.test(u)?u:`${n}${u.startsWith("/")?u:`/${u}`}`}function ca(n){const u=String(n||"/jsyApi").replace(/\/+$/,"");return u.endsWith("/api")?u:`${u}/api`}function va(n){if((n==null?void 0:n.success)===!1||(n==null?void 0:n.code)!==void 0&&![0,200,"0","200"].includes(n.code)){const o=new Error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"接口请求失败");throw o.code=n==null?void 0:n.code,o}return na(n)}function J(n,u,o,w={}){return aa(oa(n,u),{params:o,timeout:w.timeout||16e3}).then(va)}function da(n){return Array.isArray(n)?n:Array.isArray(n==null?void 0:n.rows)?n.rows:Array.isArray(n==null?void 0:n.list)?n.list:Array.isArray(n==null?void 0:n.data)?n.data:[]}function ya(n){return Array.isArray(n)?n.length>0:!n||typeof n!="object"?n!=null&&n!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(o=>n[o]!==void 0&&n[o]!==null&&n[o]!=="")}function ge(){return B(this,arguments,function*({areaCode:n}={}){const u={areaCode:n},o=[()=>J(ae,"/ai/livestockBalance",u,{timeout:18e3}),()=>J(ua,"/ai/balance/advice",u,{timeout:18e3})];let w;for(const $ of o)try{const m=yield $();if(ya(m))return m}catch(m){w=m}throw w||new Error("草畜平衡接口不可用")})}function fa(n){return B(this,null,function*(){const u=[()=>J(ae,"/area/children",{areaCode:n},{timeout:12e3}),()=>J(ae,"/map/areaCode",{areaCode:n},{timeout:12e3})];let o,w=!1;for(const $ of u)try{const m=da(yield $());if(m.length)return m;w=!0}catch(m){o=m}if(w)return[];throw o||new Error("区划接口不可用")})}const ga={class:"grass-livestock-balance"},ma={class:"balance-selector"},ba={class:"balance-scope-tabs"},pa=["onClick"],ka={class:"balance-target-list"},ha=["title","onClick"],wa={class:"balance-action-box"},_a=["disabled"],Ra={key:0,class:"balance-running"},Aa={class:"balance-running-head"},Ca={class:"balance-core-inner"},xa={class:"balance-running-title"},Sa={class:"balance-progress-line"},$a={class:"balance-live-process"},Ba={key:1,class:"balance-waiting"},Na={class:"balance-wait-core"},Ma={class:"balance-core-ring is-empty"},Ea={class:"balance-core-inner"},Pa={class:"balance-preflight"},za={key:2,class:"balance-analysis"},Ia={class:"balance-dashboard"},Ta={class:"balance-object-block"},qa={class:"balance-core"},Va={class:"balance-core-inner"},ja={class:"balance-compare"},Da={class:"balance-bar-row"},Ha={class:"balance-bar-row is-livestock"},Ka={class:"balance-detail"},La={class:"balance-process"},Oa={class:"balance-section-title"},Fa={class:"balance-process-track"},Ja={class:"balance-decision"},Wa={class:"balance-section-title"},Ua={class:"balance-conclusion"},Ya={class:"balance-advice-list"},Ga={class:"balance-overload-ranking"},Qa={class:"balance-rank-list"},Xa=326,Za=1310,en=128,an=8,nn=6200,cn={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(n,{emit:u}){const o=n,w=u,$=M(typeof window=="undefined"?1080:window.innerHeight),m=c(()=>{const a=Math.max(1080,Number($.value)||1080);return Math.max(944,a-en-an)}),W=c(()=>m.value),C=M("county"),_=M(""),p=M("idle"),R=M(0),x=M(0),A=M(""),E=M({}),U=M([]);let P=!1,Y=0,L=null,G=0,j=0,q=null;const O=c(()=>[...ce,...U.value].map(a=>la(E.value[a.key],a))),me=c(()=>O.value.filter(a=>a.type==="county")),Q=c(()=>O.value.filter(a=>a.type==="town")),be=c(()=>O.value.filter(a=>a.type==="village")),pe=c(()=>C.value==="town"?Q.value:C.value==="village"?be.value:me.value),d=c(()=>O.value.find(a=>a.key===_.value)||null),h=c(()=>!!d.value),k=c(()=>p.value==="running"),b=c(()=>h.value&&p.value==="done"),v=c(()=>ta(d.value||{})),ne=c(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),ke=c(()=>{var a;return((a=ne.value.find(l=>l.key===C.value))==null?void 0:a.name)||"县"}),he=c(()=>d.value?d.value.areaCode?`行政区划 ${d.value.areaCode}`:d.value.township||"核算对象":"等待选择核算对象"),we=c(()=>A.value?A.value:h.value?b.value?"分析已完成":k.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),_e=c(()=>b.value?"草畜平衡分析舱":"草畜平衡分析"),Re=c(()=>h.value?k.value?"分析中":"待开始":"待选择"),Ae=c(()=>h.value?k.value?`${d.value.name} 正在分析`:`${d.value.name} 待开始分析`:"先选择一个核算对象"),Ce=c(()=>A.value?A.value:h.value?k.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),xe=c(()=>{const a=v.value;return a.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${a.delta>0?"超载量":"承载余量"} ${ee(Math.abs(a.delta))},承载利用率 ${F(a.usageRate)}。`}),Se=c(()=>v.value.risk.key==="healthy"?"保持监测":v.value.risk.key==="watch"?"基本平衡":v.value.risk.key==="light"?"关注调控":v.value.delta===null?"按结果表判定":v.value.delta>0?"需调控载畜量":"承载能力可覆盖"),$e=c(()=>v.value.risk.key==="healthy"||v.value.risk.key==="watch"?"保持监测":v.value.risk.key==="light"?"关注调控":v.value.delta===null?"结果表口径":v.value.delta>0?"需要调控":"保持监测"),Be=c(()=>{const a=Math.max(0,Math.min(130,Number(v.value.usageRate)||0));return`${Math.round(a/130*360)}deg`}),Ne=c(()=>[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核定草地范围、面积和产草量等级,形成生产力基础口径。"},{key:"forage",index:"02",name:"可利用草量折算",desc:"扣除不可食草量、生态保留量和利用限制,折算可供放牧利用草量。"},{key:"livestock",index:"03",name:"载畜量折算",desc:"依据实际存栏和草畜平衡标准,统一形成载畜压力口径。"},{key:"balance",index:"04",name:"平衡判定",desc:"对比草地承载能力与载畜压力,输出平衡状态和调控方案。"}]),V=c(()=>{const a=v.value;return[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核算草地面积与产草能力",pending:"等待草地参数",plan:"核定草地范围、面积和产草量等级"},{key:"forage",index:"02",name:"可利用草量折算",desc:"折算可供放牧利用草量",pending:"等待草量折算",plan:"扣除不可食草量、生态保留量和利用限制"},{key:"livestock",index:"03",name:"载畜量折算",desc:"形成实际载畜压力口径",pending:"等待载畜折算",plan:"依据实际存栏和草畜平衡标准进行折算"},{key:"balance",index:"04",name:"平衡判定",desc:"生成结论与调控方向",pending:"等待平衡判定",plan:["healthy","watch"].includes(a.risk.key)?"判定平衡状态并生成监测方案":"判定超载风险并生成调控方案"}]}),X=c(()=>V.value[Math.min(x.value,V.value.length-1)]||V.value[0]),Me=c(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:b.value?"草地生产力核算":h.value?"等待核算":"等待选择",state:h.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:b.value?"可利用草量折算":"分析后折算",state:k.value?"active":b.value?"done":h.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:b.value?"载畜压力折算":"等待折算",state:k.value?"active":b.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:b.value?v.value.risk.label:"等待判定",state:b.value?"done":"disabled"}]),Ee=c(()=>b.value?sa(d.value,v.value.risk):[]),le=c(()=>Q.value.filter(a=>Number.isFinite(Number(a.overloadRate))).slice().sort((a,l)=>Number(l.overloadRate)-Number(a.overloadRate)).slice(0,10)),Pe=c(()=>Math.max(1,...le.value.map(a=>Math.max(0,Number(a.overloadRate)||0)))),ze=c(()=>le.value.map((a,l)=>H(S({},a),{rank:l+1})));function Ie(a){const l=Math.max(0,Number(a==null?void 0:a.overloadRate)||0);return Math.max(6,Math.min(100,l/Pe.value*100))}function Te(a){const l=Number(a==null?void 0:a.overloadRate);return Number.isFinite(l)?l>=2.5?"is-alert":l>=2?"is-warning":"is-stable":"is-empty"}function Z(){$.value=typeof window=="undefined"?1080:window.innerHeight}ra(()=>{Z(),window.addEventListener("resize",Z),w("loading-progress",{progress:100}),w("map-ready"),He(),Ke()}),ia(()=>{P=!0,window.removeEventListener("resize",Z),Y+=1,G+=1,j+=1,D()}),de(()=>{var a;return(a=d.value)==null?void 0:a.key},()=>{p.value="idle",R.value=0,x.value=0,A.value="",q=null,D()}),de(()=>o.active,a=>{a||!k.value||(p.value="idle",R.value=0,x.value=0,A.value="",q=null,D())});function qe(a){C.value=a,_.value="",p.value="idle",A.value=""}function Ve(a){a&&(C.value=["county","town","village"].includes(a.type)?a.type:"county",_.value=a.key,p.value="idle",A.value="")}function je(){if(!o.active||!d.value||k.value)return;p.value="running",R.value=0,x.value=0,A.value="",D();const a=Date.now();let l=!1;const t=De().catch(s=>(l=!0,console.warn("[grassLivestockBalance] fallback balance row used",s),A.value="接口暂不可用,已使用本地兜底口径",d.value));q=t,L=window.setInterval(()=>{if(P)return;const s=q===t?92:100;R.value=Math.min(s,R.value+2),x.value=Math.min(V.value.length-1,Math.floor(R.value/25))},140),t.finally(()=>B(this,null,function*(){var r;const s=nn-(Date.now()-a);if(s>0&&(yield new Promise(y=>window.setTimeout(y,s))),!(P||p.value!=="running"||q!==t)){if(q=null,D(),!d.value){R.value=0,x.value=0,p.value="idle";return}!l&&!E.value[(r=d.value)==null?void 0:r.key]&&(A.value="未查询到接口结果,已使用本地兜底口径"),R.value=100,x.value=V.value.length-1,p.value="done"}}))}function De(){return B(this,null,function*(){const a=d.value;if(!a)throw new Error("请先选择具体核算对象");if(E.value[a.key])return E.value[a.key];const l=++Y,t=yield ge({areaCode:a.areaCode});if(P||l!==Y)return null;if(!t||typeof t!="object"||!Object.keys(t).length)throw new Error("未查询到该对象的草畜平衡结果");return E.value=H(S({},E.value),{[a.key]:t}),t})}function He(){return B(this,null,function*(){const a=++G,l=ce.filter(r=>["county","town"].includes(r==null?void 0:r.type)&&(r==null?void 0:r.areaCode)).map(r=>S({},r));if(!l.length)return;const t=yield Promise.all(l.map(r=>B(this,null,function*(){try{const y=yield ge({areaCode:r.areaCode});return y&&typeof y=="object"&&Object.keys(y).length?{key:r.key,result:y}:null}catch(y){return null}})));if(P||a!==G)return;const s=S({},E.value);t.forEach(r=>{r!=null&&r.key&&(s[r.key]=r.result)}),E.value=s})}function Ke(){return B(this,null,function*(){const a=++j,l=Q.value.filter(t=>t==null?void 0:t.areaCode).map(t=>S({},t));if(l.length)try{const t=yield Promise.all(l.map(s=>B(this,null,function*(){try{const r=yield fa(s.areaCode);return P||a!==j?[]:Le(r,s)}catch(r){return[]}})));if(P||a!==j)return;U.value=t.flat()}catch(t){if(P||a!==j)return;U.value=[]}})}function Le(a=[],l={}){const s=(Array.isArray(a)?a:[]).filter(r=>{const y=te(r),re=se(r);return!!(y||re)}).map((r,y)=>Je(r,y,l)).filter(Boolean);return Oe(s,l)}function Oe(a=[],l={}){const t=new Map;return a.forEach(s=>{const r=Fe(s,l),y=t.get(r);if(!y){t.set(r,H(S({},s),{duplicateSources:[s.source].filter(Boolean)}));return}const Ye=!y.areaCode&&s.areaCode?S(S({},y),s):y;t.set(r,H(S({},Ye),{duplicateSources:[...y.duplicateSources||[],s.source].filter(Boolean)}))}),[...t.values()]}function Fe(a={},l={}){const t=String(a.name||"").replace(/\s+/g,"").trim();return`${String(a.township||l.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${t||a.areaCode||"unknown-village"}`}function Je(a={},l=0,t={}){const s=te(a),r=se(a)||(s?`村级区划${s}`:"");return!s&&!r?null:{key:`village-${s||`${t.key||t.name}-${r}-${l}`}`,type:"village",name:r,areaCode:s,township:t.name,source:a,year:"2026"}}function te(a={}){return String(ve(a,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function se(a={}){return String(ve(a,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function D(){L&&(window.clearInterval(L),L=null)}function We(a){return b.value||k.value&&a<=x.value}function Ue(a){return a(f(),g("div",ga,[l[15]||(l[15]=e("div",{class:"balance-backdrop","aria-hidden":"true"},[e("div",{class:"balance-orbit is-left"}),e("div",{class:"balance-orbit is-right"}),e("div",{class:"balance-energy-band"})],-1)),e("div",{class:"balance-screen",style:T({"--balance-card-height":`${m.value}px`})},[ye(oe,{class:"balance-card balance-target-card",title:"核算对象",width:Xa,height:W.value},{default:fe(()=>{var t;return[e("div",ma,[e("div",ba,[(f(!0),g(z,null,I(ne.value,s=>(f(),g("button",{key:s.key,type:"button",class:N({active:C.value===s.key}),onClick:r=>qe(s.key)},i(s.name),11,pa))),128))]),e("div",ka,[(f(!0),g(z,null,I(pe.value,s=>{var r;return f(),g("button",{key:s.key,type:"button",class:N({active:s.key===((r=d.value)==null?void 0:r.key)}),title:s.name,onClick:y=>Ve(s)},[e("span",null,i(s.name),1)],10,ha)}),128))]),e("div",wa,[l[0]||(l[0]=e("span",null,"当前对象",-1)),e("strong",null,i(((t=d.value)==null?void 0:t.name)||"未选择"),1),e("small",null,i(we.value),1),e("button",{type:"button",disabled:!h.value||k.value,onClick:je},i(k.value?"分析中...":b.value?"重新分析":"开始分析"),9,_a)])])]}),_:1},8,["height"]),ye(oe,{class:"balance-card balance-sheet-card",title:_e.value,width:Za,height:m.value},{default:fe(()=>[e("div",{class:N(["balance-sheet",{"is-ready":b.value,"is-running":k.value}])},[l[14]||(l[14]=e("div",{class:"balance-field-lines","aria-hidden":"true"},[e("i"),e("i"),e("i")],-1)),k.value?(f(),g("section",Ra,[e("div",Aa,[e("div",{class:"balance-core-ring is-running",style:T({"--usage-angle":`${R.value*3.6}deg`})},[e("div",Ca,[l[1]||(l[1]=e("span",null,"分析进度",-1)),e("strong",null,i(R.value)+"%",1),e("small",null,i(X.value.name),1)])],4),e("div",xa,[e("span",null,i(d.value.name),1),e("strong",null,i(X.value.desc),1),e("small",null,i(X.value.plan),1),e("div",Sa,[e("i",{style:T({width:`${R.value}%`})},null,4)])])]),e("div",$a,[(f(!0),g(z,null,I(V.value,(t,s)=>(f(),g("div",{key:t.key,class:N(["balance-live-step",`is-${Ue(s)}`])},[e("span",null,i(t.index),1),e("div",null,[e("strong",null,i(t.name),1),e("p",null,i(We(s)?t.plan:t.pending),1)])],2))),128))])])):b.value?(f(),g("section",za,[e("div",Ia,[e("div",Ta,[e("span",null,i(ke.value)+"核算对象",1),e("strong",null,i(d.value.name),1),e("small",null,i(he.value),1)]),e("div",qa,[e("div",{class:"balance-core-ring",style:T({"--usage-angle":Be.value})},[e("div",Va,[l[5]||(l[5]=e("span",null,"承载利用率",-1)),e("strong",null,i(K(F)(v.value.usageRate)),1),e("small",null,"超载率 "+i(K(F)(v.value.overloadRate)),1)])],4),l[6]||(l[6]=e("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),e("div",{class:N(["balance-verdict-card",`is-${v.value.risk.key}`])},[l[7]||(l[7]=e("span",null,"分析结论",-1)),e("strong",null,i(v.value.risk.label),1),e("small",null,i(Se.value),1)],2)]),e("div",ja,[e("div",Da,[l[8]||(l[8]=e("span",null,"理论承载力",-1)),e("div",null,[e("i",{style:T({width:`${v.value.bearingPercent}%`})},null,4)]),e("strong",null,i(K(ee)(v.value.bearing)),1)]),e("div",Ha,[l[9]||(l[9]=e("span",null,"实际载畜量",-1)),e("div",null,[e("i",{style:T({width:`${v.value.livestockPercent}%`})},null,4)]),e("strong",null,i(K(ee)(v.value.livestock)),1)])]),e("div",Ka,[e("div",La,[e("div",Oa,[l[10]||(l[10]=e("span",null,"分析过程",-1)),e("small",null,i(d.value.year||"当前年度"),1)]),e("div",Fa,[(f(!0),g(z,null,I(Me.value,t=>(f(),g("span",{key:`track-${t.key}`,class:N(`is-${t.state}`)},i(t.name),3))),128))]),(f(!0),g(z,null,I(Ne.value,t=>(f(),g("div",{key:t.key,class:"balance-formula-row"},[e("span",null,i(t.index),1),e("div",null,[e("strong",null,i(t.name),1),e("p",null,i(t.desc),1)])]))),128))]),e("div",Ja,[e("div",Wa,[l[11]||(l[11]=e("span",null,"结论与建议",-1)),e("small",null,i($e.value),1)]),e("div",Ua,[e("strong",null,i(v.value.risk.description),1),e("p",null,i(xe.value),1)]),e("div",Ya,[(f(!0),g(z,null,I(Ee.value,(t,s)=>(f(),g("div",{key:`${t}-${s}`,class:"balance-advice-item"},[e("span",null,i(s+1),1),e("p",null,i(t),1)]))),128))])]),e("div",Ga,[l[13]||(l[13]=e("div",{class:"balance-section-title"},[e("span",null,"超载率排行"),e("small",null,"乡镇 Top10")],-1)),e("div",Qa,[(f(!0),g(z,null,I(ze.value,t=>(f(),g("div",{key:`overload-${t.key||t.name}`,class:N(["balance-rank-row",Te(t)]),style:T({"--rank-progress":`${Ie(t)}%`})},[e("span",null,i(t.rank),1),e("strong",null,i(t.name),1),l[12]||(l[12]=e("div",null,[e("i")],-1)),e("em",null,i(K(F)(t.overloadRate)),1)],6))),128))])])])])):(f(),g("section",Ba,[e("div",Na,[e("div",Ma,[e("div",Ea,[e("span",null,i(Re.value),1),e("strong",null,i(h.value?d.value.name:"草畜平衡"),1),e("small",null,i(h.value?"待执行模型分析":"等待核算对象"),1)])]),e("h2",null,i(Ae.value),1),e("p",null,i(Ce.value),1)]),e("div",Pa,[e("span",{class:N({active:h.value})},"对象锁定",2),l[2]||(l[2]=e("i",null,null,-1)),e("span",{class:N({active:h.value})},"等待启动分析",2),l[3]||(l[3]=e("i",null,null,-1)),l[4]||(l[4]=e("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}};export{cn as default}; diff --git a/docs/assets/index-503e7d65-1784132466083.js b/docs/assets/index-fe494e89-1784132792831.js similarity index 99% rename from docs/assets/index-503e7d65-1784132466083.js rename to docs/assets/index-fe494e89-1784132792831.js index da32e19..2f06ee0 100644 --- a/docs/assets/index-503e7d65-1784132466083.js +++ b/docs/assets/index-fe494e89-1784132792831.js @@ -1,4 +1,4 @@ -var fl=Object.defineProperty,ml=Object.defineProperties;var gl=Object.getOwnPropertyDescriptors;var qa=Object.getOwnPropertySymbols;var ir=Object.prototype.hasOwnProperty,nr=Object.prototype.propertyIsEnumerable;var ma=Math.pow,ar=(b,e,t)=>e in b?fl(b,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):b[e]=t,R=(b,e)=>{for(var t in e||(e={}))ir.call(e,t)&&ar(b,t,e[t]);if(qa)for(var t of qa(e))nr.call(e,t)&&ar(b,t,e[t]);return b},$=(b,e)=>ml(b,gl(e));var rr=(b,e)=>{var t={};for(var a in b)ir.call(b,a)&&e.indexOf(a)<0&&(t[a]=b[a]);if(b!=null&&qa)for(var a of qa(b))e.indexOf(a)<0&&nr.call(b,a)&&(t[a]=b[a]);return t};var he=(b,e,t)=>new Promise((a,n)=>{var s=d=>{try{u(t.next(d))}catch(h){n(h)}},o=d=>{try{u(t.throw(d))}catch(h){n(h)}},u=d=>d.done?a(d.value):Promise.resolve(d.value).then(s,o);u((t=t.apply(b,e)).next())});import{q as Yr,h as jr,w as qt,o as I,c as _,a as f,d as V,K as yl,A as jt,g as k,L as Ee,s as Qe,v as bl,C as Ua,j as Le,n as Ye,t as P,F as ie,y as pe,u as j,b as H,x as oe,J as Ct,B as Wt,e as Ka,H as Xt,f as Za,N as ga}from"./index-1784132466083.js";import{H as Pe}from"./index.esm.min-e7a22049-1784132466083.js";import{_ as le}from"./index-fe70e5de-1784132466083.js";import{t as Zi,S as na,u as ni,v as Sa,w as vl,V as re,F as wl,C as bt,G as Te,c as Ll,d as Tl,f as Sl,g as Wi,L as Jt,D as Re,a as be,h as Xa,R as st,A as Ie,N as sr,b as qe,P as _t,o as Qt,n as ea,x as Ml,T as kl,B as Pl,i as Cl,j as Fl,k as xl,l as Nl,m as Rl,y as Il,z as ya,E as or,H as lr,I as Gl,J as ur,q as cr,r as _l,s as dr,K as ba,U as Yi,W as hr,M as Bl}from"./screen2Standard-483e466b-1784132466083.js";import{g as Ht,M as Al,h as El,L as $l,B as va,a as ta,E as pr,G as Ja,D as Vl,b as zl,l as Ol,P as fr,c as mr,d as Dl,m as Wl,t as Yl,k as ot,n as jl,o as gr,p as Hl,q as ql,r as ji,s as wa,u as yr,v as br,f as Bt,w as vr,x as Ul,y as Kl,e as Zl,i as Xl,j as Jl}from"./data-1f73e057-1784132466083.js";import{g as aa}from"./index-e9f36657-1784132466083.js";import{h as Ql,a as Hr,S as eu,W as At,H as U,j as Hi,k as tu}from"./townshipBoundaries-822b7d9e-1784132466083.js";import{b as au,g as wr,a as Lr,c as iu}from"./geoserver-b1a62bfb-1784132466083.js";import{_ as nu}from"./TopicSwitcher-7006d8b4-1784132466083.js";import{_ as ru}from"./LayerPanel-5b73c261-1784132466083.js";import{A as su}from"./assets-8617da22-1784132466083.js";import{M as ou}from"./index-36438a28-1784132466083.js";import{a as lu,b as uu,c as cu,d as du,g as Tr,e as Sr,f as hu,h as qi,i as pu,j as fu,k as mu}from"./yakApi-08a6746e-1784132466083.js";import{y as gu}from"./livestockData-36ec0ae2-1784132466083.js";import"./index-ed255eef-1784132466083.js";const yu=Ql.map(b=>R({},b)),Mr=Hr.map(b=>R({},b)),bu=Hr.map(b=>{var e,t;return{name:b.name,value:b.value,lng:(e=b.center)==null?void 0:e[0],lat:(t=b.center)==null?void 0:t[1]}}),vu=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}],ra=256,Xi="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",wu=900,Lu=10,Ut=new Map,sa={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function Ui(b,e,t){const a=ma(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function kr(b,e,t){const a=ma(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Qa(b,e,t){return Math.max(e,Math.min(t,b))}function qr(b,e,{centerLngLat:t,maxCols:a,maxRows:n}={}){const s=Ui(b.west,b.north,e),o=Ui(b.east,b.south,e),u=Math.floor(s.x),d=Math.floor(o.x),h=Math.floor(s.y),g=Math.floor(o.y);let m=u,L=d,S=h,C=g,x=Math.floor((u+d)/2),E=Math.floor((h+g)/2);if(t&&Number.isFinite(a)&&Number.isFinite(n)){const D=Qa(Number(t[0]),b.west,b.east),Q=Qa(Number(t[1]),b.south,b.north),se=Ui(D,Q,e);x=Math.floor(se.x),E=Math.floor(se.y);const Z=Math.max(1,Math.min(Math.floor(a),d-u+1)),G=Math.max(1,Math.min(Math.floor(n),g-h+1));m=Qa(x-Math.floor(Z/2),u,d-Z+1),S=Qa(E-Math.floor(G/2),h,g-G+1),L=m+Z-1,C=S+G-1}return{zoom:e,minX:m,maxX:L,minY:S,maxY:C,centerX:x,centerY:E,cols:L-m+1,rows:C-S+1}}function Tu({zoom:b=11,centerLngLat:e,maxCols:t,maxRows:a,bounds:n=sa}={}){return qr(n,b,{centerLngLat:e,maxCols:t,maxRows:a})}function Su(b,e){const[t,a]=kr(b.minX,b.minY,b.zoom),[n,s]=kr(b.maxX+1,b.maxY+1,b.zoom),[o]=e([t,sa.south]),[u]=e([n,sa.south]),[,d]=e([sa.west,a]),[,h]=e([sa.west,s]);return{left:o,right:u,bottom:-h,top:-d}}function Mu(b,e){const{width:t,height:a}=e;b.save(),b.globalCompositeOperation="multiply",b.fillStyle="rgba(5, 24, 34, 0.22)",b.fillRect(0,0,t,a),b.globalCompositeOperation="screen";const n=b.createRadialGradient(t*.5,a*.48,t*.1,t*.5,a*.5,t*.72);n.addColorStop(0,"rgba(80, 230, 255, 0.16)"),n.addColorStop(1,"rgba(0, 18, 36, 0.03)"),b.fillStyle=n,b.fillRect(0,0,t,a),b.restore()}function ku(b,e){const t=b.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"#061927"),t.addColorStop(.5,"#0b2c3c"),t.addColorStop(1,"#07131f"),b.fillStyle=t,b.fillRect(0,0,e.width,e.height)}function Pu(b){const e=Ut.get(b);return e||new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t(a),a.onerror=()=>{Ut.delete(b),t(null)},a.src=b})}function Cu(b){const e=Ut.get(b);if(e)return e;const t=Pu(b);for(Ut.set(b,t);Ut.size>wu;){const a=Ut.keys().next().value;if(!a)break;Ut.delete(a)}return t}function Fu(b,e,t,a=Xi){return String(a||Xi).replace(/\{x\}/g,b).replace(/\{y\}/g,e).replace(/\{z\}/g,t)}function xu(u,d,h,g){return he(this,arguments,function*(b,e,t,a,{tileUrlTemplate:n,onTileStatus:s,applyTone:o=!0}={}){const m=[],L=a.cols*a.rows;let S=0,C=0;s==null||s({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n}),b.save(),b.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let Z=a.minX;Z<=a.maxX;Z+=1)for(let G=a.minY;G<=a.maxY;G+=1)m.push({x:Z,y:G});m.sort((Z,G)=>Math.abs(Z.x-a.centerX)+Math.abs(Z.y-a.centerY)-(Math.abs(G.x-a.centerX)+Math.abs(G.y-a.centerY)));let x=0;function E(){return he(this,null,function*(){for(;x0?S/L:0,Q=S===0?"error":D>=.75?"success":"warning",se=S===L?`${a.zoom}级影像底图已加载`:S>0?`${a.zoom}级影像底图已加载(${S}/${L}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;s==null||s({type:Q,text:se,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n})})}function Pr({geoProjectionCenter:b,geoProjectionScale:e,zoom:t=11,tileUrlTemplate:a=Xi,onTileStatus:n,centerLngLat:s,maxCols:o,maxRows:u,transparentBackground:d=!1,applyTone:h=!0}={}){const g=qr(sa,t,{centerLngLat:s,maxCols:o,maxRows:u}),m=document.createElement("canvas");m.width=g.cols*ra,m.height=g.rows*ra;const L=m.getContext("2d");d?L.clearRect(0,0,m.width,m.height):ku(L,m);const S=new Zi(m);S.colorSpace=na,S.wrapS=ni,S.wrapT=ni,S.minFilter=Sa,S.magFilter=Sa,S.needsUpdate=!0;const C=Ht().center(b).scale(e).translate([0,0]),x=Su(g,C);return xu(L,m,S,g,{tileUrlTemplate:a,onTileStatus:n,applyTone:h}).catch(E=>{console.warn("load satellite tiles failed:",E),n==null||n({type:"error",text:`${g.zoom}级影像底图加载失败`,loaded:0,failed:g.cols*g.rows,total:g.cols*g.rows,zoom:g.zoom,tileRange:g,tileUrlTemplate:a})}),{texture:S,uvBounds:x,tileRange:g}}function Cr(b,e){const t=e.right-e.left,a=e.top-e.bottom;b.mapGroup.traverse(n=>{var u,d;const s=(d=(u=n.geometry)==null?void 0:u.attributes)==null?void 0:d.position;if(!n.isMesh||!s)return;const o=new Float32Array(s.count*2);for(let h=0;ht.value-e.value),b}function lt(b){return String(b||"").replace(/\s+/g,"").trim()}function ue(b,e=0){const t=Number(b);return Number.isFinite(t)?t:e}function Yt(b,e,t){const a=Number(b);return Number.isFinite(a)?Math.max(e,Math.min(t,a)):e}function Se(b){return String(b!=null?b:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Gr(b){return(b==null?void 0:b.scope)==="village"||(b==null?void 0:b.labelMode)==="village"}function _r(b){return(b==null?void 0:b.scope)==="trade-flow"||(b==null?void 0:b.labelMode)==="trade-flow"}function zu(b){return(b==null?void 0:b.showFlowLines)!==!1}function Br(b){return!!(b!=null&&b.hideTownNames||(b==null?void 0:b.showTownNames)===!1)}function La(b){return!!(b!=null&&b.hideMapLabels||(b==null?void 0:b.showMapLabels)===!1)}function Ou(b){return(b==null?void 0:b.displayMode)==="callout"||(b==null?void 0:b.labelMode)==="callout"}function ti(b){return["wkt-api","geojson","wfs"].includes(String((b==null?void 0:b.sourceType)||"").toLowerCase())}function Du(b){return(b==null?void 0:b.interactive)===!1||(b==null?void 0:b.key)==="yak-recognition-layer"}function Ar(b){return String((b==null?void 0:b.sourceType)||"").toLowerCase()==="wmts"}function Er(b,e,t){const a=ma(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function $r(b,e,t){const a=ma(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Wu(b,e){const t=Er(b.west,b.north,e),a=Er(b.east,b.south,e);return{minX:Math.floor(t.x),maxX:Math.floor(a.x),minY:Math.floor(t.y),maxY:Math.floor(a.y)}}function Yu(b,e,t,a){const[n,s]=$r(b,e,t),[o,u]=$r(b+1,e+1,t),d=U.east-U.west,h=U.north-U.south;return{x:(n-U.west)/d*a.width,y:(U.north-s)/h*a.height,width:(o-n)/d*a.width,height:(s-u)/h*a.height}}function ju(b){const e=ia.get(b);if(e)return e;const t=new Promise(a=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>a(n),n.onerror=()=>{ia.delete(b),a(null)},n.src=b});for(ia.set(b,t);ia.size>Au;){const a=ia.keys().next().value;if(!a)break;ia.delete(a)}return t}function Vr(b){return b?/^https?:\/\//.test(b)||b.startsWith("/")?b:`./${b}`:""}function Hu(b){if(!b)return null;if(typeof b=="string")try{return JSON.parse(b)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return b}function Ta(b){const e=Hu(b);return e!=null&&e.features&&e.features.forEach(t=>{var a;((a=t.geometry)==null?void 0:a.type)==="Polygon"&&(t.geometry.coordinates=[t.geometry.coordinates])}),e}function zr(b){var e,t,a;return b!=null&&b.coordinates?b.type==="Polygon"?Array.isArray((a=(t=(e=b.coordinates)==null?void 0:e[0])==null?void 0:t[0])==null?void 0:a[0])?b.coordinates:[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}class qu extends Al{constructor(e,t,a={}){var u,d,h,g;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new wl(466735,1,50),this.scene.background=new bt(466735),this.camera.instance.position.copy(Iu),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=Nu.clone(),this.defaultMapTarget=Ru.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new El(this.renderer.instance,this.camera.instance,this.canvas),this.assets=t,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const n=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(n)&&n>0?Math.min(ei,n):eu;const s=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(s)&&s>0?Math.min(ei,Math.max(this.satelliteTextureZoom,s)):ei;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=Gu,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(Mr.map(m=>[lt(m.name),m])),this.staticMapData={china:Ta(this.assets.instance.getResource("china")),mapJson:Ta(this.assets.instance.getResource("mapJson")),mapStroke:Ta(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(d=(u=this.canvas)==null?void 0:u.addEventListener)==null||d.call(u,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(g=(h=this.canvas)==null?void 0:h.addEventListener)==null||g.call(h,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Te,this.label3d=new $l(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Te,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=aa.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!La(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,n)=>{let s=a.element.querySelector(".other-label");e.to(s,{duration:1,delay:.1*n,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,n;this.flyLineFocusGroup.visible=!0,(n=(a=this.callbacks).onPlayComplete)==null||n.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,n)=>{e.to(a.scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,n)=>{e.to(a,{duration:1,delay:.1*n,opacity:1,ease:"circ.out"},"bar")}));const t=this;this.allProvinceLabel.map((a,n)=>{let s=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),u={progress:0};e.to(s,{duration:1,delay:.2*n,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(u,{duration:1,delay:.2*n,progress:1,onStart:()=>{u.progress=0},onUpdate:d},"bar");function d(){var g,m;const h=ue((m=(g=a.userData)==null?void 0:g.targetValue)!=null?m:o.dataset.targetValue);o.innerText=t.formatMapRankingValue(h*u.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,n)=>{e.to(a.children[0].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new Ll(13171711,4.2);this.scene.add(e);let t=new Tl(14679295,5.8);t.position.set(-30,6,-8),t.castShadow=!0,t.shadow.radius=20,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.scene.add(t),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const t=new Sl(1924702,e.intensity,e.distance);t.position.set(e.x,e.y,e.z),this.scene.add(t)}createMap(){let e=new Te,t=new Te;this.mapGroup=e,this.focusMapGroup=t;let{china:a,chinaTopLine:n}=this.createChina(),{map:s,mapTop:o,mapLine:u,mapBoundaryEmphasis:d}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),n.setParent(e),this.createDiffuse(),s.setParent(t),o.setParent(t),u.setParent(t),d==null||d.setParent(t),t.position.set(0,0,-.01),t.scale.set(1,1,0),e.add(t),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},t=this.staticMapData.china,a=new Wi({color:new bt(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),n=new va(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),s=new Jt({color:e.lineColor,transparent:!0,opacity:.58}),o=new ta(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:s,renderOrder:3});return o.lineGroup.position.z+=.01,{china:n,chinaTopLine:o}}createNationalBackdrop(){var h;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=Ta(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("首页全国底图资源未加载",g),!1}if(!((h=e==null?void 0:e.features)!=null&&h.length))return!1;const t=this.geoProjectionCenter,a=120,n=new re(0,0,-.08),s=new Wi({color:new bt("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:Re}),o=new va(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,merge:!0,position:n,material:s,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const u=new Jt({color:new bt("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),d=new ta(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,position:new re(n.x,n.y,n.z+.01),material:u,renderOrder:1});return d.lineGroup.name="home-national-backdrop-line",d.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=d.lineGroup,!0}createTradeNationalMap(){var m;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=Ta(this.assets.instance.getResource("chinaMap"))}catch(L){return console.warn("牦牛交易全国地图资源未加载",L),!1}const t=e;if(!e||!((m=t==null?void 0:t.features)!=null&&m.length))return!1;const a=new Te;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const n=new be({color:403001,transparent:!0,opacity:.14,side:Re,depthWrite:!1,fog:!1});new va(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(.05,-.05,-.03),material:n,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:u}=this.createTradeNationalMaterials(),d=new pr(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:u,renderOrder:20,bevelThickness:.024,bevelSegments:1});d.mapGroup.traverse(L=>{L.isMesh&&(L.renderOrder=20)}),d.setParent(a);const h=new Jt({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),g=new ta(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:h,renderOrder:21});return g.lineGroup.position.z+=this.tradeNationalDepth+.055,g.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(t),!0}createTradeNationalMaterials(){const e=new Xa({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:Re,fog:!1});new Ja(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const t=this.assets.instance.getResource("side").clone();t.wrapS=st,t.wrapT=st,t.repeat.set(1,1.2),t.needsUpdate=!0;const a=new Xa({color:1485501,map:t,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:Re,fog:!1});return new Ja(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{t.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Te,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const t=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var d;const n=((d=a.properties)==null?void 0:d.name)||"",s=this.normalizeTradeProvinceName(n);if(!t.has(s))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const u=this.label3d.create("","trade-national-label",!0);u.init(`
    ${Se(s)}
    `,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(u,.012,"x"),u.setParent(this.tradeNationalLabelGroup),u.visible=!0,this.tradeNationalLabels.push(u)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var s,o,u;const t=((s=e==null?void 0:e.properties)==null?void 0:s.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((u=e==null?void 0:e.properties)==null?void 0:u.center);if(Array.isArray(t)&&Number.isFinite(Number(t[0]))&&Number.isFinite(Number(t[1])))return{lng:Number(t[0]),lat:Number(t[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const n=a.reduce((d,h)=>({minLng:Math.min(d.minLng,Number(h[0])),maxLng:Math.max(d.maxLng,Number(h[0])),minLat:Math.min(d.minLat,Number(h[1])),maxLat:Math.max(d.maxLat,Number(h[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(n.minLng+n.maxLng)/2,lat:(n.minLat+n.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const t=this.useSatelliteBase?Pr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:m=>{var L,S;return(S=(L=this.callbacks).onTileStatus)==null?void 0:S.call(L,m)}}):null;t!=null&&t.texture&&this.enhanceTexture(t.texture);let[a,n]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=n;let s=new pr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:n,renderOrder:9}),o=new Xa({color:this.useSatelliteBase?16777215:13172735,map:(t==null?void 0:t.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new Ja(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new bt("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let u=new va(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=u,this.satelliteMaterial=o,t!=null&&t.uvBounds&&Cr(u,t.uvBounds),u.mapGroup.children.map(m=>{m.children.map(L=>{L.type==="Mesh"&&this.eventElement.push(L)})}),this.mapLineMaterial=new Jt({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let d=new ta(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});d.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let h=null;const g=this.getAdminBoundaryEmphasisRadius();return g>0&&(this.mapBoundaryEmphasisMaterial=new be({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}),h=new ta(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:g}),h.lineGroup.position.z+=this.depth+.255),{map:s,mapTop:u,mapLine:d,mapBoundaryEmphasis:h}}normalizeAdminBoundaryLineScale(e){const t=Number(e);return Number.isFinite(t)?Math.min(4,Math.max(1,t)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=At.width,e.height=At.height;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height);const a=new Zi(e);a.colorSpace=na,a.wrapS=ni,a.wrapT=ni,a.minFilter=Sa,a.magFilter=Sa,this.enhanceTexture(a),a.needsUpdate=!0;const n=new be({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:Re,fog:!1}),s=this.createLayerUvBounds(),o=new va(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:n,renderOrder:this.isHomeTopicPresentation()?24:18});Cr(o,s),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=s,this.topicLayerCanvas=e,this.topicLayerContext=t,this.topicLayerTexture=a,this.topicLayerMaterial=n,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var t,a,n;if((t=this.hongyuanBoundaryPolygons)!=null&&t.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=zr((n=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:n.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Te,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[t]=e([U.west,U.south]),[a]=e([U.east,U.south]),[,n]=e([U.west,U.north]),[,s]=e([U.west,U.south]);return{left:t,right:a,bottom:-s,top:-n}}setTopicLayer(e){var a,n;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const t=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"loading",text:`正在加载 ${e.name}`}),ti(e)){this.loadVectorTopicLayer(e,t);return}this.loadTopicLayerImage(e).then(s=>{var o,u,d,h;if(t===this.topicLayerLoadId){if(!(s!=null&&s.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(s.image,s.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(h=(d=this.callbacks).onLayerStatus)==null||h.call(d,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var s,o;t===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],t=e[0]){var s,o,u,d;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(R(R({},a[0]),(t==null?void 0:t.key)===a[0].key?t:{}));return}this.currentTopicLayer=t||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const n=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(h=>this.loadCompositeTopicLayerItem(h))).then(h=>{var L,S,C;if(n!==this.topicLayerLoadId)return;const g=h.filter(Boolean),m=g.find(x=>{var E,D;return x.type==="vector"&&((E=x.layer)==null?void 0:E.key)===((D=this.currentTopicLayer)==null?void 0:D.key)});this.currentVectorFeatures=((L=m==null?void 0:m.geojson)==null?void 0:L.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),g.forEach((x,E)=>{var D,Q;if(x.type==="image"){this.topicLayerContext.save();const se=E===g.length-1?Math.max(.78,(D=x.layer.opacity)!=null?D:.9):Math.min(.52,(Q=x.layer.opacity)!=null?Q:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,se)),this.drawTopicRasterImage(x.image,x.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(x.layer,x.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=g.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(C=(S=this.callbacks).onLayerStatus)==null||C.call(S,{type:g.length?"success":"error",text:g.length?`已加载 ${g.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return he(this,null,function*(){if(ti(e))try{const t=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:t}}catch(t){return null}return this.loadTopicLayerImage(e).then(t=>t?R({type:"image"},t):null)})}loadTopicLayerImage(e){return Ar(e)?this.loadWmtsTopicLayerImage(e):new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t({image:a,layer:e}),a.onerror=()=>t(null),a.src=au(e)})}loadWmtsTopicLayerImage(e){return he(this,null,function*(){const t=document.createElement("canvas");t.width=At.width,t.height=At.height;const a=t.getContext("2d");if(!a)return null;a.clearRect(0,0,t.width,t.height);const n=this.getWmtsTopicZoom(e),s=Wu(U,n),o=[];for(let g=s.minX;g<=s.maxX;g+=1)for(let m=s.minY;m<=s.maxY;m+=1)o.push({x:g,y:m});let u=0,d=0;const h=()=>he(this,null,function*(){for(;d0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${u}px)`,a.drawImage(n,0,0),a.restore()),o>0){const g=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,g.forEach(([m,L])=>a.drawImage(n,m,L)),a.restore()}a.drawImage(n,0,0)}getWmtsTopicZoom(e={}){var o,u,d;const t=Math.round(Number(e.maximumLevel)),a=Number.isFinite(t)&&t>0?t:21,n=Number((d=(u=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?u:e.tileZoom)!=null?d:this.satelliteTextureZoom),s=Number.isFinite(n)&&n>0?Math.round(n):11;return Yt(s,3,Math.min(a,ei))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const t=Ar(e)?sr:Sa;this.topicLayerTexture.minFilter=t,this.topicLayerTexture.magFilter=t,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,t={}){const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;if(!t.softMask){this.drawHomeTopicRasterGlow(e,t),n.drawImage(e,0,0,a.width,a.height);return}const s=Math.min(1,Math.max(.08,Number(t.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*s)),o.height=Math.max(96,Math.round(a.height*s));const u=o.getContext("2d");if(!u){n.drawImage(e,0,0,a.width,a.height);return}u.clearRect(0,0,o.width,o.height),u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high",u.drawImage(e,0,0,o.width,o.height),n.save(),n.imageSmoothingEnabled=!0,n.imageSmoothingQuality="high",n.drawImage(o,0,0,a.width,a.height),n.restore()}drawHomeTopicRasterGlow(e,t={}){var d,h;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;const s=Yt((d=t.homeGlowOpacity)!=null?d:0,0,.8),o=Yt((h=t.homeGlowBlur)!=null?h:0,0,32);if(!s||!o)return;const u=t.homeGlowColor||"#E5FCFF";n.save(),n.globalAlpha=s,n.filter=`drop-shadow(0 0 ${o}px ${u})`,n.drawImage(e,0,0,a.width,a.height),n.restore()}applyLayerMapView(e,t={}){var d,h;if(!((d=this.camera)!=null&&d.instance)||!((h=this.camera)!=null&&h.controls)||!this.mapAnimationComplete&&!t.force)return;const a=e?null:this.currentTownRanking,n=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),s=n?this.getLayerMapViewTarget(n):this.defaultMapTarget.clone(),o=n?this.getLayerMapViewCameraPosition(n,s):this.defaultMapCameraPosition.clone(),u=n&&Number.isFinite(n.duration)?n.duration:.75;this.animateMapCamera(o,s,u)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,t=.84){const a=Number(e==null?void 0:e.opacity),n=Number.isFinite(a)?a:t;if(!this.isHomeTopicPresentation())return n;const s=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(s)?s:.56;return Yt(n,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var s,o,u,d,h,g,m;const e=(d=(u=(o=(s=this.camera)==null?void 0:s.controls)==null?void 0:o.target)==null?void 0:u.clone)==null?void 0:d.call(u);if(!e)return[102.58,32.72];(g=(h=this.focusMapGroup)==null?void 0:h.updateWorldMatrix)==null||g.call(h,!0,!1);const t=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),n=((m=a.invert)==null?void 0:m.call(a,[t.x,-t.y]))||[102.58,32.72];return[Math.max(U.west,Math.min(U.east,Number(n[0])||102.58)),Math.max(U.south,Math.min(U.north,Number(n[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,t){return t?`${e}:${t.minX}-${t.maxX}:${t.minY}-${t.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const t=Date.now();if(!e&&t-this.dynamicSatelliteLastCheck<_u)return;this.dynamicSatelliteLastCheck=t;const a=this.camera.instance.position.distanceTo(this.camera.controls.target),n=this.getDynamicSatelliteZoom(a);if(n<=this.satelliteTextureZoom){this.hideDynamicSatelliteOverlay();return}const s=this.getCameraTargetLngLat(),o=this.getDynamicSatelliteTileWindow(n),u=Tu({zoom:n,centerLngLat:s,maxCols:o,maxRows:o}),d=this.getDynamicSatelliteKey(n,u);!d||d===this.dynamicSatelliteCurrentKey||d===this.dynamicSatelliteLoadingKey||this.loadDynamicSatelliteOverlay({zoom:n,centerLngLat:s,maxTiles:o,key:d})}loadDynamicSatelliteOverlay({zoom:e,centerLngLat:t,maxTiles:a,key:n}){const s=++this.dynamicSatelliteRequestId;this.dynamicSatelliteLoadingKey=n;let o;o=Pr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:e,centerLngLat:t,maxCols:a,maxRows:a,tileUrlTemplate:this.tileUrlTemplate,transparentBackground:!0,applyTone:!1,onTileStatus:u=>{var d,h,g,m,L;if((g=(h=this.callbacks).onTileStatus)==null||g.call(h,$(R({},u),{text:((d=u.text)==null?void 0:d.replace("影像底图","高清影像底图"))||u.text})),u.type!=="loading"){if(s!==this.dynamicSatelliteRequestId){(L=(m=o==null?void 0:o.texture)==null?void 0:m.dispose)==null||L.call(m);return}if(this.dynamicSatelliteLoadingKey="",Number(u.loaded||0)<=0){this.dynamicSatelliteCurrentKey===n&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,n)}}}),this.applyDynamicSatelliteOverlay(o,n)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new be({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:Re,fog:!1}),t=new qe(new _t(1,1),e);t.name="dynamic-satellite-overlay",t.renderOrder=15,t.visible=!1,t.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(t),this.dynamicSatelliteOverlay=t,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,t){var o,u;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,n=Math.max(1e-4,a.right-a.left),s=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(n,s,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((u=(o=this.dynamicSatelliteTexture).dispose)==null||u.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=t}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,t,a,n;if(!this.mapAnimationComplete){if((t=(e=this.animateTl)==null?void 0:e.progress)==null||t.call(e,1,!1),(n=(a=this.animateTl)==null?void 0:a.pause)==null||n.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var t;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(t=e.targetLocalZ)!=null?t:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,t){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,n=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),s=t.clone().add(n);return e!=null&&e.cameraOffset&&s.add(this.toVector3(e.cameraOffset,new re(0,0,0))),s}lngLatToWorldPoint(e,t=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return this.defaultMapTarget.clone();const[o,u]=this.geoProjection([n,s]),d=new re(o,-u,Number(t)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(d):d}toVector3(e,t){if(Array.isArray(e)){const[o,u,d]=e.map(Number);return[o,u,d].every(Number.isFinite)?new re(o,u,d):t.clone()}const a=Number(e==null?void 0:e.x),n=Number(e==null?void 0:e.y),s=Number(e==null?void 0:e.z);return[a,n,s].every(Number.isFinite)?new re(a,n,s):t.clone()}animateMapCamera(e,t,a=.75){this.activeMapViewTweens.forEach(o=>{var u;return(u=o==null?void 0:o.kill)==null?void 0:u.call(o)}),this.activeMapViewTweens=[];const n=this.camera.controls,s=()=>n.update();this.activeMapViewTweens.push(aa.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:s}),aa.to(n.target,{duration:a,x:t.x,y:t.y,z:t.z,ease:"power2.out",onUpdate:s}))}addSceneTween(e){var t;return e&&(this.sceneTweens.push(e),this.scenePaused&&((t=e.pause)==null||t.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,t={}){var u,d,h;const a=this.townMetaByName.get(lt(e)),n=t.select?this.selectTownFeatureByName(e,t):!1;if(t.preserveCamera)return n||!!(a!=null&&a.center);if(!(a!=null&&a.center))return n;const s=this.lngLatToWorldPoint(a.center,(u=t.targetLocalZ)!=null?u:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(d=t.distanceScale)!=null?d:.82,cameraOffset:t.cameraOffset||{x:0,y:1.2,z:0}},s);return this.animateMapCamera(o,s,(h=t.duration)!=null?h:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,n,s,o,u,d,h,g,m,L;return[(s=(n=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:n.userData)==null?void 0:s.name,(u=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:u.name,(g=(h=(d=e==null?void 0:e.target)==null?void 0:d.parent)==null?void 0:h.userData)==null?void 0:g.townName,(L=(m=e==null?void 0:e.target)==null?void 0:m.userData)==null?void 0:L.townName].find(S=>String(S||"").trim())||""}findTownFeatureByName(e){var n,s,o,u;const t=lt(e);if(!t)return null;const a=(((n=this.mapJsonData)==null?void 0:n.features)||((o=(s=this.staticMapData)==null?void 0:s.mapJson)==null?void 0:o.features)||[]).find(d=>{const h=(d==null?void 0:d.properties)||{};return[h.name,h.fullName,h.full_name,h.townName].some(m=>lt(m)===t)});return a!=null&&a.geometry?{type:"Feature",properties:$(R({},a.properties||{}),{name:((u=a.properties)==null?void 0:u.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,t={}){var n,s,o,u,d;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),t.silentStatus!==!0&&((d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:t.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(t.showMissingStatus!==!1&&((s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,t={}){var u,d;if(!this.isNationalParkTownSelectionActive())return!1;const a=lt(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(h=>lt(h.name)===a))return!1;const o=this.focusTownByName(e,R({select:!0,preserveCamera:!0,statusText:`已选中${e}`},t));return o&&((d=(u=this.callbacks).onFeatureInfo)==null||d.call(u,{feature:null})),o}focusYakIndustryPoint(e={}){var s,o;const t=this.getYakIndustryPayloadCoordinate(e);if(!t)return(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,t);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(t,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var h,g;const t=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),n=String(e.fullName||e.name||"").trim(),s=t.find(m=>{const L=(m==null?void 0:m.properties)||{};return a&&String(L.id||"")===a||n&&String(L.name||L.plot_name||"").trim()===n});if(!s)return(g=(h=this.callbacks).onLayerStatus)==null||g.call(h,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([s]);const o=this.getGeometryLngLatBounds(s.geometry);if(!o)return{focused:!1,screen:null,feature:s};const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(s),feature:s}}getVectorFeatureScreen(e={}){let t=(e==null?void 0:e.feature)||e;if(!(t!=null&&t.geometry)){const s=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");t=s.find(u=>{var d;return String(((d=u==null?void 0:u.properties)==null?void 0:d.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(t==null?void 0:t.geometry);if(!a)return null;const n=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(n,this.depth+.34)||this.lngLatToScreenPoint(n,this.depth+.32)}getYakIndustryPointScreen(e={}){const t=this.getYakIndustryPayloadCoordinate(e);return t?this.lngLatToLayerScreenPoint(t,this.depth+.36)||this.lngLatToScreenPoint(t,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var s,o,u,d,h;const t=((s=e.geometry)==null?void 0:s.coordinates)||e.coordinates,a=Number((u=(o=e.longitude)!=null?o:e.lng)!=null?u:t==null?void 0:t[0]),n=Number((h=(d=e.latitude)!=null?d:e.lat)!=null?h:t==null?void 0:t[1]);return!Number.isFinite(a)||!Number.isFinite(n)?null:[a,n]}findYakIndustryPointFeature(e={},t=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),n=String(e.id||e.key||""),s=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),u=t&&a.find(h=>{var m;if(((m=h==null?void 0:h.geometry)==null?void 0:m.type)!=="Point")return!1;const g=h.properties||{};return o&&String(g.stageKey||"")!==o?!1:this.getCoordinateDistance(h.geometry.coordinates,t)<=8e-4})||null;if(e.preferCoordinateMatch)return u;const d=a.find(h=>{const g=(h==null?void 0:h.properties)||{};return!!(n&&String(g.id||"")===n||s&&String(g.name||g.fullName||"").trim()===s)});return d||u}loadVectorTopicLayer(e,t){return he(this,null,function*(){var a,n,s,o;try{const u=yield this.fetchVectorLayerGeojson(e);if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=u.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(u){if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return he(this,null,function*(){var s,o;if(e.sourceType==="geojson"){if(((s=e.geojsonData)==null?void 0:s.type)==="FeatureCollection")return e.geojsonData;const u=yield fetch(Vr(e.dataPath),{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);return yield u.json()}if(e.sourceType==="wfs"){const u=yield wr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(u==null?void 0:u.type)==="FeatureCollection"?u:{type:"FeatureCollection",features:(u==null?void 0:u.features)||[]}}let t=[],a=null;try{const u=yield fetch(e.apiUrl,{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.data)?d.data:Array.isArray((o=d==null?void 0:d.data)==null?void 0:o.rows)?d.data.rows:[]}catch(u){a=u}let n=this.buildWktLayerFeatures(t);if((!t.length||!n.length)&&e.fallbackPath){const u=yield fetch(Vr(e.fallbackPath),{credentials:"include"});if(!u.ok)throw a||new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.rows)?d.rows:[],n=this.buildWktLayerFeatures(t)}return{type:"FeatureCollection",features:n}})}buildWktLayerFeatures(e=[]){return(e||[]).map(t=>({type:"Feature",properties:{id:t.id,type:t.type,totalAcreage:t.totalAcreage,cdAcreage:t.cdAcreage,sdAcreage:t.sdAcreage,cdScl:t.cdScl,sdScl:t.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(t))})).filter(t=>t.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,t,a={}){const n=this.topicLayerContext;a.clear!==!1&&n.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),n.save(),n.lineJoin="round",n.lineCap="round",this.clipVectorLayerContext(n,e);const o=this.getVisibleVectorFeatures(e,t).filter(u=>{var d;return!(e!=null&&e.hidePointFeatures)||((d=u==null?void 0:u.geometry)==null?void 0:d.type)!=="Point"}).sort((u,d)=>{var m,L;const h=this.getGeometryDrawRank((m=u.geometry)==null?void 0:m.type),g=this.getGeometryDrawRank((L=d.geometry)==null?void 0:L.type);return h-g});o.forEach(u=>{const d=this.getVectorFeatureStyle(e,u);this.drawVectorFeature(n,u.geometry,d)}),this.drawNationalParkBoundaryOverlay(n,e,o),this.drawSelectedVectorOverlay(n),n.restore()}drawNationalParkBoundaryOverlay(e,t,a=[]){(t==null?void 0:t.key)!=="national-park-zoning"||!a.length||a.forEach(n=>{const s=this.getVectorFeatureStyle(t,n);this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:s.stroke,stroke:s.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const t=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],n=this.analysisBoundaryFeature,s=this.boundaryDrawPoints||[];if(!t.length&&!a.length&&!n&&!s.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),u={fill:Fr,stroke:$u,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},d={fill:Fr,stroke:Eu,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),t.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,u),this.drawVectorFeature(e,g,d)}),a.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),n!=null&&n.geometry&&this.drawVectorFeature(e,n.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),s.length){const h=s.map(m=>[m.lng,m.lat]),g={type:"LineString",coordinates:this.boundaryDrawingEnabled?h:[...h,h[0]].filter(Boolean)};this.drawVectorFeature(e,g,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),h.forEach(m=>{this.drawVectorFeature(e,{type:"Point",coordinates:m},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!ti(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},t={}){var s;const a=Array.isArray(t==null?void 0:t.matches)?t.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var u;return String((u=e[o.field])!=null?u:"")===String(o.value)});const n=t==null?void 0:t.match;return n!=null&&n.field?String((s=e[n.field])!=null?s:"")===String(n.value):!0}getVisibleVectorFeatures(e,t){var u,d;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(h=>{var g,m;return((g=h==null?void 0:h.matches)==null?void 0:g.length)||((m=h==null?void 0:h.match)==null?void 0:m.field)}):[];if(a.length)return(t||[]).filter(h=>a.some(g=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},g)));const n=e==null?void 0:e.activeLegend;if((u=n==null?void 0:n.matches)!=null&&u.length||(d=n==null?void 0:n.match)!=null&&d.field)return(t||[]).filter(h=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},n));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,h,g]=o,m=g.replace(/''/g,"'");return(t||[]).filter(L=>{var S,C;return String((C=(S=L==null?void 0:L.properties)==null?void 0:S[h])!=null?C:"")===m})}return[...t||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,t);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((n,s)=>{var u;let o=this.yakIndustryPointLabels[s];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(n),this.getYakIndustryPointLabelPosition(n,s)),o.visible=!0,(u=o.show)==null||u.call(o),o.userData={feature:n}}),this.yakIndustryPointLabels.slice(a.length).forEach(n=>{var s;n.visible=!1,(s=n.hide)==null||s.call(n),n.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,t).filter(n=>{var s;return((s=n==null?void 0:n.geometry)==null?void 0:s.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((n,s)=>{let o=this.yakIndustryPointMarkers[s];const u=this.getVectorFeatureStyle(e,n),d=this.getYakIndustryMarkerMaterial(u,n),h=this.lngLatToLayerLocalPoint(n.geometry.coordinates,this.depth+.36),g=Number(e==null?void 0:e.pointSpriteScale)||.34,m=this.getYakIndustryMarkerType(n);o||(o=new Qt(d),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=d,o.center.set(.5,.5),o.position.copy(h),o.scale.set(g*.88,g*.88,1),o.visible=!0,o.userData={feature:n,layer:e,index:s,markerType:m}}),this.yakIndustryPointMarkers.slice(a.length).forEach(n=>{n.visible=!1,n.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Te,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(t=>{t.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",t=>{var s,o,u,d,h,g,m,L,S;if(this.clicked||!((s=this.yakIndustryPointMarkerGroup)!=null&&s.visible))return!1;const a=(u=(o=t.target)==null?void 0:o.userData)==null?void 0:u.feature;if(!a)return!1;this.clicked=!0;const n=((d=a.geometry)==null?void 0:d.coordinates)||[];this.setSelectedVectorFeatures([a]),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:{id:((h=a.properties)==null?void 0:h.id)||((g=a.properties)==null?void 0:g.feature_id)||((m=a.properties)==null?void 0:m.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(n[0]),lat:Number(n[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,t){const a=e.markerType||this.getYakIndustryMarkerType(t),n=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,s=this.yakIndustryMarkerMaterialCache.get(n);if(s)return s;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),u=new ea({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(n,u),u}getYakIndustryMarkerType(e={}){var a;const t=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return Rr[t]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",t="#B7FFF2",a="point"){const n=document.createElement("canvas");n.width=112,n.height=112;const s=n.getContext("2d"),o=56,u=56;s.clearRect(0,0,n.width,n.height),s.beginPath(),s.arc(o,u,42,0,Math.PI*2),s.fillStyle=this.hexToRgba(e,.18),s.shadowColor=e,s.shadowBlur=20,s.fill(),this.drawYakIndustryMarkerFrame(s,a,o,u,e,t||e),s.save(),s.shadowBlur=0,s.beginPath(),s.arc(o,u,19,0,Math.PI*2),s.fillStyle="rgba(3, 23, 34, 0.64)",s.fill(),s.strokeStyle=this.hexToRgba("#FFFFFF",.32),s.lineWidth=2,s.stroke(),s.restore(),this.drawYakIndustryMarkerGlyph(s,a,o,u,"#FFFFFF");const d=new Zi(n);return d.colorSpace=na,d.needsUpdate=!0,d}drawYakIndustryMarkerFrame(e,t,a,n,s="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,n),e.fillStyle=this.hexToRgba(s,.92),e.strokeStyle=this.hexToRgba(o||s,.98),e.lineWidth=4,e.shadowColor=o||s,e.shadowBlur=14,t==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(t==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(t==="breeding"){e.beginPath();for(let u=0;u<6;u+=1){const d=-Math.PI/2+Math.PI*2*u/6,h=Math.cos(d)*35,g=Math.sin(d)*35;u===0?e.moveTo(h,g):e.lineTo(h,g)}e.closePath()}else if(t==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(t==="processing"){e.beginPath();for(let u=0;u<10;u+=1){const d=-Math.PI/2+Math.PI*2*u/10,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else if(t==="equipment"){e.beginPath();for(let u=0;u<16;u+=1){const d=-Math.PI/2+Math.PI*2*u/16,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else t==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,t,a,n,s="#24F6C4"){if(e.save(),e.translate(a,n),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(s,.98),e.strokeStyle=this.hexToRgba(s,.98),e.lineWidth=3,t==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(t==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(t==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(t==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(t==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(t==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else t==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Te,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(t=>{var a;t.visible=!1,(a=t.hide)==null||a.call(t)})}getYakIndustryLabelFeatures(e,t){const a=this.getVisibleVectorFeatures(e,t).filter(d=>{var h;return((h=d==null?void 0:d.geometry)==null?void 0:h.type)==="Point"}),n=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),s=a.map(d=>{var h;return{feature:d,score:this.getYakIndustryFeatureScore(d),town:lt((h=d.properties)==null?void 0:h.town)}}).sort((d,h)=>{var g,m;return h.score-d.score||String(((g=d.feature.properties)==null?void 0:g.name)||"").localeCompare(String(((m=h.feature.properties)==null?void 0:m.name)||""),"zh-CN")}),o=[],u=new Set;return s.forEach(d=>{o.length>=n||!d.town||u.has(d.town)||(o.push(d.feature),u.add(d.town))}),s.forEach(d=>{o.length>=n||o.includes(d.feature)||o.push(d.feature)}),o}getYakIndustryFeatureScore(e){const t=(e==null?void 0:e.properties)||{},a=[t.outputValue,t.capacity,t.value,t.count,t["年产值 (万元)"],t["年总产值 (万元)"],t["设计存栏量 (头)"],t["总库容 (吨)"]].map(n=>this.parseMapMetricNumber(n));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return t&&Number(t[0])||0}getYakIndustryPointLabelPosition(e,t=0){var n;const a=this.lngLatToLayerLocalPoint((n=e==null?void 0:e.geometry)==null?void 0:n.coordinates,this.depth+.42+Math.min(t,5)*.01);return a.x+=(t%3-1)*.08,a.y+=t%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const t=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(t.name||t.fullName||"产业主体"),n=this.formatYakIndustryLabelText(t.categoryName||t.stageName||"产业主体"),s=t.town||t.village||"红原县",o=this.getYakIndustryPointMetricText(t),u=this.getYakIndustryLabelColor(t);return`
    +var fl=Object.defineProperty,ml=Object.defineProperties;var gl=Object.getOwnPropertyDescriptors;var qa=Object.getOwnPropertySymbols;var ir=Object.prototype.hasOwnProperty,nr=Object.prototype.propertyIsEnumerable;var ma=Math.pow,ar=(b,e,t)=>e in b?fl(b,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):b[e]=t,R=(b,e)=>{for(var t in e||(e={}))ir.call(e,t)&&ar(b,t,e[t]);if(qa)for(var t of qa(e))nr.call(e,t)&&ar(b,t,e[t]);return b},$=(b,e)=>ml(b,gl(e));var rr=(b,e)=>{var t={};for(var a in b)ir.call(b,a)&&e.indexOf(a)<0&&(t[a]=b[a]);if(b!=null&&qa)for(var a of qa(b))e.indexOf(a)<0&&nr.call(b,a)&&(t[a]=b[a]);return t};var he=(b,e,t)=>new Promise((a,n)=>{var s=d=>{try{u(t.next(d))}catch(h){n(h)}},o=d=>{try{u(t.throw(d))}catch(h){n(h)}},u=d=>d.done?a(d.value):Promise.resolve(d.value).then(s,o);u((t=t.apply(b,e)).next())});import{q as Yr,h as jr,w as qt,o as I,c as _,a as f,d as V,K as yl,A as jt,g as k,L as Ee,s as Qe,v as bl,C as Ua,j as Le,n as Ye,t as P,F as ie,y as pe,u as j,b as H,x as oe,J as Ct,B as Wt,e as Ka,H as Xt,f as Za,N as ga}from"./index-1784132792831.js";import{H as Pe}from"./index.esm.min-da05f706-1784132792831.js";import{_ as le}from"./index-a4d3ff67-1784132792831.js";import{t as Zi,S as na,u as ni,v as Sa,w as vl,V as re,F as wl,C as bt,G as Te,c as Ll,d as Tl,f as Sl,g as Wi,L as Jt,D as Re,a as be,h as Xa,R as st,A as Ie,N as sr,b as qe,P as _t,o as Qt,n as ea,x as Ml,T as kl,B as Pl,i as Cl,j as Fl,k as xl,l as Nl,m as Rl,y as Il,z as ya,E as or,H as lr,I as Gl,J as ur,q as cr,r as _l,s as dr,K as ba,U as Yi,W as hr,M as Bl}from"./screen2Standard-41868f75-1784132792831.js";import{g as Ht,M as Al,h as El,L as $l,B as va,a as ta,E as pr,G as Ja,D as Vl,b as zl,l as Ol,P as fr,c as mr,d as Dl,m as Wl,t as Yl,k as ot,n as jl,o as gr,p as Hl,q as ql,r as ji,s as wa,u as yr,v as br,f as Bt,w as vr,x as Ul,y as Kl,e as Zl,i as Xl,j as Jl}from"./data-888ba847-1784132792831.js";import{g as aa}from"./index-e9f36657-1784132792831.js";import{h as Ql,a as Hr,S as eu,W as At,H as U,j as Hi,k as tu}from"./townshipBoundaries-822b7d9e-1784132792831.js";import{b as au,g as wr,a as Lr,c as iu}from"./geoserver-c6c88e84-1784132792831.js";import{_ as nu}from"./TopicSwitcher-2e4ca291-1784132792831.js";import{_ as ru}from"./LayerPanel-fa97fc8c-1784132792831.js";import{A as su}from"./assets-8cd57427-1784132792831.js";import{M as ou}from"./index-24267a69-1784132792831.js";import{a as lu,b as uu,c as cu,d as du,g as Tr,e as Sr,f as hu,h as qi,i as pu,j as fu,k as mu}from"./yakApi-dd638538-1784132792831.js";import{y as gu}from"./livestockData-36ec0ae2-1784132792831.js";import"./index-a1b5e9c0-1784132792831.js";const yu=Ql.map(b=>R({},b)),Mr=Hr.map(b=>R({},b)),bu=Hr.map(b=>{var e,t;return{name:b.name,value:b.value,lng:(e=b.center)==null?void 0:e[0],lat:(t=b.center)==null?void 0:t[1]}}),vu=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}],ra=256,Xi="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",wu=900,Lu=10,Ut=new Map,sa={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function Ui(b,e,t){const a=ma(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function kr(b,e,t){const a=ma(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Qa(b,e,t){return Math.max(e,Math.min(t,b))}function qr(b,e,{centerLngLat:t,maxCols:a,maxRows:n}={}){const s=Ui(b.west,b.north,e),o=Ui(b.east,b.south,e),u=Math.floor(s.x),d=Math.floor(o.x),h=Math.floor(s.y),g=Math.floor(o.y);let m=u,L=d,S=h,C=g,x=Math.floor((u+d)/2),E=Math.floor((h+g)/2);if(t&&Number.isFinite(a)&&Number.isFinite(n)){const D=Qa(Number(t[0]),b.west,b.east),Q=Qa(Number(t[1]),b.south,b.north),se=Ui(D,Q,e);x=Math.floor(se.x),E=Math.floor(se.y);const Z=Math.max(1,Math.min(Math.floor(a),d-u+1)),G=Math.max(1,Math.min(Math.floor(n),g-h+1));m=Qa(x-Math.floor(Z/2),u,d-Z+1),S=Qa(E-Math.floor(G/2),h,g-G+1),L=m+Z-1,C=S+G-1}return{zoom:e,minX:m,maxX:L,minY:S,maxY:C,centerX:x,centerY:E,cols:L-m+1,rows:C-S+1}}function Tu({zoom:b=11,centerLngLat:e,maxCols:t,maxRows:a,bounds:n=sa}={}){return qr(n,b,{centerLngLat:e,maxCols:t,maxRows:a})}function Su(b,e){const[t,a]=kr(b.minX,b.minY,b.zoom),[n,s]=kr(b.maxX+1,b.maxY+1,b.zoom),[o]=e([t,sa.south]),[u]=e([n,sa.south]),[,d]=e([sa.west,a]),[,h]=e([sa.west,s]);return{left:o,right:u,bottom:-h,top:-d}}function Mu(b,e){const{width:t,height:a}=e;b.save(),b.globalCompositeOperation="multiply",b.fillStyle="rgba(5, 24, 34, 0.22)",b.fillRect(0,0,t,a),b.globalCompositeOperation="screen";const n=b.createRadialGradient(t*.5,a*.48,t*.1,t*.5,a*.5,t*.72);n.addColorStop(0,"rgba(80, 230, 255, 0.16)"),n.addColorStop(1,"rgba(0, 18, 36, 0.03)"),b.fillStyle=n,b.fillRect(0,0,t,a),b.restore()}function ku(b,e){const t=b.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"#061927"),t.addColorStop(.5,"#0b2c3c"),t.addColorStop(1,"#07131f"),b.fillStyle=t,b.fillRect(0,0,e.width,e.height)}function Pu(b){const e=Ut.get(b);return e||new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t(a),a.onerror=()=>{Ut.delete(b),t(null)},a.src=b})}function Cu(b){const e=Ut.get(b);if(e)return e;const t=Pu(b);for(Ut.set(b,t);Ut.size>wu;){const a=Ut.keys().next().value;if(!a)break;Ut.delete(a)}return t}function Fu(b,e,t,a=Xi){return String(a||Xi).replace(/\{x\}/g,b).replace(/\{y\}/g,e).replace(/\{z\}/g,t)}function xu(u,d,h,g){return he(this,arguments,function*(b,e,t,a,{tileUrlTemplate:n,onTileStatus:s,applyTone:o=!0}={}){const m=[],L=a.cols*a.rows;let S=0,C=0;s==null||s({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n}),b.save(),b.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let Z=a.minX;Z<=a.maxX;Z+=1)for(let G=a.minY;G<=a.maxY;G+=1)m.push({x:Z,y:G});m.sort((Z,G)=>Math.abs(Z.x-a.centerX)+Math.abs(Z.y-a.centerY)-(Math.abs(G.x-a.centerX)+Math.abs(G.y-a.centerY)));let x=0;function E(){return he(this,null,function*(){for(;x0?S/L:0,Q=S===0?"error":D>=.75?"success":"warning",se=S===L?`${a.zoom}级影像底图已加载`:S>0?`${a.zoom}级影像底图已加载(${S}/${L}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;s==null||s({type:Q,text:se,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n})})}function Pr({geoProjectionCenter:b,geoProjectionScale:e,zoom:t=11,tileUrlTemplate:a=Xi,onTileStatus:n,centerLngLat:s,maxCols:o,maxRows:u,transparentBackground:d=!1,applyTone:h=!0}={}){const g=qr(sa,t,{centerLngLat:s,maxCols:o,maxRows:u}),m=document.createElement("canvas");m.width=g.cols*ra,m.height=g.rows*ra;const L=m.getContext("2d");d?L.clearRect(0,0,m.width,m.height):ku(L,m);const S=new Zi(m);S.colorSpace=na,S.wrapS=ni,S.wrapT=ni,S.minFilter=Sa,S.magFilter=Sa,S.needsUpdate=!0;const C=Ht().center(b).scale(e).translate([0,0]),x=Su(g,C);return xu(L,m,S,g,{tileUrlTemplate:a,onTileStatus:n,applyTone:h}).catch(E=>{console.warn("load satellite tiles failed:",E),n==null||n({type:"error",text:`${g.zoom}级影像底图加载失败`,loaded:0,failed:g.cols*g.rows,total:g.cols*g.rows,zoom:g.zoom,tileRange:g,tileUrlTemplate:a})}),{texture:S,uvBounds:x,tileRange:g}}function Cr(b,e){const t=e.right-e.left,a=e.top-e.bottom;b.mapGroup.traverse(n=>{var u,d;const s=(d=(u=n.geometry)==null?void 0:u.attributes)==null?void 0:d.position;if(!n.isMesh||!s)return;const o=new Float32Array(s.count*2);for(let h=0;ht.value-e.value),b}function lt(b){return String(b||"").replace(/\s+/g,"").trim()}function ue(b,e=0){const t=Number(b);return Number.isFinite(t)?t:e}function Yt(b,e,t){const a=Number(b);return Number.isFinite(a)?Math.max(e,Math.min(t,a)):e}function Se(b){return String(b!=null?b:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Gr(b){return(b==null?void 0:b.scope)==="village"||(b==null?void 0:b.labelMode)==="village"}function _r(b){return(b==null?void 0:b.scope)==="trade-flow"||(b==null?void 0:b.labelMode)==="trade-flow"}function zu(b){return(b==null?void 0:b.showFlowLines)!==!1}function Br(b){return!!(b!=null&&b.hideTownNames||(b==null?void 0:b.showTownNames)===!1)}function La(b){return!!(b!=null&&b.hideMapLabels||(b==null?void 0:b.showMapLabels)===!1)}function Ou(b){return(b==null?void 0:b.displayMode)==="callout"||(b==null?void 0:b.labelMode)==="callout"}function ti(b){return["wkt-api","geojson","wfs"].includes(String((b==null?void 0:b.sourceType)||"").toLowerCase())}function Du(b){return(b==null?void 0:b.interactive)===!1||(b==null?void 0:b.key)==="yak-recognition-layer"}function Ar(b){return String((b==null?void 0:b.sourceType)||"").toLowerCase()==="wmts"}function Er(b,e,t){const a=ma(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function $r(b,e,t){const a=ma(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Wu(b,e){const t=Er(b.west,b.north,e),a=Er(b.east,b.south,e);return{minX:Math.floor(t.x),maxX:Math.floor(a.x),minY:Math.floor(t.y),maxY:Math.floor(a.y)}}function Yu(b,e,t,a){const[n,s]=$r(b,e,t),[o,u]=$r(b+1,e+1,t),d=U.east-U.west,h=U.north-U.south;return{x:(n-U.west)/d*a.width,y:(U.north-s)/h*a.height,width:(o-n)/d*a.width,height:(s-u)/h*a.height}}function ju(b){const e=ia.get(b);if(e)return e;const t=new Promise(a=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>a(n),n.onerror=()=>{ia.delete(b),a(null)},n.src=b});for(ia.set(b,t);ia.size>Au;){const a=ia.keys().next().value;if(!a)break;ia.delete(a)}return t}function Vr(b){return b?/^https?:\/\//.test(b)||b.startsWith("/")?b:`./${b}`:""}function Hu(b){if(!b)return null;if(typeof b=="string")try{return JSON.parse(b)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return b}function Ta(b){const e=Hu(b);return e!=null&&e.features&&e.features.forEach(t=>{var a;((a=t.geometry)==null?void 0:a.type)==="Polygon"&&(t.geometry.coordinates=[t.geometry.coordinates])}),e}function zr(b){var e,t,a;return b!=null&&b.coordinates?b.type==="Polygon"?Array.isArray((a=(t=(e=b.coordinates)==null?void 0:e[0])==null?void 0:t[0])==null?void 0:a[0])?b.coordinates:[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}class qu extends Al{constructor(e,t,a={}){var u,d,h,g;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new wl(466735,1,50),this.scene.background=new bt(466735),this.camera.instance.position.copy(Iu),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=Nu.clone(),this.defaultMapTarget=Ru.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new El(this.renderer.instance,this.camera.instance,this.canvas),this.assets=t,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const n=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(n)&&n>0?Math.min(ei,n):eu;const s=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(s)&&s>0?Math.min(ei,Math.max(this.satelliteTextureZoom,s)):ei;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=Gu,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(Mr.map(m=>[lt(m.name),m])),this.staticMapData={china:Ta(this.assets.instance.getResource("china")),mapJson:Ta(this.assets.instance.getResource("mapJson")),mapStroke:Ta(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(d=(u=this.canvas)==null?void 0:u.addEventListener)==null||d.call(u,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(g=(h=this.canvas)==null?void 0:h.addEventListener)==null||g.call(h,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Te,this.label3d=new $l(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Te,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=aa.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!La(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,n)=>{let s=a.element.querySelector(".other-label");e.to(s,{duration:1,delay:.1*n,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,n;this.flyLineFocusGroup.visible=!0,(n=(a=this.callbacks).onPlayComplete)==null||n.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,n)=>{e.to(a.scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,n)=>{e.to(a,{duration:1,delay:.1*n,opacity:1,ease:"circ.out"},"bar")}));const t=this;this.allProvinceLabel.map((a,n)=>{let s=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),u={progress:0};e.to(s,{duration:1,delay:.2*n,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(u,{duration:1,delay:.2*n,progress:1,onStart:()=>{u.progress=0},onUpdate:d},"bar");function d(){var g,m;const h=ue((m=(g=a.userData)==null?void 0:g.targetValue)!=null?m:o.dataset.targetValue);o.innerText=t.formatMapRankingValue(h*u.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,n)=>{e.to(a.children[0].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new Ll(13171711,4.2);this.scene.add(e);let t=new Tl(14679295,5.8);t.position.set(-30,6,-8),t.castShadow=!0,t.shadow.radius=20,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.scene.add(t),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const t=new Sl(1924702,e.intensity,e.distance);t.position.set(e.x,e.y,e.z),this.scene.add(t)}createMap(){let e=new Te,t=new Te;this.mapGroup=e,this.focusMapGroup=t;let{china:a,chinaTopLine:n}=this.createChina(),{map:s,mapTop:o,mapLine:u,mapBoundaryEmphasis:d}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),n.setParent(e),this.createDiffuse(),s.setParent(t),o.setParent(t),u.setParent(t),d==null||d.setParent(t),t.position.set(0,0,-.01),t.scale.set(1,1,0),e.add(t),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},t=this.staticMapData.china,a=new Wi({color:new bt(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),n=new va(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),s=new Jt({color:e.lineColor,transparent:!0,opacity:.58}),o=new ta(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:s,renderOrder:3});return o.lineGroup.position.z+=.01,{china:n,chinaTopLine:o}}createNationalBackdrop(){var h;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=Ta(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("首页全国底图资源未加载",g),!1}if(!((h=e==null?void 0:e.features)!=null&&h.length))return!1;const t=this.geoProjectionCenter,a=120,n=new re(0,0,-.08),s=new Wi({color:new bt("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:Re}),o=new va(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,merge:!0,position:n,material:s,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const u=new Jt({color:new bt("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),d=new ta(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,position:new re(n.x,n.y,n.z+.01),material:u,renderOrder:1});return d.lineGroup.name="home-national-backdrop-line",d.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=d.lineGroup,!0}createTradeNationalMap(){var m;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=Ta(this.assets.instance.getResource("chinaMap"))}catch(L){return console.warn("牦牛交易全国地图资源未加载",L),!1}const t=e;if(!e||!((m=t==null?void 0:t.features)!=null&&m.length))return!1;const a=new Te;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const n=new be({color:403001,transparent:!0,opacity:.14,side:Re,depthWrite:!1,fog:!1});new va(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(.05,-.05,-.03),material:n,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:u}=this.createTradeNationalMaterials(),d=new pr(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:u,renderOrder:20,bevelThickness:.024,bevelSegments:1});d.mapGroup.traverse(L=>{L.isMesh&&(L.renderOrder=20)}),d.setParent(a);const h=new Jt({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),g=new ta(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:h,renderOrder:21});return g.lineGroup.position.z+=this.tradeNationalDepth+.055,g.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(t),!0}createTradeNationalMaterials(){const e=new Xa({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:Re,fog:!1});new Ja(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const t=this.assets.instance.getResource("side").clone();t.wrapS=st,t.wrapT=st,t.repeat.set(1,1.2),t.needsUpdate=!0;const a=new Xa({color:1485501,map:t,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:Re,fog:!1});return new Ja(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{t.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Te,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const t=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var d;const n=((d=a.properties)==null?void 0:d.name)||"",s=this.normalizeTradeProvinceName(n);if(!t.has(s))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const u=this.label3d.create("","trade-national-label",!0);u.init(`
    ${Se(s)}
    `,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(u,.012,"x"),u.setParent(this.tradeNationalLabelGroup),u.visible=!0,this.tradeNationalLabels.push(u)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var s,o,u;const t=((s=e==null?void 0:e.properties)==null?void 0:s.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((u=e==null?void 0:e.properties)==null?void 0:u.center);if(Array.isArray(t)&&Number.isFinite(Number(t[0]))&&Number.isFinite(Number(t[1])))return{lng:Number(t[0]),lat:Number(t[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const n=a.reduce((d,h)=>({minLng:Math.min(d.minLng,Number(h[0])),maxLng:Math.max(d.maxLng,Number(h[0])),minLat:Math.min(d.minLat,Number(h[1])),maxLat:Math.max(d.maxLat,Number(h[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(n.minLng+n.maxLng)/2,lat:(n.minLat+n.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const t=this.useSatelliteBase?Pr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:m=>{var L,S;return(S=(L=this.callbacks).onTileStatus)==null?void 0:S.call(L,m)}}):null;t!=null&&t.texture&&this.enhanceTexture(t.texture);let[a,n]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=n;let s=new pr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:n,renderOrder:9}),o=new Xa({color:this.useSatelliteBase?16777215:13172735,map:(t==null?void 0:t.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new Ja(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new bt("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let u=new va(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=u,this.satelliteMaterial=o,t!=null&&t.uvBounds&&Cr(u,t.uvBounds),u.mapGroup.children.map(m=>{m.children.map(L=>{L.type==="Mesh"&&this.eventElement.push(L)})}),this.mapLineMaterial=new Jt({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let d=new ta(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});d.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let h=null;const g=this.getAdminBoundaryEmphasisRadius();return g>0&&(this.mapBoundaryEmphasisMaterial=new be({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}),h=new ta(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:g}),h.lineGroup.position.z+=this.depth+.255),{map:s,mapTop:u,mapLine:d,mapBoundaryEmphasis:h}}normalizeAdminBoundaryLineScale(e){const t=Number(e);return Number.isFinite(t)?Math.min(4,Math.max(1,t)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=At.width,e.height=At.height;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height);const a=new Zi(e);a.colorSpace=na,a.wrapS=ni,a.wrapT=ni,a.minFilter=Sa,a.magFilter=Sa,this.enhanceTexture(a),a.needsUpdate=!0;const n=new be({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:Re,fog:!1}),s=this.createLayerUvBounds(),o=new va(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:n,renderOrder:this.isHomeTopicPresentation()?24:18});Cr(o,s),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=s,this.topicLayerCanvas=e,this.topicLayerContext=t,this.topicLayerTexture=a,this.topicLayerMaterial=n,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var t,a,n;if((t=this.hongyuanBoundaryPolygons)!=null&&t.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=zr((n=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:n.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Te,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[t]=e([U.west,U.south]),[a]=e([U.east,U.south]),[,n]=e([U.west,U.north]),[,s]=e([U.west,U.south]);return{left:t,right:a,bottom:-s,top:-n}}setTopicLayer(e){var a,n;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const t=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"loading",text:`正在加载 ${e.name}`}),ti(e)){this.loadVectorTopicLayer(e,t);return}this.loadTopicLayerImage(e).then(s=>{var o,u,d,h;if(t===this.topicLayerLoadId){if(!(s!=null&&s.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(s.image,s.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(h=(d=this.callbacks).onLayerStatus)==null||h.call(d,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var s,o;t===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],t=e[0]){var s,o,u,d;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(R(R({},a[0]),(t==null?void 0:t.key)===a[0].key?t:{}));return}this.currentTopicLayer=t||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const n=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(h=>this.loadCompositeTopicLayerItem(h))).then(h=>{var L,S,C;if(n!==this.topicLayerLoadId)return;const g=h.filter(Boolean),m=g.find(x=>{var E,D;return x.type==="vector"&&((E=x.layer)==null?void 0:E.key)===((D=this.currentTopicLayer)==null?void 0:D.key)});this.currentVectorFeatures=((L=m==null?void 0:m.geojson)==null?void 0:L.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),g.forEach((x,E)=>{var D,Q;if(x.type==="image"){this.topicLayerContext.save();const se=E===g.length-1?Math.max(.78,(D=x.layer.opacity)!=null?D:.9):Math.min(.52,(Q=x.layer.opacity)!=null?Q:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,se)),this.drawTopicRasterImage(x.image,x.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(x.layer,x.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=g.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(C=(S=this.callbacks).onLayerStatus)==null||C.call(S,{type:g.length?"success":"error",text:g.length?`已加载 ${g.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return he(this,null,function*(){if(ti(e))try{const t=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:t}}catch(t){return null}return this.loadTopicLayerImage(e).then(t=>t?R({type:"image"},t):null)})}loadTopicLayerImage(e){return Ar(e)?this.loadWmtsTopicLayerImage(e):new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t({image:a,layer:e}),a.onerror=()=>t(null),a.src=au(e)})}loadWmtsTopicLayerImage(e){return he(this,null,function*(){const t=document.createElement("canvas");t.width=At.width,t.height=At.height;const a=t.getContext("2d");if(!a)return null;a.clearRect(0,0,t.width,t.height);const n=this.getWmtsTopicZoom(e),s=Wu(U,n),o=[];for(let g=s.minX;g<=s.maxX;g+=1)for(let m=s.minY;m<=s.maxY;m+=1)o.push({x:g,y:m});let u=0,d=0;const h=()=>he(this,null,function*(){for(;d0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${u}px)`,a.drawImage(n,0,0),a.restore()),o>0){const g=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,g.forEach(([m,L])=>a.drawImage(n,m,L)),a.restore()}a.drawImage(n,0,0)}getWmtsTopicZoom(e={}){var o,u,d;const t=Math.round(Number(e.maximumLevel)),a=Number.isFinite(t)&&t>0?t:21,n=Number((d=(u=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?u:e.tileZoom)!=null?d:this.satelliteTextureZoom),s=Number.isFinite(n)&&n>0?Math.round(n):11;return Yt(s,3,Math.min(a,ei))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const t=Ar(e)?sr:Sa;this.topicLayerTexture.minFilter=t,this.topicLayerTexture.magFilter=t,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,t={}){const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;if(!t.softMask){this.drawHomeTopicRasterGlow(e,t),n.drawImage(e,0,0,a.width,a.height);return}const s=Math.min(1,Math.max(.08,Number(t.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*s)),o.height=Math.max(96,Math.round(a.height*s));const u=o.getContext("2d");if(!u){n.drawImage(e,0,0,a.width,a.height);return}u.clearRect(0,0,o.width,o.height),u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high",u.drawImage(e,0,0,o.width,o.height),n.save(),n.imageSmoothingEnabled=!0,n.imageSmoothingQuality="high",n.drawImage(o,0,0,a.width,a.height),n.restore()}drawHomeTopicRasterGlow(e,t={}){var d,h;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;const s=Yt((d=t.homeGlowOpacity)!=null?d:0,0,.8),o=Yt((h=t.homeGlowBlur)!=null?h:0,0,32);if(!s||!o)return;const u=t.homeGlowColor||"#E5FCFF";n.save(),n.globalAlpha=s,n.filter=`drop-shadow(0 0 ${o}px ${u})`,n.drawImage(e,0,0,a.width,a.height),n.restore()}applyLayerMapView(e,t={}){var d,h;if(!((d=this.camera)!=null&&d.instance)||!((h=this.camera)!=null&&h.controls)||!this.mapAnimationComplete&&!t.force)return;const a=e?null:this.currentTownRanking,n=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),s=n?this.getLayerMapViewTarget(n):this.defaultMapTarget.clone(),o=n?this.getLayerMapViewCameraPosition(n,s):this.defaultMapCameraPosition.clone(),u=n&&Number.isFinite(n.duration)?n.duration:.75;this.animateMapCamera(o,s,u)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,t=.84){const a=Number(e==null?void 0:e.opacity),n=Number.isFinite(a)?a:t;if(!this.isHomeTopicPresentation())return n;const s=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(s)?s:.56;return Yt(n,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var s,o,u,d,h,g,m;const e=(d=(u=(o=(s=this.camera)==null?void 0:s.controls)==null?void 0:o.target)==null?void 0:u.clone)==null?void 0:d.call(u);if(!e)return[102.58,32.72];(g=(h=this.focusMapGroup)==null?void 0:h.updateWorldMatrix)==null||g.call(h,!0,!1);const t=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),n=((m=a.invert)==null?void 0:m.call(a,[t.x,-t.y]))||[102.58,32.72];return[Math.max(U.west,Math.min(U.east,Number(n[0])||102.58)),Math.max(U.south,Math.min(U.north,Number(n[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,t){return t?`${e}:${t.minX}-${t.maxX}:${t.minY}-${t.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const t=Date.now();if(!e&&t-this.dynamicSatelliteLastCheck<_u)return;this.dynamicSatelliteLastCheck=t;const a=this.camera.instance.position.distanceTo(this.camera.controls.target),n=this.getDynamicSatelliteZoom(a);if(n<=this.satelliteTextureZoom){this.hideDynamicSatelliteOverlay();return}const s=this.getCameraTargetLngLat(),o=this.getDynamicSatelliteTileWindow(n),u=Tu({zoom:n,centerLngLat:s,maxCols:o,maxRows:o}),d=this.getDynamicSatelliteKey(n,u);!d||d===this.dynamicSatelliteCurrentKey||d===this.dynamicSatelliteLoadingKey||this.loadDynamicSatelliteOverlay({zoom:n,centerLngLat:s,maxTiles:o,key:d})}loadDynamicSatelliteOverlay({zoom:e,centerLngLat:t,maxTiles:a,key:n}){const s=++this.dynamicSatelliteRequestId;this.dynamicSatelliteLoadingKey=n;let o;o=Pr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:e,centerLngLat:t,maxCols:a,maxRows:a,tileUrlTemplate:this.tileUrlTemplate,transparentBackground:!0,applyTone:!1,onTileStatus:u=>{var d,h,g,m,L;if((g=(h=this.callbacks).onTileStatus)==null||g.call(h,$(R({},u),{text:((d=u.text)==null?void 0:d.replace("影像底图","高清影像底图"))||u.text})),u.type!=="loading"){if(s!==this.dynamicSatelliteRequestId){(L=(m=o==null?void 0:o.texture)==null?void 0:m.dispose)==null||L.call(m);return}if(this.dynamicSatelliteLoadingKey="",Number(u.loaded||0)<=0){this.dynamicSatelliteCurrentKey===n&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,n)}}}),this.applyDynamicSatelliteOverlay(o,n)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new be({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:Re,fog:!1}),t=new qe(new _t(1,1),e);t.name="dynamic-satellite-overlay",t.renderOrder=15,t.visible=!1,t.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(t),this.dynamicSatelliteOverlay=t,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,t){var o,u;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,n=Math.max(1e-4,a.right-a.left),s=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(n,s,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((u=(o=this.dynamicSatelliteTexture).dispose)==null||u.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=t}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,t,a,n;if(!this.mapAnimationComplete){if((t=(e=this.animateTl)==null?void 0:e.progress)==null||t.call(e,1,!1),(n=(a=this.animateTl)==null?void 0:a.pause)==null||n.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var t;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(t=e.targetLocalZ)!=null?t:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,t){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,n=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),s=t.clone().add(n);return e!=null&&e.cameraOffset&&s.add(this.toVector3(e.cameraOffset,new re(0,0,0))),s}lngLatToWorldPoint(e,t=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return this.defaultMapTarget.clone();const[o,u]=this.geoProjection([n,s]),d=new re(o,-u,Number(t)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(d):d}toVector3(e,t){if(Array.isArray(e)){const[o,u,d]=e.map(Number);return[o,u,d].every(Number.isFinite)?new re(o,u,d):t.clone()}const a=Number(e==null?void 0:e.x),n=Number(e==null?void 0:e.y),s=Number(e==null?void 0:e.z);return[a,n,s].every(Number.isFinite)?new re(a,n,s):t.clone()}animateMapCamera(e,t,a=.75){this.activeMapViewTweens.forEach(o=>{var u;return(u=o==null?void 0:o.kill)==null?void 0:u.call(o)}),this.activeMapViewTweens=[];const n=this.camera.controls,s=()=>n.update();this.activeMapViewTweens.push(aa.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:s}),aa.to(n.target,{duration:a,x:t.x,y:t.y,z:t.z,ease:"power2.out",onUpdate:s}))}addSceneTween(e){var t;return e&&(this.sceneTweens.push(e),this.scenePaused&&((t=e.pause)==null||t.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,t={}){var u,d,h;const a=this.townMetaByName.get(lt(e)),n=t.select?this.selectTownFeatureByName(e,t):!1;if(t.preserveCamera)return n||!!(a!=null&&a.center);if(!(a!=null&&a.center))return n;const s=this.lngLatToWorldPoint(a.center,(u=t.targetLocalZ)!=null?u:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(d=t.distanceScale)!=null?d:.82,cameraOffset:t.cameraOffset||{x:0,y:1.2,z:0}},s);return this.animateMapCamera(o,s,(h=t.duration)!=null?h:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,n,s,o,u,d,h,g,m,L;return[(s=(n=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:n.userData)==null?void 0:s.name,(u=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:u.name,(g=(h=(d=e==null?void 0:e.target)==null?void 0:d.parent)==null?void 0:h.userData)==null?void 0:g.townName,(L=(m=e==null?void 0:e.target)==null?void 0:m.userData)==null?void 0:L.townName].find(S=>String(S||"").trim())||""}findTownFeatureByName(e){var n,s,o,u;const t=lt(e);if(!t)return null;const a=(((n=this.mapJsonData)==null?void 0:n.features)||((o=(s=this.staticMapData)==null?void 0:s.mapJson)==null?void 0:o.features)||[]).find(d=>{const h=(d==null?void 0:d.properties)||{};return[h.name,h.fullName,h.full_name,h.townName].some(m=>lt(m)===t)});return a!=null&&a.geometry?{type:"Feature",properties:$(R({},a.properties||{}),{name:((u=a.properties)==null?void 0:u.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,t={}){var n,s,o,u,d;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),t.silentStatus!==!0&&((d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:t.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(t.showMissingStatus!==!1&&((s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,t={}){var u,d;if(!this.isNationalParkTownSelectionActive())return!1;const a=lt(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(h=>lt(h.name)===a))return!1;const o=this.focusTownByName(e,R({select:!0,preserveCamera:!0,statusText:`已选中${e}`},t));return o&&((d=(u=this.callbacks).onFeatureInfo)==null||d.call(u,{feature:null})),o}focusYakIndustryPoint(e={}){var s,o;const t=this.getYakIndustryPayloadCoordinate(e);if(!t)return(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,t);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(t,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var h,g;const t=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),n=String(e.fullName||e.name||"").trim(),s=t.find(m=>{const L=(m==null?void 0:m.properties)||{};return a&&String(L.id||"")===a||n&&String(L.name||L.plot_name||"").trim()===n});if(!s)return(g=(h=this.callbacks).onLayerStatus)==null||g.call(h,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([s]);const o=this.getGeometryLngLatBounds(s.geometry);if(!o)return{focused:!1,screen:null,feature:s};const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(s),feature:s}}getVectorFeatureScreen(e={}){let t=(e==null?void 0:e.feature)||e;if(!(t!=null&&t.geometry)){const s=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");t=s.find(u=>{var d;return String(((d=u==null?void 0:u.properties)==null?void 0:d.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(t==null?void 0:t.geometry);if(!a)return null;const n=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(n,this.depth+.34)||this.lngLatToScreenPoint(n,this.depth+.32)}getYakIndustryPointScreen(e={}){const t=this.getYakIndustryPayloadCoordinate(e);return t?this.lngLatToLayerScreenPoint(t,this.depth+.36)||this.lngLatToScreenPoint(t,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var s,o,u,d,h;const t=((s=e.geometry)==null?void 0:s.coordinates)||e.coordinates,a=Number((u=(o=e.longitude)!=null?o:e.lng)!=null?u:t==null?void 0:t[0]),n=Number((h=(d=e.latitude)!=null?d:e.lat)!=null?h:t==null?void 0:t[1]);return!Number.isFinite(a)||!Number.isFinite(n)?null:[a,n]}findYakIndustryPointFeature(e={},t=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),n=String(e.id||e.key||""),s=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),u=t&&a.find(h=>{var m;if(((m=h==null?void 0:h.geometry)==null?void 0:m.type)!=="Point")return!1;const g=h.properties||{};return o&&String(g.stageKey||"")!==o?!1:this.getCoordinateDistance(h.geometry.coordinates,t)<=8e-4})||null;if(e.preferCoordinateMatch)return u;const d=a.find(h=>{const g=(h==null?void 0:h.properties)||{};return!!(n&&String(g.id||"")===n||s&&String(g.name||g.fullName||"").trim()===s)});return d||u}loadVectorTopicLayer(e,t){return he(this,null,function*(){var a,n,s,o;try{const u=yield this.fetchVectorLayerGeojson(e);if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=u.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(u){if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return he(this,null,function*(){var s,o;if(e.sourceType==="geojson"){if(((s=e.geojsonData)==null?void 0:s.type)==="FeatureCollection")return e.geojsonData;const u=yield fetch(Vr(e.dataPath),{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);return yield u.json()}if(e.sourceType==="wfs"){const u=yield wr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(u==null?void 0:u.type)==="FeatureCollection"?u:{type:"FeatureCollection",features:(u==null?void 0:u.features)||[]}}let t=[],a=null;try{const u=yield fetch(e.apiUrl,{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.data)?d.data:Array.isArray((o=d==null?void 0:d.data)==null?void 0:o.rows)?d.data.rows:[]}catch(u){a=u}let n=this.buildWktLayerFeatures(t);if((!t.length||!n.length)&&e.fallbackPath){const u=yield fetch(Vr(e.fallbackPath),{credentials:"include"});if(!u.ok)throw a||new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.rows)?d.rows:[],n=this.buildWktLayerFeatures(t)}return{type:"FeatureCollection",features:n}})}buildWktLayerFeatures(e=[]){return(e||[]).map(t=>({type:"Feature",properties:{id:t.id,type:t.type,totalAcreage:t.totalAcreage,cdAcreage:t.cdAcreage,sdAcreage:t.sdAcreage,cdScl:t.cdScl,sdScl:t.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(t))})).filter(t=>t.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,t,a={}){const n=this.topicLayerContext;a.clear!==!1&&n.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),n.save(),n.lineJoin="round",n.lineCap="round",this.clipVectorLayerContext(n,e);const o=this.getVisibleVectorFeatures(e,t).filter(u=>{var d;return!(e!=null&&e.hidePointFeatures)||((d=u==null?void 0:u.geometry)==null?void 0:d.type)!=="Point"}).sort((u,d)=>{var m,L;const h=this.getGeometryDrawRank((m=u.geometry)==null?void 0:m.type),g=this.getGeometryDrawRank((L=d.geometry)==null?void 0:L.type);return h-g});o.forEach(u=>{const d=this.getVectorFeatureStyle(e,u);this.drawVectorFeature(n,u.geometry,d)}),this.drawNationalParkBoundaryOverlay(n,e,o),this.drawSelectedVectorOverlay(n),n.restore()}drawNationalParkBoundaryOverlay(e,t,a=[]){(t==null?void 0:t.key)!=="national-park-zoning"||!a.length||a.forEach(n=>{const s=this.getVectorFeatureStyle(t,n);this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:s.stroke,stroke:s.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const t=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],n=this.analysisBoundaryFeature,s=this.boundaryDrawPoints||[];if(!t.length&&!a.length&&!n&&!s.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),u={fill:Fr,stroke:$u,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},d={fill:Fr,stroke:Eu,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),t.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,u),this.drawVectorFeature(e,g,d)}),a.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),n!=null&&n.geometry&&this.drawVectorFeature(e,n.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),s.length){const h=s.map(m=>[m.lng,m.lat]),g={type:"LineString",coordinates:this.boundaryDrawingEnabled?h:[...h,h[0]].filter(Boolean)};this.drawVectorFeature(e,g,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),h.forEach(m=>{this.drawVectorFeature(e,{type:"Point",coordinates:m},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!ti(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},t={}){var s;const a=Array.isArray(t==null?void 0:t.matches)?t.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var u;return String((u=e[o.field])!=null?u:"")===String(o.value)});const n=t==null?void 0:t.match;return n!=null&&n.field?String((s=e[n.field])!=null?s:"")===String(n.value):!0}getVisibleVectorFeatures(e,t){var u,d;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(h=>{var g,m;return((g=h==null?void 0:h.matches)==null?void 0:g.length)||((m=h==null?void 0:h.match)==null?void 0:m.field)}):[];if(a.length)return(t||[]).filter(h=>a.some(g=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},g)));const n=e==null?void 0:e.activeLegend;if((u=n==null?void 0:n.matches)!=null&&u.length||(d=n==null?void 0:n.match)!=null&&d.field)return(t||[]).filter(h=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},n));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,h,g]=o,m=g.replace(/''/g,"'");return(t||[]).filter(L=>{var S,C;return String((C=(S=L==null?void 0:L.properties)==null?void 0:S[h])!=null?C:"")===m})}return[...t||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,t);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((n,s)=>{var u;let o=this.yakIndustryPointLabels[s];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(n),this.getYakIndustryPointLabelPosition(n,s)),o.visible=!0,(u=o.show)==null||u.call(o),o.userData={feature:n}}),this.yakIndustryPointLabels.slice(a.length).forEach(n=>{var s;n.visible=!1,(s=n.hide)==null||s.call(n),n.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,t).filter(n=>{var s;return((s=n==null?void 0:n.geometry)==null?void 0:s.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((n,s)=>{let o=this.yakIndustryPointMarkers[s];const u=this.getVectorFeatureStyle(e,n),d=this.getYakIndustryMarkerMaterial(u,n),h=this.lngLatToLayerLocalPoint(n.geometry.coordinates,this.depth+.36),g=Number(e==null?void 0:e.pointSpriteScale)||.34,m=this.getYakIndustryMarkerType(n);o||(o=new Qt(d),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=d,o.center.set(.5,.5),o.position.copy(h),o.scale.set(g*.88,g*.88,1),o.visible=!0,o.userData={feature:n,layer:e,index:s,markerType:m}}),this.yakIndustryPointMarkers.slice(a.length).forEach(n=>{n.visible=!1,n.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Te,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(t=>{t.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",t=>{var s,o,u,d,h,g,m,L,S;if(this.clicked||!((s=this.yakIndustryPointMarkerGroup)!=null&&s.visible))return!1;const a=(u=(o=t.target)==null?void 0:o.userData)==null?void 0:u.feature;if(!a)return!1;this.clicked=!0;const n=((d=a.geometry)==null?void 0:d.coordinates)||[];this.setSelectedVectorFeatures([a]),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:{id:((h=a.properties)==null?void 0:h.id)||((g=a.properties)==null?void 0:g.feature_id)||((m=a.properties)==null?void 0:m.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(n[0]),lat:Number(n[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,t){const a=e.markerType||this.getYakIndustryMarkerType(t),n=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,s=this.yakIndustryMarkerMaterialCache.get(n);if(s)return s;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),u=new ea({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(n,u),u}getYakIndustryMarkerType(e={}){var a;const t=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return Rr[t]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",t="#B7FFF2",a="point"){const n=document.createElement("canvas");n.width=112,n.height=112;const s=n.getContext("2d"),o=56,u=56;s.clearRect(0,0,n.width,n.height),s.beginPath(),s.arc(o,u,42,0,Math.PI*2),s.fillStyle=this.hexToRgba(e,.18),s.shadowColor=e,s.shadowBlur=20,s.fill(),this.drawYakIndustryMarkerFrame(s,a,o,u,e,t||e),s.save(),s.shadowBlur=0,s.beginPath(),s.arc(o,u,19,0,Math.PI*2),s.fillStyle="rgba(3, 23, 34, 0.64)",s.fill(),s.strokeStyle=this.hexToRgba("#FFFFFF",.32),s.lineWidth=2,s.stroke(),s.restore(),this.drawYakIndustryMarkerGlyph(s,a,o,u,"#FFFFFF");const d=new Zi(n);return d.colorSpace=na,d.needsUpdate=!0,d}drawYakIndustryMarkerFrame(e,t,a,n,s="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,n),e.fillStyle=this.hexToRgba(s,.92),e.strokeStyle=this.hexToRgba(o||s,.98),e.lineWidth=4,e.shadowColor=o||s,e.shadowBlur=14,t==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(t==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(t==="breeding"){e.beginPath();for(let u=0;u<6;u+=1){const d=-Math.PI/2+Math.PI*2*u/6,h=Math.cos(d)*35,g=Math.sin(d)*35;u===0?e.moveTo(h,g):e.lineTo(h,g)}e.closePath()}else if(t==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(t==="processing"){e.beginPath();for(let u=0;u<10;u+=1){const d=-Math.PI/2+Math.PI*2*u/10,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else if(t==="equipment"){e.beginPath();for(let u=0;u<16;u+=1){const d=-Math.PI/2+Math.PI*2*u/16,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else t==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,t,a,n,s="#24F6C4"){if(e.save(),e.translate(a,n),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(s,.98),e.strokeStyle=this.hexToRgba(s,.98),e.lineWidth=3,t==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(t==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(t==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(t==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(t==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(t==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else t==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Te,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(t=>{var a;t.visible=!1,(a=t.hide)==null||a.call(t)})}getYakIndustryLabelFeatures(e,t){const a=this.getVisibleVectorFeatures(e,t).filter(d=>{var h;return((h=d==null?void 0:d.geometry)==null?void 0:h.type)==="Point"}),n=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),s=a.map(d=>{var h;return{feature:d,score:this.getYakIndustryFeatureScore(d),town:lt((h=d.properties)==null?void 0:h.town)}}).sort((d,h)=>{var g,m;return h.score-d.score||String(((g=d.feature.properties)==null?void 0:g.name)||"").localeCompare(String(((m=h.feature.properties)==null?void 0:m.name)||""),"zh-CN")}),o=[],u=new Set;return s.forEach(d=>{o.length>=n||!d.town||u.has(d.town)||(o.push(d.feature),u.add(d.town))}),s.forEach(d=>{o.length>=n||o.includes(d.feature)||o.push(d.feature)}),o}getYakIndustryFeatureScore(e){const t=(e==null?void 0:e.properties)||{},a=[t.outputValue,t.capacity,t.value,t.count,t["年产值 (万元)"],t["年总产值 (万元)"],t["设计存栏量 (头)"],t["总库容 (吨)"]].map(n=>this.parseMapMetricNumber(n));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return t&&Number(t[0])||0}getYakIndustryPointLabelPosition(e,t=0){var n;const a=this.lngLatToLayerLocalPoint((n=e==null?void 0:e.geometry)==null?void 0:n.coordinates,this.depth+.42+Math.min(t,5)*.01);return a.x+=(t%3-1)*.08,a.y+=t%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const t=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(t.name||t.fullName||"产业主体"),n=this.formatYakIndustryLabelText(t.categoryName||t.stageName||"产业主体"),s=t.town||t.village||"红原县",o=this.getYakIndustryPointMetricText(t),u=this.getYakIndustryLabelColor(t);return`
    ${Se(n)}
    ${Se(a)}
    diff --git a/docs/assets/index.esm.min-e7a22049-1784132466083.js b/docs/assets/index.esm.min-da05f706-1784132792831.js similarity index 99% rename from docs/assets/index.esm.min-e7a22049-1784132466083.js rename to docs/assets/index.esm.min-da05f706-1784132792831.js index 863ef46..3e08258 100644 --- a/docs/assets/index.esm.min-e7a22049-1784132466083.js +++ b/docs/assets/index.esm.min-da05f706-1784132792831.js @@ -1,4 +1,4 @@ -import{P as fe,i as j,g as w,O as le,w as T,Q as Y,q as ve,h as he,R as ee,K as R,S as ge,U as pe,A as ze,V as be,u as we,W as ye}from"./index-1784132466083.js";var k=null;function me(e){return k||(k=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),k(e)}var N=null;function Ee(e){N||(N=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),N(e)}function Oe(e){var t=document.createElement("style");return t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function H(e,t){t===void 0&&(t={});var r=document.createElement(e);return Object.keys(t).forEach(function(a){r[a]=t[a]}),r}function ie(e,t,r){var a=window.getComputedStyle(e,r||null)||{display:"none"};return a[t]}function q(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(ie(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var xe='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',B=0,F=null;function Ce(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=Se.bind(e));var r=e.__resize_listeners__;if(!r){if(e.__resize_listeners__=[],window.ResizeObserver){var a=e.offsetWidth,o=e.offsetHeight,n=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===a&&e.offsetHeight===o)||U(e)}),u=q(e),p=u.detached,v=u.rendered;e.__resize_observer_triggered__=p===!1&&v===!1,e.__resize_observer__=n,n.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){U(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(B||(F=Oe(xe)),je(e),e.__resize_rendered__=q(e).rendered,window.MutationObserver){var h=new MutationObserver(e.__resize_mutation_handler__);h.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=h}}e.__resize_listeners__.push(t),B++}function Le(e,t){var r=e.__resize_listeners__;if(r){if(t&&r.splice(r.indexOf(t),1),!r.length||!t){if(e.detachEvent&&e.removeEventListener){e.detachEvent("onresize",e.__resize_legacy_resize_handler__),document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);return}e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",P),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--B&&F&&F.parentNode.removeChild(F)}}function Ae(e){var t=e.__resize_last__,r=t.width,a=t.height,o=e.offsetWidth,n=e.offsetHeight;return o!==r||n!==a?{width:o,height:n}:null}function Se(){var e=q(this),t=e.rendered,r=e.detached;t!==this.__resize_rendered__&&(!r&&this.__resize_triggers__&&($(this),this.addEventListener("scroll",P,!0)),this.__resize_rendered__=t,U(this))}function P(){var e=this;$(this),this.__resize_raf__&&Ee(this.__resize_raf__),this.__resize_raf__=me(function(){var t=Ae(e);t&&(e.__resize_last__=t,U(e))})}function U(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function je(e){var t=ie(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var r=H("div",{className:"resize-triggers"}),a=H("div",{className:"resize-expand-trigger"}),o=H("div"),n=H("div",{className:"resize-contract-trigger"});a.appendChild(o),r.appendChild(a),r.appendChild(n),e.appendChild(r),e.__resize_triggers__={triggers:r,expand:a,expandChild:o,contract:n},$(e),e.addEventListener("scroll",P,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function $(e){var t=e.__resize_triggers__,r=t.expand,a=t.expandChild,o=t.contract,n=o.scrollWidth,u=o.scrollHeight,p=r.offsetWidth,v=r.offsetHeight,h=r.scrollWidth,f=r.scrollHeight;o.scrollLeft=n,o.scrollTop=u,a.style.width=p+1+"px",a.style.height=v+1+"px",r.scrollLeft=h,r.scrollTop=f}var g=function(){return g=Object.assign||function(e){for(var t,r=1,a=arguments.length;r{var ue={};for(var fe in ae)mh.call(ae,fe)&&Je.indexOf(fe)<0&&(ue[fe]=ae[fe]);if(ae!=null&&Hl)for(var fe of Hl(ae))Je.indexOf(fe)<0&&ph.call(ae,fe)&&(ue[fe]=ae[fe]);return ue};var Wl=(ae,Je,ue)=>new Promise((fe,St)=>{var dt=ut=>{try{gn(ue.next(ut))}catch(Mt){St(Mt)}},je=ut=>{try{gn(ue.throw(ut))}catch(Mt){St(Mt)}},gn=ut=>ut.done?fe(ut.value):Promise.resolve(ut.value).then(dt,je);gn((ue=ue.apply(ae,Je)).next())});import{r as fh,n as hh}from"./index-ed255eef-1784132466083.js";var Ar=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gh(ae){return ae&&ae.__esModule&&Object.prototype.hasOwnProperty.call(ae,"default")?ae.default:ae}function Dr(ae){throw new Error('Could not dynamically require "'+ae+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mr={exports:{}};Mr.exports;(function(ae,Je){function ue(f){"@babel/helpers - typeof";return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},ue(f)}function fe(f,u){if(!(f instanceof u))throw new TypeError("Cannot call a class as a function")}function St(f,u){for(var n=0;n>>1,ce=[["ary",A],["bind",w],["bindKey",z],["curry",d],["curryRight",m],["flip",H],["partial",g],["partialRight",k],["rearg",O]],he="[object Arguments]",Re="[object Array]",we="[object AsyncFunction]",ke="[object Boolean]",We="[object Date]",yn="[object DOMException]",Yt="[object Error]",It="[object Function]",Ht="[object GeneratorFunction]",Ge="[object Map]",Ct="[object Number]",kt="[object Null]",Oe="[object Object]",rt="[object Promise]",Ae="[object Proxy]",ye="[object RegExp]",De="[object Set]",Xe="[object String]",P="[object Symbol]",M="[object Undefined]",F="[object WeakMap]",j="[object WeakSet]",I="[object ArrayBuffer]",V="[object DataView]",L="[object Float32Array]",J="[object Float64Array]",q="[object Int8Array]",de="[object Int16Array]",ee="[object Int32Array]",se="[object Uint8Array]",Qe="[object Uint8ClampedArray]",mt="[object Uint16Array]",Ie="[object Uint32Array]",ht=/\b__p \+= '';/g,Be=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Vt=/[&<>"']/g,Ue=RegExp(Xt.source),st=RegExp(Vt.source),Nn=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,Si=/<%=([\s\S]+?)%>/g,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Li=/^\w*$/,yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pt=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(pt.source),cn=/^\s+/,Tn=/\s/,ni=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Oi=/\{\n\/\* \[wrapped with (.+)\] \*/,Ui=/,? & /,Hi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ii=/[()=,{}\[\]\/\s]/,un=/\\(\\)?/g,$s=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ga=/\w*$/,Ys=/^[-+]0x[0-9a-f]+$/i,Xs=/^0b[01]+$/i,Qs=/^\[object .+?Constructor\]$/,e0=/^0o[0-7]+$/i,t0=/^(?:0|[1-9]\d*)$/,n0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Vi=/($^)/,i0=/['\n\r\u2028\u2029\\]/g,Wi="\\ud800-\\udfff",r0="\\u0300-\\u036f",o0="\\ufe20-\\ufe2f",a0="\\u20d0-\\u20ff",va=r0+o0+a0,ya="\\u2700-\\u27bf",Ta="a-z\\xdf-\\xf6\\xf8-\\xff",d0="\\xac\\xb1\\xd7\\xf7",l0="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",s0="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Sa="A-Z\\xc0-\\xd6\\xd8-\\xde",Ca="\\ufe0e\\ufe0f",ba=d0+l0+s0+c0,jr="['’]",u0="["+Wi+"]",Pa="["+ba+"]",Gi="["+va+"]",wa="\\d+",m0="["+ya+"]",Ea="["+Ta+"]",Ia="[^"+Wi+ba+wa+ya+Ta+Sa+"]",Lr="\\ud83c[\\udffb-\\udfff]",p0="(?:"+Gi+"|"+Lr+")",xa="[^"+Wi+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Ur="[\\ud800-\\udbff][\\udc00-\\udfff]",ri="["+Sa+"]",_a="\\u200d",Ra="(?:"+Ea+"|"+Ia+")",f0="(?:"+ri+"|"+Ia+")",ka="(?:"+jr+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+jr+"(?:D|LL|M|RE|S|T|VE))?",Da=p0+"?",Ma="["+Ca+"]?",h0="(?:"+_a+"(?:"+[xa,Or,Ur].join("|")+")"+Ma+Da+")*",g0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",v0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Na=Ma+Da+h0,y0="(?:"+[m0,Or,Ur].join("|")+")"+Na,T0="(?:"+[xa+Gi+"?",Gi,Or,Ur,u0].join("|")+")",S0=RegExp(jr,"g"),C0=RegExp(Gi,"g"),Hr=RegExp(Lr+"(?="+Lr+")|"+T0+Na,"g"),b0=RegExp([ri+"?"+Ea+"+"+ka+"(?="+[Pa,ri,"$"].join("|")+")",f0+"+"+Aa+"(?="+[Pa,ri+Ra,"$"].join("|")+")",ri+"?"+Ra+"+"+ka,ri+"+"+Aa,v0,g0,wa,y0].join("|"),"g"),P0=RegExp("["+_a+Wi+va+Ca+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,E0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],I0=-1,ft={};ft[L]=ft[J]=ft[q]=ft[de]=ft[ee]=ft[se]=ft[Qe]=ft[mt]=ft[Ie]=!0,ft[he]=ft[Re]=ft[I]=ft[ke]=ft[V]=ft[We]=ft[Yt]=ft[It]=ft[Ge]=ft[Ct]=ft[Oe]=ft[ye]=ft[De]=ft[Xe]=ft[F]=!1;var ct={};ct[he]=ct[Re]=ct[I]=ct[V]=ct[ke]=ct[We]=ct[L]=ct[J]=ct[q]=ct[de]=ct[ee]=ct[Ge]=ct[Ct]=ct[Oe]=ct[ye]=ct[De]=ct[Xe]=ct[P]=ct[se]=ct[Qe]=ct[mt]=ct[Ie]=!0,ct[Yt]=ct[It]=ct[F]=!1;var x0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},_0={"&":"&","<":"<",">":">",'"':""","'":"'"},R0={"&":"&","<":"<",">":">",""":'"',"'":"'"},k0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},A0=parseFloat,D0=parseInt,Fa=typeof Zn=="object"&&Zn&&Zn.Object===Object&&Zn,M0=typeof self=="object"&&self&&self.Object===Object&&self,_t=Fa||M0||Function("return this")(),Vr=u&&!u.nodeType&&u,Jn=Vr&&!0&&f&&!f.nodeType&&f,Ba=Jn&&Jn.exports===Vr,Wr=Ba&&Fa.process,Qt=function(){try{var W=Jn&&Jn.require&&Jn.require("util").types;return W||Wr&&Wr.binding&&Wr.binding("util")}catch(ie){}}(),za=Qt&&Qt.isArrayBuffer,ja=Qt&&Qt.isDate,La=Qt&&Qt.isMap,Oa=Qt&&Qt.isRegExp,Ua=Qt&&Qt.isSet,Ha=Qt&&Qt.isTypedArray;function Gt(W,ie,Q){switch(Q.length){case 0:return W.call(ie);case 1:return W.call(ie,Q[0]);case 2:return W.call(ie,Q[0],Q[1]);case 3:return W.call(ie,Q[0],Q[1],Q[2])}return W.apply(ie,Q)}function N0(W,ie,Q,Te){for(var Ne=-1,nt=W==null?0:W.length;++Ne-1}function Gr(W,ie,Q){for(var Te=-1,Ne=W==null?0:W.length;++Te-1;);return Q}function $a(W,ie){for(var Q=W.length;Q--&&oi(ie,W[Q],0)>-1;);return Q}function V0(W,ie){for(var Q=W.length,Te=0;Q--;)W[Q]===ie&&++Te;return Te}var W0=qr(x0),G0=qr(_0);function Z0(W){return"\\"+k0[W]}function J0(W,ie){return W==null?n:W[ie]}function ai(W){return P0.test(W)}function K0(W){return w0.test(W)}function q0(W){for(var ie,Q=[];!(ie=W.next()).done;)Q.push(ie.value);return Q}function Qr(W){var ie=-1,Q=Array(W.size);return W.forEach(function(Te,Ne){Q[++ie]=[Ne,Te]}),Q}function Ya(W,ie){return function(Q){return W(ie(Q))}}function zn(W,ie){for(var Q=-1,Te=W.length,Ne=0,nt=[];++Q-1}function Bc(e,t){var o=this.__data__,c=sr(o,e);return c<0?(++this.size,o.push([e,t])):o[c][1]=t,this}En.prototype.clear=Dc,En.prototype.delete=Mc,En.prototype.get=Nc,En.prototype.has=Fc,En.prototype.set=Bc;function In(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function rn(e,t,o,c,v,R){var B,U=t&y,G=t&h,re=t&D;if(o&&(B=v?o(e,c,v,R):o(e)),B!==n)return B;if(!vt(e))return e;var oe=Fe(e);if(oe){if(B=Ou(e),!U)return zt(e,B)}else{var le=Dt(e),pe=le==It||le==Ht;if(Vn(e))return Md(e,U);if(le==Oe||le==he||pe&&!v){if(B=G||pe?{}:Xd(e),!U)return G?Ru(e,Xc(B,e)):_u(e,sd(B,e))}else{if(!ct[le])return v?e:{};B=Uu(e,le,U)}}R||(R=new pn);var Se=R.get(e);if(Se)return Se;R.set(e,B),xl(e)?e.forEach(function(_e){B.add(rn(_e,t,o,_e,e,R))}):El(e)&&e.forEach(function(_e,Ve){B.set(Ve,rn(_e,t,o,Ve,e,R))});var xe=re?G?Io:Eo:G?Lt:xt,Le=oe?n:xe(e);return en(Le||e,function(_e,Ve){Le&&(Ve=_e,_e=e[Ve]),xi(B,Ve,rn(_e,t,o,Ve,e,R))}),B}function Qc(e){var t=xt(e);return function(o){return cd(o,e,t)}}function cd(e,t,o){var c=o.length;if(e==null)return!c;for(e=at(e);c--;){var v=o[c],R=t[v],B=e[v];if(B===n&&!(v in e)||!R(B))return!1}return!0}function ud(e,t,o){if(typeof e!="function")throw new tn(l);return Ni(function(){e.apply(n,o)},t)}function _i(e,t,o,c){var v=-1,R=Zi,B=!0,U=e.length,G=[],re=t.length;if(!U)return G;o&&(t=gt(t,Zt(o))),c?(R=Gr,B=!1):t.length>=r&&(R=Ci,B=!1,t=new $n(t));e:for(;++vv?0:v+o),c=c===n||c>v?v:ze(c),c<0&&(c+=v),c=o>c?0:Rl(c);o0&&o(U)?t>1?Rt(U,t-1,o,c,v):Bn(v,U):c||(v[v.length]=U)}return v}var ao=Ld(),fd=Ld(!0);function Sn(e,t){return e&&ao(e,t,xt)}function lo(e,t){return e&&fd(e,t,xt)}function ur(e,t){return Fn(t,function(o){return An(e[o])})}function Xn(e,t){t=Un(t,e);for(var o=0,c=t.length;e!=null&&ot}function nu(e,t){return e!=null&&ot.call(e,t)}function iu(e,t){return e!=null&&t in at(e)}function ru(e,t,o){return e>=At(t,o)&&e=120&&oe.length>=120)?new $n(B&&oe):n}oe=e[0];var le=-1,pe=U[0];e:for(;++le-1;)U!==e&&nr.call(U,G,1),nr.call(e,G,1);return e}function Ed(e,t){for(var o=e?t.length:0,c=o-1;o--;){var v=t[o];if(o==c||v!==R){var R=v;kn(v)?nr.call(e,v,1):yo(e,v)}}return e}function ho(e,t){return e+or(od()*(t-e+1))}function vu(e,t,o,c){for(var v=-1,R=Et(rr((t-e)/(o||1)),0),B=Q(R);R--;)B[c?R:++v]=e,e+=o;return B}function go(e,t){var o="";if(!e||t<1||t>be)return o;do t%2&&(o+=e),t=or(t/2),t&&(e+=e);while(t);return o}function He(e,t){return Mo(tl(e,t,Ot),e+"")}function yu(e){return ld(vi(e))}function Tu(e,t){var o=vi(e);return br(o,Yn(t,0,o.length))}function Ai(e,t,o,c){if(!vt(e))return e;t=Un(t,e);for(var v=-1,R=t.length,B=R-1,U=e;U!=null&&++vv?0:v+t),o=o>v?v:o,o<0&&(o+=v),v=t>o?0:o-t>>>0,t>>>=0;for(var R=Q(v);++c>>1,B=e[R];B!==null&&!Kt(B)&&(o?B<=t:B=r){var re=t?null:Mu(e);if(re)return Ki(re);B=!1,v=Ci,G=new $n}else G=t?[]:U;e:for(;++c=c?e:on(e,t,o)}var Dd=cc||function(e){return _t.clearTimeout(e)};function Md(e,t){if(t)return e.slice();var o=e.length,c=ed?ed(o):new e.constructor(o);return e.copy(c),c}function bo(e){var t=new e.constructor(e.byteLength);return new er(t).set(new er(e)),t}function wu(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}function Eu(e){var t=new e.constructor(e.source,ga.exec(e));return t.lastIndex=e.lastIndex,t}function Iu(e){return Ii?at(Ii.call(e)):{}}function Nd(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}function Fd(e,t){if(e!==t){var o=e!==n,c=e===null,v=e===e,R=Kt(e),B=t!==n,U=t===null,G=t===t,re=Kt(t);if(!U&&!re&&!R&&e>t||R&&B&&G&&!U&&!re||c&&B&&G||!o&&G||!v)return 1;if(!c&&!R&&!re&&e=U)return G;var re=o[c];return G*(re=="desc"?-1:1)}}return e.index-t.index}function Bd(e,t,o,c){for(var v=-1,R=e.length,B=o.length,U=-1,G=t.length,re=Et(R-B,0),oe=Q(G+re),le=!c;++U1?o[v-1]:n,B=v>2?o[2]:n;for(R=e.length>3&&typeof R=="function"?(v--,R):n,B&&Ft(o[0],o[1],B)&&(R=v<3?n:R,v=1),t=at(t);++c-1?v[R?t[B]:B]:n}}function Hd(e){return Rn(function(t){var o=t.length,c=o,v=nn.prototype.thru;for(e&&t.reverse();c--;){var R=t[c];if(typeof R!="function")throw new tn(l);if(v&&!B&&Sr(R)=="wrapper")var B=new nn([],!0)}for(c=B?c:o;++c1&&$e.reverse(),oe&&GU))return!1;var re=R.get(e),oe=R.get(t);if(re&&oe)return re==t&&oe==e;var le=-1,pe=!0,Se=o&E?new $n:n;for(R.set(e,t),R.set(t,e);++le1?"& ":"")+t[c],t=t.join(o>2?", ":" "),e.replace(ni,`{ +var Hl=Object.getOwnPropertySymbols;var mh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable;var Vl=(ae,Je)=>{var ue={};for(var fe in ae)mh.call(ae,fe)&&Je.indexOf(fe)<0&&(ue[fe]=ae[fe]);if(ae!=null&&Hl)for(var fe of Hl(ae))Je.indexOf(fe)<0&&ph.call(ae,fe)&&(ue[fe]=ae[fe]);return ue};var Wl=(ae,Je,ue)=>new Promise((fe,St)=>{var dt=ut=>{try{gn(ue.next(ut))}catch(Mt){St(Mt)}},je=ut=>{try{gn(ue.throw(ut))}catch(Mt){St(Mt)}},gn=ut=>ut.done?fe(ut.value):Promise.resolve(ut.value).then(dt,je);gn((ue=ue.apply(ae,Je)).next())});import{r as fh,n as hh}from"./index-a1b5e9c0-1784132792831.js";var Ar=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gh(ae){return ae&&ae.__esModule&&Object.prototype.hasOwnProperty.call(ae,"default")?ae.default:ae}function Dr(ae){throw new Error('Could not dynamically require "'+ae+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mr={exports:{}};Mr.exports;(function(ae,Je){function ue(f){"@babel/helpers - typeof";return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},ue(f)}function fe(f,u){if(!(f instanceof u))throw new TypeError("Cannot call a class as a function")}function St(f,u){for(var n=0;n>>1,ce=[["ary",A],["bind",w],["bindKey",z],["curry",d],["curryRight",m],["flip",H],["partial",g],["partialRight",k],["rearg",O]],he="[object Arguments]",Re="[object Array]",we="[object AsyncFunction]",ke="[object Boolean]",We="[object Date]",yn="[object DOMException]",Yt="[object Error]",It="[object Function]",Ht="[object GeneratorFunction]",Ge="[object Map]",Ct="[object Number]",kt="[object Null]",Oe="[object Object]",rt="[object Promise]",Ae="[object Proxy]",ye="[object RegExp]",De="[object Set]",Xe="[object String]",P="[object Symbol]",M="[object Undefined]",F="[object WeakMap]",j="[object WeakSet]",I="[object ArrayBuffer]",V="[object DataView]",L="[object Float32Array]",J="[object Float64Array]",q="[object Int8Array]",de="[object Int16Array]",ee="[object Int32Array]",se="[object Uint8Array]",Qe="[object Uint8ClampedArray]",mt="[object Uint16Array]",Ie="[object Uint32Array]",ht=/\b__p \+= '';/g,Be=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Vt=/[&<>"']/g,Ue=RegExp(Xt.source),st=RegExp(Vt.source),Nn=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,Si=/<%=([\s\S]+?)%>/g,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Li=/^\w*$/,yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pt=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(pt.source),cn=/^\s+/,Tn=/\s/,ni=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Oi=/\{\n\/\* \[wrapped with (.+)\] \*/,Ui=/,? & /,Hi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ii=/[()=,{}\[\]\/\s]/,un=/\\(\\)?/g,$s=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ga=/\w*$/,Ys=/^[-+]0x[0-9a-f]+$/i,Xs=/^0b[01]+$/i,Qs=/^\[object .+?Constructor\]$/,e0=/^0o[0-7]+$/i,t0=/^(?:0|[1-9]\d*)$/,n0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Vi=/($^)/,i0=/['\n\r\u2028\u2029\\]/g,Wi="\\ud800-\\udfff",r0="\\u0300-\\u036f",o0="\\ufe20-\\ufe2f",a0="\\u20d0-\\u20ff",va=r0+o0+a0,ya="\\u2700-\\u27bf",Ta="a-z\\xdf-\\xf6\\xf8-\\xff",d0="\\xac\\xb1\\xd7\\xf7",l0="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",s0="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Sa="A-Z\\xc0-\\xd6\\xd8-\\xde",Ca="\\ufe0e\\ufe0f",ba=d0+l0+s0+c0,jr="['’]",u0="["+Wi+"]",Pa="["+ba+"]",Gi="["+va+"]",wa="\\d+",m0="["+ya+"]",Ea="["+Ta+"]",Ia="[^"+Wi+ba+wa+ya+Ta+Sa+"]",Lr="\\ud83c[\\udffb-\\udfff]",p0="(?:"+Gi+"|"+Lr+")",xa="[^"+Wi+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Ur="[\\ud800-\\udbff][\\udc00-\\udfff]",ri="["+Sa+"]",_a="\\u200d",Ra="(?:"+Ea+"|"+Ia+")",f0="(?:"+ri+"|"+Ia+")",ka="(?:"+jr+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+jr+"(?:D|LL|M|RE|S|T|VE))?",Da=p0+"?",Ma="["+Ca+"]?",h0="(?:"+_a+"(?:"+[xa,Or,Ur].join("|")+")"+Ma+Da+")*",g0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",v0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Na=Ma+Da+h0,y0="(?:"+[m0,Or,Ur].join("|")+")"+Na,T0="(?:"+[xa+Gi+"?",Gi,Or,Ur,u0].join("|")+")",S0=RegExp(jr,"g"),C0=RegExp(Gi,"g"),Hr=RegExp(Lr+"(?="+Lr+")|"+T0+Na,"g"),b0=RegExp([ri+"?"+Ea+"+"+ka+"(?="+[Pa,ri,"$"].join("|")+")",f0+"+"+Aa+"(?="+[Pa,ri+Ra,"$"].join("|")+")",ri+"?"+Ra+"+"+ka,ri+"+"+Aa,v0,g0,wa,y0].join("|"),"g"),P0=RegExp("["+_a+Wi+va+Ca+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,E0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],I0=-1,ft={};ft[L]=ft[J]=ft[q]=ft[de]=ft[ee]=ft[se]=ft[Qe]=ft[mt]=ft[Ie]=!0,ft[he]=ft[Re]=ft[I]=ft[ke]=ft[V]=ft[We]=ft[Yt]=ft[It]=ft[Ge]=ft[Ct]=ft[Oe]=ft[ye]=ft[De]=ft[Xe]=ft[F]=!1;var ct={};ct[he]=ct[Re]=ct[I]=ct[V]=ct[ke]=ct[We]=ct[L]=ct[J]=ct[q]=ct[de]=ct[ee]=ct[Ge]=ct[Ct]=ct[Oe]=ct[ye]=ct[De]=ct[Xe]=ct[P]=ct[se]=ct[Qe]=ct[mt]=ct[Ie]=!0,ct[Yt]=ct[It]=ct[F]=!1;var x0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},_0={"&":"&","<":"<",">":">",'"':""","'":"'"},R0={"&":"&","<":"<",">":">",""":'"',"'":"'"},k0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},A0=parseFloat,D0=parseInt,Fa=typeof Zn=="object"&&Zn&&Zn.Object===Object&&Zn,M0=typeof self=="object"&&self&&self.Object===Object&&self,_t=Fa||M0||Function("return this")(),Vr=u&&!u.nodeType&&u,Jn=Vr&&!0&&f&&!f.nodeType&&f,Ba=Jn&&Jn.exports===Vr,Wr=Ba&&Fa.process,Qt=function(){try{var W=Jn&&Jn.require&&Jn.require("util").types;return W||Wr&&Wr.binding&&Wr.binding("util")}catch(ie){}}(),za=Qt&&Qt.isArrayBuffer,ja=Qt&&Qt.isDate,La=Qt&&Qt.isMap,Oa=Qt&&Qt.isRegExp,Ua=Qt&&Qt.isSet,Ha=Qt&&Qt.isTypedArray;function Gt(W,ie,Q){switch(Q.length){case 0:return W.call(ie);case 1:return W.call(ie,Q[0]);case 2:return W.call(ie,Q[0],Q[1]);case 3:return W.call(ie,Q[0],Q[1],Q[2])}return W.apply(ie,Q)}function N0(W,ie,Q,Te){for(var Ne=-1,nt=W==null?0:W.length;++Ne-1}function Gr(W,ie,Q){for(var Te=-1,Ne=W==null?0:W.length;++Te-1;);return Q}function $a(W,ie){for(var Q=W.length;Q--&&oi(ie,W[Q],0)>-1;);return Q}function V0(W,ie){for(var Q=W.length,Te=0;Q--;)W[Q]===ie&&++Te;return Te}var W0=qr(x0),G0=qr(_0);function Z0(W){return"\\"+k0[W]}function J0(W,ie){return W==null?n:W[ie]}function ai(W){return P0.test(W)}function K0(W){return w0.test(W)}function q0(W){for(var ie,Q=[];!(ie=W.next()).done;)Q.push(ie.value);return Q}function Qr(W){var ie=-1,Q=Array(W.size);return W.forEach(function(Te,Ne){Q[++ie]=[Ne,Te]}),Q}function Ya(W,ie){return function(Q){return W(ie(Q))}}function zn(W,ie){for(var Q=-1,Te=W.length,Ne=0,nt=[];++Q-1}function Bc(e,t){var o=this.__data__,c=sr(o,e);return c<0?(++this.size,o.push([e,t])):o[c][1]=t,this}En.prototype.clear=Dc,En.prototype.delete=Mc,En.prototype.get=Nc,En.prototype.has=Fc,En.prototype.set=Bc;function In(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function rn(e,t,o,c,v,R){var B,U=t&y,G=t&h,re=t&D;if(o&&(B=v?o(e,c,v,R):o(e)),B!==n)return B;if(!vt(e))return e;var oe=Fe(e);if(oe){if(B=Ou(e),!U)return zt(e,B)}else{var le=Dt(e),pe=le==It||le==Ht;if(Vn(e))return Md(e,U);if(le==Oe||le==he||pe&&!v){if(B=G||pe?{}:Xd(e),!U)return G?Ru(e,Xc(B,e)):_u(e,sd(B,e))}else{if(!ct[le])return v?e:{};B=Uu(e,le,U)}}R||(R=new pn);var Se=R.get(e);if(Se)return Se;R.set(e,B),xl(e)?e.forEach(function(_e){B.add(rn(_e,t,o,_e,e,R))}):El(e)&&e.forEach(function(_e,Ve){B.set(Ve,rn(_e,t,o,Ve,e,R))});var xe=re?G?Io:Eo:G?Lt:xt,Le=oe?n:xe(e);return en(Le||e,function(_e,Ve){Le&&(Ve=_e,_e=e[Ve]),xi(B,Ve,rn(_e,t,o,Ve,e,R))}),B}function Qc(e){var t=xt(e);return function(o){return cd(o,e,t)}}function cd(e,t,o){var c=o.length;if(e==null)return!c;for(e=at(e);c--;){var v=o[c],R=t[v],B=e[v];if(B===n&&!(v in e)||!R(B))return!1}return!0}function ud(e,t,o){if(typeof e!="function")throw new tn(l);return Ni(function(){e.apply(n,o)},t)}function _i(e,t,o,c){var v=-1,R=Zi,B=!0,U=e.length,G=[],re=t.length;if(!U)return G;o&&(t=gt(t,Zt(o))),c?(R=Gr,B=!1):t.length>=r&&(R=Ci,B=!1,t=new $n(t));e:for(;++vv?0:v+o),c=c===n||c>v?v:ze(c),c<0&&(c+=v),c=o>c?0:Rl(c);o0&&o(U)?t>1?Rt(U,t-1,o,c,v):Bn(v,U):c||(v[v.length]=U)}return v}var ao=Ld(),fd=Ld(!0);function Sn(e,t){return e&&ao(e,t,xt)}function lo(e,t){return e&&fd(e,t,xt)}function ur(e,t){return Fn(t,function(o){return An(e[o])})}function Xn(e,t){t=Un(t,e);for(var o=0,c=t.length;e!=null&&ot}function nu(e,t){return e!=null&&ot.call(e,t)}function iu(e,t){return e!=null&&t in at(e)}function ru(e,t,o){return e>=At(t,o)&&e=120&&oe.length>=120)?new $n(B&&oe):n}oe=e[0];var le=-1,pe=U[0];e:for(;++le-1;)U!==e&&nr.call(U,G,1),nr.call(e,G,1);return e}function Ed(e,t){for(var o=e?t.length:0,c=o-1;o--;){var v=t[o];if(o==c||v!==R){var R=v;kn(v)?nr.call(e,v,1):yo(e,v)}}return e}function ho(e,t){return e+or(od()*(t-e+1))}function vu(e,t,o,c){for(var v=-1,R=Et(rr((t-e)/(o||1)),0),B=Q(R);R--;)B[c?R:++v]=e,e+=o;return B}function go(e,t){var o="";if(!e||t<1||t>be)return o;do t%2&&(o+=e),t=or(t/2),t&&(e+=e);while(t);return o}function He(e,t){return Mo(tl(e,t,Ot),e+"")}function yu(e){return ld(vi(e))}function Tu(e,t){var o=vi(e);return br(o,Yn(t,0,o.length))}function Ai(e,t,o,c){if(!vt(e))return e;t=Un(t,e);for(var v=-1,R=t.length,B=R-1,U=e;U!=null&&++vv?0:v+t),o=o>v?v:o,o<0&&(o+=v),v=t>o?0:o-t>>>0,t>>>=0;for(var R=Q(v);++c>>1,B=e[R];B!==null&&!Kt(B)&&(o?B<=t:B=r){var re=t?null:Mu(e);if(re)return Ki(re);B=!1,v=Ci,G=new $n}else G=t?[]:U;e:for(;++c=c?e:on(e,t,o)}var Dd=cc||function(e){return _t.clearTimeout(e)};function Md(e,t){if(t)return e.slice();var o=e.length,c=ed?ed(o):new e.constructor(o);return e.copy(c),c}function bo(e){var t=new e.constructor(e.byteLength);return new er(t).set(new er(e)),t}function wu(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}function Eu(e){var t=new e.constructor(e.source,ga.exec(e));return t.lastIndex=e.lastIndex,t}function Iu(e){return Ii?at(Ii.call(e)):{}}function Nd(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}function Fd(e,t){if(e!==t){var o=e!==n,c=e===null,v=e===e,R=Kt(e),B=t!==n,U=t===null,G=t===t,re=Kt(t);if(!U&&!re&&!R&&e>t||R&&B&&G&&!U&&!re||c&&B&&G||!o&&G||!v)return 1;if(!c&&!R&&!re&&e=U)return G;var re=o[c];return G*(re=="desc"?-1:1)}}return e.index-t.index}function Bd(e,t,o,c){for(var v=-1,R=e.length,B=o.length,U=-1,G=t.length,re=Et(R-B,0),oe=Q(G+re),le=!c;++U1?o[v-1]:n,B=v>2?o[2]:n;for(R=e.length>3&&typeof R=="function"?(v--,R):n,B&&Ft(o[0],o[1],B)&&(R=v<3?n:R,v=1),t=at(t);++c-1?v[R?t[B]:B]:n}}function Hd(e){return Rn(function(t){var o=t.length,c=o,v=nn.prototype.thru;for(e&&t.reverse();c--;){var R=t[c];if(typeof R!="function")throw new tn(l);if(v&&!B&&Sr(R)=="wrapper")var B=new nn([],!0)}for(c=B?c:o;++c1&&$e.reverse(),oe&&GU))return!1;var re=R.get(e),oe=R.get(t);if(re&&oe)return re==t&&oe==e;var le=-1,pe=!0,Se=o&E?new $n:n;for(R.set(e,t),R.set(t,e);++le1?"& ":"")+t[c],t=t.join(o>2?", ":" "),e.replace(ni,`{ /* [wrapped with `+t+`] */ `)}function Vu(e){return Fe(e)||ti(e)||!!(id&&e&&e[id])}function kn(e,t){var o=typeof e;return t=t==null?be:t,!!t&&(o=="number"||o!="symbol"&&t0.test(e))&&e>-1&&e%1==0&&e0){if(++t>=ne)return arguments[0]}else t=0;return e.apply(n,arguments)}}function br(e,t){var o=-1,c=e.length,v=c-1;for(t=t===n?c:t;++o1?e[t-1]:n;return o=typeof o=="function"?(e.pop(),o):n,pl(e,o)});function fl(e){var t=x(e);return t.__chain__=!0,t}function ep(e,t){return t(e),e}function Pr(e,t){return t(e)}var tp=Rn(function(e){var t=e.length,o=t?e[0]:0,c=this.__wrapped__,v=function(R){return oo(R,e)};return t>1||this.__actions__.length||!(c instanceof Ze)||!kn(o)?this.thru(v):(c=c.slice(o,+o+(t?1:0)),c.__actions__.push({func:Pr,args:[v],thisArg:n}),new nn(c,this.__chain__).thru(function(R){return t&&!R.length&&R.push(n),R}))});function np(){return fl(this)}function ip(){return new nn(this.value(),this.__chain__)}function rp(){this.__values__===n&&(this.__values__=_l(this.value()));var e=this.__index__>=this.__values__.length,t=e?n:this.__values__[this.__index__++];return{done:e,value:t}}function op(){return this}function ap(e){for(var t,o=this;o instanceof lr;){var c=dl(o);c.__index__=0,c.__values__=n,t?v.__wrapped__=c:t=c;var v=c;o=o.__wrapped__}return v.__wrapped__=e,t}function dp(){var e=this.__wrapped__;if(e instanceof Ze){var t=e;return this.__actions__.length&&(t=new Ze(this)),t=t.reverse(),t.__actions__.push({func:Pr,args:[No],thisArg:n}),new nn(t,this.__chain__)}return this.thru(No)}function lp(){return kd(this.__wrapped__,this.__actions__)}var sp=hr(function(e,t,o){ot.call(e,o)?++e[o]:xn(e,o,1)});function cp(e,t,o){var c=Fe(e)?Va:eu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}function up(e,t){var o=Fe(e)?Fn:pd;return o(e,Ee(t,3))}var mp=Ud(ll),pp=Ud(sl);function fp(e,t){return Rt(wr(e,t),1)}function hp(e,t){return Rt(wr(e,t),Ce)}function gp(e,t,o){return o=o===n?1:ze(o),Rt(wr(e,t),o)}function hl(e,t){var o=Fe(e)?en:Ln;return o(e,Ee(t,3))}function gl(e,t){var o=Fe(e)?F0:md;return o(e,Ee(t,3))}var vp=hr(function(e,t,o){ot.call(e,o)?e[o].push(t):xn(e,o,[t])});function yp(e,t,o,c){e=jt(e)?e:vi(e),o=o&&!c?ze(o):0;var v=e.length;return o<0&&(o=Et(v+o,0)),Rr(e)?o<=v&&e.indexOf(t,o)>-1:!!v&&oi(e,t,o)>-1}var Tp=He(function(e,t,o){var c=-1,v=typeof t=="function",R=jt(e)?Q(e.length):[];return Ln(e,function(B){R[++c]=v?Gt(t,B,o):Ri(B,t,o)}),R}),Sp=hr(function(e,t,o){xn(e,o,t)});function wr(e,t){var o=Fe(e)?gt:Td;return o(e,Ee(t,3))}function Cp(e,t,o,c){return e==null?[]:(Fe(t)||(t=t==null?[]:[t]),o=c?n:o,Fe(o)||(o=o==null?[]:[o]),Pd(e,t,o))}var bp=hr(function(e,t,o){e[o?0:1].push(t)},function(){return[[],[]]});function Pp(e,t,o){var c=Fe(e)?Zr:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,Ln)}function wp(e,t,o){var c=Fe(e)?B0:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,md)}function Ep(e,t){var o=Fe(e)?Fn:pd;return o(e,xr(Ee(t,3)))}function Ip(e){var t=Fe(e)?ld:yu;return t(e)}function xp(e,t,o){(o?Ft(e,t,o):t===n)?t=1:t=ze(t);var c=Fe(e)?qc:Tu;return c(e,t)}function _p(e){var t=Fe(e)?$c:Cu;return t(e)}function Rp(e){if(e==null)return 0;if(jt(e))return Rr(e)?di(e):e.length;var t=Dt(e);return t==Ge||t==De?e.size:mo(e).length}function kp(e,t,o){var c=Fe(e)?Jr:bu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}var Ap=He(function(e,t){if(e==null)return[];var o=t.length;return o>1&&Ft(e,t[0],t[1])?t=[]:o>2&&Ft(t[0],t[1],t[2])&&(t=[t[0]]),Pd(e,Rt(t,1),[])}),Er=uc||function(){return _t.Date.now()};function Dp(e,t){if(typeof t!="function")throw new tn(l);return e=ze(e),function(){if(--e<1)return t.apply(this,arguments)}}function vl(e,t,o){return t=o?n:t,t=e&&t==null?e.length:t,_n(e,A,n,n,n,n,t)}function yl(e,t){var o;if(typeof t!="function")throw new tn(l);return e=ze(e),function(){return--e>0&&(o=t.apply(this,arguments)),e<=1&&(t=n),o}}var Bo=He(function(e,t,o){var c=w;if(o.length){var v=zn(o,hi(Bo));c|=g}return _n(e,c,t,o,v)}),Tl=He(function(e,t,o){var c=w|z;if(o.length){var v=zn(o,hi(Tl));c|=g}return _n(t,c,e,o,v)});function Sl(e,t,o){t=o?n:t;var c=_n(e,d,n,n,n,n,n,t);return c.placeholder=Sl.placeholder,c}function Cl(e,t,o){t=o?n:t;var c=_n(e,m,n,n,n,n,n,t);return c.placeholder=Cl.placeholder,c}function bl(e,t,o){var c,v,R,B,U,G,re=0,oe=!1,le=!1,pe=!0;if(typeof e!="function")throw new tn(l);t=dn(t)||0,vt(o)&&(oe=!!o.leading,le="maxWait"in o,R=le?Et(dn(o.maxWait)||0,t):R,pe="trailing"in o?!!o.trailing:pe);function Se(Pt){var hn=c,Mn=v;return c=v=n,re=Pt,B=e.apply(Mn,hn),B}function xe(Pt){return re=Pt,U=Ni(Ve,t),oe?Se(Pt):B}function Le(Pt){var hn=Pt-G,Mn=Pt-re,Ul=t-hn;return le?At(Ul,R-Mn):Ul}function _e(Pt){var hn=Pt-G,Mn=Pt-re;return G===n||hn>=t||hn<0||le&&Mn>=R}function Ve(){var Pt=Er();if(_e(Pt))return $e(Pt);U=Ni(Ve,Le(Pt))}function $e(Pt){return U=n,pe&&c?Se(Pt):(c=v=n,B)}function qt(){U!==n&&Dd(U),re=0,c=G=v=U=n}function Bt(){return U===n?B:$e(Er())}function $t(){var Pt=Er(),hn=_e(Pt);if(c=arguments,v=this,G=Pt,hn){if(U===n)return xe(G);if(le)return Dd(U),U=Ni(Ve,t),Se(G)}return U===n&&(U=Ni(Ve,t)),B}return $t.cancel=qt,$t.flush=Bt,$t}var Mp=He(function(e,t){return ud(e,1,t)}),Np=He(function(e,t,o){return ud(e,dn(t)||0,o)});function Fp(e){return _n(e,H)}function Ir(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new tn(l);var o=function(){var c=arguments,v=t?t.apply(this,c):c[0],R=o.cache;if(R.has(v))return R.get(v);var B=e.apply(this,c);return o.cache=R.set(v,B)||R,B};return o.cache=new(Ir.Cache||In),o}Ir.Cache=In;function xr(e){if(typeof e!="function")throw new tn(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Bp(e){return yl(2,e)}var zp=Pu(function(e,t){t=t.length==1&&Fe(t[0])?gt(t[0],Zt(Ee())):gt(Rt(t,1),Zt(Ee()));var o=t.length;return He(function(c){for(var v=-1,R=At(c.length,o);++v=t}),ti=gd(function(){return arguments}())?gd:function(e){return Tt(e)&&ot.call(e,"callee")&&!nd.call(e,"callee")},Fe=Q.isArray,Xp=za?Zt(za):au;function jt(e){return e!=null&&_r(e.length)&&!An(e)}function bt(e){return Tt(e)&&jt(e)}function Qp(e){return e===!0||e===!1||Tt(e)&&Nt(e)==ke}var Vn=pc||Ko,ef=ja?Zt(ja):du;function tf(e){return Tt(e)&&e.nodeType===1&&!Fi(e)}function nf(e){if(e==null)return!0;if(jt(e)&&(Fe(e)||typeof e=="string"||typeof e.splice=="function"||Vn(e)||gi(e)||ti(e)))return!e.length;var t=Dt(e);if(t==Ge||t==De)return!e.size;if(Mi(e))return!mo(e).length;for(var o in e)if(ot.call(e,o))return!1;return!0}function rf(e,t){return ki(e,t)}function of(e,t,o){o=typeof o=="function"?o:n;var c=o?o(e,t):n;return c===n?ki(e,t,n,o):!!c}function jo(e){if(!Tt(e))return!1;var t=Nt(e);return t==Yt||t==yn||typeof e.message=="string"&&typeof e.name=="string"&&!Fi(e)}function af(e){return typeof e=="number"&&rd(e)}function An(e){if(!vt(e))return!1;var t=Nt(e);return t==It||t==Ht||t==we||t==Ae}function wl(e){return typeof e=="number"&&e==ze(e)}function _r(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=be}function vt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Tt(e){return e!=null&&typeof e=="object"}var El=La?Zt(La):su;function df(e,t){return e===t||uo(e,t,_o(t))}function lf(e,t,o){return o=typeof o=="function"?o:n,uo(e,t,_o(t),o)}function sf(e){return Il(e)&&e!=+e}function cf(e){if(Zu(e))throw new Ne(a);return vd(e)}function uf(e){return e===null}function mf(e){return e==null}function Il(e){return typeof e=="number"||Tt(e)&&Nt(e)==Ct}function Fi(e){if(!Tt(e)||Nt(e)!=Oe)return!1;var t=tr(e);if(t===null)return!0;var o=ot.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Yi.call(o)==dc}var Lo=Oa?Zt(Oa):cu;function pf(e){return wl(e)&&e>=-be&&e<=be}var xl=Ua?Zt(Ua):uu;function Rr(e){return typeof e=="string"||!Fe(e)&&Tt(e)&&Nt(e)==Xe}function Kt(e){return typeof e=="symbol"||Tt(e)&&Nt(e)==P}var gi=Ha?Zt(Ha):mu;function ff(e){return e===n}function hf(e){return Tt(e)&&Dt(e)==F}function gf(e){return Tt(e)&&Nt(e)==j}var vf=Tr(po),yf=Tr(function(e,t){return e<=t});function _l(e){if(!e)return[];if(jt(e))return Rr(e)?mn(e):zt(e);if(bi&&e[bi])return q0(e[bi]());var t=Dt(e),o=t==Ge?Qr:t==De?Ki:vi;return o(e)}function Dn(e){if(!e)return e===0?e:0;if(e=dn(e),e===Ce||e===-Ce){var t=e<0?-1:1;return t*Pe}return e===e?e:0}function ze(e){var t=Dn(e),o=t%1;return t===t?o?t-o:t:0}function Rl(e){return e?Yn(ze(e),0,N):0}function dn(e){if(typeof e=="number")return e;if(Kt(e))return Ye;if(vt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=vt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=Ka(e);var o=Xs.test(e);return o||e0.test(e)?D0(e.slice(2),o?2:8):Ys.test(e)?Ye:+e}function kl(e){return Cn(e,Lt(e))}function Tf(e){return e?Yn(ze(e),-be,be):e===0?e:0}function it(e){return e==null?"":Jt(e)}var Sf=pi(function(e,t){if(Mi(t)||jt(t)){Cn(t,xt(t),e);return}for(var o in t)ot.call(t,o)&&xi(e,o,t[o])}),Al=pi(function(e,t){Cn(t,Lt(t),e)}),kr=pi(function(e,t,o,c){Cn(t,Lt(t),e,c)}),Cf=pi(function(e,t,o,c){Cn(t,xt(t),e,c)}),bf=Rn(oo);function Pf(e,t){var o=mi(e);return t==null?o:sd(o,t)}var wf=He(function(e,t){e=at(e);var o=-1,c=t.length,v=c>2?t[2]:n;for(v&&Ft(t[0],t[1],v)&&(c=1);++o1),R}),Cn(e,Io(e),o),c&&(o=rn(o,y|h|D,Nu));for(var v=t.length;v--;)yo(o,t[v]);return o});function Hf(e,t){return Ml(e,xr(Ee(t)))}var Vf=Rn(function(e,t){return e==null?{}:hu(e,t)});function Ml(e,t){if(e==null)return{};var o=gt(Io(e),function(c){return[c]});return t=Ee(t),wd(e,o,function(c,v){return t(c,v[0])})}function Wf(e,t,o){t=Un(t,e);var c=-1,v=t.length;for(v||(v=1,e=n);++ct){var c=e;e=t,t=c}if(o||e%1||t%1){var v=od();return At(e+v*(t-e+A0("1e-"+((v+"").length-1))),t)}return ho(e,t)}var t1=fi(function(e,t,o){return t=t.toLowerCase(),e+(o?Bl(t):t)});function Bl(e){return Ho(it(e).toLowerCase())}function zl(e){return e=it(e),e&&e.replace(n0,W0).replace(C0,"")}function n1(e,t,o){e=it(e),t=Jt(t);var c=e.length;o=o===n?c:Yn(ze(o),0,c);var v=o;return o-=t.length,o>=0&&e.slice(o,v)==t}function i1(e){return e=it(e),e&&st.test(e)?e.replace(Vt,G0):e}function r1(e){return e=it(e),e&&Wt.test(e)?e.replace(pt,"\\$&"):e}var o1=fi(function(e,t,o){return e+(o?"-":"")+t.toLowerCase()}),a1=fi(function(e,t,o){return e+(o?" ":"")+t.toLowerCase()}),d1=Od("toLowerCase");function l1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;if(!t||c>=t)return e;var v=(t-c)/2;return yr(or(v),o)+e+yr(rr(v),o)}function s1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;return t&&c>>0,o?(e=it(e),e&&(typeof t=="string"||t!=null&&!Lo(t))&&(t=Jt(t),!t&&ai(e))?Hn(mn(e),0,o):e.split(t,o)):[]}var g1=fi(function(e,t,o){return e+(o?" ":"")+Ho(t)});function v1(e,t,o){return e=it(e),o=o==null?0:Yn(ze(o),0,e.length),t=Jt(t),e.slice(o,o+t.length)==t}function y1(e,t,o){var c=x.templateSettings;o&&Ft(e,t,o)&&(t=n),e=it(e),t=kr({},t,c,Jd);var v=kr({},t.imports,c.imports,Jd),R=xt(v),B=Xr(v,R),U,G,re=0,oe=t.interpolate||Vi,le="__p += '",pe=eo((t.escape||Vi).source+"|"+oe.source+"|"+(oe===Si?$s:Vi).source+"|"+(t.evaluate||Vi).source+"|$","g"),Se="//# sourceURL="+(ot.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++I0+"]")+` `;e.replace(pe,function(_e,Ve,$e,qt,Bt,$t){return $e||($e=qt),le+=e.slice(re,$t).replace(i0,Z0),Ve&&(U=!0,le+=`' + @@ -868,4 +868,4 @@ Content-Type: `+(ce.type||"application/octet-stream")+`\r `),Ls=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join(` `);(function(f,u){window.SuperRender=u()})(void 0,function(){function f(u){this.canvasElement=document.getElementById(u),this.initContextGL(),this.contextGL&&(this.YUVProgram=this.initProgram(js,Ls),this.initBuffers(),this.initTextures())}return f.prototype.initContextGL=function(){var u=this.canvasElement,n=null;try{n=u.getContext("webgl")||u.getContext("experimental-webgl")}catch(i){n=null}(!n||typeof n.getParameter!="function")&&(n=null),this.contextGL=n,console.log("WebGL1.0")},f.prototype.initProgram=function(u,n){var i=this.contextGL,r=i.createShader(i.VERTEX_SHADER);i.shaderSource(r,u),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)||console.log("Vertex shader failed to compile: "+i.getShaderInfoLog(r));var a=i.createShader(i.FRAGMENT_SHADER);i.shaderSource(a,n),i.compileShader(a),i.getShaderParameter(a,i.COMPILE_STATUS)||console.log("Fragment shader failed to compile: "+i.getShaderInfoLog(a));var l=i.createProgram();return i.attachShader(l,r),i.attachShader(l,a),i.linkProgram(l),i.getProgramParameter(l,i.LINK_STATUS)||console.log("Program failed to compile: "+i.getProgramInfoLog(l)),i.deleteShader(r),i.deleteShader(a),l},f.prototype.initBuffers=function(){var u=this.contextGL,n=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,n),u.bufferData(u.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null);var i=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,i),u.bufferData(u.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),u.DYNAMIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null),this.vertexPosBuffer=n,this.texturePosBuffer=i},f.prototype.initTexture=function(){var u=this.contextGL,n=u.createTexture();return u.bindTexture(u.TEXTURE_2D,n),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MAG_FILTER,u.LINEAR),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MIN_FILTER,u.LINEAR),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_S,u.CLAMP_TO_EDGE),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_T,u.CLAMP_TO_EDGE),u.bindTexture(u.TEXTURE_2D,null),n},f.prototype.initTextures=function(){var u=this.contextGL,n=this.YUVProgram;u.useProgram(n);var i=this.initTexture(),r=u.getUniformLocation(n,"ySampler");u.uniform1i(r,0),this.yTextureRef=i;var a=this.initTexture(),l=u.getUniformLocation(n,"uSampler");u.uniform1i(l,1),this.uTextureRef=a;var s=this.initTexture(),b=u.getUniformLocation(n,"vSampler");u.uniform1i(b,2),this.vTextureRef=s,u.useProgram(null)},f.prototype.SR_DisplayFrameData=function(u,n,i,r,a){if(!(u<=0||n<=0)){var l=this.contextGL;if(i==null){l.clearColor(0,0,0,0),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT);return}var s=this.canvasElement;this.nWindowWidth=s.width,this.nWindowHeight=s.height;var b=this.nWindowWidth,T=this.nWindowHeight;l.clearColor(.8,.8,1,1),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT),l.viewport(0,0,b,T),this.updateFrameData(u,n,i,r,a);var C=this.YUVProgram;l.useProgram(C);var y=this.vertexPosBuffer;l.bindBuffer(l.ARRAY_BUFFER,y);var h=l.getAttribLocation(C,"vertexPos");l.enableVertexAttribArray(h),l.vertexAttribPointer(h,2,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,null);var D=this.texturePosBuffer;l.bindBuffer(l.ARRAY_BUFFER,D);var _=l.getAttribLocation(C,"texturePos");l.enableVertexAttribArray(_),l.vertexAttribPointer(_,2,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,null),l.drawArrays(l.TRIANGLE_STRIP,0,4),l.disableVertexAttribArray(h),l.disableVertexAttribArray(_),l.useProgram(null)}},f.prototype.updateFrameData=function(u,n,i,r,a){var l=this.contextGL,s=this.yTextureRef,b=this.uTextureRef,T=this.vTextureRef,C=i;if(u==r&&n==a){var y=u*n,h=C.subarray(0,y);l.activeTexture(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,s),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u,n,0,l.LUMINANCE,l.UNSIGNED_BYTE,h);var D=u/2*n/2,_=C.subarray(u*n,u*n+D);l.activeTexture(l.TEXTURE2),l.bindTexture(l.TEXTURE_2D,T),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u/2,n/2,0,l.LUMINANCE,l.UNSIGNED_BYTE,_);var E=D,w=C.subarray(u*n+u*n/4,u*n+u*n/4+E);l.activeTexture(l.TEXTURE1),l.bindTexture(l.TEXTURE_2D,b),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u/2,n/2,0,l.LUMINANCE,l.UNSIGNED_BYTE,w)}else{for(var y=r*a,h=new Uint8Array(y),z=0;z0&&r>0){var l=u.left/i,s=u.top/r,b=u.right/i,T=u.bottom/r;a=new Float32Array([b,s,l,s,b,T,l,T])}else a=new Float32Array([1,0,0,0,1,1,0,1]);var C=this.texturePosBuffer;n.bindBuffer(n.ARRAY_BUFFER,C),n.bufferSubData(n.ARRAY_BUFFER,0,a),n.bindBuffer(n.ARRAY_BUFFER,null)},f.prototype.SR_Destroy=function(){var u=this.contextGL,n=this.YUVProgram;u.deleteProgram(n);var i=this.vertexPosBuffer,r=this.texturePosBuffer;u.deleteBuffer(i),u.deleteBuffer(r);var a=this.yTextureRef,l=this.uTextureRef,s=this.vTextureRef;u.deleteTexture(a),u.deleteTexture(l),u.deleteTexture(s)},f});var fa="https://open.ys7.com",Os="".concat(fa,"/console/ezuikit_static/v66/v2"),Us="".concat(fa,"/console/ezuikit_static/v66/v1"),ha=function(u,n){var i=["theme","standard"],r=["pcLive","pcRec","mobileLive","mobileRec","noData","security","voice","simple"];if(typeof u=="undefined")return n.themeData?{templateType:"themeData",templateId:"themeData"}:{templateType:"local",templateId:""};if(typeof u=="string"){if(u.length===32)return{templateType:"remote",templateId:u};if(i.indexOf(u)!==-1)return u==="simple"&&typeof n.header=="undefined"&&typeof n.footer=="undefined"?{templateType:"local",templateId:""}:{templateType:"iframe",templateId:u};if(r.indexOf(u)!==-1)return{templateType:"local",templateId:u}}},lt=function(){var u=window.navigator.userAgent.toLowerCase(),n={sa:/version.*safari/.test(u),ch:/chrome/.test(u),ff:/gecko/.test(u)&&!/webkit/.test(u)},i=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);if(i)return!1;if(n.ch){var r=function(){for(var l=window.navigator.userAgent.split(" "),s="",b=0;b91&&!!window.SharedArrayBuffer}return!1},Hs=function(){function f(u){var n=this;fe(this,f),this.isStoping=!1;var i=u.autoplay,r=i===void 0?!0:i;if((u.template||u.themeData)&&(r=!1),this.params=u,this.autoplay=r,window.EZUIKit[u.id]={state:{EZUIKitPlayer:{init:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.init||!1,themeInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.themeInit||!1,talkInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.talkInit||!1}}},ha(this.params.template,u).templateType!=="iframe"){this.Monitor=new Ds({env:typeof u.disableMonitor!="undefined"&&u.disableMonitor?"test12":"online"},this),this.id=u.id,this.width=u.width,this.height=u.height,this.url=u.url,this.accessToken=u.accessToken,this.themeId=ha(u.template,u).templateId,this.id=u.id,this.audio=!0,this.poster=u.poster,this.speed=1,this.disabledTimeLine=!1,this.disabledPTZ=!1,this.enableSharedArrayBufferGuide=!1,this.capacity={},this.playTimer=null,this.env={domain:"https://open.ys7.com"};var a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);this.isMobile=a,document.getElementById("".concat(this.id,"-wrap"))&&(document.getElementById("".concat(this.id,"-wrap")).innerHTML="",document.getElementById("".concat(this.id,"-wrap")).id=this.id),this.staticPath=lt()?Os:Us,typeof u.staticPath=="string"&&(u.staticPath.startsWith("http")?this.staticPath=u.staticPath:this.staticPath=window.location.protocol+"//"+window.location.host+u.staticPath,lt()?this.staticPath+="/v2":this.staticPath+="/v1"),typeof u.audio!="undefined"&&(this.audio=u.audio),typeof u.env!="undefined"&&(this.env=Object.assign(this.env,u.env)),typeof u.isMobile!="undefined"&&(this.isMobile=u.isMobile),typeof u.disabledTimeLine!="undefined"&&(this.disabledTimeLine=u.disabledTimeLine),typeof u.disabledPTZ!="undefined"&&(this.disabledPTZ=u.disabledPTZ),typeof u.enableSharedArrayBufferGuide!="undefined"&&(this.enableSharedArrayBufferGuide=u.enableSharedArrayBufferGuide);var l="".concat(this.staticPath,"/js/jsPluginV1-1.0.0.min.js"),s=function(){if(window.addPluginUrlIng=!0,lt())console.log("启用多线程解析视频"),l="".concat(n.staticPath,"/js/jsPluginV2-2.0.1.min.js");else{var C=function(){for(var w=navigator.userAgent.split(" "),z="",S=0;S0&&(l=T.width),!n.height&&T.height>0&&(b=T.height)}if(!document.getElementById("".concat(r,"-wrap"))){var C=document.createElement("div");C.id="".concat(r,"-wrap"),C.style="display:inline-block;width:".concat(l,"px;position:relative;vertical-align: bottom;"),document.getElementById(r).parentNode.insertBefore(C,document.getElementById(r)),document.getElementById(r).parentNode.removeChild(document.getElementById(r)),C.innerHTML="
    "),document.getElementById(r).style="display:inline-block;width:".concat(l,"px;height:").concat(b,"px;"),document.getElementById(r).style.verticalAlign="top"}this.themeId&&(this.Theme=new As(this,n.id),window.EZUIKit[n.id].state.EZUIKitPlayer.themeInit=!0,this.Monitor.dclog({url:this.url,action:2,text:this.themeId}),typeof this.params.handleThemeChange=="function"&&(this.handleThemeChange=this.params.handleThemeChange));var y=new ts(this,r);this.Message=y;var h=function(E,w){var z;if(lt()){z=new window.JSPluginV2({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},openStreamCallback:function(){console.log("开启取流"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z;var S=setInterval(function(){window.JSPlayerModuleLoaded&&(clearInterval(S),typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"))},50)}else z=new window.JSPluginV1({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={openStreamCallback:function(){console.log("开启取流---v1"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})},loadEventHandler:function(){},zoomEventResponse:function(){},windowEventSelect:function(m){},pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},windowEventOver:function(m){},windowEventOut:function(m){},windowEventUp:function(m){},windowFullCcreenChange:function(m){},firstFrameDisplay:function(m,g,k){console.log(g,k),z.JS_SetCanFullScreen(!1)},performanceLack:function(){},mouseEvent:function(m,g,k){}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z,typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec")},D=new Promise(h);return D}},{key:"_getRealUrlPromise",value:function(n,i){var r=this;console.log("获取播放地址 url => ".concat(i," ").concat(this.accessToken)),console.log("开始获取wsurl"),this.startGetWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:222,text:"startGetWsUrl",isVersion2Available:lt()?1:0});var a=this.env.domain;this.env&&(a=this.env.domain);var l=function(C,y){var h="",D=a+"/api/lapp/live/url/ezopen",_=new FormData;_.append("ezopen",i),_.append("isFlv",!1),_.append("userAgent",window.navigator.userAgent),_.append("isHttp",!1),_.append("accessToken",n),fetch(D,{method:"POST",body:_}).then(function(E){return E.json()}).then(function(E){if(E.code==200||E.retcode==0){var w="",z="";E.ext&&E.ext.token?(h+=E.data,z=E.ext.token,w=E.data):E.data&&E.data.token&&(h+=E.data.url,z=E.data.token,w=E.data.url);var S=i.indexOf("live")!==-1?"live":"playback";S==="live"?h=h+"&ssn="+z+"&auth=1&biz=4&cln=100":h=h+"&ssn="+z+"&auth=1&cln=100",console.log(h);var d=et("checkCode",h);if(d&&(typeof r.jSPlugin.decoderVersion!="undefined"&&r.jSPlugin.decoderVersion==="2.0"?r.validateCode=d:(console.log("设置密钥",d),r.jSPlugin.JS_SetSecretKey(0,d))),h.indexOf("playback")!==-1){var m=et("begin",w)||et("begin",i),g=et("end",w)||et("end",i);if(m)h=h.replace("&begin="+et("begin",w),"&begin="+s(m,"000000")),et("begin",h)||(h+="&begin="+s(m,"000000"));else{var k=new Date;h=h+"&begin="+k.Format("yyyyMMdd")+"T000000Z"}if(g?(h=h.replace("&end="+et("end",w),"&end="+s(g,"235959")),et("end",h)||(h+="&end="+s(g,"235959"))):h=h+"&end="+s(et("begin",h).substr(0,8),"235959"),et("stream",w)||(h=h.replace("stream","&stream")),i.indexOf(".cloud")!==-1){var A=function(Ce){if(Ce.code==200){var be=[];if(Ce.data&&Ce.data.files&&Ce.data.files.length>0){var Pe=Ce.data.files,Ye=new Date().getTime(),N=Ce.data.isAll;if(N){be=ce(Pe);var K=JSON.stringify(be).replace("\\","");h+="&recSlice="+K.replace("\\","")+"&r="+Math.random(),C(h)}else{var te=function he(){function Re(we){if(we.data&&we.data.files&&we.data.files.length>0)if(we.data.isAll==!1)we.data.files&&(Pe=Pe.concat(we.data.files)),Ye=we.data.nextFileTime>0?we.data.nextFileTime:new Date().getTime(),he();else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}}Y.startTime=Ye,Gn(ne,"POST",Y,"",Re)};te()}}else y({retcode:-1,msg:"未找到录像片段"})}else y({retcode:-1,msg:"未找到录像片段"});function ce(he){var Re=[];return he.forEach(function(we,ke){Re.length==0||we.downloadPath!==Re[Re.length-1].downloadPath?Re.push({downloadPath:we.downloadPath,ownerId:we.ownerId,iStorageVersion:we.iStorageVersion,videoType:we.videoType,iPlaySpeed:0,startTime:we.startTime,endTime:we.endTime}):Re[Re.length-1].endTime=we.endTime}),Re}},O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/time",Y={accessToken:r.accessToken,recType:1,deviceSerial:Z,channelNo:X,startTime:O,endTime:H,version:"2.0"};Gn(ne,"POST",Y,"",A)}else if(i.indexOf("alarmId")!==-1){var me=function(te){if(te.code==200){var ce=[];if(te.data){ce=Re([te.data]);var he=JSON.stringify(ce).replace("\\","");h+="&recSlice="+he.replace("\\",""),console.log("realUrl",h,te.data.recType),te.data.recType==1?h=h.replace("/playback","/cloudplayback"):h=h.replace("/cloudplayback","/playback"),C(h)}}function Re(we){var ke=[];return we.forEach(function(We,yn){ke.length==0||We.downloadPath!==ke[ke.length-1].downloadPath?ke.push({downloadPath:We.downloadPath,ownerId:We.ownerId,iStorageVersion:We.iStorageVersion,videoType:We.videoType,iPlaySpeed:0,startTime:We.startTime,endTime:We.endTime}):ke[ke.length-1].endTime=We.endTime}),console.log("downloadPathArr",ke),ke}};console.log("进入alarmId回放");var ge=et("alarmId",h),O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/id",Y={accessToken:r.accessToken,deviceSerial:Z,channelNo:X,alarmId:ge};Gn(ne,"POST",Y,"",me)}else C(h)}else C(h)}else r.Theme&&r.Theme.setDisabled(!0),r.pluginStatus.loadingClear(),r.pluginStatus.loadingSetText({text:E.msg,color:"red"}),typeof r.params.handleError=="function"&&r.params.handleError({retcode:E.code,msg:E.msg,id:r.params.id,type:"handleError"}),y(E)})};return new Promise(function(T,C){return l(T,C)});function s(T,C){var y=/^[0-9]{8}T[0-9]{6}Z$/;if(y.test(T))return T;if(/[0-9]{8,14}/.test(T)){var h=6-(14-T.length),D=C.length,_=T+C.substring(h,D);return _.slice(0,8)+"T"+_.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}function b(T){var C=T.slice(0,4),y=T.slice(4,6),h=T.slice(6,8),D=T.slice(9,11),_=T.slice(11,13),E=T.slice(13,15),w=C+"-"+y+"-"+h+" "+D+":"+_+":"+E;return new Date(w.replace(/-/g,"/")).getTime()}}},{key:"_pluginPlay",value:function(n,i,r){var a=this;if(console.log("执行播放 _pluginPlay",n),!n)return!1;function l(C){var y=C.split("?")[0].replace("/live","").replace("/playback",""),h=(C.indexOf("/live")===-1?C.indexOf("cloudplayback")!==-1?"/cloudplayback?":"/playback?":"/live?")+C.split("?")[1];return h.indexOf("/playback")!==-1&&(h=h.replace("stream=2","stream=1")),{websocketConnectUrl:y,websocketStreamingParam:h}}var s=l(n).websocketConnectUrl;this.env&&this.env.wsUrl&&(s=this.env.wsUrl),this.gotWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:223,d:this.gotWsUrlTime-this.startGetWsUrlTime,text:"getWsUrlSuccess",isVersion2Available:lt()?1:0});var b={playURL:l(n).websocketStreamingParam};console.log("播放前 stop 阶段 结束"),this.isStoping=!1;var T=Date.now();console.log("执行播放 ... this.jSPlugin.JS_Play at ",T),this.jSPlugin.JS_Play(s,b,0).then(function(){if(console.log("执行播放 ... this.jSPlugin.JS_Play 播放成功",s,b),console.log("执行播放耗时 ",Date.now()-T),a.isStoping){console.log("现在在播放前 stop 阶段,此次应为无效播放成功触发。不执行后续回调, 此次耗时无效");return}if(a.validateCode&&typeof a.jSPlugin.decoderVersion!="undefined"&&a.jSPlugin.decoderVersion==="2.0"&&a.jSPlugin.JS_SetSecretKey(0,a.validateCode),a.pluginStatus.loadingClear(),a.pluginStatus.setPlayStatus({play:!0,loading:!1}),a.Theme){a.Theme.setDecoderState({play:!0});var C=Ut.findIndex(a.Theme.themeData.footer.btnList,function(y){return y.iconId==="sound"&&y.isrender===1&&y.defaultActive===1})>-1;a.audio=C}a.audio&&setTimeout(function(){a.openSound()},500),typeof a.params.handleSuccess=="function"&&a.params.handleSuccess({retcode:0,id:a.params.id,type:"handleSuccess"}),i(b),a.Monitor.dclog({url:a.url,action:211,d:new Date().getTime()-a.playStartTime,text:"startPlaySuccess"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:0,Cost:new Date().getTime()-a.playStartTime,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})},function(C){console.log("err",C);var y="播放失败,请检查设备及客户端网络",h=-1;if(a.jSPlugin.bPlay)return!1;if(C&&C.errorCode){var D=a.errorHander.matchErrorInfo(C.errorCode);a.Theme&&a.Theme.setDisabled(!0),D&&D.msg?y=D.msg:D&&D.description?y=D.description:y="播放失败,请检查设备及客户端网络",h=C.errorCode}a.pluginStatus.loadingClear(),a.pluginStatus.loadingSetText({text:y,color:"red"}),typeof a.params.handleError=="function"&&a.params.handleError({retcode:h,msg:y,id:a.params.id,type:"handleError"}),r(),a.Monitor.dclog({url:a.url,action:411,d:new Date().getTime()-a.playStartTime,text:"startPlayError"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:h,Cost:-1,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})})}},{key:"_play",value:function(n){var i=this;console.log("执行播放 play options.url =>",n),this.pluginStatus.setPlayStatus({play:!1,loading:!0}),this.playStartTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:1,d:new Date().getTime()-this.initTime,text:"startPlay"}),n&&(typeof n=="string"&&(this.url=n),typeof n.url=="string"&&(this.url=n.url),typeof n.accessToken=="string"&&(this.accessToken=n.accessToken),this.Theme&&(typeof n.url=="string"||typeof n.accessToken=="string")&&this.Theme.getDeviceInfo());var r=new Promise(function(a,l){console.log("执行 播放前 stop"),i.isStoping=!0,i.jSPlugin.JS_Stop(0).then(function(){console.log("播放前 stop 执行成功 this.url => ".concat(i.url," ").concat(i.accessToken)),i._getRealUrlPromise(i.accessToken,i.url).then(function(s){i._pluginPlay(s,function(b){a(!0)},function(){return l(!1)})}).catch(function(s){var b=s.msg?s.msg:"播放失败,请检查设备及客户端网络";i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:b,color:"red"}),typeof i.params.handleError=="function"&&i.params.handleError({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"}),l({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"})})})});return r}},{key:"stop",value:function(){var n=this;return this.pluginStatus.setPlayStatus({loading:!0}),this.reSetTheme(),this.jSPlugin.JS_Stop(0).then(function(){console.log("停止成功"),n.pluginStatus.setPlayStatus({play:!1,loading:!1}),n.Theme&&n.Theme.setDecoderState({play:!1})})}},{key:"changeVideoLevel",value:function(n){var i=this,r=this.url,a=n?r.replace(".live",".hd.live"):r.replace(".hd.live",".live");this.jSPlugin.playURL=n?this.jSPlugin.playURL.replace("stream=2","stream=1"):this.jSPlugin.playURL.replace("stream=1","stream=2"),console.log("changeVideoLevel",a,this.jSPlugin.playURL),this.url=a;var l=new Promise(function(s,b){i.pause().then(function(){console.log("暂停成功"),i.resume().then(function(T){console.log("恢复成功")})}).catch(function(){console.log("暂停失败"),i.resume().then(function(T){console.log("恢复成功")})})});return l}},{key:"reSetTheme",value:function(){this.Theme&&this.Theme.Ptz&&(this.Theme.setDecoderState({pantile:!1}),this.Theme.Ptz.hide()),this.Theme&&this.Theme.decoderState.state.recordvideo&&this.Theme.setDecoderState({recordvideo:!1}),this.Theme&&this.Theme.decoderState.state.zoom&&(this.Zoom.stopZoom(),this.Theme.setDecoderState({zoom:!1})),this.Theme&&this.Theme.decoderState.state.talk&&(this.stopTalk(),this.Theme.setDecoderState({talk:!1})),this.Theme&&this.Theme.Rec&&!this.Theme.isMobile&&this.Theme.Rec.datepickerHide(),this.Theme&&this.Theme.Rec&&(this.Theme.changeRecSpeed(1),this.Theme.nextRate=1,this.speed=1,this.Theme.setDecoderState({speed:!1}))}},{key:"_changePlayUrl",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){};console.log("_changePlayUrl"),console.log(n),this.reSetTheme(),this.getDeviceCapacity({accessToken:n.accessToken,deviceSerial:n.deviceSerial});var a=this.url,l=b(a,n);n.accessToken&&(this.accessToken=n.accessToken),this.url=l,r(),this.pluginStatus.loadingStart(this.id),this.pluginStatus.loadingSetText({text:"加载中,请稍后"});var s=new Promise(function(T,C){var y={url:l};return n.accessToken&&(y.accessToken=n.accessToken),console.log("切换播放地址 参数 ",y),i.play(y).then(function(){console.log("切换播放地址 play 执行成功 ",i.url,i.accessToken),i.Theme&&i.Theme.decoderState.state.webExpend&&i.Theme.webExpend(),i.Theme&&i.Theme.decoderState.state.expend&&i.Theme.expend(),n.type?n.type=="rec"||n.type=="cloud.rec"?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"):i.url.indexOf(".rec")>-1?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"),n&&n.begin&&n.deviceSerial&&i.Theme.Rec.setDatepickerDate(n.begin),i.Theme.setDisabled(!1),T(l)}).catch(function(h){C(l),h&&h.msg&&(i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:h.msg,color:"red"}))})});function b(T,C){if(C.url)return C.url;console.log("--------------matchInitUrl",T);var y=T.split("/")[4].split(".")[T.split("/")[4].split(".").length-1].split("?")[0];y==="rec"&&T.indexOf(".cloud.rec")!==-1&&(y="cloud.rec"),C.type&&(y=C.type);var h=T.split("/")[3];C.deviceSerial&&(h=C.deviceSerial);var D=T.split("/")[4].split(".")[0];C.channelNo&&(D=C.channelNo);var _=T.split("/")[2].split("@").length===2?T.split("/")[2].split("@")[0]:"";typeof C.validCode!="undefined"&&(_=C.validCode);var E=typeof C.hd=="undefined"?T.indexOf(".hd")!==-1:C.hd,w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D).concat(E?".hd":"",".").concat(y);return y==="live"||(w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D,".").concat(y),C.begin&&C.end?w+="?begin=".concat(C.begin,"&end=").concat(C.end):C.begin?w+="?begin=".concat(C.begin):et("begin",T)&&(w+="?begin=".concat(et("begin",T)))),w}return s}},{key:"getOSDTime",value:function(){var n=this,i=new Promise(function(r,a){n.jSPlugin.JS_GetOSDTime(0).then(function(l){r({code:0,retcode:0,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:0,data:l})}).catch(function(l){a({code:-1,retcode:-1,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:-1,data:-1})})});return i}},{key:"capturePicture",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.jSPlugin.JS_CapturePicture(0,n,"JPEG",r,!!r);return ln(a)?(typeof this.params.capturePictureCallBack=="function"&&a.then(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:0})}).catch(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:-1})}),a):new Promise(function(l){l(a)})}},{key:"startSave",value:function(n){var i=this,r=this.jSPlugin.JS_StartSave(0,n);return ln(r)?(typeof this.params.startSaveCallBack=="function"&&r.then(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:0})}).catch(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:-1})}),r):(this.Theme&&this.Theme.setDecoderState({recordvideo:!0}),new Promise(function(a){a(r)}))}},{key:"stopSave",value:function(){var n=this,i=this.jSPlugin.JS_StopSave(0);return ln(i)?(typeof this.params.startSaveCallBack=="function"&&i.then(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:0})}).catch(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:-1})}),i):(this.Theme&&this.Theme.setDecoderState({recordvideo:!1}),new Promise(function(r){r(i)}))}},{key:"openSound",value:function(){var n=this.jSPlugin.JS_OpenSound(0);return console.log("打开声音",n),ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!0}),typeof this.params.openSoundCallBack=="function"&&this.params.openSoundCallBack({id:this.id,type:"openSound",code:n}),new Promise(function(i){i(n)}))}},{key:"closeSound",value:function(){var n=this.jSPlugin.JS_CloseSound(0);return ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!1}),typeof this.params.closeSoundCallBack=="function"&&this.params.closeSoundCallBack({id:this.id,type:"closeSound",code:n}),new Promise(function(i){i(n)}))}},{key:"enableZoom",value:function(){var n=this.jSPlugin.JS_EnableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"closeZoom",value:function(){var n=this.jSPlugin.JS_DisableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"setPoster",value:function(n){lt()?document.getElementById("".concat(this.id))&&(document.getElementById("".concat(this.id)).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id)).style.backgroundSize="100% 100%"):document.getElementById("".concat(this.id,"canvas0"))&&(document.getElementById("".concat(this.id,"canvas0")).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id,"canvas0")).style.backgroundSize="cover")}},{key:"reSize",value:function(n,i){var r=0,a=0;if(this.params.height=i,this.params.width=n,this.Theme&&this.Theme.isNeedRenderHeader&&document.getElementById("".concat(this.id,"-headControl"))&&(r=parseInt(document.getElementById("".concat(this.id,"-headControl")).style.height,10)),this.Theme&&this.Theme.isNeedRenderTimeLine&&!this.isMobile&&(a=48),i=i-r-a,this.width=n,this.height=i,document.getElementById("".concat(this.id,"-wrap")).style="width:".concat(n,"px;position:relative;display:inline-block;vertical-align: bottom;"),document.getElementById("".concat(this.id)).style.width=n+"px",document.getElementById("".concat(this.id)).style.height=i+"px",this.jSPlugin&&this.jSPlugin.bPlay)this.jSPlugin&&(this.jSPlugin.iHeight=i,this.jSPlugin.iWidth=n),this.jSPlugin.JS_Resize(n,i);else{document.getElementById("".concat(this.id,"-player"))&&(document.getElementById("".concat(this.id,"-player")).width=n,document.getElementById("".concat(this.id,"-player")).height=i,document.getElementById("".concat(this.id,"-player")).style.width=n+"px",document.getElementById("".concat(this.id,"-player")).style.height=i+"px");var l=1;if(document.getElementById("".concat(this.id,"canvas0"))){var s=navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);s&&(l=2),document.getElementById("".concat(this.id,"canvas0")).style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas0")).width=n*l,document.getElementById("".concat(this.id,"canvas0")).height=i*l,document.getElementById("".concat(this.id,"canvas0")).parentNode.style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).parentNode.style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas_draw0")).height=i*l}this.jSPlugin&&(this.jSPlugin.iHeight=i*l,this.jSPlugin.iWidth=n*l)}}},{key:"fast",value:function(n){var i=this,r=this.speed;if(n)var a=this.jSPlugin.JS_Fast(0,n);else{if(r===1)r=2;else if(r===2)r=4;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最大为4倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(s,b){i.speed=r,b({code:-1,data:{speed:r,result:"播放速度最大为4倍速度"}})});var a=this.jSPlugin.JS_Fast(0)}return new Promise(function(l){i.speed=r,l({code:0,data:{speed:r,result:a}})})}},{key:"slow",value:function(){var n=this,i=this.speed;if(i===4)i=2;else if(i===2)i=1;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最小为1倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(a,l){n.speed=i,l({code:-1,data:{speed:i,result:"播放速度最小为1倍速度"}})});var r=this.jSPlugin.JS_Slow(0);return new Promise(function(a){n.speed=i,a({code:0,data:{speed:i,result:r}})})}},{key:"seek",value:function(n,i){var r=this.url,a=(et("begin",r)||new Date().Format("yyyyMMdd")).substr(0,8);if(i=l(a,"235959"),n.length===6)n=l(a,n);else if(n.length===16){if(n.substr(0,8)!==a)return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间不能跨日期",retcode:-1,id:this.id,type:"handleError"}),!1}else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间格式错误",retcode:-1,id:this.id,type:"handleError"}),!1;function l(b,T){var C=/^[0-9]{8}T[0-9]{6}Z$/;if(C.test(b))return b;if(/[0-9]{8,14}/.test(b)){var y=6-(14-b.length),h=T.length,D=b+T.substring(y,h);return D.slice(0,8)+"T"+D.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}var s=this.jSPlugin.JS_Seek(0,n,i);return console.log("seekRT",s),ln(s)?s:new Promise(function(b){b(s)})}},{key:"fullScreen",value:function(){var n=this,i=yi(document.getElementById("".concat(this.id)));i.then(function(a){console.log("全屏promise",window.screen.availWidth),n.jSPlugin.JS_Resize(window.screen.availWidth,window.screen.availHeight),typeof n.params.fullScreenCallBack=="function"&&n.params.fullScreenCallBack({id:n.id,type:"fullScreen",code:0})});var r=function(){var l=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;l||n.jSPlugin.JS_Resize(n.width,n.height),typeof n.params.fullScreenChangeCallBack=="function"&&n.params.fullScreenChangeCallBack({id:n.id,type:"fullScreen",code:l})};["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(a){window.addEventListener(a,function(l){return r()})})}},{key:"cancelFullScreen",value:function(){var n=this,i=Nr();i.then(function(r){console.log("取消全屏",r,n.jSPlugin),n.jSPlugin.JS_Resize(n.width,n.height)})}},{key:"startTalk",value:function(){this.Talk.startTalk()}},{key:"stopTalk",value:function(){this.Talk.stopTalk()}},{key:"destroy",value:function(){var n=this.jSPlugin.JS_DestroyWorker(0);return this.Theme&&(this.Theme=null,window.EZUIKit[this.params.id].state.EZUIKitPlayer.themeInit=!1),ln(n)?n:new Promise(function(i){i(n)})}},{key:"getDeviceCapacity",value:function(n){var i=this,r=this.env.domain;this.env&&(r=this.env.domain);var a=r+"/api/lapp/device/capacity",l=function(T){T.code==200&&T.data&&(i.capacity=T.data)},s=n||{accessToken:this.accessToken,deviceSerial:Ke(this.url).deviceSerial};Gn(a,"POST",s,"",l)}},{key:"pause",value:function(){var n=this;return new Promise(function(i,r){n.jSPlugin.JS_CloseSound(0),n.jSPlugin.JS_Pause(0,function(a){n.setPoster(a.base64)}).then(function(a){n.Theme&&n.Theme.setDecoderState({play:!1}),i()}).catch(function(a){console.log(a),r(a)})})}},{key:"_resume",value:function(n){var i=this;return new Promise(function(r,a){i.pluginStatus.setPlayStatus({play:!1,loading:!0}),i.jSPlugin.JS_Resume(n).then(function(l){if(setTimeout(function(){i.url.indexOf(".rec")!==-1&&i.speed!=1&&i.jSPlugin.JS_Speed(i.speed)},500),i.Theme){i.Theme.setDecoderState({play:!0,speed:i.speed});var s=i.Theme.decoderState.state.sound;s&&setTimeout(function(){i.openSound()},500)}r(l)}).catch(function(l){console.log("resume err",l),a(l)})})}}]),f}(),qe=null;function Vs(f,u,n,i){return new WebControl({szPluginContainer:f,iServicePortStart:14510,iServicePortEnd:14519,cbConnectSuccess:u,cbConnectError:n,cbConnectClose:i})}function Ws(){qe!=null&&(qe.JS_DestroyWnd().then(function(){console.log("JS_DestroyWnd")},function(){}),qe.JS_StopService("window").then(function(){qe.JS_Disconnect().then(function(){console.log("JS_Disconnect")},function(){})}))}function Gs(f){f.responseMsg.eventName,console.log(f.responseMsg)}function Zs(){qe.JS_SetWindowControlCallback({cbIntegrationCallBack:Gs}),qe.JS_StartService("window",{dllPath:"./chain/cloudTransform.dll"}).then(function(){qe.JS_CreateWnd("playWnd",900,500).then(function(){console.log("JS_CreateWnd success")})})}function Js(){console.log("cbConnectError"),qe=null,console.error("确认本地进程是否已安装并开启成功!")}function Ks(f){console.log("cbConnectClose"),qe=null}window.onscroll=function(){qe!=null&&qe.JS_Resize(900,500)},window.onresize=function(){qe!=null&&qe.JS_Resize(900,500)},window.onunload=function(){try{qe.JS_HideWnd(),Ws()}catch(f){console.error(f)}},window.onpagehide=function(){try{qe.JS_HideWnd()}catch(f){console.error(f)}};var qs=function(){function f(u){var n=this;fe(this,f),je(this,"changeModel",function(i,r){var a=n;n.switchVideo=parseInt(i),qe&&qe.JS_RequestInterface({funcName:"ChangeModel",arguments:encodeURI(JSON.stringify({model:i}))}).then(function(l){i==0?a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode}):a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode,startTime:r.startTime,endTime:r.endTime})})}),je(this,"init",function(i){var r,a=n;if(!i.appKey||!i.accessToken){a.showTips(!1,"请输入appkey和token");return}typeof i.appKey!="undefined"&&(n.appKey=i.appKey),typeof i.accessToken!="undefined"&&(n.accessToken=i.accessToken),typeof i.platformId!="undefined"&&(n.platformId=i.platformId);var l=(r={layout:+a.layout,userName:"",waterMark:""},je(r,"waterMark","1"),je(r,"iWndType",0),je(r,"intelligenceEnable",1),je(r,"isRecord",1),je(r,"isSetPos",1),je(r,"motionDetectEnable",0),je(r,"playBackAlarmOverlyingEnable",0),je(r,"response",{code:0,message:null,data:{appKey:i.appKey,ezvizToken:i.accessToken,videoLevel:0,logLevel:3,showMainTool:1,showSubTool:1,waterMark:"1",userName:"openteam",platformId:i.platformId}}),r);console.log("初始化入参",l),qe.JS_RequestInterface({funcName:"Init",arguments:encodeURI(JSON.stringify(l))}).then(function(s){console.log(s.responseMsg),a.showTips(!0,"视频初始化成功!")})}),je(this,"play",function(i){var r=n;if(!(!i.deviceSerial||!i.channelNo)){typeof i.deviceSerial!="undefined"&&(n.deviceSerial=i.deviceSerial),typeof i.channelNo!="undefined"&&(n.channelNo=i.channelNo),typeof i.startTime!="undefined"&&i.startTime&&(n.startTime=i.startTime+" 00:00:00"),typeof i.endTime!="undefined"&&i.endTime&&(n.endTime=i.endTime+" 23:59:59"),typeof i.validateCode!="undefined"&&i.validateCode&&(n.validateCode=i.validateCode);var a={response:{code:0,message:null,data:{deviceSerial:i.deviceSerial,channelCode:i.channelNo,channelNo:+i.channelNo,codeIsEncrypt:0,validateCode:i.validateCode,deviceClass:r.deviceClass,deviceType:"10222",channelId:"2222222222",channelName:"channelNameTest",storeName:"storeName",storeId:"storeid",startTime:n.startTime,endTime:n.endTime}}};r.deviceClass==="1"?(a.response.data.channelCode=r.channelNo,a.response.data.platformId=r.platformId):a.response.data.channelNo=+r.channelNo,n.switchVideo===1&&(n.startTime&&(a.response.data.startTime=n.startTime),n.endTime&&(a.response.data.endTime=n.endTime)),console.log("预览/回放入参",a),qe.JS_RequestInterface({funcName:n.switchVideo===0?"StartPreview":"StartPlayback",arguments:encodeURI(JSON.stringify(a))}).then(function(l){console.log(l.responseMsg),r.showTips(!0,"预览/回放成功!")}).catch(function(l){console.log("开始播放:",l)})}}),je(this,"showCBInfo",function(i){n.callbackMessage=n.callbackMessage+JSON.stringify(i)+` -`,console.log(n.callbackMessage)}),je(this,"showTips",function(i,r){}),je(this,"hideVideo",function(){qe.JS_HideWnd()}),je(this,"showVideo",function(){qe.JS_ShowWnd()}),je(this,"GetLayout",function(){var i=null;qe.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:i}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"capturePicture",function(i){var r=null;qe.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:r}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"stop",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;qe.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setLayout",function(i){var r=parseInt(i);if(isNaN(r)||r==0||r>=13){console.log("不支持实际布局大于16的窗口数");return}n.layout=r,qe.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:r}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"setSoundVolumn",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,r=arguments.length>1?arguments[1]:void 0;qe.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i),volumn:parseInt(r)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"testMute",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"testSelectWnd",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setVideoLevel",function(i,r){qe.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:n.switchVideo==1?0:parseInt(i),level:parseInt(r,10)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"startTalk",function(i){qe.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopTalk",function(i){qe.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"startSave",function(i){qe.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopSave",function(i){qe.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,qe=Vs("playWnd",Zs,Js,Ks)}return dt(f,[{key:"alarmMsg",value:function(){var n={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(n),qe.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(n))})}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n={Core:gn,HLS:Yl,FLV:Xl,EZUIKitPlayer:Hs,EZUIKitHD:qs};return f.EZUIKit=n,n})})(Mr,Mr.exports);var vh=Mr.exports;const Bh=gh(vh),yh="/jsyApi",Th=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function Sh(ae){return/^https?:\/\//.test(ae)?ae:`${yh}${ae.startsWith("/")?ae:`/${ae}`}`}function Ch(ae){if((ae==null?void 0:ae.success)===!1||(ae==null?void 0:ae.code)!==void 0&&![0,200,"0","200"].includes(ae.code)){const ue=new Error((ae==null?void 0:ae.msg)||(ae==null?void 0:ae.message)||"视频监控接口请求失败");throw ue.code=ae==null?void 0:ae.code,ue}return hh(ae)}function Pn(ae,Je,ue=""){for(const fe of Je)if((ae==null?void 0:ae[fe])!==void 0&&(ae==null?void 0:ae[fe])!==null&&(ae==null?void 0:ae[fe])!=="")return ae[fe];return ue}function bh(ae,Je){for(const ue of Je)if((ae==null?void 0:ae[ue])!==void 0&&(ae==null?void 0:ae[ue])!==null&&(ae==null?void 0:ae[ue])!=="")return{key:ue,value:ae[ue]};return null}function Gl(ae){return Pn(ae,["token","accessToken","access_token"])}function Ph(ae){return Pn(ae,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function qo(ae){return!!(Gl(ae)&&Ph(ae))}function wh(ae){return bh(ae,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function Zl(ae){const Je=qo(ae),ue=wh(ae);if(!ue)return{online:Je,raw:"",reason:Je?"后台未返回设备状态":"缺少播放地址或令牌"};const fe=ue.value;if(typeof fe=="boolean")return{online:fe,raw:fe?"在线":"离线",reason:`后台状态:${fe?"在线":"离线"}`};const St=String(fe!=null?fe:"").trim().toLowerCase();return St?typeof fe=="number"||/^-?\d+(\.\d+)?$/.test(St)?{online:Number(fe)!==0,raw:String(fe),reason:`后台状态:${fe}`}:["true","online","on","open","running","active","enabled"].includes(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:"",reason:Je?"后台状态为空":"缺少播放地址或令牌"}}function Eh(ae){return Zl(ae).online}function Ih(ae){return Pn(ae,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function xh(ae){return Pn(ae,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function _h(ae){return!!(qo(ae)&&Eh(ae))}function Rh(ae=""){const Je=String(ae);return Th.find(fe=>Je.includes(fe.replace(/[镇乡]$/,"")))||"红原县"}function kh(ae=""){const Je=String(ae);return Je.includes("养殖")?"养殖基地":Je.includes("饲草")?"饲草基地":Je.includes("种草")||Je.includes("牧草")?"牧草基地":Je.includes("虫情")?"虫情监测":Je.includes("机场")?"机场周边":"重点点位"}function Ah(ae,Je){const ue=Pn(ae,["hdPlayUrl","playUrl","url"]),fe=String(ue).match(/\/(\d+)(?:\.hd)?\.live/i);return fe?fe[1].padStart(2,"0"):String(Je+1).padStart(2,"0")}function Dh(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function Mh(ae,Je,ue,fe){const St=Pn(ae,["name","title","deviceName"],`视频监控${Je+1}`),dt=Pn(ae,["hdPlayUrl","hd_play_url","url"]),je=Pn(ae,["playUrl","play_url"],dt),gn=Gl(ae),ut=Zl(ae),Mt=!!(qo(ae)&&ut.online),ln=ue?Math.round(fe/ue*100):0;return{key:Pn(ae,["id","number","deviceSerial"],`${St}-${Je}`),title:St,town:Rh(St),scene:kh(St),device:Pn(ae,["number","deviceSerial","serialNumber"],`CAM-${String(Je+1).padStart(3,"0")}`),channel:Ah(ae,Je),cameraCount:ue,status:Mt?"直播中":"离线",rawStatus:ut.raw,statusReason:ut.reason,onlineRate:ln,updateTime:Dh(),operator:Mt?"萤石云 · 在线预览":ut.reason,progress:Mt?100:0,image:Ih(ae),lastCaptureTime:xh(ae),playUrl:je,hdPlayUrl:dt,token:gn,source:ae}}function zh(){return Wl(this,arguments,function*(ae={}){const gn=ae,{includeOffline:Je=!1}=gn,ue=Vl(gn,["includeOffline"]),fe=yield fh(Sh("/api/home/monitorings"),{params:ue,timeout:18e3}).then(Ch),St=Array.isArray(fe)?fe:(fe==null?void 0:fe.rows)||(fe==null?void 0:fe.list)||[],dt=St.filter(_h),je=St.map((ut,Mt)=>Mh(ut,Mt,St.length,dt.length));return Je?je.sort((ut,Mt)=>+(Mt.status==="直播中")-+(ut.status==="直播中")):je.filter(ut=>ut.status==="直播中")})}const jh=""+new URL("live-scene-1-786cdd0a-balabala-1784132466083.png",import.meta.url).href;export{Bh as E,zh as g,jh as l}; +`,console.log(n.callbackMessage)}),je(this,"showTips",function(i,r){}),je(this,"hideVideo",function(){qe.JS_HideWnd()}),je(this,"showVideo",function(){qe.JS_ShowWnd()}),je(this,"GetLayout",function(){var i=null;qe.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:i}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"capturePicture",function(i){var r=null;qe.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:r}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"stop",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;qe.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setLayout",function(i){var r=parseInt(i);if(isNaN(r)||r==0||r>=13){console.log("不支持实际布局大于16的窗口数");return}n.layout=r,qe.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:r}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"setSoundVolumn",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,r=arguments.length>1?arguments[1]:void 0;qe.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i),volumn:parseInt(r)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"testMute",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"testSelectWnd",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setVideoLevel",function(i,r){qe.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:n.switchVideo==1?0:parseInt(i),level:parseInt(r,10)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"startTalk",function(i){qe.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopTalk",function(i){qe.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"startSave",function(i){qe.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopSave",function(i){qe.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,qe=Vs("playWnd",Zs,Js,Ks)}return dt(f,[{key:"alarmMsg",value:function(){var n={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(n),qe.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(n))})}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n={Core:gn,HLS:Yl,FLV:Xl,EZUIKitPlayer:Hs,EZUIKitHD:qs};return f.EZUIKit=n,n})})(Mr,Mr.exports);var vh=Mr.exports;const Bh=gh(vh),yh="/jsyApi",Th=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function Sh(ae){return/^https?:\/\//.test(ae)?ae:`${yh}${ae.startsWith("/")?ae:`/${ae}`}`}function Ch(ae){if((ae==null?void 0:ae.success)===!1||(ae==null?void 0:ae.code)!==void 0&&![0,200,"0","200"].includes(ae.code)){const ue=new Error((ae==null?void 0:ae.msg)||(ae==null?void 0:ae.message)||"视频监控接口请求失败");throw ue.code=ae==null?void 0:ae.code,ue}return hh(ae)}function Pn(ae,Je,ue=""){for(const fe of Je)if((ae==null?void 0:ae[fe])!==void 0&&(ae==null?void 0:ae[fe])!==null&&(ae==null?void 0:ae[fe])!=="")return ae[fe];return ue}function bh(ae,Je){for(const ue of Je)if((ae==null?void 0:ae[ue])!==void 0&&(ae==null?void 0:ae[ue])!==null&&(ae==null?void 0:ae[ue])!=="")return{key:ue,value:ae[ue]};return null}function Gl(ae){return Pn(ae,["token","accessToken","access_token"])}function Ph(ae){return Pn(ae,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function qo(ae){return!!(Gl(ae)&&Ph(ae))}function wh(ae){return bh(ae,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function Zl(ae){const Je=qo(ae),ue=wh(ae);if(!ue)return{online:Je,raw:"",reason:Je?"后台未返回设备状态":"缺少播放地址或令牌"};const fe=ue.value;if(typeof fe=="boolean")return{online:fe,raw:fe?"在线":"离线",reason:`后台状态:${fe?"在线":"离线"}`};const St=String(fe!=null?fe:"").trim().toLowerCase();return St?typeof fe=="number"||/^-?\d+(\.\d+)?$/.test(St)?{online:Number(fe)!==0,raw:String(fe),reason:`后台状态:${fe}`}:["true","online","on","open","running","active","enabled"].includes(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:"",reason:Je?"后台状态为空":"缺少播放地址或令牌"}}function Eh(ae){return Zl(ae).online}function Ih(ae){return Pn(ae,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function xh(ae){return Pn(ae,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function _h(ae){return!!(qo(ae)&&Eh(ae))}function Rh(ae=""){const Je=String(ae);return Th.find(fe=>Je.includes(fe.replace(/[镇乡]$/,"")))||"红原县"}function kh(ae=""){const Je=String(ae);return Je.includes("养殖")?"养殖基地":Je.includes("饲草")?"饲草基地":Je.includes("种草")||Je.includes("牧草")?"牧草基地":Je.includes("虫情")?"虫情监测":Je.includes("机场")?"机场周边":"重点点位"}function Ah(ae,Je){const ue=Pn(ae,["hdPlayUrl","playUrl","url"]),fe=String(ue).match(/\/(\d+)(?:\.hd)?\.live/i);return fe?fe[1].padStart(2,"0"):String(Je+1).padStart(2,"0")}function Dh(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function Mh(ae,Je,ue,fe){const St=Pn(ae,["name","title","deviceName"],`视频监控${Je+1}`),dt=Pn(ae,["hdPlayUrl","hd_play_url","url"]),je=Pn(ae,["playUrl","play_url"],dt),gn=Gl(ae),ut=Zl(ae),Mt=!!(qo(ae)&&ut.online),ln=ue?Math.round(fe/ue*100):0;return{key:Pn(ae,["id","number","deviceSerial"],`${St}-${Je}`),title:St,town:Rh(St),scene:kh(St),device:Pn(ae,["number","deviceSerial","serialNumber"],`CAM-${String(Je+1).padStart(3,"0")}`),channel:Ah(ae,Je),cameraCount:ue,status:Mt?"直播中":"离线",rawStatus:ut.raw,statusReason:ut.reason,onlineRate:ln,updateTime:Dh(),operator:Mt?"萤石云 · 在线预览":ut.reason,progress:Mt?100:0,image:Ih(ae),lastCaptureTime:xh(ae),playUrl:je,hdPlayUrl:dt,token:gn,source:ae}}function zh(){return Wl(this,arguments,function*(ae={}){const gn=ae,{includeOffline:Je=!1}=gn,ue=Vl(gn,["includeOffline"]),fe=yield fh(Sh("/api/home/monitorings"),{params:ue,timeout:18e3}).then(Ch),St=Array.isArray(fe)?fe:(fe==null?void 0:fe.rows)||(fe==null?void 0:fe.list)||[],dt=St.filter(_h),je=St.map((ut,Mt)=>Mh(ut,Mt,St.length,dt.length));return Je?je.sort((ut,Mt)=>+(Mt.status==="直播中")-+(ut.status==="直播中")):je.filter(ut=>ut.status==="直播中")})}const jh=""+new URL("live-scene-1-786cdd0a-balabala-1784132792831.png",import.meta.url).href;export{Bh as E,zh as g,jh as l}; diff --git a/docs/assets/live-scene-1-786cdd0a-balabala-1784132466083.png b/docs/assets/live-scene-1-786cdd0a-balabala-1784132792831.png similarity index 100% rename from docs/assets/live-scene-1-786cdd0a-balabala-1784132466083.png rename to docs/assets/live-scene-1-786cdd0a-balabala-1784132792831.png diff --git a/docs/assets/livestockData-36ec0ae2-1784132466083.js b/docs/assets/livestockData-36ec0ae2-1784132792831.js similarity index 100% rename from docs/assets/livestockData-36ec0ae2-1784132466083.js rename to docs/assets/livestockData-36ec0ae2-1784132792831.js diff --git a/docs/assets/menu-btn-91a961cf-balabala-1784132466083.png b/docs/assets/menu-btn-91a961cf-balabala-1784132792831.png similarity index 100% rename from docs/assets/menu-btn-91a961cf-balabala-1784132466083.png rename to docs/assets/menu-btn-91a961cf-balabala-1784132792831.png diff --git a/docs/assets/menu-btn-hover-62eba0bb-balabala-1784132466083.png b/docs/assets/menu-btn-hover-62eba0bb-balabala-1784132792831.png similarity index 100% rename from docs/assets/menu-btn-hover-62eba0bb-balabala-1784132466083.png rename to docs/assets/menu-btn-hover-62eba0bb-balabala-1784132792831.png diff --git a/docs/assets/ocean-bg-8c848b8f-balabala-1784132466083.png b/docs/assets/ocean-bg-8c848b8f-balabala-1784132792831.png similarity index 100% rename from docs/assets/ocean-bg-8c848b8f-balabala-1784132466083.png rename to docs/assets/ocean-bg-8c848b8f-balabala-1784132792831.png diff --git a/docs/assets/openApi-d69f269f-1784132466083.js b/docs/assets/openApi-50c9b694-1784132792831.js similarity index 99% rename from docs/assets/openApi-d69f269f-1784132466083.js rename to docs/assets/openApi-50c9b694-1784132792831.js index 27e7bc6..260c61b 100644 --- a/docs/assets/openApi-d69f269f-1784132466083.js +++ b/docs/assets/openApi-50c9b694-1784132792831.js @@ -1 +1 @@ -var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var Ee=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,b=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&Ee(e,a,n[a]);if(Ce)for(var a of Ce(n))rn.call(n,a)&&Ee(e,a,n[a]);return e},h=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=i=>{try{o(a.next(i))}catch(u){r(u)}},l=i=>{try{o(a.throw(i))}catch(u){r(u)}},o=i=>i.done?t(i.value):Promise.resolve(i.value).then(s,l);o((a=a.apply(e,n)).next())});import{n as g,r as Ge}from"./index-ed255eef-1784132466083.js";import{g as Ye}from"./geoserver-b1a62bfb-1784132466083.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-822b7d9e-1784132466083.js";const ln="/openApi",Z=756.37,_e=297.29,B=291.82,on=16.47,un=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(oe),de=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function Oe(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Ge(Oe(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function P(e,n){return Ge(Oe(e),{params:n})}function qe(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function jn(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/woodland/detail",{wkt:e}));return qe(n,["woodland"])})}function Un(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/basic_grassland/detail",{wkt:e}));return qe(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function A(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=A(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=A(e),r=A(n),s=A(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const o=w(r/l*t);return[o,w(Math.max(t-o,0))]}function G(e,n){const a=A(e),t=A(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function ve(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:G(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var o,i;return h(b(b({},s),e[l]||{}),{name:((o=e[l])==null?void 0:o.name)||s.name,unit:((i=e[l])==null?void 0:i.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=h(b({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:B,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,o=e.map((i,u)=>{const c=w(d(i,t)),v={key:d(i,["key","code","townCode"])||`${d(i,a)||u}-${u}`,name:d(i,a)||`第${u+1}项`,value:c,unit:r,percent:w(d(i,["percent","areaPercent","basicRatio","generalRatio"])),source:i};return l?h(b({},v),{extra:l(i)}):v}).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?o.slice(0,s):o}function we(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((o,i)=>{const u=d(o,t),c=w(r==="万亩"?A(u)/1e4:u),v=d(o,a)||`第${i+1}项`;return{key:d(o,["key","code"])||`${v}-${i}`,name:v,value:c,unit:r,source:o}}).filter(o=>Number(o.value)>0).sort((o,i)=>(Number(i.value)||0)-(Number(o.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function p(e,n,a,t="rank",r={}){return b({key:e,title:n,type:t,rows:a||[]},r)}function ge(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(o=>[o.areaName,o]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:o=>{const i=l.get(o.areaName),u=w(d(i,["yield","value"])),c=d(i,["unit"])||"斤";return s&&u!==void 0?`亩产 ${u} ${c}`:""}})}function oe(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(oe(a==null?void 0:a.name)),s=n.get(oe(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function Se(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function pe(e){return Se(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Ve(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const o=oe(d(s,a)),i=w(d(s,t));return!o||i===void 0?null:{key:d(s,["key","code","townCode"])||`${o}-${l}`,name:o,value:i,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const o=oe(d(l,a)),i=A(d(l,t));if(!o||i===void 0)return;const u=s.get(o)||{key:d(l,["townCode","code"])||o,name:o,value:0,unit:d(l,["unit"])||r,source:[]};u.value+=i,u.source.push(l),s.set(o,u)}),Array.from(s.values()).map(l=>h(b({},l),{value:w(l.value)})).sort((l,o)=>(Number(o.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const o=r.filter(i=>(i==null?void 0:i.name)&&i.value!==void 0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0)).map((i,u)=>h(b({},i),{unit:i.unit||t,rank:u+1}));return{status:o.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:o}}function fe(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const o=yield Ye(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),i=new Map;return((o==null?void 0:o.features)||[]).forEach(u=>{const c=u.properties||{},v=String(c.xiang||""),m=Ke(v),y=A(c.acreage);if(!m||y===void 0)return;const N=i.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,i.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(i.values()).map(u=>h(b({},u),{value:w(u.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=g(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function Be(e,n,a,t){return f(this,null,function*(){const r=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return oe(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ke(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],o=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],i=yield Ye(a.layerName,{propertyName:o,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=A(d(v,l));if(!m||y===void 0)return;const N=u.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(u.values()).map(c=>h(b({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>h(b({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>h(b({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function hn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function Rn(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?hn(e,n,a):e==="grassland"&&n==="grassland-type"?Rn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ye(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=g(yield P(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function F(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const o=[],i=[];if(s.forEach((m,y)=>{const N=G(m.value,l);y=t)?o.push(m):i.push(m)}),!i.length)return o;const u=i.reduce((m,y)=>m+(Number(y.value)||0),0);return[...o,{key:`${r}-${i.length}`,name:r,value:w(u),unit:((c=i[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(G(u,l))}%`}]}function O(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function D(e=[],n=O(e),a=""){return e.map(t=>{const r=w(G(t.value,n));return h(b({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,o=A(n);if(o===void 0)return e;const i=O(e),u=w(o-i);if(u===void 0||u<=.01)return e;const c=[...e,{key:t,name:r,value:u,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=A(n),t=O(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const o=l===e.length-1,i=w(o?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(i)||0,h(b({},s),{value:i})})}function K(e=[],n=[]){return n.length?e.map((a,t)=>h(b({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function $e(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function z(e=[],n=[],a=4){const t=[],r=new Set,s=o=>{!o||r.has(o.key)||(r.add(o.key),t.push(o))},l=[...e,...n];return l.filter($e).forEach(s),l.filter(o=>o&&!$e(o)).forEach(s),t.slice(0,a)}function Mn(e,n,a={}){return e&&b(h(b({},e),{type:n}),a)}function _(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(o=>!t.has(o))||r.type;return t.add(l),Mn(r,l,{variant:l===r.type?r.variant:void 0})})}function De(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(u=>(u==null?void 0:u.name)&&Number(u.value)>0);if(!s.length)return[];const l=s.slice(0,a),o=s.slice(a),i=(u,c)=>{var v,m;return{key:u,name:u,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[i(t,l),o.length?i(r,o):null].filter(u=>u&&Number(u.value)>0)}function ie(e,n,a){var o,i,u,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((o=e==null?void 0:e.layerPanels)==null?void 0:o[a])||((i=e==null?void 0:e.layerPanels)==null?void 0:i[t]);if(!r)return e;const s=(u=r.leftPanels)!=null&&u.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return h(b({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=A(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=i=>i,filter:s,extra:l}=n,o=new Map;return e.forEach(i=>{if(s&&!s(i))return;const u=d(i,a),c=r(u,i),v=Xe(i,t);if(!c||v===void 0)return;const m=o.get(c)||{key:d(i,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(i),o.set(c,m)}),Array.from(o.values()).map(i=>{const u=h(b({},i),{value:w(i.value)});return l?h(b({},u),{extra:l(u)}):u}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0))}function Ie(e){return String(e||"").replace(/草原/g,"湿地")}function Wn(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=A(e==null?void 0:e.xc))!=null?l:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(G(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(G(s,t))}%`}].filter(o=>o.value!==void 0)}function xn(e={},n=[],a=[]){var i;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(i=A(e==null?void 0:e.xc))!=null?i:O(a),s=A(e==null?void 0:e.edibleXc),l=O(n),o=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return h(b({},e),{xc:w(r),edibleXc:w(o),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:o,edibleMuRows:i,typeTownRows:u,levelTownRows:c,minTownRows:v}){const m=p("wetland-town-area","湿地面积分布",K(me(n),de),"column",{span:1,variant:"plain"}),y=p("wetland-type","湿地类型结构",K(a,de),"donut",{span:1}),N=p("wetland-level-proportion","湿地级占比",K(D(t),de),"donut",{span:1,variant:"ring"}),T=p("wetland-min-type","湿地优势小类",K(F(s,6),de),"bar",{span:1,variant:"raceBarNoWrap"}),W=p("wetland-yield-capacity","湿地产能结构",Wn(e,r),"structure",{span:1}),x=p("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),L=p("wetland-edible-yield","可食鲜草产量",F(o,U.length),"column",{span:1,variant:"slim"}),E=p("wetland-mu-yield","湿地亩产效率",F(l,U.length),"heat",{span:1,limit:U.length}),$=p("wetland-level","湿地级别面积",t,"column",{span:1}),C=p("wetland-level-town","1级湿地分布",F(c,U.length),"bar",{span:1,variant:"distribution"}),q=p("wetland-type-town","湿地类型乡镇分布",F(u,U.length),"bar",{span:1,variant:"distribution"}),Y=p("wetland-edible-mu","可食鲜草亩产",F(i,U.length),"bar",{span:1}),J=p("wetland-min-town","优势小类乡镇分布",F(v,U.length),"bar",{span:1,variant:"distribution"}),S=_([m,y,N,T]),I=_([L,x,E,W]);return{leftPanels:S,rightPanels:I,left:S[0],right:I[0],layerPanels:An({townAreaPanel:m,typePanel:y,yieldCapacityPanel:W,yieldPanel:x,levelPanel:$,levelTownPanel:C,muYieldPanel:E,levelStructurePanel:N,typeTownPanel:q,minTypePanel:T,edibleYieldPanel:L,edibleMuPanel:Y,minTownPanel:J})}}function An(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:o,levelStructurePanel:i,typeTownPanel:u,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-level":{leftPanels:_([i,s,l,a].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-type":{leftPanels:_([a,u,c,y].filter(Boolean)),rightPanels:_([v,r,m,t].filter(Boolean))},"wetland-yield":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))}}}function Ln(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t={leftPanels:_(n.filter(Boolean)),rightPanels:_(a.filter(Boolean))};return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:o=[],canopyRows:i=[],forestTypeRows:u=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:T=De(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:W=De(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const x=p("woodland-town","林地面积分布",K(me(e),ee),"column",{span:1,variant:"plain",lineOverlay:!0}),L=p("woodland-type","林地类型结构",K(n,ee),"donut",{span:1,variant:"ring"}),E=p("woodland-protection","公益林保护等级",K(D(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),$=p("woodland-ownership","林地权属结构",K(D(r),ee),"structure",{span:1}),C=p("woodland-quality","优势树种面积",F(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=p("woodland-origin","林地起源结构",D(l),"structure",{span:1}),Y=p("woodland-age","林龄组结构",F(o,6),"column",{span:1}),J=p("woodland-canopy","郁闭度结构",K(F(i,6),ee),"donut",{span:1,fixedType:!0}),S=p("woodland-area-scale","林地图斑规模",a,"column",{span:1}),I=p("woodland-forest-type","森林类别结构",F(u,6),"bar",{span:1}),V=p("woodland-manage-level","管护等级分布",F(c,6),"bar",{span:1}),ae=p("woodland-public-rank","公益林面积排行",F(v,6),"bar",{span:1,variant:"distribution"}),M=p("woodland-owner-rank","权属单位排行",F(m,6),"bar",{span:1}),X=p("woodland-type-town","乡镇类型构成",F(y,6),"bar",{span:1,variant:"distribution"}),he=p("woodland-quality-level","林地质量等级",D(N),"donut",{span:1}),xe=p("woodland-town-concentration","林地集中度",K(D(T),ee),"structure",{span:1}),Ae=p("woodland-type-concentration","类型集中度",K(D(W),ee),"rose",{span:1}),Le=_(z([x,L,E,$],[S,M,I,C])),Fe=_(z([C,q,Y,J],[S,M,I,ae,xe,Ae]));return{leftPanels:Le,rightPanels:Fe,left:Le[0],right:Fe[0],layerPanels:Fn({townPanel:x,typePanel:L,scalePanel:S,protectionPanel:E,ownershipPanel:$,qualityPanel:C,originPanel:q,agePanel:Y,canopyPanel:J,forestTypePanel:I,manageLevelPanel:V,regionPanel:ae,ownerPanel:M,typeTownPanel:X,qualityLevelPanel:he,townConcentrationPanel:xe,typeConcentrationPanel:Ae})}}function Fn(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:o,agePanel:i,canopyPanel:u,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:T,townConcentrationPanel:W,typeConcentrationPanel:x}=e;return{"woodland-distribution":{leftPanels:_(z([n,a,r,s],[t,c,y])),rightPanels:_(z([l,o,i,u],[t,y,m,W,x,T]))},"woodland-protection":{leftPanels:_(z([r,c,v,n],[a,s,t])),rightPanels:_(z([m,l,o,s],[y,a,t]))},"woodland-type":{leftPanels:_(z([a,n,N,t],[r,s,c])),rightPanels:_(z([l,o,r,s],[i,u,y,x]))},"woodland-quality":{leftPanels:_(z([l,o,i,u],[T,t,a])),rightPanels:_(z([n,a,r,s],[c,y,t]))},"woodland-ownership":{leftPanels:_(z([s,y,n,a],[t,r,l])),rightPanels:_(z([r,l,o,t],[c,i,u]))}}}function Cn(e=cn){const n=e.map(s=>h(b({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-O(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return D(n.sort((s,l)=>{const o=r.indexOf(s.name),i=r.indexOf(l.name);return(o===-1?99:o)-(i===-1?99:i)}),Z)}function En(){return f(this,null,function*(){return We()})}function He(e=[],n={},a=[]){var r;const t=(r=A(n==null?void 0:n.xc))!=null?r:O(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function Bn(e={},n=[]){return h(b({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function $n(e=[]){const n=O(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>h(b({},a),{color:Dn(a.name),extra:w(G(a.value,n))?`${w(G(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function Dn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var o;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(o=A(e==null?void 0:e.xc))!=null?o:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(i=>Number(i.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(G(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(G(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(G(l==null?void 0:l.value,t))}].filter(i=>i.value!==void 0)}function We(){return{levelRows:Cn(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function ze(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),o=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),i=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=We().levelRows,v=D([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=D([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),T=Ze({core:r,townRows:s,grassTypeRows:o,grassLevelRows:v,healthRows:m,productivityRows:i,edibleYieldRows:N,forageRows:y,degradationRows:c}),W=h(b({status:"fallback"},T),{top:He(r,{xc:_e,unit:"万吨"},l)});return ie(W,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:B,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],B,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],o=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),B),i=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),u=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:on,unit:"万吨"},townAreaRows:o,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:i,muYieldRows:l,edibleYieldRows:u,edibleMuRows:c,typeTownRows:o,levelTownRows:o,minTownRows:o}),m=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ie(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),u=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},u);return ie(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function R(e,n=[]){return e().catch(()=>n)}function Re(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=i=>i,max:l=Number.POSITIVE_INFINITY}=n,o=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(i=>h(b({},i),{name:s(i.name)}));return D(o).filter(i=>Number(i.value)>0).slice(0,l)}function In(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function zn(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:o,degradationRows:i}){const u=p("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=p("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=p("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=p("grassland-edible-yield","可食鲜草产量分布",F(l,10),"column",{span:1,variant:"slim"}),y=p("grassland-degradation","草地退化统计",$n(i),"bar",{span:1,variant:"degradation"}),N=p("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),T=p("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),W=p("grassland-forage-capacity","饲草供给",o,"bar",{span:1,variant:"capacity"}),x=_([u,v,y,T]),L=_([m,c,N,W]);return{core:e,leftPanels:x,rightPanels:L,left:x[0],right:L[0],layerPanels:Ln({leftPanels:x,rightPanels:L})}}function Gn(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],o=n.edibleRows||[],i=n.edibleMuRows||[],u=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(we(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=ge(r,n.muYieldRows||[],{showMuYieldExtra:!1}),T=we(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),W=le(we(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(M=>h(b({},M),{name:Ie(M.name)})),B,{key:"wetland-level-unclassified",name:"未分级湿地"}),x=se(le(gn(l),B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),L=ge(o,i,{showMuYieldExtra:!1}),E=we(i,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(i==null?void 0:i[0],["unit"])||"斤",max:U.length}),$=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),C=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.length)||0}类`}}),B),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),Y=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:M=>Ie(d(M,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.filter(he=>Xe(he,["acreage","areaWanMu","value"])>0).length)||0}型`}}),B),S=xn(m,L,N),I=ne(a,"wetland"),V=W.find(M=>/^1级/.test(M.name))||W[0],ae=je({yieldSummary:S,townAreaRows:$,typeRows:y,levelRows:W,yieldRows:N,minTypeRows:x,muYieldRows:T,edibleYieldRows:L,edibleMuRows:E,typeTownRows:C,levelTownRows:Y.length?Y:q,minTownRows:J});return b({core:I,top:[I[0],I[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:V==null?void 0:V.value,unit:(V==null?void 0:V.unit)||"万亩"}].filter(Boolean)},ae)}function Yn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function Kn(e,n=[]){const a=new Set(n);return Yn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=Kn(e,n);return b(h(b({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function ue(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function On(e,n,a){var W,x,L,E,$;const t=ue(e,["grassland-area","grassland-total-area","草地面积"]),r=ue(n,["wetland-area","湿地面积"]),s=ue(a,["woodland-area","林地总面积"]),[l,o]=Me(Z,637.13,119.31),i=ue(e,["basic-grassland","basic-grassland-area","基本草原"]),u=ue(e,["general-grassland","general-grassland-area","一般草原"]),c=D([{key:"overview-basic-grassland",name:"基本草原",value:w((W=i==null?void 0:i.value)!=null?W:l),unit:(i==null?void 0:i.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((x=u==null?void 0:u.value)!=null?x:o),unit:(u==null?void 0:u.unit)||"万亩",color:"#FFE06B"}]),v=D([{key:"overview-grassland-area",name:"草地资源",value:w((L=t==null?void 0:t.value)!=null?L:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((E=r==null?void 0:r.value)!=null?E:B),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w(($=s==null?void 0:s.value)!=null?$:un),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","column",{variant:"water"}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"plain",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[p("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),p("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],T=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(O(v)),unit:"万亩"},h(b({},v[0]),{name:"草地面积"}),h(b({},v[1]),{name:"湿地面积"}),h(b({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(C=>(C==null?void 0:C.status)==="error")?"fallback":"success",core:T,top:T,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return On(t,r,s)}if(e==="woodland"){const[t,r,s,l,o]=yield Promise.all([Q("/woodland/distribution").then(g),R(()=>f(this,null,function*(){return g(yield Q("/woodland/types"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/protection"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/quality"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/ownership"))}),{})]),i=ne(wn(t),e),u=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[i[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:G(c,u)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),T=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),W=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),x=k((o==null?void 0:o.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,u)}),L=k((o==null?void 0:o.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),E=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),$=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),C=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),Y=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>{const X=w(d(M,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(M)}}),S=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),I=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),V=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:T,ownershipRows:L,qualityRows:W,originRows:q,ageRows:Y,canopyRows:J,forestTypeRows:E,manageLevelRows:$,regionRows:C,ownerRows:x,typeTownRows:I,qualityLevelRows:S}),ae=b({status:"success",core:i,top:v},V);return ie(ae,e,n)}if(e==="grassland"){const[t,r,s,l,o,i,u,c,v]=yield Promise.all([P("/basic_grassland/overview").then(g),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/yieldProportion"))}),{}),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return En()}),We()),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_health/proportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/edibleXcDistribution"))}))]),m=o.levelRows||[],y=ne(fn(t),e),N=ge(s||[],l||[],{showMuYieldExtra:!1}),T=Bn(r,N),W=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),x=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),L=Re(Qe(i||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Se}),E=Re(u||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:In}),$=Re(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:zn}),C=ge(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:x,grassTypeRows:L,grassLevelRows:E,healthRows:$,productivityRows:W,edibleYieldRows:C,forageRows:Je(T,N),degradationRows:m}),Y=h(b({status:"success"},q),{top:He(y,T,N)});return ie(Y,e,n)}if(e==="wetland"){const[t,r,s,l,o,i,u,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland_grassland_level"}))})]),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcMuDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/yieldProportion"))}),{})]),T=Gn(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:o,minTypeRows:i,edibleRows:u,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),W=h(b({status:"success"},T),{left:T.leftPanels[0],right:T.rightPanels[0]});return ie(W,e,n)}return ze(e,n)}catch(t){return h(b({},ze(e,n)),{status:"error",error:t})}})}function Hn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield Be(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ye(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield Be(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ye(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ye(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ye(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{jn as a,Hn as b,Un as c,ke as g}; +var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var Ee=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,b=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&Ee(e,a,n[a]);if(Ce)for(var a of Ce(n))rn.call(n,a)&&Ee(e,a,n[a]);return e},h=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=i=>{try{o(a.next(i))}catch(u){r(u)}},l=i=>{try{o(a.throw(i))}catch(u){r(u)}},o=i=>i.done?t(i.value):Promise.resolve(i.value).then(s,l);o((a=a.apply(e,n)).next())});import{n as g,r as Ge}from"./index-a1b5e9c0-1784132792831.js";import{g as Ye}from"./geoserver-c6c88e84-1784132792831.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-822b7d9e-1784132792831.js";const ln="/openApi",Z=756.37,_e=297.29,B=291.82,on=16.47,un=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(oe),de=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function Oe(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Ge(Oe(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function P(e,n){return Ge(Oe(e),{params:n})}function qe(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function jn(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/woodland/detail",{wkt:e}));return qe(n,["woodland"])})}function Un(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/basic_grassland/detail",{wkt:e}));return qe(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function A(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=A(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=A(e),r=A(n),s=A(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const o=w(r/l*t);return[o,w(Math.max(t-o,0))]}function G(e,n){const a=A(e),t=A(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function ve(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:G(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var o,i;return h(b(b({},s),e[l]||{}),{name:((o=e[l])==null?void 0:o.name)||s.name,unit:((i=e[l])==null?void 0:i.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=h(b({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:B,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,o=e.map((i,u)=>{const c=w(d(i,t)),v={key:d(i,["key","code","townCode"])||`${d(i,a)||u}-${u}`,name:d(i,a)||`第${u+1}项`,value:c,unit:r,percent:w(d(i,["percent","areaPercent","basicRatio","generalRatio"])),source:i};return l?h(b({},v),{extra:l(i)}):v}).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?o.slice(0,s):o}function we(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((o,i)=>{const u=d(o,t),c=w(r==="万亩"?A(u)/1e4:u),v=d(o,a)||`第${i+1}项`;return{key:d(o,["key","code"])||`${v}-${i}`,name:v,value:c,unit:r,source:o}}).filter(o=>Number(o.value)>0).sort((o,i)=>(Number(i.value)||0)-(Number(o.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function p(e,n,a,t="rank",r={}){return b({key:e,title:n,type:t,rows:a||[]},r)}function ge(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(o=>[o.areaName,o]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:o=>{const i=l.get(o.areaName),u=w(d(i,["yield","value"])),c=d(i,["unit"])||"斤";return s&&u!==void 0?`亩产 ${u} ${c}`:""}})}function oe(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(oe(a==null?void 0:a.name)),s=n.get(oe(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function Se(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function pe(e){return Se(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Ve(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const o=oe(d(s,a)),i=w(d(s,t));return!o||i===void 0?null:{key:d(s,["key","code","townCode"])||`${o}-${l}`,name:o,value:i,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const o=oe(d(l,a)),i=A(d(l,t));if(!o||i===void 0)return;const u=s.get(o)||{key:d(l,["townCode","code"])||o,name:o,value:0,unit:d(l,["unit"])||r,source:[]};u.value+=i,u.source.push(l),s.set(o,u)}),Array.from(s.values()).map(l=>h(b({},l),{value:w(l.value)})).sort((l,o)=>(Number(o.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const o=r.filter(i=>(i==null?void 0:i.name)&&i.value!==void 0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0)).map((i,u)=>h(b({},i),{unit:i.unit||t,rank:u+1}));return{status:o.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:o}}function fe(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const o=yield Ye(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),i=new Map;return((o==null?void 0:o.features)||[]).forEach(u=>{const c=u.properties||{},v=String(c.xiang||""),m=Ke(v),y=A(c.acreage);if(!m||y===void 0)return;const N=i.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,i.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(i.values()).map(u=>h(b({},u),{value:w(u.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=g(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function Be(e,n,a,t){return f(this,null,function*(){const r=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return oe(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ke(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],o=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],i=yield Ye(a.layerName,{propertyName:o,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=A(d(v,l));if(!m||y===void 0)return;const N=u.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(u.values()).map(c=>h(b({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>h(b({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>h(b({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function hn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function Rn(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?hn(e,n,a):e==="grassland"&&n==="grassland-type"?Rn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ye(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=g(yield P(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function F(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const o=[],i=[];if(s.forEach((m,y)=>{const N=G(m.value,l);y=t)?o.push(m):i.push(m)}),!i.length)return o;const u=i.reduce((m,y)=>m+(Number(y.value)||0),0);return[...o,{key:`${r}-${i.length}`,name:r,value:w(u),unit:((c=i[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(G(u,l))}%`}]}function O(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function D(e=[],n=O(e),a=""){return e.map(t=>{const r=w(G(t.value,n));return h(b({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,o=A(n);if(o===void 0)return e;const i=O(e),u=w(o-i);if(u===void 0||u<=.01)return e;const c=[...e,{key:t,name:r,value:u,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=A(n),t=O(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const o=l===e.length-1,i=w(o?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(i)||0,h(b({},s),{value:i})})}function K(e=[],n=[]){return n.length?e.map((a,t)=>h(b({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function $e(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function z(e=[],n=[],a=4){const t=[],r=new Set,s=o=>{!o||r.has(o.key)||(r.add(o.key),t.push(o))},l=[...e,...n];return l.filter($e).forEach(s),l.filter(o=>o&&!$e(o)).forEach(s),t.slice(0,a)}function Mn(e,n,a={}){return e&&b(h(b({},e),{type:n}),a)}function _(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(o=>!t.has(o))||r.type;return t.add(l),Mn(r,l,{variant:l===r.type?r.variant:void 0})})}function De(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(u=>(u==null?void 0:u.name)&&Number(u.value)>0);if(!s.length)return[];const l=s.slice(0,a),o=s.slice(a),i=(u,c)=>{var v,m;return{key:u,name:u,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[i(t,l),o.length?i(r,o):null].filter(u=>u&&Number(u.value)>0)}function ie(e,n,a){var o,i,u,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((o=e==null?void 0:e.layerPanels)==null?void 0:o[a])||((i=e==null?void 0:e.layerPanels)==null?void 0:i[t]);if(!r)return e;const s=(u=r.leftPanels)!=null&&u.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return h(b({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=A(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=i=>i,filter:s,extra:l}=n,o=new Map;return e.forEach(i=>{if(s&&!s(i))return;const u=d(i,a),c=r(u,i),v=Xe(i,t);if(!c||v===void 0)return;const m=o.get(c)||{key:d(i,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(i),o.set(c,m)}),Array.from(o.values()).map(i=>{const u=h(b({},i),{value:w(i.value)});return l?h(b({},u),{extra:l(u)}):u}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0))}function Ie(e){return String(e||"").replace(/草原/g,"湿地")}function Wn(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=A(e==null?void 0:e.xc))!=null?l:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(G(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(G(s,t))}%`}].filter(o=>o.value!==void 0)}function xn(e={},n=[],a=[]){var i;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(i=A(e==null?void 0:e.xc))!=null?i:O(a),s=A(e==null?void 0:e.edibleXc),l=O(n),o=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return h(b({},e),{xc:w(r),edibleXc:w(o),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:o,edibleMuRows:i,typeTownRows:u,levelTownRows:c,minTownRows:v}){const m=p("wetland-town-area","湿地面积分布",K(me(n),de),"column",{span:1,variant:"plain"}),y=p("wetland-type","湿地类型结构",K(a,de),"donut",{span:1}),N=p("wetland-level-proportion","湿地级占比",K(D(t),de),"donut",{span:1,variant:"ring"}),T=p("wetland-min-type","湿地优势小类",K(F(s,6),de),"bar",{span:1,variant:"raceBarNoWrap"}),W=p("wetland-yield-capacity","湿地产能结构",Wn(e,r),"structure",{span:1}),x=p("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),L=p("wetland-edible-yield","可食鲜草产量",F(o,U.length),"column",{span:1,variant:"slim"}),E=p("wetland-mu-yield","湿地亩产效率",F(l,U.length),"heat",{span:1,limit:U.length}),$=p("wetland-level","湿地级别面积",t,"column",{span:1}),C=p("wetland-level-town","1级湿地分布",F(c,U.length),"bar",{span:1,variant:"distribution"}),q=p("wetland-type-town","湿地类型乡镇分布",F(u,U.length),"bar",{span:1,variant:"distribution"}),Y=p("wetland-edible-mu","可食鲜草亩产",F(i,U.length),"bar",{span:1}),J=p("wetland-min-town","优势小类乡镇分布",F(v,U.length),"bar",{span:1,variant:"distribution"}),S=_([m,y,N,T]),I=_([L,x,E,W]);return{leftPanels:S,rightPanels:I,left:S[0],right:I[0],layerPanels:An({townAreaPanel:m,typePanel:y,yieldCapacityPanel:W,yieldPanel:x,levelPanel:$,levelTownPanel:C,muYieldPanel:E,levelStructurePanel:N,typeTownPanel:q,minTypePanel:T,edibleYieldPanel:L,edibleMuPanel:Y,minTownPanel:J})}}function An(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:o,levelStructurePanel:i,typeTownPanel:u,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-level":{leftPanels:_([i,s,l,a].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-type":{leftPanels:_([a,u,c,y].filter(Boolean)),rightPanels:_([v,r,m,t].filter(Boolean))},"wetland-yield":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))}}}function Ln(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t={leftPanels:_(n.filter(Boolean)),rightPanels:_(a.filter(Boolean))};return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:o=[],canopyRows:i=[],forestTypeRows:u=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:T=De(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:W=De(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const x=p("woodland-town","林地面积分布",K(me(e),ee),"column",{span:1,variant:"plain",lineOverlay:!0}),L=p("woodland-type","林地类型结构",K(n,ee),"donut",{span:1,variant:"ring"}),E=p("woodland-protection","公益林保护等级",K(D(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),$=p("woodland-ownership","林地权属结构",K(D(r),ee),"structure",{span:1}),C=p("woodland-quality","优势树种面积",F(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=p("woodland-origin","林地起源结构",D(l),"structure",{span:1}),Y=p("woodland-age","林龄组结构",F(o,6),"column",{span:1}),J=p("woodland-canopy","郁闭度结构",K(F(i,6),ee),"donut",{span:1,fixedType:!0}),S=p("woodland-area-scale","林地图斑规模",a,"column",{span:1}),I=p("woodland-forest-type","森林类别结构",F(u,6),"bar",{span:1}),V=p("woodland-manage-level","管护等级分布",F(c,6),"bar",{span:1}),ae=p("woodland-public-rank","公益林面积排行",F(v,6),"bar",{span:1,variant:"distribution"}),M=p("woodland-owner-rank","权属单位排行",F(m,6),"bar",{span:1}),X=p("woodland-type-town","乡镇类型构成",F(y,6),"bar",{span:1,variant:"distribution"}),he=p("woodland-quality-level","林地质量等级",D(N),"donut",{span:1}),xe=p("woodland-town-concentration","林地集中度",K(D(T),ee),"structure",{span:1}),Ae=p("woodland-type-concentration","类型集中度",K(D(W),ee),"rose",{span:1}),Le=_(z([x,L,E,$],[S,M,I,C])),Fe=_(z([C,q,Y,J],[S,M,I,ae,xe,Ae]));return{leftPanels:Le,rightPanels:Fe,left:Le[0],right:Fe[0],layerPanels:Fn({townPanel:x,typePanel:L,scalePanel:S,protectionPanel:E,ownershipPanel:$,qualityPanel:C,originPanel:q,agePanel:Y,canopyPanel:J,forestTypePanel:I,manageLevelPanel:V,regionPanel:ae,ownerPanel:M,typeTownPanel:X,qualityLevelPanel:he,townConcentrationPanel:xe,typeConcentrationPanel:Ae})}}function Fn(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:o,agePanel:i,canopyPanel:u,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:T,townConcentrationPanel:W,typeConcentrationPanel:x}=e;return{"woodland-distribution":{leftPanels:_(z([n,a,r,s],[t,c,y])),rightPanels:_(z([l,o,i,u],[t,y,m,W,x,T]))},"woodland-protection":{leftPanels:_(z([r,c,v,n],[a,s,t])),rightPanels:_(z([m,l,o,s],[y,a,t]))},"woodland-type":{leftPanels:_(z([a,n,N,t],[r,s,c])),rightPanels:_(z([l,o,r,s],[i,u,y,x]))},"woodland-quality":{leftPanels:_(z([l,o,i,u],[T,t,a])),rightPanels:_(z([n,a,r,s],[c,y,t]))},"woodland-ownership":{leftPanels:_(z([s,y,n,a],[t,r,l])),rightPanels:_(z([r,l,o,t],[c,i,u]))}}}function Cn(e=cn){const n=e.map(s=>h(b({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-O(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return D(n.sort((s,l)=>{const o=r.indexOf(s.name),i=r.indexOf(l.name);return(o===-1?99:o)-(i===-1?99:i)}),Z)}function En(){return f(this,null,function*(){return We()})}function He(e=[],n={},a=[]){var r;const t=(r=A(n==null?void 0:n.xc))!=null?r:O(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function Bn(e={},n=[]){return h(b({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function $n(e=[]){const n=O(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>h(b({},a),{color:Dn(a.name),extra:w(G(a.value,n))?`${w(G(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function Dn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var o;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(o=A(e==null?void 0:e.xc))!=null?o:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(i=>Number(i.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(G(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(G(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(G(l==null?void 0:l.value,t))}].filter(i=>i.value!==void 0)}function We(){return{levelRows:Cn(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function ze(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),o=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),i=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=We().levelRows,v=D([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=D([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),T=Ze({core:r,townRows:s,grassTypeRows:o,grassLevelRows:v,healthRows:m,productivityRows:i,edibleYieldRows:N,forageRows:y,degradationRows:c}),W=h(b({status:"fallback"},T),{top:He(r,{xc:_e,unit:"万吨"},l)});return ie(W,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:B,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],B,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],o=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),B),i=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),u=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:on,unit:"万吨"},townAreaRows:o,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:i,muYieldRows:l,edibleYieldRows:u,edibleMuRows:c,typeTownRows:o,levelTownRows:o,minTownRows:o}),m=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ie(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),u=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},u);return ie(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function R(e,n=[]){return e().catch(()=>n)}function Re(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=i=>i,max:l=Number.POSITIVE_INFINITY}=n,o=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(i=>h(b({},i),{name:s(i.name)}));return D(o).filter(i=>Number(i.value)>0).slice(0,l)}function In(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function zn(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:o,degradationRows:i}){const u=p("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=p("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=p("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=p("grassland-edible-yield","可食鲜草产量分布",F(l,10),"column",{span:1,variant:"slim"}),y=p("grassland-degradation","草地退化统计",$n(i),"bar",{span:1,variant:"degradation"}),N=p("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),T=p("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),W=p("grassland-forage-capacity","饲草供给",o,"bar",{span:1,variant:"capacity"}),x=_([u,v,y,T]),L=_([m,c,N,W]);return{core:e,leftPanels:x,rightPanels:L,left:x[0],right:L[0],layerPanels:Ln({leftPanels:x,rightPanels:L})}}function Gn(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],o=n.edibleRows||[],i=n.edibleMuRows||[],u=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(we(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=ge(r,n.muYieldRows||[],{showMuYieldExtra:!1}),T=we(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),W=le(we(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(M=>h(b({},M),{name:Ie(M.name)})),B,{key:"wetland-level-unclassified",name:"未分级湿地"}),x=se(le(gn(l),B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),L=ge(o,i,{showMuYieldExtra:!1}),E=we(i,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(i==null?void 0:i[0],["unit"])||"斤",max:U.length}),$=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),C=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.length)||0}类`}}),B),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),Y=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:M=>Ie(d(M,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.filter(he=>Xe(he,["acreage","areaWanMu","value"])>0).length)||0}型`}}),B),S=xn(m,L,N),I=ne(a,"wetland"),V=W.find(M=>/^1级/.test(M.name))||W[0],ae=je({yieldSummary:S,townAreaRows:$,typeRows:y,levelRows:W,yieldRows:N,minTypeRows:x,muYieldRows:T,edibleYieldRows:L,edibleMuRows:E,typeTownRows:C,levelTownRows:Y.length?Y:q,minTownRows:J});return b({core:I,top:[I[0],I[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:V==null?void 0:V.value,unit:(V==null?void 0:V.unit)||"万亩"}].filter(Boolean)},ae)}function Yn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function Kn(e,n=[]){const a=new Set(n);return Yn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=Kn(e,n);return b(h(b({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function ue(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function On(e,n,a){var W,x,L,E,$;const t=ue(e,["grassland-area","grassland-total-area","草地面积"]),r=ue(n,["wetland-area","湿地面积"]),s=ue(a,["woodland-area","林地总面积"]),[l,o]=Me(Z,637.13,119.31),i=ue(e,["basic-grassland","basic-grassland-area","基本草原"]),u=ue(e,["general-grassland","general-grassland-area","一般草原"]),c=D([{key:"overview-basic-grassland",name:"基本草原",value:w((W=i==null?void 0:i.value)!=null?W:l),unit:(i==null?void 0:i.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((x=u==null?void 0:u.value)!=null?x:o),unit:(u==null?void 0:u.unit)||"万亩",color:"#FFE06B"}]),v=D([{key:"overview-grassland-area",name:"草地资源",value:w((L=t==null?void 0:t.value)!=null?L:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((E=r==null?void 0:r.value)!=null?E:B),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w(($=s==null?void 0:s.value)!=null?$:un),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","column",{variant:"water"}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"plain",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[p("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),p("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],T=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(O(v)),unit:"万亩"},h(b({},v[0]),{name:"草地面积"}),h(b({},v[1]),{name:"湿地面积"}),h(b({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(C=>(C==null?void 0:C.status)==="error")?"fallback":"success",core:T,top:T,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return On(t,r,s)}if(e==="woodland"){const[t,r,s,l,o]=yield Promise.all([Q("/woodland/distribution").then(g),R(()=>f(this,null,function*(){return g(yield Q("/woodland/types"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/protection"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/quality"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/ownership"))}),{})]),i=ne(wn(t),e),u=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[i[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:G(c,u)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),T=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),W=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),x=k((o==null?void 0:o.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,u)}),L=k((o==null?void 0:o.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),E=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),$=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),C=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),Y=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>{const X=w(d(M,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(M)}}),S=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),I=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),V=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:T,ownershipRows:L,qualityRows:W,originRows:q,ageRows:Y,canopyRows:J,forestTypeRows:E,manageLevelRows:$,regionRows:C,ownerRows:x,typeTownRows:I,qualityLevelRows:S}),ae=b({status:"success",core:i,top:v},V);return ie(ae,e,n)}if(e==="grassland"){const[t,r,s,l,o,i,u,c,v]=yield Promise.all([P("/basic_grassland/overview").then(g),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/yieldProportion"))}),{}),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return En()}),We()),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_health/proportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/edibleXcDistribution"))}))]),m=o.levelRows||[],y=ne(fn(t),e),N=ge(s||[],l||[],{showMuYieldExtra:!1}),T=Bn(r,N),W=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),x=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),L=Re(Qe(i||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Se}),E=Re(u||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:In}),$=Re(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:zn}),C=ge(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:x,grassTypeRows:L,grassLevelRows:E,healthRows:$,productivityRows:W,edibleYieldRows:C,forageRows:Je(T,N),degradationRows:m}),Y=h(b({status:"success"},q),{top:He(y,T,N)});return ie(Y,e,n)}if(e==="wetland"){const[t,r,s,l,o,i,u,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland_grassland_level"}))})]),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcMuDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/yieldProportion"))}),{})]),T=Gn(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:o,minTypeRows:i,edibleRows:u,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),W=h(b({status:"success"},T),{left:T.leftPanels[0],right:T.rightPanels[0]});return ie(W,e,n)}return ze(e,n)}catch(t){return h(b({},ze(e,n)),{status:"error",error:t})}})}function Hn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield Be(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ye(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield Be(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ye(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ye(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ye(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{jn as a,Hn as b,Un as c,ke as g}; diff --git a/docs/assets/park-ee0533e0-balabala-1784132466083.png b/docs/assets/park-ee0533e0-balabala-1784132792831.png similarity index 100% rename from docs/assets/park-ee0533e0-balabala-1784132466083.png rename to docs/assets/park-ee0533e0-balabala-1784132792831.png diff --git a/docs/assets/pathLine2-d4134d4b-balabala-1784132466083.png b/docs/assets/pathLine2-d4134d4b-balabala-1784132792831.png similarity index 100% rename from docs/assets/pathLine2-d4134d4b-balabala-1784132466083.png rename to docs/assets/pathLine2-d4134d4b-balabala-1784132792831.png diff --git a/docs/assets/right-kuang-b1937caf-balabala-1784132466083.svg b/docs/assets/right-kuang-b1937caf-balabala-1784132792831.svg similarity index 100% rename from docs/assets/right-kuang-b1937caf-balabala-1784132466083.svg rename to docs/assets/right-kuang-b1937caf-balabala-1784132792831.svg diff --git a/docs/assets/ring2-a1b91808-balabala-1784132466083.png b/docs/assets/ring2-a1b91808-balabala-1784132792831.png similarity index 100% rename from docs/assets/ring2-a1b91808-balabala-1784132466083.png rename to docs/assets/ring2-a1b91808-balabala-1784132792831.png diff --git a/docs/assets/ring3-fe0f60d7-balabala-1784132466083.png b/docs/assets/ring3-fe0f60d7-balabala-1784132792831.png similarity index 100% rename from docs/assets/ring3-fe0f60d7-balabala-1784132466083.png rename to docs/assets/ring3-fe0f60d7-balabala-1784132792831.png diff --git a/docs/assets/ring4-f2e324d6-balabala-1784132466083.png b/docs/assets/ring4-f2e324d6-balabala-1784132792831.png similarity index 100% rename from docs/assets/ring4-f2e324d6-balabala-1784132466083.png rename to docs/assets/ring4-f2e324d6-balabala-1784132792831.png diff --git a/docs/assets/rotationBorder1-2ce8e0ef-balabala-1784132466083.png b/docs/assets/rotationBorder1-2ce8e0ef-balabala-1784132792831.png similarity index 100% rename from docs/assets/rotationBorder1-2ce8e0ef-balabala-1784132466083.png rename to docs/assets/rotationBorder1-2ce8e0ef-balabala-1784132792831.png diff --git a/docs/assets/rotationBorder2-7496b968-balabala-1784132466083.png b/docs/assets/rotationBorder2-7496b968-balabala-1784132792831.png similarity index 100% rename from docs/assets/rotationBorder2-7496b968-balabala-1784132466083.png rename to docs/assets/rotationBorder2-7496b968-balabala-1784132792831.png diff --git a/docs/assets/saoguang-ccf84a88-balabala-1784132466083.svg b/docs/assets/saoguang-ccf84a88-balabala-1784132792831.svg similarity index 100% rename from docs/assets/saoguang-ccf84a88-balabala-1784132466083.svg rename to docs/assets/saoguang-ccf84a88-balabala-1784132792831.svg diff --git a/docs/assets/screen2Standard-483e466b-1784132466083.js b/docs/assets/screen2Standard-41868f75-1784132792831.js similarity index 99% rename from docs/assets/screen2Standard-483e466b-1784132466083.js rename to docs/assets/screen2Standard-41868f75-1784132792831.js index d55aba4..a75c675 100644 --- a/docs/assets/screen2Standard-483e466b-1784132466083.js +++ b/docs/assets/screen2Standard-41868f75-1784132792831.js @@ -1,4 +1,4 @@ -var Jc=Object.defineProperty,$c=Object.defineProperties;var Qc=Object.getOwnPropertyDescriptors;var Na=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var hs=Math.pow,Ua=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Oa=(i,t)=>{for(var e in t||(t={}))th.call(t,e)&&Ua(i,e,t[e]);if(Na)for(var e of Na(t))eh.call(t,e)&&Ua(i,e,t[e]);return i},Fa=(i,t)=>$c(i,Qc(t));var Ba=(i,t,e)=>new Promise((n,r)=>{var s=l=>{try{a(e.next(l))}catch(c){r(c)}},o=l=>{try{a(e.throw(l))}catch(c){r(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(i,t)).next())});import{g as Pn}from"./index-e9f36657-1784132466083.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1784132466083.js";/** +var Jc=Object.defineProperty,$c=Object.defineProperties;var Qc=Object.getOwnPropertyDescriptors;var Na=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var hs=Math.pow,Ua=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Oa=(i,t)=>{for(var e in t||(t={}))th.call(t,e)&&Ua(i,e,t[e]);if(Na)for(var e of Na(t))eh.call(t,e)&&Ua(i,e,t[e]);return i},Fa=(i,t)=>$c(i,Qc(t));var Ba=(i,t,e)=>new Promise((n,r)=>{var s=l=>{try{a(e.next(l))}catch(c){r(c)}},o=l=>{try{a(e.throw(l))}catch(c){r(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(i,t)).next())});import{g as Pn}from"./index-e9f36657-1784132792831.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1784132792831.js";/** * @license * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT @@ -3761,4 +3761,4 @@ void main() { } -}`;class Ag{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const r=new xe,s=t.properties.get(r);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,r=new An({extensions:{fragDepth:!0},vertexShader:bg,fragmentShader:Tg,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ce(new Qi(20,20),r)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class wg extends Xn{constructor(t,e){super();const n=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,d=null,m=null,g=null;const x=new Ag,f=e.getContextAttributes();let p=null,E=null;const _=[],b=[],I=new tt;let L=null;const P=new Re;P.layers.enable(1),P.viewport=new ee;const V=new Re;V.layers.enable(2),V.viewport=new ee;const lt=[P,V],y=new Sg;y.layers.enable(1),y.layers.enable(2);let A=null,Z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getGripSpace()},this.getHand=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getHandSpace()};function rt(G){const nt=b.indexOf(G.inputSource);if(nt===-1)return;const gt=_[nt];gt!==void 0&&(gt.update(G.inputSource,G.frame,c||o),gt.dispatchEvent({type:G.type,data:G.inputSource}))}function D(){r.removeEventListener("select",rt),r.removeEventListener("selectstart",rt),r.removeEventListener("selectend",rt),r.removeEventListener("squeeze",rt),r.removeEventListener("squeezestart",rt),r.removeEventListener("squeezeend",rt),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",z);for(let G=0;G<_.length;G++){const nt=b[G];nt!==null&&(b[G]=null,_[G].disconnect(nt))}A=null,Z=null,x.reset(),t.setRenderTarget(p),m=null,d=null,u=null,r=null,E=null,Lt.stop(),n.isPresenting=!1,t.setPixelRatio(L),t.setSize(I.width,I.height,!1),n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(G){s=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(G){a=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(G){c=G},this.getBaseLayer=function(){return d!==null?d:m},this.getBinding=function(){return u},this.getFrame=function(){return g},this.getSession=function(){return r},this.setSession=function(G){return Ba(this,null,function*(){if(r=G,r!==null){if(p=t.getRenderTarget(),r.addEventListener("select",rt),r.addEventListener("selectstart",rt),r.addEventListener("selectend",rt),r.addEventListener("squeeze",rt),r.addEventListener("squeezestart",rt),r.addEventListener("squeezeend",rt),r.addEventListener("end",D),r.addEventListener("inputsourceschange",z),f.xrCompatible!==!0&&(yield e.makeXRCompatible()),L=t.getPixelRatio(),t.getSize(I),r.renderState.layers===void 0||t.capabilities.isWebGL2===!1){const nt={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,e,nt),r.updateRenderState({baseLayer:m}),t.setPixelRatio(1),t.setSize(m.framebufferWidth,m.framebufferHeight,!1),E=new kn(m.framebufferWidth,m.framebufferHeight,{format:Oe,type:Sn,colorSpace:t.outputColorSpace,stencilBuffer:f.stencil})}else{let nt=null,gt=null,Mt=null;f.depth&&(Mt=f.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,nt=f.stencil?Si:Hn,gt=f.stencil?zn:vn);const bt={colorFormat:e.RGBA8,depthFormat:Mt,scaleFactor:s};u=new XRWebGLBinding(r,e),d=u.createProjectionLayer(bt),r.updateRenderState({layers:[d]}),t.setPixelRatio(1),t.setSize(d.textureWidth,d.textureHeight,!1),E=new kn(d.textureWidth,d.textureHeight,{format:Oe,type:Sn,depthTexture:new _c(d.textureWidth,d.textureHeight,gt,void 0,void 0,void 0,void 0,void 0,void 0,nt),stencilBuffer:f.stencil,colorSpace:t.outputColorSpace,samples:f.antialias?4:0});const xt=t.properties.get(E);xt.__ignoreDepthValues=d.ignoreDepthValues}E.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=yield r.requestReferenceSpace(a),Lt.setContext(r),Lt.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function z(G){for(let nt=0;nt=0&&(b[Mt]=null,_[Mt].disconnect(gt))}for(let nt=0;nt=b.length){b.push(gt),Mt=xt;break}else if(b[xt]===null){b[xt]=gt,Mt=xt;break}if(Mt===-1)break}const bt=_[Mt];bt&&bt.connect(gt)}}const O=new C,Y=new C;function X(G,nt,gt){O.setFromMatrixPosition(nt.matrixWorld),Y.setFromMatrixPosition(gt.matrixWorld);const Mt=O.distanceTo(Y),bt=nt.projectionMatrix.elements,xt=gt.projectionMatrix.elements,Ot=bt[14]/(bt[10]-1),At=bt[14]/(bt[10]+1),R=(bt[9]+1)/bt[5],ct=(bt[9]-1)/bt[5],W=(bt[8]-1)/bt[0],at=(xt[8]+1)/xt[0],q=Ot*W,Et=Ot*at,ft=Mt/(-W+at),M=ft*-W;nt.matrixWorld.decompose(G.position,G.quaternion,G.scale),G.translateX(M),G.translateZ(ft),G.matrixWorld.compose(G.position,G.quaternion,G.scale),G.matrixWorldInverse.copy(G.matrixWorld).invert();const v=Ot+ft,N=At+ft,et=q-M,J=Et+(Mt-M),j=R*At/N*v,yt=ct*At/N*v;G.projectionMatrix.makePerspective(et,J,j,yt,v,N),G.projectionMatrixInverse.copy(G.projectionMatrix).invert()}function k(G,nt){nt===null?G.matrixWorld.copy(G.matrix):G.matrixWorld.multiplyMatrices(nt.matrixWorld,G.matrix),G.matrixWorldInverse.copy(G.matrixWorld).invert()}this.updateCamera=function(G){if(r===null)return;x.texture!==null&&(G.near=x.depthNear,G.far=x.depthFar),y.near=V.near=P.near=G.near,y.far=V.far=P.far=G.far,(A!==y.near||Z!==y.far)&&(r.updateRenderState({depthNear:y.near,depthFar:y.far}),A=y.near,Z=y.far,P.near=A,P.far=Z,V.near=A,V.far=Z,P.updateProjectionMatrix(),V.updateProjectionMatrix(),G.updateProjectionMatrix());const nt=G.parent,gt=y.cameras;k(y,nt);for(let Mt=0;Mt0&&(f.alphaTest.value=p.alphaTest);const E=t.get(p).envMap;if(E&&(f.envMap.value=E,f.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=p.reflectivity,f.ior.value=p.ior,f.refractionRatio.value=p.refractionRatio),p.lightMap){f.lightMap.value=p.lightMap;const _=i._useLegacyLights===!0?Math.PI:1;f.lightMapIntensity.value=p.lightMapIntensity*_,e(p.lightMap,f.lightMapTransform)}p.aoMap&&(f.aoMap.value=p.aoMap,f.aoMapIntensity.value=p.aoMapIntensity,e(p.aoMap,f.aoMapTransform))}function o(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform))}function a(f,p){f.dashSize.value=p.dashSize,f.totalSize.value=p.dashSize+p.gapSize,f.scale.value=p.scale}function l(f,p,E,_){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.size.value=p.size*E,f.scale.value=_*.5,p.map&&(f.map.value=p.map,e(p.map,f.uvTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function c(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.rotation.value=p.rotation,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function h(f,p){f.specular.value.copy(p.specular),f.shininess.value=Math.max(p.shininess,1e-4)}function u(f,p){p.gradientMap&&(f.gradientMap.value=p.gradientMap)}function d(f,p){f.metalness.value=p.metalness,p.metalnessMap&&(f.metalnessMap.value=p.metalnessMap,e(p.metalnessMap,f.metalnessMapTransform)),f.roughness.value=p.roughness,p.roughnessMap&&(f.roughnessMap.value=p.roughnessMap,e(p.roughnessMap,f.roughnessMapTransform)),t.get(p).envMap&&(f.envMapIntensity.value=p.envMapIntensity)}function m(f,p,E){f.ior.value=p.ior,p.sheen>0&&(f.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),f.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(f.sheenColorMap.value=p.sheenColorMap,e(p.sheenColorMap,f.sheenColorMapTransform)),p.sheenRoughnessMap&&(f.sheenRoughnessMap.value=p.sheenRoughnessMap,e(p.sheenRoughnessMap,f.sheenRoughnessMapTransform))),p.clearcoat>0&&(f.clearcoat.value=p.clearcoat,f.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(f.clearcoatMap.value=p.clearcoatMap,e(p.clearcoatMap,f.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,e(p.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(f.clearcoatNormalMap.value=p.clearcoatNormalMap,e(p.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Pe&&f.clearcoatNormalScale.value.negate())),p.iridescence>0&&(f.iridescence.value=p.iridescence,f.iridescenceIOR.value=p.iridescenceIOR,f.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(f.iridescenceMap.value=p.iridescenceMap,e(p.iridescenceMap,f.iridescenceMapTransform)),p.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=p.iridescenceThicknessMap,e(p.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),p.transmission>0&&(f.transmission.value=p.transmission,f.transmissionSamplerMap.value=E.texture,f.transmissionSamplerSize.value.set(E.width,E.height),p.transmissionMap&&(f.transmissionMap.value=p.transmissionMap,e(p.transmissionMap,f.transmissionMapTransform)),f.thickness.value=p.thickness,p.thicknessMap&&(f.thicknessMap.value=p.thicknessMap,e(p.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=p.attenuationDistance,f.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(f.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(f.anisotropyMap.value=p.anisotropyMap,e(p.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=p.specularIntensity,f.specularColor.value.copy(p.specularColor),p.specularColorMap&&(f.specularColorMap.value=p.specularColorMap,e(p.specularColorMap,f.specularColorMapTransform)),p.specularIntensityMap&&(f.specularIntensityMap.value=p.specularIntensityMap,e(p.specularIntensityMap,f.specularIntensityMapTransform))}function g(f,p){p.matcap&&(f.matcap.value=p.matcap)}function x(f,p){const E=t.get(p).light;f.referencePosition.value.setFromMatrixPosition(E.matrixWorld),f.nearDistance.value=E.shadow.camera.near,f.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function Cg(i,t,e,n){let r={},s={},o=[];const a=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(E,_){const b=_.program;n.uniformBlockBinding(E,b)}function c(E,_){let b=r[E.id];b===void 0&&(g(E),b=h(E),r[E.id]=b,E.addEventListener("dispose",f));const I=_.program;n.updateUBOMapping(E,I);const L=t.render.frame;s[E.id]!==L&&(d(E),s[E.id]=L)}function h(E){const _=u();E.__bindingPointIndex=_;const b=i.createBuffer(),I=E.__size,L=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,I,L),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function u(){for(let E=0;E0&&(b+=I-L),E.__size=b,E.__cache={},this}function x(E){const _={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(_.boundary=4,_.storage=4):E.isVector2?(_.boundary=8,_.storage=8):E.isVector3||E.isColor?(_.boundary=16,_.storage=12):E.isVector4?(_.boundary=16,_.storage=16):E.isMatrix3?(_.boundary=48,_.storage=48):E.isMatrix4?(_.boundary=64,_.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),_}function f(E){const _=E.target;_.removeEventListener("dispose",f);const b=o.indexOf(_.__bindingPointIndex);o.splice(b,1),i.deleteBuffer(r[_.id]),delete r[_.id],delete s[_.id]}function p(){for(const E in r)i.deleteBuffer(r[E]);o=[],r={},s={}}return{bind:l,update:c,dispose:p}}class Ec{constructor(t={}){const{canvas:e=Mu(),context:n=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let d;n!==null?d=n.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),g=new Int32Array(4);let x=null,f=null;const p=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=ve,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;const _=this;let b=!1,I=0,L=0,P=null,V=-1,lt=null;const y=new ee,A=new ee;let Z=null;const rt=new Ut(0);let D=0,z=e.width,O=e.height,Y=1,X=null,k=null;const $=new ee(0,0,z,O),K=new ee(0,0,z,O);let mt=!1;const Lt=new va;let G=!1,nt=!1,gt=null;const Mt=new Yt,bt=new tt,xt=new C,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function At(){return P===null?Y:1}let R=n;function ct(S,U){for(let B=0;B{function vt(){if(H.forEach(function(Tt){ft.get(Tt).currentProgram.isReady()&&H.delete(Tt)}),H.size===0){F(S);return}setTimeout(vt,10)}W.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let qt=null;function te(S){qt&&qt(S)}function ge(){le.stop()}function Kt(){le.start()}const le=new mc;le.setAnimationLoop(te),typeof self!="undefined"&&le.setContext(self),this.setAnimationLoop=function(S){qt=S,dt.setAnimationLoop(S),S===null?le.stop():le.start()},dt.addEventListener("sessionstart",ge),dt.addEventListener("sessionend",Kt),this.render=function(S,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;S.matrixWorldAutoUpdate===!0&&S.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(U),U=dt.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,U,P),f=Ct.get(S,E.length),f.init(),E.push(f),Mt.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Lt.setFromProjectionMatrix(Mt),nt=this.localClippingEnabled,G=Ft.init(this.clippingPlanes,nt),x=_t.get(S,p.length),x.init(),p.push(x),be(S,U,0,_.sortObjects),x.finish(),_.sortObjects===!0&&x.sort(X,k),this.info.render.frame++,G===!0&&Ft.beginShadows();const B=f.state.shadowsArray;if(Q.render(B,S,U),G===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&jt.render(x,S),f.setupLights(_._useLegacyLights),U.isArrayCamera){const H=U.cameras;for(let F=0,vt=H.length;F0?f=E[E.length-1]:f=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function be(S,U,B,H){if(S.visible===!1)return;if(S.layers.test(U.layers)){if(S.isGroup)B=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(U);else if(S.isLight)f.pushLight(S),S.castShadow&&f.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||Lt.intersectsSprite(S)){H&&xt.setFromMatrixPosition(S.matrixWorld).applyMatrix4(Mt);const Tt=j.update(S),Dt=S.material;Dt.visible&&x.push(S,Tt,Dt,B,xt.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(!S.frustumCulled||Lt.intersectsObject(S))){const Tt=j.update(S),Dt=S.material;if(H&&(S.boundingSphere!==void 0?(S.boundingSphere===null&&S.computeBoundingSphere(),xt.copy(S.boundingSphere.center)):(Tt.boundingSphere===null&&Tt.computeBoundingSphere(),xt.copy(Tt.boundingSphere.center)),xt.applyMatrix4(S.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Nt=Tt.groups;for(let kt=0,Bt=Nt.length;kt0&&qc(F,vt,U,B),H&&q.viewport(y.copy(H)),F.length>0&&nr(F,U,B),vt.length>0&&nr(vt,U,B),Tt.length>0&&nr(Tt,U,B),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function qc(S,U,B,H){if((B.isScene===!0?B.overrideMaterial:null)!==null)return;const vt=at.isWebGL2;gt===null&&(gt=new kn(1,1,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Yi:Sn,minFilter:Bn,samples:vt?4:0})),_.getDrawingBufferSize(bt),vt?gt.setSize(bt.x,bt.y):gt.setSize(jr(bt.x),jr(bt.y));const Tt=_.getRenderTarget();_.setRenderTarget(gt),_.getClearColor(rt),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();const Dt=_.toneMapping;_.toneMapping=Mn,nr(S,B,H),M.updateMultisampleRenderTarget(gt),M.updateRenderTargetMipmap(gt);let Nt=!1;for(let kt=0,Bt=U.length;kt0),Ht=!!B.morphAttributes.position,ce=!!B.morphAttributes.normal,Le=!!B.morphAttributes.color;let pe=Mn;H.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(pe=_.toneMapping);const Je=B.morphAttributes.position||B.morphAttributes.normal||B.morphAttributes.color,ie=Je!==void 0?Je.length:0,Wt=ft.get(H),as=f.state.lights;if(G===!0&&(nt===!0||S!==lt)){const Ne=S===lt&&H.id===V;Ft.setState(H,S,Ne)}let se=!1;H.version===Wt.__version?(Wt.needsLights&&Wt.lightsStateVersion!==as.state.version||Wt.outputColorSpace!==Dt||F.isBatchedMesh&&Wt.batching===!1||!F.isBatchedMesh&&Wt.batching===!0||F.isInstancedMesh&&Wt.instancing===!1||!F.isInstancedMesh&&Wt.instancing===!0||F.isSkinnedMesh&&Wt.skinning===!1||!F.isSkinnedMesh&&Wt.skinning===!0||F.isInstancedMesh&&Wt.instancingColor===!0&&F.instanceColor===null||F.isInstancedMesh&&Wt.instancingColor===!1&&F.instanceColor!==null||Wt.envMap!==Nt||H.fog===!0&&Wt.fog!==vt||Wt.numClippingPlanes!==void 0&&(Wt.numClippingPlanes!==Ft.numPlanes||Wt.numIntersection!==Ft.numIntersection)||Wt.vertexAlphas!==kt||Wt.vertexTangents!==Bt||Wt.morphTargets!==Ht||Wt.morphNormals!==ce||Wt.morphColors!==Le||Wt.toneMapping!==pe||at.isWebGL2===!0&&Wt.morphTargetsCount!==ie)&&(se=!0):(se=!0,Wt.__version=H.version);let Rn=Wt.currentProgram;se===!0&&(Rn=ir(H,U,F));let Da=!1,Ci=!1,os=!1;const Me=Rn.getUniforms(),Cn=Wt.uniforms;if(q.useProgram(Rn.program)&&(Da=!0,Ci=!0,os=!0),H.id!==V&&(V=H.id,Ci=!0),Da||lt!==S){Me.setValue(R,"projectionMatrix",S.projectionMatrix),Me.setValue(R,"viewMatrix",S.matrixWorldInverse);const Ne=Me.map.cameraPosition;Ne!==void 0&&Ne.setValue(R,xt.setFromMatrixPosition(S.matrixWorld)),at.logarithmicDepthBuffer&&Me.setValue(R,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&Me.setValue(R,"isOrthographic",S.isOrthographicCamera===!0),lt!==S&&(lt=S,Ci=!0,os=!0)}if(F.isSkinnedMesh){Me.setOptional(R,F,"bindMatrix"),Me.setOptional(R,F,"bindMatrixInverse");const Ne=F.skeleton;Ne&&(at.floatVertexTextures?(Ne.boneTexture===null&&Ne.computeBoneTexture(),Me.setValue(R,"boneTexture",Ne.boneTexture,M)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}F.isBatchedMesh&&(Me.setOptional(R,F,"batchingTexture"),Me.setValue(R,"batchingTexture",F._matricesTexture,M));const ls=B.morphAttributes;if((ls.position!==void 0||ls.normal!==void 0||ls.color!==void 0&&at.isWebGL2===!0)&&Gt.update(F,B,Rn),(Ci||Wt.receiveShadow!==F.receiveShadow)&&(Wt.receiveShadow=F.receiveShadow,Me.setValue(R,"receiveShadow",F.receiveShadow)),H.isMeshGouraudMaterial&&H.envMap!==null&&(Cn.envMap.value=Nt,Cn.flipEnvMap.value=Nt.isCubeTexture&&Nt.isRenderTargetTexture===!1?-1:1),Ci&&(Me.setValue(R,"toneMappingExposure",_.toneMappingExposure),Wt.needsLights&&jc(Cn,os),vt&&H.fog===!0&&ut.refreshFogUniforms(Cn,vt),ut.refreshMaterialUniforms(Cn,H,Y,O,gt),zr.upload(R,Pa(Wt),Cn,M)),H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(zr.upload(R,Pa(Wt),Cn,M),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&Me.setValue(R,"center",F.center),Me.setValue(R,"modelViewMatrix",F.modelViewMatrix),Me.setValue(R,"normalMatrix",F.normalMatrix),Me.setValue(R,"modelMatrix",F.matrixWorld),H.isShaderMaterial||H.isRawShaderMaterial){const Ne=H.uniformsGroups;for(let cs=0,Kc=Ne.length;cs0&&M.useMultisampledRTT(S)===!1?F=ft.get(S).__webglMultisampledFramebuffer:Array.isArray(Bt)?F=Bt[B]:F=Bt,y.copy(S.viewport),A.copy(S.scissor),Z=S.scissorTest}else y.copy($).multiplyScalar(Y).floor(),A.copy(K).multiplyScalar(Y).floor(),Z=mt;if(q.bindFramebuffer(R.FRAMEBUFFER,F)&&at.drawBuffers&&H&&q.drawBuffers(S,F),q.viewport(y),q.scissor(A),q.setScissorTest(Z),vt){const Nt=ft.get(S.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Nt.__webglTexture,B)}else if(Tt){const Nt=ft.get(S.texture),kt=U||0;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Nt.__webglTexture,B||0,kt)}V=-1},this.readRenderTargetPixels=function(S,U,B,H,F,vt,Tt){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=ft.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Tt!==void 0&&(Dt=Dt[Tt]),Dt){q.bindFramebuffer(R.FRAMEBUFFER,Dt);try{const Nt=S.texture,kt=Nt.format,Bt=Nt.type;if(kt!==Oe&&pt.convert(kt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ht=Bt===Yi&&(W.has("EXT_color_buffer_half_float")||at.isWebGL2&&W.has("EXT_color_buffer_float"));if(Bt!==Sn&&pt.convert(Bt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===je&&(at.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float")))&&!Ht){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=S.width-H&&B>=0&&B<=S.height-F&&R.readPixels(U,B,H,F,pt.convert(kt),pt.convert(Bt),vt)}finally{const Nt=P!==null?ft.get(P).__webglFramebuffer:null;q.bindFramebuffer(R.FRAMEBUFFER,Nt)}}},this.copyFramebufferToTexture=function(S,U,B=0){const H=Math.pow(2,-B),F=Math.floor(U.image.width*H),vt=Math.floor(U.image.height*H);M.setTexture2D(U,0),R.copyTexSubImage2D(R.TEXTURE_2D,B,0,0,S.x,S.y,F,vt),q.unbindTexture()},this.copyTextureToTexture=function(S,U,B,H=0){const F=U.image.width,vt=U.image.height,Tt=pt.convert(B.format),Dt=pt.convert(B.type);M.setTexture2D(B,0),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,B.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,B.unpackAlignment),U.isDataTexture?R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,F,vt,Tt,Dt,U.image.data):U.isCompressedTexture?R.compressedTexSubImage2D(R.TEXTURE_2D,H,S.x,S.y,U.mipmaps[0].width,U.mipmaps[0].height,Tt,U.mipmaps[0].data):R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,Tt,Dt,U.image),H===0&&B.generateMipmaps&&R.generateMipmap(R.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(S,U,B,H,F=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=S.max.x-S.min.x+1,Tt=S.max.y-S.min.y+1,Dt=S.max.z-S.min.z+1,Nt=pt.convert(H.format),kt=pt.convert(H.type);let Bt;if(H.isData3DTexture)M.setTexture3D(H,0),Bt=R.TEXTURE_3D;else if(H.isDataArrayTexture||H.isCompressedArrayTexture)M.setTexture2DArray(H,0),Bt=R.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,H.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,H.unpackAlignment);const Ht=R.getParameter(R.UNPACK_ROW_LENGTH),ce=R.getParameter(R.UNPACK_IMAGE_HEIGHT),Le=R.getParameter(R.UNPACK_SKIP_PIXELS),pe=R.getParameter(R.UNPACK_SKIP_ROWS),Je=R.getParameter(R.UNPACK_SKIP_IMAGES),ie=B.isCompressedTexture?B.mipmaps[F]:B.image;R.pixelStorei(R.UNPACK_ROW_LENGTH,ie.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ie.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,S.min.x),R.pixelStorei(R.UNPACK_SKIP_ROWS,S.min.y),R.pixelStorei(R.UNPACK_SKIP_IMAGES,S.min.z),B.isDataTexture||B.isData3DTexture?R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),R.compressedTexSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,ie.data)):R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie),R.pixelStorei(R.UNPACK_ROW_LENGTH,Ht),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ce),R.pixelStorei(R.UNPACK_SKIP_PIXELS,Le),R.pixelStorei(R.UNPACK_SKIP_ROWS,pe),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Je),F===0&&H.generateMipmaps&&R.generateMipmap(Bt),q.unbindTexture()},this.initTexture=function(S){S.isCubeTexture?M.setTextureCube(S,0):S.isData3DTexture?M.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?M.setTexture2DArray(S,0):M.setTexture2D(S,0),q.unbindTexture()},this.resetState=function(){I=0,L=0,P=null,q.reset(),zt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return an}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===pa?"display-p3":"srgb",e.unpackColorSpace=Qt.workingColorSpace===ts?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ve?Vn:ic}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Vn?ve:on}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Pg extends Ec{}Pg.prototype.isWebGL1Renderer=!0;class bc{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Ut(t),this.near=e,this.far=n}clone(){return new bc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Lg extends ae{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class Tc{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Be()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,s=this.stride;rt.far||e.push({distance:l,point:Ui.clone(),uv:qe.getInterpolation(Ui,Tr,Fi,Ar,dl,Vs,fl,new tt),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function wr(i,t,e,n,r,s){fi.subVectors(i,e).addScalar(.5).multiply(n),r!==void 0?(Oi.x=s*fi.x-r*fi.y,Oi.y=r*fi.x+s*fi.y):Oi.copy(fi),i.copy(t),i.x+=Oi.x,i.y+=Oi.y,i.applyMatrix4(Ac)}const pl=new C,ml=new ee,gl=new ee,Ig=new C,_l=new Yt,Rr=new C,Gs=new ln,vl=new Yt,ks=new Ti;class d0 extends Ce{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=qa,this.bindMatrix=new Yt,this.bindMatrixInverse=new Yt,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wn),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;d.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(d);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),E=Math.min(f.count,o.start+o.count);for(let _=p,b=E-1;_l)continue;d.applyMatrix4(this.matrixWorld);const L=t.ray.origin.distanceTo(d);Lt.far||e.push({distance:L,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class g0 extends xe{constructor(t,e,n,r,s,o,a,l,c){super(t,e,n,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ze{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(r),e.push(s),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=n[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,n[r]===o)return r/(s-1);const h=n[r],d=n[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=e||(o.isVector2?new tt:new C);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new C,r=[],s=[],o=[],a=new C,l=new Yt;for(let m=0;m<=t;m++){const g=m/t;r[m]=this.getTangentAt(g,new C)}s[0]=new C,o[0]=new C;let c=Number.MAX_VALUE;const h=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=t;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(ue(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(l.makeRotationAxis(a,g))}o[m].crossVectors(r[m],s[m])}if(e===!0){let m=Math.acos(ue(s[0].dot(s[t]),-1,1));m/=t,r[0].dot(a.crossVectors(s[0],s[t]))>0&&(m=-m);for(let g=1;g<=t;g++)s[g].applyMatrix4(l.makeRotationAxis(r[g],m*g)),o[g].crossVectors(r[g],s[g])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ma extends Ze{constructor(t=0,e=0,n=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new tt,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=r[(a-1)%s]:(Ir.subVectors(r[0],r[1]).add(r[0]),c=Ir);const u=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Pl(a,l.x,c.x,h.x,u.x),Pl(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=r[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qi extends Ll{constructor(t){super(t),this.uuid=Be(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n80*e){a=c=i[0],l=h=i[1];for(let g=e;gc&&(c=u),d>h&&(h=d);m=Math.max(c-a,h-l),m=m!==0?32767/m:0}return Zi(s,o,e,a,l,m,0),o}};function Uc(i,t,e,n,r){let s,o;if(r===f_(i,t,e,n)>0)for(s=t;s=t;s-=n)o=Dl(s,i[s],i[s+1],o);return o&&is(o,o.next)&&(Ji(o),o=o.next),o}function Wn(i,t){if(!i)return i;t||(t=i);let e=i,n;do if(n=!1,!e.steiner&&(is(e,e.next)||re(e.prev,e,e.next)===0)){if(Ji(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Zi(i,t,e,n,r,s,o){if(!i)return;!o&&s&&o_(i,n,r,s);let a=i,l,c;for(;i.prev!==i.next;){if(l=i.prev,c=i.next,s?Qg(i,n,r,s):$g(i)){t.push(l.i/e|0),t.push(i.i/e|0),t.push(c.i/e|0),Ji(i),i=c.next,a=c.next;continue}if(i=c,i===a){o?o===1?(i=t_(Wn(i),t,e),Zi(i,t,e,n,r,s,2)):o===2&&e_(i,t,e,n,r,s):Zi(Wn(i),t,e,n,r,s,1);break}}}function $g(i){const t=i.prev,e=i,n=i.next;if(re(t,e,n)>=0)return!1;const r=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=rs?r>o?r:o:s>o?s:o,m=a>l?a>c?a:c:l>c?l:c;let g=n.next;for(;g!==t;){if(g.x>=h&&g.x<=d&&g.y>=u&&g.y<=m&&_i(r,a,s,l,o,c,g.x,g.y)&&re(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Qg(i,t,e,n){const r=i.prev,s=i,o=i.next;if(re(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,h=r.y,u=s.y,d=o.y,m=al?a>c?a:c:l>c?l:c,f=h>u?h>d?h:d:u>d?u:d,p=oa(m,g,t,e,n),E=oa(x,f,t,e,n);let _=i.prevZ,b=i.nextZ;for(;_&&_.z>=p&&b&&b.z<=E;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0||(_=_.prevZ,b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;_&&_.z>=p;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;b&&b.z<=E;){if(b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function t_(i,t,e){let n=i;do{const r=n.prev,s=n.next.next;!is(r,s)&&Oc(r,n,n.next,s)&&Ki(r,s)&&Ki(s,r)&&(t.push(r.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ji(n),Ji(n.next),n=i=s),n=n.next}while(n!==i);return Wn(n)}function e_(i,t,e,n,r,s){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&h_(o,a)){let l=Fc(o,a);o=Wn(o,o.next),l=Wn(l,l.next),Zi(o,t,e,n,r,s,0),Zi(l,t,e,n,r,s,0);return}a=a.next}o=o.next}while(o!==i)}function n_(i,t,e,n){const r=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const d=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=s&&d>n&&(n=d,r=e.x=e.x&&e.x>=l&&s!==e.x&&_i(or.x||e.x===r.x&&a_(r,e)))&&(r=e,h=u)),e=e.next;while(e!==a);return r}function a_(i,t){return re(i.prev,i,t.prev)<0&&re(t.next,i,i.next)<0}function o_(i,t,e,n){let r=i;do r.z===0&&(r.z=oa(r.x,r.y,t,e,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,l_(r)}function l_(i){let t,e,n,r,s,o,a,l,c=1;do{for(e=i,i=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(r=e,e=e.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:i=r,r.prevZ=s,s=r;e=n}s.nextZ=null,c*=2}while(o>1);return i}function oa(i,t,e,n,r){return i=(i-e)*r|0,t=(t-n)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function c_(i){let t=i,e=i;do(t.x=(i-o)*(s-a)&&(i-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(r-o)*(n-a)}function h_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!u_(i,t)&&(Ki(i,t)&&Ki(t,i)&&d_(i,t)&&(re(i.prev,i,t.prev)||re(i,t.prev,t))||is(i,t)&&re(i.prev,i,i.next)>0&&re(t.prev,t,t.next)>0)}function re(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function is(i,t){return i.x===t.x&&i.y===t.y}function Oc(i,t,e,n){const r=Ur(re(i,t,e)),s=Ur(re(i,t,n)),o=Ur(re(e,n,i)),a=Ur(re(e,n,t));return!!(r!==s&&o!==a||r===0&&Nr(i,e,t)||s===0&&Nr(i,n,t)||o===0&&Nr(e,i,n)||a===0&&Nr(e,t,n))}function Nr(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Ur(i){return i>0?1:i<0?-1:0}function u_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Oc(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Ki(i,t){return re(i.prev,i,i.next)<0?re(i,t,i.next)>=0&&re(i,i.prev,t)>=0:re(i,t,i.prev)<0||re(i,i.next,t)<0}function d_(i,t){let e=i,n=!1;const r=(i.x+t.x)/2,s=(i.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==i);return n}function Fc(i,t){const e=new la(i.i,i.x,i.y),n=new la(t.i,t.x,t.y),r=i.next,s=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function Dl(i,t,e,n){const r=new la(i,t,e);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Ji(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function la(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function f_(i,t,e,n){let r=0;for(let s=t,o=e-n;s2&&i[t-1].equals(i[0])&&i.pop()}function Nl(i,t){for(let e=0;eNumber.EPSILON){const j=Math.sqrt(et),yt=Math.sqrt(v*v+N*N),ut=ct.x-M/j,_t=ct.y+ft/j,Ct=W.x-N/yt,Ft=W.y+v/yt,Q=((Ct-ut)*N-(Ft-_t)*v)/(ft*N-M*v);at=ut+ft*Q-R.x,q=_t+M*Q-R.y;const jt=at*at+q*q;if(jt<=2)return new tt(at,q);Et=Math.sqrt(jt/2)}else{let j=!1;ft>Number.EPSILON?v>Number.EPSILON&&(j=!0):ft<-Number.EPSILON?v<-Number.EPSILON&&(j=!0):Math.sign(M)===Math.sign(N)&&(j=!0),j?(at=-M,q=ft,Et=Math.sqrt(et)):(at=ft,q=M,Et=Math.sqrt(et/2))}return new tt(at/Et,q/Et)}const k=[];for(let R=0,ct=D.length,W=ct-1,at=R+1;R=0;R--){const ct=R/f,W=m*Math.cos(ct*Math.PI/2),at=g*Math.sin(ct*Math.PI/2)+x;for(let q=0,Et=D.length;q=0;){const at=W;let q=W-1;q<0&&(q=R.length-1);for(let Et=0,ft=h+f*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class v_ extends cn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=fa,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function Or(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function x_(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function y_(i){function t(r,s){return i[r]-i[s]}const e=i.length,n=new Array(e);for(let r=0;r!==e;++r)n[r]=r;return n.sort(t),n}function Ol(i,t,e){const n=i.length,r=new i.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)r[o++]=i[a+l]}return r}function Hc(i,t,e,n){let r=1,s=i[0];for(;s!==void 0&&s[n]===void 0;)s=i[r++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=i[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=i[r++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=i[r++];while(s!==void 0)}class rs{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,r=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(r!==void 0&&x_(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),r=this.getInterpolation()===_s,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,r=new n(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}Ke.prototype.TimeBufferType=Float32Array;Ke.prototype.ValueBufferType=Float32Array;Ke.prototype.DefaultInterpolation=kr;class wi extends Ke{}wi.prototype.ValueTypeName="bool";wi.prototype.ValueBufferType=Array;wi.prototype.DefaultInterpolation=Gr;wi.prototype.InterpolantFactoryMethodLinear=void 0;wi.prototype.InterpolantFactoryMethodSmooth=void 0;class Vc extends Ke{}Vc.prototype.ValueTypeName="color";class Jr extends Ke{}Jr.prototype.ValueTypeName="number";class b_ extends rs{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(r-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Tn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class tr extends Ke{InterpolantFactoryMethodLinear(t){return new b_(this.times,this.values,this.getValueSize(),t)}}tr.prototype.ValueTypeName="quaternion";tr.prototype.DefaultInterpolation=kr;tr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ri extends Ke{}Ri.prototype.ValueTypeName="string";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Gr;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;class $r extends Ke{}$r.prototype.ValueTypeName="vector";class x0{constructor(t,e=-1,n,r=Zh){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=Be(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(A_(n[o]).scale(r));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Ke.toJSON(n[s]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let d=r[u];d||(r[u]=d=[]),d.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,m,g,x){if(m.length!==0){const f=[],p=[];Hc(m,f,p,g),f.length!==0&&x.push(new u(d,f,p))}},r=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(rn[t]!==void 0){rn[t].push({onLoad:e,onProgress:n,onError:r});return}rn[t]=[],rn[t].push({onLoad:e,onProgress:n,onError:r});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=rn[t],u=c.body.getReader(),d=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),m=d?parseInt(d):0,g=m!==0;let x=0;const f=new ReadableStream({start(p){E();function E(){u.read().then(({done:_,value:b})=>{if(_)p.close();else{x+=b.byteLength;const I=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:m});for(let L=0,P=h.length;L{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,m=new TextDecoder(d);return c.arrayBuffer().then(g=>m.decode(g))}}}).then(c=>{xn.add(t,c);const h=rn[t];delete rn[t];for(let u=0,d=h.length;u{const h=rn[t];if(h===void 0)throw this.manager.itemError(t),c;delete rn[t];for(let u=0,d=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class P_ extends er{constructor(t){super(t)}load(t,e,n,r){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=xn.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=ji("img");function l(){h(),xn.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),r&&r(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class L_ extends er{constructor(t){super(t)}load(t,e,n,r){const s=new xe,o=new P_(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,r),s}}class ss extends ae{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const js=new Yt,Fl=new C,Bl=new C;class ba{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Yt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new va,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ee(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Fl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Fl),Bl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bl),e.updateMatrixWorld(),js.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(js),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(js)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class D_ extends ba{constructor(){super(new Re(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Ei*2*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||r!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=r,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class M0 extends ss{constructor(t,e,n=0,r=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.distance=n,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new D_}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const zl=new Yt,Hi=new C,Zs=new C;class I_ extends ba{constructor(){super(new Re(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ee(2,1,1,1),new ee(0,1,1,1),new ee(3,1,1,1),new ee(1,1,1,1),new ee(3,0,1,1),new ee(1,0,1,1)],this._cubeDirections=[new C(1,0,0),new C(-1,0,0),new C(0,0,1),new C(0,0,-1),new C(0,1,0),new C(0,-1,0)],this._cubeUps=[new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,0,1),new C(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),Hi.setFromMatrixPosition(t.matrixWorld),n.position.copy(Hi),Zs.copy(n.position),Zs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Zs),n.updateMatrixWorld(),r.makeTranslation(-Hi.x,-Hi.y,-Hi.z),zl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zl)}}class S0 extends ss{constructor(t,e,n=0,r=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new I_}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class N_ extends ba{constructor(){super(new gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Hl extends ss{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.shadow=new N_}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class U_ extends ss{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class E0{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return xn.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){r&&r(c),xn.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});xn.add(t,l),s.manager.itemStart(t)}}class A0{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Vl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Vl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Vl(){return(typeof performance=="undefined"?Date:performance).now()}const Ta="\\[\\]\\.:\\/",O_=new RegExp("["+Ta+"]","g"),Aa="[^"+Ta+"]",F_="[^"+Ta.replace("\\.","")+"]",B_=/((?:WC+[\/:])*)/.source.replace("WC",Aa),z_=/(WCOD+)?/.source.replace("WCOD",F_),H_=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Aa),V_=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Aa),G_=new RegExp("^"+B_+z_+H_+V_+"$"),k_=["material","materials","bones","map"];class W_{constructor(t,e,n){const r=n||$t.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];r!==void 0&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=n.length;r!==s;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class $t{constructor(t,e,n){this.path=e,this.parsedPath=n||$t.parseTrackName(e),this.node=$t.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new $t.Composite(t,e,n):new $t(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(O_,"")}static parseTrackName(t){const e=G_.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=n.nodeName.substring(r+1);k_.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(qt-=it),te<-Math.PI?te+=it:te>Math.PI&&(te-=it),qt<=te?a.theta=Math.max(qt,Math.min(te,a.theta)):a.theta=a.theta>(qt+te)/2?Math.max(qt,a.theta):Math.min(te,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&L||n.object.isOrthographicCamera?a.radius=$(a.radius):a.radius=$(a.radius*c),w.setFromSpherical(a),w.applyQuaternion(dt),Zt.copy(n.target).add(w),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let ge=!1;if(n.zoomToCursor&&L){let Kt=null;if(n.object.isPerspectiveCamera){const le=w.length();Kt=$(le*c);const be=le-Kt;n.object.position.addScaledVector(b,be),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const le=new C(I.x,I.y,0);le.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ge=!0;const be=new C(I.x,I.y,0);be.unproject(n.object),n.object.position.sub(be).add(le),n.object.updateMatrixWorld(),Kt=w.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Kt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Kt).add(n.object.position):(Br.origin.copy(n.object.position),Br.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Br.direction))o||8*(1-T.dot(n.object.quaternion))>o||st.distanceToSquared(n.target)>0?(n.dispatchEvent(Xl),Rt.copy(n.object.position),T.copy(n.object.quaternion),st.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",jt),n.domElement.removeEventListener("pointerdown",M),n.domElement.removeEventListener("pointercancel",N),n.domElement.removeEventListener("wheel",j),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Ct),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,a=new kl,l=new kl;let c=1;const h=new C,u=new tt,d=new tt,m=new tt,g=new tt,x=new tt,f=new tt,p=new tt,E=new tt,_=new tt,b=new C,I=new tt;let L=!1;const P=[],V={};let lt=!1;function y(w){return w!==null?2*Math.PI/60*n.autoRotateSpeed*w:2*Math.PI/60/60*n.autoRotateSpeed}function A(w){const ot=Math.abs(w*.01);return Math.pow(.95,n.zoomSpeed*ot)}function Z(w){l.theta-=w}function rt(w){l.phi-=w}const D=function(){const w=new C;return function(dt,Rt){w.setFromMatrixColumn(Rt,0),w.multiplyScalar(-dt),h.add(w)}}(),z=function(){const w=new C;return function(dt,Rt){n.screenSpacePanning===!0?w.setFromMatrixColumn(Rt,1):(w.setFromMatrixColumn(Rt,0),w.crossVectors(n.object.up,w)),w.multiplyScalar(dt),h.add(w)}}(),O=function(){const w=new C;return function(dt,Rt){const T=n.domElement;if(n.object.isPerspectiveCamera){const st=n.object.position;w.copy(st).sub(n.target);let it=w.length();it*=Math.tan(n.object.fov/2*Math.PI/180),D(2*dt*it/T.clientHeight,n.object.matrix),z(2*Rt*it/T.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(D(dt*(n.object.right-n.object.left)/n.object.zoom/T.clientWidth,n.object.matrix),z(Rt*(n.object.top-n.object.bottom)/n.object.zoom/T.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function k(w,ot){if(!n.zoomToCursor)return;L=!0;const dt=n.domElement.getBoundingClientRect(),Rt=w-dt.left,T=ot-dt.top,st=dt.width,it=dt.height;I.x=Rt/st*2-1,I.y=-(T/it)*2+1,b.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function $(w){return Math.max(n.minDistance,Math.min(n.maxDistance,w))}function K(w){u.set(w.clientX,w.clientY)}function mt(w){k(w.clientX,w.clientX),p.set(w.clientX,w.clientY)}function Lt(w){g.set(w.clientX,w.clientY)}function G(w){d.set(w.clientX,w.clientY),m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d),n.update()}function nt(w){E.set(w.clientX,w.clientY),_.subVectors(E,p),_.y>0?Y(A(_.y)):_.y<0&&X(A(_.y)),p.copy(E),n.update()}function gt(w){x.set(w.clientX,w.clientY),f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x),n.update()}function Mt(w){k(w.clientX,w.clientY),w.deltaY<0?X(A(w.deltaY)):w.deltaY>0&&Y(A(w.deltaY)),n.update()}function bt(w){let ot=!1;switch(w.code){case n.keys.UP:w.ctrlKey||w.metaKey||w.shiftKey?rt(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,n.keyPanSpeed),ot=!0;break;case n.keys.BOTTOM:w.ctrlKey||w.metaKey||w.shiftKey?rt(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,-n.keyPanSpeed),ot=!0;break;case n.keys.LEFT:w.ctrlKey||w.metaKey||w.shiftKey?Z(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(n.keyPanSpeed,0),ot=!0;break;case n.keys.RIGHT:w.ctrlKey||w.metaKey||w.shiftKey?Z(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(-n.keyPanSpeed,0),ot=!0;break}ot&&(w.preventDefault(),n.update())}function xt(w){if(P.length===1)u.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);u.set(dt,Rt)}}function Ot(w){if(P.length===1)g.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);g.set(dt,Rt)}}function At(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);p.set(0,T)}function R(w){n.enableZoom&&At(w),n.enablePan&&Ot(w)}function ct(w){n.enableZoom&&At(w),n.enableRotate&&xt(w)}function W(w){if(P.length==1)d.set(w.pageX,w.pageY);else{const dt=pt(w),Rt=.5*(w.pageX+dt.x),T=.5*(w.pageY+dt.y);d.set(Rt,T)}m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d)}function at(w){if(P.length===1)x.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);x.set(dt,Rt)}f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x)}function q(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);E.set(0,T),_.set(0,Math.pow(E.y/p.y,n.zoomSpeed)),Y(_.y),p.copy(E);const st=(w.pageX+ot.x)*.5,it=(w.pageY+ot.y)*.5;k(st,it)}function Et(w){n.enableZoom&&q(w),n.enablePan&&at(w)}function ft(w){n.enableZoom&&q(w),n.enableRotate&&W(w)}function M(w){n.enabled!==!1&&(P.length===0&&(n.domElement.setPointerCapture(w.pointerId),n.domElement.addEventListener("pointermove",v),n.domElement.addEventListener("pointerup",N)),Gt(w),w.pointerType==="touch"?Ft(w):et(w))}function v(w){n.enabled!==!1&&(w.pointerType==="touch"?Q(w):J(w))}function N(w){switch(It(w),P.length){case 0:n.domElement.releasePointerCapture(w.pointerId),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n.dispatchEvent(ql),s=r.NONE;break;case 1:const ot=P[0],dt=V[ot];Ft({pointerId:ot,pageX:dt.x,pageY:dt.y});break}}function et(w){let ot;switch(w.button){case 0:ot=n.mouseButtons.LEFT;break;case 1:ot=n.mouseButtons.MIDDLE;break;case 2:ot=n.mouseButtons.RIGHT;break;default:ot=-1}switch(ot){case qn.DOLLY:if(n.enableZoom===!1)return;mt(w),s=r.DOLLY;break;case qn.ROTATE:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enablePan===!1)return;Lt(w),s=r.PAN}else{if(n.enableRotate===!1)return;K(w),s=r.ROTATE}break;case qn.PAN:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enableRotate===!1)return;K(w),s=r.ROTATE}else{if(n.enablePan===!1)return;Lt(w),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function J(w){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;G(w);break;case r.DOLLY:if(n.enableZoom===!1)return;nt(w);break;case r.PAN:if(n.enablePan===!1)return;gt(w);break}}function j(w){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(w.preventDefault(),n.dispatchEvent(Ks),Mt(yt(w)),n.dispatchEvent(ql))}function yt(w){const ot=w.deltaMode,dt={clientX:w.clientX,clientY:w.clientY,deltaY:w.deltaY};switch(ot){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return w.ctrlKey&&!lt&&(dt.deltaY*=10),dt}function ut(w){w.key==="Control"&&(lt=!0,n.domElement.getRootNode().addEventListener("keyup",_t,{passive:!0,capture:!0}))}function _t(w){w.key==="Control"&&(lt=!1,n.domElement.getRootNode().removeEventListener("keyup",_t,{passive:!0,capture:!0}))}function Ct(w){n.enabled===!1||n.enablePan===!1||bt(w)}function Ft(w){switch(wt(w),P.length){case 1:switch(n.touches.ONE){case Yn.ROTATE:if(n.enableRotate===!1)return;xt(w),s=r.TOUCH_ROTATE;break;case Yn.PAN:if(n.enablePan===!1)return;Ot(w),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case Yn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;R(w),s=r.TOUCH_DOLLY_PAN;break;case Yn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(w),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function Q(w){switch(wt(w),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;W(w),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;at(w),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(w),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ft(w),n.update();break;default:s=r.NONE}}function jt(w){n.enabled!==!1&&w.preventDefault()}function Gt(w){P.push(w.pointerId)}function It(w){delete V[w.pointerId];for(let ot=0;ot{i instanceof Array?i.forEach(Gc):(i.map&&i.map.dispose(),i.dispose())},kc=i=>{i.geometry&&i.geometry.dispose(),i.material&&Gc(i.material),i.texture&&i.texture.dispose(),i.children&&i.children.forEach(kc)},j_=i=>{if(i&&i.children)for(;i.children.length;){const t=i.children[0];i.remove(t),kc(t)}};var wa={exports:{}},Z_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=(r-n)/2,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},K_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=r-n,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},Wc=Z_,Xc=K_;wa.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?Xc(t,e,n,r):Wc(t,e,n,r)};wa.exports.nested=Xc;wa.exports.flat=Wc;const J_=""+new URL("ring2-a1b91808-balabala-1784132466083.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1784132466083.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1784132466083.png",import.meta.url).href;const t0={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return Fa(Oa({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new Vi,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(i=>Number(i.value)||0).reduce((i,t)=>i+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new Lg,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:J_,width:5,position:new C(0,0,-.01),color:"#00ffff"}),this.createPlane({url:$_,width:6.5,position:new C(0,0,-.02),color:"#00ffff"}),this.createPlane({url:Q_,width:5.5,position:new C(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(i){let t={url:"texture/ring1.png",width:5.5,z:0,position:new C(0,0,0),animate:!1,color:null},e=Object.assign(t,i);const n=new Qi(e.width,e.width),r=new _a({map:this.getTexture(e.url),transparent:!0,side:ke,depthTest:!1});e.color&&(r.color=new Ut(e.color));const s=new Ce(n,r);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=Pn.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(i){const t=new L_().load(i);return t.wrapS=t.wrapT=Vr,t},createPie(){if(!this.data.length||this.count<=0)return;let i=0,t=0;for(var e=0;e=this.data.length&&(i=0,this.loopComplete&&this.loopComplete()),this.chooseRing(i)},chooseRing(i=0,t=!1){if(!this.pieGroup.children.length)return;let e=i-1<0?this.data.length-1:i-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=i;let r=this.pieGroup.children[i];r&&(t||n&&(Pn.to(n.scale,{z:1}),Pn.to(n.material,{opacity:this.opacity})),Pn.to(r.scale,{z:2}),Pn.to(r.material,{opacity:.8}))},addRing(i={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,i),n=new qi;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let r=n.getPoints(e.segments),s=new qi;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new qi(r.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Ea(a,l);let h=new v_({color:e.color,transparent:!0,opacity:this.opacity,side:ke});const u=new Ce(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var i=this.width/this.height;this.camera=new Re(30,i,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new Ec({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let i=new Hl(16777215,2);i.position.set(200,300,200);let t=new Hl(16777215,2);t.position.set(-200,-300,-200);let e=new U_(16777215,2);this.scene.add(i),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new X_(0),this.scene.add(this.axes)},initControls(){this.controls=new Y_(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.resume)==null?void 0:t.call(i)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),!(this.data.length<2)&&(this.timer=window.setInterval(()=>{this.loopChange()},this.delay))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.pause)==null?void 0:t.call(i)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const i=this.$el;!i||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(i);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(i),this.isVisible=this.isElementVisible(i),this.isVisible||this.stop())},isElementVisible(i){if(!i||typeof window.getComputedStyle!="function")return!0;let t=i;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=i.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const i=this.$refs.pieDom;this.width=(i==null?void 0:i.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(i==null?void 0:i.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let i=this.width/this.height;this.camera.aspect=i,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var i,t,e,n;this.isDestroyed=!0,this.prevMesh&&(Pn.set(this.prevMesh.scale,{z:1}),Pn.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(i=this.visibilityObserver)==null?void 0:i.disconnect)==null||t.call(i),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(r=>{var s;return(s=r==null?void 0:r.kill)==null?void 0:s.call(r)}),this.planeTweens=[],j_(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},e0={class:"three-pie-wrap"},n0={class:"three-pie",ref:"pieDom"},i0={class:"three-pie-slot"};function r0(i,t,e,n,r,s){return ih(),rh("div",e0,[za("div",n0,null,512),za("div",i0,[sh(i.$slots,"default",{data:s.currentData})])])}const L0=nh(t0,[["render",r0]]),gn=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),D0=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),I0=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),N0=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function U0(i=gn.canvasHeight){const t=Math.max(gn.canvasHeight,Number(i)||gn.canvasHeight),e=Math.floor((t-gn.sidePanelTop-gn.sidePanelBottom-gn.sideCardGap*3)/4);return Math.max(gn.sideCardMinHeight,e)}function O0(i,t=1){const e=Math.max(1,Number(t)||1);return i*e+gn.sideCardGap*(e-1)}export{Y_ as $,Va as A,$i as B,Ut as C,ke as D,p0 as E,bc as F,Vi as G,Rc as H,oe as I,qi as J,N0 as K,ya as L,L0 as M,_e as N,ae as O,Qi as P,Ic as Q,Vr as R,ve as S,zc as T,D0 as U,C as V,I0 as W,A0 as X,Ec as Y,gc as Z,Re as _,_a as a,qn as a0,Lg as a1,X_ as a2,vi as a3,P0 as a4,m0 as a5,tt as a6,Yt as a7,Tn as a8,Ea as a9,Tc as aA,Bn as aB,cn as aC,$t as aD,d0 as aE,Cc as aF,wc as aG,x0 as aH,Ng as aI,kr as aJ,Qt as aK,Ya as aL,us as aM,Pi as aN,ea as aO,Gr as aP,bn as aQ,xe as aR,$r as aS,Jr as aT,tr as aU,rs as aV,w_ as aW,wn as aa,b0 as ab,w0 as ac,Zr as ad,_0 as ae,ln as af,ht as ag,Ye as ah,zu as ai,An as aj,ee as ak,C0 as al,yu as am,R0 as an,l0 as ao,h0 as ap,c0 as aq,er as ar,E0 as as,on as at,M0 as au,v0 as av,f0 as aw,yl as ax,L_ as ay,T0 as az,Ce as b,U_ as c,Hl as d,j_ as e,S0 as f,v_ as g,__ as h,ch as i,On as j,vh as k,fh as l,Bg as m,Dg as n,u0 as o,y0 as p,gn as q,U0 as r,O0 as s,g0 as t,We as u,we as v,ze as w,Hg as x,Bc as y,ye as z}; +}`;class Ag{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const r=new xe,s=t.properties.get(r);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,r=new An({extensions:{fragDepth:!0},vertexShader:bg,fragmentShader:Tg,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ce(new Qi(20,20),r)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class wg extends Xn{constructor(t,e){super();const n=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,d=null,m=null,g=null;const x=new Ag,f=e.getContextAttributes();let p=null,E=null;const _=[],b=[],I=new tt;let L=null;const P=new Re;P.layers.enable(1),P.viewport=new ee;const V=new Re;V.layers.enable(2),V.viewport=new ee;const lt=[P,V],y=new Sg;y.layers.enable(1),y.layers.enable(2);let A=null,Z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getGripSpace()},this.getHand=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getHandSpace()};function rt(G){const nt=b.indexOf(G.inputSource);if(nt===-1)return;const gt=_[nt];gt!==void 0&&(gt.update(G.inputSource,G.frame,c||o),gt.dispatchEvent({type:G.type,data:G.inputSource}))}function D(){r.removeEventListener("select",rt),r.removeEventListener("selectstart",rt),r.removeEventListener("selectend",rt),r.removeEventListener("squeeze",rt),r.removeEventListener("squeezestart",rt),r.removeEventListener("squeezeend",rt),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",z);for(let G=0;G<_.length;G++){const nt=b[G];nt!==null&&(b[G]=null,_[G].disconnect(nt))}A=null,Z=null,x.reset(),t.setRenderTarget(p),m=null,d=null,u=null,r=null,E=null,Lt.stop(),n.isPresenting=!1,t.setPixelRatio(L),t.setSize(I.width,I.height,!1),n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(G){s=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(G){a=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(G){c=G},this.getBaseLayer=function(){return d!==null?d:m},this.getBinding=function(){return u},this.getFrame=function(){return g},this.getSession=function(){return r},this.setSession=function(G){return Ba(this,null,function*(){if(r=G,r!==null){if(p=t.getRenderTarget(),r.addEventListener("select",rt),r.addEventListener("selectstart",rt),r.addEventListener("selectend",rt),r.addEventListener("squeeze",rt),r.addEventListener("squeezestart",rt),r.addEventListener("squeezeend",rt),r.addEventListener("end",D),r.addEventListener("inputsourceschange",z),f.xrCompatible!==!0&&(yield e.makeXRCompatible()),L=t.getPixelRatio(),t.getSize(I),r.renderState.layers===void 0||t.capabilities.isWebGL2===!1){const nt={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,e,nt),r.updateRenderState({baseLayer:m}),t.setPixelRatio(1),t.setSize(m.framebufferWidth,m.framebufferHeight,!1),E=new kn(m.framebufferWidth,m.framebufferHeight,{format:Oe,type:Sn,colorSpace:t.outputColorSpace,stencilBuffer:f.stencil})}else{let nt=null,gt=null,Mt=null;f.depth&&(Mt=f.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,nt=f.stencil?Si:Hn,gt=f.stencil?zn:vn);const bt={colorFormat:e.RGBA8,depthFormat:Mt,scaleFactor:s};u=new XRWebGLBinding(r,e),d=u.createProjectionLayer(bt),r.updateRenderState({layers:[d]}),t.setPixelRatio(1),t.setSize(d.textureWidth,d.textureHeight,!1),E=new kn(d.textureWidth,d.textureHeight,{format:Oe,type:Sn,depthTexture:new _c(d.textureWidth,d.textureHeight,gt,void 0,void 0,void 0,void 0,void 0,void 0,nt),stencilBuffer:f.stencil,colorSpace:t.outputColorSpace,samples:f.antialias?4:0});const xt=t.properties.get(E);xt.__ignoreDepthValues=d.ignoreDepthValues}E.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=yield r.requestReferenceSpace(a),Lt.setContext(r),Lt.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function z(G){for(let nt=0;nt=0&&(b[Mt]=null,_[Mt].disconnect(gt))}for(let nt=0;nt=b.length){b.push(gt),Mt=xt;break}else if(b[xt]===null){b[xt]=gt,Mt=xt;break}if(Mt===-1)break}const bt=_[Mt];bt&&bt.connect(gt)}}const O=new C,Y=new C;function X(G,nt,gt){O.setFromMatrixPosition(nt.matrixWorld),Y.setFromMatrixPosition(gt.matrixWorld);const Mt=O.distanceTo(Y),bt=nt.projectionMatrix.elements,xt=gt.projectionMatrix.elements,Ot=bt[14]/(bt[10]-1),At=bt[14]/(bt[10]+1),R=(bt[9]+1)/bt[5],ct=(bt[9]-1)/bt[5],W=(bt[8]-1)/bt[0],at=(xt[8]+1)/xt[0],q=Ot*W,Et=Ot*at,ft=Mt/(-W+at),M=ft*-W;nt.matrixWorld.decompose(G.position,G.quaternion,G.scale),G.translateX(M),G.translateZ(ft),G.matrixWorld.compose(G.position,G.quaternion,G.scale),G.matrixWorldInverse.copy(G.matrixWorld).invert();const v=Ot+ft,N=At+ft,et=q-M,J=Et+(Mt-M),j=R*At/N*v,yt=ct*At/N*v;G.projectionMatrix.makePerspective(et,J,j,yt,v,N),G.projectionMatrixInverse.copy(G.projectionMatrix).invert()}function k(G,nt){nt===null?G.matrixWorld.copy(G.matrix):G.matrixWorld.multiplyMatrices(nt.matrixWorld,G.matrix),G.matrixWorldInverse.copy(G.matrixWorld).invert()}this.updateCamera=function(G){if(r===null)return;x.texture!==null&&(G.near=x.depthNear,G.far=x.depthFar),y.near=V.near=P.near=G.near,y.far=V.far=P.far=G.far,(A!==y.near||Z!==y.far)&&(r.updateRenderState({depthNear:y.near,depthFar:y.far}),A=y.near,Z=y.far,P.near=A,P.far=Z,V.near=A,V.far=Z,P.updateProjectionMatrix(),V.updateProjectionMatrix(),G.updateProjectionMatrix());const nt=G.parent,gt=y.cameras;k(y,nt);for(let Mt=0;Mt0&&(f.alphaTest.value=p.alphaTest);const E=t.get(p).envMap;if(E&&(f.envMap.value=E,f.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=p.reflectivity,f.ior.value=p.ior,f.refractionRatio.value=p.refractionRatio),p.lightMap){f.lightMap.value=p.lightMap;const _=i._useLegacyLights===!0?Math.PI:1;f.lightMapIntensity.value=p.lightMapIntensity*_,e(p.lightMap,f.lightMapTransform)}p.aoMap&&(f.aoMap.value=p.aoMap,f.aoMapIntensity.value=p.aoMapIntensity,e(p.aoMap,f.aoMapTransform))}function o(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform))}function a(f,p){f.dashSize.value=p.dashSize,f.totalSize.value=p.dashSize+p.gapSize,f.scale.value=p.scale}function l(f,p,E,_){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.size.value=p.size*E,f.scale.value=_*.5,p.map&&(f.map.value=p.map,e(p.map,f.uvTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function c(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.rotation.value=p.rotation,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function h(f,p){f.specular.value.copy(p.specular),f.shininess.value=Math.max(p.shininess,1e-4)}function u(f,p){p.gradientMap&&(f.gradientMap.value=p.gradientMap)}function d(f,p){f.metalness.value=p.metalness,p.metalnessMap&&(f.metalnessMap.value=p.metalnessMap,e(p.metalnessMap,f.metalnessMapTransform)),f.roughness.value=p.roughness,p.roughnessMap&&(f.roughnessMap.value=p.roughnessMap,e(p.roughnessMap,f.roughnessMapTransform)),t.get(p).envMap&&(f.envMapIntensity.value=p.envMapIntensity)}function m(f,p,E){f.ior.value=p.ior,p.sheen>0&&(f.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),f.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(f.sheenColorMap.value=p.sheenColorMap,e(p.sheenColorMap,f.sheenColorMapTransform)),p.sheenRoughnessMap&&(f.sheenRoughnessMap.value=p.sheenRoughnessMap,e(p.sheenRoughnessMap,f.sheenRoughnessMapTransform))),p.clearcoat>0&&(f.clearcoat.value=p.clearcoat,f.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(f.clearcoatMap.value=p.clearcoatMap,e(p.clearcoatMap,f.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,e(p.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(f.clearcoatNormalMap.value=p.clearcoatNormalMap,e(p.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Pe&&f.clearcoatNormalScale.value.negate())),p.iridescence>0&&(f.iridescence.value=p.iridescence,f.iridescenceIOR.value=p.iridescenceIOR,f.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(f.iridescenceMap.value=p.iridescenceMap,e(p.iridescenceMap,f.iridescenceMapTransform)),p.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=p.iridescenceThicknessMap,e(p.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),p.transmission>0&&(f.transmission.value=p.transmission,f.transmissionSamplerMap.value=E.texture,f.transmissionSamplerSize.value.set(E.width,E.height),p.transmissionMap&&(f.transmissionMap.value=p.transmissionMap,e(p.transmissionMap,f.transmissionMapTransform)),f.thickness.value=p.thickness,p.thicknessMap&&(f.thicknessMap.value=p.thicknessMap,e(p.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=p.attenuationDistance,f.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(f.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(f.anisotropyMap.value=p.anisotropyMap,e(p.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=p.specularIntensity,f.specularColor.value.copy(p.specularColor),p.specularColorMap&&(f.specularColorMap.value=p.specularColorMap,e(p.specularColorMap,f.specularColorMapTransform)),p.specularIntensityMap&&(f.specularIntensityMap.value=p.specularIntensityMap,e(p.specularIntensityMap,f.specularIntensityMapTransform))}function g(f,p){p.matcap&&(f.matcap.value=p.matcap)}function x(f,p){const E=t.get(p).light;f.referencePosition.value.setFromMatrixPosition(E.matrixWorld),f.nearDistance.value=E.shadow.camera.near,f.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function Cg(i,t,e,n){let r={},s={},o=[];const a=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(E,_){const b=_.program;n.uniformBlockBinding(E,b)}function c(E,_){let b=r[E.id];b===void 0&&(g(E),b=h(E),r[E.id]=b,E.addEventListener("dispose",f));const I=_.program;n.updateUBOMapping(E,I);const L=t.render.frame;s[E.id]!==L&&(d(E),s[E.id]=L)}function h(E){const _=u();E.__bindingPointIndex=_;const b=i.createBuffer(),I=E.__size,L=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,I,L),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function u(){for(let E=0;E0&&(b+=I-L),E.__size=b,E.__cache={},this}function x(E){const _={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(_.boundary=4,_.storage=4):E.isVector2?(_.boundary=8,_.storage=8):E.isVector3||E.isColor?(_.boundary=16,_.storage=12):E.isVector4?(_.boundary=16,_.storage=16):E.isMatrix3?(_.boundary=48,_.storage=48):E.isMatrix4?(_.boundary=64,_.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),_}function f(E){const _=E.target;_.removeEventListener("dispose",f);const b=o.indexOf(_.__bindingPointIndex);o.splice(b,1),i.deleteBuffer(r[_.id]),delete r[_.id],delete s[_.id]}function p(){for(const E in r)i.deleteBuffer(r[E]);o=[],r={},s={}}return{bind:l,update:c,dispose:p}}class Ec{constructor(t={}){const{canvas:e=Mu(),context:n=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let d;n!==null?d=n.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),g=new Int32Array(4);let x=null,f=null;const p=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=ve,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;const _=this;let b=!1,I=0,L=0,P=null,V=-1,lt=null;const y=new ee,A=new ee;let Z=null;const rt=new Ut(0);let D=0,z=e.width,O=e.height,Y=1,X=null,k=null;const $=new ee(0,0,z,O),K=new ee(0,0,z,O);let mt=!1;const Lt=new va;let G=!1,nt=!1,gt=null;const Mt=new Yt,bt=new tt,xt=new C,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function At(){return P===null?Y:1}let R=n;function ct(S,U){for(let B=0;B{function vt(){if(H.forEach(function(Tt){ft.get(Tt).currentProgram.isReady()&&H.delete(Tt)}),H.size===0){F(S);return}setTimeout(vt,10)}W.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let qt=null;function te(S){qt&&qt(S)}function ge(){le.stop()}function Kt(){le.start()}const le=new mc;le.setAnimationLoop(te),typeof self!="undefined"&&le.setContext(self),this.setAnimationLoop=function(S){qt=S,dt.setAnimationLoop(S),S===null?le.stop():le.start()},dt.addEventListener("sessionstart",ge),dt.addEventListener("sessionend",Kt),this.render=function(S,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;S.matrixWorldAutoUpdate===!0&&S.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(U),U=dt.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,U,P),f=Ct.get(S,E.length),f.init(),E.push(f),Mt.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Lt.setFromProjectionMatrix(Mt),nt=this.localClippingEnabled,G=Ft.init(this.clippingPlanes,nt),x=_t.get(S,p.length),x.init(),p.push(x),be(S,U,0,_.sortObjects),x.finish(),_.sortObjects===!0&&x.sort(X,k),this.info.render.frame++,G===!0&&Ft.beginShadows();const B=f.state.shadowsArray;if(Q.render(B,S,U),G===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&jt.render(x,S),f.setupLights(_._useLegacyLights),U.isArrayCamera){const H=U.cameras;for(let F=0,vt=H.length;F0?f=E[E.length-1]:f=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function be(S,U,B,H){if(S.visible===!1)return;if(S.layers.test(U.layers)){if(S.isGroup)B=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(U);else if(S.isLight)f.pushLight(S),S.castShadow&&f.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||Lt.intersectsSprite(S)){H&&xt.setFromMatrixPosition(S.matrixWorld).applyMatrix4(Mt);const Tt=j.update(S),Dt=S.material;Dt.visible&&x.push(S,Tt,Dt,B,xt.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(!S.frustumCulled||Lt.intersectsObject(S))){const Tt=j.update(S),Dt=S.material;if(H&&(S.boundingSphere!==void 0?(S.boundingSphere===null&&S.computeBoundingSphere(),xt.copy(S.boundingSphere.center)):(Tt.boundingSphere===null&&Tt.computeBoundingSphere(),xt.copy(Tt.boundingSphere.center)),xt.applyMatrix4(S.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Nt=Tt.groups;for(let kt=0,Bt=Nt.length;kt0&&qc(F,vt,U,B),H&&q.viewport(y.copy(H)),F.length>0&&nr(F,U,B),vt.length>0&&nr(vt,U,B),Tt.length>0&&nr(Tt,U,B),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function qc(S,U,B,H){if((B.isScene===!0?B.overrideMaterial:null)!==null)return;const vt=at.isWebGL2;gt===null&&(gt=new kn(1,1,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Yi:Sn,minFilter:Bn,samples:vt?4:0})),_.getDrawingBufferSize(bt),vt?gt.setSize(bt.x,bt.y):gt.setSize(jr(bt.x),jr(bt.y));const Tt=_.getRenderTarget();_.setRenderTarget(gt),_.getClearColor(rt),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();const Dt=_.toneMapping;_.toneMapping=Mn,nr(S,B,H),M.updateMultisampleRenderTarget(gt),M.updateRenderTargetMipmap(gt);let Nt=!1;for(let kt=0,Bt=U.length;kt0),Ht=!!B.morphAttributes.position,ce=!!B.morphAttributes.normal,Le=!!B.morphAttributes.color;let pe=Mn;H.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(pe=_.toneMapping);const Je=B.morphAttributes.position||B.morphAttributes.normal||B.morphAttributes.color,ie=Je!==void 0?Je.length:0,Wt=ft.get(H),as=f.state.lights;if(G===!0&&(nt===!0||S!==lt)){const Ne=S===lt&&H.id===V;Ft.setState(H,S,Ne)}let se=!1;H.version===Wt.__version?(Wt.needsLights&&Wt.lightsStateVersion!==as.state.version||Wt.outputColorSpace!==Dt||F.isBatchedMesh&&Wt.batching===!1||!F.isBatchedMesh&&Wt.batching===!0||F.isInstancedMesh&&Wt.instancing===!1||!F.isInstancedMesh&&Wt.instancing===!0||F.isSkinnedMesh&&Wt.skinning===!1||!F.isSkinnedMesh&&Wt.skinning===!0||F.isInstancedMesh&&Wt.instancingColor===!0&&F.instanceColor===null||F.isInstancedMesh&&Wt.instancingColor===!1&&F.instanceColor!==null||Wt.envMap!==Nt||H.fog===!0&&Wt.fog!==vt||Wt.numClippingPlanes!==void 0&&(Wt.numClippingPlanes!==Ft.numPlanes||Wt.numIntersection!==Ft.numIntersection)||Wt.vertexAlphas!==kt||Wt.vertexTangents!==Bt||Wt.morphTargets!==Ht||Wt.morphNormals!==ce||Wt.morphColors!==Le||Wt.toneMapping!==pe||at.isWebGL2===!0&&Wt.morphTargetsCount!==ie)&&(se=!0):(se=!0,Wt.__version=H.version);let Rn=Wt.currentProgram;se===!0&&(Rn=ir(H,U,F));let Da=!1,Ci=!1,os=!1;const Me=Rn.getUniforms(),Cn=Wt.uniforms;if(q.useProgram(Rn.program)&&(Da=!0,Ci=!0,os=!0),H.id!==V&&(V=H.id,Ci=!0),Da||lt!==S){Me.setValue(R,"projectionMatrix",S.projectionMatrix),Me.setValue(R,"viewMatrix",S.matrixWorldInverse);const Ne=Me.map.cameraPosition;Ne!==void 0&&Ne.setValue(R,xt.setFromMatrixPosition(S.matrixWorld)),at.logarithmicDepthBuffer&&Me.setValue(R,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&Me.setValue(R,"isOrthographic",S.isOrthographicCamera===!0),lt!==S&&(lt=S,Ci=!0,os=!0)}if(F.isSkinnedMesh){Me.setOptional(R,F,"bindMatrix"),Me.setOptional(R,F,"bindMatrixInverse");const Ne=F.skeleton;Ne&&(at.floatVertexTextures?(Ne.boneTexture===null&&Ne.computeBoneTexture(),Me.setValue(R,"boneTexture",Ne.boneTexture,M)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}F.isBatchedMesh&&(Me.setOptional(R,F,"batchingTexture"),Me.setValue(R,"batchingTexture",F._matricesTexture,M));const ls=B.morphAttributes;if((ls.position!==void 0||ls.normal!==void 0||ls.color!==void 0&&at.isWebGL2===!0)&&Gt.update(F,B,Rn),(Ci||Wt.receiveShadow!==F.receiveShadow)&&(Wt.receiveShadow=F.receiveShadow,Me.setValue(R,"receiveShadow",F.receiveShadow)),H.isMeshGouraudMaterial&&H.envMap!==null&&(Cn.envMap.value=Nt,Cn.flipEnvMap.value=Nt.isCubeTexture&&Nt.isRenderTargetTexture===!1?-1:1),Ci&&(Me.setValue(R,"toneMappingExposure",_.toneMappingExposure),Wt.needsLights&&jc(Cn,os),vt&&H.fog===!0&&ut.refreshFogUniforms(Cn,vt),ut.refreshMaterialUniforms(Cn,H,Y,O,gt),zr.upload(R,Pa(Wt),Cn,M)),H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(zr.upload(R,Pa(Wt),Cn,M),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&Me.setValue(R,"center",F.center),Me.setValue(R,"modelViewMatrix",F.modelViewMatrix),Me.setValue(R,"normalMatrix",F.normalMatrix),Me.setValue(R,"modelMatrix",F.matrixWorld),H.isShaderMaterial||H.isRawShaderMaterial){const Ne=H.uniformsGroups;for(let cs=0,Kc=Ne.length;cs0&&M.useMultisampledRTT(S)===!1?F=ft.get(S).__webglMultisampledFramebuffer:Array.isArray(Bt)?F=Bt[B]:F=Bt,y.copy(S.viewport),A.copy(S.scissor),Z=S.scissorTest}else y.copy($).multiplyScalar(Y).floor(),A.copy(K).multiplyScalar(Y).floor(),Z=mt;if(q.bindFramebuffer(R.FRAMEBUFFER,F)&&at.drawBuffers&&H&&q.drawBuffers(S,F),q.viewport(y),q.scissor(A),q.setScissorTest(Z),vt){const Nt=ft.get(S.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Nt.__webglTexture,B)}else if(Tt){const Nt=ft.get(S.texture),kt=U||0;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Nt.__webglTexture,B||0,kt)}V=-1},this.readRenderTargetPixels=function(S,U,B,H,F,vt,Tt){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=ft.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Tt!==void 0&&(Dt=Dt[Tt]),Dt){q.bindFramebuffer(R.FRAMEBUFFER,Dt);try{const Nt=S.texture,kt=Nt.format,Bt=Nt.type;if(kt!==Oe&&pt.convert(kt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ht=Bt===Yi&&(W.has("EXT_color_buffer_half_float")||at.isWebGL2&&W.has("EXT_color_buffer_float"));if(Bt!==Sn&&pt.convert(Bt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===je&&(at.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float")))&&!Ht){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=S.width-H&&B>=0&&B<=S.height-F&&R.readPixels(U,B,H,F,pt.convert(kt),pt.convert(Bt),vt)}finally{const Nt=P!==null?ft.get(P).__webglFramebuffer:null;q.bindFramebuffer(R.FRAMEBUFFER,Nt)}}},this.copyFramebufferToTexture=function(S,U,B=0){const H=Math.pow(2,-B),F=Math.floor(U.image.width*H),vt=Math.floor(U.image.height*H);M.setTexture2D(U,0),R.copyTexSubImage2D(R.TEXTURE_2D,B,0,0,S.x,S.y,F,vt),q.unbindTexture()},this.copyTextureToTexture=function(S,U,B,H=0){const F=U.image.width,vt=U.image.height,Tt=pt.convert(B.format),Dt=pt.convert(B.type);M.setTexture2D(B,0),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,B.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,B.unpackAlignment),U.isDataTexture?R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,F,vt,Tt,Dt,U.image.data):U.isCompressedTexture?R.compressedTexSubImage2D(R.TEXTURE_2D,H,S.x,S.y,U.mipmaps[0].width,U.mipmaps[0].height,Tt,U.mipmaps[0].data):R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,Tt,Dt,U.image),H===0&&B.generateMipmaps&&R.generateMipmap(R.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(S,U,B,H,F=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=S.max.x-S.min.x+1,Tt=S.max.y-S.min.y+1,Dt=S.max.z-S.min.z+1,Nt=pt.convert(H.format),kt=pt.convert(H.type);let Bt;if(H.isData3DTexture)M.setTexture3D(H,0),Bt=R.TEXTURE_3D;else if(H.isDataArrayTexture||H.isCompressedArrayTexture)M.setTexture2DArray(H,0),Bt=R.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,H.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,H.unpackAlignment);const Ht=R.getParameter(R.UNPACK_ROW_LENGTH),ce=R.getParameter(R.UNPACK_IMAGE_HEIGHT),Le=R.getParameter(R.UNPACK_SKIP_PIXELS),pe=R.getParameter(R.UNPACK_SKIP_ROWS),Je=R.getParameter(R.UNPACK_SKIP_IMAGES),ie=B.isCompressedTexture?B.mipmaps[F]:B.image;R.pixelStorei(R.UNPACK_ROW_LENGTH,ie.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ie.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,S.min.x),R.pixelStorei(R.UNPACK_SKIP_ROWS,S.min.y),R.pixelStorei(R.UNPACK_SKIP_IMAGES,S.min.z),B.isDataTexture||B.isData3DTexture?R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),R.compressedTexSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,ie.data)):R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie),R.pixelStorei(R.UNPACK_ROW_LENGTH,Ht),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ce),R.pixelStorei(R.UNPACK_SKIP_PIXELS,Le),R.pixelStorei(R.UNPACK_SKIP_ROWS,pe),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Je),F===0&&H.generateMipmaps&&R.generateMipmap(Bt),q.unbindTexture()},this.initTexture=function(S){S.isCubeTexture?M.setTextureCube(S,0):S.isData3DTexture?M.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?M.setTexture2DArray(S,0):M.setTexture2D(S,0),q.unbindTexture()},this.resetState=function(){I=0,L=0,P=null,q.reset(),zt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return an}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===pa?"display-p3":"srgb",e.unpackColorSpace=Qt.workingColorSpace===ts?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ve?Vn:ic}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Vn?ve:on}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Pg extends Ec{}Pg.prototype.isWebGL1Renderer=!0;class bc{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Ut(t),this.near=e,this.far=n}clone(){return new bc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Lg extends ae{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class Tc{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Be()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,s=this.stride;rt.far||e.push({distance:l,point:Ui.clone(),uv:qe.getInterpolation(Ui,Tr,Fi,Ar,dl,Vs,fl,new tt),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function wr(i,t,e,n,r,s){fi.subVectors(i,e).addScalar(.5).multiply(n),r!==void 0?(Oi.x=s*fi.x-r*fi.y,Oi.y=r*fi.x+s*fi.y):Oi.copy(fi),i.copy(t),i.x+=Oi.x,i.y+=Oi.y,i.applyMatrix4(Ac)}const pl=new C,ml=new ee,gl=new ee,Ig=new C,_l=new Yt,Rr=new C,Gs=new ln,vl=new Yt,ks=new Ti;class d0 extends Ce{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=qa,this.bindMatrix=new Yt,this.bindMatrixInverse=new Yt,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wn),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;d.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(d);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),E=Math.min(f.count,o.start+o.count);for(let _=p,b=E-1;_l)continue;d.applyMatrix4(this.matrixWorld);const L=t.ray.origin.distanceTo(d);Lt.far||e.push({distance:L,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class g0 extends xe{constructor(t,e,n,r,s,o,a,l,c){super(t,e,n,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ze{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(r),e.push(s),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=n[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,n[r]===o)return r/(s-1);const h=n[r],d=n[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=e||(o.isVector2?new tt:new C);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new C,r=[],s=[],o=[],a=new C,l=new Yt;for(let m=0;m<=t;m++){const g=m/t;r[m]=this.getTangentAt(g,new C)}s[0]=new C,o[0]=new C;let c=Number.MAX_VALUE;const h=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=t;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(ue(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(l.makeRotationAxis(a,g))}o[m].crossVectors(r[m],s[m])}if(e===!0){let m=Math.acos(ue(s[0].dot(s[t]),-1,1));m/=t,r[0].dot(a.crossVectors(s[0],s[t]))>0&&(m=-m);for(let g=1;g<=t;g++)s[g].applyMatrix4(l.makeRotationAxis(r[g],m*g)),o[g].crossVectors(r[g],s[g])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ma extends Ze{constructor(t=0,e=0,n=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new tt,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=r[(a-1)%s]:(Ir.subVectors(r[0],r[1]).add(r[0]),c=Ir);const u=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Pl(a,l.x,c.x,h.x,u.x),Pl(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=r[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qi extends Ll{constructor(t){super(t),this.uuid=Be(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n80*e){a=c=i[0],l=h=i[1];for(let g=e;gc&&(c=u),d>h&&(h=d);m=Math.max(c-a,h-l),m=m!==0?32767/m:0}return Zi(s,o,e,a,l,m,0),o}};function Uc(i,t,e,n,r){let s,o;if(r===f_(i,t,e,n)>0)for(s=t;s=t;s-=n)o=Dl(s,i[s],i[s+1],o);return o&&is(o,o.next)&&(Ji(o),o=o.next),o}function Wn(i,t){if(!i)return i;t||(t=i);let e=i,n;do if(n=!1,!e.steiner&&(is(e,e.next)||re(e.prev,e,e.next)===0)){if(Ji(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Zi(i,t,e,n,r,s,o){if(!i)return;!o&&s&&o_(i,n,r,s);let a=i,l,c;for(;i.prev!==i.next;){if(l=i.prev,c=i.next,s?Qg(i,n,r,s):$g(i)){t.push(l.i/e|0),t.push(i.i/e|0),t.push(c.i/e|0),Ji(i),i=c.next,a=c.next;continue}if(i=c,i===a){o?o===1?(i=t_(Wn(i),t,e),Zi(i,t,e,n,r,s,2)):o===2&&e_(i,t,e,n,r,s):Zi(Wn(i),t,e,n,r,s,1);break}}}function $g(i){const t=i.prev,e=i,n=i.next;if(re(t,e,n)>=0)return!1;const r=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=rs?r>o?r:o:s>o?s:o,m=a>l?a>c?a:c:l>c?l:c;let g=n.next;for(;g!==t;){if(g.x>=h&&g.x<=d&&g.y>=u&&g.y<=m&&_i(r,a,s,l,o,c,g.x,g.y)&&re(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Qg(i,t,e,n){const r=i.prev,s=i,o=i.next;if(re(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,h=r.y,u=s.y,d=o.y,m=al?a>c?a:c:l>c?l:c,f=h>u?h>d?h:d:u>d?u:d,p=oa(m,g,t,e,n),E=oa(x,f,t,e,n);let _=i.prevZ,b=i.nextZ;for(;_&&_.z>=p&&b&&b.z<=E;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0||(_=_.prevZ,b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;_&&_.z>=p;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;b&&b.z<=E;){if(b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function t_(i,t,e){let n=i;do{const r=n.prev,s=n.next.next;!is(r,s)&&Oc(r,n,n.next,s)&&Ki(r,s)&&Ki(s,r)&&(t.push(r.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ji(n),Ji(n.next),n=i=s),n=n.next}while(n!==i);return Wn(n)}function e_(i,t,e,n,r,s){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&h_(o,a)){let l=Fc(o,a);o=Wn(o,o.next),l=Wn(l,l.next),Zi(o,t,e,n,r,s,0),Zi(l,t,e,n,r,s,0);return}a=a.next}o=o.next}while(o!==i)}function n_(i,t,e,n){const r=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const d=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=s&&d>n&&(n=d,r=e.x=e.x&&e.x>=l&&s!==e.x&&_i(or.x||e.x===r.x&&a_(r,e)))&&(r=e,h=u)),e=e.next;while(e!==a);return r}function a_(i,t){return re(i.prev,i,t.prev)<0&&re(t.next,i,i.next)<0}function o_(i,t,e,n){let r=i;do r.z===0&&(r.z=oa(r.x,r.y,t,e,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,l_(r)}function l_(i){let t,e,n,r,s,o,a,l,c=1;do{for(e=i,i=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(r=e,e=e.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:i=r,r.prevZ=s,s=r;e=n}s.nextZ=null,c*=2}while(o>1);return i}function oa(i,t,e,n,r){return i=(i-e)*r|0,t=(t-n)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function c_(i){let t=i,e=i;do(t.x=(i-o)*(s-a)&&(i-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(r-o)*(n-a)}function h_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!u_(i,t)&&(Ki(i,t)&&Ki(t,i)&&d_(i,t)&&(re(i.prev,i,t.prev)||re(i,t.prev,t))||is(i,t)&&re(i.prev,i,i.next)>0&&re(t.prev,t,t.next)>0)}function re(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function is(i,t){return i.x===t.x&&i.y===t.y}function Oc(i,t,e,n){const r=Ur(re(i,t,e)),s=Ur(re(i,t,n)),o=Ur(re(e,n,i)),a=Ur(re(e,n,t));return!!(r!==s&&o!==a||r===0&&Nr(i,e,t)||s===0&&Nr(i,n,t)||o===0&&Nr(e,i,n)||a===0&&Nr(e,t,n))}function Nr(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Ur(i){return i>0?1:i<0?-1:0}function u_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Oc(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Ki(i,t){return re(i.prev,i,i.next)<0?re(i,t,i.next)>=0&&re(i,i.prev,t)>=0:re(i,t,i.prev)<0||re(i,i.next,t)<0}function d_(i,t){let e=i,n=!1;const r=(i.x+t.x)/2,s=(i.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==i);return n}function Fc(i,t){const e=new la(i.i,i.x,i.y),n=new la(t.i,t.x,t.y),r=i.next,s=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function Dl(i,t,e,n){const r=new la(i,t,e);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Ji(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function la(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function f_(i,t,e,n){let r=0;for(let s=t,o=e-n;s2&&i[t-1].equals(i[0])&&i.pop()}function Nl(i,t){for(let e=0;eNumber.EPSILON){const j=Math.sqrt(et),yt=Math.sqrt(v*v+N*N),ut=ct.x-M/j,_t=ct.y+ft/j,Ct=W.x-N/yt,Ft=W.y+v/yt,Q=((Ct-ut)*N-(Ft-_t)*v)/(ft*N-M*v);at=ut+ft*Q-R.x,q=_t+M*Q-R.y;const jt=at*at+q*q;if(jt<=2)return new tt(at,q);Et=Math.sqrt(jt/2)}else{let j=!1;ft>Number.EPSILON?v>Number.EPSILON&&(j=!0):ft<-Number.EPSILON?v<-Number.EPSILON&&(j=!0):Math.sign(M)===Math.sign(N)&&(j=!0),j?(at=-M,q=ft,Et=Math.sqrt(et)):(at=ft,q=M,Et=Math.sqrt(et/2))}return new tt(at/Et,q/Et)}const k=[];for(let R=0,ct=D.length,W=ct-1,at=R+1;R=0;R--){const ct=R/f,W=m*Math.cos(ct*Math.PI/2),at=g*Math.sin(ct*Math.PI/2)+x;for(let q=0,Et=D.length;q=0;){const at=W;let q=W-1;q<0&&(q=R.length-1);for(let Et=0,ft=h+f*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class v_ extends cn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=fa,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function Or(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function x_(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function y_(i){function t(r,s){return i[r]-i[s]}const e=i.length,n=new Array(e);for(let r=0;r!==e;++r)n[r]=r;return n.sort(t),n}function Ol(i,t,e){const n=i.length,r=new i.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)r[o++]=i[a+l]}return r}function Hc(i,t,e,n){let r=1,s=i[0];for(;s!==void 0&&s[n]===void 0;)s=i[r++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=i[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=i[r++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=i[r++];while(s!==void 0)}class rs{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,r=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(r!==void 0&&x_(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),r=this.getInterpolation()===_s,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,r=new n(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}Ke.prototype.TimeBufferType=Float32Array;Ke.prototype.ValueBufferType=Float32Array;Ke.prototype.DefaultInterpolation=kr;class wi extends Ke{}wi.prototype.ValueTypeName="bool";wi.prototype.ValueBufferType=Array;wi.prototype.DefaultInterpolation=Gr;wi.prototype.InterpolantFactoryMethodLinear=void 0;wi.prototype.InterpolantFactoryMethodSmooth=void 0;class Vc extends Ke{}Vc.prototype.ValueTypeName="color";class Jr extends Ke{}Jr.prototype.ValueTypeName="number";class b_ extends rs{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(r-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Tn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class tr extends Ke{InterpolantFactoryMethodLinear(t){return new b_(this.times,this.values,this.getValueSize(),t)}}tr.prototype.ValueTypeName="quaternion";tr.prototype.DefaultInterpolation=kr;tr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ri extends Ke{}Ri.prototype.ValueTypeName="string";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Gr;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;class $r extends Ke{}$r.prototype.ValueTypeName="vector";class x0{constructor(t,e=-1,n,r=Zh){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=Be(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(A_(n[o]).scale(r));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Ke.toJSON(n[s]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let d=r[u];d||(r[u]=d=[]),d.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,m,g,x){if(m.length!==0){const f=[],p=[];Hc(m,f,p,g),f.length!==0&&x.push(new u(d,f,p))}},r=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(rn[t]!==void 0){rn[t].push({onLoad:e,onProgress:n,onError:r});return}rn[t]=[],rn[t].push({onLoad:e,onProgress:n,onError:r});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=rn[t],u=c.body.getReader(),d=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),m=d?parseInt(d):0,g=m!==0;let x=0;const f=new ReadableStream({start(p){E();function E(){u.read().then(({done:_,value:b})=>{if(_)p.close();else{x+=b.byteLength;const I=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:m});for(let L=0,P=h.length;L{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,m=new TextDecoder(d);return c.arrayBuffer().then(g=>m.decode(g))}}}).then(c=>{xn.add(t,c);const h=rn[t];delete rn[t];for(let u=0,d=h.length;u{const h=rn[t];if(h===void 0)throw this.manager.itemError(t),c;delete rn[t];for(let u=0,d=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class P_ extends er{constructor(t){super(t)}load(t,e,n,r){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=xn.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=ji("img");function l(){h(),xn.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),r&&r(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class L_ extends er{constructor(t){super(t)}load(t,e,n,r){const s=new xe,o=new P_(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,r),s}}class ss extends ae{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const js=new Yt,Fl=new C,Bl=new C;class ba{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Yt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new va,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ee(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Fl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Fl),Bl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bl),e.updateMatrixWorld(),js.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(js),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(js)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class D_ extends ba{constructor(){super(new Re(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Ei*2*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||r!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=r,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class M0 extends ss{constructor(t,e,n=0,r=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.distance=n,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new D_}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const zl=new Yt,Hi=new C,Zs=new C;class I_ extends ba{constructor(){super(new Re(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ee(2,1,1,1),new ee(0,1,1,1),new ee(3,1,1,1),new ee(1,1,1,1),new ee(3,0,1,1),new ee(1,0,1,1)],this._cubeDirections=[new C(1,0,0),new C(-1,0,0),new C(0,0,1),new C(0,0,-1),new C(0,1,0),new C(0,-1,0)],this._cubeUps=[new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,0,1),new C(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),Hi.setFromMatrixPosition(t.matrixWorld),n.position.copy(Hi),Zs.copy(n.position),Zs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Zs),n.updateMatrixWorld(),r.makeTranslation(-Hi.x,-Hi.y,-Hi.z),zl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zl)}}class S0 extends ss{constructor(t,e,n=0,r=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new I_}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class N_ extends ba{constructor(){super(new gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Hl extends ss{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.shadow=new N_}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class U_ extends ss{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class E0{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return xn.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){r&&r(c),xn.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});xn.add(t,l),s.manager.itemStart(t)}}class A0{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Vl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Vl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Vl(){return(typeof performance=="undefined"?Date:performance).now()}const Ta="\\[\\]\\.:\\/",O_=new RegExp("["+Ta+"]","g"),Aa="[^"+Ta+"]",F_="[^"+Ta.replace("\\.","")+"]",B_=/((?:WC+[\/:])*)/.source.replace("WC",Aa),z_=/(WCOD+)?/.source.replace("WCOD",F_),H_=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Aa),V_=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Aa),G_=new RegExp("^"+B_+z_+H_+V_+"$"),k_=["material","materials","bones","map"];class W_{constructor(t,e,n){const r=n||$t.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];r!==void 0&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=n.length;r!==s;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class $t{constructor(t,e,n){this.path=e,this.parsedPath=n||$t.parseTrackName(e),this.node=$t.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new $t.Composite(t,e,n):new $t(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(O_,"")}static parseTrackName(t){const e=G_.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=n.nodeName.substring(r+1);k_.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(qt-=it),te<-Math.PI?te+=it:te>Math.PI&&(te-=it),qt<=te?a.theta=Math.max(qt,Math.min(te,a.theta)):a.theta=a.theta>(qt+te)/2?Math.max(qt,a.theta):Math.min(te,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&L||n.object.isOrthographicCamera?a.radius=$(a.radius):a.radius=$(a.radius*c),w.setFromSpherical(a),w.applyQuaternion(dt),Zt.copy(n.target).add(w),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let ge=!1;if(n.zoomToCursor&&L){let Kt=null;if(n.object.isPerspectiveCamera){const le=w.length();Kt=$(le*c);const be=le-Kt;n.object.position.addScaledVector(b,be),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const le=new C(I.x,I.y,0);le.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ge=!0;const be=new C(I.x,I.y,0);be.unproject(n.object),n.object.position.sub(be).add(le),n.object.updateMatrixWorld(),Kt=w.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Kt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Kt).add(n.object.position):(Br.origin.copy(n.object.position),Br.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Br.direction))o||8*(1-T.dot(n.object.quaternion))>o||st.distanceToSquared(n.target)>0?(n.dispatchEvent(Xl),Rt.copy(n.object.position),T.copy(n.object.quaternion),st.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",jt),n.domElement.removeEventListener("pointerdown",M),n.domElement.removeEventListener("pointercancel",N),n.domElement.removeEventListener("wheel",j),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Ct),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,a=new kl,l=new kl;let c=1;const h=new C,u=new tt,d=new tt,m=new tt,g=new tt,x=new tt,f=new tt,p=new tt,E=new tt,_=new tt,b=new C,I=new tt;let L=!1;const P=[],V={};let lt=!1;function y(w){return w!==null?2*Math.PI/60*n.autoRotateSpeed*w:2*Math.PI/60/60*n.autoRotateSpeed}function A(w){const ot=Math.abs(w*.01);return Math.pow(.95,n.zoomSpeed*ot)}function Z(w){l.theta-=w}function rt(w){l.phi-=w}const D=function(){const w=new C;return function(dt,Rt){w.setFromMatrixColumn(Rt,0),w.multiplyScalar(-dt),h.add(w)}}(),z=function(){const w=new C;return function(dt,Rt){n.screenSpacePanning===!0?w.setFromMatrixColumn(Rt,1):(w.setFromMatrixColumn(Rt,0),w.crossVectors(n.object.up,w)),w.multiplyScalar(dt),h.add(w)}}(),O=function(){const w=new C;return function(dt,Rt){const T=n.domElement;if(n.object.isPerspectiveCamera){const st=n.object.position;w.copy(st).sub(n.target);let it=w.length();it*=Math.tan(n.object.fov/2*Math.PI/180),D(2*dt*it/T.clientHeight,n.object.matrix),z(2*Rt*it/T.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(D(dt*(n.object.right-n.object.left)/n.object.zoom/T.clientWidth,n.object.matrix),z(Rt*(n.object.top-n.object.bottom)/n.object.zoom/T.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function k(w,ot){if(!n.zoomToCursor)return;L=!0;const dt=n.domElement.getBoundingClientRect(),Rt=w-dt.left,T=ot-dt.top,st=dt.width,it=dt.height;I.x=Rt/st*2-1,I.y=-(T/it)*2+1,b.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function $(w){return Math.max(n.minDistance,Math.min(n.maxDistance,w))}function K(w){u.set(w.clientX,w.clientY)}function mt(w){k(w.clientX,w.clientX),p.set(w.clientX,w.clientY)}function Lt(w){g.set(w.clientX,w.clientY)}function G(w){d.set(w.clientX,w.clientY),m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d),n.update()}function nt(w){E.set(w.clientX,w.clientY),_.subVectors(E,p),_.y>0?Y(A(_.y)):_.y<0&&X(A(_.y)),p.copy(E),n.update()}function gt(w){x.set(w.clientX,w.clientY),f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x),n.update()}function Mt(w){k(w.clientX,w.clientY),w.deltaY<0?X(A(w.deltaY)):w.deltaY>0&&Y(A(w.deltaY)),n.update()}function bt(w){let ot=!1;switch(w.code){case n.keys.UP:w.ctrlKey||w.metaKey||w.shiftKey?rt(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,n.keyPanSpeed),ot=!0;break;case n.keys.BOTTOM:w.ctrlKey||w.metaKey||w.shiftKey?rt(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,-n.keyPanSpeed),ot=!0;break;case n.keys.LEFT:w.ctrlKey||w.metaKey||w.shiftKey?Z(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(n.keyPanSpeed,0),ot=!0;break;case n.keys.RIGHT:w.ctrlKey||w.metaKey||w.shiftKey?Z(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(-n.keyPanSpeed,0),ot=!0;break}ot&&(w.preventDefault(),n.update())}function xt(w){if(P.length===1)u.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);u.set(dt,Rt)}}function Ot(w){if(P.length===1)g.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);g.set(dt,Rt)}}function At(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);p.set(0,T)}function R(w){n.enableZoom&&At(w),n.enablePan&&Ot(w)}function ct(w){n.enableZoom&&At(w),n.enableRotate&&xt(w)}function W(w){if(P.length==1)d.set(w.pageX,w.pageY);else{const dt=pt(w),Rt=.5*(w.pageX+dt.x),T=.5*(w.pageY+dt.y);d.set(Rt,T)}m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d)}function at(w){if(P.length===1)x.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);x.set(dt,Rt)}f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x)}function q(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);E.set(0,T),_.set(0,Math.pow(E.y/p.y,n.zoomSpeed)),Y(_.y),p.copy(E);const st=(w.pageX+ot.x)*.5,it=(w.pageY+ot.y)*.5;k(st,it)}function Et(w){n.enableZoom&&q(w),n.enablePan&&at(w)}function ft(w){n.enableZoom&&q(w),n.enableRotate&&W(w)}function M(w){n.enabled!==!1&&(P.length===0&&(n.domElement.setPointerCapture(w.pointerId),n.domElement.addEventListener("pointermove",v),n.domElement.addEventListener("pointerup",N)),Gt(w),w.pointerType==="touch"?Ft(w):et(w))}function v(w){n.enabled!==!1&&(w.pointerType==="touch"?Q(w):J(w))}function N(w){switch(It(w),P.length){case 0:n.domElement.releasePointerCapture(w.pointerId),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n.dispatchEvent(ql),s=r.NONE;break;case 1:const ot=P[0],dt=V[ot];Ft({pointerId:ot,pageX:dt.x,pageY:dt.y});break}}function et(w){let ot;switch(w.button){case 0:ot=n.mouseButtons.LEFT;break;case 1:ot=n.mouseButtons.MIDDLE;break;case 2:ot=n.mouseButtons.RIGHT;break;default:ot=-1}switch(ot){case qn.DOLLY:if(n.enableZoom===!1)return;mt(w),s=r.DOLLY;break;case qn.ROTATE:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enablePan===!1)return;Lt(w),s=r.PAN}else{if(n.enableRotate===!1)return;K(w),s=r.ROTATE}break;case qn.PAN:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enableRotate===!1)return;K(w),s=r.ROTATE}else{if(n.enablePan===!1)return;Lt(w),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function J(w){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;G(w);break;case r.DOLLY:if(n.enableZoom===!1)return;nt(w);break;case r.PAN:if(n.enablePan===!1)return;gt(w);break}}function j(w){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(w.preventDefault(),n.dispatchEvent(Ks),Mt(yt(w)),n.dispatchEvent(ql))}function yt(w){const ot=w.deltaMode,dt={clientX:w.clientX,clientY:w.clientY,deltaY:w.deltaY};switch(ot){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return w.ctrlKey&&!lt&&(dt.deltaY*=10),dt}function ut(w){w.key==="Control"&&(lt=!0,n.domElement.getRootNode().addEventListener("keyup",_t,{passive:!0,capture:!0}))}function _t(w){w.key==="Control"&&(lt=!1,n.domElement.getRootNode().removeEventListener("keyup",_t,{passive:!0,capture:!0}))}function Ct(w){n.enabled===!1||n.enablePan===!1||bt(w)}function Ft(w){switch(wt(w),P.length){case 1:switch(n.touches.ONE){case Yn.ROTATE:if(n.enableRotate===!1)return;xt(w),s=r.TOUCH_ROTATE;break;case Yn.PAN:if(n.enablePan===!1)return;Ot(w),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case Yn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;R(w),s=r.TOUCH_DOLLY_PAN;break;case Yn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(w),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function Q(w){switch(wt(w),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;W(w),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;at(w),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(w),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ft(w),n.update();break;default:s=r.NONE}}function jt(w){n.enabled!==!1&&w.preventDefault()}function Gt(w){P.push(w.pointerId)}function It(w){delete V[w.pointerId];for(let ot=0;ot{i instanceof Array?i.forEach(Gc):(i.map&&i.map.dispose(),i.dispose())},kc=i=>{i.geometry&&i.geometry.dispose(),i.material&&Gc(i.material),i.texture&&i.texture.dispose(),i.children&&i.children.forEach(kc)},j_=i=>{if(i&&i.children)for(;i.children.length;){const t=i.children[0];i.remove(t),kc(t)}};var wa={exports:{}},Z_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=(r-n)/2,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},K_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=r-n,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},Wc=Z_,Xc=K_;wa.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?Xc(t,e,n,r):Wc(t,e,n,r)};wa.exports.nested=Xc;wa.exports.flat=Wc;const J_=""+new URL("ring2-a1b91808-balabala-1784132792831.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1784132792831.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1784132792831.png",import.meta.url).href;const t0={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return Fa(Oa({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new Vi,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(i=>Number(i.value)||0).reduce((i,t)=>i+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new Lg,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:J_,width:5,position:new C(0,0,-.01),color:"#00ffff"}),this.createPlane({url:$_,width:6.5,position:new C(0,0,-.02),color:"#00ffff"}),this.createPlane({url:Q_,width:5.5,position:new C(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(i){let t={url:"texture/ring1.png",width:5.5,z:0,position:new C(0,0,0),animate:!1,color:null},e=Object.assign(t,i);const n=new Qi(e.width,e.width),r=new _a({map:this.getTexture(e.url),transparent:!0,side:ke,depthTest:!1});e.color&&(r.color=new Ut(e.color));const s=new Ce(n,r);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=Pn.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(i){const t=new L_().load(i);return t.wrapS=t.wrapT=Vr,t},createPie(){if(!this.data.length||this.count<=0)return;let i=0,t=0;for(var e=0;e=this.data.length&&(i=0,this.loopComplete&&this.loopComplete()),this.chooseRing(i)},chooseRing(i=0,t=!1){if(!this.pieGroup.children.length)return;let e=i-1<0?this.data.length-1:i-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=i;let r=this.pieGroup.children[i];r&&(t||n&&(Pn.to(n.scale,{z:1}),Pn.to(n.material,{opacity:this.opacity})),Pn.to(r.scale,{z:2}),Pn.to(r.material,{opacity:.8}))},addRing(i={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,i),n=new qi;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let r=n.getPoints(e.segments),s=new qi;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new qi(r.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Ea(a,l);let h=new v_({color:e.color,transparent:!0,opacity:this.opacity,side:ke});const u=new Ce(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var i=this.width/this.height;this.camera=new Re(30,i,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new Ec({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let i=new Hl(16777215,2);i.position.set(200,300,200);let t=new Hl(16777215,2);t.position.set(-200,-300,-200);let e=new U_(16777215,2);this.scene.add(i),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new X_(0),this.scene.add(this.axes)},initControls(){this.controls=new Y_(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.resume)==null?void 0:t.call(i)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),!(this.data.length<2)&&(this.timer=window.setInterval(()=>{this.loopChange()},this.delay))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.pause)==null?void 0:t.call(i)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const i=this.$el;!i||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(i);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(i),this.isVisible=this.isElementVisible(i),this.isVisible||this.stop())},isElementVisible(i){if(!i||typeof window.getComputedStyle!="function")return!0;let t=i;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=i.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const i=this.$refs.pieDom;this.width=(i==null?void 0:i.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(i==null?void 0:i.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let i=this.width/this.height;this.camera.aspect=i,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var i,t,e,n;this.isDestroyed=!0,this.prevMesh&&(Pn.set(this.prevMesh.scale,{z:1}),Pn.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(i=this.visibilityObserver)==null?void 0:i.disconnect)==null||t.call(i),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(r=>{var s;return(s=r==null?void 0:r.kill)==null?void 0:s.call(r)}),this.planeTweens=[],j_(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},e0={class:"three-pie-wrap"},n0={class:"three-pie",ref:"pieDom"},i0={class:"three-pie-slot"};function r0(i,t,e,n,r,s){return ih(),rh("div",e0,[za("div",n0,null,512),za("div",i0,[sh(i.$slots,"default",{data:s.currentData})])])}const L0=nh(t0,[["render",r0]]),gn=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),D0=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),I0=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),N0=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function U0(i=gn.canvasHeight){const t=Math.max(gn.canvasHeight,Number(i)||gn.canvasHeight),e=Math.floor((t-gn.sidePanelTop-gn.sidePanelBottom-gn.sideCardGap*3)/4);return Math.max(gn.sideCardMinHeight,e)}function O0(i,t=1){const e=Math.max(1,Number(t)||1);return i*e+gn.sideCardGap*(e-1)}export{Y_ as $,Va as A,$i as B,Ut as C,ke as D,p0 as E,bc as F,Vi as G,Rc as H,oe as I,qi as J,N0 as K,ya as L,L0 as M,_e as N,ae as O,Qi as P,Ic as Q,Vr as R,ve as S,zc as T,D0 as U,C as V,I0 as W,A0 as X,Ec as Y,gc as Z,Re as _,_a as a,qn as a0,Lg as a1,X_ as a2,vi as a3,P0 as a4,m0 as a5,tt as a6,Yt as a7,Tn as a8,Ea as a9,Tc as aA,Bn as aB,cn as aC,$t as aD,d0 as aE,Cc as aF,wc as aG,x0 as aH,Ng as aI,kr as aJ,Qt as aK,Ya as aL,us as aM,Pi as aN,ea as aO,Gr as aP,bn as aQ,xe as aR,$r as aS,Jr as aT,tr as aU,rs as aV,w_ as aW,wn as aa,b0 as ab,w0 as ac,Zr as ad,_0 as ae,ln as af,ht as ag,Ye as ah,zu as ai,An as aj,ee as ak,C0 as al,yu as am,R0 as an,l0 as ao,h0 as ap,c0 as aq,er as ar,E0 as as,on as at,M0 as au,v0 as av,f0 as aw,yl as ax,L_ as ay,T0 as az,Ce as b,U_ as c,Hl as d,j_ as e,S0 as f,v_ as g,__ as h,ch as i,On as j,vh as k,fh as l,Bg as m,Dg as n,u0 as o,y0 as p,gn as q,U0 as r,O0 as s,g0 as t,We as u,we as v,ze as w,Hg as x,Bc as y,ye as z}; diff --git a/docs/assets/screen2Standard-cdb21878-balabala-1784132466083.css b/docs/assets/screen2Standard-cdb21878-balabala-1784132792831.css similarity index 100% rename from docs/assets/screen2Standard-cdb21878-balabala-1784132466083.css rename to docs/assets/screen2Standard-cdb21878-balabala-1784132792831.css diff --git a/docs/assets/stack-7a426057-balabala-1784132466083.png b/docs/assets/stack-7a426057-balabala-1784132792831.png similarity index 100% rename from docs/assets/stack-7a426057-balabala-1784132466083.png rename to docs/assets/stack-7a426057-balabala-1784132792831.png diff --git a/docs/assets/title-zs1-c15a5ee8-balabala-1784132466083.svg b/docs/assets/title-zs1-c15a5ee8-balabala-1784132792831.svg similarity index 100% rename from docs/assets/title-zs1-c15a5ee8-balabala-1784132466083.svg rename to docs/assets/title-zs1-c15a5ee8-balabala-1784132792831.svg diff --git a/docs/assets/town-f8c0c9cc-balabala-1784132466083.png b/docs/assets/town-f8c0c9cc-balabala-1784132792831.png similarity index 100% rename from docs/assets/town-f8c0c9cc-balabala-1784132466083.png rename to docs/assets/town-f8c0c9cc-balabala-1784132792831.png diff --git a/docs/assets/townshipBoundaries-822b7d9e-1784132466083.js b/docs/assets/townshipBoundaries-822b7d9e-1784132792831.js similarity index 100% rename from docs/assets/townshipBoundaries-822b7d9e-1784132466083.js rename to docs/assets/townshipBoundaries-822b7d9e-1784132792831.js diff --git a/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784132466083.png b/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784132792831.png similarity index 100% rename from docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784132466083.png rename to docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784132792831.png diff --git a/docs/assets/yakApi-08a6746e-1784132466083.js b/docs/assets/yakApi-dd638538-1784132792831.js similarity index 98% rename from docs/assets/yakApi-08a6746e-1784132466083.js rename to docs/assets/yakApi-dd638538-1784132792831.js index 8b27835..aae2ab7 100644 --- a/docs/assets/yakApi-08a6746e-1784132466083.js +++ b/docs/assets/yakApi-dd638538-1784132792831.js @@ -1 +1 @@ -var R=Object.defineProperty,A=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))$.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))_.call(t,n)&&h(e,n,t[n]);return e},N=(e,t)=>A(e,Y(t));var l=(e,t,n)=>new Promise((r,a)=>{var g=c=>{try{s(n.next(c))}catch(k){a(k)}},y=c=>{try{s(n.throw(c))}catch(k){a(k)}},s=c=>c.done?r(c.value):Promise.resolve(c.value).then(g,y);s((n=n.apply(e,t)).next())});import{r as E,n as p}from"./index-ed255eef-1784132466083.js";const w="/jsyApi",o="/openApi",S=new Date().getFullYear();function F(e,t){return/^https?:\/\//.test(t)?t:`${e}${t.startsWith("/")?t:`/${t}`}`}function C(e){if((e==null?void 0:e.success)===!1&&(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"接口请求失败");return p(e)}function i(e,t,n,r={}){return E(F(e,t),{params:n,timeout:r.timeout||18e3}).then(C)}function T(){return i(w,"/api/yak/distribution").then(e=>m(e))}function x(){return i(w,"/api/yak/structure").then(e=>m(e))}function z(){return i(w,"/api/yak/forecast").then(e=>m(e))}function D(e=S){return i(o,"/yak/trade/overview",typeof e=="object"?e:{year:e}).then(n=>n||{})}function V(){return i(o,"/yak/trade/options").then(e=>e||{})}function I(e={}){return i(o,"/yak/trade/records",e).then(t=>t||{})}function J(e={}){return i(o,"/yak/epidemic/analysis",e).then(t=>t||{})}function q(e={}){return i(o,"/yak/epidemic/records",e).then(t=>t||{})}function L(e={}){return i(o,"/yak/epidemic/stats",e).then(t=>t||{})}function U(e={}){return i(o,"/yak/epidemic/village-stats",e).then(t=>t||{})}function W(e){return i(o,"/yak/epidemic/detail",{earTag:e}).then(t=>t||null)}function G(){return l(this,null,function*(){return(yield T()).map((t,n)=>({key:u(t,["areaCode","area_code","code","id"],`yak-town-${n}`),name:u(t,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:f(u(t,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(t=>t.name&&Number.isFinite(t.value)).sort((t,n)=>n.value-t.value)})}function H(){return l(this,null,function*(){const t=(yield x()).map((n,r)=>{const a=u(n,["sex","gender"],""),g=B(a),y=u(n,["ageRange","age_range","age","name","type"],""),s=[g,y].filter(Boolean).join(" ")||`结构${r+1}`;return{key:u(n,["id","key"],`${s}-${r}`),name:s,value:f(u(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return j(t)})}function K(){return l(this,null,function*(){return(yield z()).map((t,n)=>{const r=u(t,["month","date","name","time"],`预测${n+1}`);return{key:`${r}-${n}`,name:M(r),value:f(u(t,["number","count","yakCount","value"])),unit:"头",extra:b("增速",u(t,["speed","growth","growthRate","rate"]))}}).filter(t=>t.name&&Number.isFinite(t.value))})}function Q(){return l(this,null,function*(){const e=yield D(),t=m(e.usageCounts||e.usage_counts);return(t.length?t:m(e.startTownCounts||e.start_town_counts)).map((r,a)=>({key:u(r,["name","label"],`trade-${a}`),name:u(r,["name","label"],`类型${a+1}`),value:f(u(r,["headCount","head_count","amount","value","count"])),unit:"头",extra:b("记录",u(r,["recordCount","record_count"]))})).filter(r=>r.name&&Number.isFinite(r.value)).sort((r,a)=>a.value-r.value)})}function m(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.records)?e.records:Array.isArray(e==null?void 0:e.data)?e.data:[]}function j(e=[]){const t=new Map;return e.forEach(n=>{const r=t.get(n.name)||N(v({},n),{value:0});r.value+=n.value,t.set(n.name,r)}),[...t.values()].sort((n,r)=>r.value-n.value)}function u(e,t,n=""){for(const r of t){const a=e==null?void 0:e[r];if(a!=null&&a!=="")return a}return n}function B(e){return["boy","male","公","公牛"].includes(e)?"公牛":["girl","female","母","母牛"].includes(e)?"母牛":e||""}function M(e){const t=String(e||""),n=t.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:t}function b(e,t){const n=f(t);return Number.isFinite(n)?`${e}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function f(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}export{G as a,K as b,H as c,V as d,I as e,J as f,D as g,q as h,L as i,U as j,W as k,Q as l}; +var R=Object.defineProperty,A=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))$.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))_.call(t,n)&&h(e,n,t[n]);return e},N=(e,t)=>A(e,Y(t));var l=(e,t,n)=>new Promise((r,a)=>{var g=c=>{try{s(n.next(c))}catch(k){a(k)}},y=c=>{try{s(n.throw(c))}catch(k){a(k)}},s=c=>c.done?r(c.value):Promise.resolve(c.value).then(g,y);s((n=n.apply(e,t)).next())});import{r as E,n as p}from"./index-a1b5e9c0-1784132792831.js";const w="/jsyApi",o="/openApi",S=new Date().getFullYear();function F(e,t){return/^https?:\/\//.test(t)?t:`${e}${t.startsWith("/")?t:`/${t}`}`}function C(e){if((e==null?void 0:e.success)===!1&&(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"接口请求失败");return p(e)}function i(e,t,n,r={}){return E(F(e,t),{params:n,timeout:r.timeout||18e3}).then(C)}function T(){return i(w,"/api/yak/distribution").then(e=>m(e))}function x(){return i(w,"/api/yak/structure").then(e=>m(e))}function z(){return i(w,"/api/yak/forecast").then(e=>m(e))}function D(e=S){return i(o,"/yak/trade/overview",typeof e=="object"?e:{year:e}).then(n=>n||{})}function V(){return i(o,"/yak/trade/options").then(e=>e||{})}function I(e={}){return i(o,"/yak/trade/records",e).then(t=>t||{})}function J(e={}){return i(o,"/yak/epidemic/analysis",e).then(t=>t||{})}function q(e={}){return i(o,"/yak/epidemic/records",e).then(t=>t||{})}function L(e={}){return i(o,"/yak/epidemic/stats",e).then(t=>t||{})}function U(e={}){return i(o,"/yak/epidemic/village-stats",e).then(t=>t||{})}function W(e){return i(o,"/yak/epidemic/detail",{earTag:e}).then(t=>t||null)}function G(){return l(this,null,function*(){return(yield T()).map((t,n)=>({key:u(t,["areaCode","area_code","code","id"],`yak-town-${n}`),name:u(t,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:f(u(t,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(t=>t.name&&Number.isFinite(t.value)).sort((t,n)=>n.value-t.value)})}function H(){return l(this,null,function*(){const t=(yield x()).map((n,r)=>{const a=u(n,["sex","gender"],""),g=B(a),y=u(n,["ageRange","age_range","age","name","type"],""),s=[g,y].filter(Boolean).join(" ")||`结构${r+1}`;return{key:u(n,["id","key"],`${s}-${r}`),name:s,value:f(u(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return j(t)})}function K(){return l(this,null,function*(){return(yield z()).map((t,n)=>{const r=u(t,["month","date","name","time"],`预测${n+1}`);return{key:`${r}-${n}`,name:M(r),value:f(u(t,["number","count","yakCount","value"])),unit:"头",extra:b("增速",u(t,["speed","growth","growthRate","rate"]))}}).filter(t=>t.name&&Number.isFinite(t.value))})}function Q(){return l(this,null,function*(){const e=yield D(),t=m(e.usageCounts||e.usage_counts);return(t.length?t:m(e.startTownCounts||e.start_town_counts)).map((r,a)=>({key:u(r,["name","label"],`trade-${a}`),name:u(r,["name","label"],`类型${a+1}`),value:f(u(r,["headCount","head_count","amount","value","count"])),unit:"头",extra:b("记录",u(r,["recordCount","record_count"]))})).filter(r=>r.name&&Number.isFinite(r.value)).sort((r,a)=>a.value-r.value)})}function m(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.records)?e.records:Array.isArray(e==null?void 0:e.data)?e.data:[]}function j(e=[]){const t=new Map;return e.forEach(n=>{const r=t.get(n.name)||N(v({},n),{value:0});r.value+=n.value,t.set(n.name,r)}),[...t.values()].sort((n,r)=>r.value-n.value)}function u(e,t,n=""){for(const r of t){const a=e==null?void 0:e[r];if(a!=null&&a!=="")return a}return n}function B(e){return["boy","male","公","公牛"].includes(e)?"公牛":["girl","female","母","母牛"].includes(e)?"母牛":e||""}function M(e){const t=String(e||""),n=t.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:t}function b(e,t){const n=f(t);return Number.isFinite(n)?`${e}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function f(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}export{G as a,K as b,H as c,V as d,I as e,J as f,D as g,q as h,L as i,U as j,W as k,Q as l}; diff --git a/docs/assets/yield-66e9af79-balabala-1784132466083.png b/docs/assets/yield-66e9af79-balabala-1784132792831.png similarity index 100% rename from docs/assets/yield-66e9af79-balabala-1784132466083.png rename to docs/assets/yield-66e9af79-balabala-1784132792831.png diff --git a/docs/index.html b/docs/index.html index d2adca8..d9578cd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,8 +11,8 @@ window.CESIUM_BASE_URL = "./cdn/Cesium/"; - - + + diff --git a/src/services/balanceApi.js b/src/services/balanceApi.js index 46219a1..88d1f09 100644 --- a/src/services/balanceApi.js +++ b/src/services/balanceApi.js @@ -107,6 +107,25 @@ export async function getBalanceAdvice({ areaCode } = {}) { throw lastError || new Error("草畜平衡接口不可用") } +export async function getAreaBalanceRows() { + const requests = [ + () => get(JSY_API_BASE, "/ai/livestockBalanceRows", {}, { timeout: 18000 }), + () => get(OPEN_API_BASE, "/ai/balance/areaRows", {}, { timeout: 18000 }), + ] + + let lastError + for (const request of requests) { + try { + const rows = normalizeRows(await request()) + if (rows.length) return rows + } catch (error) { + lastError = error + } + } + if (lastError) throw lastError + return [] +} + export async function queryBalanceTargets(question) { const requests = [ () => get(JSY_API_BASE, "/ai/question/balance", { question }, { timeout: 16000 }), diff --git a/src/views/grassLivestockBalance/index.vue b/src/views/grassLivestockBalance/index.vue index 680e453..5ff8624 100644 --- a/src/views/grassLivestockBalance/index.vue +++ b/src/views/grassLivestockBalance/index.vue @@ -236,9 +236,8 @@