/*! All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
See https://js.geoscene.cn/4.33/geoscene/copyright.txt for details.
v4.33.18 */
import{a as M}from"./VK24LKXI.js";import"./LYMDZ73M.js";import"./MG6XDMQJ.js";import{B as P,G as S,H as _,I as k,K as d,L as h,M as A,N as E,O as v,P as U,Q as V,U as D,j as w,k as y,n as L}from"./3VKC6PRK.js";var j=(s,c,n)=>{let u=new Map;for(let e=c;e<=n;e++)u.set(s[e],e);return u},z=_(class extends k{constructor(s){if(super(s),s.type!==S.CHILD)throw Error("repeat() can only be used in text expressions")}dt(s,c,n){let u;n===void 0?n=c:c!==void 0&&(u=c);let e=[],r=[],t=0;for(let m of s)e[t]=u?u(m,t):t,r[t]=n(m,t),t++;return{values:r,keys:e}}render(s,c,n){return this.dt(s,c,n).values}update(s,[c,n,u]){let e=E(s),{values:r,keys:t}=this.dt(c,n,u);if(!Array.isArray(e))return this.ut=t,r;let m=this.ut??=[],p=[],g,$,a=0,i=e.length-1,l=0,o=r.length-1;for(;a<=i&&l<=o;)if(e[a]===null)a++;else if(e[i]===null)i--;else if(m[a]===t[l])p[l]=h(e[a],r[l]),a++,l++;else if(m[i]===t[o])p[o]=h(e[i],r[o]),i--,o--;else if(m[a]===t[o])p[o]=h(e[a],r[o]),d(s,p[o+1],e[a]),a++,o--;else if(m[i]===t[l])p[l]=h(e[i],r[l]),d(s,e[a],e[i]),i--,l++;else if(g===void 0&&(g=j(t,l,o),$=j(m,a,i)),g.has(m[a]))if(g.has(m[i])){let f=$.get(t[l]),b=f!==void 0?e[f]:null;if(b===null){let x=d(s,e[a]);h(x,r[l]),p[l]=x}else p[l]=h(b,r[l]),d(s,e[a],b),e[f]=null;l++}else v(e[i]),i--;else v(e[a]),a++;for(;l<=o;){let f=d(s,p[o+1]);h(f,r[l]),p[l++]=f}for(;a<=i;){let f=e[a++];f!==null&&v(f)}return this.ut=t,A(s,p),L}});var H=w`.geoscene-unit-select{width:100%}.geoscene-unit-select__label{--calcite-label-margin-bottom: 0;width:100%}`,I="geoscene-unit-select",O={label:`${I}__label`},C=class extends U{constructor(){super(...arguments),this.messages=M({}),this.options=[],this.geosceneUnitSelectChange=P()}static{this.properties={options:0,selectLabel:1,value:0,messageOverrides:0,label:1}}static{this.styles=H}async destroy(){await this.manager.destroy()}render(){let{messages:c,options:n,selectLabel:u,value:e,geosceneUnitSelectChange:r}=this;return y`<calcite-label class=${V(O.label)}>${u}<calcite-select .label=${u} @calciteSelectChange=${t=>{r.emit(t.target.value)}}>${z(n,t=>t,t=>y`<calcite-option .selected=${t===e} .value=${t}>${T(t)?c.systems?.[t]:c.units?.[t]?.pluralCapitalized}</calcite-option>`)}</calcite-select></calcite-label>`}};function T(s){return s==="imperial"||s==="metric"}D("geoscene-unit-select",C);export{C as GeosceneUnitSelect};