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 _};