@thibezer/ui-components-kit 2.17.1 → 2.17.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/camadas.cjs +80 -83
  3. package/dist/camadas.js +1131 -869
  4. package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +1 -0
  5. package/dist/components/ui-camadas/camadas-atualizacao-incremental.d.ts +1 -0
  6. package/dist/components/ui-camadas/camadas-colecao.d.ts +1 -0
  7. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +2 -0
  8. package/dist/components/ui-camadas/camadas-drop-ops.d.ts +34 -0
  9. package/dist/components/ui-camadas/camadas-lembranca.d.ts +2 -1
  10. package/dist/components/ui-camadas/camadas-persistencia.d.ts +3 -0
  11. package/dist/components/ui-camadas/ui-camadas.d.ts +1 -0
  12. package/dist/custom-elements.json +4531 -4079
  13. package/dist/tipos-elementos.d.ts +3 -0
  14. package/dist/tipos-vue.d.ts +3 -0
  15. package/package.json +1 -1
  16. package/dist/form-validacao-BIOXxt-1.js +0 -140
  17. package/dist/form-validacao-ytRYSF3E.cjs +0 -1
  18. package/dist/gerencigeo-canvas/layer_defaults.d.ts +0 -3
  19. package/dist/gerencigeo-canvas/layer_instance_ops.d.ts +0 -6
  20. package/dist/gerencigeo-canvas/layer_state_ops.d.ts +0 -6
  21. package/dist/leaflet-DcO7uRC-.cjs +0 -1
  22. package/dist/leaflet-PPDKB6Dd.js +0 -69
  23. package/dist/motor-BCWqlv3e.cjs +0 -1
  24. package/dist/motor-CXjQjVba.js +0 -1386
  25. package/dist/svg-seguro-BsbNQqpd.js +0 -50
  26. package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
  27. package/dist/ui-badge-1UU8vT-b.js +0 -198
  28. package/dist/ui-badge-B5J_c5P5.js +0 -197
  29. package/dist/ui-badge-BxT-sDmV.cjs +0 -28
  30. package/dist/ui-badge-C0eKBI8E.js +0 -183
  31. package/dist/ui-badge-CKKKPdt8.cjs +0 -28
  32. package/dist/ui-badge-DC4y6Dik.cjs +0 -28
  33. package/dist/ui-botao-BOOnP8ds.cjs +0 -12
  34. package/dist/ui-botao-D24oXySA.cjs +0 -12
  35. package/dist/ui-botao-DfqSivHl.js +0 -165
  36. package/dist/ui-botao-Dsj08jjw.js +0 -165
  37. package/dist/ui-botao-OGJV6Vfk.js +0 -165
  38. package/dist/ui-botao-bU_bf6SU.js +0 -166
  39. package/dist/ui-botao-psS1juof.cjs +0 -12
  40. package/dist/ui-botao-xTbH5mpH.cjs +0 -12
  41. package/dist/ui-campo-texto-19tIrmBK.js +0 -377
  42. package/dist/ui-campo-texto-CH8mzX61.cjs +0 -16
  43. package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
  44. package/dist/ui-campo-texto-DVU_sWV1.cjs +0 -16
  45. package/dist/ui-campo-texto-Uu2dJE_0.js +0 -379
  46. package/dist/ui-campo-texto-W5M0gNE4.js +0 -377
  47. package/dist/ui-card-0wu4rjEX.cjs +0 -20
  48. package/dist/ui-card-B86lJXTP.cjs +0 -20
  49. package/dist/ui-card-BYyYxxY1.cjs +0 -20
  50. package/dist/ui-card-C_o5_0cB.js +0 -111
  51. package/dist/ui-card-CojoGXaT.js +0 -144
  52. package/dist/ui-card-DRtpOo3l.js +0 -143
  53. package/dist/ui-controle-cores-B4R6ct4I.js +0 -291
  54. package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
  55. package/dist/ui-controle-cores-Bq_XUrIQ.cjs +0 -32
  56. package/dist/ui-controle-cores-BtA6yzu3.js +0 -291
  57. package/dist/ui-controle-cores-C8um-If9.cjs +0 -32
  58. package/dist/ui-controle-cores-CHMKGemo.cjs +0 -141
  59. package/dist/ui-controle-cores-C_cVXxCn.js +0 -291
  60. package/dist/ui-controle-cores-CuDFS8Y8.cjs +0 -32
  61. package/dist/ui-controle-cores-Dog7ERYv.js +0 -697
  62. package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
  63. package/dist/ui-linha-BxhEBn27.js +0 -749
  64. package/dist/ui-linha-C306zxWG.cjs +0 -19
  65. package/dist/ui-linha-C_azWkcG.js +0 -517
  66. package/dist/ui-linha-CcalUBDw.cjs +0 -38
  67. package/dist/ui-linha-DAz6DBcl.cjs +0 -38
  68. package/dist/ui-linha-DkxwMhD-.js +0 -749
  69. package/dist/ui-modal-4nU-tXjO.cjs +0 -18
  70. package/dist/ui-modal-BkYvNP0G.js +0 -214
  71. package/dist/ui-modal-BwB9fksp.js +0 -214
  72. package/dist/ui-modal-CUNbpbZ1.cjs +0 -18
  73. package/dist/ui-modal-CvGFGh1h.cjs +0 -18
  74. package/dist/ui-modal-DBOtSTbR.js +0 -238
  75. package/dist/ui-paleta-ferramentas-BXXrI1Y7.js +0 -1233
  76. package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
  77. package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
  78. package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
  79. package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +0 -21
  80. package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
  81. package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
  82. package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
  83. package/dist/ui-paleta-ferramentas-DbwdWVtT.js +0 -1173
  84. package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
  85. package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
  86. package/dist/ui-segmented-DyF5YLsV.js +0 -418
  87. package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
  88. package/dist/ui-segmented-wUraId2e.js +0 -412
  89. package/dist/ui-seletor-cor-C4U2eqxY.cjs +0 -82
  90. package/dist/ui-seletor-cor-D2_C6Aor.js +0 -391
  91. package/dist/ui-seletor-cor-DPKqf5wb.cjs +0 -82
  92. package/dist/ui-seletor-cor-FYtRccnK.js +0 -396
  93. package/dist/ui-skeleton-B2Rgrv8o.js +0 -648
  94. package/dist/ui-skeleton-DEHwpDqa.js +0 -648
  95. package/dist/ui-skeleton-DI4_9WOX.js +0 -428
  96. package/dist/ui-skeleton-DiOxTBZK.cjs +0 -52
  97. package/dist/ui-skeleton-SPYqku8P.cjs +0 -52
  98. package/dist/ui-skeleton-W9uwIceA.js +0 -585
  99. package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
  100. package/dist/ui-skeleton-sIphhOSx.cjs +0 -52
  101. package/dist/ui-switch-BL-x_-SM.js +0 -1202
  102. package/dist/ui-switch-BcOqOkiV.js +0 -856
  103. package/dist/ui-switch-C0i_3QXu.cjs +0 -66
  104. package/dist/ui-switch-D7iPKDj-.cjs +0 -53
  105. package/dist/ui-switch-DAIgOhqr.cjs +0 -66
  106. package/dist/ui-switch-_F8yubdX.js +0 -1203
  107. package/dist/ui-tabela-propriedades-2bq2nX-b.js +0 -3202
  108. package/dist/ui-tabela-propriedades-8IAYmk3P.cjs +0 -142
  109. package/dist/ui-tabela-propriedades-B8AwlpqL.cjs +0 -141
  110. package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
  111. package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
  112. package/dist/ui-tabela-propriedades-BoYXzP5Z.js +0 -3191
  113. package/dist/ui-tabela-propriedades-BokvDD3b.js +0 -2648
  114. package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
  115. package/dist/ui-tabela-propriedades-C-PeuW1i.cjs +0 -141
  116. package/dist/ui-tabela-propriedades-C5YYnod1.js +0 -3053
  117. package/dist/ui-tabela-propriedades-CnfW9DZG.cjs +0 -142
  118. package/dist/ui-tabela-propriedades-CyPyKXtB.js +0 -3013
  119. package/dist/ui-tabela-propriedades-DWOKznMN.cjs +0 -142
  120. package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
  121. package/dist/ui-tabela-propriedades-DqvPilK_.cjs +0 -142
  122. package/dist/ui-tabela-propriedades-DuaC4sFX.js +0 -2767
  123. package/dist/ui-toast-Bp_NlM5G.js +0 -156
  124. package/dist/ui-toast-DGTZKne5.cjs +0 -20
  125. package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
  126. package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
package/dist/camadas.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Oa=Object.defineProperty;var ja=(e,t,a)=>t in e?Oa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var A=(e,t,a)=>ja(e,typeof t!="symbol"?t+"":t,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const ue=require("./ssr-safe-CiHD1adl.cjs"),ie=require("./degrade-CIxvOTUv.cjs"),Na=require("./listener-bag-D5omxZ9h.cjs"),Ye=require("./parts-vQa2873h.cjs"),Ha=require("./ui-seletor-cor-CMuuW-Ym.cjs"),Ga=require("./alvo-digitavel-DbH0hYFf.cjs"),Ke=require("./seletor-mapa-base.cjs"),y={camadas:`<svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1
+ "use strict";var Ya=Object.defineProperty;var Ka=(e,t,a)=>t in e?Ya(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var I=(e,t,a)=>Ka(e,typeof t!="symbol"?t+"":t,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const he=require("./ssr-safe-CiHD1adl.cjs"),ce=require("./degrade-CIxvOTUv.cjs"),Qa=require("./listener-bag-D5omxZ9h.cjs"),aa=require("./parts-vQa2873h.cjs"),Xa=require("./ui-seletor-cor-CMuuW-Ym.cjs"),Wa=require("./alvo-digitavel-DbH0hYFf.cjs"),ta=require("./seletor-mapa-base.cjs"),b={camadas:`<svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
2
  <polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
3
3
  <polyline points="2 17 12 22 22 17"></polyline>
4
4
  <polyline points="2 12 12 17 22 12"></polyline>
@@ -74,7 +74,7 @@
74
74
  <line x1="3" y1="15" x2="21" y2="15"></line>
75
75
  <line x1="9" y1="3" x2="9" y2="21"></line>
76
76
  <line x1="15" y1="3" x2="15" y2="21"></line>
77
- </svg>`},Y=6378137;function Qe(e,t){if(!Array.isArray(e)||!Array.isArray(t)||e.length<2||t.length<2||!Number.isFinite(e[0])||!Number.isFinite(e[1])||!Number.isFinite(t[0])||!Number.isFinite(t[1]))return 0;const a=e[0]*Math.PI/180,r=e[1]*Math.PI/180,i=t[0]*Math.PI/180,o=t[1]*Math.PI/180,n=i-a,s=o-r,c=Math.min(1,Math.max(0,Math.sin(n/2)*Math.sin(n/2)+Math.cos(a)*Math.cos(i)*Math.sin(s/2)*Math.sin(s/2))),l=Y*2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c));return Number.isFinite(l)?l:0}function Ie(e){if(!Array.isArray(e)||e.length<2)return 0;if(Array.isArray(e[0])&&Array.isArray(e[0][0]))return e.reduce((a,r)=>a+Ie(r),0);let t=0;for(let a=0;a<e.length-1;a++){const r=e[a],i=e[a+1];Array.isArray(r)&&Array.isArray(i)&&r.length>=2&&i.length>=2&&(t+=Qe([r[0],r[1]],[i[0],i[1]]))}return t}function ne(e){if(!Array.isArray(e))return 0;const t=[];for(let d=0;d<e.length;d++){const u=e[d];Array.isArray(u)&&u.length>=2&&Number.isFinite(u[0])&&Number.isFinite(u[1])&&t.push([u[0],u[1]])}t.length>3&&t[0][0]===t[t.length-1][0]&&t[0][1]===t[t.length-1][1]&&t.pop();const a=t.length;if(a<3)return 0;let r=0;for(let d=0;d<a;d++)r+=t[d][0];const i=r/a*Math.PI/180,o=Math.cos(i),n=Math.PI/180,s=t[0][0],c=t[0][1];let l=0;for(let d=0;d<a;d++){const u=t[d],f=t[(d+1)%a],m=(u[1]-c)*n*Y*o,g=(u[0]-s)*n*Y,v=(f[1]-c)*n*Y*o,b=(f[0]-s)*n*Y;l+=m*b-v*g}const p=Math.abs(l)/2;return Number.isFinite(p)?p:0}function ke(e){if(!Array.isArray(e)||e.length===0)return 0;if(Array.isArray(e[0])&&typeof e[0][0]=="number")return ne(e);if(Array.isArray(e[0])&&Array.isArray(e[0][0])){if(Array.isArray(e[0][0][0]))return e.reduce((r,i)=>r+ke(i),0);const t=ne(e[0]);let a=0;for(let r=1;r<e.length;r++)a+=ne(e[r]);return Math.max(0,t-a)}return 0}function _a(e){if(!e||e.length===0)return"";const t=e.filter(r=>r.type==="Polygon"||r.type==="MultiPolygon"||r.geometryType==="Polygon");if(t.length>0){const r=t.reduce((i,o)=>i+(ke(o.coordinates)||0),0);return r>=1e4?`${(r/1e4).toLocaleString("pt-BR",{minimumFractionDigits:1,maximumFractionDigits:2})} ha`:`${Math.round(r).toLocaleString("pt-BR")} m²`}const a=e.filter(r=>r.type==="LineString"||r.type==="MultiLineString"||r.geometryType==="LineString");if(a.length>0){const r=a.reduce((i,o)=>i+(Ie(o.coordinates)||0),0);return r>=1e3?`${(r/1e3).toLocaleString("pt-BR",{minimumFractionDigits:1,maximumFractionDigits:2})} km`:`${Math.round(r).toLocaleString("pt-BR")} m`}return""}function z(e){return e==null?"":String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}const Ua=/^(#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?:rgb|hsl)a?\(\s*[\w.%\s,/+-]+\)|[a-z]{3,30})$/i;function G(e,t="#00E08A"){if(!e||typeof e!="string")return t;const a=e.trim();return Ua.test(a)?a:t}function he(e){return Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0")}function Va(e,t,a){const r=t/100,i=a/100,o=c=>(c+e/30)%12,n=r*Math.min(i,1-i),s=c=>i-n*Math.max(-1,Math.min(o(c)-3,Math.min(9-o(c),1)));return[s(0)*255,s(8)*255,s(4)*255]}function Ya(e,t="#000000"){if(!e||typeof e!="string")return t;const a=e.trim().toLowerCase(),r=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(a);if(r){const o=r[1];return o.length<=4?`#${o[0]}${o[0]}${o[1]}${o[1]}${o[2]}${o[2]}`:`#${o.slice(0,6)}`}const i=/^(rgb|hsl)a?\(([^)]+)\)$/.exec(a);if(i){const o=i[2].split(/[\s,/]+/).filter(Boolean).map(n=>parseFloat(n));if(o.length>=3&&o.slice(0,3).every(n=>!isNaN(n))){const[n,s,c]=o,[l,p,d]=i[1]==="rgb"?[n,s,c]:Va(n,s,c);return`#${he(l)}${he(p)}${he(d)}`}}return t}function q(e,t,a){const r=e.querySelectorAll(`[${t}]`);for(let i=0;i<r.length;i++)if(r[i].getAttribute(t)===a)return r[i];return null}function Xe(e,t=80){let a=null;return(...r)=>{a&&clearTimeout(a),a=setTimeout(()=>{e(...r),a=null},t)}}function D(e,t){e.setAttribute("title",t),e.setAttribute("aria-label",t)}const Ce=[{id:"none",nome:"Sem Mapa",descricao:"Tela CAD neutra com grade quadriculada"},{id:"google_satelite_puro",nome:"Google Puro",descricao:"Satélite limpo sem ruas ou rótulos",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"google_satelite",nome:"Google Híbrido",descricao:"Satélite com nomes de ruas e divisas",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"satelite",nome:"Esri Satélite",descricao:"Imagens orbitais de alta resolução",thumbnailUrl:"https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=160&auto=format&fit=crop&q=80"},{id:"osm",nome:"OpenStreetMap",descricao:"Mapa viário e urbano colaborativo",thumbnailUrl:"https://images.unsplash.com/photo-1569336415962-a4bd9f69cd83?w=160&auto=format&fit=crop&q=80"},{id:"topografia",nome:"Topografia",descricao:"Curvas de nível e relevo sombreado",thumbnailUrl:"https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=160&auto=format&fit=crop&q=80"},{id:"dark",nome:"Dark Canvas",descricao:"Mapa escuro de alto contraste para CAD",thumbnailUrl:"https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"}];function Le(e,t){const a=Array.isArray(e)?e.find(r=>r.id===t):void 0;return a&&typeof a.nome=="string"?a.nome:""}function We(e=Ce,t="satelite",a=!1){if(!e||e.length===0)return"";const r=e.map(i=>{const o=t===i.id,n=z(i.id),s=z(i.nome),c=z(i.descricao||i.nome);let l="";return i.thumbnailUrl?l=`<img class="ui-basemap-preview" src="${z(i.thumbnailUrl)}" alt="" loading="lazy" referrerpolicy="no-referrer" data-basemap-thumb />`:l=`<div class="ui-basemap-preview-none">${y.gradeCad}</div>`,`
77
+ </svg>`},J=6378137;function ra(e,t){if(!Array.isArray(e)||!Array.isArray(t)||e.length<2||t.length<2||!Number.isFinite(e[0])||!Number.isFinite(e[1])||!Number.isFinite(t[0])||!Number.isFinite(t[1]))return 0;const a=e[0]*Math.PI/180,r=e[1]*Math.PI/180,i=t[0]*Math.PI/180,o=t[1]*Math.PI/180,n=i-a,s=o-r,c=Math.min(1,Math.max(0,Math.sin(n/2)*Math.sin(n/2)+Math.cos(a)*Math.cos(i)*Math.sin(s/2)*Math.sin(s/2))),l=J*2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c));return Number.isFinite(l)?l:0}function Me(e){if(!Array.isArray(e)||e.length<2)return 0;if(Array.isArray(e[0])&&Array.isArray(e[0][0]))return e.reduce((a,r)=>a+Me(r),0);let t=0;for(let a=0;a<e.length-1;a++){const r=e[a],i=e[a+1];Array.isArray(r)&&Array.isArray(i)&&r.length>=2&&i.length>=2&&(t+=ra([r[0],r[1]],[i[0],i[1]]))}return t}function de(e){if(!Array.isArray(e))return 0;const t=[];for(let p=0;p<e.length;p++){const d=e[p];Array.isArray(d)&&d.length>=2&&Number.isFinite(d[0])&&Number.isFinite(d[1])&&t.push([d[0],d[1]])}t.length>3&&t[0][0]===t[t.length-1][0]&&t[0][1]===t[t.length-1][1]&&t.pop();const a=t.length;if(a<3)return 0;let r=0;for(let p=0;p<a;p++)r+=t[p][0];const i=r/a*Math.PI/180,o=Math.cos(i),n=Math.PI/180,s=t[0][0],c=t[0][1];let l=0;for(let p=0;p<a;p++){const d=t[p],f=t[(p+1)%a],m=(d[1]-c)*n*J*o,h=(d[0]-s)*n*J,v=(f[1]-c)*n*J*o,g=(f[0]-s)*n*J;l+=m*g-v*h}const u=Math.abs(l)/2;return Number.isFinite(u)?u:0}function Pe(e){if(!Array.isArray(e)||e.length===0)return 0;if(Array.isArray(e[0])&&typeof e[0][0]=="number")return de(e);if(Array.isArray(e[0])&&Array.isArray(e[0][0])){if(Array.isArray(e[0][0][0]))return e.reduce((r,i)=>r+Pe(i),0);const t=de(e[0]);let a=0;for(let r=1;r<e.length;r++)a+=de(e[r]);return Math.max(0,t-a)}return 0}function Ja(e){if(!e||e.length===0)return"";const t=e.filter(r=>r.type==="Polygon"||r.type==="MultiPolygon"||r.geometryType==="Polygon");if(t.length>0){const r=t.reduce((i,o)=>i+(Pe(o.coordinates)||0),0);return r>=1e4?`${(r/1e4).toLocaleString("pt-BR",{minimumFractionDigits:1,maximumFractionDigits:2})} ha`:`${Math.round(r).toLocaleString("pt-BR")} m²`}const a=e.filter(r=>r.type==="LineString"||r.type==="MultiLineString"||r.geometryType==="LineString");if(a.length>0){const r=a.reduce((i,o)=>i+(Me(o.coordinates)||0),0);return r>=1e3?`${(r/1e3).toLocaleString("pt-BR",{minimumFractionDigits:1,maximumFractionDigits:2})} km`:`${Math.round(r).toLocaleString("pt-BR")} m`}return""}function M(e){return e==null?"":String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}const Za=/^(#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?:rgb|hsl)a?\(\s*[\w.%\s,/+-]+\)|[a-z]{3,30})$/i;function K(e,t="#00E08A"){if(!e||typeof e!="string")return t;const a=e.trim();return Za.test(a)?a:t}function ke(e){return Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0")}function et(e,t,a){const r=t/100,i=a/100,o=c=>(c+e/30)%12,n=r*Math.min(i,1-i),s=c=>i-n*Math.max(-1,Math.min(o(c)-3,Math.min(9-o(c),1)));return[s(0)*255,s(8)*255,s(4)*255]}function at(e,t="#000000"){if(!e||typeof e!="string")return t;const a=e.trim().toLowerCase(),r=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(a);if(r){const o=r[1];return o.length<=4?`#${o[0]}${o[0]}${o[1]}${o[1]}${o[2]}${o[2]}`:`#${o.slice(0,6)}`}const i=/^(rgb|hsl)a?\(([^)]+)\)$/.exec(a);if(i){const o=i[2].split(/[\s,/]+/).filter(Boolean).map(n=>parseFloat(n));if(o.length>=3&&o.slice(0,3).every(n=>!isNaN(n))){const[n,s,c]=o,[l,u,p]=i[1]==="rgb"?[n,s,c]:et(n,s,c);return`#${ke(l)}${ke(u)}${ke(p)}`}}return t}function D(e,t,a){const r=e.querySelectorAll(`[${t}]`);for(let i=0;i<r.length;i++)if(r[i].getAttribute(t)===a)return r[i];return null}function ia(e,t=80){let a=null;return(...r)=>{a&&clearTimeout(a),a=setTimeout(()=>{e(...r),a=null},t)}}function T(e,t){e.setAttribute("title",t),e.setAttribute("aria-label",t)}const ze=[{id:"none",nome:"Sem Mapa",descricao:"Tela CAD neutra com grade quadriculada"},{id:"google_satelite_puro",nome:"Google Puro",descricao:"Satélite limpo sem ruas ou rótulos",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"google_satelite",nome:"Google Híbrido",descricao:"Satélite com nomes de ruas e divisas",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"satelite",nome:"Esri Satélite",descricao:"Imagens orbitais de alta resolução",thumbnailUrl:"https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=160&auto=format&fit=crop&q=80"},{id:"osm",nome:"OpenStreetMap",descricao:"Mapa viário e urbano colaborativo",thumbnailUrl:"https://images.unsplash.com/photo-1569336415962-a4bd9f69cd83?w=160&auto=format&fit=crop&q=80"},{id:"topografia",nome:"Topografia",descricao:"Curvas de nível e relevo sombreado",thumbnailUrl:"https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=160&auto=format&fit=crop&q=80"},{id:"dark",nome:"Dark Canvas",descricao:"Mapa escuro de alto contraste para CAD",thumbnailUrl:"https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"}];function Be(e,t){const a=Array.isArray(e)?e.find(r=>r.id===t):void 0;return a&&typeof a.nome=="string"?a.nome:""}function oa(e=ze,t="satelite",a=!1){if(!e||e.length===0)return"";const r=e.map(i=>{const o=t===i.id,n=M(i.id),s=M(i.nome),c=M(i.descricao||i.nome);let l="";return i.thumbnailUrl?l=`<img class="ui-basemap-preview" src="${M(i.thumbnailUrl)}" alt="" loading="lazy" referrerpolicy="no-referrer" data-basemap-thumb />`:l=`<div class="ui-basemap-preview-none">${b.gradeCad}</div>`,`
78
78
  <div class="ui-basemap-card ${o?"active":""}" data-basemap-id="${n}" role="button" tabindex="0" aria-pressed="${o}" title="${c}">
79
79
  ${l}
80
80
  <span>${s}</span>
@@ -83,14 +83,14 @@
83
83
  <div class="ui-basemap-section ${a?"recolhido":""}" part="mapas-base">
84
84
  <button type="button" class="ui-basemap-toggle" data-basemap-toggle="alternar" aria-expanded="${!a}" aria-controls="ui-basemap-grid" title="${a?"Mostrar mapas base":"Recolher mapas base"}">
85
85
  <span class="ui-basemap-title">Mapa Base</span>
86
- <span class="ui-basemap-atual" data-basemap-atual>${z(Le(e,t))}</span>
87
- <span class="ui-chevron-icon ${a?"":"open"}">${y.chevronDir}</span>
86
+ <span class="ui-basemap-atual" data-basemap-atual>${M(Be(e,t))}</span>
87
+ <span class="ui-chevron-icon ${a?"":"open"}">${b.chevronDir}</span>
88
88
  </button>
89
89
  ${a?"":`<div class="ui-basemap-grid" id="ui-basemap-grid">
90
90
  ${r}
91
91
  </div>`}
92
92
  </div>
93
- `}function W(e){if(!Array.isArray(e)||e.length===0)return[];const t=e.filter(l=>!!(l&&typeof l=="object"&&l.id)),a=new Map,r=new Map;t.forEach((l,p)=>{a.set(l.id,l),r.set(l.id,p)});const i=new Set,o=new Set;for(const l of t){if(o.has(l.id))continue;const p=[],d=new Map;let u=l;for(;u&&u.parentId&&a.has(u.parentId)&&u.parentId!==u.id;){if(d.has(u.id)){const f=d.get(u.id),m=p.slice(f);let g=m[0];for(const v of m)(r.get(v)??1/0)<(r.get(g)??1/0)&&(g=v);i.add(g);break}if(o.has(u.id))break;d.set(u.id,p.length),p.push(u.id),u=a.get(u.parentId)}for(const f of p)o.add(f)}const n=new Map,s=[];t.forEach(l=>{!i.has(l.id)&&!!(l.parentId&&a.has(l.parentId)&&l.parentId!==l.id)&&l.parentId?(n.has(l.parentId)||n.set(l.parentId,[]),n.get(l.parentId).push(l)):s.push(l)});function c(l,p,d){const u=new Set(d);u.add(l.id);const m=(n.get(l.id)||(Array.isArray(l.children)?l.children:[])).filter(g=>!!(g&&typeof g=="object"&&g.id&&!u.has(g.id)));return{camada:l,depth:p,subcamadas:m.map(g=>c(g,p+1,u))}}return s.map(l=>c(l,0,new Set))}function Ka(e,t){const a=new Set;if(!t||!Array.isArray(e))return a;const r=new Map;for(const o of e)!o||typeof o!="object"||!o.id||o.parentId&&o.parentId!==o.id&&(r.has(o.parentId)||r.set(o.parentId,[]),r.get(o.parentId).push(o.id));const i=[t];for(;i.length>0;){const o=i.pop();if(a.has(o))continue;a.add(o);const n=r.get(o);if(n)for(const s of n)a.has(s)||i.push(s)}return a}function J(e,t,a){if(!a||!Array.isArray(t)||t.length===0)return[];const r=Ka(e,a);return t.filter(i=>!!(i&&i.layerId&&r.has(i.layerId)))}function pe(e){const t=new Map;e.forEach(r=>r&&r.id&&t.set(r.id,r));const a=new Map;for(const r of t.values()){let i=!1,o=!1;const n=new Set([r.id]);let s=r.parentId?t.get(r.parentId):void 0;for(;s&&!n.has(s.id);)n.add(s.id),s.visible===!1&&(i=!0),s.locked===!0&&(o=!0),s=s.parentId?t.get(s.parentId):void 0;a.set(r.id,{ocultaPorAncestral:i,travadaPorAncestral:o})}return a}function se(e){const t=pe(e);return new Set(e.filter(a=>{var r;return a&&(a.locked===!0||((r=t.get(a.id))==null?void 0:r.travadaPorAncestral)===!0)}).map(a=>a.id))}function Se(e){const t=W(e),a=se(e),r=i=>{const o=i.camada,n=i.depth,s=i.subcamadas,c=n>0?"&nbsp;&nbsp;".repeat(n)+"↳ ":s.length>0||o.isGroup?"📁 ":"",l=a.has(o.id),p=`<option value="${z(o.id)}"${l?" disabled":""}>${c}${z(o.name)}${l?" 🔒":""}</option>`,d=s.map(u=>r(u)).join("");return p+d};return t.map(i=>r(i)).join("")}function $e(e,t){return t>0?{icone:y.alvoEnquadrar,texto:`${t} ${t>1?"selecionados":"selecionado"}`}:{icone:y.camadas,texto:`${e} ${e>1?"camadas":"camada"}`}}function Je(e,t,a){const r=t.filter(c=>a.has(c.id)),i=r.length>0,o=i?r.length:e.length,n=$e(e.length,r.length),s=Se(e);return`
93
+ `}function ae(e){if(!Array.isArray(e)||e.length===0)return[];const t=e.filter(l=>!!(l&&typeof l=="object"&&l.id)),a=new Map,r=new Map;t.forEach((l,u)=>{a.set(l.id,l),r.set(l.id,u)});const i=new Set,o=new Set;for(const l of t){if(o.has(l.id))continue;const u=[],p=new Map;let d=l;for(;d&&d.parentId&&a.has(d.parentId)&&d.parentId!==d.id;){if(p.has(d.id)){const f=p.get(d.id),m=u.slice(f);let h=m[0];for(const v of m)(r.get(v)??1/0)<(r.get(h)??1/0)&&(h=v);i.add(h);break}if(o.has(d.id))break;p.set(d.id,u.length),u.push(d.id),d=a.get(d.parentId)}for(const f of u)o.add(f)}const n=new Map,s=[];t.forEach(l=>{!i.has(l.id)&&!!(l.parentId&&a.has(l.parentId)&&l.parentId!==l.id)&&l.parentId?(n.has(l.parentId)||n.set(l.parentId,[]),n.get(l.parentId).push(l)):s.push(l)});function c(l,u,p){const d=new Set(p);d.add(l.id);const m=(n.get(l.id)||(Array.isArray(l.children)?l.children:[])).filter(h=>!!(h&&typeof h=="object"&&h.id&&!d.has(h.id)));return{camada:l,depth:u,subcamadas:m.map(h=>c(h,u+1,d))}}return s.map(l=>c(l,0,new Set))}function tt(e,t){const a=new Set;if(!t||!Array.isArray(e))return a;const r=new Map;for(const o of e)!o||typeof o!="object"||!o.id||o.parentId&&o.parentId!==o.id&&(r.has(o.parentId)||r.set(o.parentId,[]),r.get(o.parentId).push(o.id));const i=[t];for(;i.length>0;){const o=i.pop();if(a.has(o))continue;a.add(o);const n=r.get(o);if(n)for(const s of n)a.has(s)||i.push(s)}return a}function te(e,t,a){if(!a||!Array.isArray(t)||t.length===0)return[];const r=tt(e,a);return t.filter(i=>!!(i&&i.layerId&&r.has(i.layerId)))}function ve(e){const t=new Map;e.forEach(r=>r&&r.id&&t.set(r.id,r));const a=new Map;for(const r of t.values()){let i=!1,o=!1;const n=new Set([r.id]);let s=r.parentId?t.get(r.parentId):void 0;for(;s&&!n.has(s.id);)n.add(s.id),s.visible===!1&&(i=!0),s.locked===!0&&(o=!0),s=s.parentId?t.get(s.parentId):void 0;a.set(r.id,{ocultaPorAncestral:i,travadaPorAncestral:o})}return a}function pe(e){const t=ve(e);return new Set(e.filter(a=>{var r;return a&&(a.locked===!0||((r=t.get(a.id))==null?void 0:r.travadaPorAncestral)===!0)}).map(a=>a.id))}function qe(e){const t=ae(e),a=pe(e),r=i=>{const o=i.camada,n=i.depth,s=i.subcamadas,c=n>0?"&nbsp;&nbsp;".repeat(n)+"↳ ":s.length>0||o.isGroup?"📁 ":"",l=a.has(o.id),u=`<option value="${M(o.id)}"${l?" disabled":""}>${c}${M(o.name)}${l?" 🔒":""}</option>`,p=s.map(d=>r(d)).join("");return u+p};return t.map(i=>r(i)).join("")}function De(e,t){return t>0?{icone:b.alvoEnquadrar,texto:`${t} ${t>1?"selecionados":"selecionado"}`}:{icone:b.camadas,texto:`${e} ${e>1?"camadas":"camada"}`}}function na(e,t,a){const r=t.filter(c=>a.has(c.id)),i=r.length>0,o=i?r.length:e.length,n=De(e.length,r.length),s=qe(e);return`
94
94
  <div class="ui-tree-footer ${i?"tem-selecao":"sem-selecao"}" part="rodape">
95
95
  <div class="ui-footer-left">
96
96
  <span class="ui-footer-count" id="footer-count">${o}</span>
@@ -100,11 +100,11 @@
100
100
  <!-- Criação de camadas/grupos quando não há nada selecionado -->
101
101
  <div class="ui-footer-actions-gerais" style="display: ${i?"none":"flex"};">
102
102
  <button class="ui-footer-chip-btn" id="btn-footer-new-group" title="Criar Nova Pasta/Grupo de Camadas" aria-label="Criar Grupo de Camadas">
103
- ${y.moverPasta}
103
+ ${b.moverPasta}
104
104
  <span>Grupo</span>
105
105
  </button>
106
106
  <button class="ui-footer-chip-btn primario" id="btn-footer-new-layer" title="Criar Nova Camada Vetorial" aria-label="Criar Nova Camada">
107
- ${y.mais}
107
+ ${b.mais}
108
108
  <span>Camada</span>
109
109
  </button>
110
110
  </div>
@@ -119,27 +119,26 @@
119
119
  </div>
120
120
 
121
121
  <button class="ui-footer-btn btn-danger-footer ${i?"":"disabled"}" id="btn-footer-del" title="Excluir selecionados" aria-label="Excluir selecionados" ${i?"":"disabled"}>
122
- ${y.lixeira}
122
+ ${b.lixeira}
123
123
  </button>
124
124
  </div>
125
125
  </div>
126
- `}const ye=64;function Oe(e){return Array.isArray(e)&&e.length>=2&&Number.isFinite(e[0])&&Number.isFinite(e[1])}function Ze(e){return!Array.isArray(e)||e.length===0?[]:Oe(e[0])?[e.filter(Oe)]:e.flatMap(Ze)}function je(e){if(e.length<=ye)return e;const t=e.length/ye,a=[];for(let r=0;r<ye;r++)a.push(e[Math.floor(r*t)]);return a.push(e[e.length-1]),a}function Qa(e,t,a){const r=Ze(t).filter(S=>S.length>0);if(r.length===0)return"";let i=1/0,o=-1/0,n=1/0,s=-1/0;for(const S of r)for(const[h,M]of S)M<i&&(i=M),M>o&&(o=M),-h<n&&(n=-h),-h>s&&(s=-h);const c=16,l=2,p=c-l*2,d=o-i,u=s-n,f=Math.max(d,u),m=f>0?p/f:0,g=l+(p-d*m)/2,v=l+(p-u*m)/2,b=S=>Math.round(S*100)/100,E=([S,h])=>`${b(g+(h-i)*m)},${b(v+(-S-n)*m)}`,C=e==="polygon"||e==="multipolygon",$=e==="linestring"||e==="multilinestring",w=S=>`<svg viewBox="0 0 ${c} ${c}" width="100%" height="100%" aria-hidden="true">${S}</svg>`;if(C){const S=r.filter(h=>h.length>=3).map(h=>`M${je(h).map(E).join("L")}Z`).join("");return S?w(`<path d="${S}" fill="${a}" fill-opacity="0.45" fill-rule="evenodd" stroke="${a}" stroke-width="1.2" stroke-linejoin="round"/>`):""}if($){const S=r.filter(h=>h.length>=2).map(h=>`M${je(h).map(E).join("L")}`).join("");return S?w(`<path d="${S}" fill="none" stroke="${a}" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>`):""}return""}function Me(e,t,a){const r=G(t,"#00E08A"),i=(e||"").toLowerCase(),o=a!==void 0?Qa(i,a,r):"";return o||(i==="polygon"||i==="multipolygon"?`<svg viewBox="0 0 16 16" width="11" height="11"><polygon points="2,14 14,14 12,2 4,4" fill="${r}" fill-opacity="0.45" stroke="${r}" stroke-width="1.5"/></svg>`:i==="linestring"||i==="multilinestring"?`<svg viewBox="0 0 16 16" width="11" height="11"><polyline points="2,13 8,3 14,10" fill="none" stroke="${r}" stroke-width="2"/></svg>`:i==="text"?`<svg viewBox="0 0 16 16" width="11" height="11"><text x="8" y="12" font-size="12" font-weight="bold" fill="${r}" text-anchor="middle" font-family="sans-serif">T</text></svg>`:`<svg viewBox="0 0 16 16" width="11" height="11"><circle cx="8" cy="8" r="4.2" fill="${r}" stroke="#ffffff" stroke-width="1.2"/></svg>`)}function ea(e,t,a){return{camadaIdSeguro:z(e.id),corCamada:G(e.color,"#00E08A"),profundidade:t,esmaecida:e.visible===!1||(a==null?void 0:a.ocultaPorAncestral)===!0,travadaPelaCamada:e.locked===!0||(a==null?void 0:a.travadaPorAncestral)===!0}}const xe=(e,t,a)=>`${e} ${e===1?t:a}`;function aa(e,t,a){return a===0?xe(e,"feição","feições"):`${xe(e,"feição","feições")} no grupo (${t} nesta camada) · ${xe(a,"subcamada","subcamadas")}`}function ta(e,t,a,r){return e===0&&r?"":`<span class="ui-count-chip" title="${aa(e,t,a)}">${e}</span>`}function ra(e,t){const a=t-e;return{resumo:`Exibindo ${e} de ${t} feições. Use a busca acima para filtrar.`,botao:`Mostrar mais (+${Math.min(80,a)})`}}function ia(e,t,a){const r=ra(t,a);return`<div class="ui-truncate-notice" role="note">
126
+ `}const Le=64;function Ve(e){return Array.isArray(e)&&e.length>=2&&Number.isFinite(e[0])&&Number.isFinite(e[1])}function sa(e){return!Array.isArray(e)||e.length===0?[]:Ve(e[0])?[e.filter(Ve)]:e.flatMap(sa)}function Ye(e){if(e.length<=Le)return e;const t=e.length/Le,a=[];for(let r=0;r<Le;r++)a.push(e[Math.floor(r*t)]);return a.push(e[e.length-1]),a}function rt(e,t,a){const r=sa(t).filter(S=>S.length>0);if(r.length===0)return"";let i=1/0,o=-1/0,n=1/0,s=-1/0;for(const S of r)for(const[F,B]of S)B<i&&(i=B),B>o&&(o=B),-F<n&&(n=-F),-F>s&&(s=-F);const c=16,l=2,u=c-l*2,p=o-i,d=s-n,f=Math.max(p,d),m=f>0?u/f:0,h=l+(u-p*m)/2,v=l+(u-d*m)/2,g=S=>Math.round(S*100)/100,w=([S,F])=>`${g(h+(F-i)*m)},${g(v+(-S-n)*m)}`,k=e==="polygon"||e==="multipolygon",L=e==="linestring"||e==="multilinestring",A=S=>`<svg viewBox="0 0 ${c} ${c}" width="100%" height="100%" aria-hidden="true">${S}</svg>`;if(k){const S=r.filter(F=>F.length>=3).map(F=>`M${Ye(F).map(w).join("L")}Z`).join("");return S?A(`<path d="${S}" fill="${a}" fill-opacity="0.45" fill-rule="evenodd" stroke="${a}" stroke-width="1.2" stroke-linejoin="round"/>`):""}if(L){const S=r.filter(F=>F.length>=2).map(F=>`M${Ye(F).map(w).join("L")}`).join("");return S?A(`<path d="${S}" fill="none" stroke="${a}" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>`):""}return""}function Te(e,t,a){const r=K(t,"#00E08A"),i=(e||"").toLowerCase(),o=a!==void 0?rt(i,a,r):"";return o||(i==="polygon"||i==="multipolygon"?`<svg viewBox="0 0 16 16" width="11" height="11"><polygon points="2,14 14,14 12,2 4,4" fill="${r}" fill-opacity="0.45" stroke="${r}" stroke-width="1.5"/></svg>`:i==="linestring"||i==="multilinestring"?`<svg viewBox="0 0 16 16" width="11" height="11"><polyline points="2,13 8,3 14,10" fill="none" stroke="${r}" stroke-width="2"/></svg>`:i==="text"?`<svg viewBox="0 0 16 16" width="11" height="11"><text x="8" y="12" font-size="12" font-weight="bold" fill="${r}" text-anchor="middle" font-family="sans-serif">T</text></svg>`:`<svg viewBox="0 0 16 16" width="11" height="11"><circle cx="8" cy="8" r="4.2" fill="${r}" stroke="#ffffff" stroke-width="1.2"/></svg>`)}function la(e,t,a){return{camadaIdSeguro:M(e.id),corCamada:K(e.color,"#00E08A"),profundidade:t,esmaecida:e.visible===!1||(a==null?void 0:a.ocultaPorAncestral)===!0,travadaPelaCamada:e.locked===!0||(a==null?void 0:a.travadaPorAncestral)===!0}}const Ce=(e,t,a)=>`${e} ${e===1?t:a}`;function ca(e,t,a){return a===0?Ce(e,"feição","feições"):`${Ce(e,"feição","feições")} no grupo (${t} nesta camada) · ${Ce(a,"subcamada","subcamadas")}`}function da(e,t,a,r){return e===0&&r?"":`<span class="ui-count-chip" title="${ca(e,t,a)}">${e}</span>`}function ua(e,t){const a=t-e;return{resumo:`Exibindo ${e} de ${t} feições. Use a busca acima para filtrar.`,botao:`Mostrar mais (+${Math.min(80,a)})`}}function pa(e,t,a){const r=ua(t,a);return`<div class="ui-truncate-notice" role="note">
127
127
  <span>${r.resumo}</span>
128
128
  <button type="button" class="ui-truncate-more-btn" data-layer-show-more="${e}">${r.botao}</button>
129
- </div>`}function oa(e){return`<div class="ui-empty-row"><span>${e?"Grupo vazio (adicione subcamadas ou feições)":"Camada vazia"}</span></div>`}const Xa=["name","color","visible","locked","status","type","geometryType","coordinates","layerId"];function Wa(e,t){return Xa.every(a=>e[a]===t[a])}function na(e,t,a,r){const{camadaIdSeguro:i,corCamada:o,profundidade:n}=t,s=z(e.id),c=z(e.name||"Feição"),l=G(e.color,o),p=e.visible!==!1,d=t.travadaPelaCamada,u=e.locked===!0||d,f=d?"Bloqueada pela camada":u?"Desbloquear Feição":"Bloquear Feição",m=e.status==="previa"?'<span class="ui-previa-dot" title="Geometria prévia" aria-label="Geometria prévia"></span>':"";return`
130
- <div class="ui-feat-row ${a?"selected-row":""} ${p?"":"hidden-row"} ${t.esmaecida?"herdado-oculto":""}" data-feat-row="${s}" data-feat-select="${s}" data-feat-layer="${i}" role="treeitem" aria-level="${n+2}" aria-selected="${a}" tabindex="-1" draggable="true" part="${a?"feicao feicao-selecionada":"feicao"}" style="--layer-depth: ${n+1};" title="Clique para selecionar | Arraste para reordenar">
131
- <div class="ui-col ui-col-eye" data-feat-eye="${s}" role="button" tabindex="0" aria-label="${p?"Ocultar Feição":"Exibir Feição"}" title="${p?"Ocultar Feição":"Exibir Feição"}">
132
- ${p?y.olhoAberto:y.olhoFechado}
129
+ </div>`}function fa(e){return`<div class="ui-empty-row"><span>${e?"Grupo vazio (adicione subcamadas ou feições)":"Camada vazia"}</span></div>`}const it=["name","color","visible","locked","status","type","geometryType","coordinates","layerId"];function ot(e,t){return it.every(a=>e[a]===t[a])}function ma(e,t,a,r){const{camadaIdSeguro:i,corCamada:o,profundidade:n}=t,s=M(e.id),c=M(e.name||"Feição"),l=K(e.color,o),u=e.visible!==!1,p=t.travadaPelaCamada,d=e.locked===!0||p,f=p?"Bloqueada pela camada":d?"Desbloquear Feição":"Bloquear Feição",m=e.status==="previa"?'<span class="ui-previa-dot" title="Geometria prévia" aria-label="Geometria prévia"></span>':"";return`
130
+ <div class="ui-feat-row ${a?"selected-row":""} ${u?"":"hidden-row"} ${t.esmaecida?"herdado-oculto":""}" data-feat-row="${s}" data-feat-select="${s}" data-feat-layer="${i}" role="treeitem" aria-level="${n+2}" aria-selected="${a}" tabindex="-1" draggable="true" part="${a?"feicao feicao-selecionada":"feicao"}" style="--layer-depth: ${n+1};" title="Clique para selecionar | Arraste para reordenar">
131
+ <div class="ui-col ui-col-eye" data-feat-eye="${s}" role="button" tabindex="0" aria-label="${u?"Ocultar Feição":"Exibir Feição"}" title="${u?"Ocultar Feição":"Exibir Feição"}">
132
+ ${u?b.olhoAberto:b.olhoFechado}
133
133
  </div>
134
134
 
135
- <div class="ui-col ui-col-lock ${u?"":"ui-lock-open"}" data-feat-lock="${s}" ${d?'data-locked-by-layer="true"':""} role="button" tabindex="0" aria-label="${f}" title="${f}">
136
- ${u?y.cadeadoTrancado:y.cadeadoAberto}
135
+ <div class="ui-col ui-col-lock ${d?"":"ui-lock-open"}" data-feat-lock="${s}" ${p?'data-locked-by-layer="true"':""} role="button" tabindex="0" aria-label="${f}" title="${f}">
136
+ ${d?b.cadeadoTrancado:b.cadeadoAberto}
137
137
  </div>
138
138
 
139
- <div class="ui-col ui-col-colorbar" style="background: ${l};"></div>
140
- <div class="ui-col ui-col-branch"><span style="opacity: 0.35;">└─</span></div>
139
+ <div class="ui-col ui-col-colorbar" style="background: ${o};"></div>
141
140
  <div class="ui-col ui-col-thumb">
142
- <div class="ui-thumb-box">${Me(e.type||e.geometryType,l,e.coordinates)}</div>
141
+ <div class="ui-thumb-box">${Te(e.type||e.geometryType,l,e.coordinates)}</div>
143
142
  </div>
144
143
 
145
144
  <div class="ui-col ui-col-name" data-feat-name-trigger="${s}" title="Duplo clique para renomear">
@@ -147,46 +146,46 @@
147
146
  </div>
148
147
 
149
148
  <div class="ui-col ui-col-actions">
150
- <button class="ui-micro-btn" data-feat-fit="${s}" title="Enquadrar no mapa" aria-label="Enquadrar feição no mapa">${y.alvoEnquadrar}</button>
149
+ <button class="ui-micro-btn" data-feat-fit="${s}" title="Enquadrar no mapa" aria-label="Enquadrar feição no mapa">${b.alvoEnquadrar}</button>
151
150
  </div>
152
151
 
153
152
  <div class="ui-col ui-col-target" data-feat-target="${s}" role="button" tabindex="0" aria-label="Selecionar feição" title="Selecionar feição">
154
153
  <div class="ui-target-circle ${a?"selected":""}"></div>
155
154
  </div>
156
155
  </div>
157
- `}const fe=80;function _(e,t){const a=(t||"").trim().toLowerCase();return a?e.filter(r=>(r.name||"").toLowerCase().includes(a)||(r.category||"").toLowerCase().includes(a)||(r.type||"").toLowerCase().includes(a)):e}function Fe(e,t,a){var u,f;const r=(a||"").trim().toLowerCase();if(!r)return null;const i=new Map,o=new Map;for(const m of e)i.set(m.id,m),m.parentId&&m.parentId!==m.id&&(o.has(m.parentId)||o.set(m.parentId,[]),o.get(m.parentId).push(m.id));const n=new Map;for(const m of t){const g=m.layerId||"";n.has(g)||n.set(g,[]),n.get(g).push(m)}const s=new Set,c=new Set;for(const m of e)(typeof m.name=="string"?m.name.toLowerCase():"").includes(r)?(s.add(m.id),c.add(m.id)):_(n.get(m.id)||[],r).length>0&&c.add(m.id);const l=new Set(c);for(const m of c){const g=new Set([m]);let v=(u=i.get(m))==null?void 0:u.parentId;for(;v&&i.has(v)&&!g.has(v);)g.add(v),l.add(v),v=(f=i.get(v))==null?void 0:f.parentId}const p=[...s];for(;p.length>0;){const m=p.pop();for(const g of o.get(m)||[])l.has(g)||(l.add(g),p.push(g))}const d=new Map;for(const m of l){const g=n.get(m)||[];d.set(m,s.has(m)?g:_(g,r))}return{camadasVisiveis:l,feicoesPorCamada:d}}function ze(e,t,a,r="",i=fe,o){const n=Fe(e,t,r),s=[],c=new Map;for(let d=0;d<t.length;d++){const u=t[d];if(!u||!u.id)continue;const f=u.layerId||"";c.has(f)||c.set(f,[]),c.get(f).push(u)}const l=W(e);function p(d){const u=d.camada;if(n&&!n.camadasVisiveis.has(u.id)||!(n?!0:a.has(u.id)))return;for(const b of d.subcamadas)p(b);const m=n?n.feicoesPorCamada.get(u.id)||[]:c.get(u.id)||[],g=(o==null?void 0:o.get(u.id))??i,v=m.slice(0,g);for(let b=0;b<v.length;b++)s.push(v[b].id)}for(const d of l)p(d);return s}function sa(e,t,a,r,i,o){if(!e.includes(r))return null;const n=new Set(t);let s=a;if(o&&a&&e.includes(a)){const c=e.indexOf(a),l=e.indexOf(r),p=Math.min(c,l),d=Math.max(c,l);i||n.clear();for(let u=p;u<=d;u++)n.add(e[u])}else i?(n.has(r)?n.delete(r):n.add(r),s=r):(n.clear(),n.add(r),s=r);return{selecionados:n,ultimoClicadoId:s}}function me(e,t){if(e.size===0)return;const a=new Set(t.map(r=>r.id));for(const r of e)a.has(r)||e.delete(r)}function K(e,t,a){const r=new Set;let i=e.find(o=>o.id===t);for(;i&&i.parentId;){if(r.has(i.id)||(r.add(i.id),i.parentId===a))return!0;i=e.find(o=>o.id===(i==null?void 0:i.parentId))}return!1}function Ne(e){return Number.isFinite(e)?e<.25?"acima":e>.75?"abaixo":"dentro":"dentro"}function He(e,t,a,r){if(!t||!a||t===a)return null;const i=e.find(l=>l.id===t),o=e.find(l=>l.id===a);if(!i||!o)return null;const n=i.parentId!==void 0?i.parentId:null;if(r==="dentro")return K(e,o.id,i.id)?null:(i.parentId=o.id,{tipo:"hierarquia",camada:i,novoParentId:o.id,parentAnteriorId:n});if(K(e,o.id,i.id))return null;const s=e.findIndex(l=>l.id===t);e.splice(s,1);const c=e.findIndex(l=>l.id===a);return c===-1?e.push(i):e.splice(r==="acima"?c:c+1,0,i),i.parentId=o.parentId??null,{tipo:"ordem",camada:i,parentAnteriorId:n,novoParentId:i.parentId}}function Ja(e,t,a,r){const i=e.find(s=>s.id===a),o=t.find(s=>s.id===r);if(!i||!o||i.layerId===r)return null;const n=i.layerId;return i.layerId=r,{feicao:i,camadaOrigemId:n,camadaDestinoId:r,mudouDeCamada:!0}}function Za(e,t,a,r){if(!t||!a||t===a)return null;const i=e.findIndex(d=>d.id===t);if(i===-1)return null;const o=e.find(d=>d.id===a);if(!o)return null;const[n]=e.splice(i,1),s=n.layerId,c=o.layerId,l=s!==c;l&&(n.layerId=c);const p=e.findIndex(d=>d.id===a);return p===-1?e.push(n):e.splice(r?p:p+1,0,n),{feicao:n,camadaOrigemId:s,camadaDestinoId:c,mudouDeCamada:l}}function la(e){const{camadas:t,feicoes:a,camadaAtivaId:r,expandedLayers:i,selectedFeatureIds:o,activeSettingsLayerId:n,editingLayerId:s,editingFeatureId:c,searchQuery:l,titulo:p="CAMADAS",mostrarBusca:d=!0,limitesPorCamada:u,limiteFeicoesPorCamada:f=fe,mostrarBotaoColapsar:m=!1}=e,g=(l||"").trim().toLowerCase(),v=Fe(t,a,g),b=new Map;for(let I=0;I<a.length;I++){const x=a[I];if(!x||!x.id)continue;const B=x.layerId||"";b.has(B)||b.set(B,[]),b.get(B).push(x)}const E=pe(t),C=t.every(I=>I.visible!==!1),$=t.length>0&&t.every(I=>i.has(I.id)),w=d?`
156
+ `}const be=80;function Q(e,t){const a=(t||"").trim().toLowerCase();return a?e.filter(r=>(r.name||"").toLowerCase().includes(a)||(r.category||"").toLowerCase().includes(a)||(r.type||"").toLowerCase().includes(a)):e}function Oe(e,t,a){var d,f;const r=(a||"").trim().toLowerCase();if(!r)return null;const i=new Map,o=new Map;for(const m of e)i.set(m.id,m),m.parentId&&m.parentId!==m.id&&(o.has(m.parentId)||o.set(m.parentId,[]),o.get(m.parentId).push(m.id));const n=new Map;for(const m of t){const h=m.layerId||"";n.has(h)||n.set(h,[]),n.get(h).push(m)}const s=new Set,c=new Set;for(const m of e)(typeof m.name=="string"?m.name.toLowerCase():"").includes(r)?(s.add(m.id),c.add(m.id)):Q(n.get(m.id)||[],r).length>0&&c.add(m.id);const l=new Set(c);for(const m of c){const h=new Set([m]);let v=(d=i.get(m))==null?void 0:d.parentId;for(;v&&i.has(v)&&!h.has(v);)h.add(v),l.add(v),v=(f=i.get(v))==null?void 0:f.parentId}const u=[...s];for(;u.length>0;){const m=u.pop();for(const h of o.get(m)||[])l.has(h)||(l.add(h),u.push(h))}const p=new Map;for(const m of l){const h=n.get(m)||[];p.set(m,s.has(m)?h:Q(h,r))}return{camadasVisiveis:l,feicoesPorCamada:p}}function Re(e,t,a,r="",i=be,o){const n=Oe(e,t,r),s=[],c=new Map;for(let p=0;p<t.length;p++){const d=t[p];if(!d||!d.id)continue;const f=d.layerId||"";c.has(f)||c.set(f,[]),c.get(f).push(d)}const l=ae(e);function u(p){const d=p.camada;if(n&&!n.camadasVisiveis.has(d.id)||!(n?!0:a.has(d.id)))return;for(const g of p.subcamadas)u(g);const m=n?n.feicoesPorCamada.get(d.id)||[]:c.get(d.id)||[],h=(o==null?void 0:o.get(d.id))??i,v=m.slice(0,h);for(let g=0;g<v.length;g++)s.push(v[g].id)}for(const p of l)u(p);return s}function ga(e,t,a,r,i,o){if(!e.includes(r))return null;const n=new Set(t);let s=a;if(o&&a&&e.includes(a)){const c=e.indexOf(a),l=e.indexOf(r),u=Math.min(c,l),p=Math.max(c,l);i||n.clear();for(let d=u;d<=p;d++)n.add(e[d])}else i?(n.has(r)?n.delete(r):n.add(r),s=r):(n.clear(),n.add(r),s=r);return{selecionados:n,ultimoClicadoId:s}}function ye(e,t){if(e.size===0)return;const a=new Set(t.map(r=>r.id));for(const r of e)a.has(r)||e.delete(r)}function N(e,t,a){const r=new Set;let i=e.find(o=>o.id===t);for(;i&&i.parentId;){if(r.has(i.id)||(r.add(i.id),i.parentId===a))return!0;i=e.find(o=>o.id===(i==null?void 0:i.parentId))}return!1}function Se(e){return Number.isFinite(e)?e<.25?"acima":e>.75?"abaixo":"dentro":"dentro"}function Ke(e,t,a,r){if(!t||!a||t===a)return null;const i=e.find(l=>l.id===t),o=e.find(l=>l.id===a);if(!i||!o)return null;const n=i.parentId!==void 0?i.parentId:null;if(r==="dentro")return N(e,o.id,i.id)?null:(i.parentId=o.id,{tipo:"hierarquia",camada:i,novoParentId:o.id,parentAnteriorId:n});if(N(e,o.id,i.id))return null;const s=e.findIndex(l=>l.id===t);e.splice(s,1);const c=e.findIndex(l=>l.id===a);return c===-1?e.push(i):e.splice(r==="acima"?c:c+1,0,i),i.parentId=o.parentId??null,{tipo:"ordem",camada:i,parentAnteriorId:n,novoParentId:i.parentId}}function nt(e,t,a,r){const i=e.find(s=>s.id===a),o=t.find(s=>s.id===r);if(!i||!o||i.layerId===r)return null;const n=i.layerId;return i.layerId=r,{feicao:i,camadaOrigemId:n,camadaDestinoId:r,mudouDeCamada:!0}}function st(e,t,a,r){if(!t||!a||t===a)return null;const i=e.findIndex(p=>p.id===t);if(i===-1)return null;const o=e.find(p=>p.id===a);if(!o)return null;const[n]=e.splice(i,1),s=n.layerId,c=o.layerId,l=s!==c;l&&(n.layerId=c);const u=e.findIndex(p=>p.id===a);return u===-1?e.push(n):e.splice(r?u:u+1,0,n),{feicao:n,camadaOrigemId:s,camadaDestinoId:c,mudouDeCamada:l}}function R(e){return`L:${e}`}function O(e){return`F:${e}`}function lt(e,t,a){if(!a||a.length===0)return[...e.map(s=>({tipo:"layer",nodo:s})),...t.map(s=>({tipo:"feature",feicao:s}))];const r=new Map(e.map(s=>[s.camada.id,s])),i=new Map(t.map(s=>[s.id,s])),o=new Set,n=[];for(const s of a)if(!o.has(s)){if(s.startsWith("L:")){const c=s.slice(2),l=r.get(c);l&&(o.add(s),n.push({tipo:"layer",nodo:l}))}else if(s.startsWith("F:")){const c=s.slice(2),l=i.get(c);l&&(o.add(s),n.push({tipo:"feature",feicao:l}))}}for(const s of e){const c=R(s.camada.id);o.has(c)||(o.add(c),n.push({tipo:"layer",nodo:s}))}for(const s of t){const c=O(s.id);o.has(c)||(o.add(c),n.push({tipo:"feature",feicao:s}))}return n}function xe(e,t,a,r){const i=a.filter(u=>u.parentId===t).map(u=>u.id),o=r.filter(u=>u.layerId===t).map(u=>u.id),n=new Set([...i.map(R),...o.map(O)]),s=e.get(t),c=[],l=new Set;if(s)for(const u of s)n.has(u)&&!l.has(u)&&(l.add(u),c.push(u));for(const u of i){const p=R(u);l.has(p)||(l.add(p),c.push(p))}for(const u of o){const p=O(u);l.has(p)||(l.add(p),c.push(p))}return c}function we(e,t,a,r){const i=e.filter(n=>n!==t),o=i.indexOf(a);o===-1?i.push(t):i.splice(r?o:o+1,0,t),e.length=0,e.push(...i)}function U(e,t,a){if(!t)return;const r=e.get(t);if(!r)return;const i=r.filter(o=>o!==a);i.length===0?e.delete(t):e.set(t,i)}function ct(e,t){const a=t.filter(n=>n.startsWith("L:")).map(n=>n.slice(2));if(a.length<2)return;const r=new Set(a),i=[],o=new Map;for(let n=0;n<e.length;n++)r.has(e[n].id)&&(i.push(n),o.set(e[n].id,e[n]));if(i.length===a.length)for(let n=0;n<i.length;n++){const s=o.get(a[n]);s&&(e[i[n]]=s)}}function dt(e,t){const a=t.filter(n=>n.startsWith("F:")).map(n=>n.slice(2));if(a.length<2)return;const r=new Set(a),i=[],o=new Map;for(let n=0;n<e.length;n++)r.has(e[n].id)&&(i.push(n),o.set(e[n].id,e[n]));if(i.length===a.length)for(let n=0;n<i.length;n++){const s=o.get(a[n]);s&&(e[i[n]]=s)}}function Qe(e,t,a,r,i,o){if(!r||!i)return null;const n=e.find(p=>p.id===r),s=t.find(p=>p.id===i);if(!n||!s||!s.layerId)return null;const c=s.layerId;if(c===r||N(e,c,r))return null;const l=n.parentId!==void 0?n.parentId:null;l&&l!==c&&U(a,l,R(r)),n.parentId=c;const u=xe(a,c,e,t);return we(u,R(r),O(i),o),a.set(c,u),ct(e,u),{tipo:l!==c?"hierarquia":"ordem",camada:n,parentAnteriorId:l,novoParentId:c}}function ut(e,t,a,r,i,o){if(!r||!i)return null;const n=t.find(d=>d.id===r),s=e.find(d=>d.id===i);if(!n||!s||!s.parentId)return null;const c=s.parentId,l=n.layerId,u=l!==c;u&&(U(a,l,O(r)),n.layerId=c);const p=xe(a,c,e,t);return we(p,O(r),R(i),o),a.set(c,p),dt(t,p),{feicao:n,camadaOrigemId:l,camadaDestinoId:c,mudouDeCamada:u}}function Xe(e,t,a,r,i,o,n,s){const c=R(r);if(n&&(n!==s||o==="dentro")&&U(a,n,c),o!=="dentro"&&s&&a.has(s)){const l=xe(a,s,e,t);we(l,c,R(i),o==="acima"),a.set(s,l)}}function pt(e,t,a,r,i,o,n,s){const c=O(r);if(n&&n!==s&&U(a,n,c),s&&a.has(s)){const l=xe(a,s,e,t);we(l,c,O(i),o),a.set(s,l)}}function ft(e,t,a,r){const i=O(t);if(U(e,a,i),r&&e.has(r)){const o=e.get(r);o.includes(i)||o.push(i)}}function ha(e){const{camadas:t,feicoes:a,camadaAtivaId:r,expandedLayers:i,selectedFeatureIds:o,activeSettingsLayerId:n,editingLayerId:s,editingFeatureId:c,searchQuery:l,titulo:u="CAMADAS",mostrarBusca:p=!0,limitesPorCamada:d,limiteFeicoesPorCamada:f=be,mostrarBotaoColapsar:m=!1,ordemFilhosPorPai:h}=e,v=(l||"").trim().toLowerCase(),g=Oe(t,a,v),w=new Map;for(let x=0;x<a.length;x++){const y=a[x];if(!y||!y.id)continue;const P=y.layerId||"";w.has(P)||w.set(P,[]),w.get(P).push(y)}const k=ve(t),L=t.every(x=>x.visible!==!1),A=t.length>0&&t.every(x=>i.has(x.id)),S=p?`
158
157
  <div class="ui-tree-search-wrapper" part="busca">
159
- <span class="ui-tree-search-icon">${y.busca}</span>
160
- <input type="text" class="ui-tree-search-input" id="input-layer-search" aria-label="Buscar camada ou feição" placeholder="Buscar camada ou feição..." value="${z(l)}" />
161
- ${l?`<button class="ui-tree-search-clear" id="btn-clear-layer-search" title="Limpar busca" aria-label="Limpar busca">${y.fechar}</button>`:""}
158
+ <span class="ui-tree-search-icon">${b.busca}</span>
159
+ <input type="text" class="ui-tree-search-input" id="input-layer-search" aria-label="Buscar camada ou feição" placeholder="Buscar camada ou feição..." value="${M(l)}" />
160
+ ${l?`<button class="ui-tree-search-clear" id="btn-clear-layer-search" title="Limpar busca" aria-label="Limpar busca">${b.fechar}</button>`:""}
162
161
  </div>
163
- `:"",S=`
162
+ `:"",F=`
164
163
  <div class="ui-tree-toolbar" part="toolbar">
165
164
  <div class="ui-tree-title-group">
166
- <span class="ui-tree-section-title">${z(p||"CAMADAS")}</span>
165
+ <span class="ui-tree-section-title">${M(u||"CAMADAS")}</span>
167
166
  <span class="ui-tree-count-badge">${t.length}</span>
168
167
  </div>
169
168
  <div class="ui-tree-actions">
170
- <button id="btn-toggle-all-vis" class="ui-tree-action-btn" title="${C?"Ocultar Todas as Camadas":"Exibir Todas as Camadas"}" aria-label="${C?"Ocultar Todas as Camadas":"Exibir Todas as Camadas"}">
171
- ${C?y.olhoAberto:y.olhoFechado}
169
+ <button id="btn-toggle-all-vis" class="ui-tree-action-btn" title="${L?"Ocultar Todas as Camadas":"Exibir Todas as Camadas"}" aria-label="${L?"Ocultar Todas as Camadas":"Exibir Todas as Camadas"}">
170
+ ${L?b.olhoAberto:b.olhoFechado}
172
171
  </button>
173
- <button id="btn-toggle-all-expand" class="ui-tree-action-btn" aria-label="${$?"Recolher Todos os Grupos":"Expandir Todos os Grupos"}" title="${$?"Recolher Todos os Grupos":"Expandir Todos os Grupos"}">
174
- <span class="ui-chevron-icon ${$?"open":""}">${y.chevronDir}</span>
172
+ <button id="btn-toggle-all-expand" class="ui-tree-action-btn" aria-label="${A?"Recolher Todos os Grupos":"Expandir Todos os Grupos"}" title="${A?"Recolher Todos os Grupos":"Expandir Todos os Grupos"}">
173
+ <span class="ui-chevron-icon ${A?"open":""}">${b.chevronDir}</span>
175
174
  </button>
176
- ${m?`<button id="btn-colapsar" class="ui-camadas-btn-colapsar" title="Recolher painel" aria-label="Recolher painel">${y.recolherPainel}</button>`:""}
175
+ ${m?`<button id="btn-colapsar" class="ui-camadas-btn-colapsar" title="Recolher painel" aria-label="Recolher painel">${b.recolherPainel}</button>`:""}
177
176
  </div>
178
177
  </div>
179
- ${w}
180
- `,h=I=>{const x=I.camada;if(v&&!v.camadasVisiveis.has(x.id))return"";const B=I.depth,T=I.subcamadas,qe=v?T.filter(F=>v.camadasVisiveis.has(F.camada.id)):T,V=!!(x.isGroup||T.length>0),L=z(x.id),Z=z(x.name||(V?"Novo Grupo":"Camada")),N=G(x.color,"#00E08A"),ee=x.visible!==!1,ae=x.locked===!0,te=g?!0:i.has(x.id),ge=n===x.id,ve=r===x.id,O=E.get(x.id),La=(O==null?void 0:O.ocultaPorAncestral)===!0,Sa=(O==null?void 0:O.travadaPorAncestral)===!0,R=v?v.feicoesPorCamada.get(x.id)||[]:b.get(x.id)||[],re=v?R:J(t,a,x.id),De=re.length>0&&re.every(F=>o.has(F.id)),$a=!De&&re.some(F=>o.has(F.id)),be=(u==null?void 0:u.get(x.id))??f,Ma=R.slice(0,be),Fa=R.length>be,za=ea(x,B,O),Ba=Ma.map(F=>na(F,za,o.has(F.id),c===F.id)).join(""),Pa=Fa?ia(L,be,R.length):"",Te=Number(x.opacity??1),Re=Number.isFinite(Te)?Math.min(1,Math.max(0,Te)):1,qa=Math.round(Re*100),Da=t.filter(F=>F.id!==x.id&&!K(t,F.id,x.id)).map(F=>`<option value="${z(F.id)}" ${x.parentId===F.id?"selected":""}>${F.isGroup?"📁 ":""}${z(F.name)}</option>`).join(""),Ta=ge?`
181
- <div class="ui-layer-settings-drawer" id="settings-drawer-${L}" part="drawer" style="--drawer-cor-camada: ${N};">
178
+ ${S}
179
+ `,B=x=>{const y=x.camada;if(g&&!g.camadasVisiveis.has(y.id))return"";const P=x.depth,V=x.subcamadas,He=g?V.filter($=>g.camadasVisiveis.has($.camada.id)):V,re=!!(y.isGroup||V.length>0),C=M(y.id),ie=M(y.name||(re?"Novo Grupo":"Camada")),H=K(y.color,"#00E08A"),oe=y.visible!==!1,ne=y.locked===!0,se=v?!0:i.has(y.id),Ae=n===y.id,Ee=r===y.id,G=k.get(y.id),qa=(G==null?void 0:G.ocultaPorAncestral)===!0,Da=(G==null?void 0:G.travadaPorAncestral)===!0,j=g?g.feicoesPorCamada.get(y.id)||[]:w.get(y.id)||[],le=g?j:te(t,a,y.id),Ge=le.length>0&&le.every($=>o.has($.id)),Ta=!Ge&&le.some($=>o.has($.id)),Ie=(d==null?void 0:d.get(y.id))??f,Oa=j.slice(0,Ie),Ra=j.length>Ie,ja=la(y,P,G),Na=$=>ma($,ja,o.has($.id),c===$.id),Ha=Ra?pa(C,Ie,j.length):"",_e=Number(y.opacity??1),Ue=Number.isFinite(_e)?Math.min(1,Math.max(0,_e)):1,Ga=Math.round(Ue*100),_a=t.filter($=>$.id!==y.id&&!N(t,$.id,y.id)).map($=>`<option value="${M($.id)}" ${y.parentId===$.id?"selected":""}>${$.isGroup?"📁 ":""}${M($.name)}</option>`).join(""),Ua=Ae?`
180
+ <div class="ui-layer-settings-drawer" id="settings-drawer-${C}" part="drawer" style="--drawer-cor-camada: ${H};">
182
181
  <div class="ui-drawer-header">
183
182
  <div class="ui-drawer-header-left">
184
- <span class="ui-drawer-icon">${y.engrenagem}</span>
183
+ <span class="ui-drawer-icon">${b.engrenagem}</span>
185
184
  <span class="ui-drawer-title">Configurações da Camada</span>
186
- <span class="ui-drawer-layer-chip" title="${Z}">${Z}</span>
185
+ <span class="ui-drawer-layer-chip" title="${ie}">${ie}</span>
187
186
  </div>
188
- <button type="button" class="ui-drawer-btn-fechar" data-layer-settings-close="${L}" title="Fechar configurações (Esc)" aria-label="Fechar configurações">
189
- ${y.fechar}
187
+ <button type="button" class="ui-drawer-btn-fechar" data-layer-settings-close="${C}" title="Fechar configurações (Esc)" aria-label="Fechar configurações">
188
+ ${b.fechar}
190
189
  </button>
191
190
  </div>
192
191
 
@@ -198,9 +197,9 @@
198
197
  </div>
199
198
  <div class="ui-drawer-color-group">
200
199
  <label class="ui-drawer-color-pill" title="Clique para alterar a cor da camada">
201
- <span class="ui-drawer-color-sample" id="sample-color-${L}" style="background-color: ${N};"></span>
202
- <span class="ui-drawer-color-hex" id="hex-color-${L}">${N.toUpperCase()}</span>
203
- <input type="color" aria-label="Cor da camada" data-layer-color-picker="${L}" value="${Ya(N,"#00e08a")}" class="ui-drawer-color-native" />
200
+ <span class="ui-drawer-color-sample" id="sample-color-${C}" style="background-color: ${H};"></span>
201
+ <span class="ui-drawer-color-hex" id="hex-color-${C}">${H.toUpperCase()}</span>
202
+ <input type="color" aria-label="Cor da camada" data-layer-color-picker="${C}" value="${at(H,"#00e08a")}" class="ui-drawer-color-native" />
204
203
  </label>
205
204
  </div>
206
205
  </div>
@@ -209,10 +208,10 @@
209
208
  <div class="ui-drawer-row">
210
209
  <div class="ui-drawer-row-label">
211
210
  <span>Opacidade</span>
212
- <span class="ui-drawer-badge" id="badge-op-${L}">${qa}%</span>
211
+ <span class="ui-drawer-badge" id="badge-op-${C}">${Ga}%</span>
213
212
  </div>
214
213
  <div class="ui-drawer-slider-container">
215
- <input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(Re)||0}" data-layer-opacity-slider="${L}" class="ui-drawer-slider" />
214
+ <input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(Ue)||0}" data-layer-opacity-slider="${C}" class="ui-drawer-slider" />
216
215
  </div>
217
216
  </div>
218
217
 
@@ -222,9 +221,9 @@
222
221
  <span>Pertence ao Grupo</span>
223
222
  </div>
224
223
  <div class="ui-drawer-select-wrapper">
225
- <select class="ui-drawer-select" data-layer-parent-select="${L}" aria-label="Grupo pai da camada">
226
- <option value="" ${x.parentId?"":"selected"}>(Nenhum - Nível Principal)</option>
227
- ${Da}
224
+ <select class="ui-drawer-select" data-layer-parent-select="${C}" aria-label="Grupo pai da camada">
225
+ <option value="" ${y.parentId?"":"selected"}>(Nenhum - Nível Principal)</option>
226
+ ${_a}
228
227
  </select>
229
228
  </div>
230
229
  </div>
@@ -232,76 +231,74 @@
232
231
 
233
232
  <div class="ui-drawer-footer">
234
233
  <div class="ui-drawer-meta-info">
235
- <span>${T.length>0?`${T.length} subcamadas · `:""}${R.length} ${R.length===1?"feição":"feições"}</span>
234
+ <span>${V.length>0?`${V.length} subcamadas · `:""}${j.length} ${j.length===1?"feição":"feições"}</span>
236
235
  </div>
237
236
  <div class="ui-drawer-actions">
238
- <button type="button" class="ui-drawer-btn-sublayer" data-add-sublayer="${L}" title="Adicionar nova camada dentro desta">
239
- ${y.mais} Subcamada
237
+ <button type="button" class="ui-drawer-btn-sublayer" data-add-sublayer="${C}" title="Adicionar nova camada dentro desta">
238
+ ${b.mais} Subcamada
240
239
  </button>
241
- <button type="button" class="ui-drawer-btn-danger" data-delete-layer="${L}" title="Excluir esta camada e suas feições">
242
- ${y.lixeira}
240
+ <button type="button" class="ui-drawer-btn-danger" data-delete-layer="${C}" title="Excluir esta camada e suas feições">
241
+ ${b.lixeira}
243
242
  <span class="ui-btn-label">Excluir</span>
244
243
  </button>
245
244
  </div>
246
245
  </div>
247
246
  </div>
248
- `:"",Ra=qe.map(F=>h(F)).join("");return`
249
- <div class="ui-layer-group ${B>0?"is-sublayer-group":""}" data-layer-id="${L}" data-layer-depth="${B}" role="treeitem" aria-level="${B+1}" aria-expanded="${te}" part="grupo" style="--layer-active-color: ${N};">
250
- <div class="ui-layer-row ${ee?"":"hidden-layer"} ${ve?"active-drawing-layer":""} ${B>0?"is-sublayer":""} ${V?"is-group-row":""} ${La?"herdado-oculto":""} ${Sa?"herdado-travado":""}" data-layer-row="${L}" data-layer-id="${L}" tabindex="-1" draggable="true" part="${ve?"camada camada-ativa":"camada"}" ${ve?'aria-current="true"':""} style="--layer-depth: ${B};">
251
- <div class="ui-col ui-col-drag" title="Arrastar para reordenar Z-Index">${y.dragHandle}</div>
247
+ `:"",Va=lt(He,Oa,h==null?void 0:h.get(y.id)).map($=>$.tipo==="layer"?B($.nodo):Na($.feicao)).join("");return`
248
+ <div class="ui-layer-group ${P>0?"is-sublayer-group":""}" data-layer-id="${C}" data-layer-depth="${P}" role="treeitem" aria-level="${P+1}" aria-expanded="${se}" part="grupo" style="--layer-active-color: ${H};">
249
+ <div class="ui-layer-row ${oe?"":"hidden-layer"} ${Ee?"active-drawing-layer":""} ${P>0?"is-sublayer":""} ${re?"is-group-row":""} ${qa?"herdado-oculto":""} ${Da?"herdado-travado":""}" data-layer-row="${C}" data-layer-id="${C}" tabindex="-1" draggable="true" part="${Ee?"camada camada-ativa":"camada"}" ${Ee?'aria-current="true"':""} style="--layer-depth: ${P};">
250
+ <div class="ui-col ui-col-drag" title="Arrastar para reordenar Z-Index">${b.dragHandle}</div>
252
251
 
253
- <div class="ui-col ui-col-eye" data-layer-eye="${L}" role="button" tabindex="0" aria-label="${ee?"Ocultar Camada":"Exibir Camada"}" title="${ee?"Ocultar Camada":"Exibir Camada"}">
254
- ${ee?y.olhoAberto:y.olhoFechado}
252
+ <div class="ui-col ui-col-eye" data-layer-eye="${C}" role="button" tabindex="0" aria-label="${oe?"Ocultar Camada":"Exibir Camada"}" title="${oe?"Ocultar Camada":"Exibir Camada"}">
253
+ ${oe?b.olhoAberto:b.olhoFechado}
255
254
  </div>
256
255
 
257
- <div class="ui-col ui-col-lock ${ae?"":"ui-lock-open"}" data-layer-lock="${L}" role="button" tabindex="0" aria-label="${ae?"Desbloquear Camada":"Bloquear Camada"}" title="${ae?"Desbloquear Camada":"Bloquear Camada"}">
258
- ${ae?y.cadeadoTrancado:y.cadeadoAberto}
256
+ <div class="ui-col ui-col-lock ${ne?"":"ui-lock-open"}" data-layer-lock="${C}" role="button" tabindex="0" aria-label="${ne?"Desbloquear Camada":"Bloquear Camada"}" title="${ne?"Desbloquear Camada":"Bloquear Camada"}">
257
+ ${ne?b.cadeadoTrancado:b.cadeadoAberto}
259
258
  </div>
260
259
 
261
- <div class="ui-col ui-col-colorbar ui-col-colorbar-editavel" data-layer-color="${L}" role="button" tabindex="0" style="background: ${N};" aria-label="Alterar cor da camada" title="Alterar cor da camada (usada no destaque de seleção)"></div>
260
+ <div class="ui-col ui-col-colorbar ui-col-colorbar-editavel" data-layer-color="${C}" role="button" tabindex="0" style="background: ${H};" aria-label="Alterar cor da camada" title="Alterar cor da camada (usada no destaque de seleção)"></div>
262
261
 
263
- <div class="ui-col ui-col-chevron" data-layer-expand="${L}" role="button" tabindex="0" aria-label="${te?"Recolher grupo":"Expandir grupo"}">
264
- <span class="ui-chevron-icon ${te?"open":""}">${y.chevronDir}</span>
262
+ <div class="ui-col ui-col-chevron" data-layer-expand="${C}" role="button" tabindex="0" aria-label="${se?"Recolher grupo":"Expandir grupo"}">
263
+ <span class="ui-chevron-icon ${se?"open":""}">${b.chevronDir}</span>
265
264
  </div>
266
265
 
267
- <div class="ui-col ui-col-name" data-layer-name-trigger="${L}" title="Clique para ativar camada de desenho | Duplo clique para renomear">
268
- ${s===x.id?`<input type="text" class="ui-inline-rename-input" data-inline-layer-input="${L}" value="${Z}" />`:`${V?`<span class="ui-group-folder-icon" title="Grupo/Pasta">${y.moverPasta}</span>`:""}
269
- <span class="ui-name-text">${Z}</span>
270
- ${ta(re.length,R.length,T.length,V)}`}
266
+ <div class="ui-col ui-col-name" data-layer-name-trigger="${C}" title="Clique para ativar camada de desenho | Duplo clique para renomear">
267
+ ${s===y.id?`<input type="text" class="ui-inline-rename-input" data-inline-layer-input="${C}" value="${ie}" />`:`<span class="ui-name-text">${ie}</span>
268
+ ${da(le.length,j.length,V.length,re)}`}
271
269
  </div>
272
270
 
273
271
  <div class="ui-col ui-col-actions">
274
- <button class="ui-micro-btn" data-layer-fit="${L}" title="Enquadrar camada no mapa" aria-label="Enquadrar camada no mapa">${y.alvoEnquadrar}</button>
275
- <button class="ui-micro-btn ${ge?"active":""}" data-layer-settings="${L}" title="Ajustar cor, hierarquia, opacidade e excluir" aria-label="Configurações da camada" aria-expanded="${ge}">${y.engrenagem}</button>
272
+ <button class="ui-micro-btn" data-layer-fit="${C}" title="Enquadrar camada no mapa" aria-label="Enquadrar camada no mapa">${b.alvoEnquadrar}</button>
273
+ <button class="ui-micro-btn ${Ae?"active":""}" data-layer-settings="${C}" title="Ajustar cor, hierarquia, opacidade e excluir" aria-label="Configurações da camada" aria-expanded="${Ae}">${b.engrenagem}</button>
276
274
  </div>
277
275
 
278
- <div class="ui-col ui-col-target" data-layer-target="${L}" role="button" tabindex="0" aria-label="Selecionar todas as feições deste grupo" title="Selecionar todas as feições deste grupo">
279
- <div class="ui-target-circle ${De?"selected":$a?"partial":""}"></div>
276
+ <div class="ui-col ui-col-target" data-layer-target="${C}" role="button" tabindex="0" aria-label="Selecionar todas as feições deste grupo" title="Selecionar todas as feições deste grupo">
277
+ <div class="ui-target-circle ${Ge?"selected":Ta?"partial":""}"></div>
280
278
  </div>
281
279
  </div>
282
280
 
283
- ${Ta}
281
+ ${Ua}
284
282
 
285
- <div class="ui-children-container ${B>0?"is-subchildren":""}" role="group" style="display: ${te?"block":"none"};">
286
- ${Ra}
287
- ${Ba}
288
- ${Pa}
289
- ${qe.length===0&&R.length===0?oa(V):""}
283
+ <div class="ui-children-container ${P>0?"is-subchildren":""}" role="group" style="--parent-depth: ${P}; --parent-layer-color: ${H}; display: ${se?"block":"none"};">
284
+ ${Va}
285
+ ${Ha}
286
+ ${He.length===0&&j.length===0?fa(re):""}
290
287
  </div>
291
288
  </div>
292
- `},M=W(t),k=v&&v.camadasVisiveis.size===0?`<div class="ui-search-empty" role="status">Nenhum resultado para “${z((l||"").trim())}”</div>`:M.map(I=>h(I)).join("");return`
293
- ${S}
289
+ `},E=ae(t),z=g&&g.camadasVisiveis.size===0?`<div class="ui-search-empty" role="status">Nenhum resultado para “${M((l||"").trim())}”</div>`:E.map(x=>B(x)).join("");return`
290
+ ${F}
294
291
  <div class="ui-panel-box">
295
292
  <div class="ui-layer-tree" id="ui-layer-tree-mount" role="tree" aria-label="Camadas e feições" aria-multiselectable="true" part="arvore">
296
- ${k}
293
+ ${z}
297
294
  </div>
298
295
  </div>
299
- `}function et(e){return[{gatilho:"data-layer-name-trigger",input:"data-inline-layer-input",linha:"data-layer-row",marcarEditando:t=>{e.editingLayerId=t},aplicar:(t,a)=>{const r=e.camadas.find(i=>i.id===t);return!a||!r||r.name===a?null:(r.name=a,{detalhe:{camadaId:t,novoNome:a,camada:r},salvar:!0})},emitir:t=>e.dispararEvento("ui-camada-renomeada",t)},{gatilho:"data-feat-name-trigger",input:"data-inline-feat-input",linha:"data-feat-row",marcarEditando:t=>{e.editingFeatureId=t},aplicar:(t,a)=>{const r=e.feicoes.find(i=>i.id===t);return!a||!r||r.name===a?null:(r.name=a,{detalhe:{feicaoId:t,novoNome:a,feicao:r},salvar:!1})},emitir:t=>e.dispararEvento("ui-feicao-renomeada",t)}]}function Ge(e,t,a=t){for(const r of et(e))a.querySelectorAll(`[${r.gatilho}]`).forEach(i=>{i.addEventListener("dblclick",o=>{o.stopPropagation();const n=i.getAttribute(r.gatilho);if(!n)return;r.marcarEditando(n),e.solicitarRenderizacao();const s=q(t,r.input,n);if(!s)return;s.focus(),s.select();let c=!1;const l=(p,d=!1)=>{var u,f;if(!c){if(c=!0,r.marcarEditando(null),p){const m=r.aplicar(n,s.value.trim());m&&(m.salvar&&((u=e.salvarLembrancaEstado)==null||u.call(e)),r.emitir(m.detalhe))}e.solicitarRenderizacao(),d&&((f=q(t,r.linha,n))==null||f.focus())}};s.addEventListener("keydown",p=>{p.key==="Enter"?(p.preventDefault(),l(!0,!0)):p.key==="Escape"&&(p.preventDefault(),l(!1,!0))}),s.addEventListener("blur",()=>l(!0))})})}const at=["dragging","drop-above","drop-below","drop-into"];class ca{constructor(t,a){A(this,"host");A(this,"shadow");A(this,"cancelarToque",null);A(this,"arraste",{tipo:null,camadaId:null,feicaoId:null});this.host=t,this.shadow=a}bindAll(){this.bindInlineRename(),this.bindDragAndDrop(),this.bindTouchDragAndDrop()}destruir(){var t;(t=this.cancelarToque)==null||t.call(this),this.cancelarToque=null}bindInlineRename(){Ge(this.host,this.shadow)}limparClassesDeArraste(){this.shadow.querySelectorAll(".ui-layer-row, .ui-feat-row, .ui-layer-group").forEach(t=>{t.classList.remove(...at)})}aposReordenarCamadas(){var t,a;(a=(t=this.host).salvarLembrancaEstado)==null||a.call(t),this.host.dispararEvento("ui-camadas-reordenadas",{camadas:[...this.host.camadas]}),this.host.solicitarRenderizacao()}emitirFeicaoMovida(t){this.host.dispararEvento("ui-feicao-movida",{feicaoId:t.feicao.id,camadaOrigemId:t.camadaOrigemId,camadaDestinoId:t.camadaDestinoId,feicao:t.feicao})}trocaEntreCamadasTravada(t,a){const r=this.host.feicoes.find(n=>n.id===t),i=r==null?void 0:r.layerId;if(!a||i===a)return!1;if((r==null?void 0:r.locked)===!0)return!0;const o=se(this.host.camadas);return o.has(a)||!!i&&o.has(i)}arrasteBloqueado(t){return!!t.closest("input, button, select")||!!this.host.editingLayerId||!!this.host.editingFeatureId}bindDragAndDrop(){this.arraste={tipo:null,camadaId:null,feicaoId:null},this.vincularArrasteCamadas(this.shadow),this.vincularArrasteFeicoes(this.shadow)}bindLinhasFeicao(t){Ge(this.host,this.shadow,t),this.vincularArrasteFeicoes(t)}vincularArrasteCamadas(t){t.querySelectorAll('.ui-layer-row[draggable="true"]').forEach(a=>{const r=a.getAttribute("data-layer-id");r&&(a.addEventListener("dragstart",i=>{const o=i;if(this.arrasteBloqueado(o.target)){o.preventDefault();return}this.arraste.tipo="layer",this.arraste.camadaId=r,o.dataTransfer&&(o.dataTransfer.setData("text/plain",JSON.stringify({type:"layer",id:r})),o.dataTransfer.effectAllowed="move"),a.classList.add("dragging")}),a.addEventListener("dragover",i=>{const o=i;if(o.preventDefault(),o.stopPropagation(),o.dataTransfer&&(o.dataTransfer.dropEffect="move"),this.arraste.tipo==="layer"){if(this.arraste.camadaId===r)return;const n=a.getBoundingClientRect(),s=Ne((o.clientY-n.top)/n.height);a.classList.toggle("drop-above",s==="acima"),a.classList.toggle("drop-below",s==="abaixo"),a.classList.toggle("drop-into",s==="dentro")}else this.arraste.tipo==="feature"&&a.classList.add("drop-into")}),a.addEventListener("dragleave",i=>{const o=i.relatedTarget;o&&a.contains(o)||a.classList.remove("drop-above","drop-below","drop-into")}),a.addEventListener("drop",i=>{var s;const o=i;o.preventDefault(),o.stopPropagation();const n=a.classList.contains("drop-into")?"dentro":a.classList.contains("drop-above")?"acima":"abaixo";if(this.limparClassesDeArraste(),this.arraste.tipo==="layer"){if(!this.arraste.camadaId||this.arraste.camadaId===r||!this.host.camadas.some(l=>l.id===this.arraste.camadaId)||!this.host.camadas.some(l=>l.id===r))return;const c=He(this.host.camadas,this.arraste.camadaId,r,n);(c==null?void 0:c.tipo)==="hierarquia"?((s=this.host.expandedLayers)==null||s.add(c.novoParentId),this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:c.camada.id,novoParentId:c.novoParentId,parentAnteriorId:c.parentAnteriorId,camada:c.camada})):c&&c.parentAnteriorId!==c.novoParentId&&this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:c.camada.id,novoParentId:c.novoParentId,parentAnteriorId:c.parentAnteriorId,camada:c.camada}),this.aposReordenarCamadas()}else if(this.arraste.tipo==="feature"){if(!this.arraste.feicaoId||this.trocaEntreCamadasTravada(this.arraste.feicaoId,r))return;const c=Ja(this.host.feicoes,this.host.camadas,this.arraste.feicaoId,r);c&&(this.emitirFeicaoMovida(c),this.host.solicitarRenderizacao())}}),a.addEventListener("dragend",()=>{this.arraste.tipo=null,this.arraste.camadaId=null,this.arraste.feicaoId=null,this.limparClassesDeArraste()}))})}vincularArrasteFeicoes(t){t.querySelectorAll('.ui-feat-row[draggable="true"]').forEach(a=>{const r=a.getAttribute("data-feat-row"),i=a.getAttribute("data-feat-layer");r&&(a.addEventListener("dragstart",o=>{const n=o;if(this.arrasteBloqueado(n.target)){n.preventDefault();return}n.stopPropagation(),this.arraste.tipo="feature",this.arraste.feicaoId=r,this.arraste.camadaId=i,n.dataTransfer&&(n.dataTransfer.setData("text/plain",JSON.stringify({type:"feature",id:r,layerId:i})),n.dataTransfer.effectAllowed="move"),a.classList.add("dragging")}),a.addEventListener("dragover",o=>{const n=o;if(this.arraste.tipo!=="feature"||this.arraste.feicaoId===r)return;n.preventDefault(),n.stopPropagation(),n.dataTransfer&&(n.dataTransfer.dropEffect="move");const s=a.getBoundingClientRect(),c=n.clientY-s.top<s.height/2;a.classList.toggle("drop-above",c),a.classList.toggle("drop-below",!c)}),a.addEventListener("dragleave",o=>{const n=o.relatedTarget;n&&a.contains(n)||a.classList.remove("drop-above","drop-below")}),a.addEventListener("drop",o=>{const n=o;if(this.arraste.tipo!=="feature"||!this.arraste.feicaoId||this.arraste.feicaoId===r)return;n.preventDefault(),n.stopPropagation();const s=a.classList.contains("drop-above");if(this.limparClassesDeArraste(),this.trocaEntreCamadasTravada(this.arraste.feicaoId,i))return;const c=Za(this.host.feicoes,this.arraste.feicaoId,r,s);c&&(c.mudouDeCamada&&this.emitirFeicaoMovida(c),this.host.dispararEvento("ui-feicoes-reordenadas",{feicoes:[...this.host.feicoes]}),this.host.solicitarRenderizacao())}),a.addEventListener("dragend",o=>{o.stopPropagation(),this.arraste.tipo=null,this.arraste.feicaoId=null,this.arraste.camadaId=null,this.limparClassesDeArraste()}))})}bindTouchDragAndDrop(){this.shadow.querySelectorAll(".ui-layer-row .ui-col-drag").forEach(t=>{const a=t.closest(".ui-layer-row");if(!a)return;const r=a.getAttribute("data-layer-id");r&&t.addEventListener("pointerdown",i=>{var d;const o=i;if(o.pointerType==="mouse"&&o.button!==0||this.host.editingLayerId||this.host.editingFeatureId)return;(d=this.cancelarToque)==null||d.call(this);let n=null,s="abaixo";const c=u=>{u.preventDefault(),a.classList.add("dragging");const f=this.shadow.elementFromPoint(u.clientX,u.clientY),m=f?f.closest(".ui-layer-row"):null;if(n&&n!==m&&n.classList.remove("drop-above","drop-below","drop-into"),m&&m!==a){n=m;const g=m.getBoundingClientRect();s=g.height>0?Ne((u.clientY-g.top)/g.height):"abaixo",m.classList.toggle("drop-above",s==="acima"),m.classList.toggle("drop-below",s==="abaixo"),m.classList.toggle("drop-into",s==="dentro")}else n=null},l=()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",p),this.cancelarToque=null},p=()=>{var m;l();const u=n==null?void 0:n.getAttribute("data-layer-id");if(this.limparClassesDeArraste(),!u||u===r)return;const f=He(this.host.camadas,r,u,s);f&&(f.tipo==="hierarquia"?((m=this.host.expandedLayers)==null||m.add(f.novoParentId),this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:f.camada.id,novoParentId:f.novoParentId,parentAnteriorId:f.parentAnteriorId,camada:f.camada})):f.parentAnteriorId!==f.novoParentId&&this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:f.camada.id,novoParentId:f.novoParentId,parentAnteriorId:f.parentAnteriorId,camada:f.camada}),this.aposReordenarCamadas())};this.cancelarToque=()=>{l(),this.limparClassesDeArraste()},window.addEventListener("pointermove",c,{passive:!1}),window.addEventListener("pointerup",p),window.addEventListener("pointercancel",p)})})}}const tt="ui_camadas_estado_";function da(e,t){const a=(e||t||"default").trim();return`${tt}${a}`}function Ae(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function oe(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function _e(e){if(!Ae(e))return;const t={};return typeof e.name=="string"&&(t.name=e.name),typeof e.visible=="boolean"&&(t.visible=e.visible),typeof e.locked=="boolean"&&(t.locked=e.locked),typeof e.opacity=="number"&&Number.isFinite(e.opacity)&&e.opacity>=0&&e.opacity<=1&&(t.opacity=e.opacity),typeof e.color=="string"&&(t.color=e.color),(typeof e.parentId=="string"||e.parentId===null)&&(t.parentId=e.parentId),t}function ua(e){if(!Ae(e))return null;const t={};if(Ae(e.camadasOverrides))for(const[r,i]of Object.entries(e.camadasOverrides)){const o=_e(i);if(!o)continue;const n=_e(i.origem);t[r]=n?{...o,origem:n}:o}const a=e.altura;return{versao:typeof e.versao=="number"?e.versao:1,expandedLayerIds:oe(e.expandedLayerIds),collapsedLayerIds:oe(e.collapsedLayerIds),camadaAtivaId:typeof e.camadaAtivaId=="string"?e.camadaAtivaId:null,painelColapsado:typeof e.painelColapsado=="boolean"?e.painelColapsado:void 0,ordemCamadasIds:oe(e.ordemCamadasIds),ordemOrigemIds:Array.isArray(e.ordemOrigemIds)?oe(e.ordemOrigemIds):void 0,mapaBaseAtivo:typeof e.mapaBaseAtivo=="string"?e.mapaBaseAtivo:void 0,densidade:e.densidade==="compacto"||e.densidade==="normal"?e.densidade:void 0,altura:typeof a=="number"&&Number.isFinite(a)&&a>0?a:null,camadasOverrides:t,ultimaAtualizacao:typeof e.ultimaAtualizacao=="number"?e.ultimaAtualizacao:void 0}}function le(e){if(typeof window>"u"||typeof localStorage>"u")return null;try{const t=localStorage.getItem(e);return t?ua(JSON.parse(t)):null}catch(t){console.warn(`[UI-Camadas] Não foi possível carregar o estado persistido (${e}):`,t)}return null}function pa(e,t){if(!(typeof window>"u"||typeof localStorage>"u"))try{localStorage.setItem(e,JSON.stringify(t))}catch(a){console.warn(`[UI-Camadas] Não foi possível salvar o estado persistido (${e}):`,a)}}function fa(e){if(!(typeof window>"u"||typeof localStorage>"u"))try{localStorage.removeItem(e)}catch{}}function Be(e){return{name:e.name,visible:e.visible!==!1,locked:!!e.locked,opacity:typeof e.opacity=="number"?e.opacity:1,color:e.color||"#00E08A",parentId:e.parentId!==void 0?e.parentId:null}}function ma(e,t,a,r){var d;if(!Array.isArray(e))return;const i=(t==null?void 0:t.camadasOverrides)||{},o=new Set((t==null?void 0:t.expandedLayerIds)||[]),n=new Set((t==null?void 0:t.collapsedLayerIds)||[]),s=o.size>0||n.size>0;for(let u=0;u<e.length;u++){const f=e[u],m=i[f.id];if(r==null||r.set(f.id,Be(f)),m){const g=m.origem,v=b=>{var C;const E=(C=r==null?void 0:r.get(f.id))==null?void 0:C[b];return g!==void 0&&g[b]!==E};typeof m.name=="string"&&m.name.trim()&&!v("name")&&(f.name=m.name),typeof m.visible=="boolean"&&!v("visible")&&(f.visible=m.visible),typeof m.locked=="boolean"&&!v("locked")&&(f.locked=m.locked),typeof m.opacity=="number"&&!v("opacity")&&(f.opacity=m.opacity),typeof m.color=="string"&&!v("color")&&(f.color=m.color),m.parentId!==void 0&&!v("parentId")&&(f.parentId=m.parentId)}s?o.has(f.id)?a.add(f.id):n.has(f.id)?a.delete(f.id):a.add(f.id):a.add(f.id)}for(let u=0;u<e.length;u++){const f=e[u];f.parentId&&(f.parentId===f.id||K(e,f.parentId,f.id))&&(f.parentId=((d=r==null?void 0:r.get(f.id))==null?void 0:d.parentId)??null)}const c=new Set(e.map(u=>u.id)),l=t==null?void 0:t.ordemOrigemIds;if(!(Array.isArray(l)&&(()=>{const u=new Set(l),f=m=>m.filter(g=>c.has(g)&&u.has(g)).join("|");return f(l)!==f(e.map(m=>m.id))})())&&Array.isArray(t==null?void 0:t.ordemCamadasIds)&&t.ordemCamadasIds.length>0){const u=new Map;t.ordemCamadasIds.forEach((f,m)=>u.set(f,m)),e.sort((f,m)=>{const g=u.has(f.id)?u.get(f.id):9999,v=u.has(m.id)?u.get(m.id):9999;return g-v})}}function ga(e){const{estadoAnterior:t,camadas:a,expandedLayers:r}=e;let i=(t==null?void 0:t.expandedLayerIds)||[],o=(t==null?void 0:t.collapsedLayerIds)||[],n=(t==null?void 0:t.ordemCamadasIds)||[],s=t==null?void 0:t.ordemOrigemIds;const c={...(t==null?void 0:t.camadasOverrides)||{}};a.length>0&&(i=[],o=[],n=a.map(l=>l.id),s=e.origensCamadas?[...e.origensCamadas.keys()]:n,a.forEach(l=>{var p,d;r.has(l.id)?i.push(l.id):o.push(l.id),c[l.id]={name:l.name,visible:l.visible!==!1,locked:!!l.locked,opacity:typeof l.opacity=="number"?l.opacity:1,color:l.color||"#00E08A",parentId:l.parentId!==void 0?l.parentId:null,origem:((p=e.origensCamadas)==null?void 0:p.get(l.id))??((d=c[l.id])==null?void 0:d.origem)}}));for(const l of e.camadasRemovidas??[])delete c[l];return{versao:1,expandedLayerIds:i,collapsedLayerIds:o,camadaAtivaId:e.camadaAtivaId,painelColapsado:e.painelColapsado,ordemCamadasIds:n,ordemOrigemIds:s,mapaBaseAtivo:e.mapaBaseAtivo,densidade:e.densidade,altura:e.altura,camadasOverrides:c,ultimaAtualizacao:Date.now()}}const rt=`:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:inherit;font-size:11px;color:var(--ui-cor-texto, #e1e1e6);-webkit-user-select:none;user-select:none;width:100%;height:var(--ui-camadas-altura, 100%);min-height:var(--ui-camadas-min-altura, 140px);position:relative;--camada-respiro: 8px;--camada-barra-altura: 28px;--camada-linha-altura: 25px;--camada-thumb-tamanho: 20px;--camada-transicao: .16s cubic-bezier(.16, 1, .3, 1)}:host([densidade="compacto"]){--camada-linha-altura: 22px;--camada-thumb-tamanho: 17px;font-size:10px}:host([flutuante]){position:absolute;top:10px;right:10px;bottom:46px;z-index:var(--ui-z-workspace-hud, 500);width:auto;height:var(--ui-camadas-altura, auto)}*,*:before,*:after{box-sizing:border-box}:host(:not([flutuante])) .ui-camadas-container{max-width:100%;min-width:0;border:none;box-shadow:none;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ui-camadas-container{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;width:100%;max-width:380px;min-width:270px;background:var(--ui-degrade-interno, var(--ui-camadas-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417))));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 8px);box-shadow:var(--ui-sombra-lg, 0 10px 30px -4px rgba(0, 0, 0, .5)),0 0 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 5%,transparent);overflow:hidden;position:relative;transition:transform .24s cubic-bezier(.16,1,.3,1),opacity .2s ease;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}:host([colapsado]) .ui-camadas-container{transform:translate(calc(100% + 24px));opacity:0;pointer-events:none}.ui-camadas-toggle-flutuante{display:none;position:absolute;top:10px;right:10px;z-index:calc(var(--ui-z-workspace-hud, 500) - 1);background:var(--ui-camadas-toggle-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417)));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 6px);color:var(--ui-cor-texto, #ffffff);width:34px;height:34px;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--ui-sombra-md, 0 8px 20px rgba(0, 0, 0, .45));transition:all var(--camada-transicao)}:host([colapsado][flutuante]) .ui-camadas-toggle-flutuante{display:flex}.ui-camadas-toggle-flutuante:hover{border-color:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-primaria, #00E08A);transform:scale(1.08);box-shadow:0 0 14px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-camadas-btn-colapsar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;cursor:pointer;border-radius:var(--ui-raio-sm, 4px);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--camada-transicao)}.ui-camadas-btn-colapsar:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-camadas-corpo{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 var(--camada-respiro) var(--camada-respiro);display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent) transparent}.ui-camadas-corpo::-webkit-scrollbar{width:4px}.ui-camadas-corpo::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-radius:var(--ui-raio-sm, 4px)}.ui-camadas-corpo::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent)}.ui-tree-toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro));padding:0 var(--camada-respiro);gap:8px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .06))}.ui-tree-title-group{display:flex;align-items:center;gap:5px}.ui-tree-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-tree-count-badge{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);color:var(--ui-cor-texto-secundario, #888899);padding:1px 5px;border-radius:8px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent)}.ui-tree-actions{display:flex;align-items:center;gap:3px}.ui-tree-action-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:24px;height:24px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-tree-action-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-tree-btn-new{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);border:none;color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 8px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-new:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-tree-search-wrapper{position:relative;display:flex;align-items:center;margin:1px 0}.ui-tree-search-icon{position:absolute;left:8px;color:var(--ui-cor-texto-secundario, #888899);pointer-events:none;display:flex;align-items:center}.ui-tree-search-input{width:100%;height:25px;background:var(--ui-cor-fundo, #0a0a0c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));border-radius:var(--ui-raio-borda, 5px);padding:0 24px 0 26px;color:var(--ui-cor-texto, #ffffff);font-size:10.5px;outline:none;transition:border-color var(--camada-transicao),box-shadow var(--camada-transicao)}.ui-tree-search-input:focus{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-tree-search-clear{position:absolute;right:5px;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all var(--camada-transicao)}.ui-tree-search-clear:hover{color:var(--ui-cor-texto, #ffffff);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent)}.ui-panel-box{background:var(--ui-cor-fundo, #0c0c0f);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));border-radius:var(--ui-raio-borda, 6px);overflow:hidden;display:flex;flex-direction:column;flex:1 1 0%;min-height:140px}.ui-search-empty{padding:14px 10px;text-align:center;font-size:11px;color:var(--ui-cor-texto-secundario, #888899);overflow-wrap:anywhere}.ui-layer-tree{flex:1 1 0%;min-height:40px;overflow-y:auto;overflow-x:hidden}.ui-layer-group{border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .04));transition:background var(--camada-transicao)}.ui-layer-group.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A);outline-offset:-1.5px}.ui-layer-row,.ui-feat-row{display:flex;align-items:center;height:var(--camada-linha-altura);min-height:var(--camada-linha-altura);max-height:var(--camada-linha-altura);padding:0 4px;-webkit-user-select:none;user-select:none;cursor:default;transition:background .1s ease;position:relative}.ui-layer-row{background:var(--ui-cor-fundo-elevado, #18181d);font-weight:600;cursor:pointer;border-left:3px solid transparent}.ui-layer-row:hover{background:var(--ui-cor-hover-menu, #22222a)}.ui-layer-row.active-drawing-layer{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 18%,var(--ui-cor-fundo-elevado, #18181d))!important;border-left:3px solid var(--layer-active-color, var(--ui-cor-primaria, #00E08A))!important;box-shadow:inset 0 0 12px color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 10%,transparent)}.ui-layer-row.active-drawing-layer .ui-name-text{color:var(--ui-cor-texto, #e1e1e6);font-weight:700}.ui-feat-row{border-left:3px solid transparent;padding-left:13px;background:var(--ui-cor-fundo, #101014);font-weight:400;cursor:pointer}.ui-feat-row:hover{background:var(--ui-cor-hover-menu, #19191f)}.ui-feat-row.selected-row{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 20%,var(--ui-cor-fundo, #101014))!important;outline:1px solid color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 55%,transparent)!important;outline-offset:-1px}.ui-layer-row.hidden-layer,.ui-feat-row.hidden-row{opacity:.52}.ui-layer-row.hidden-layer .ui-col-eye,.ui-feat-row.hidden-row .ui-col-eye{color:var(--ui-cor-texto-alerta, #ffb86c);opacity:.95}.ui-layer-row.dragging,.ui-feat-row.dragging{opacity:.35;background:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 16%,transparent)!important}.ui-layer-row.drop-above:before,.ui-feat-row.drop-above:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-below:after,.ui-feat-row.drop-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 16%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A)!important;outline-offset:-2px;border-radius:var(--ui-raio-sm, 4px)}.ui-layer-row.is-sublayer{background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #18181d) 70%,transparent)}.ui-group-folder-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-alerta, #ffb86c);margin-right:4px;flex-shrink:0}.ui-col{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--camada-linha-altura)}.ui-col-drag{width:8px;margin-right:1px;cursor:grab;color:var(--ui-cor-texto-secundario, #888899);opacity:.35;touch-action:none;transition:opacity var(--camada-transicao),color var(--camada-transicao)}.ui-layer-row:hover .ui-col-drag,.ui-feat-row:hover .ui-col-drag{opacity:.9;color:var(--ui-cor-primaria, #00E08A)}.ui-col-drag:active{cursor:grabbing}.ui-col-eye{width:20px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-eye:hover{color:var(--ui-cor-primaria, #00E08A)}.ui-col-lock{width:18px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-lock:hover{color:var(--ui-cor-texto-alerta, #ffb86c)}.ui-col-colorbar{width:3.5px;height:16px;margin:0 3px 0 2px;border-radius:1.5px;flex-shrink:0}.ui-col-colorbar-editavel{position:relative;width:5px;height:18px;cursor:pointer}.ui-col-colorbar-editavel:before{content:"";position:absolute;top:-3px;right:-4px;bottom:-3px;left:-4px}.ui-col-colorbar-editavel:hover,.ui-col-colorbar-editavel:focus-visible{filter:brightness(1.3);outline:none}.ui-col-chevron,.ui-col-branch{margin-left:calc(var(--layer-depth, 0) * 12px)}.ui-col-chevron{width:14px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);display:flex;align-items:center;justify-content:center}.ui-chevron-icon{display:inline-flex;align-items:center;justify-content:center;transition:transform var(--camada-transicao)}.ui-chevron-icon.open{transform:rotate(90deg)}.ui-col-branch{width:14px;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.ui-col-thumb{width:calc(var(--camada-thumb-tamanho) + 3px);margin-right:4px;display:flex;align-items:center;justify-content:center}.ui-thumb-box{width:var(--camada-thumb-tamanho);height:var(--camada-thumb-tamanho);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);border-radius:3px;background:var(--ui-cor-fundo, #0d0d10);box-sizing:border-box;overflow:hidden;display:flex;align-items:center;justify-content:center}.ui-col-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--ui-cor-texto, #e1e1e6);padding-left:2px;padding-right:4px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:4px}.ui-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-count-chip{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-texto-secundario, #888899);font-weight:400;padding:0 2px;flex-shrink:0}.ui-col-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--camada-transicao)}.ui-layer-row:hover .ui-col-actions,.ui-feat-row:hover .ui-col-actions,.ui-layer-row:focus-within .ui-col-actions,.ui-feat-row:focus-within .ui-col-actions,.ui-col-actions:has(.ui-micro-btn.active){opacity:1}.ui-micro-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:18px;height:18px;padding:0;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-micro-btn:hover{color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-micro-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-col-target{width:22px;cursor:pointer}.ui-target-circle{width:11px;height:11px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent);background:transparent;transition:all .12s ease}.ui-col-target:hover .ui-target-circle{border-color:var(--ui-cor-texto-info, #33b5ff);transform:scale(1.18)}.ui-target-circle.selected{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));box-shadow:inset 0 0 0 2px var(--ui-cor-superficie, #141418)}.ui-target-circle.partial{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 40%,transparent)}.ui-inline-rename-input{width:100%;height:20px;background:var(--ui-cor-fundo, #0d0d10);color:var(--ui-cor-texto, #e1e1e6);border:1px solid var(--ui-cor-primaria, #00E08A);border-radius:3px;font-size:10.5px;padding:0 4px;outline:none;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 40%,transparent)}.ui-layer-settings-drawer{background:linear-gradient(180deg,var(--ui-cor-fundo-elevado, #17171e) 0%,var(--ui-cor-superficie, #0f0f13) 100%);padding:10px 14px 12px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent);border-left:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent),0 6px 16px #00000073;animation:drawerSlideDown .18s cubic-bezier(.16,1,.3,1);position:relative;z-index:10}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-header-left{display:flex;align-items:center;gap:7px;min-width:0}.ui-drawer-icon{color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;align-items:center;flex-shrink:0}.ui-drawer-title{font-size:10.5px;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.ui-drawer-layer-chip{font-size:9.5px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-drawer-btn-fechar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:20px;height:20px;padding:0;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-drawer-btn-fechar:hover{color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-body{display:flex;flex-direction:column;gap:10px}.ui-drawer-row{display:flex;flex-direction:column;gap:5px}.ui-drawer-row-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ui-cor-texto-secundario, #888899)}.ui-drawer-color-group{display:flex;align-items:center;justify-content:space-between;gap:8px}.ui-drawer-color-pill{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 5px;background:var(--ui-cor-fundo, #0b0b0d);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent);border-radius:var(--ui-raio-sm, 4px);cursor:pointer;transition:all var(--camada-transicao);-webkit-user-select:none;user-select:none}.ui-drawer-color-pill:hover{border-color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent)}.ui-drawer-color-sample{width:14px;height:14px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 35%,transparent);box-shadow:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .5));flex-shrink:0;transition:background-color .1s ease}.ui-drawer-color-hex{font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);letter-spacing:.5px}.ui-drawer-color-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ui-drawer-badge{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider-container{display:flex;flex-direction:column;gap:4px}.ui-drawer-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent) 0%,var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A)) 100%);border-radius:3px;outline:none;margin:3px 0;cursor:pointer;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer;transition:transform .12s ease}.ui-drawer-slider::-webkit-slider-thumb:hover{transform:scale(1.22)}.ui-drawer-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer}.ui-drawer-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-meta-info{font-size:9.5px;color:var(--ui-cor-texto-secundario, #888899);font-style:italic}.ui-drawer-actions{display:flex;align-items:center;gap:6px}.ui-drawer-btn-danger{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 10%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 35%,transparent);color:var(--ui-cor-texto-erro, #ff5555);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 10px;font-size:10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--camada-transicao)}.ui-drawer-btn-danger:hover{background:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 45%,transparent);transform:translateY(-.5px)}.ui-drawer-btn-danger.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-hover, #b71c1c);animation:pulseDanger 1.2s infinite}@keyframes pulseDanger{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.ui-previa-dot{width:6px;height:6px;margin-left:4px;border-radius:50%;flex-shrink:0;background:var(--ui-cor-texto-alerta, #ffb86c);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 25%,transparent)}.ui-tree-footer{height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);background:var(--ui-cor-fundo-elevado, #121216);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;align-items:center;justify-content:space-between;padding:0 var(--camada-respiro);gap:6px;box-sizing:border-box;overflow:hidden;position:relative;flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro))}.ui-footer-left{display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.ui-footer-count{font-size:11px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-primaria, #00E08A);flex-shrink:0}.ui-footer-label{display:inline-flex;align-items:center;color:var(--ui-cor-texto-secundario, #888899);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 8px;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-footer-right{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.ui-footer-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all var(--camada-transicao);flex-shrink:0}.ui-footer-btn:hover:not(.disabled){color:var(--ui-cor-texto, #e1e1e6);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-btn.disabled{opacity:.25;cursor:not-allowed}.ui-footer-btn.btn-danger-footer:hover:not(.disabled){color:var(--ui-cor-texto-erro, #ff5555);background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 15%,transparent)}.ui-footer-btn.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c)!important;color:var(--ui-cor-botao-destrutivo-texto, #ffffff)!important}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0}.ui-footer-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;--_chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888899' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background:var(--_chevron) right 6px center / 10px no-repeat,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto, #e1e1e6);border-radius:var(--ui-raio-sm, 4px);font:inherit;font-size:10px;font-weight:500;height:22px;padding:0 22px 0 8px;cursor:pointer;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){background:var(--_chevron) right 6px center / 10px no-repeat,var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-select:focus-visible{outline:1px solid var(--ui-cor-primaria, #00E08A)}.ui-drawer-btn-sublayer{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #e1e1e6);font-size:10.5px;font-weight:500;padding:4px 8px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-drawer-btn-sublayer:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-primaria, #00E08A);border-color:var(--ui-cor-primaria, #00E08A)}.ui-drawer-select-wrapper{display:flex;align-items:center}.ui-drawer-select{background:var(--ui-cor-fundo, #16161c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .15));color:var(--ui-cor-texto, #e1e1e6);border-radius:4px;font-size:10.5px;height:24px;padding:0 6px;cursor:pointer;max-width:140px}.ui-basemap-section{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.ui-basemap-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:2px;background:transparent;border:0;border-radius:var(--ui-raio-sm, 4px);font:inherit;color:inherit;cursor:pointer;text-align:left}.ui-basemap-toggle:hover .ui-basemap-title{color:var(--ui-cor-texto, #e1e1e6)}.ui-basemap-toggle:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}.ui-basemap-atual{flex:1 1 auto;min-width:0;font-size:10px;color:var(--ui-cor-primaria, #00E08A);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.ui-basemap-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.ui-basemap-section{container-type:inline-size}@container (min-width: 260px){.ui-basemap-grid{grid-template-columns:repeat(3,1fr)}}@container (min-width: 340px){.ui-basemap-grid{grid-template-columns:repeat(4,1fr)}}.ui-basemap-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px;border-radius:var(--ui-raio-borda, 5px);background:var(--ui-cor-fundo, #101014);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:pointer;transition:all var(--camada-transicao);text-align:center;overflow:hidden}.ui-basemap-card:hover{border-color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-fundo-elevado, #17171c)}.ui-basemap-card.active{border-color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);color:var(--ui-cor-primaria, #00E08A);font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-basemap-preview{width:100%;height:22px;border-radius:3px;object-fit:cover;opacity:.85;transition:opacity var(--camada-transicao)}.ui-basemap-preview-none{width:100%;height:22px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 4%,transparent);border-radius:3px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-card:hover .ui-basemap-preview,.ui-basemap-card.active .ui-basemap-preview{opacity:1}.ui-basemap-card span{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ui-layer-row.herdado-oculto,.ui-feat-row.herdado-oculto{opacity:.52}.ui-layer-row.herdado-travado .ui-col-lock.ui-lock-open{color:var(--ui-cor-texto-secundario, #888899);opacity:.7}.ui-search-hidden{display:none!important}.ui-empty-row{height:22px;display:flex;align-items:center;padding-left:36px;font-size:10px;color:var(--ui-cor-texto-secundario, #666677);font-style:italic;background:var(--ui-cor-fundo-recuado, rgba(0, 0, 0, .15))}.ui-camadas-resizer-altura{display:none;flex-shrink:0;width:100%;height:9px;background:var(--ui-cor-superficie, #141417);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:ns-resize;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none;transition:background .15s ease,border-color .15s ease;position:relative;z-index:10}:host([redimensionavel]) .ui-camadas-resizer-altura,:host([redimensionavel-altura]) .ui-camadas-resizer-altura{display:flex}.ui-camadas-resizer-altura:hover,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent);border-top-color:var(--ui-cor-primaria, #00E08A)}.ui-camadas-resizer-grip{width:32px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);transition:all .15s ease}.ui-camadas-resizer-altura:hover .ui-camadas-resizer-grip,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo .ui-camadas-resizer-grip{background:var(--ui-cor-primaria, #00E08A);width:46px;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 45%,transparent)}:host(.ui-camadas--redimensionando){-webkit-user-select:none!important;user-select:none!important;cursor:ns-resize!important}:host(.ui-camadas--redimensionando) *{-webkit-user-select:none!important;user-select:none!important}.ui-col-lock.ui-lock-open{opacity:.28}.ui-col-lock.ui-lock-open:hover,.ui-col-lock.ui-lock-open:focus-visible{opacity:.8}.ui-col-lock[data-locked-by-layer]{cursor:not-allowed}.ui-col[role=button]:focus-visible,.ui-basemap-card:focus-visible,.ui-feat-row:focus-visible,.ui-layer-row:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:-2px}.ui-footer-btn.confirming{color:var(--ui-cor-botao-destrutivo-texto, #ffffff);background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);width:auto;padding:0 6px}.ui-truncate-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;margin:4px 8px 6px;background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 70%,transparent);border:1px dashed var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 4px);font-size:10px;color:var(--ui-cor-texto-secundario, #9696a6)}.ui-truncate-notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-truncate-more-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--ui-cor-superficie, #141417);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 4px);color:var(--ui-cor-primaria, #00E08A);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--camada-transicao)}.ui-truncate-more-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08));border-color:var(--ui-cor-primaria, #00E08A)}.ui-truncate-more-btn:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}:host(.degrade),:host(.gradiente),:host([data-degrade]:not([data-degrade="false"])),.ui-camadas-container[data-degrade]:not([data-degrade=false]){--ui-camadas-fundo: var(--ui-gradiente-superficie);--ui-camadas-toggle-fundo: var(--ui-gradiente-superficie)}`;function it(e,t){t.querySelectorAll("[data-layer-row]").forEach(r=>{const o=r.getAttribute("data-layer-row")===e.camadaAtivaId;r.classList.toggle("active-drawing-layer",o),Ye.alternarPart(r,"camada-ativa",o),o?r.setAttribute("aria-current","true"):r.removeAttribute("aria-current")})}function ot(e,t){t.querySelectorAll(".ui-feat-row").forEach(a=>{const r=a.getAttribute("data-feat-row"),i=r?e.selectedFeatureIds.has(r):!1;a.classList.toggle("selected-row",i),Ye.alternarPart(a,"feicao-selecionada",i),a.setAttribute("aria-selected",String(i));const o=a.querySelector(".ui-target-circle");o&&o.classList.toggle("selected",i)}),t.querySelectorAll(".ui-layer-group").forEach(a=>{const r=a.getAttribute("data-layer-id"),i=J(e.camadas,e.feicoes,r??""),o=_(i,e.searchQuery);va(a.querySelector(".ui-layer-row .ui-target-circle"),o,e.selectedFeatureIds)}),ba(e,t)}function va(e,t,a){if(!e)return;if(t.length===0){e.classList.remove("selected","partial");return}const r=t.every(o=>a.has(o.id)),i=!r&&t.some(o=>a.has(o.id));e.classList.toggle("selected",r),e.classList.toggle("partial",i)}function ba(e,t){const a=e.feicoes.filter(d=>e.selectedFeatureIds.has(d.id)),r=a.length>0,i=t.getElementById("footer-count"),o=t.getElementById("footer-label");if(i&&(i.textContent=String(r?a.length:e.camadas.length)),o){const d=$e(e.camadas.length,a.length);o.innerHTML=d.icone,o.title=d.texto,o.setAttribute("aria-label",d.texto)}const n=t.querySelector(".ui-tree-footer");n&&(n.classList.toggle("tem-selecao",r),n.classList.toggle("sem-selecao",!r));const s=t.querySelector(".ui-footer-actions-gerais");s&&(s.style.display=r?"none":"flex");const c=t.querySelector(".ui-footer-bulk-actions");c&&(c.style.display=r?"flex":"none"),["btn-footer-del"].forEach(d=>{const u=t.getElementById(d);u&&(u.disabled=!r,u.classList.toggle("disabled",!r))});const l=t.querySelector(".ui-footer-move-wrapper");l&&l.classList.toggle("disabled",!r);const p=t.getElementById("select-footer-move");p&&(p.disabled=!r)}function Ue(e,t){const a=pe(e.camadas),r=new Map(e.camadas.map(n=>[n.id,n]));t.querySelectorAll(".ui-layer-row").forEach(n=>{const s=a.get(n.getAttribute("data-layer-row")||"");n.classList.toggle("herdado-oculto",(s==null?void 0:s.ocultaPorAncestral)===!0),n.classList.toggle("herdado-travado",(s==null?void 0:s.travadaPorAncestral)===!0)});const i=new Map(e.feicoes.map(n=>[n.id,n]));t.querySelectorAll(".ui-feat-row").forEach(n=>{const s=n.getAttribute("data-feat-layer")||"",c=r.get(s),l=a.get(s);n.classList.toggle("herdado-oculto",(c==null?void 0:c.visible)===!1||(l==null?void 0:l.ocultaPorAncestral)===!0);const p=n.querySelector("[data-feat-lock]"),d=i.get(n.getAttribute("data-feat-row")||"");if(!p||!d)return;const u=(c==null?void 0:c.locked)===!0||(l==null?void 0:l.travadaPorAncestral)===!0,f=d.locked===!0||u;p.innerHTML=f?y.cadeadoTrancado:y.cadeadoAberto,p.classList.toggle("ui-lock-open",!f),u?p.setAttribute("data-locked-by-layer","true"):p.removeAttribute("data-locked-by-layer"),D(p,u?"Bloqueada pela camada":f?"Desbloquear Feição":"Bloquear Feição")});const o=t.getElementById("select-footer-move");o&&(o.innerHTML=`<option value="" disabled selected>Mover para...</option>${Se(e.camadas)}`)}function nt(e,t){t.querySelectorAll("[data-layer-row]").forEach(i=>{i.addEventListener("click",o=>{if(o.target.closest("[data-layer-eye], [data-layer-lock], [data-layer-expand], [data-layer-target], [data-layer-fit], [data-layer-settings], [data-layer-color], input, button"))return;const s=i.getAttribute("data-layer-row");s&&e.definirCamadaAtiva(s,!0)})}),t.querySelectorAll("[data-layer-expand]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-expand");if(!n)return;e.expandedLayers.has(n)?e.expandedLayers.delete(n):e.expandedLayers.add(n);const s=i.closest(".ui-layer-group"),c=i.querySelector(".ui-chevron-icon"),l=e.expandedLayers.has(n);if(c&&c.classList.toggle("open",l),s){s.setAttribute("aria-expanded",String(l));const p=s.querySelector(".ui-children-container");p&&(p.style.display=l?"block":"none")}D(i,l?"Recolher grupo":"Expandir grupo"),st(e,t),e.salvarLembrancaEstado()})}),t.querySelectorAll("[data-layer-eye]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-eye"),s=e.camadas.find(c=>c.id===n);if(s){s.visible=s.visible===!1;const c=s.visible!==!1;i.innerHTML=c?y.olhoAberto:y.olhoFechado,D(i,c?"Ocultar Camada":"Exibir Camada");const l=i.closest(".ui-layer-row");l&&l.classList.toggle("hidden-layer",!c),lt(e,t),Ue(e,t),e.salvarLembrancaEstado(),e.dispararEvento("ui-camada-visibilidade",{camadaId:s.id,visivel:c})}})}),t.querySelectorAll("[data-layer-lock]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-lock"),s=e.camadas.find(c=>c.id===n);s&&(s.locked=!s.locked,i.innerHTML=s.locked?y.cadeadoTrancado:y.cadeadoAberto,i.classList.toggle("ui-lock-open",!s.locked),D(i,s.locked?"Desbloquear Camada":"Bloquear Camada"),Ue(e,t),e.salvarLembrancaEstado(),e.dispararEvento("ui-camada-bloqueio",{camadaId:s.id,bloqueado:s.locked}))})}),t.querySelectorAll("[data-layer-fit]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-fit");n&&e.dispararEvento("ui-camada-enquadrar",{camadaId:n})})}),t.querySelectorAll("[data-layer-settings]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-settings");e.activeSettingsLayerId=e.activeSettingsLayerId===n?null:n,e.solicitarRenderizacao()})}),t.querySelectorAll("[data-layer-settings-close]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation(),e.activeSettingsLayerId=null,e.solicitarRenderizacao()})});const a=(i,o,n)=>{const s=e.camadas.find(f=>f.id===i);if(!s)return;const c=G(o,s.color||"#00E08A");s.color=c;const l=t.getElementById(`sample-color-${i}`);l&&(l.style.backgroundColor=c);const p=t.getElementById(`hex-color-${i}`);p&&(p.textContent=c.toUpperCase());const d=t.getElementById(`settings-drawer-${i}`);d&&d.style.setProperty("--drawer-cor-camada",c);const u=q(t,"data-layer-row",i);if(u){const f=u.closest(".ui-layer-group");f==null||f.style.setProperty("--layer-active-color",c);const m=u.querySelector(".ui-col-colorbar");m&&(m.style.backgroundColor=c);const g=new Map(e.feicoes.map(v=>[v.id,v]));f==null||f.querySelectorAll(".ui-feat-row").forEach(v=>{if(v.getAttribute("data-feat-layer")!==i)return;const b=g.get(v.getAttribute("data-feat-row")||"");if(!b||b.color)return;const E=v.querySelector(".ui-col-colorbar");E&&(E.style.backgroundColor=c);const C=v.querySelector(".ui-thumb-box");C&&(C.innerHTML=Me(b.type||b.geometryType,c,b.coordinates))})}n?e.salvarLembrancaEstado():e.agendarSalvarLembranca(),e.dispararEvento("ui-camada-cor",{camadaId:s.id,cor:c})};t.querySelectorAll("[data-layer-color-picker]").forEach(i=>{const o=i,n=s=>c=>{const l=o.getAttribute("data-layer-color-picker");if(!l)return;const p=c.target.value;a(l,p,s)};o.addEventListener("input",n(!1)),o.addEventListener("change",n(!0))}),t.querySelectorAll("[data-layer-color]").forEach(i=>{const o=n=>{n.stopPropagation();const s=i.getAttribute("data-layer-color"),c=e.camadas.find(l=>l.id===s);!s||!c||Ha.abrirSeletorCor({ancora:i,titulo:`Cor · ${c.name||"Camada"}`,modo:"simples",cor:G(c.color,"#00E08A"),mostrarOpacidade:!1,aoAlterar:l=>a(s,l.cor,!1),aoConfirmar:l=>a(s,l.cor,!0),aoCancelar:l=>a(s,l.cor,!0)})};i.addEventListener("click",o),i.addEventListener("keydown",n=>{const s=n.key;(s==="Enter"||s===" ")&&(n.preventDefault(),o(n))})});const r=(i,o)=>{const n=e.camadas.find(l=>l.id===i);if(!n)return;n.opacity=o;const s=t.getElementById(`badge-op-${i}`);s&&(s.textContent=`${Math.round(o*100)}%`);const c=q(t,"data-layer-opacity-slider",i);c&&parseFloat(c.value)!==o&&(c.value=String(o)),e.agendarSalvarLembranca(),e.dispararEvento("ui-camada-opacidade",{camadaId:n.id,opacidade:o})};t.querySelectorAll("[data-layer-opacity-slider]").forEach(i=>{i.addEventListener("input",o=>{const n=i.getAttribute("data-layer-opacity-slider");if(!n)return;const s=parseFloat(o.target.value);Number.isFinite(s)&&r(n,Math.min(1,Math.max(0,s)))})}),t.querySelectorAll("[data-delete-layer]").forEach(i=>{let o=null;const n=()=>{o&&(clearTimeout(o),o=null),i.classList.remove("confirming");const s=i.querySelector(".ui-btn-label");s&&(s.textContent="Excluir")};i.addEventListener("ui-cancelar-confirmacao",n),i.addEventListener("click",s=>{s.stopPropagation();const c=i.getAttribute("data-delete-layer");if(!c)return;if(i.classList.contains("confirming")){n(),e.dispararEvento("ui-camada-excluida",{camadaId:c});const p=e.selectedFeatureIds.size;e.camadas.forEach(d=>{d.parentId===c&&(d.parentId=null)}),e.removerCamada(c),e.selectedFeatureIds.size!==p&&e.notificarMudancaSelecao()}else{i.classList.add("confirming");const p=i.querySelector(".ui-btn-label");p&&(p.textContent="Confirmar Exclusão?"),o=setTimeout(n,3500)}})}),t.querySelectorAll("[data-layer-parent-select]").forEach(i=>{i.addEventListener("change",o=>{const n=o.target,s=n.getAttribute("data-layer-parent-select"),c=n.value||null,l=e.camadas.find(p=>p.id===s);if(l){if(c&&(c===l.id||K(e.camadas,c,l.id))){n.value=l.parentId||"";return}const p=l.parentId??null;l.parentId=c,c&&e.expandedLayers.add(c),e.salvarLembrancaEstado(),e.dispararEvento("ui-camada-mover-hierarquia",{camadaId:l.id,novoParentId:c,parentAnteriorId:p,camada:l}),e.solicitarRenderizacao()}})}),t.querySelectorAll("[data-add-sublayer]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-add-sublayer");e.dispararEvento("ui-camada-adicionar",{parentId:n})})}),ha(e,t),t.querySelectorAll("[data-layer-target]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=o,s=i.getAttribute("data-layer-target");if(!s)return;const c=J(e.camadas,e.feicoes,s),l=_(c,e.searchQuery);if(l.length===0)return;l.every(d=>e.selectedFeatureIds.has(d.id))?l.forEach(d=>e.selectedFeatureIds.delete(d.id)):(!n.ctrlKey&&!n.metaKey&&e.selectedFeatureIds.clear(),l.forEach(d=>e.selectedFeatureIds.add(d.id))),e.lastClickedFeatureId=l[l.length-1].id,e.sincronizarSelecaoDOM(),e.notificarMudancaSelecao()})})}function ha(e,t){t.querySelectorAll("[data-layer-show-more]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=a.getAttribute("data-layer-show-more");i&&e.incrementarLimiteFeicoes(i)})})}function st(e,t){const a=t.getElementById("btn-toggle-all-expand");if(!a)return;const r=e.camadas.length>0&&e.camadas.every(o=>e.expandedLayers.has(o.id)),i=a.querySelector(".ui-chevron-icon");i&&i.classList.toggle("open",r),D(a,r?"Recolher Todos os Grupos":"Expandir Todos os Grupos")}function lt(e,t){const a=t.getElementById("btn-toggle-all-vis");if(!a)return;const r=e.camadas.every(i=>i.visible!==!1);a.innerHTML=r?y.olhoAberto:y.olhoFechado,D(a,r?"Ocultar Todas as Camadas":"Exibir Todas as Camadas")}function ct(e,t){const a=t.getElementById("select-footer-move");a&&a.addEventListener("change",n=>{const s=n.target.value;if(!s)return;const c=se(e.camadas);if(c.has(s)){a.value="";return}const l=e.feicoes.filter(d=>e.selectedFeatureIds.has(d.id)&&!c.has(d.layerId)&&d.locked!==!0);if(l.length===0){a.value="";return}const p=new Map(l.map(d=>[d.id,d.layerId]));l.forEach(d=>d.layerId=s),l.forEach(d=>{p.get(d.id)!==s&&e.dispararEvento("ui-feicao-movida",{feicaoId:d.id,camadaOrigemId:p.get(d.id),camadaDestinoId:s,feicao:d})}),e.dispararEvento("ui-acao-massa",{acao:"mover",feicoesIds:l.map(d=>d.id),feicoes:l,valor:s}),e.solicitarRenderizacao()});const r=t.getElementById("btn-footer-new-layer");r&&r.addEventListener("click",()=>{e.dispararEvento("ui-camada-adicionar",{})});const i=t.getElementById("btn-footer-new-group");i&&i.addEventListener("click",()=>{e.dispararEvento("ui-camada-grupo-adicionar",{isGroup:!0})});const o=t.getElementById("btn-footer-del");if(o){let n=null;const s="Excluir selecionados",c=()=>{n&&(clearTimeout(n),n=null),o.classList.remove("confirming"),D(o,s)};o.addEventListener("ui-cancelar-confirmacao",c),o.addEventListener("click",()=>{const l=se(e.camadas),p=e.feicoes.filter(f=>e.selectedFeatureIds.has(f.id)&&!l.has(f.layerId)&&f.locked!==!0);if(p.length===0)return;const d=p.map(f=>f.id);if(!o.classList.contains("confirming")){o.classList.add("confirming"),D(o,`Clique novamente para excluir ${d.length} selecionado(s)`),n=setTimeout(c,3500);return}c();const u=new Set(d);e.feicoes=e.feicoes.filter(f=>!u.has(f.id)),d.forEach(f=>e.selectedFeatureIds.delete(f)),e.lastClickedFeatureId&&u.has(e.lastClickedFeatureId)&&(e.lastClickedFeatureId=null),e.dispararEvento("ui-acao-massa",{acao:"excluir",feicoesIds:d,feicoes:p}),e.notificarMudancaSelecao(),e.solicitarRenderizacao()})}}const dt=[{tipo:"olho",atributo:"data-layer-eye",entidade:"camada"},{tipo:"olho",atributo:"data-feat-eye",entidade:"feicao"},{tipo:"cadeado",atributo:"data-layer-lock",entidade:"camada"},{tipo:"cadeado",atributo:"data-feat-lock",entidade:"feicao"},{tipo:"selecao",atributo:"data-layer-target",entidade:"camada"},{tipo:"selecao",atributo:"data-feat-target",entidade:"feicao"}],Ee={olho:"[data-layer-eye], [data-feat-eye]",cadeado:"[data-layer-lock], [data-feat-lock]",selecao:"[data-layer-target], [data-feat-target]"},ut=3;function pt(e){return dt.find(t=>e.hasAttribute(t.atributo))??null}function we(e,t){const a=pt(t);if(!a)return null;const r=t.getAttribute(a.atributo);if(!r)return null;if(a.tipo==="olho"){const o=a.entidade==="camada"?e.camadas.find(n=>n.id===r):e.feicoes.find(n=>n.id===r);return o?o.visible!==!1:null}if(a.tipo==="cadeado"){if(t.hasAttribute("data-locked-by-layer"))return null;const o=a.entidade==="camada"?e.camadas.find(n=>n.id===r):e.feicoes.find(n=>n.id===r);return o?o.locked===!0:null}if(a.entidade==="feicao")return e.selectedFeatureIds.has(r);const i=_(J(e.camadas,e.feicoes,r),e.searchQuery);return i.length===0?null:i.every(o=>e.selectedFeatureIds.has(o.id))}function Ve(e,t,a=!1){e.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,ctrlKey:t,shiftKey:a}))}let P=null;function ft(e){(P==null?void 0:P.host)===e&&P.cancelar()}function ya(e,t,a=t){Object.keys(Ee).forEach(r=>{a.querySelectorAll(Ee[r]).forEach(i=>{i.addEventListener("pointerdown",o=>mt(e,t,r,i,o))})})}function mt(e,t,a,r,i){if(i.pointerType==="mouse"&&i.button!==0||e.editingLayerId||e.editingFeatureId||we(e,r)===null)return;P==null||P.cancelar();const o=Ee[a],n=i.ctrlKey||i.metaKey,s=i.shiftKey;let c=!1,l=!1,p=i.clientY;const d=new Set([r]),u=w=>{w.preventDefault(),w.stopImmediatePropagation()},f=w=>{w.stopPropagation(),w.preventDefault()},m=w=>w.preventDefault(),g=w=>{d.has(w)||(d.add(w),we(e,w)!==l&&Ve(w,a==="selecao"))},v=()=>{c=!0,Ve(r,n,s),l=we(e,r)===!0,t.addEventListener("selectstart",m),document.body.style.userSelect="none"},b=w=>{var k,I;if(!c){if(Math.hypot(w.clientX-i.clientX,w.clientY-i.clientY)<ut)return;const x=(k=t.elementFromPoint(w.clientX,w.clientY))==null?void 0:k.closest(o);if(!x||x===r)return;v()}w.preventDefault();const S=Math.min(p,w.clientY),h=Math.max(p,w.clientY);t.querySelectorAll(o).forEach(x=>{const B=x.getBoundingClientRect();if(B.height===0)return;const T=B.top+B.height/2;T>=S&&T<=h&&g(x)});const M=(I=t.elementFromPoint(w.clientX,w.clientY))==null?void 0:I.closest(o);M&&g(M),p=w.clientY},E=(w=!1)=>{(P==null?void 0:P.cancelar)===$&&(P=null),window.removeEventListener("pointermove",b),window.removeEventListener("pointerup",C),window.removeEventListener("pointercancel",C),window.removeEventListener("dragstart",u,!0),t.removeEventListener("selectstart",m),c&&(document.body.style.userSelect="",w||(window.addEventListener("click",f,{capture:!0,once:!0}),setTimeout(()=>window.removeEventListener("click",f,!0),0)))},C=()=>E(),$=()=>E(!0);P={host:e,cancelar:$},window.addEventListener("dragstart",u,!0),window.addEventListener("pointermove",b,{passive:!1}),window.addEventListener("pointerup",C),window.addEventListener("pointercancel",C)}function gt(e,t){const a=t.getElementById("btn-toggle-all-vis");a&&a.addEventListener("click",()=>e.alternarVisibilidadeTodas(!0));const r=t.getElementById("btn-toggle-all-expand");r&&r.addEventListener("click",o=>{o.stopPropagation(),e.camadas.length>0&&e.camadas.every(s=>e.expandedLayers.has(s.id))?e.colapsarTodas():e.expandirTodas()});const i=t.getElementById("btn-colapsar");i&&i.addEventListener("click",()=>e.colapsar(!0)),vt(e,t)}function vt(e,t){const a=t.getElementById("input-layer-search"),r=t.getElementById("btn-clear-layer-search"),i=()=>{var o;e.searchQuery="",e.solicitarRenderizacao(),(o=t.getElementById("input-layer-search"))==null||o.focus()};if(a){const o=Xe(()=>e.solicitarRenderizacao(),75);a.addEventListener("input",n=>{e.searchQuery=n.target.value,o()}),a.addEventListener("keydown",n=>{n.key==="Escape"&&e.searchQuery&&(n.preventDefault(),i())})}r&&r.addEventListener("click",i)}function xa(e,t){t.querySelectorAll("[data-feat-select]").forEach(a=>{a.addEventListener("click",r=>{if(e.editingFeatureId)return;const i=r;if(i.target.closest("[data-feat-eye], [data-feat-lock], [data-feat-fit], [data-feat-target], input, button"))return;const n=a.getAttribute("data-feat-select");n&&e.selecionarFeicao(n,i.ctrlKey||i.metaKey,i.shiftKey,!0)})}),t.querySelectorAll("[data-feat-target]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=r,o=a.getAttribute("data-feat-target");o&&e.selecionarFeicao(o,i.ctrlKey||i.metaKey,i.shiftKey,!0)})}),t.querySelectorAll("[data-feat-eye]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=a.getAttribute("data-feat-eye"),o=e.feicoes.find(n=>n.id===i);if(o){o.visible=o.visible===!1;const n=o.visible!==!1;a.innerHTML=n?y.olhoAberto:y.olhoFechado,D(a,n?"Ocultar Feição":"Exibir Feição");const s=a.closest(".ui-feat-row");s&&s.classList.toggle("hidden-row",!n),e.dispararEvento("ui-feicao-visibilidade",{feicaoId:o.id,visivel:n})}})}),t.querySelectorAll("[data-feat-lock]").forEach(a=>{a.addEventListener("click",r=>{if(r.stopPropagation(),a.hasAttribute("data-locked-by-layer"))return;const i=a.getAttribute("data-feat-lock"),o=e.feicoes.find(n=>n.id===i);o&&(o.locked=!o.locked,a.innerHTML=o.locked?y.cadeadoTrancado:y.cadeadoAberto,a.classList.toggle("ui-lock-open",!o.locked),D(a,o.locked?"Desbloquear Feição":"Bloquear Feição"),e.dispararEvento("ui-feicao-bloqueio",{feicaoId:o.id,bloqueado:o.locked}))})}),t.querySelectorAll("[data-feat-fit]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=a.getAttribute("data-feat-fit");i&&e.dispararEvento("ui-feicao-enquadrar",{feicaoId:i})})})}function bt(e,t){var a;(a=t.querySelector("[data-basemap-toggle]"))==null||a.addEventListener("click",()=>{e.alternarMapasBaseRecolhido(!0)}),t.querySelectorAll("[data-basemap-id]").forEach(r=>{r.addEventListener("click",()=>{const i=r.getAttribute("data-basemap-id");i&&e.selecionarMapaBase(i,!0)})})}function ht(e,t){gt(e,t),nt(e,t),xa(e,t),bt(e,t),ct(e,t),ya(e,t)}function yt(e){if(!e.arvoreRenderizada)return{incremental:!1,motivo:"arvore-nao-renderizada"};if(e.buscaAtiva)return{incremental:!1,motivo:"busca-ativa"};if(e.editandoCamada||e.editandoFeicao)return{incremental:!1,motivo:"edicao-inline"};for(const t of e.camadasAfetadas){if(!t.existeNoModelo)return{incremental:!1,motivo:"camada-orfa"};if(!t.renderizadaNoDom)return{incremental:!1,motivo:"camada-fora-do-dom"};if(t.drawerAberto)return{incremental:!1,motivo:"drawer-aberto"}}return e.idsDuplicados?{incremental:!1,motivo:"ids-duplicados"}:{incremental:!0}}function wa(e,t=new Map){for(const a of e)t.set(a.camada.id,a),wa(a.subcamadas,t);return t}function xt(e){const t=new Map;for(let a=0;a<e.length;a++){const r=e[a];if(!r||!r.id)continue;const i=r.layerId||"",o=t.get(i);o?o.push(r):t.set(i,[r])}return t}function Q(e,t){for(let a=e.firstElementChild;a;a=a.nextElementSibling)if(a.classList.contains(t))return a;return null}function wt(e){const t=new Map,a=r=>{for(let i=r.firstElementChild;i&&i.classList.contains("ui-layer-group");i=i.nextElementSibling){const o=i.getAttribute("data-layer-id");o!==null&&t.set(o,i);const n=Q(i,"ui-children-container");n&&a(n)}};return a(e),t}function At(e){if(!e||e.length<2)return!1;const t=new Set;for(const a of e){if(t.has(a.id))return!0;t.add(a.id)}return!1}function Et(e,t){var i;const a=new Map(t.map(o=>[o.id,o])),r=new Set;for(const o of e){let n=o;for(;n&&a.has(n)&&!r.has(n);)r.add(n),n=(i=a.get(n))==null?void 0:i.parentId}return r}function ce(e){const t=document.createElement("template");return t.innerHTML=e,{modelo:t,elementos:Array.from(t.content.children)}}function de(e){var a;const t=e.nextSibling;t&&t.nodeType===3&&!(t.textContent??"").trim()&&((a=t.parentNode)==null||a.removeChild(t)),e.remove()}function It(e,t){if(!e||!t.contains(e))return null;const a=Array.from(e.attributes).find(r=>r.name.startsWith("data-")&&r.value!=="");return a?{nome:a.name,valor:a.value}:null}function kt(e,t){const{host:a,shadow:r,mudanca:i}=e,o=e.grupos.get(t),n=e.nodos.get(t),s=o?Q(o,"ui-children-container"):null;if(!o||!n||!s)return!1;const c=n.camada,l=e.porCamada.get(t)??[],p=a.expandedFeatureLimits.get(t)??fe,d=l.slice(0,p),u=new Set(d.map(h=>h.id)),f=new Map,m=new Map,g=r.activeElement;let v=null;for(let h=s.firstElementChild,M;h;h=M){M=h.nextElementSibling;const k=h.getAttribute("data-feat-row");if(k===null){!v&&!h.classList.contains("ui-layer-group")&&(v=h);continue}const I=i.idsAlterados.has(k)&&u.has(k)&&!f.has(k);!u.has(k)||f.has(k)||I?(I&&m.set(k,{tabindex:h.getAttribute("tabindex"),foco:It(g,h)}),de(h)):(f.set(k,h),v||(v=h))}const b=ea(c,n.depth,e.herdado.get(t)),E=d.filter(h=>!f.has(h.id));let C=[];if(E.length>0){const h=E.map(I=>na(I,b,a.selectedFeatureIds.has(I.id),a.editingFeatureId===I.id)).join(""),{modelo:M,elementos:k}=ce(h);if(k.length!==E.length)return!1;e.ligar(M.content),C=k}let $=v,w=0;const S=new Map;for(const h of d){const M=f.get(h.id);if(M)M===$?$=M.nextElementSibling:s.insertBefore(M,$);else{const k=C[w++];s.insertBefore(k,$),S.set(h.id,k)}}return m.forEach((h,M)=>{const k=S.get(M);if(!k||(h.tabindex!==null&&k.setAttribute("tabindex",h.tabindex),!h.foco))return;const I=k.getAttribute(h.foco.nome)===h.foco.valor?k:Array.from(k.querySelectorAll(`[${h.foco.nome}]`)).find(x=>x.getAttribute(h.foco.nome)===h.foco.valor);I==null||I.focus({preventScroll:!0})}),Ct(e,s,n,p,l.length)}function Ct(e,t,a,r,i){const o=z(a.camada.id),n=!!(a.camada.isGroup||a.subcamadas.length>0),s=i>r,c=a.subcamadas.length===0&&i===0,l=Q(t,"ui-truncate-notice"),p=Q(t,"ui-empty-row");if(p&&!c&&de(p),l&&!s&&de(l),s)if(l){const d=ra(r,i),u=l.querySelector("span"),f=l.querySelector(".ui-truncate-more-btn");if(!u||!f)return!1;u.textContent!==d.resumo&&(u.textContent=d.resumo),f.textContent!==d.botao&&(f.textContent=d.botao)}else{const{modelo:d,elementos:u}=ce(ia(o,r,i));if(u.length!==1)return!1;e.ligar(d.content),t.appendChild(u[0])}if(c&&!p){const{elementos:d}=ce(oa(n));if(d.length!==1)return!1;t.appendChild(d[0])}return!0}function Lt(e,t){const a=e.grupos.get(t),r=e.nodos.get(t),i=a?Q(a,"ui-layer-row"):null,o=i==null?void 0:i.querySelector(".ui-col-name");if(!a||!r||!i||!o)return!1;const{host:n}=e,s=J(n.camadas,n.feicoes,t),c=(e.porCamada.get(t)??[]).length,l=r.subcamadas.length,p=!!(r.camada.isGroup||l>0),d=o.querySelector(".ui-count-chip");if(d)if(s.length===0&&p)de(d);else{const u=String(s.length),f=aa(s.length,c,l);d.textContent!==u&&(d.textContent=u),d.getAttribute("title")!==f&&d.setAttribute("title",f)}else{const u=ta(s.length,c,l,p);if(u){const{elementos:f}=ce(u);if(f.length!==1)return!1;o.appendChild(f[0])}}return va(i.querySelector(".ui-target-circle"),s,n.selectedFeatureIds),!0}function St(e,t,a,r){const i=t.getElementById("ui-layer-tree-mount"),o=wa(W(e.camadas)),n=i?wt(i):new Map,s=xt(e.feicoes),c=a.camadas==="todas"?Array.from(o.keys()):Array.from(a.camadas),l=c.map(u=>({existeNoModelo:o.has(u),renderizadaNoDom:n.has(u),drawerAberto:e.activeSettingsLayerId===u}));if(!yt({arvoreRenderizada:i!==null,buscaAtiva:(e.searchQuery||"").trim()!=="",editandoCamada:e.editingLayerId!==null,editandoFeicao:e.editingFeatureId!==null,idsDuplicados:c.some(u=>At(s.get(u))),camadasAfetadas:l}).incremental)return!1;const d={host:e,shadow:t,mudanca:a,porCamada:s,nodos:o,grupos:n,herdado:pe(e.camadas),ligar:r};for(const u of c)if(!kt(d,u))return!1;for(const u of Et(c,e.camadas))if(!Lt(d,u))return!1;return(a.selecaoAfetada||e.selectedFeatureIds.size>0)&&ba(e,t),!0}function $t(e){if(!e.isConnected)return;const t=document.createElement("div");t.className="ui-basemap-preview-none",t.innerHTML=y.gradeCad,e.replaceWith(t)}function Mt(e,t,a,r){var g,v;const i=la({camadas:e.camadas,feicoes:e.feicoes,camadaAtivaId:e.camadaAtivaId,expandedLayers:e.expandedLayers,selectedFeatureIds:e.selectedFeatureIds,activeSettingsLayerId:e.activeSettingsLayerId,editingLayerId:e.editingLayerId,editingFeatureId:e.editingFeatureId,searchQuery:e.searchQuery,titulo:e.titulo,mostrarBusca:e.mostrarBusca,limitesPorCamada:e.expandedFeatureLimits,mostrarBotaoColapsar:e.flutuante&&e.getAttribute("colapsavel")!=="false"}),o=e.mostrarMapasBase?We(e.mapasBase,e.mapaBaseAtivo,e.mapasBaseRecolhido):"",n=e.mostrarRodape?Je(e.camadas,e.feicoes,e.selectedFeatureIds):"",s=t.getElementById("ui-layer-tree-mount"),c=a.scrollTop,l=s?s.scrollTop:0,p=t.activeElement,d=p&&a.contains(p)?p.id:"",u=p&&!d&&a.contains(p)?Array.from(p.attributes).find(b=>b.name.startsWith("data-")&&b.value!==""):void 0,f=p&&"selectionStart"in p?p.selectionStart:null;a.innerHTML=`
296
+ `}function mt(e){return[{gatilho:"data-layer-name-trigger",input:"data-inline-layer-input",linha:"data-layer-row",marcarEditando:t=>{e.editingLayerId=t},aplicar:(t,a)=>{const r=e.camadas.find(i=>i.id===t);return!a||!r||r.name===a?null:(r.name=a,{detalhe:{camadaId:t,novoNome:a,camada:r},salvar:!0})},emitir:t=>e.dispararEvento("ui-camada-renomeada",t)},{gatilho:"data-feat-name-trigger",input:"data-inline-feat-input",linha:"data-feat-row",marcarEditando:t=>{e.editingFeatureId=t},aplicar:(t,a)=>{const r=e.feicoes.find(i=>i.id===t);return!a||!r||r.name===a?null:(r.name=a,{detalhe:{feicaoId:t,novoNome:a,feicao:r},salvar:!1})},emitir:t=>e.dispararEvento("ui-feicao-renomeada",t)}]}function We(e,t,a=t){for(const r of mt(e))a.querySelectorAll(`[${r.gatilho}]`).forEach(i=>{i.addEventListener("dblclick",o=>{o.stopPropagation();const n=i.getAttribute(r.gatilho);if(!n)return;r.marcarEditando(n),e.solicitarRenderizacao();const s=D(t,r.input,n);if(!s)return;s.focus(),s.select();let c=!1;const l=(u,p=!1)=>{var d,f;if(!c){if(c=!0,r.marcarEditando(null),u){const m=r.aplicar(n,s.value.trim());m&&(m.salvar&&((d=e.salvarLembrancaEstado)==null||d.call(e)),r.emitir(m.detalhe))}e.solicitarRenderizacao(),p&&((f=D(t,r.linha,n))==null||f.focus())}};s.addEventListener("keydown",u=>{u.key==="Enter"?(u.preventDefault(),l(!0,!0)):u.key==="Escape"&&(u.preventDefault(),l(!1,!0))}),s.addEventListener("blur",()=>l(!0))})})}const gt=["dragging","drop-above","drop-below","drop-into"];class va{constructor(t,a){I(this,"host");I(this,"shadow");I(this,"cancelarToque",null);I(this,"arraste",{tipo:null,camadaId:null,feicaoId:null});this.host=t,this.shadow=a}bindAll(){this.bindInlineRename(),this.bindDragAndDrop(),this.bindTouchDragAndDrop()}destruir(){var t;(t=this.cancelarToque)==null||t.call(this),this.cancelarToque=null}bindInlineRename(){We(this.host,this.shadow)}limparClassesDeArraste(){this.shadow.querySelectorAll(".ui-layer-row, .ui-feat-row, .ui-layer-group").forEach(t=>{t.classList.remove(...gt)})}aposReordenarCamadas(){var t,a;(a=(t=this.host).salvarLembrancaEstado)==null||a.call(t),this.host.dispararEvento("ui-camadas-reordenadas",{camadas:[...this.host.camadas]}),this.host.solicitarRenderizacao()}emitirFeicaoMovida(t){this.host.dispararEvento("ui-feicao-movida",{feicaoId:t.feicao.id,camadaOrigemId:t.camadaOrigemId,camadaDestinoId:t.camadaDestinoId,feicao:t.feicao,feicoes:[...this.host.feicoes]})}trocaEntreCamadasTravada(t,a){const r=this.host.feicoes.find(n=>n.id===t),i=r==null?void 0:r.layerId;if(!a||i===a)return!1;if((r==null?void 0:r.locked)===!0)return!0;const o=pe(this.host.camadas);return o.has(a)||!!i&&o.has(i)}arrasteBloqueado(t){return!!t.closest("input, button, select")||!!this.host.editingLayerId||!!this.host.editingFeatureId}bindDragAndDrop(){this.arraste={tipo:null,camadaId:null,feicaoId:null},this.vincularArrasteCamadas(this.shadow),this.vincularArrasteFeicoes(this.shadow)}bindLinhasFeicao(t){We(this.host,this.shadow,t),this.vincularArrasteFeicoes(t)}vincularArrasteCamadas(t){t.querySelectorAll('.ui-layer-row[draggable="true"]').forEach(a=>{const r=a.getAttribute("data-layer-id");r&&(a.addEventListener("dragstart",i=>{const o=i;if(this.arrasteBloqueado(o.target)){o.preventDefault();return}this.arraste.tipo="layer",this.arraste.camadaId=r,o.dataTransfer&&(o.dataTransfer.setData("text/plain",JSON.stringify({type:"layer",id:r})),o.dataTransfer.effectAllowed="move"),a.classList.add("dragging")}),a.addEventListener("dragover",i=>{const o=i;if(o.preventDefault(),o.stopPropagation(),o.dataTransfer&&(o.dataTransfer.dropEffect="move"),this.arraste.tipo==="layer"){if(this.arraste.camadaId===r)return;const n=a.getBoundingClientRect(),s=Se((o.clientY-n.top)/n.height);a.classList.toggle("drop-above",s==="acima"),a.classList.toggle("drop-below",s==="abaixo"),a.classList.toggle("drop-into",s==="dentro")}else if(this.arraste.tipo==="feature"){const n=this.host.camadas.find(s=>s.id===r);if(n!=null&&n.parentId){const s=a.getBoundingClientRect(),c=s.height>0?Se((o.clientY-s.top)/s.height):"dentro";a.classList.toggle("drop-above",c==="acima"),a.classList.toggle("drop-below",c==="abaixo"),a.classList.toggle("drop-into",c==="dentro")}else a.classList.remove("drop-above","drop-below"),a.classList.add("drop-into")}}),a.addEventListener("dragleave",i=>{const o=i.relatedTarget;o&&a.contains(o)||a.classList.remove("drop-above","drop-below","drop-into")}),a.addEventListener("drop",i=>{var s,c,l,u,p;const o=i;o.preventDefault(),o.stopPropagation();const n=a.classList.contains("drop-into")?"dentro":a.classList.contains("drop-above")?"acima":"abaixo";if(this.limparClassesDeArraste(),this.arraste.tipo==="layer"){if(!this.arraste.camadaId||this.arraste.camadaId===r||!this.host.camadas.some(f=>f.id===this.arraste.camadaId)||!this.host.camadas.some(f=>f.id===r))return;const d=Ke(this.host.camadas,this.arraste.camadaId,r,n);d&&this.host.ordemFilhosPorPai&&Xe(this.host.camadas,this.host.feicoes,this.host.ordemFilhosPorPai,this.arraste.camadaId,r,n,d.parentAnteriorId,d.novoParentId),(d==null?void 0:d.tipo)==="hierarquia"?((s=this.host.expandedLayers)==null||s.add(d.novoParentId),this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:d.camada.id,novoParentId:d.novoParentId,parentAnteriorId:d.parentAnteriorId,camada:d.camada})):d&&d.parentAnteriorId!==d.novoParentId&&this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:d.camada.id,novoParentId:d.novoParentId,parentAnteriorId:d.parentAnteriorId,camada:d.camada}),this.aposReordenarCamadas()}else if(this.arraste.tipo==="feature"){if(!this.arraste.feicaoId)return;const d=this.host.camadas.find(f=>f.id===r);if(d!=null&&d.parentId&&(n==="acima"||n==="abaixo")){if(this.trocaEntreCamadasTravada(this.arraste.feicaoId,d.parentId)||!this.host.ordemFilhosPorPai)return;const f=ut(this.host.camadas,this.host.feicoes,this.host.ordemFilhosPorPai,this.arraste.feicaoId,r,n==="acima");if(!f)return;this.host.dispararEvento("ui-feicoes-reordenadas",{feicoes:[...this.host.feicoes]}),f.mudouDeCamada&&this.emitirFeicaoMovida(f),(l=(c=this.host).salvarLembrancaEstado)==null||l.call(c),this.host.solicitarRenderizacao()}else{if(this.trocaEntreCamadasTravada(this.arraste.feicaoId,r))return;const f=nt(this.host.feicoes,this.host.camadas,this.arraste.feicaoId,r);f&&(this.host.ordemFilhosPorPai&&ft(this.host.ordemFilhosPorPai,f.feicao.id,f.camadaOrigemId,f.camadaDestinoId),this.emitirFeicaoMovida(f),(p=(u=this.host).salvarLembrancaEstado)==null||p.call(u),this.host.solicitarRenderizacao())}}}),a.addEventListener("dragend",()=>{this.arraste.tipo=null,this.arraste.camadaId=null,this.arraste.feicaoId=null,this.limparClassesDeArraste()}))})}vincularArrasteFeicoes(t){t.querySelectorAll('.ui-feat-row[draggable="true"]').forEach(a=>{const r=a.getAttribute("data-feat-row"),i=a.getAttribute("data-feat-layer");r&&(a.addEventListener("dragstart",o=>{const n=o;if(this.arrasteBloqueado(n.target)){n.preventDefault();return}n.stopPropagation(),this.arraste.tipo="feature",this.arraste.feicaoId=r,this.arraste.camadaId=i,n.dataTransfer&&(n.dataTransfer.setData("text/plain",JSON.stringify({type:"feature",id:r,layerId:i})),n.dataTransfer.effectAllowed="move"),a.classList.add("dragging")}),a.addEventListener("dragover",o=>{const n=o,s=this.arraste.tipo==="feature"&&this.arraste.feicaoId!==r,c=this.arraste.tipo==="layer"&&!!this.arraste.camadaId&&!!i&&this.arraste.camadaId!==i&&!N(this.host.camadas,i,this.arraste.camadaId);if(!s&&!c)return;n.preventDefault(),n.stopPropagation(),n.dataTransfer&&(n.dataTransfer.dropEffect="move");const l=a.getBoundingClientRect(),u=n.clientY-l.top<l.height/2;a.classList.toggle("drop-above",u),a.classList.toggle("drop-below",!u)}),a.addEventListener("dragleave",o=>{const n=o.relatedTarget;n&&a.contains(n)||a.classList.remove("drop-above","drop-below")}),a.addEventListener("drop",o=>{var l,u,p;const n=o,s=a.getBoundingClientRect(),c=a.classList.contains("drop-above")?!0:a.classList.contains("drop-below")?!1:s.height>0&&n.clientY-s.top<s.height/2;if(this.arraste.tipo==="feature"){if(!this.arraste.feicaoId||this.arraste.feicaoId===r||(n.preventDefault(),n.stopPropagation(),this.limparClassesDeArraste(),this.trocaEntreCamadasTravada(this.arraste.feicaoId,i)))return;const d=st(this.host.feicoes,this.arraste.feicaoId,r,c);if(!d)return;this.host.ordemFilhosPorPai&&pt(this.host.camadas,this.host.feicoes,this.host.ordemFilhosPorPai,this.arraste.feicaoId,r,c,d.camadaOrigemId,d.camadaDestinoId),this.host.dispararEvento("ui-feicoes-reordenadas",{feicoes:[...this.host.feicoes]}),d.mudouDeCamada&&this.emitirFeicaoMovida(d),(u=(l=this.host).salvarLembrancaEstado)==null||u.call(l),this.host.solicitarRenderizacao()}else if(this.arraste.tipo==="layer"){if(!this.arraste.camadaId||!i||!this.host.ordemFilhosPorPai)return;n.preventDefault(),n.stopPropagation(),this.limparClassesDeArraste();const d=Qe(this.host.camadas,this.host.feicoes,this.host.ordemFilhosPorPai,this.arraste.camadaId,r,c);if(!d)return;d.parentAnteriorId!==d.novoParentId&&d.novoParentId&&((p=this.host.expandedLayers)==null||p.add(d.novoParentId),this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:d.camada.id,novoParentId:d.novoParentId,parentAnteriorId:d.parentAnteriorId,camada:d.camada})),this.aposReordenarCamadas()}}),a.addEventListener("dragend",o=>{o.stopPropagation(),this.arraste.tipo=null,this.arraste.feicaoId=null,this.arraste.camadaId=null,this.limparClassesDeArraste()}))})}bindTouchDragAndDrop(){this.shadow.querySelectorAll(".ui-layer-row .ui-col-drag").forEach(t=>{const a=t.closest(".ui-layer-row");if(!a)return;const r=a.getAttribute("data-layer-id");r&&t.addEventListener("pointerdown",i=>{var p;const o=i;if(o.pointerType==="mouse"&&o.button!==0||this.host.editingLayerId||this.host.editingFeatureId)return;(p=this.cancelarToque)==null||p.call(this);let n=null,s="abaixo";const c=d=>{d.preventDefault(),a.classList.add("dragging");const f=this.shadow.elementFromPoint(d.clientX,d.clientY),m=f?f.closest(".ui-layer-row, .ui-feat-row"):null;if(n&&n!==m&&n.classList.remove("drop-above","drop-below","drop-into"),m&&m!==a)if(m.classList.contains("ui-feat-row")){const v=m.getAttribute("data-feat-layer");if(!v||v===r||N(this.host.camadas,v,r)){n=null;return}n=m;const g=m.getBoundingClientRect(),w=g.height>0&&d.clientY-g.top<g.height/2;s=w?"acima":"abaixo",m.classList.toggle("drop-above",w),m.classList.toggle("drop-below",!w),m.classList.remove("drop-into")}else{n=m;const v=m.getBoundingClientRect();s=v.height>0?Se((d.clientY-v.top)/v.height):"abaixo",m.classList.toggle("drop-above",s==="acima"),m.classList.toggle("drop-below",s==="abaixo"),m.classList.toggle("drop-into",s==="dentro")}else n=null},l=()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",u),this.cancelarToque=null},u=()=>{var h,v;l();const d=n==null?void 0:n.getAttribute("data-layer-id"),f=n==null?void 0:n.getAttribute("data-feat-row");if(this.limparClassesDeArraste(),f&&this.host.ordemFilhosPorPai){const g=Qe(this.host.camadas,this.host.feicoes,this.host.ordemFilhosPorPai,r,f,s==="acima");if(!g)return;g.parentAnteriorId!==g.novoParentId&&g.novoParentId&&((h=this.host.expandedLayers)==null||h.add(g.novoParentId),this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:g.camada.id,novoParentId:g.novoParentId,parentAnteriorId:g.parentAnteriorId,camada:g.camada})),this.aposReordenarCamadas();return}if(!d||d===r)return;const m=Ke(this.host.camadas,r,d,s);m&&(this.host.ordemFilhosPorPai&&Xe(this.host.camadas,this.host.feicoes,this.host.ordemFilhosPorPai,r,d,s,m.parentAnteriorId,m.novoParentId),m.tipo==="hierarquia"?((v=this.host.expandedLayers)==null||v.add(m.novoParentId),this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:m.camada.id,novoParentId:m.novoParentId,parentAnteriorId:m.parentAnteriorId,camada:m.camada})):m.parentAnteriorId!==m.novoParentId&&this.host.dispararEvento("ui-camada-mover-hierarquia",{camadaId:m.camada.id,novoParentId:m.novoParentId,parentAnteriorId:m.parentAnteriorId,camada:m.camada}),this.aposReordenarCamadas())};this.cancelarToque=()=>{l(),this.limparClassesDeArraste()},window.addEventListener("pointermove",c,{passive:!1}),window.addEventListener("pointerup",u),window.addEventListener("pointercancel",u)})})}}const ht="ui_camadas_estado_";function ba(e,t){const a=(e||t||"default").trim();return`${ht}${a}`}function ue(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function W(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function Je(e){if(!ue(e))return;const t={};return typeof e.name=="string"&&(t.name=e.name),typeof e.visible=="boolean"&&(t.visible=e.visible),typeof e.locked=="boolean"&&(t.locked=e.locked),typeof e.opacity=="number"&&Number.isFinite(e.opacity)&&e.opacity>=0&&e.opacity<=1&&(t.opacity=e.opacity),typeof e.color=="string"&&(t.color=e.color),(typeof e.parentId=="string"||e.parentId===null)&&(t.parentId=e.parentId),t}function ya(e){if(!ue(e))return null;const t={};if(ue(e.camadasOverrides))for(const[r,i]of Object.entries(e.camadasOverrides)){const o=Je(i);if(!o)continue;const n=Je(i.origem);t[r]=n?{...o,origem:n}:o}const a=e.altura;return{versao:typeof e.versao=="number"?e.versao:1,expandedLayerIds:W(e.expandedLayerIds),collapsedLayerIds:W(e.collapsedLayerIds),camadaAtivaId:typeof e.camadaAtivaId=="string"?e.camadaAtivaId:null,painelColapsado:typeof e.painelColapsado=="boolean"?e.painelColapsado:void 0,ordemCamadasIds:W(e.ordemCamadasIds),ordemOrigemIds:Array.isArray(e.ordemOrigemIds)?W(e.ordemOrigemIds):void 0,ordemFilhosPorPai:(()=>{if(!ue(e.ordemFilhosPorPai))return;const r={};for(const[i,o]of Object.entries(e.ordemFilhosPorPai)){const n=W(o);n.length>0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0})(),mapaBaseAtivo:typeof e.mapaBaseAtivo=="string"?e.mapaBaseAtivo:void 0,densidade:e.densidade==="compacto"||e.densidade==="normal"?e.densidade:void 0,altura:typeof a=="number"&&Number.isFinite(a)&&a>0?a:null,camadasOverrides:t,ultimaAtualizacao:typeof e.ultimaAtualizacao=="number"?e.ultimaAtualizacao:void 0}}function fe(e){if(typeof window>"u"||typeof localStorage>"u")return null;try{const t=localStorage.getItem(e);return t?ya(JSON.parse(t)):null}catch(t){console.warn(`[UI-Camadas] Não foi possível carregar o estado persistido (${e}):`,t)}return null}function xa(e,t){if(!(typeof window>"u"||typeof localStorage>"u"))try{localStorage.setItem(e,JSON.stringify(t))}catch(a){console.warn(`[UI-Camadas] Não foi possível salvar o estado persistido (${e}):`,a)}}function wa(e){if(!(typeof window>"u"||typeof localStorage>"u"))try{localStorage.removeItem(e)}catch{}}function je(e){return{name:e.name,visible:e.visible!==!1,locked:!!e.locked,opacity:typeof e.opacity=="number"?e.opacity:1,color:e.color||"#00E08A",parentId:e.parentId!==void 0?e.parentId:null}}function Aa(e,t,a,r){var p;if(!Array.isArray(e))return;const i=(t==null?void 0:t.camadasOverrides)||{},o=new Set((t==null?void 0:t.expandedLayerIds)||[]),n=new Set((t==null?void 0:t.collapsedLayerIds)||[]),s=o.size>0||n.size>0;for(let d=0;d<e.length;d++){const f=e[d],m=i[f.id];if(r==null||r.set(f.id,je(f)),m){const h=m.origem,v=g=>{var k;const w=(k=r==null?void 0:r.get(f.id))==null?void 0:k[g];return h!==void 0&&h[g]!==w};typeof m.name=="string"&&m.name.trim()&&!v("name")&&(f.name=m.name),typeof m.visible=="boolean"&&!v("visible")&&(f.visible=m.visible),typeof m.locked=="boolean"&&!v("locked")&&(f.locked=m.locked),typeof m.opacity=="number"&&!v("opacity")&&(f.opacity=m.opacity),typeof m.color=="string"&&!v("color")&&(f.color=m.color),m.parentId!==void 0&&!v("parentId")&&(f.parentId=m.parentId)}s?o.has(f.id)?a.add(f.id):n.has(f.id)?a.delete(f.id):a.add(f.id):a.add(f.id)}for(let d=0;d<e.length;d++){const f=e[d];f.parentId&&(f.parentId===f.id||N(e,f.parentId,f.id))&&(f.parentId=((p=r==null?void 0:r.get(f.id))==null?void 0:p.parentId)??null)}const c=new Set(e.map(d=>d.id)),l=t==null?void 0:t.ordemOrigemIds;if(!(Array.isArray(l)&&(()=>{const d=new Set(l),f=m=>m.filter(h=>c.has(h)&&d.has(h)).join("|");return f(l)!==f(e.map(m=>m.id))})())&&Array.isArray(t==null?void 0:t.ordemCamadasIds)&&t.ordemCamadasIds.length>0){const d=new Map;t.ordemCamadasIds.forEach((f,m)=>d.set(f,m)),e.sort((f,m)=>{const h=d.has(f.id)?d.get(f.id):9999,v=d.has(m.id)?d.get(m.id):9999;return h-v})}}function Ea(e){const{estadoAnterior:t,camadas:a,expandedLayers:r}=e;let i=(t==null?void 0:t.expandedLayerIds)||[],o=(t==null?void 0:t.collapsedLayerIds)||[],n=(t==null?void 0:t.ordemCamadasIds)||[],s=t==null?void 0:t.ordemOrigemIds;const c={...(t==null?void 0:t.camadasOverrides)||{}};a.length>0&&(i=[],o=[],n=a.map(u=>u.id),s=e.origensCamadas?[...e.origensCamadas.keys()]:n,a.forEach(u=>{var p,d;r.has(u.id)?i.push(u.id):o.push(u.id),c[u.id]={name:u.name,visible:u.visible!==!1,locked:!!u.locked,opacity:typeof u.opacity=="number"?u.opacity:1,color:u.color||"#00E08A",parentId:u.parentId!==void 0?u.parentId:null,origem:((p=e.origensCamadas)==null?void 0:p.get(u.id))??((d=c[u.id])==null?void 0:d.origem)}}));for(const u of e.camadasRemovidas??[])delete c[u];let l;return e.ordemFilhosPorPai&&e.ordemFilhosPorPai.size>0?(l={},e.ordemFilhosPorPai.forEach((u,p)=>{u.length>0&&(l[p]=[...u])}),Object.keys(l).length===0&&(l=void 0)):!a.length&&(t!=null&&t.ordemFilhosPorPai)&&(l=t.ordemFilhosPorPai),{versao:1,expandedLayerIds:i,collapsedLayerIds:o,camadaAtivaId:e.camadaAtivaId,painelColapsado:e.painelColapsado,ordemCamadasIds:n,ordemOrigemIds:s,ordemFilhosPorPai:l,mapaBaseAtivo:e.mapaBaseAtivo,densidade:e.densidade,altura:e.altura,camadasOverrides:c,ultimaAtualizacao:Date.now()}}const vt=`:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:inherit;font-size:11px;color:var(--ui-cor-texto, #e1e1e6);-webkit-user-select:none;user-select:none;width:100%;height:var(--ui-camadas-altura, 100%);min-height:var(--ui-camadas-min-altura, 140px);position:relative;--camada-respiro: 8px;--camada-barra-altura: 28px;--camada-linha-altura: 25px;--camada-thumb-tamanho: 20px;--camada-indent-nivel: 16px;--camada-transicao: .16s cubic-bezier(.16, 1, .3, 1)}:host([densidade="compacto"]){--camada-linha-altura: 22px;--camada-thumb-tamanho: 17px;font-size:10px}:host([flutuante]){position:absolute;top:10px;right:10px;bottom:46px;z-index:var(--ui-z-workspace-hud, 500);width:auto;height:var(--ui-camadas-altura, auto)}*,*:before,*:after{box-sizing:border-box}:host(:not([flutuante])) .ui-camadas-container{max-width:100%;min-width:0;border:none;box-shadow:none;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ui-camadas-container{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;width:100%;max-width:380px;min-width:270px;background:var(--ui-degrade-interno, var(--ui-camadas-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417))));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 8px);box-shadow:var(--ui-sombra-lg, 0 10px 30px -4px rgba(0, 0, 0, .5)),0 0 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 5%,transparent);overflow:hidden;position:relative;transition:transform .24s cubic-bezier(.16,1,.3,1),opacity .2s ease;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}:host([colapsado]) .ui-camadas-container{transform:translate(calc(100% + 24px));opacity:0;pointer-events:none}.ui-camadas-toggle-flutuante{display:none;position:absolute;top:10px;right:10px;z-index:calc(var(--ui-z-workspace-hud, 500) - 1);background:var(--ui-camadas-toggle-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417)));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 6px);color:var(--ui-cor-texto, #ffffff);width:34px;height:34px;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--ui-sombra-md, 0 8px 20px rgba(0, 0, 0, .45));transition:all var(--camada-transicao)}:host([colapsado][flutuante]) .ui-camadas-toggle-flutuante{display:flex}.ui-camadas-toggle-flutuante:hover{border-color:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-primaria, #00E08A);transform:scale(1.08);box-shadow:0 0 14px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-camadas-btn-colapsar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;cursor:pointer;border-radius:var(--ui-raio-sm, 4px);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--camada-transicao)}.ui-camadas-btn-colapsar:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-camadas-corpo{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 var(--camada-respiro) var(--camada-respiro);display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent) transparent}.ui-camadas-corpo::-webkit-scrollbar{width:4px}.ui-camadas-corpo::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-radius:var(--ui-raio-sm, 4px)}.ui-camadas-corpo::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent)}.ui-tree-toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro));padding:0 var(--camada-respiro);gap:8px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .06))}.ui-tree-title-group{display:flex;align-items:center;gap:5px}.ui-tree-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-tree-count-badge{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);color:var(--ui-cor-texto-secundario, #888899);padding:1px 5px;border-radius:8px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent)}.ui-tree-actions{display:flex;align-items:center;gap:3px}.ui-tree-action-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:24px;height:24px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-tree-action-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-tree-btn-new{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);border:none;color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 8px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-new:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-tree-search-wrapper{position:relative;display:flex;align-items:center;margin:1px 0}.ui-tree-search-icon{position:absolute;left:8px;color:var(--ui-cor-texto-secundario, #888899);pointer-events:none;display:flex;align-items:center}.ui-tree-search-input{width:100%;height:25px;background:var(--ui-cor-fundo, #0a0a0c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));border-radius:var(--ui-raio-borda, 5px);padding:0 24px 0 26px;color:var(--ui-cor-texto, #ffffff);font-size:10.5px;outline:none;transition:border-color var(--camada-transicao),box-shadow var(--camada-transicao)}.ui-tree-search-input:focus{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-tree-search-clear{position:absolute;right:5px;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all var(--camada-transicao)}.ui-tree-search-clear:hover{color:var(--ui-cor-texto, #ffffff);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent)}.ui-panel-box{background:var(--ui-cor-fundo, #0c0c0f);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));border-radius:var(--ui-raio-borda, 6px);overflow:hidden;display:flex;flex-direction:column;flex:1 1 0%;min-height:140px}.ui-search-empty{padding:14px 10px;text-align:center;font-size:11px;color:var(--ui-cor-texto-secundario, #888899);overflow-wrap:anywhere}.ui-layer-tree{flex:1 1 0%;min-height:40px;overflow-y:auto;overflow-x:hidden}.ui-layer-group{border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .04));transition:background var(--camada-transicao)}.ui-layer-group.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A);outline-offset:-1.5px}.ui-layer-row,.ui-feat-row{display:flex;align-items:center;height:var(--camada-linha-altura);min-height:var(--camada-linha-altura);max-height:var(--camada-linha-altura);padding:0 4px;-webkit-user-select:none;user-select:none;cursor:default;transition:background .1s ease;position:relative}.ui-layer-row{background:var(--ui-cor-fundo-elevado, #18181d);font-weight:600;cursor:pointer;border-left:3px solid transparent}.ui-layer-row:hover{background:var(--ui-cor-hover-menu, #22222a)}.ui-layer-row.active-drawing-layer{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 18%,var(--ui-cor-fundo-elevado, #18181d))!important;border-left:3px solid var(--layer-active-color, var(--ui-cor-primaria, #00E08A))!important;box-shadow:inset 0 0 12px color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 10%,transparent)}.ui-layer-row.active-drawing-layer .ui-name-text{color:var(--ui-cor-texto, #e1e1e6);font-weight:700}.ui-feat-row{border-left:3px solid transparent;padding-left:13px;background:var(--ui-cor-fundo, #101014);font-weight:400;cursor:pointer}.ui-feat-row:hover{background:var(--ui-cor-hover-menu, #19191f)}.ui-feat-row.selected-row{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 20%,var(--ui-cor-fundo, #101014))!important;outline:1px solid color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 55%,transparent)!important;outline-offset:-1px}.ui-layer-row.hidden-layer,.ui-feat-row.hidden-row{opacity:.52}.ui-layer-row.hidden-layer .ui-col-eye,.ui-feat-row.hidden-row .ui-col-eye{color:var(--ui-cor-texto-alerta, #ffb86c);opacity:.95}.ui-layer-row.dragging,.ui-feat-row.dragging{opacity:.35;background:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 16%,transparent)!important}.ui-layer-row.drop-above:before,.ui-feat-row.drop-above:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-below:after,.ui-feat-row.drop-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 16%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A)!important;outline-offset:-2px;border-radius:var(--ui-raio-sm, 4px)}.ui-layer-row.is-sublayer{background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #18181d) 70%,transparent)}.ui-group-folder-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-alerta, #ffb86c);margin-right:4px;flex-shrink:0}.ui-col{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--camada-linha-altura)}.ui-col-drag{width:8px;margin-right:1px;cursor:grab;color:var(--ui-cor-texto-secundario, #888899);opacity:.35;touch-action:none;transition:opacity var(--camada-transicao),color var(--camada-transicao)}.ui-layer-row:hover .ui-col-drag,.ui-feat-row:hover .ui-col-drag{opacity:.9;color:var(--ui-cor-primaria, #00E08A)}.ui-col-drag:active{cursor:grabbing}.ui-col-eye{width:20px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-eye:hover{color:var(--ui-cor-primaria, #00E08A)}.ui-col-lock{width:18px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-lock:hover{color:var(--ui-cor-texto-alerta, #ffb86c)}.ui-col-colorbar{width:5px;height:16px;margin:0 3px 0 2px;border-radius:1.5px;flex-shrink:0}.ui-col-colorbar-editavel{position:relative;width:5px;height:18px;cursor:pointer}.ui-col-colorbar-editavel:before{content:"";position:absolute;top:-3px;right:-4px;bottom:-3px;left:-4px}.ui-col-colorbar-editavel:hover,.ui-col-colorbar-editavel:focus-visible{filter:brightness(1.3);outline:none}.ui-children-container{position:relative}.ui-children-container:before{content:"";position:absolute;top:0;bottom:10px;left:calc(64px + var(--parent-depth, 0) * var(--camada-indent-nivel, 16px) + 7px);width:1.5px;background:color-mix(in srgb,var(--parent-layer-color, var(--layer-active-color, var(--ui-cor-primaria, #00E08A))) 48%,transparent);pointer-events:none;z-index:2}.ui-children-container:has(>.ui-empty-row):before{display:none}.ui-col-chevron,.ui-feat-row .ui-col-thumb{position:relative;margin-left:calc(var(--layer-depth, 0) * var(--camada-indent-nivel, 16px))}.ui-layer-row.is-sublayer .ui-col-chevron:before,.ui-feat-row .ui-col-thumb:before{content:"";position:absolute;left:-9px;top:50%;width:8px;height:1.5px;transform:translateY(-50%);background:color-mix(in srgb,var(--parent-layer-color, var(--layer-active-color, var(--ui-cor-primaria, #00E08A))) 48%,transparent);pointer-events:none}.ui-col-chevron{width:14px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);display:flex;align-items:center;justify-content:center}.ui-chevron-icon{display:inline-flex;align-items:center;justify-content:center;transition:transform var(--camada-transicao)}.ui-chevron-icon.open{transform:rotate(90deg)}.ui-col-thumb{width:calc(var(--camada-thumb-tamanho) + 3px);margin-right:4px;display:flex;align-items:center;justify-content:center}.ui-thumb-box{width:var(--camada-thumb-tamanho);height:var(--camada-thumb-tamanho);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);border-radius:3px;background:var(--ui-cor-fundo, #0d0d10);box-sizing:border-box;overflow:hidden;display:flex;align-items:center;justify-content:center}.ui-col-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--ui-cor-texto, #e1e1e6);padding-left:2px;padding-right:4px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:4px}.ui-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-count-chip{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-texto-secundario, #888899);font-weight:400;padding:0 2px;flex-shrink:0}.ui-col-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--camada-transicao)}.ui-layer-row:hover .ui-col-actions,.ui-feat-row:hover .ui-col-actions,.ui-layer-row:focus-within .ui-col-actions,.ui-feat-row:focus-within .ui-col-actions,.ui-col-actions:has(.ui-micro-btn.active){opacity:1}.ui-micro-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:18px;height:18px;padding:0;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-micro-btn:hover{color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-micro-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-col-target{width:22px;cursor:pointer}.ui-target-circle{width:11px;height:11px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent);background:transparent;transition:all .12s ease}.ui-col-target:hover .ui-target-circle{border-color:var(--ui-cor-texto-info, #33b5ff);transform:scale(1.18)}.ui-target-circle.selected{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));box-shadow:inset 0 0 0 2px var(--ui-cor-superficie, #141418)}.ui-target-circle.partial{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 40%,transparent)}.ui-inline-rename-input{width:100%;height:20px;background:var(--ui-cor-fundo, #0d0d10);color:var(--ui-cor-texto, #e1e1e6);border:1px solid var(--ui-cor-primaria, #00E08A);border-radius:3px;font-size:10.5px;padding:0 4px;outline:none;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 40%,transparent)}.ui-layer-settings-drawer{background:linear-gradient(180deg,var(--ui-cor-fundo-elevado, #17171e) 0%,var(--ui-cor-superficie, #0f0f13) 100%);padding:10px 14px 12px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent);border-left:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent),0 6px 16px #00000073;animation:drawerSlideDown .18s cubic-bezier(.16,1,.3,1);position:relative;z-index:10}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-header-left{display:flex;align-items:center;gap:7px;min-width:0}.ui-drawer-icon{color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;align-items:center;flex-shrink:0}.ui-drawer-title{font-size:10.5px;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.ui-drawer-layer-chip{font-size:9.5px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-drawer-btn-fechar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:20px;height:20px;padding:0;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-drawer-btn-fechar:hover{color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-body{display:flex;flex-direction:column;gap:10px}.ui-drawer-row{display:flex;flex-direction:column;gap:5px}.ui-drawer-row-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ui-cor-texto-secundario, #888899)}.ui-drawer-color-group{display:flex;align-items:center;justify-content:space-between;gap:8px}.ui-drawer-color-pill{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 5px;background:var(--ui-cor-fundo, #0b0b0d);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent);border-radius:var(--ui-raio-sm, 4px);cursor:pointer;transition:all var(--camada-transicao);-webkit-user-select:none;user-select:none}.ui-drawer-color-pill:hover{border-color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent)}.ui-drawer-color-sample{width:14px;height:14px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 35%,transparent);box-shadow:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .5));flex-shrink:0;transition:background-color .1s ease}.ui-drawer-color-hex{font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);letter-spacing:.5px}.ui-drawer-color-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ui-drawer-badge{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider-container{display:flex;flex-direction:column;gap:4px}.ui-drawer-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent) 0%,var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A)) 100%);border-radius:3px;outline:none;margin:3px 0;cursor:pointer;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer;transition:transform .12s ease}.ui-drawer-slider::-webkit-slider-thumb:hover{transform:scale(1.22)}.ui-drawer-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer}.ui-drawer-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-meta-info{font-size:9.5px;color:var(--ui-cor-texto-secundario, #888899);font-style:italic}.ui-drawer-actions{display:flex;align-items:center;gap:6px}.ui-drawer-btn-danger{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 10%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 35%,transparent);color:var(--ui-cor-texto-erro, #ff5555);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 10px;font-size:10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--camada-transicao)}.ui-drawer-btn-danger:hover{background:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 45%,transparent);transform:translateY(-.5px)}.ui-drawer-btn-danger.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-hover, #b71c1c);animation:pulseDanger 1.2s infinite}@keyframes pulseDanger{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.ui-previa-dot{width:6px;height:6px;margin-left:4px;border-radius:50%;flex-shrink:0;background:var(--ui-cor-texto-alerta, #ffb86c);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 25%,transparent)}.ui-tree-footer{height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);background:var(--ui-cor-fundo-elevado, #121216);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;align-items:center;justify-content:space-between;padding:0 var(--camada-respiro);gap:6px;box-sizing:border-box;overflow:hidden;position:relative;flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro))}.ui-footer-left{display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.ui-footer-count{font-size:11px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-primaria, #00E08A);flex-shrink:0}.ui-footer-label{display:inline-flex;align-items:center;color:var(--ui-cor-texto-secundario, #888899);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 8px;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-footer-right{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.ui-footer-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all var(--camada-transicao);flex-shrink:0}.ui-footer-btn:hover:not(.disabled){color:var(--ui-cor-texto, #e1e1e6);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-btn.disabled{opacity:.25;cursor:not-allowed}.ui-footer-btn.btn-danger-footer:hover:not(.disabled){color:var(--ui-cor-texto-erro, #ff5555);background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 15%,transparent)}.ui-footer-btn.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c)!important;color:var(--ui-cor-botao-destrutivo-texto, #ffffff)!important}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0}.ui-footer-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;--_chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888899' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background:var(--_chevron) right 6px center / 10px no-repeat,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto, #e1e1e6);border-radius:var(--ui-raio-sm, 4px);font:inherit;font-size:10px;font-weight:500;height:22px;padding:0 22px 0 8px;cursor:pointer;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){background:var(--_chevron) right 6px center / 10px no-repeat,var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-select:focus-visible{outline:1px solid var(--ui-cor-primaria, #00E08A)}.ui-drawer-btn-sublayer{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #e1e1e6);font-size:10.5px;font-weight:500;padding:4px 8px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-drawer-btn-sublayer:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-primaria, #00E08A);border-color:var(--ui-cor-primaria, #00E08A)}.ui-drawer-select-wrapper{display:flex;align-items:center}.ui-drawer-select{background:var(--ui-cor-fundo, #16161c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .15));color:var(--ui-cor-texto, #e1e1e6);border-radius:4px;font-size:10.5px;height:24px;padding:0 6px;cursor:pointer;max-width:140px}.ui-basemap-section{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.ui-basemap-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:2px;background:transparent;border:0;border-radius:var(--ui-raio-sm, 4px);font:inherit;color:inherit;cursor:pointer;text-align:left}.ui-basemap-toggle:hover .ui-basemap-title{color:var(--ui-cor-texto, #e1e1e6)}.ui-basemap-toggle:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}.ui-basemap-atual{flex:1 1 auto;min-width:0;font-size:10px;color:var(--ui-cor-primaria, #00E08A);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.ui-basemap-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.ui-basemap-section{container-type:inline-size}@container (min-width: 260px){.ui-basemap-grid{grid-template-columns:repeat(3,1fr)}}@container (min-width: 340px){.ui-basemap-grid{grid-template-columns:repeat(4,1fr)}}.ui-basemap-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px;border-radius:var(--ui-raio-borda, 5px);background:var(--ui-cor-fundo, #101014);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:pointer;transition:all var(--camada-transicao);text-align:center;overflow:hidden}.ui-basemap-card:hover{border-color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-fundo-elevado, #17171c)}.ui-basemap-card.active{border-color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);color:var(--ui-cor-primaria, #00E08A);font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-basemap-preview{width:100%;height:22px;border-radius:3px;object-fit:cover;opacity:.85;transition:opacity var(--camada-transicao)}.ui-basemap-preview-none{width:100%;height:22px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 4%,transparent);border-radius:3px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-card:hover .ui-basemap-preview,.ui-basemap-card.active .ui-basemap-preview{opacity:1}.ui-basemap-card span{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ui-layer-row.herdado-oculto,.ui-feat-row.herdado-oculto{opacity:.52}.ui-layer-row.herdado-travado .ui-col-lock.ui-lock-open{color:var(--ui-cor-texto-secundario, #888899);opacity:.7}.ui-search-hidden{display:none!important}.ui-empty-row{height:22px;display:flex;align-items:center;padding-left:36px;font-size:10px;color:var(--ui-cor-texto-secundario, #666677);font-style:italic;background:var(--ui-cor-fundo-recuado, rgba(0, 0, 0, .15))}.ui-camadas-resizer-altura{display:none;flex-shrink:0;width:100%;height:9px;background:var(--ui-cor-superficie, #141417);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:ns-resize;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none;transition:background .15s ease,border-color .15s ease;position:relative;z-index:10}:host([redimensionavel]) .ui-camadas-resizer-altura,:host([redimensionavel-altura]) .ui-camadas-resizer-altura{display:flex}.ui-camadas-resizer-altura:hover,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent);border-top-color:var(--ui-cor-primaria, #00E08A)}.ui-camadas-resizer-grip{width:32px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);transition:all .15s ease}.ui-camadas-resizer-altura:hover .ui-camadas-resizer-grip,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo .ui-camadas-resizer-grip{background:var(--ui-cor-primaria, #00E08A);width:46px;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 45%,transparent)}:host(.ui-camadas--redimensionando){-webkit-user-select:none!important;user-select:none!important;cursor:ns-resize!important}:host(.ui-camadas--redimensionando) *{-webkit-user-select:none!important;user-select:none!important}.ui-col-lock.ui-lock-open{opacity:.28}.ui-col-lock.ui-lock-open:hover,.ui-col-lock.ui-lock-open:focus-visible{opacity:.8}.ui-col-lock[data-locked-by-layer]{cursor:not-allowed}.ui-col[role=button]:focus-visible,.ui-basemap-card:focus-visible,.ui-feat-row:focus-visible,.ui-layer-row:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:-2px}.ui-footer-btn.confirming{color:var(--ui-cor-botao-destrutivo-texto, #ffffff);background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);width:auto;padding:0 6px}.ui-truncate-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;margin:4px 8px 6px;background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 70%,transparent);border:1px dashed var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 4px);font-size:10px;color:var(--ui-cor-texto-secundario, #9696a6)}.ui-truncate-notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-truncate-more-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--ui-cor-superficie, #141417);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 4px);color:var(--ui-cor-primaria, #00E08A);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--camada-transicao)}.ui-truncate-more-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08));border-color:var(--ui-cor-primaria, #00E08A)}.ui-truncate-more-btn:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}:host(.degrade),:host(.gradiente),:host([data-degrade]:not([data-degrade="false"])),.ui-camadas-container[data-degrade]:not([data-degrade=false]){--ui-camadas-fundo: var(--ui-gradiente-superficie);--ui-camadas-toggle-fundo: var(--ui-gradiente-superficie)}`;function bt(e,t){t.querySelectorAll("[data-layer-row]").forEach(r=>{const o=r.getAttribute("data-layer-row")===e.camadaAtivaId;r.classList.toggle("active-drawing-layer",o),aa.alternarPart(r,"camada-ativa",o),o?r.setAttribute("aria-current","true"):r.removeAttribute("aria-current")})}function yt(e,t){t.querySelectorAll(".ui-feat-row").forEach(a=>{const r=a.getAttribute("data-feat-row"),i=r?e.selectedFeatureIds.has(r):!1;a.classList.toggle("selected-row",i),aa.alternarPart(a,"feicao-selecionada",i),a.setAttribute("aria-selected",String(i));const o=a.querySelector(".ui-target-circle");o&&o.classList.toggle("selected",i)}),t.querySelectorAll(".ui-layer-group").forEach(a=>{const r=a.getAttribute("data-layer-id"),i=te(e.camadas,e.feicoes,r??""),o=Q(i,e.searchQuery);Ia(a.querySelector(".ui-layer-row .ui-target-circle"),o,e.selectedFeatureIds)}),ka(e,t)}function Ia(e,t,a){if(!e)return;if(t.length===0){e.classList.remove("selected","partial");return}const r=t.every(o=>a.has(o.id)),i=!r&&t.some(o=>a.has(o.id));e.classList.toggle("selected",r),e.classList.toggle("partial",i)}function ka(e,t){const a=e.feicoes.filter(p=>e.selectedFeatureIds.has(p.id)),r=a.length>0,i=t.getElementById("footer-count"),o=t.getElementById("footer-label");if(i&&(i.textContent=String(r?a.length:e.camadas.length)),o){const p=De(e.camadas.length,a.length);o.innerHTML=p.icone,o.title=p.texto,o.setAttribute("aria-label",p.texto)}const n=t.querySelector(".ui-tree-footer");n&&(n.classList.toggle("tem-selecao",r),n.classList.toggle("sem-selecao",!r));const s=t.querySelector(".ui-footer-actions-gerais");s&&(s.style.display=r?"none":"flex");const c=t.querySelector(".ui-footer-bulk-actions");c&&(c.style.display=r?"flex":"none"),["btn-footer-del"].forEach(p=>{const d=t.getElementById(p);d&&(d.disabled=!r,d.classList.toggle("disabled",!r))});const l=t.querySelector(".ui-footer-move-wrapper");l&&l.classList.toggle("disabled",!r);const u=t.getElementById("select-footer-move");u&&(u.disabled=!r)}function Ze(e,t){const a=ve(e.camadas),r=new Map(e.camadas.map(n=>[n.id,n]));t.querySelectorAll(".ui-layer-row").forEach(n=>{const s=a.get(n.getAttribute("data-layer-row")||"");n.classList.toggle("herdado-oculto",(s==null?void 0:s.ocultaPorAncestral)===!0),n.classList.toggle("herdado-travado",(s==null?void 0:s.travadaPorAncestral)===!0)});const i=new Map(e.feicoes.map(n=>[n.id,n]));t.querySelectorAll(".ui-feat-row").forEach(n=>{const s=n.getAttribute("data-feat-layer")||"",c=r.get(s),l=a.get(s);n.classList.toggle("herdado-oculto",(c==null?void 0:c.visible)===!1||(l==null?void 0:l.ocultaPorAncestral)===!0);const u=n.querySelector("[data-feat-lock]"),p=i.get(n.getAttribute("data-feat-row")||"");if(!u||!p)return;const d=(c==null?void 0:c.locked)===!0||(l==null?void 0:l.travadaPorAncestral)===!0,f=p.locked===!0||d;u.innerHTML=f?b.cadeadoTrancado:b.cadeadoAberto,u.classList.toggle("ui-lock-open",!f),d?u.setAttribute("data-locked-by-layer","true"):u.removeAttribute("data-locked-by-layer"),T(u,d?"Bloqueada pela camada":f?"Desbloquear Feição":"Bloquear Feição")});const o=t.getElementById("select-footer-move");o&&(o.innerHTML=`<option value="" disabled selected>Mover para...</option>${qe(e.camadas)}`)}function xt(e,t){t.querySelectorAll("[data-layer-row]").forEach(i=>{i.addEventListener("click",o=>{if(o.target.closest("[data-layer-eye], [data-layer-lock], [data-layer-expand], [data-layer-target], [data-layer-fit], [data-layer-settings], [data-layer-color], input, button"))return;const s=i.getAttribute("data-layer-row");s&&e.definirCamadaAtiva(s,!0)})}),t.querySelectorAll("[data-layer-expand]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-expand");if(!n)return;e.expandedLayers.has(n)?e.expandedLayers.delete(n):e.expandedLayers.add(n);const s=i.closest(".ui-layer-group"),c=i.querySelector(".ui-chevron-icon"),l=e.expandedLayers.has(n);if(c&&c.classList.toggle("open",l),s){s.setAttribute("aria-expanded",String(l));const u=s.querySelector(".ui-children-container");u&&(u.style.display=l?"block":"none")}T(i,l?"Recolher grupo":"Expandir grupo"),wt(e,t),e.salvarLembrancaEstado()})}),t.querySelectorAll("[data-layer-eye]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-eye"),s=e.camadas.find(c=>c.id===n);if(s){s.visible=s.visible===!1;const c=s.visible!==!1;i.innerHTML=c?b.olhoAberto:b.olhoFechado,T(i,c?"Ocultar Camada":"Exibir Camada");const l=i.closest(".ui-layer-row");l&&l.classList.toggle("hidden-layer",!c),At(e,t),Ze(e,t),e.salvarLembrancaEstado(),e.dispararEvento("ui-camada-visibilidade",{camadaId:s.id,visivel:c})}})}),t.querySelectorAll("[data-layer-lock]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-lock"),s=e.camadas.find(c=>c.id===n);s&&(s.locked=!s.locked,i.innerHTML=s.locked?b.cadeadoTrancado:b.cadeadoAberto,i.classList.toggle("ui-lock-open",!s.locked),T(i,s.locked?"Desbloquear Camada":"Bloquear Camada"),Ze(e,t),e.salvarLembrancaEstado(),e.dispararEvento("ui-camada-bloqueio",{camadaId:s.id,bloqueado:s.locked}))})}),t.querySelectorAll("[data-layer-fit]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-fit");n&&e.dispararEvento("ui-camada-enquadrar",{camadaId:n})})}),t.querySelectorAll("[data-layer-settings]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-layer-settings");e.activeSettingsLayerId=e.activeSettingsLayerId===n?null:n,e.solicitarRenderizacao()})}),t.querySelectorAll("[data-layer-settings-close]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation(),e.activeSettingsLayerId=null,e.solicitarRenderizacao()})});const a=(i,o,n)=>{const s=e.camadas.find(f=>f.id===i);if(!s)return;const c=K(o,s.color||"#00E08A");s.color=c;const l=t.getElementById(`sample-color-${i}`);l&&(l.style.backgroundColor=c);const u=t.getElementById(`hex-color-${i}`);u&&(u.textContent=c.toUpperCase());const p=t.getElementById(`settings-drawer-${i}`);p&&p.style.setProperty("--drawer-cor-camada",c);const d=D(t,"data-layer-row",i);if(d){const f=d.closest(".ui-layer-group");f==null||f.style.setProperty("--layer-active-color",c);const m=f==null?void 0:f.querySelector(":scope > .ui-children-container");m==null||m.style.setProperty("--parent-layer-color",c);const h=d.querySelector(".ui-col-colorbar");h&&(h.style.backgroundColor=c);const v=new Map(e.feicoes.map(g=>[g.id,g]));f==null||f.querySelectorAll(".ui-feat-row").forEach(g=>{if(g.getAttribute("data-feat-layer")!==i)return;const w=g.querySelector(".ui-col-colorbar");w&&(w.style.backgroundColor=c);const k=v.get(g.getAttribute("data-feat-row")||"");if(!k||k.color)return;const L=g.querySelector(".ui-thumb-box");L&&(L.innerHTML=Te(k.type||k.geometryType,c,k.coordinates))})}n?e.salvarLembrancaEstado():e.agendarSalvarLembranca(),e.dispararEvento("ui-camada-cor",{camadaId:s.id,cor:c})};t.querySelectorAll("[data-layer-color-picker]").forEach(i=>{const o=i,n=s=>c=>{const l=o.getAttribute("data-layer-color-picker");if(!l)return;const u=c.target.value;a(l,u,s)};o.addEventListener("input",n(!1)),o.addEventListener("change",n(!0))}),t.querySelectorAll("[data-layer-color]").forEach(i=>{const o=n=>{n.stopPropagation();const s=i.getAttribute("data-layer-color"),c=e.camadas.find(l=>l.id===s);!s||!c||Xa.abrirSeletorCor({ancora:i,titulo:`Cor · ${c.name||"Camada"}`,modo:"simples",cor:K(c.color,"#00E08A"),mostrarOpacidade:!1,aoAlterar:l=>a(s,l.cor,!1),aoConfirmar:l=>a(s,l.cor,!0),aoCancelar:l=>a(s,l.cor,!0)})};i.addEventListener("click",o),i.addEventListener("keydown",n=>{const s=n.key;(s==="Enter"||s===" ")&&(n.preventDefault(),o(n))})});const r=(i,o)=>{const n=e.camadas.find(l=>l.id===i);if(!n)return;n.opacity=o;const s=t.getElementById(`badge-op-${i}`);s&&(s.textContent=`${Math.round(o*100)}%`);const c=D(t,"data-layer-opacity-slider",i);c&&parseFloat(c.value)!==o&&(c.value=String(o)),e.agendarSalvarLembranca(),e.dispararEvento("ui-camada-opacidade",{camadaId:n.id,opacidade:o})};t.querySelectorAll("[data-layer-opacity-slider]").forEach(i=>{i.addEventListener("input",o=>{const n=i.getAttribute("data-layer-opacity-slider");if(!n)return;const s=parseFloat(o.target.value);Number.isFinite(s)&&r(n,Math.min(1,Math.max(0,s)))})}),t.querySelectorAll("[data-delete-layer]").forEach(i=>{let o=null;const n=()=>{o&&(clearTimeout(o),o=null),i.classList.remove("confirming");const s=i.querySelector(".ui-btn-label");s&&(s.textContent="Excluir")};i.addEventListener("ui-cancelar-confirmacao",n),i.addEventListener("click",s=>{s.stopPropagation();const c=i.getAttribute("data-delete-layer");if(!c)return;if(i.classList.contains("confirming")){n(),e.dispararEvento("ui-camada-excluida",{camadaId:c});const u=e.selectedFeatureIds.size;e.camadas.forEach(p=>{p.parentId===c&&(p.parentId=null)}),e.removerCamada(c),e.selectedFeatureIds.size!==u&&e.notificarMudancaSelecao()}else{i.classList.add("confirming");const u=i.querySelector(".ui-btn-label");u&&(u.textContent="Confirmar Exclusão?"),o=setTimeout(n,3500)}})}),t.querySelectorAll("[data-layer-parent-select]").forEach(i=>{i.addEventListener("change",o=>{const n=o.target,s=n.getAttribute("data-layer-parent-select"),c=n.value||null,l=e.camadas.find(u=>u.id===s);if(l){if(c&&(c===l.id||N(e.camadas,c,l.id))){n.value=l.parentId||"";return}const u=l.parentId??null;l.parentId=c,c&&e.expandedLayers.add(c),e.salvarLembrancaEstado(),e.dispararEvento("ui-camada-mover-hierarquia",{camadaId:l.id,novoParentId:c,parentAnteriorId:u,camada:l}),e.solicitarRenderizacao()}})}),t.querySelectorAll("[data-add-sublayer]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=i.getAttribute("data-add-sublayer");e.dispararEvento("ui-camada-adicionar",{parentId:n})})}),La(e,t),t.querySelectorAll("[data-layer-target]").forEach(i=>{i.addEventListener("click",o=>{o.stopPropagation();const n=o,s=i.getAttribute("data-layer-target");if(!s)return;const c=te(e.camadas,e.feicoes,s),l=Q(c,e.searchQuery);if(l.length===0)return;l.every(p=>e.selectedFeatureIds.has(p.id))?l.forEach(p=>e.selectedFeatureIds.delete(p.id)):(!n.ctrlKey&&!n.metaKey&&e.selectedFeatureIds.clear(),l.forEach(p=>e.selectedFeatureIds.add(p.id))),e.lastClickedFeatureId=l[l.length-1].id,e.sincronizarSelecaoDOM(),e.notificarMudancaSelecao()})})}function La(e,t){t.querySelectorAll("[data-layer-show-more]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=a.getAttribute("data-layer-show-more");i&&e.incrementarLimiteFeicoes(i)})})}function wt(e,t){const a=t.getElementById("btn-toggle-all-expand");if(!a)return;const r=e.camadas.length>0&&e.camadas.every(o=>e.expandedLayers.has(o.id)),i=a.querySelector(".ui-chevron-icon");i&&i.classList.toggle("open",r),T(a,r?"Recolher Todos os Grupos":"Expandir Todos os Grupos")}function At(e,t){const a=t.getElementById("btn-toggle-all-vis");if(!a)return;const r=e.camadas.every(i=>i.visible!==!1);a.innerHTML=r?b.olhoAberto:b.olhoFechado,T(a,r?"Ocultar Todas as Camadas":"Exibir Todas as Camadas")}function Et(e,t){const a=t.getElementById("select-footer-move");a&&a.addEventListener("change",n=>{const s=n.target.value;if(!s)return;const c=pe(e.camadas);if(c.has(s)){a.value="";return}const l=e.feicoes.filter(p=>e.selectedFeatureIds.has(p.id)&&!c.has(p.layerId)&&p.locked!==!0);if(l.length===0){a.value="";return}const u=new Map(l.map(p=>[p.id,p.layerId]));l.forEach(p=>p.layerId=s),l.forEach(p=>{u.get(p.id)!==s&&e.dispararEvento("ui-feicao-movida",{feicaoId:p.id,camadaOrigemId:u.get(p.id),camadaDestinoId:s,feicao:p})}),e.dispararEvento("ui-acao-massa",{acao:"mover",feicoesIds:l.map(p=>p.id),feicoes:l,valor:s}),e.solicitarRenderizacao()});const r=t.getElementById("btn-footer-new-layer");r&&r.addEventListener("click",()=>{e.dispararEvento("ui-camada-adicionar",{})});const i=t.getElementById("btn-footer-new-group");i&&i.addEventListener("click",()=>{e.dispararEvento("ui-camada-grupo-adicionar",{isGroup:!0})});const o=t.getElementById("btn-footer-del");if(o){let n=null;const s="Excluir selecionados",c=()=>{n&&(clearTimeout(n),n=null),o.classList.remove("confirming"),T(o,s)};o.addEventListener("ui-cancelar-confirmacao",c),o.addEventListener("click",()=>{const l=pe(e.camadas),u=e.feicoes.filter(f=>e.selectedFeatureIds.has(f.id)&&!l.has(f.layerId)&&f.locked!==!0);if(u.length===0)return;const p=u.map(f=>f.id);if(!o.classList.contains("confirming")){o.classList.add("confirming"),T(o,`Clique novamente para excluir ${p.length} selecionado(s)`),n=setTimeout(c,3500);return}c();const d=new Set(p);e.feicoes=e.feicoes.filter(f=>!d.has(f.id)),p.forEach(f=>e.selectedFeatureIds.delete(f)),e.lastClickedFeatureId&&d.has(e.lastClickedFeatureId)&&(e.lastClickedFeatureId=null),e.dispararEvento("ui-acao-massa",{acao:"excluir",feicoesIds:p,feicoes:u}),e.notificarMudancaSelecao(),e.solicitarRenderizacao()})}}const It=[{tipo:"olho",atributo:"data-layer-eye",entidade:"camada"},{tipo:"olho",atributo:"data-feat-eye",entidade:"feicao"},{tipo:"cadeado",atributo:"data-layer-lock",entidade:"camada"},{tipo:"cadeado",atributo:"data-feat-lock",entidade:"feicao"},{tipo:"selecao",atributo:"data-layer-target",entidade:"camada"},{tipo:"selecao",atributo:"data-feat-target",entidade:"feicao"}],$e={olho:"[data-layer-eye], [data-feat-eye]",cadeado:"[data-layer-lock], [data-feat-lock]",selecao:"[data-layer-target], [data-feat-target]"},kt=3;function Lt(e){return It.find(t=>e.hasAttribute(t.atributo))??null}function Fe(e,t){const a=Lt(t);if(!a)return null;const r=t.getAttribute(a.atributo);if(!r)return null;if(a.tipo==="olho"){const o=a.entidade==="camada"?e.camadas.find(n=>n.id===r):e.feicoes.find(n=>n.id===r);return o?o.visible!==!1:null}if(a.tipo==="cadeado"){if(t.hasAttribute("data-locked-by-layer"))return null;const o=a.entidade==="camada"?e.camadas.find(n=>n.id===r):e.feicoes.find(n=>n.id===r);return o?o.locked===!0:null}if(a.entidade==="feicao")return e.selectedFeatureIds.has(r);const i=Q(te(e.camadas,e.feicoes,r),e.searchQuery);return i.length===0?null:i.every(o=>e.selectedFeatureIds.has(o.id))}function ea(e,t,a=!1){e.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,ctrlKey:t,shiftKey:a}))}let q=null;function Ct(e){(q==null?void 0:q.host)===e&&q.cancelar()}function Ca(e,t,a=t){Object.keys($e).forEach(r=>{a.querySelectorAll($e[r]).forEach(i=>{i.addEventListener("pointerdown",o=>St(e,t,r,i,o))})})}function St(e,t,a,r,i){if(i.pointerType==="mouse"&&i.button!==0||e.editingLayerId||e.editingFeatureId||Fe(e,r)===null)return;q==null||q.cancelar();const o=$e[a],n=i.ctrlKey||i.metaKey,s=i.shiftKey;let c=!1,l=!1,u=i.clientY;const p=new Set([r]),d=A=>{A.preventDefault(),A.stopImmediatePropagation()},f=A=>{A.stopPropagation(),A.preventDefault()},m=A=>A.preventDefault(),h=A=>{p.has(A)||(p.add(A),Fe(e,A)!==l&&ea(A,a==="selecao"))},v=()=>{c=!0,ea(r,n,s),l=Fe(e,r)===!0,t.addEventListener("selectstart",m),document.body.style.userSelect="none"},g=A=>{var E,z;if(!c){if(Math.hypot(A.clientX-i.clientX,A.clientY-i.clientY)<kt)return;const x=(E=t.elementFromPoint(A.clientX,A.clientY))==null?void 0:E.closest(o);if(!x||x===r)return;v()}A.preventDefault();const S=Math.min(u,A.clientY),F=Math.max(u,A.clientY);t.querySelectorAll(o).forEach(x=>{const y=x.getBoundingClientRect();if(y.height===0)return;const P=y.top+y.height/2;P>=S&&P<=F&&h(x)});const B=(z=t.elementFromPoint(A.clientX,A.clientY))==null?void 0:z.closest(o);B&&h(B),u=A.clientY},w=(A=!1)=>{(q==null?void 0:q.cancelar)===L&&(q=null),window.removeEventListener("pointermove",g),window.removeEventListener("pointerup",k),window.removeEventListener("pointercancel",k),window.removeEventListener("dragstart",d,!0),t.removeEventListener("selectstart",m),c&&(document.body.style.userSelect="",A||(window.addEventListener("click",f,{capture:!0,once:!0}),setTimeout(()=>window.removeEventListener("click",f,!0),0)))},k=()=>w(),L=()=>w(!0);q={host:e,cancelar:L},window.addEventListener("dragstart",d,!0),window.addEventListener("pointermove",g,{passive:!1}),window.addEventListener("pointerup",k),window.addEventListener("pointercancel",k)}function Ft(e,t){const a=t.getElementById("btn-toggle-all-vis");a&&a.addEventListener("click",()=>e.alternarVisibilidadeTodas(!0));const r=t.getElementById("btn-toggle-all-expand");r&&r.addEventListener("click",o=>{o.stopPropagation(),e.camadas.length>0&&e.camadas.every(s=>e.expandedLayers.has(s.id))?e.colapsarTodas():e.expandirTodas()});const i=t.getElementById("btn-colapsar");i&&i.addEventListener("click",()=>e.colapsar(!0)),$t(e,t)}function $t(e,t){const a=t.getElementById("input-layer-search"),r=t.getElementById("btn-clear-layer-search"),i=()=>{var o;e.searchQuery="",e.solicitarRenderizacao(),(o=t.getElementById("input-layer-search"))==null||o.focus()};if(a){const o=ia(()=>e.solicitarRenderizacao(),75);a.addEventListener("input",n=>{e.searchQuery=n.target.value,o()}),a.addEventListener("keydown",n=>{n.key==="Escape"&&e.searchQuery&&(n.preventDefault(),i())})}r&&r.addEventListener("click",i)}function Sa(e,t){t.querySelectorAll("[data-feat-select]").forEach(a=>{a.addEventListener("click",r=>{if(e.editingFeatureId)return;const i=r;if(i.target.closest("[data-feat-eye], [data-feat-lock], [data-feat-fit], [data-feat-target], input, button"))return;const n=a.getAttribute("data-feat-select");n&&e.selecionarFeicao(n,i.ctrlKey||i.metaKey,i.shiftKey,!0)})}),t.querySelectorAll("[data-feat-target]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=r,o=a.getAttribute("data-feat-target");o&&e.selecionarFeicao(o,i.ctrlKey||i.metaKey,i.shiftKey,!0)})}),t.querySelectorAll("[data-feat-eye]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=a.getAttribute("data-feat-eye"),o=e.feicoes.find(n=>n.id===i);if(o){o.visible=o.visible===!1;const n=o.visible!==!1;a.innerHTML=n?b.olhoAberto:b.olhoFechado,T(a,n?"Ocultar Feição":"Exibir Feição");const s=a.closest(".ui-feat-row");s&&s.classList.toggle("hidden-row",!n),e.dispararEvento("ui-feicao-visibilidade",{feicaoId:o.id,visivel:n})}})}),t.querySelectorAll("[data-feat-lock]").forEach(a=>{a.addEventListener("click",r=>{if(r.stopPropagation(),a.hasAttribute("data-locked-by-layer"))return;const i=a.getAttribute("data-feat-lock"),o=e.feicoes.find(n=>n.id===i);o&&(o.locked=!o.locked,a.innerHTML=o.locked?b.cadeadoTrancado:b.cadeadoAberto,a.classList.toggle("ui-lock-open",!o.locked),T(a,o.locked?"Desbloquear Feição":"Bloquear Feição"),e.dispararEvento("ui-feicao-bloqueio",{feicaoId:o.id,bloqueado:o.locked}))})}),t.querySelectorAll("[data-feat-fit]").forEach(a=>{a.addEventListener("click",r=>{r.stopPropagation();const i=a.getAttribute("data-feat-fit");i&&e.dispararEvento("ui-feicao-enquadrar",{feicaoId:i})})})}function Mt(e,t){var a;(a=t.querySelector("[data-basemap-toggle]"))==null||a.addEventListener("click",()=>{e.alternarMapasBaseRecolhido(!0)}),t.querySelectorAll("[data-basemap-id]").forEach(r=>{r.addEventListener("click",()=>{const i=r.getAttribute("data-basemap-id");i&&e.selecionarMapaBase(i,!0)})})}function Pt(e,t){Ft(e,t),xt(e,t),Sa(e,t),Mt(e,t),Et(e,t),Ca(e,t)}function zt(e){if(!e.arvoreRenderizada)return{incremental:!1,motivo:"arvore-nao-renderizada"};if(e.buscaAtiva)return{incremental:!1,motivo:"busca-ativa"};if(e.editandoCamada||e.editandoFeicao)return{incremental:!1,motivo:"edicao-inline"};for(const t of e.camadasAfetadas){if(!t.existeNoModelo)return{incremental:!1,motivo:"camada-orfa"};if(!t.renderizadaNoDom)return{incremental:!1,motivo:"camada-fora-do-dom"};if(t.drawerAberto)return{incremental:!1,motivo:"drawer-aberto"}}return e.idsDuplicados?{incremental:!1,motivo:"ids-duplicados"}:{incremental:!0}}function Fa(e,t=new Map){for(const a of e)t.set(a.camada.id,a),Fa(a.subcamadas,t);return t}function Bt(e){const t=new Map;for(let a=0;a<e.length;a++){const r=e[a];if(!r||!r.id)continue;const i=r.layerId||"",o=t.get(i);o?o.push(r):t.set(i,[r])}return t}function Z(e,t){for(let a=e.firstElementChild;a;a=a.nextElementSibling)if(a.classList.contains(t))return a;return null}function qt(e){const t=new Map,a=r=>{for(let i=r.firstElementChild;i;i=i.nextElementSibling){if(!i.classList.contains("ui-layer-group"))continue;const o=i.getAttribute("data-layer-id");o!==null&&t.set(o,i);const n=Z(i,"ui-children-container");n&&a(n)}};return a(e),t}function Dt(e){if(!e||e.length<2)return!1;const t=new Set;for(const a of e){if(t.has(a.id))return!0;t.add(a.id)}return!1}function Tt(e,t){var i;const a=new Map(t.map(o=>[o.id,o])),r=new Set;for(const o of e){let n=o;for(;n&&a.has(n)&&!r.has(n);)r.add(n),n=(i=a.get(n))==null?void 0:i.parentId}return r}function me(e){const t=document.createElement("template");return t.innerHTML=e,{modelo:t,elementos:Array.from(t.content.children)}}function ge(e){var a;const t=e.nextSibling;t&&t.nodeType===3&&!(t.textContent??"").trim()&&((a=t.parentNode)==null||a.removeChild(t)),e.remove()}function Ot(e,t){if(!e||!t.contains(e))return null;const a=Array.from(e.attributes).find(r=>r.name.startsWith("data-")&&r.value!=="");return a?{nome:a.name,valor:a.value}:null}function Rt(e,t){var F,B;const{host:a,shadow:r,mudanca:i}=e;if((B=(F=a.ordemFilhosPorPai)==null?void 0:F.get(t))!=null&&B.length)return!1;const o=e.grupos.get(t),n=e.nodos.get(t),s=o?Z(o,"ui-children-container"):null;if(!o||!n||!s)return!1;const c=n.camada,l=e.porCamada.get(t)??[],u=a.expandedFeatureLimits.get(t)??be,p=l.slice(0,u),d=new Set(p.map(E=>E.id)),f=new Map,m=new Map,h=r.activeElement;let v=null;for(let E=s.firstElementChild,z;E;E=z){z=E.nextElementSibling;const x=E.getAttribute("data-feat-row");if(x===null){!v&&!E.classList.contains("ui-layer-group")&&(v=E);continue}const y=i.idsAlterados.has(x)&&d.has(x)&&!f.has(x);!d.has(x)||f.has(x)||y?(y&&m.set(x,{tabindex:E.getAttribute("tabindex"),foco:Ot(h,E)}),ge(E)):(f.set(x,E),v||(v=E))}const g=la(c,n.depth,e.herdado.get(t)),w=p.filter(E=>!f.has(E.id));let k=[];if(w.length>0){const E=w.map(y=>ma(y,g,a.selectedFeatureIds.has(y.id),a.editingFeatureId===y.id)).join(""),{modelo:z,elementos:x}=me(E);if(x.length!==w.length)return!1;e.ligar(z.content),k=x}let L=v,A=0;const S=new Map;for(const E of p){const z=f.get(E.id);if(z)z===L?L=z.nextElementSibling:s.insertBefore(z,L);else{const x=k[A++];s.insertBefore(x,L),S.set(E.id,x)}}return m.forEach((E,z)=>{const x=S.get(z);if(!x||(E.tabindex!==null&&x.setAttribute("tabindex",E.tabindex),!E.foco))return;const y=x.getAttribute(E.foco.nome)===E.foco.valor?x:Array.from(x.querySelectorAll(`[${E.foco.nome}]`)).find(P=>P.getAttribute(E.foco.nome)===E.foco.valor);y==null||y.focus({preventScroll:!0})}),jt(e,s,n,u,l.length)}function jt(e,t,a,r,i){const o=M(a.camada.id),n=!!(a.camada.isGroup||a.subcamadas.length>0),s=i>r,c=a.subcamadas.length===0&&i===0,l=Z(t,"ui-truncate-notice"),u=Z(t,"ui-empty-row");if(u&&!c&&ge(u),l&&!s&&ge(l),s)if(l){const p=ua(r,i),d=l.querySelector("span"),f=l.querySelector(".ui-truncate-more-btn");if(!d||!f)return!1;d.textContent!==p.resumo&&(d.textContent=p.resumo),f.textContent!==p.botao&&(f.textContent=p.botao)}else{const{modelo:p,elementos:d}=me(pa(o,r,i));if(d.length!==1)return!1;e.ligar(p.content),t.appendChild(d[0])}if(c&&!u){const{elementos:p}=me(fa(n));if(p.length!==1)return!1;t.appendChild(p[0])}return!0}function Nt(e,t){const a=e.grupos.get(t),r=e.nodos.get(t),i=a?Z(a,"ui-layer-row"):null,o=i==null?void 0:i.querySelector(".ui-col-name");if(!a||!r||!i||!o)return!1;const{host:n}=e,s=te(n.camadas,n.feicoes,t),c=(e.porCamada.get(t)??[]).length,l=r.subcamadas.length,u=!!(r.camada.isGroup||l>0),p=o.querySelector(".ui-count-chip");if(p)if(s.length===0&&u)ge(p);else{const d=String(s.length),f=ca(s.length,c,l);p.textContent!==d&&(p.textContent=d),p.getAttribute("title")!==f&&p.setAttribute("title",f)}else{const d=da(s.length,c,l,u);if(d){const{elementos:f}=me(d);if(f.length!==1)return!1;o.appendChild(f[0])}}return Ia(i.querySelector(".ui-target-circle"),s,n.selectedFeatureIds),!0}function Ht(e,t,a,r){const i=t.getElementById("ui-layer-tree-mount"),o=Fa(ae(e.camadas)),n=i?qt(i):new Map,s=Bt(e.feicoes),c=a.camadas==="todas"?Array.from(o.keys()):Array.from(a.camadas),l=c.map(d=>({existeNoModelo:o.has(d),renderizadaNoDom:n.has(d),drawerAberto:e.activeSettingsLayerId===d}));if(!zt({arvoreRenderizada:i!==null,buscaAtiva:(e.searchQuery||"").trim()!=="",editandoCamada:e.editingLayerId!==null,editandoFeicao:e.editingFeatureId!==null,idsDuplicados:c.some(d=>Dt(s.get(d))),camadasAfetadas:l}).incremental)return!1;const p={host:e,shadow:t,mudanca:a,porCamada:s,nodos:o,grupos:n,herdado:ve(e.camadas),ligar:r};for(const d of c)if(!Rt(p,d))return!1;for(const d of Tt(c,e.camadas))if(!Nt(p,d))return!1;return(a.selecaoAfetada||e.selectedFeatureIds.size>0)&&ka(e,t),!0}function Gt(e){if(!e.isConnected)return;const t=document.createElement("div");t.className="ui-basemap-preview-none",t.innerHTML=b.gradeCad,e.replaceWith(t)}function _t(e,t,a,r){var h,v;const i=ha({camadas:e.camadas,feicoes:e.feicoes,camadaAtivaId:e.camadaAtivaId,expandedLayers:e.expandedLayers,selectedFeatureIds:e.selectedFeatureIds,activeSettingsLayerId:e.activeSettingsLayerId,editingLayerId:e.editingLayerId,editingFeatureId:e.editingFeatureId,searchQuery:e.searchQuery,titulo:e.titulo,mostrarBusca:e.mostrarBusca,limitesPorCamada:e.expandedFeatureLimits,mostrarBotaoColapsar:e.flutuante&&e.getAttribute("colapsavel")!=="false",ordemFilhosPorPai:e.ordemFilhosPorPai}),o=e.mostrarMapasBase?oa(e.mapasBase,e.mapaBaseAtivo,e.mapasBaseRecolhido):"",n=e.mostrarRodape?na(e.camadas,e.feicoes,e.selectedFeatureIds):"",s=t.getElementById("ui-layer-tree-mount"),c=a.scrollTop,l=s?s.scrollTop:0,u=t.activeElement,p=u&&a.contains(u)?u.id:"",d=u&&!p&&a.contains(u)?Array.from(u.attributes).find(g=>g.name.startsWith("data-")&&g.value!==""):void 0,f=u&&"selectionStart"in u?u.selectionStart:null;a.innerHTML=`
300
297
  ${i}
301
298
  ${n}
302
299
  ${o}
303
- `,a.scrollTop=c;const m=t.getElementById("ui-layer-tree-mount");if(m&&(m.scrollTop=l),d){const b=t.getElementById(d);if(b&&(b.focus({preventScroll:!0}),f!==null&&typeof b.setSelectionRange=="function"))try{b.setSelectionRange(f,f)}catch{}}!d&&u&&((g=q(a,u.name,u.value))==null||g.focus({preventScroll:!0})),(v=t.querySelector("[data-layer-row], [data-feat-row]"))==null||v.setAttribute("tabindex","0"),a.querySelectorAll("img[data-basemap-thumb]").forEach(b=>{const E=()=>$t(b);b.addEventListener("error",E,{once:!0}),b.complete&&b.naturalWidth===0&&b.getAttribute("src")&&E()}),ht(e,t),r.bindAll()}function Ft(e,t,a,r){try{return St(e,t,r,i=>{xa(e,i),ha(e,i),ya(e,t,i),a.bindLinhasFeicao(i)})}catch(i){return console.warn("[UI-Camadas] atualização incremental falhou; redesenhando o painel.",i),!1}}const zt='[role="button"][tabindex]',X="[data-layer-row], [data-feat-row]",Bt=["color","range","checkbox","radio","button"];function Aa(e){return!e||!(e instanceof Element)||e instanceof HTMLInputElement&&Bt.includes(e.type)?!1:Ga.focoEmCampoDeTexto({composedPath:()=>[e]})}function Pt(e){return Array.from(e.querySelectorAll(X)).filter(t=>{const a=t.closest(".ui-children-container");return!(a&&a.style.display==="none")&&!t.classList.contains("ui-search-hidden")})}function j(e,t){t&&(e.querySelectorAll(X).forEach(a=>a.setAttribute("tabindex","-1")),t.setAttribute("tabindex","0"),t.focus())}function qt(e,t){e.dispatchEvent(new MouseEvent("click",{bubbles:!0,ctrlKey:t.ctrlKey||t.metaKey,shiftKey:t.shiftKey}))}function Dt(e,t,a){var i;if(Aa(a.composedPath()[0]))return;const r=t.querySelector(".confirming");if(r){a.preventDefault(),r.dispatchEvent(new Event("ui-cancelar-confirmacao")),r.classList.remove("confirming");return}if(e.activeSettingsLayerId){a.preventDefault();const o=e.activeSettingsLayerId;e.activeSettingsLayerId=null,e.solicitarRenderizacao(),(i=q(t,"data-layer-settings",o))==null||i.focus();return}e.selectedFeatureIds.size>0&&(a.preventDefault(),e.limparSelecao(!0))}function Tt(e,t,a,r){var s,c,l;const i=r.composedPath()[0];if(!(i instanceof HTMLElement)||Aa(i))return;if((r.key==="Enter"||r.key===" ")&&i.matches(zt)){r.preventDefault(),i.click();return}if(!i.matches(X))return;const o=Pt(t),n=o.indexOf(i);if(r.key==="F2"){r.preventDefault();const p=i.getAttribute("data-layer-row"),d=i.getAttribute("data-feat-row"),u=p?q(i,"data-layer-name-trigger",p):d?q(i,"data-feat-name-trigger",d):null;u&&u.dispatchEvent(new MouseEvent("dblclick",{bubbles:!0}));return}if((r.ctrlKey||r.metaKey)&&(r.key==="a"||r.key==="A")){r.preventDefault();const p=ze(e.camadas,e.feicoes,e.expandedLayers,e.searchQuery,void 0,e.expandedFeatureLimits);p.length>0&&e.selecionarFeicoes(p,!0);return}if(r.key==="Delete"){const p=a.getElementById("btn-footer-del");if(p&&!p.hasAttribute("disabled")&&e.selectedFeatureIds.size>0){r.preventDefault(),p.click();return}}switch(r.key){case"ArrowDown":r.preventDefault(),j(t,o[Math.min(o.length-1,n+1)]);break;case"ArrowUp":r.preventDefault(),j(t,o[Math.max(0,n-1)]);break;case"Home":r.preventDefault(),j(t,o[0]);break;case"End":r.preventDefault(),j(t,o[o.length-1]);break;case"ArrowRight":{const p=i.getAttribute("data-layer-row");if(!p)return;const d=i.closest(".ui-layer-group");(d==null?void 0:d.getAttribute("aria-expanded"))==="true"?n+1<o.length&&(d!=null&&d.contains(o[n+1]))&&(r.preventDefault(),j(t,o[n+1])):(r.preventDefault(),(s=q(a,"data-layer-expand",p))==null||s.click());break}case"ArrowLeft":{const p=i.getAttribute("data-layer-row");if(p){const f=i.closest(".ui-layer-group");if((f==null?void 0:f.getAttribute("aria-expanded"))==="true")r.preventDefault(),(c=q(a,"data-layer-expand",p))==null||c.click();else{const g=(l=f==null?void 0:f.parentElement)==null?void 0:l.closest(".ui-layer-group"),v=g==null?void 0:g.getAttribute("data-layer-id"),b=v?q(t,"data-layer-row",v):null;b&&(r.preventDefault(),j(t,b))}return}const d=i.getAttribute("data-feat-layer"),u=d?q(t,"data-layer-row",d):null;u&&(r.preventDefault(),j(t,u));break}case"Enter":case" ":r.preventDefault(),qt(i,r);break}}function Rt(e,t,a,r,i){i.add(t,"keydown",o=>{o.key==="Escape"&&Dt(e,a,o)}),i.add(r,"keydown",o=>Tt(e,r,a,o)),i.add(r,"focusin",o=>{const n=o.composedPath()[0];n instanceof HTMLElement&&n.matches(X)&&(r.querySelectorAll(X).forEach(s=>s.setAttribute("tabindex","-1")),n.setAttribute("tabindex","0"))})}function Ot(e,t,a,r,i){const o=ze(e.camadas,e.feicoes,e.expandedLayers,e.searchQuery,void 0,e.expandedFeatureLimits),n=!r&&!o.includes(t)&&e.feicoes.some(c=>c.id===t),s=sa(n?[...o,t]:o,e.selectedFeatureIds,e.lastClickedFeatureId,t,a,r);s&&(e.selectedFeatureIds=s.selecionados,e.lastClickedFeatureId=s.ultimoClicadoId,e.sincronizarSelecaoDOM(),i&&e.notificarMudancaSelecao())}function jt(e,t,a){const r=t||[];r.length===e.selectedFeatureIds.size&&r.every(n=>e.selectedFeatureIds.has(n))||(e.selectedFeatureIds.clear(),r.forEach(n=>e.selectedFeatureIds.add(n)),e.lastClickedFeatureId=r.length>0?r[r.length-1]:null,e.sincronizarSelecaoDOM(),a&&e.notificarMudancaSelecao())}function Nt(e,t){e.selectedFeatureIds.size!==0&&(e.selectedFeatureIds.clear(),e.lastClickedFeatureId=null,e.sincronizarSelecaoDOM(),t&&e.notificarMudancaSelecao())}function Ht(e){const t=e.feicoes.filter(a=>e.selectedFeatureIds.has(a.id));e.dispararEvento("ui-feicoes-selecionadas",{feicoesIds:Array.from(e.selectedFeatureIds),feicoes:t}),t.length===1?e.dispararEvento("ui-feicao-selecionada",{feicaoId:t[0].id,feicao:t[0]}):t.length===0&&e.dispararEvento("ui-feicao-selecionada",{feicaoId:null,feicao:null})}class Gt{constructor(t){A(this,"origens",new Map);A(this,"removidas",new Set);A(this,"salvarComDebounce",Xe(()=>this.salvar(),200));this.instantaneo=t}chaveAtual(){const t=this.instantaneo();return da(t.storageKey,t.id)}carregar(){return le(this.chaveAtual())}agendar(){this.salvarComDebounce()}salvar(){const t=this.instantaneo();if(!t.persistir||!t.conectado)return;const a=this.chaveAtual(),r=ga({estadoAnterior:le(a),origensCamadas:this.origens,camadas:t.camadas,expandedLayers:t.expandedLayers,camadaAtivaId:t.camadaAtivaId,painelColapsado:t.painelColapsado,mapaBaseAtivo:t.mapaBaseAtivo,densidade:t.densidade,altura:t.altura,camadasRemovidas:this.removidas});this.removidas.clear(),pa(a,r)}limpar(){fa(this.chaveAtual())}limparOrigens(){this.origens.clear()}registrarOrigem(t){this.origens.set(t.id,Be(t))}esquecerCamada(t){this.origens.delete(t),this.removidas.add(t)}reidratar(t,a,r){ma(t,a,r,this.origens)}}function Pe(e,t=null,a=new Set){const r=[];if(!Array.isArray(e))return r;for(const i of e){if(!i||typeof i!="object"||!i.id)continue;const o=String(i.id);if(a.has(o))continue;a.add(o);const n={...i,id:o};delete n.children,t&&n.parentId===void 0&&(n.parentId=t),r.push(n),Array.isArray(i.children)&&i.children.length>0&&r.push(...Pe(i.children,o,a))}return r}function Ea(e){const t=e.lastClickedFeatureId;t&&!e.feicoes.some(a=>a.id===t)&&(e.lastClickedFeatureId=null)}function Ia(e){if(!Array.isArray(e))return[];const t=new Set,a=[];for(const r of e){if(!r||typeof r!="object"||!r.id)continue;const i=String(r.id);t.has(i)||(t.add(i),a.push({...r,id:i}))}return a}function _t(e,t,a){if(e.camadas=Array.isArray(t)?Pe(t):[],e.lembranca.limparOrigens(),e.persistir){const o=e.lembranca.carregar();e.lembranca.reidratar(e.camadas,o,e.expandedLayers),o!=null&&o.camadaAtivaId&&e.camadas.some(n=>n.id===o.camadaAtivaId)&&(e.camadaAtivaId=o.camadaAtivaId)}else e.camadas.forEach(o=>{e.lembranca.registrarOrigem(o),e.expandedLayers.has(o.id)||e.expandedLayers.add(o.id)});if(Array.isArray(a)){e.feicoes=Ia(a);const o=new Set(e.camadas.map(s=>s.id)),n=e.feicoes.filter(s=>s.layerId&&!o.has(s.layerId));n.length>0&&console.warn(`[UI-Camadas] ${n.length} feição(ões) possuem 'layerId' não cadastrado nas camadas:`,n.map(s=>({id:s.id,nome:s.name,layerId:s.layerId}))),me(e.selectedFeatureIds,e.feicoes),Ea(e)}const r=new Set(e.camadas.map(o=>o.id));if(e.activeSettingsLayerId&&!r.has(e.activeSettingsLayerId)&&(e.activeSettingsLayerId=null),e.editingLayerId&&!r.has(e.editingLayerId)&&(e.editingLayerId=null),e.expandedFeatureLimits)for(const o of e.expandedFeatureLimits.keys())r.has(o)||e.expandedFeatureLimits.delete(o);const i=e.getAttribute("camada-ativa");e.camadas.length>0&&(!i||!r.has(i))&&(e.camadaAtivaId=e.camadas[0].id),e.salvarLembrancaEstado(),e.solicitarRenderizacao()}function Ut(e,t){const a=new Map(e.map(i=>[i.id,i])),r=new Set;for(const i of t){const o=a.get(i.id);(!o||!Wa(o,i))&&r.add(i.id)}return r}function Vt(e,t){const a=e.feicoes;e.feicoes=Ia(t);const r=e.selectedFeatureIds.size;me(e.selectedFeatureIds,e.feicoes),Ea(e),e.editingFeatureId&&!e.feicoes.some(i=>i.id===e.editingFeatureId)&&(e.editingFeatureId=null),e.solicitarAtualizacaoFeicoes({camadas:"todas",idsAlterados:Ut(a,e.feicoes),selecaoAfetada:e.selectedFeatureIds.size!==r})}function Yt(e,t){if(!t||!t.id)return;if(e.camadas.some(r=>r.id===t.id)){console.warn(`[UI-Camadas] adicionarCamada ignorado: já existe uma camada com id '${t.id}'.`);return}const a=new Set(e.camadas.map(r=>r.id));for(const r of Pe([t])){if(a.has(r.id)){console.warn(`[UI-Camadas] adicionarCamada: subcamada '${r.id}' ignorada, o id já existe.`);continue}a.add(r.id),e.camadas.push(r),e.lembranca.registrarOrigem(r),e.expandedLayers.add(r.id),r.parentId&&e.expandedLayers.add(r.parentId)}e.salvarLembrancaEstado(),e.solicitarRenderizacao()}function Kt(e,t){var a,r;e.camadas.forEach(i=>{i.parentId===t&&(i.parentId=null)}),e.camadas=e.camadas.filter(i=>i.id!==t),e.feicoes=e.feicoes.filter(i=>i.layerId!==t),e.lembranca.esquecerCamada(t),e.expandedLayers.delete(t),(a=e.expandedFeatureLimits)==null||a.delete(t),e.activeSettingsLayerId===t&&(e.activeSettingsLayerId=null),e.editingLayerId===t&&(e.editingLayerId=null),e.editingFeatureId&&!e.feicoes.some(i=>i.id===e.editingFeatureId)&&(e.editingFeatureId=null),me(e.selectedFeatureIds,e.feicoes),e.selectedFeatureIds.size===0&&(e.lastClickedFeatureId=null),e.camadaAtivaId===t&&(e.camadaAtivaId=((r=e.camadas[0])==null?void 0:r.id)??null),e.salvarLembrancaEstado(),e.solicitarRenderizacao()}function Qt(e,t){if(!(!t||!t.id)){if(e.feicoes.some(a=>a.id===t.id)){console.warn(`[UI-Camadas] adicionarFeicao ignorado: já existe uma feição com id '${t.id}'.`);return}e.feicoes.push({...t}),e.solicitarAtualizacaoFeicoes({camadas:new Set([t.layerId||""]),idsAlterados:new Set,selecaoAfetada:e.selectedFeatureIds.has(t.id)})}}function Xt(e,t){if(!t||typeof t!="object"||!t.id)return;const a=e.feicoes.findIndex(r=>r.id===t.id);if(a!==-1){const r=e.feicoes[a].layerId||"";e.feicoes[a]={...e.feicoes[a],...t},e.solicitarAtualizacaoFeicoes({camadas:new Set([r,e.feicoes[a].layerId||""]),idsAlterados:new Set([t.id]),selecaoAfetada:!1})}}function Wt(e,t){const a=e.feicoes.find(i=>i.id===t);e.feicoes=e.feicoes.filter(i=>i.id!==t);const r=e.selectedFeatureIds.delete(t);e.lastClickedFeatureId===t&&(e.lastClickedFeatureId=null),e.editingFeatureId===t&&(e.editingFeatureId=null),e.solicitarAtualizacaoFeicoes({camadas:new Set(a?[a.layerId||""]:[]),idsAlterados:new Set,selecaoAfetada:r})}function Jt(e){function r(){return e.getMinAltura?e.getMinAltura():140}function i(){return e.getMaxAltura?e.getMaxAltura():1600}function o(l,p=!1){if(l==null||l===""){e.hostElement.style.removeProperty("height"),e.hostElement.style.removeProperty("--ui-camadas-altura"),p&&e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionar-altura",{bubbles:!0,composed:!0,detail:{altura:null}}));return}const d=typeof l=="number"?l:parseFloat(String(l));if(isNaN(d))return;const u=Math.max(r(),Math.min(i(),Math.round(d)));e.hostElement.style.height=`${u}px`,e.hostElement.style.setProperty("--ui-camadas-altura",`${u}px`),p&&e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionar-altura",{bubbles:!0,composed:!0,detail:{altura:u}}))}let n=null;function s(){if(!e.resizerElement)return;let l=!1,p=0,d=0;const u=m=>{if(m.button!==0)return;m.preventDefault(),m.stopPropagation(),l=!0,p=m.clientY,d=e.hostElement.getBoundingClientRect().height,e.resizerElement.classList.add("ui-camadas-resizer--ativo"),e.hostElement.classList.add("ui-camadas--redimensionando");try{e.resizerElement.setPointerCapture(m.pointerId)}catch{}const g=E=>{if(!l)return;E.preventDefault();const C=E.clientY-p,$=Math.max(r(),Math.min(i(),Math.round(d+C)));e.hostElement.style.height=`${$}px`,e.hostElement.style.setProperty("--ui-camadas-altura",`${$}px`),e.onRedimensionando&&e.onRedimensionando($),e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionando-altura",{bubbles:!0,composed:!0,detail:{altura:$}}))},v=()=>{var E;l=!1,n=null,window.removeEventListener("pointermove",g),window.removeEventListener("pointerup",b),window.removeEventListener("pointercancel",b),(E=e.resizerElement)==null||E.classList.remove("ui-camadas-resizer--ativo"),e.hostElement.classList.remove("ui-camadas--redimensionando")},b=E=>{if(!l)return;l=!1,e.resizerElement.classList.remove("ui-camadas-resizer--ativo"),e.hostElement.classList.remove("ui-camadas--redimensionando");try{e.resizerElement.hasPointerCapture(E.pointerId)&&e.resizerElement.releasePointerCapture(E.pointerId)}catch{}window.removeEventListener("pointermove",g),window.removeEventListener("pointerup",b),window.removeEventListener("pointercancel",b);const C=e.hostElement.getBoundingClientRect().height,$=Math.round(C);e.onAlturaAlterada&&e.onAlturaAlterada($),e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionar-altura",{bubbles:!0,composed:!0,detail:{altura:$}}))};n=v,window.addEventListener("pointermove",g),window.addEventListener("pointerup",b),window.addEventListener("pointercancel",b)},f=m=>{m.preventDefault(),m.stopPropagation(),o(null,!0),e.onAlturaAlterada&&e.onAlturaAlterada(null)};e.listeners.add(e.resizerElement,"pointerdown",u),e.listeners.add(e.resizerElement,"dblclick",f)}function c(){n==null||n(),e.listeners.cleanup()}return{init:s,definirAltura:o,destruir:c}}const H=class H extends ue.SafeHTMLElement{constructor(){super();A(this,"shadow");A(this,"listeners",new Na.ListenerBag);A(this,"dragDropManager");A(this,"resizerController");A(this,"alturaCustomizada",null);A(this,"conectado",!1);A(this,"profundidadeLote",0);A(this,"renderPendente",!1);A(this,"mudancaFeicoes",null);A(this,"lembranca",new Gt(()=>({persistir:this.persistir,conectado:this.conectado,storageKey:this.storageKey,id:this.id,camadas:this.camadas,expandedLayers:this.expandedLayers,camadaAtivaId:this.camadaAtivaId,painelColapsado:this.colapsado,mapaBaseAtivo:this.mapaBaseAtivo,densidade:this.densidade,altura:this.alturaCustomizada})));A(this,"camadas",[]);A(this,"feicoes",[]);A(this,"mapasBase",[...Ce]);A(this,"expandedLayers",new Set);A(this,"expandedFeatureLimits",new Map);A(this,"selectedFeatureIds",new Set);A(this,"lastClickedFeatureId",null);A(this,"activeSettingsLayerId",null);A(this,"editingLayerId",null);A(this,"editingFeatureId",null);A(this,"searchQuery","");A(this,"corpoElement");A(this,"btnExpandirFlutuante");this.shadow=this.attachShadow({mode:"open"}),this.shadow.innerHTML=`
304
- <style>${rt}</style>
300
+ `,a.scrollTop=c;const m=t.getElementById("ui-layer-tree-mount");if(m&&(m.scrollTop=l),p){const g=t.getElementById(p);if(g&&(g.focus({preventScroll:!0}),f!==null&&typeof g.setSelectionRange=="function"))try{g.setSelectionRange(f,f)}catch{}}!p&&d&&((h=D(a,d.name,d.value))==null||h.focus({preventScroll:!0})),(v=t.querySelector("[data-layer-row], [data-feat-row]"))==null||v.setAttribute("tabindex","0"),a.querySelectorAll("img[data-basemap-thumb]").forEach(g=>{const w=()=>Gt(g);g.addEventListener("error",w,{once:!0}),g.complete&&g.naturalWidth===0&&g.getAttribute("src")&&w()}),Pt(e,t),r.bindAll()}function Ut(e,t,a,r){try{return Ht(e,t,r,i=>{Sa(e,i),La(e,i),Ca(e,t,i),a.bindLinhasFeicao(i)})}catch(i){return console.warn("[UI-Camadas] atualização incremental falhou; redesenhando o painel.",i),!1}}const Vt='[role="button"][tabindex]',ee="[data-layer-row], [data-feat-row]",Yt=["color","range","checkbox","radio","button"];function $a(e){return!e||!(e instanceof Element)||e instanceof HTMLInputElement&&Yt.includes(e.type)?!1:Wa.focoEmCampoDeTexto({composedPath:()=>[e]})}function Kt(e){return Array.from(e.querySelectorAll(ee)).filter(t=>{const a=t.closest(".ui-children-container");return!(a&&a.style.display==="none")&&!t.classList.contains("ui-search-hidden")})}function _(e,t){t&&(e.querySelectorAll(ee).forEach(a=>a.setAttribute("tabindex","-1")),t.setAttribute("tabindex","0"),t.focus())}function Qt(e,t){e.dispatchEvent(new MouseEvent("click",{bubbles:!0,ctrlKey:t.ctrlKey||t.metaKey,shiftKey:t.shiftKey}))}function Xt(e,t,a){var i;if($a(a.composedPath()[0]))return;const r=t.querySelector(".confirming");if(r){a.preventDefault(),r.dispatchEvent(new Event("ui-cancelar-confirmacao")),r.classList.remove("confirming");return}if(e.activeSettingsLayerId){a.preventDefault();const o=e.activeSettingsLayerId;e.activeSettingsLayerId=null,e.solicitarRenderizacao(),(i=D(t,"data-layer-settings",o))==null||i.focus();return}e.selectedFeatureIds.size>0&&(a.preventDefault(),e.limparSelecao(!0))}function Wt(e,t,a,r){var s,c,l;const i=r.composedPath()[0];if(!(i instanceof HTMLElement)||$a(i))return;if((r.key==="Enter"||r.key===" ")&&i.matches(Vt)){r.preventDefault(),i.click();return}if(!i.matches(ee))return;const o=Kt(t),n=o.indexOf(i);if(r.key==="F2"){r.preventDefault();const u=i.getAttribute("data-layer-row"),p=i.getAttribute("data-feat-row"),d=u?D(i,"data-layer-name-trigger",u):p?D(i,"data-feat-name-trigger",p):null;d&&d.dispatchEvent(new MouseEvent("dblclick",{bubbles:!0}));return}if((r.ctrlKey||r.metaKey)&&(r.key==="a"||r.key==="A")){r.preventDefault();const u=Re(e.camadas,e.feicoes,e.expandedLayers,e.searchQuery,void 0,e.expandedFeatureLimits);u.length>0&&e.selecionarFeicoes(u,!0);return}if(r.key==="Delete"){const u=a.getElementById("btn-footer-del");if(u&&!u.hasAttribute("disabled")&&e.selectedFeatureIds.size>0){r.preventDefault(),u.click();return}}switch(r.key){case"ArrowDown":r.preventDefault(),_(t,o[Math.min(o.length-1,n+1)]);break;case"ArrowUp":r.preventDefault(),_(t,o[Math.max(0,n-1)]);break;case"Home":r.preventDefault(),_(t,o[0]);break;case"End":r.preventDefault(),_(t,o[o.length-1]);break;case"ArrowRight":{const u=i.getAttribute("data-layer-row");if(!u)return;const p=i.closest(".ui-layer-group");(p==null?void 0:p.getAttribute("aria-expanded"))==="true"?n+1<o.length&&(p!=null&&p.contains(o[n+1]))&&(r.preventDefault(),_(t,o[n+1])):(r.preventDefault(),(s=D(a,"data-layer-expand",u))==null||s.click());break}case"ArrowLeft":{const u=i.getAttribute("data-layer-row");if(u){const f=i.closest(".ui-layer-group");if((f==null?void 0:f.getAttribute("aria-expanded"))==="true")r.preventDefault(),(c=D(a,"data-layer-expand",u))==null||c.click();else{const h=(l=f==null?void 0:f.parentElement)==null?void 0:l.closest(".ui-layer-group"),v=h==null?void 0:h.getAttribute("data-layer-id"),g=v?D(t,"data-layer-row",v):null;g&&(r.preventDefault(),_(t,g))}return}const p=i.getAttribute("data-feat-layer"),d=p?D(t,"data-layer-row",p):null;d&&(r.preventDefault(),_(t,d));break}case"Enter":case" ":r.preventDefault(),Qt(i,r);break}}function Jt(e,t,a,r,i){i.add(t,"keydown",o=>{o.key==="Escape"&&Xt(e,a,o)}),i.add(r,"keydown",o=>Wt(e,r,a,o)),i.add(r,"focusin",o=>{const n=o.composedPath()[0];n instanceof HTMLElement&&n.matches(ee)&&(r.querySelectorAll(ee).forEach(s=>s.setAttribute("tabindex","-1")),n.setAttribute("tabindex","0"))})}function Zt(e,t,a,r,i){const o=Re(e.camadas,e.feicoes,e.expandedLayers,e.searchQuery,void 0,e.expandedFeatureLimits),n=!r&&!o.includes(t)&&e.feicoes.some(c=>c.id===t),s=ga(n?[...o,t]:o,e.selectedFeatureIds,e.lastClickedFeatureId,t,a,r);s&&(e.selectedFeatureIds=s.selecionados,e.lastClickedFeatureId=s.ultimoClicadoId,e.sincronizarSelecaoDOM(),i&&e.notificarMudancaSelecao())}function er(e,t,a){const r=t||[];r.length===e.selectedFeatureIds.size&&r.every(n=>e.selectedFeatureIds.has(n))||(e.selectedFeatureIds.clear(),r.forEach(n=>e.selectedFeatureIds.add(n)),e.lastClickedFeatureId=r.length>0?r[r.length-1]:null,e.sincronizarSelecaoDOM(),a&&e.notificarMudancaSelecao())}function ar(e,t){e.selectedFeatureIds.size!==0&&(e.selectedFeatureIds.clear(),e.lastClickedFeatureId=null,e.sincronizarSelecaoDOM(),t&&e.notificarMudancaSelecao())}function tr(e){const t=e.feicoes.filter(a=>e.selectedFeatureIds.has(a.id));e.dispararEvento("ui-feicoes-selecionadas",{feicoesIds:Array.from(e.selectedFeatureIds),feicoes:t}),t.length===1?e.dispararEvento("ui-feicao-selecionada",{feicaoId:t[0].id,feicao:t[0]}):t.length===0&&e.dispararEvento("ui-feicao-selecionada",{feicaoId:null,feicao:null})}class rr{constructor(t){I(this,"origens",new Map);I(this,"removidas",new Set);I(this,"salvarComDebounce",ia(()=>this.salvar(),200));this.instantaneo=t}chaveAtual(){const t=this.instantaneo();return ba(t.storageKey,t.id)}carregar(){return fe(this.chaveAtual())}agendar(){this.salvarComDebounce()}salvar(){const t=this.instantaneo();if(!t.persistir||!t.conectado)return;const a=this.chaveAtual(),r=Ea({estadoAnterior:fe(a),origensCamadas:this.origens,camadas:t.camadas,expandedLayers:t.expandedLayers,camadaAtivaId:t.camadaAtivaId,painelColapsado:t.painelColapsado,mapaBaseAtivo:t.mapaBaseAtivo,densidade:t.densidade,altura:t.altura,camadasRemovidas:this.removidas,ordemFilhosPorPai:t.ordemFilhosPorPai});this.removidas.clear(),xa(a,r)}limpar(){wa(this.chaveAtual())}limparOrigens(){this.origens.clear()}registrarOrigem(t){this.origens.set(t.id,je(t))}esquecerCamada(t){this.origens.delete(t),this.removidas.add(t)}reidratar(t,a,r,i){if(Aa(t,a,r,this.origens),i&&(i.clear(),a!=null&&a.ordemFilhosPorPai))for(const[o,n]of Object.entries(a.ordemFilhosPorPai))Array.isArray(n)&&n.length>0&&i.set(o,[...n])}}function Ne(e,t=null,a=new Set){const r=[];if(!Array.isArray(e))return r;for(const i of e){if(!i||typeof i!="object"||!i.id)continue;const o=String(i.id);if(a.has(o))continue;a.add(o);const n={...i,id:o};delete n.children,t&&n.parentId===void 0&&(n.parentId=t),r.push(n),Array.isArray(i.children)&&i.children.length>0&&r.push(...Ne(i.children,o,a))}return r}function Ma(e){const t=e.lastClickedFeatureId;t&&!e.feicoes.some(a=>a.id===t)&&(e.lastClickedFeatureId=null)}function Pa(e){if(!Array.isArray(e))return[];const t=new Set,a=[];for(const r of e){if(!r||typeof r!="object"||!r.id)continue;const i=String(r.id);t.has(i)||(t.add(i),a.push({...r,id:i}))}return a}function ir(e,t,a){if(e.camadas=Array.isArray(t)?Ne(t):[],e.lembranca.limparOrigens(),e.persistir){const o=e.lembranca.carregar();e.lembranca.reidratar(e.camadas,o,e.expandedLayers,e.ordemFilhosPorPai),o!=null&&o.camadaAtivaId&&e.camadas.some(n=>n.id===o.camadaAtivaId)&&(e.camadaAtivaId=o.camadaAtivaId)}else e.camadas.forEach(o=>{e.lembranca.registrarOrigem(o),e.expandedLayers.has(o.id)||e.expandedLayers.add(o.id)});if(Array.isArray(a)){e.feicoes=Pa(a);const o=new Set(e.camadas.map(s=>s.id)),n=e.feicoes.filter(s=>s.layerId&&!o.has(s.layerId));n.length>0&&console.warn(`[UI-Camadas] ${n.length} feição(ões) possuem 'layerId' não cadastrado nas camadas:`,n.map(s=>({id:s.id,nome:s.name,layerId:s.layerId}))),ye(e.selectedFeatureIds,e.feicoes),Ma(e)}const r=new Set(e.camadas.map(o=>o.id));if(e.activeSettingsLayerId&&!r.has(e.activeSettingsLayerId)&&(e.activeSettingsLayerId=null),e.editingLayerId&&!r.has(e.editingLayerId)&&(e.editingLayerId=null),e.expandedFeatureLimits)for(const o of e.expandedFeatureLimits.keys())r.has(o)||e.expandedFeatureLimits.delete(o);const i=e.getAttribute("camada-ativa");e.camadas.length>0&&(!i||!r.has(i))&&(e.camadaAtivaId=e.camadas[0].id),e.salvarLembrancaEstado(),e.solicitarRenderizacao()}function or(e,t){const a=new Map(e.map(i=>[i.id,i])),r=new Set;for(const i of t){const o=a.get(i.id);(!o||!ot(o,i))&&r.add(i.id)}return r}function nr(e,t){const a=e.feicoes;e.feicoes=Pa(t);const r=e.selectedFeatureIds.size;ye(e.selectedFeatureIds,e.feicoes),Ma(e),e.editingFeatureId&&!e.feicoes.some(i=>i.id===e.editingFeatureId)&&(e.editingFeatureId=null),e.solicitarAtualizacaoFeicoes({camadas:"todas",idsAlterados:or(a,e.feicoes),selecaoAfetada:e.selectedFeatureIds.size!==r})}function sr(e,t){if(!t||!t.id)return;if(e.camadas.some(r=>r.id===t.id)){console.warn(`[UI-Camadas] adicionarCamada ignorado: já existe uma camada com id '${t.id}'.`);return}const a=new Set(e.camadas.map(r=>r.id));for(const r of Ne([t])){if(a.has(r.id)){console.warn(`[UI-Camadas] adicionarCamada: subcamada '${r.id}' ignorada, o id já existe.`);continue}a.add(r.id),e.camadas.push(r),e.lembranca.registrarOrigem(r),e.expandedLayers.add(r.id),r.parentId&&e.expandedLayers.add(r.parentId)}e.salvarLembrancaEstado(),e.solicitarRenderizacao()}function lr(e,t){var r,i;const a=e.camadas.find(o=>o.id===t);e.camadas.forEach(o=>{o.parentId===t&&(o.parentId=null)}),e.camadas=e.camadas.filter(o=>o.id!==t),e.feicoes=e.feicoes.filter(o=>o.layerId!==t),e.ordemFilhosPorPai&&(e.ordemFilhosPorPai.delete(t),a!=null&&a.parentId&&U(e.ordemFilhosPorPai,a.parentId,R(t))),e.lembranca.esquecerCamada(t),e.expandedLayers.delete(t),(r=e.expandedFeatureLimits)==null||r.delete(t),e.activeSettingsLayerId===t&&(e.activeSettingsLayerId=null),e.editingLayerId===t&&(e.editingLayerId=null),e.editingFeatureId&&!e.feicoes.some(o=>o.id===e.editingFeatureId)&&(e.editingFeatureId=null),ye(e.selectedFeatureIds,e.feicoes),e.selectedFeatureIds.size===0&&(e.lastClickedFeatureId=null),e.camadaAtivaId===t&&(e.camadaAtivaId=((i=e.camadas[0])==null?void 0:i.id)??null),e.salvarLembrancaEstado(),e.solicitarRenderizacao()}function cr(e,t){if(!(!t||!t.id)){if(e.feicoes.some(a=>a.id===t.id)){console.warn(`[UI-Camadas] adicionarFeicao ignorado: já existe uma feição com id '${t.id}'.`);return}e.feicoes.push({...t}),e.solicitarAtualizacaoFeicoes({camadas:new Set([t.layerId||""]),idsAlterados:new Set,selecaoAfetada:e.selectedFeatureIds.has(t.id)})}}function dr(e,t){if(!t||typeof t!="object"||!t.id)return;const a=e.feicoes.findIndex(r=>r.id===t.id);if(a!==-1){const r=e.feicoes[a].layerId||"";e.feicoes[a]={...e.feicoes[a],...t},e.solicitarAtualizacaoFeicoes({camadas:new Set([r,e.feicoes[a].layerId||""]),idsAlterados:new Set([t.id]),selecaoAfetada:!1})}}function ur(e,t){const a=e.feicoes.find(i=>i.id===t);e.feicoes=e.feicoes.filter(i=>i.id!==t),a!=null&&a.layerId&&e.ordemFilhosPorPai&&U(e.ordemFilhosPorPai,a.layerId,O(t));const r=e.selectedFeatureIds.delete(t);e.lastClickedFeatureId===t&&(e.lastClickedFeatureId=null),e.editingFeatureId===t&&(e.editingFeatureId=null),e.solicitarAtualizacaoFeicoes({camadas:new Set(a?[a.layerId||""]:[]),idsAlterados:new Set,selecaoAfetada:r})}function pr(e){function r(){return e.getMinAltura?e.getMinAltura():140}function i(){return e.getMaxAltura?e.getMaxAltura():1600}function o(l,u=!1){if(l==null||l===""){e.hostElement.style.removeProperty("height"),e.hostElement.style.removeProperty("--ui-camadas-altura"),u&&e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionar-altura",{bubbles:!0,composed:!0,detail:{altura:null}}));return}const p=typeof l=="number"?l:parseFloat(String(l));if(isNaN(p))return;const d=Math.max(r(),Math.min(i(),Math.round(p)));e.hostElement.style.height=`${d}px`,e.hostElement.style.setProperty("--ui-camadas-altura",`${d}px`),u&&e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionar-altura",{bubbles:!0,composed:!0,detail:{altura:d}}))}let n=null;function s(){if(!e.resizerElement)return;let l=!1,u=0,p=0;const d=m=>{if(m.button!==0)return;m.preventDefault(),m.stopPropagation(),l=!0,u=m.clientY,p=e.hostElement.getBoundingClientRect().height,e.resizerElement.classList.add("ui-camadas-resizer--ativo"),e.hostElement.classList.add("ui-camadas--redimensionando");try{e.resizerElement.setPointerCapture(m.pointerId)}catch{}const h=w=>{if(!l)return;w.preventDefault();const k=w.clientY-u,L=Math.max(r(),Math.min(i(),Math.round(p+k)));e.hostElement.style.height=`${L}px`,e.hostElement.style.setProperty("--ui-camadas-altura",`${L}px`),e.onRedimensionando&&e.onRedimensionando(L),e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionando-altura",{bubbles:!0,composed:!0,detail:{altura:L}}))},v=()=>{var w;l=!1,n=null,window.removeEventListener("pointermove",h),window.removeEventListener("pointerup",g),window.removeEventListener("pointercancel",g),(w=e.resizerElement)==null||w.classList.remove("ui-camadas-resizer--ativo"),e.hostElement.classList.remove("ui-camadas--redimensionando")},g=w=>{if(!l)return;l=!1,e.resizerElement.classList.remove("ui-camadas-resizer--ativo"),e.hostElement.classList.remove("ui-camadas--redimensionando");try{e.resizerElement.hasPointerCapture(w.pointerId)&&e.resizerElement.releasePointerCapture(w.pointerId)}catch{}window.removeEventListener("pointermove",h),window.removeEventListener("pointerup",g),window.removeEventListener("pointercancel",g);const k=e.hostElement.getBoundingClientRect().height,L=Math.round(k);e.onAlturaAlterada&&e.onAlturaAlterada(L),e.hostElement.dispatchEvent(new CustomEvent("ui-redimensionar-altura",{bubbles:!0,composed:!0,detail:{altura:L}}))};n=v,window.addEventListener("pointermove",h),window.addEventListener("pointerup",g),window.addEventListener("pointercancel",g)},f=m=>{m.preventDefault(),m.stopPropagation(),o(null,!0),e.onAlturaAlterada&&e.onAlturaAlterada(null)};e.listeners.add(e.resizerElement,"pointerdown",d),e.listeners.add(e.resizerElement,"dblclick",f)}function c(){n==null||n(),e.listeners.cleanup()}return{init:s,definirAltura:o,destruir:c}}const Y=class Y extends he.SafeHTMLElement{constructor(){super();I(this,"shadow");I(this,"listeners",new Qa.ListenerBag);I(this,"dragDropManager");I(this,"resizerController");I(this,"alturaCustomizada",null);I(this,"conectado",!1);I(this,"profundidadeLote",0);I(this,"renderPendente",!1);I(this,"mudancaFeicoes",null);I(this,"lembranca",new rr(()=>({persistir:this.persistir,conectado:this.conectado,storageKey:this.storageKey,id:this.id,camadas:this.camadas,expandedLayers:this.expandedLayers,camadaAtivaId:this.camadaAtivaId,painelColapsado:this.colapsado,mapaBaseAtivo:this.mapaBaseAtivo,densidade:this.densidade,altura:this.alturaCustomizada,ordemFilhosPorPai:this.ordemFilhosPorPai})));I(this,"camadas",[]);I(this,"feicoes",[]);I(this,"mapasBase",[...ze]);I(this,"expandedLayers",new Set);I(this,"expandedFeatureLimits",new Map);I(this,"ordemFilhosPorPai",new Map);I(this,"selectedFeatureIds",new Set);I(this,"lastClickedFeatureId",null);I(this,"activeSettingsLayerId",null);I(this,"editingLayerId",null);I(this,"editingFeatureId",null);I(this,"searchQuery","");I(this,"corpoElement");I(this,"btnExpandirFlutuante");this.shadow=this.attachShadow({mode:"open"}),this.shadow.innerHTML=`
301
+ <style>${vt}</style>
305
302
  <div class="ui-camadas-container" id="panel-container" part="base" role="region" aria-label="Painel de Camadas">
306
303
  <div class="ui-camadas-corpo" id="painel-corpo" part="corpo"></div>
307
304
  <div class="ui-camadas-resizer-altura" id="resizer-altura" part="resizer" title="Arraste para redimensionar a altura (duplo-clique para resetar)" aria-label="Redimensionar altura">
@@ -309,6 +306,6 @@
309
306
  </div>
310
307
  </div>
311
308
  <button class="ui-camadas-toggle-flutuante" id="btn-expandir-flutuante" part="botao-expandir" title="Expandir Painel de Camadas" aria-label="Expandir Painel de Camadas">
312
- ${y.camadas}
309
+ ${b.camadas}
313
310
  </button>
314
- `,this.corpoElement=this.shadow.getElementById("painel-corpo"),this.btnExpandirFlutuante=this.shadow.getElementById("btn-expandir-flutuante"),this.dragDropManager=new ca(this,this.shadow);const a=this.shadow.getElementById("resizer-altura");this.resizerController=Jt({hostElement:this,resizerElement:a,listeners:this.listeners,getMinAltura:()=>{const r=this.getAttribute("min-altura");return r&&parseFloat(r)||140},getMaxAltura:()=>{const r=this.getAttribute("max-altura");return r&&parseFloat(r)||1600},onAlturaAlterada:r=>{this.alturaCustomizada=r,this.salvarLembrancaEstado()}})}static get observedAttributes(){return["titulo","mapa-base-ativo","camada-ativa","aba-ativa","colapsavel","colapsado","flutuante","mostrar-mapas-base","mapas-base-recolhido","mostrar-rodape","mostrar-busca","densidade","persistir","storage-key","redimensionavel","redimensionavel-altura","altura","min-altura","max-altura",...ie.ATRIBUTOS_DEGRADE]}connectedCallback(){if(this.persistir){const a=le(this.obterChaveStorageAtual());a&&(a.painelColapsado===!0&&!this.hasAttribute("colapsado")&&(this.colapsado=!0),a.camadaAtivaId&&!this.getAttribute("camada-ativa")&&(this.camadaAtivaId=a.camadaAtivaId),a.mapaBaseAtivo&&!this.getAttribute("mapa-base-ativo")&&(this.mapaBaseAtivo=a.mapaBaseAtivo),a.densidade&&!this.getAttribute("densidade")&&(this.densidade=a.densidade),typeof a.altura=="number"&&!this.getAttribute("altura")&&!this.style.height&&(this.resizerController.definirAltura(a.altura,!1),this.alturaCustomizada=a.altura))}this.hasAttribute("altura")&&this.resizerController.definirAltura(this.getAttribute("altura"),!1),this.persistir&&!this.storageKey&&!this.id&&(H.instanciasChavePadrao.size>0&&console.warn("[UI-Camadas] Mais de um painel sem 'id' nem 'storage-key' divide a mesma chave de persistência e um sobrescreve o estado do outro. Defina 'storage-key' (ou 'id') em cada um."),H.instanciasChavePadrao.add(this)),this.resizerController.init(),ie.aplicarDegradeNoElemento(this,this.shadow.getElementById("panel-container")),this.render(),this.conectarEventosGerais(),Rt(this,this,this.shadow,this.corpoElement,this.listeners),this.conectado=!0,this.camadas.length>0&&this.salvarLembrancaEstado()}disconnectedCallback(){var a,r;this.conectado=!1,H.instanciasChavePadrao.delete(this),(a=this.resizerController)==null||a.destruir(),(r=this.dragDropManager)==null||r.destruir(),ft(this),this.listeners.cleanup()}attributeChangedCallback(a,r,i){var o,n;if(r!==i){if(ie.ehAtributoDegrade(a)){ie.aplicarDegradeNoElemento(this,this.shadow.getElementById("panel-container"));return}a==="colapsado"?this.salvarLembrancaEstado():a==="camada-ativa"?(this.sincronizarCamadaAtivaDOM(),this.salvarLembrancaEstado()):a==="densidade"?this.salvarLembrancaEstado():a==="mapa-base-ativo"?i&&this.marcarMapaBaseAtivoNoDOM(i):a==="titulo"||a==="mostrar-mapas-base"||a==="mapas-base-recolhido"||a==="mostrar-rodape"||a==="mostrar-busca"||a==="colapsavel"||a==="flutuante"?this.solicitarRenderizacao():a==="altura"?(o=this.resizerController)==null||o.definirAltura(i,!1):(a==="min-altura"||a==="max-altura")&&this.alturaCustomizada!==null&&((n=this.resizerController)==null||n.definirAltura(this.alturaCustomizada,!1))}}get titulo(){return this.getAttribute("titulo")||"Camadas"}set titulo(a){this.setAttribute("titulo",a)}get camadaAtivaId(){var a;return this.getAttribute("camada-ativa")||(((a=this.camadas[0])==null?void 0:a.id)??null)}set camadaAtivaId(a){a?this.setAttribute("camada-ativa",a):this.removeAttribute("camada-ativa")}get mapaBaseAtivo(){return this.getAttribute("mapa-base-ativo")||"satelite"}set mapaBaseAtivo(a){this.setAttribute("mapa-base-ativo",a)}selecionarMapaBase(a,r=!1){!a||this.mapaBaseAtivo===a||(this.mapaBaseAtivo=a,this.marcarMapaBaseAtivoNoDOM(a),this.salvarLembrancaEstado(),r&&this.dispararEvento("ui-mapa-base-alterado",{mapaBaseId:a}))}marcarMapaBaseAtivoNoDOM(a){this.shadow.querySelectorAll("[data-basemap-id]").forEach(i=>{const o=i.getAttribute("data-basemap-id")===a;i.classList.toggle("active",o),i.setAttribute("aria-pressed",String(o))});const r=this.shadow.querySelector("[data-basemap-atual]");r&&(r.textContent=Le(this.mapasBase,a))}get mapasBaseRecolhido(){return this.hasAttribute("mapas-base-recolhido")}set mapasBaseRecolhido(a){a?this.setAttribute("mapas-base-recolhido",""):this.removeAttribute("mapas-base-recolhido")}alternarMapasBaseRecolhido(a=!1){this.mapasBaseRecolhido=!this.mapasBaseRecolhido,a&&this.dispararEvento("ui-mapas-base-recolhimento",{recolhido:this.mapasBaseRecolhido})}get abaAtiva(){return this.getAttribute("aba-ativa")||"camadas"}set abaAtiva(a){this.setAttribute("aba-ativa",a)}get colapsado(){return this.hasAttribute("colapsado")}set colapsado(a){a?this.setAttribute("colapsado",""):this.removeAttribute("colapsado")}get colapsavel(){return this.getAttribute("colapsavel")!=="false"}set colapsavel(a){this.setAttribute("colapsavel",String(a))}get flutuante(){return this.hasAttribute("flutuante")}set flutuante(a){a?this.setAttribute("flutuante",""):this.removeAttribute("flutuante")}get densidade(){return this.getAttribute("densidade")||"normal"}set densidade(a){this.setAttribute("densidade",a)}get mostrarMapasBase(){return this.getAttribute("mostrar-mapas-base")!=="false"}set mostrarMapasBase(a){this.setAttribute("mostrar-mapas-base",String(a))}get mostrarRodape(){return this.getAttribute("mostrar-rodape")!=="false"}set mostrarRodape(a){this.setAttribute("mostrar-rodape",String(a))}get mostrarBusca(){return this.getAttribute("mostrar-busca")!=="false"}set mostrarBusca(a){this.setAttribute("mostrar-busca",String(a))}get persistir(){return this.getAttribute("persistir")!=="false"}set persistir(a){this.setAttribute("persistir",String(a))}get storageKey(){return this.getAttribute("storage-key")}set storageKey(a){a?this.setAttribute("storage-key",a):this.removeAttribute("storage-key")}get redimensionavel(){return this.hasAttribute("redimensionavel")||this.hasAttribute("redimensionavel-altura")}set redimensionavel(a){a?this.setAttribute("redimensionavel",""):(this.removeAttribute("redimensionavel"),this.removeAttribute("redimensionavel-altura"))}get altura(){return this.getAttribute("altura")||this.style.height||null}set altura(a){a!=null?(this.setAttribute("altura",String(a)),this.definirAltura(a)):(this.removeAttribute("altura"),this.definirAltura(null))}definirAltura(a,r=!0){var o;(o=this.resizerController)==null||o.definirAltura(a,!1);const i=a!==null?parseFloat(String(a)):null;this.alturaCustomizada=isNaN(i)?null:i,r&&this.salvarLembrancaEstado()}obterChaveStorageAtual(){return this.lembranca.chaveAtual()}agendarSalvarLembranca(){this.lembranca.agendar()}salvarLembrancaEstado(){this.lembranca.salvar()}limparLembranca(){this.expandedFeatureLimits.clear(),this.lembranca.limpar()}get layers(){return this.camadas}set layers(a){this.definirCamadas(a)}get features(){return this.feicoes}set features(a){this.definirFeicoes(a)}get basemaps(){return this.mapasBase}set basemaps(a){this.definirMapasBase(a)}definirCamadas(a,r){_t(this,a,r)}definirFeicoes(a){Vt(this,a)}definirMapasBase(a){this.mapasBase=Array.isArray(a)?[...a]:[],this.solicitarRenderizacao()}definirCamadaAtiva(a,r=!1){!a||this.camadaAtivaId===a||(this.camadaAtivaId=a,this.sincronizarCamadaAtivaDOM(),this.salvarLembrancaEstado(),r&&this.dispararEvento("ui-camada-selecionada",{camadaId:a,camada:this.camadas.find(i=>i.id===a)}))}obterCamada(a){return this.camadas.find(r=>r.id===a)}obterCamadaAtiva(){return this.camadas.find(a=>a.id===this.camadaAtivaId)}obterFeicao(a){return this.feicoes.find(r=>r.id===a)}obterFeicoesSelecionadas(){return this.feicoes.filter(a=>this.selectedFeatureIds.has(a.id))}adicionarCamada(a){Yt(this,a)}removerCamada(a){Kt(this,a)}adicionarFeicao(a){Qt(this,a)}atualizarFeicao(a){Xt(this,a)}removerFeicao(a){Wt(this,a)}selecionarFeicao(a,r=!1,i=!1,o=!1){Ot(this,a,r,i,o)}selecionarFeicoes(a,r=!1){jt(this,a,r)}limparSelecao(a=!1){Nt(this,a)}expandirTodas(){this.expandedLayers=new Set(this.camadas.map(a=>a.id)),this.salvarLembrancaEstado(),this.solicitarRenderizacao()}colapsarTodas(){this.expandedLayers.clear(),this.salvarLembrancaEstado(),this.solicitarRenderizacao()}alternarExpansao(a){a&&(this.expandedLayers.has(a)?this.expandedLayers.delete(a):this.expandedLayers.add(a),this.salvarLembrancaEstado(),this.solicitarRenderizacao())}incrementarLimiteFeicoes(a){if(!a)return;const r=this.expandedFeatureLimits.get(a)??80;this.expandedFeatureLimits.set(a,r+80),this.solicitarRenderizacao()}alternarVisibilidadeTodas(a=!1){const i=!this.camadas.some(o=>o.visible!==!1);this.camadas.forEach(o=>{o.visible=i,a&&this.dispararEvento("ui-camada-visibilidade",{camadaId:o.id,visivel:i})}),this.salvarLembrancaEstado(),this.solicitarRenderizacao()}colapsar(a=!1){this.definirColapso(!0,a)}expandir(a=!1){this.definirColapso(!1,a)}alternarColapso(a=!1){this.definirColapso(!this.colapsado,a)}definirColapso(a,r){this.colapsado!==a&&(this.colapsado=a,r&&this.dispararEvento("ui-colapso-alterado",{colapsado:a}))}solicitarRenderizacao(){if(this.profundidadeLote>0){this.renderPendente=!0;return}this.render()}solicitarAtualizacaoFeicoes(a){if(this.profundidadeLote>0){this.renderPendente=!0;return}this.mudancaFeicoes=a,this.render()}emLote(a){this.profundidadeLote++;try{a()}finally{this.profundidadeLote--,this.profundidadeLote===0&&this.renderPendente&&(this.renderPendente=!1,this.render())}}dispararEvento(a,r){this.dispatchEvent(new CustomEvent(a,{detail:r,bubbles:!0,composed:!0}))}render(){const a=this.mudancaFeicoes;this.mudancaFeicoes=null,this.corpoElement&&(a&&Ft(this,this.shadow,this.dragDropManager,a)||Mt(this,this.shadow,this.corpoElement,this.dragDropManager))}conectarEventosGerais(){this.listeners.add(this.btnExpandirFlutuante,"click",()=>this.expandir(!0))}sincronizarCamadaAtivaDOM(){it(this,this.shadow)}sincronizarSelecaoDOM(){ot(this,this.shadow)}notificarMudancaSelecao(){Ht(this)}};A(H,"instanciasChavePadrao",new Set);let U=H;class ka extends U{}class Ca extends U{}ue.definirCustomElement("ui-camadas",U);ue.definirCustomElement("ui-painel-camadas",ka);ue.definirCustomElement("ui-layer-panel",Ca);function Zt(e){var t;return{id:e.id,name:e.nome||e.id,color:((t=e.estilo)==null?void 0:t.corPrimaria)||"#00E08A",visible:e.visivel!==!1,locked:e.bloqueada===!0,opacity:typeof e.opacidade=="number"?e.opacidade:1,order:e.zIndex,description:e.categoria?`Categoria: ${e.categoria}`:void 0,categoria:e.categoria,tipo:e.tipo,estilo:e.estilo,dados:e.dados}}function er(e,t="levantamento",a="feicoes"){return{id:e.id,nome:e.name,categoria:e.categoria||t,tipo:e.tipo||a,visivel:e.visible!==!1,opacidade:typeof e.opacity=="number"?e.opacity:1,zIndex:typeof e.order=="number"?e.order:500,bloqueada:e.locked===!0,interativo:!0,estilo:{corPrimaria:e.color||"#00E08A",scaleMode:"screen",...typeof e.estilo=="object"&&e.estilo!==null?e.estilo:{}},dados:typeof e.dados=="object"&&e.dados!==null?e.dados:void 0}}function ar(e,t=""){var o,n,s,c;const a=((o=e.geometria)==null?void 0:o.tipo)||((n=e.geometria)==null?void 0:n.type)||e.tipo||e.type||"Polygon",r=((s=e.geometria)==null?void 0:s.coordenadas)||((c=e.geometria)==null?void 0:c.coordinates)||e.coordinates,i=e.cor||e.color;return{id:String(e.id),name:e.nome||e.name||`Feição ${e.id}`,layerId:e.layerId||e.camadaId||t,type:a,geometryType:a,coordinates:r,color:i,visible:e.visivel!==void 0?e.visivel:e.visible!==!1,locked:e.bloqueada!==void 0?e.bloqueada:e.locked===!0,status:e.status||"oficial",category:e.categoria||e.category,properties:e.propriedades||e.properties||{}}}exports.UIMapaBase=Ke.UIMapaBase;exports.UISeletorMapaBase=Ke.UISeletorMapaBase;exports.CamadasDragDropManager=ca;exports.ICONES=y;exports.LIMITE_FEICOES_POR_CAMADA=fe;exports.MAPAS_BASE_PADRAO=Ce;exports.UICamadas=U;exports.UILayerPanel=Ca;exports.UIPainelCamadas=ka;exports.calcularAreaAnelSimples=ne;exports.calcularAreaPoligono=ke;exports.calcularComprimentoLinha=Ie;exports.calcularDistanciaPontos=Qe;exports.calcularSelecaoFeicao=sa;exports.carregarEstadoPersistido=le;exports.construirHierarquiaCamadas=W;exports.converterCamadaItemParaCanvasLayer=er;exports.converterCanvasLayerParaCamadaItem=Zt;exports.converterFeicaoParaItem=ar;exports.escapeHtml=z;exports.filtrarCamadasPorBusca=Fe;exports.filtrarFeicoesPorBusca=_;exports.formatarMetricaFeicoes=_a;exports.formatarOpcoesCamadasHierarquicas=Se;exports.gerarChaveStorage=da;exports.limparEstadoPersistido=fa;exports.montarEstadoPersistido=ga;exports.nomeDoMapaBase=Le;exports.normalizarEstadoPersistido=ua;exports.obterIdsVisiveisFeicoes=ze;exports.reidratarCamadasComOverrides=ma;exports.removerSelecoesInvalidas=me;exports.renderizarArvoreCamadas=la;exports.renderizarGridMapasBase=We;exports.renderizarRodapeAcoes=Je;exports.renderizarThumbGeometria=Me;exports.rotuloRodape=$e;exports.salvarEstadoPersistido=pa;exports.snapshotCamada=Be;
311
+ `,this.corpoElement=this.shadow.getElementById("painel-corpo"),this.btnExpandirFlutuante=this.shadow.getElementById("btn-expandir-flutuante"),this.dragDropManager=new va(this,this.shadow);const a=this.shadow.getElementById("resizer-altura");this.resizerController=pr({hostElement:this,resizerElement:a,listeners:this.listeners,getMinAltura:()=>{const r=this.getAttribute("min-altura");return r&&parseFloat(r)||140},getMaxAltura:()=>{const r=this.getAttribute("max-altura");return r&&parseFloat(r)||1600},onAlturaAlterada:r=>{this.alturaCustomizada=r,this.salvarLembrancaEstado()}})}static get observedAttributes(){return["titulo","mapa-base-ativo","camada-ativa","aba-ativa","colapsavel","colapsado","flutuante","mostrar-mapas-base","mapas-base-recolhido","mostrar-rodape","mostrar-busca","densidade","persistir","storage-key","redimensionavel","redimensionavel-altura","altura","min-altura","max-altura",...ce.ATRIBUTOS_DEGRADE]}connectedCallback(){if(this.persistir){const a=fe(this.obterChaveStorageAtual());a&&(a.painelColapsado===!0&&!this.hasAttribute("colapsado")&&(this.colapsado=!0),a.camadaAtivaId&&!this.getAttribute("camada-ativa")&&(this.camadaAtivaId=a.camadaAtivaId),a.mapaBaseAtivo&&!this.getAttribute("mapa-base-ativo")&&(this.mapaBaseAtivo=a.mapaBaseAtivo),a.densidade&&!this.getAttribute("densidade")&&(this.densidade=a.densidade),typeof a.altura=="number"&&!this.getAttribute("altura")&&!this.style.height&&(this.resizerController.definirAltura(a.altura,!1),this.alturaCustomizada=a.altura))}this.hasAttribute("altura")&&this.resizerController.definirAltura(this.getAttribute("altura"),!1),this.persistir&&!this.storageKey&&!this.id&&(Y.instanciasChavePadrao.size>0&&console.warn("[UI-Camadas] Mais de um painel sem 'id' nem 'storage-key' divide a mesma chave de persistência e um sobrescreve o estado do outro. Defina 'storage-key' (ou 'id') em cada um."),Y.instanciasChavePadrao.add(this)),this.resizerController.init(),ce.aplicarDegradeNoElemento(this,this.shadow.getElementById("panel-container")),this.render(),this.conectarEventosGerais(),Jt(this,this,this.shadow,this.corpoElement,this.listeners),this.conectado=!0,this.camadas.length>0&&this.salvarLembrancaEstado()}disconnectedCallback(){var a,r;this.conectado=!1,Y.instanciasChavePadrao.delete(this),(a=this.resizerController)==null||a.destruir(),(r=this.dragDropManager)==null||r.destruir(),Ct(this),this.listeners.cleanup()}attributeChangedCallback(a,r,i){var o,n;if(r!==i){if(ce.ehAtributoDegrade(a)){ce.aplicarDegradeNoElemento(this,this.shadow.getElementById("panel-container"));return}a==="colapsado"?this.salvarLembrancaEstado():a==="camada-ativa"?(this.sincronizarCamadaAtivaDOM(),this.salvarLembrancaEstado()):a==="densidade"?this.salvarLembrancaEstado():a==="mapa-base-ativo"?i&&this.marcarMapaBaseAtivoNoDOM(i):a==="titulo"||a==="mostrar-mapas-base"||a==="mapas-base-recolhido"||a==="mostrar-rodape"||a==="mostrar-busca"||a==="colapsavel"||a==="flutuante"?this.solicitarRenderizacao():a==="altura"?(o=this.resizerController)==null||o.definirAltura(i,!1):(a==="min-altura"||a==="max-altura")&&this.alturaCustomizada!==null&&((n=this.resizerController)==null||n.definirAltura(this.alturaCustomizada,!1))}}get titulo(){return this.getAttribute("titulo")||"Camadas"}set titulo(a){this.setAttribute("titulo",a)}get camadaAtivaId(){var a;return this.getAttribute("camada-ativa")||(((a=this.camadas[0])==null?void 0:a.id)??null)}set camadaAtivaId(a){a?this.setAttribute("camada-ativa",a):this.removeAttribute("camada-ativa")}get mapaBaseAtivo(){return this.getAttribute("mapa-base-ativo")||"satelite"}set mapaBaseAtivo(a){this.setAttribute("mapa-base-ativo",a)}selecionarMapaBase(a,r=!1){!a||this.mapaBaseAtivo===a||(this.mapaBaseAtivo=a,this.marcarMapaBaseAtivoNoDOM(a),this.salvarLembrancaEstado(),r&&this.dispararEvento("ui-mapa-base-alterado",{mapaBaseId:a}))}marcarMapaBaseAtivoNoDOM(a){this.shadow.querySelectorAll("[data-basemap-id]").forEach(i=>{const o=i.getAttribute("data-basemap-id")===a;i.classList.toggle("active",o),i.setAttribute("aria-pressed",String(o))});const r=this.shadow.querySelector("[data-basemap-atual]");r&&(r.textContent=Be(this.mapasBase,a))}get mapasBaseRecolhido(){return this.hasAttribute("mapas-base-recolhido")}set mapasBaseRecolhido(a){a?this.setAttribute("mapas-base-recolhido",""):this.removeAttribute("mapas-base-recolhido")}alternarMapasBaseRecolhido(a=!1){this.mapasBaseRecolhido=!this.mapasBaseRecolhido,a&&this.dispararEvento("ui-mapas-base-recolhimento",{recolhido:this.mapasBaseRecolhido})}get abaAtiva(){return this.getAttribute("aba-ativa")||"camadas"}set abaAtiva(a){this.setAttribute("aba-ativa",a)}get colapsado(){return this.hasAttribute("colapsado")}set colapsado(a){a?this.setAttribute("colapsado",""):this.removeAttribute("colapsado")}get colapsavel(){return this.getAttribute("colapsavel")!=="false"}set colapsavel(a){this.setAttribute("colapsavel",String(a))}get flutuante(){return this.hasAttribute("flutuante")}set flutuante(a){a?this.setAttribute("flutuante",""):this.removeAttribute("flutuante")}get densidade(){return this.getAttribute("densidade")||"normal"}set densidade(a){this.setAttribute("densidade",a)}get mostrarMapasBase(){return this.getAttribute("mostrar-mapas-base")!=="false"}set mostrarMapasBase(a){this.setAttribute("mostrar-mapas-base",String(a))}get mostrarRodape(){return this.getAttribute("mostrar-rodape")!=="false"}set mostrarRodape(a){this.setAttribute("mostrar-rodape",String(a))}get mostrarBusca(){return this.getAttribute("mostrar-busca")!=="false"}set mostrarBusca(a){this.setAttribute("mostrar-busca",String(a))}get persistir(){return this.getAttribute("persistir")!=="false"}set persistir(a){this.setAttribute("persistir",String(a))}get storageKey(){return this.getAttribute("storage-key")}set storageKey(a){a?this.setAttribute("storage-key",a):this.removeAttribute("storage-key")}get redimensionavel(){return this.hasAttribute("redimensionavel")||this.hasAttribute("redimensionavel-altura")}set redimensionavel(a){a?this.setAttribute("redimensionavel",""):(this.removeAttribute("redimensionavel"),this.removeAttribute("redimensionavel-altura"))}get altura(){return this.getAttribute("altura")||this.style.height||null}set altura(a){a!=null?(this.setAttribute("altura",String(a)),this.definirAltura(a)):(this.removeAttribute("altura"),this.definirAltura(null))}definirAltura(a,r=!0){var o;(o=this.resizerController)==null||o.definirAltura(a,!1);const i=a!==null?parseFloat(String(a)):null;this.alturaCustomizada=isNaN(i)?null:i,r&&this.salvarLembrancaEstado()}obterChaveStorageAtual(){return this.lembranca.chaveAtual()}agendarSalvarLembranca(){this.lembranca.agendar()}salvarLembrancaEstado(){this.lembranca.salvar()}limparLembranca(){this.expandedFeatureLimits.clear(),this.ordemFilhosPorPai.clear(),this.lembranca.limpar()}get layers(){return this.camadas}set layers(a){this.definirCamadas(a)}get features(){return this.feicoes}set features(a){this.definirFeicoes(a)}get basemaps(){return this.mapasBase}set basemaps(a){this.definirMapasBase(a)}definirCamadas(a,r){ir(this,a,r)}definirFeicoes(a){nr(this,a)}definirMapasBase(a){this.mapasBase=Array.isArray(a)?[...a]:[],this.solicitarRenderizacao()}definirCamadaAtiva(a,r=!1){!a||this.camadaAtivaId===a||(this.camadaAtivaId=a,this.sincronizarCamadaAtivaDOM(),this.salvarLembrancaEstado(),r&&this.dispararEvento("ui-camada-selecionada",{camadaId:a,camada:this.camadas.find(i=>i.id===a)}))}obterCamada(a){return this.camadas.find(r=>r.id===a)}obterCamadaAtiva(){return this.camadas.find(a=>a.id===this.camadaAtivaId)}obterFeicao(a){return this.feicoes.find(r=>r.id===a)}obterFeicoesSelecionadas(){return this.feicoes.filter(a=>this.selectedFeatureIds.has(a.id))}adicionarCamada(a){sr(this,a)}removerCamada(a){lr(this,a)}adicionarFeicao(a){cr(this,a)}atualizarFeicao(a){dr(this,a)}removerFeicao(a){ur(this,a)}selecionarFeicao(a,r=!1,i=!1,o=!1){Zt(this,a,r,i,o)}selecionarFeicoes(a,r=!1){er(this,a,r)}limparSelecao(a=!1){ar(this,a)}expandirTodas(){this.expandedLayers=new Set(this.camadas.map(a=>a.id)),this.salvarLembrancaEstado(),this.solicitarRenderizacao()}colapsarTodas(){this.expandedLayers.clear(),this.salvarLembrancaEstado(),this.solicitarRenderizacao()}alternarExpansao(a){a&&(this.expandedLayers.has(a)?this.expandedLayers.delete(a):this.expandedLayers.add(a),this.salvarLembrancaEstado(),this.solicitarRenderizacao())}incrementarLimiteFeicoes(a){if(!a)return;const r=this.expandedFeatureLimits.get(a)??80;this.expandedFeatureLimits.set(a,r+80),this.solicitarRenderizacao()}alternarVisibilidadeTodas(a=!1){const i=!this.camadas.some(o=>o.visible!==!1);this.camadas.forEach(o=>{o.visible=i,a&&this.dispararEvento("ui-camada-visibilidade",{camadaId:o.id,visivel:i})}),this.salvarLembrancaEstado(),this.solicitarRenderizacao()}colapsar(a=!1){this.definirColapso(!0,a)}expandir(a=!1){this.definirColapso(!1,a)}alternarColapso(a=!1){this.definirColapso(!this.colapsado,a)}definirColapso(a,r){this.colapsado!==a&&(this.colapsado=a,r&&this.dispararEvento("ui-colapso-alterado",{colapsado:a}))}solicitarRenderizacao(){if(this.profundidadeLote>0){this.renderPendente=!0;return}this.render()}solicitarAtualizacaoFeicoes(a){if(this.profundidadeLote>0){this.renderPendente=!0;return}this.mudancaFeicoes=a,this.render()}emLote(a){this.profundidadeLote++;try{a()}finally{this.profundidadeLote--,this.profundidadeLote===0&&this.renderPendente&&(this.renderPendente=!1,this.render())}}dispararEvento(a,r){this.dispatchEvent(new CustomEvent(a,{detail:r,bubbles:!0,composed:!0}))}render(){const a=this.mudancaFeicoes;this.mudancaFeicoes=null,this.corpoElement&&(a&&Ut(this,this.shadow,this.dragDropManager,a)||_t(this,this.shadow,this.corpoElement,this.dragDropManager))}conectarEventosGerais(){this.listeners.add(this.btnExpandirFlutuante,"click",()=>this.expandir(!0))}sincronizarCamadaAtivaDOM(){bt(this,this.shadow)}sincronizarSelecaoDOM(){yt(this,this.shadow)}notificarMudancaSelecao(){tr(this)}};I(Y,"instanciasChavePadrao",new Set);let X=Y;class za extends X{}class Ba extends X{}he.definirCustomElement("ui-camadas",X);he.definirCustomElement("ui-painel-camadas",za);he.definirCustomElement("ui-layer-panel",Ba);function fr(e){var t;return{id:e.id,name:e.nome||e.id,color:((t=e.estilo)==null?void 0:t.corPrimaria)||"#00E08A",visible:e.visivel!==!1,locked:e.bloqueada===!0,opacity:typeof e.opacidade=="number"?e.opacidade:1,order:e.zIndex,description:e.categoria?`Categoria: ${e.categoria}`:void 0,categoria:e.categoria,tipo:e.tipo,estilo:e.estilo,dados:e.dados}}function mr(e,t="levantamento",a="feicoes"){return{id:e.id,nome:e.name,categoria:e.categoria||t,tipo:e.tipo||a,visivel:e.visible!==!1,opacidade:typeof e.opacity=="number"?e.opacity:1,zIndex:typeof e.order=="number"?e.order:500,bloqueada:e.locked===!0,interativo:!0,estilo:{corPrimaria:e.color||"#00E08A",scaleMode:"screen",...typeof e.estilo=="object"&&e.estilo!==null?e.estilo:{}},dados:typeof e.dados=="object"&&e.dados!==null?e.dados:void 0}}function gr(e,t=""){var o,n,s,c;const a=((o=e.geometria)==null?void 0:o.tipo)||((n=e.geometria)==null?void 0:n.type)||e.tipo||e.type||"Polygon",r=((s=e.geometria)==null?void 0:s.coordenadas)||((c=e.geometria)==null?void 0:c.coordinates)||e.coordinates,i=e.cor||e.color;return{id:String(e.id),name:e.nome||e.name||`Feição ${e.id}`,layerId:e.layerId||e.camadaId||t,type:a,geometryType:a,coordinates:r,color:i,visible:e.visivel!==void 0?e.visivel:e.visible!==!1,locked:e.bloqueada!==void 0?e.bloqueada:e.locked===!0,status:e.status||"oficial",category:e.categoria||e.category,properties:e.propriedades||e.properties||{}}}exports.UIMapaBase=ta.UIMapaBase;exports.UISeletorMapaBase=ta.UISeletorMapaBase;exports.CamadasDragDropManager=va;exports.ICONES=b;exports.LIMITE_FEICOES_POR_CAMADA=be;exports.MAPAS_BASE_PADRAO=ze;exports.UICamadas=X;exports.UILayerPanel=Ba;exports.UIPainelCamadas=za;exports.calcularAreaAnelSimples=de;exports.calcularAreaPoligono=Pe;exports.calcularComprimentoLinha=Me;exports.calcularDistanciaPontos=ra;exports.calcularSelecaoFeicao=ga;exports.carregarEstadoPersistido=fe;exports.construirHierarquiaCamadas=ae;exports.converterCamadaItemParaCanvasLayer=mr;exports.converterCanvasLayerParaCamadaItem=fr;exports.converterFeicaoParaItem=gr;exports.escapeHtml=M;exports.filtrarCamadasPorBusca=Oe;exports.filtrarFeicoesPorBusca=Q;exports.formatarMetricaFeicoes=Ja;exports.formatarOpcoesCamadasHierarquicas=qe;exports.gerarChaveStorage=ba;exports.limparEstadoPersistido=wa;exports.montarEstadoPersistido=Ea;exports.nomeDoMapaBase=Be;exports.normalizarEstadoPersistido=ya;exports.obterIdsVisiveisFeicoes=Re;exports.reidratarCamadasComOverrides=Aa;exports.removerSelecoesInvalidas=ye;exports.renderizarArvoreCamadas=ha;exports.renderizarGridMapasBase=oa;exports.renderizarRodapeAcoes=na;exports.renderizarThumbGeometria=Te;exports.rotuloRodape=De;exports.salvarEstadoPersistido=xa;exports.snapshotCamada=je;