@thibezer/ui-components-kit 2.9.0 → 2.10.1
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.
- package/CHANGELOG.md +138 -0
- package/README.md +7 -4
- package/dist/camadas.cjs +53 -55
- package/dist/camadas.js +254 -242
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +73 -72
- package/dist/canvas.js +3212 -2690
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/components/ui-area-texto/area-texto-altura.d.ts +16 -0
- package/dist/components/ui-area-texto/area-texto-contador.d.ts +6 -0
- package/dist/components/ui-area-texto/area-texto-template.d.ts +2 -0
- package/dist/components/ui-area-texto/index.d.ts +3 -0
- package/dist/components/ui-area-texto/tipos.d.ts +19 -0
- package/dist/components/ui-area-texto/ui-area-texto.d.ts +100 -0
- package/dist/components/ui-campo-texto/campo-texto-estados.d.ts +5 -1
- package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +1 -0
- package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +7 -1
- package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +13 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +8 -2
- package/dist/components/ui-canvas-cad/cad-feicoes-teclado.d.ts +19 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +1 -1
- package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +12 -1
- package/dist/components/ui-canvas-cad/cad-ferramentas-barra.d.ts +8 -1
- package/dist/components/ui-canvas-cad/cad-recusas.d.ts +6 -0
- package/dist/components/ui-canvas-cad/cad-snap.d.ts +2 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +7 -0
- package/dist/components/ui-card/card-interacao.d.ts +17 -0
- package/dist/components/ui-card/card-secoes.d.ts +10 -0
- package/dist/components/ui-card/ui-card.d.ts +23 -0
- package/dist/components/ui-cores/cores-utils.d.ts +2 -0
- package/dist/components/ui-cores/tipos.d.ts +9 -2
- package/dist/components/ui-cores/ui-controle-cores.d.ts +9 -4
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +12 -9
- package/dist/components/ui-tabela-propriedades/editores-basicos.d.ts +1 -1
- package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +5 -0
- package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +3 -3
- package/dist/components/ui-tabela-propriedades/propriedades-valor-misto.d.ts +25 -0
- package/dist/components/ui-tabela-propriedades/tipos.d.ts +5 -0
- package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +7 -0
- package/dist/components/ui-texto/ui-texto.d.ts +16 -0
- package/dist/core/alvo-digitavel.d.ts +5 -0
- package/dist/core/opcoes.d.ts +7 -0
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +11 -9
- package/dist/custom-elements.json +16677 -13587
- package/dist/data.cjs +1 -1
- package/dist/data.js +72 -64
- package/dist/forms.cjs +1 -1
- package/dist/forms.d.ts +4 -0
- package/dist/forms.js +15 -12
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +2 -0
- package/dist/gerencigeo-canvas/feature_desenho.d.ts +15 -1
- package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +6 -0
- package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +9 -0
- package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +64 -6
- package/dist/gerencigeo-canvas/mapa_core.d.ts +4 -0
- package/dist/gerencigeo-canvas/popup_residual.d.ts +5 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +204 -191
- package/dist/{motor-CFI84lM2.js → motor-BKT2eStP.js} +3 -3
- package/dist/motor.js +1 -1
- package/dist/opcoes-CupvWVIm.js +24 -0
- package/dist/opcoes-vdAUY5OI.cjs +1 -0
- package/dist/register.cjs +1 -1
- package/dist/register.js +10 -9
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +66 -58
- package/dist/tipos-elementos.d.ts +78 -0
- package/dist/tipos-react.d.ts +4 -0
- package/dist/tipos-vue.d.ts +76 -0
- package/dist/{ui-badge-BWhoGgo9.js → ui-badge-B5J_c5P5.js} +1 -1
- package/dist/{ui-badge-SIR81R9l.cjs → ui-badge-DC4y6Dik.cjs} +1 -1
- package/dist/{ui-campo-texto-B_OHVGiN.js → ui-campo-texto-19tIrmBK.js} +91 -93
- package/dist/ui-campo-texto-CH8mzX61.cjs +16 -0
- package/dist/ui-card-0wu4rjEX.cjs +20 -0
- package/dist/ui-card-DRtpOo3l.js +143 -0
- package/dist/ui-controle-cores-CohlwXJK.cjs +32 -0
- package/dist/ui-controle-cores-DMtTUtLk.js +292 -0
- package/dist/{ui-linha-BYAX4W6x.cjs → ui-linha-C306zxWG.cjs} +6 -6
- package/dist/{ui-linha-aqLlaYi7.js → ui-linha-C_azWkcG.js} +103 -99
- package/dist/ui-seletor-cor-D9iI7yew.js +413 -0
- package/dist/ui-seletor-cor-Ft06TEUH.cjs +110 -0
- package/dist/{ui-switch-DO1R0Ce7.js → ui-switch-BL-x_-SM.js} +460 -173
- package/dist/ui-switch-C0i_3QXu.cjs +66 -0
- package/dist/ui-tabela-propriedades-B8AwlpqL.cjs +141 -0
- package/dist/{ui-tabela-propriedades-DoL4SE0r.js → ui-tabela-propriedades-DuaC4sFX.js} +1295 -1195
- package/package.json +1 -1
- package/dist/opcoes-CJYLi6kd.js +0 -12
- package/dist/opcoes-CkyDxBuQ.cjs +0 -1
- package/dist/ui-campo-texto-DauJCde3.cjs +0 -16
- package/dist/ui-card-BNYCQ7g-.js +0 -119
- package/dist/ui-card-BrjBL-yo.cjs +0 -20
- package/dist/ui-controle-cores-DgEza3wF.js +0 -612
- package/dist/ui-controle-cores-uY__TgwW.cjs +0 -117
- package/dist/ui-switch-D9a8XlVX.cjs +0 -53
- package/dist/ui-tabela-propriedades-CjK2gG14.cjs +0 -141
package/dist/camadas.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
1
|
+
var Oe = Object.defineProperty;
|
|
2
|
+
var je = (e, r, a) => r in e ? Oe(e, r, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[r] = a;
|
|
3
|
+
var A = (e, r, a) => je(e, typeof r != "symbol" ? r + "" : r, a);
|
|
4
4
|
/* empty css */
|
|
5
|
-
import { d as
|
|
6
|
-
import { L as
|
|
7
|
-
import {
|
|
5
|
+
import { d as ne, S as He } from "./ssr-safe-5cWfJP-s.js";
|
|
6
|
+
import { L as Ne } from "./listener-bag-DQgv7OON.js";
|
|
7
|
+
import { a as Ge } from "./ui-seletor-cor-D9iI7yew.js";
|
|
8
|
+
import { UIMapaBase as vr, UISeletorMapaBase as br } from "./seletor-mapa-base.js";
|
|
8
9
|
const v = {
|
|
9
10
|
camadas: `<svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
10
11
|
<polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
|
|
@@ -40,7 +41,7 @@ const v = {
|
|
|
40
41
|
chevronDir: `<svg viewBox="0 0 24 24" width="10" height="10" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
|
|
41
42
|
<polyline points="9 18 15 12 9 6"></polyline>
|
|
42
43
|
</svg>`,
|
|
43
|
-
dragHandle: `<svg viewBox="
|
|
44
|
+
dragHandle: `<svg viewBox="5 3 14 18" width="7" height="9" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round">
|
|
44
45
|
<line x1="8" y1="6" x2="8" y2="6.01"></line>
|
|
45
46
|
<line x1="16" y1="6" x2="16" y2="6.01"></line>
|
|
46
47
|
<line x1="8" y1="12" x2="8" y2="12.01"></line>
|
|
@@ -103,16 +104,16 @@ const v = {
|
|
|
103
104
|
<line x1="9" y1="3" x2="9" y2="21"></line>
|
|
104
105
|
<line x1="15" y1="3" x2="15" y2="21"></line>
|
|
105
106
|
</svg>`
|
|
106
|
-
},
|
|
107
|
+
}, te = 6378137;
|
|
107
108
|
function Ve(e, r) {
|
|
108
109
|
if (!e || !r) return 0;
|
|
109
110
|
const a = e[0] * Math.PI / 180, i = e[1] * Math.PI / 180, t = r[0] * Math.PI / 180, o = r[1] * Math.PI / 180, n = t - a, s = o - i, l = Math.sin(n / 2) * Math.sin(n / 2) + Math.cos(a) * Math.cos(t) * Math.sin(s / 2) * Math.sin(s / 2);
|
|
110
|
-
return
|
|
111
|
+
return te * 2 * Math.atan2(Math.sqrt(l), Math.sqrt(1 - l));
|
|
111
112
|
}
|
|
112
|
-
function
|
|
113
|
+
function be(e) {
|
|
113
114
|
if (!Array.isArray(e) || e.length < 2) return 0;
|
|
114
115
|
if (Array.isArray(e[0]) && Array.isArray(e[0][0]))
|
|
115
|
-
return e.reduce((a, i) => a +
|
|
116
|
+
return e.reduce((a, i) => a + be(i), 0);
|
|
116
117
|
let r = 0;
|
|
117
118
|
for (let a = 0; a < e.length - 1; a++) {
|
|
118
119
|
const i = e[a], t = e[a + 1];
|
|
@@ -120,7 +121,7 @@ function xe(e) {
|
|
|
120
121
|
}
|
|
121
122
|
return r;
|
|
122
123
|
}
|
|
123
|
-
function
|
|
124
|
+
function Z(e) {
|
|
124
125
|
if (!Array.isArray(e)) return 0;
|
|
125
126
|
const r = e.length;
|
|
126
127
|
if (r < 3) return 0;
|
|
@@ -131,32 +132,32 @@ function ee(e) {
|
|
|
131
132
|
const l = (n[1] - o[1]) * (Math.PI / 180), c = (n[0] - o[0]) * (Math.PI / 180), d = (s[1] - n[1]) * (Math.PI / 180), p = (s[0] - n[0]) * (Math.PI / 180);
|
|
132
133
|
a += l * p - c * d;
|
|
133
134
|
}
|
|
134
|
-
const i = Math.abs(a * (
|
|
135
|
+
const i = Math.abs(a * (te * te) / 2);
|
|
135
136
|
return isNaN(i) ? 0 : i;
|
|
136
137
|
}
|
|
137
|
-
function
|
|
138
|
+
function he(e) {
|
|
138
139
|
if (!Array.isArray(e) || e.length === 0) return 0;
|
|
139
140
|
if (Array.isArray(e[0]) && typeof e[0][0] == "number")
|
|
140
|
-
return
|
|
141
|
+
return Z(e);
|
|
141
142
|
if (Array.isArray(e[0]) && Array.isArray(e[0][0])) {
|
|
142
143
|
if (Array.isArray(e[0][0][0]))
|
|
143
|
-
return e.reduce((i, t) => i +
|
|
144
|
-
const r =
|
|
144
|
+
return e.reduce((i, t) => i + he(t), 0);
|
|
145
|
+
const r = Z(e[0]);
|
|
145
146
|
let a = 0;
|
|
146
147
|
for (let i = 1; i < e.length; i++)
|
|
147
|
-
a +=
|
|
148
|
+
a += Z(e[i]);
|
|
148
149
|
return Math.max(0, r - a);
|
|
149
150
|
}
|
|
150
151
|
return 0;
|
|
151
152
|
}
|
|
152
|
-
function
|
|
153
|
+
function xe(e) {
|
|
153
154
|
if (!e || e.length === 0) return "";
|
|
154
155
|
const r = e.filter(
|
|
155
156
|
(i) => i.type === "Polygon" || i.type === "MultiPolygon" || i.geometryType === "Polygon"
|
|
156
157
|
);
|
|
157
158
|
if (r.length > 0) {
|
|
158
159
|
const i = r.reduce(
|
|
159
|
-
(t, o) => t + (
|
|
160
|
+
(t, o) => t + (he(o.coordinates) || 0),
|
|
160
161
|
0
|
|
161
162
|
);
|
|
162
163
|
return i >= 1e4 ? `${(i / 1e4).toLocaleString("pt-BR", {
|
|
@@ -169,7 +170,7 @@ function we(e) {
|
|
|
169
170
|
);
|
|
170
171
|
if (a.length > 0) {
|
|
171
172
|
const i = a.reduce(
|
|
172
|
-
(t, o) => t + (
|
|
173
|
+
(t, o) => t + (be(o.coordinates) || 0),
|
|
173
174
|
0
|
|
174
175
|
);
|
|
175
176
|
return i >= 1e3 ? `${(i / 1e3).toLocaleString("pt-BR", {
|
|
@@ -183,12 +184,12 @@ function S(e) {
|
|
|
183
184
|
return e == null ? "" : String(e).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
184
185
|
}
|
|
185
186
|
const Ue = /^(#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?:rgb|hsl)a?\(\s*[\w.%\s,/+-]+\)|[a-z]{3,30})$/i;
|
|
186
|
-
function
|
|
187
|
+
function H(e, r = "#00E08A") {
|
|
187
188
|
if (!e || typeof e != "string") return r;
|
|
188
189
|
const a = e.trim();
|
|
189
190
|
return Ue.test(a) ? a : r;
|
|
190
191
|
}
|
|
191
|
-
function
|
|
192
|
+
function ee(e) {
|
|
192
193
|
return Math.max(0, Math.min(255, Math.round(e))).toString(16).padStart(2, "0");
|
|
193
194
|
}
|
|
194
195
|
function Ye(e, r, a) {
|
|
@@ -207,7 +208,7 @@ function _e(e, r = "#000000") {
|
|
|
207
208
|
const o = t[2].split(/[\s,/]+/).filter(Boolean).map((n) => parseFloat(n));
|
|
208
209
|
if (o.length >= 3 && o.slice(0, 3).every((n) => !isNaN(n))) {
|
|
209
210
|
const [n, s, l] = o, [c, d, p] = t[1] === "rgb" ? [n, s, l] : Ye(n, s, l);
|
|
210
|
-
return `#${
|
|
211
|
+
return `#${ee(c)}${ee(d)}${ee(p)}`;
|
|
211
212
|
}
|
|
212
213
|
}
|
|
213
214
|
return r;
|
|
@@ -218,7 +219,7 @@ function P(e, r, a) {
|
|
|
218
219
|
if (i[t].getAttribute(r) === a) return i[t];
|
|
219
220
|
return null;
|
|
220
221
|
}
|
|
221
|
-
function
|
|
222
|
+
function ye(e, r = 80) {
|
|
222
223
|
let a = null;
|
|
223
224
|
return (...i) => {
|
|
224
225
|
a && clearTimeout(a), a = setTimeout(() => {
|
|
@@ -229,7 +230,7 @@ function Ee(e, r = 80) {
|
|
|
229
230
|
function D(e, r) {
|
|
230
231
|
e.setAttribute("title", r), e.setAttribute("aria-label", r);
|
|
231
232
|
}
|
|
232
|
-
const
|
|
233
|
+
const we = [
|
|
233
234
|
{
|
|
234
235
|
id: "none",
|
|
235
236
|
nome: "Sem Mapa",
|
|
@@ -272,11 +273,11 @@ const Ae = [
|
|
|
272
273
|
thumbnailUrl: "https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"
|
|
273
274
|
}
|
|
274
275
|
];
|
|
275
|
-
function
|
|
276
|
+
function Ee(e, r) {
|
|
276
277
|
const a = Array.isArray(e) ? e.find((i) => i.id === r) : void 0;
|
|
277
278
|
return a && typeof a.nome == "string" ? a.nome : "";
|
|
278
279
|
}
|
|
279
|
-
function Ke(e =
|
|
280
|
+
function Ke(e = we, r = "satelite", a = !1) {
|
|
280
281
|
if (!e || e.length === 0) return "";
|
|
281
282
|
const i = e.map((t) => {
|
|
282
283
|
const o = r === t.id, n = S(t.id), s = S(t.nome), l = S(t.descricao || t.nome);
|
|
@@ -292,7 +293,7 @@ function Ke(e = Ae, r = "satelite", a = !1) {
|
|
|
292
293
|
<div class="ui-basemap-section ${a ? "recolhido" : ""}">
|
|
293
294
|
<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"}">
|
|
294
295
|
<span class="ui-basemap-title">Mapa Base</span>
|
|
295
|
-
<span class="ui-basemap-atual" data-basemap-atual>${S(
|
|
296
|
+
<span class="ui-basemap-atual" data-basemap-atual>${S(Ee(e, r))}</span>
|
|
296
297
|
<span class="ui-chevron-icon ${a ? "" : "open"}">${v.chevronDir}</span>
|
|
297
298
|
</button>
|
|
298
299
|
${a ? "" : `<div class="ui-basemap-grid" id="ui-basemap-grid">
|
|
@@ -315,7 +316,7 @@ function Xe(e) {
|
|
|
315
316
|
return i.map((o) => t(o, 0)).join("");
|
|
316
317
|
}
|
|
317
318
|
function Qe(e, r, a) {
|
|
318
|
-
const i = r.filter((c) => a.has(c.id)), t = i.length > 0, o =
|
|
319
|
+
const i = r.filter((c) => a.has(c.id)), t = i.length > 0, o = xe(i), n = t ? i.length : e.length, s = t ? i.length > 1 ? "selecionados" : "selecionado" : e.length > 1 ? "camadas" : "camada", l = Xe(e);
|
|
319
320
|
return `
|
|
320
321
|
<div class="ui-tree-footer ${t ? "tem-selecao" : "sem-selecao"}">
|
|
321
322
|
<div class="ui-footer-left">
|
|
@@ -367,35 +368,35 @@ function Qe(e, r, a) {
|
|
|
367
368
|
</div>
|
|
368
369
|
`;
|
|
369
370
|
}
|
|
370
|
-
const
|
|
371
|
-
function
|
|
371
|
+
const ae = 64;
|
|
372
|
+
function me(e) {
|
|
372
373
|
return Array.isArray(e) && e.length >= 2 && Number.isFinite(e[0]) && Number.isFinite(e[1]);
|
|
373
374
|
}
|
|
374
|
-
function
|
|
375
|
-
return !Array.isArray(e) || e.length === 0 ? [] :
|
|
375
|
+
function Ae(e) {
|
|
376
|
+
return !Array.isArray(e) || e.length === 0 ? [] : me(e[0]) ? [e.filter(me)] : e.flatMap(Ae);
|
|
376
377
|
}
|
|
377
|
-
function
|
|
378
|
-
if (e.length <=
|
|
379
|
-
const r = e.length /
|
|
380
|
-
for (let i = 0; i <
|
|
378
|
+
function ge(e) {
|
|
379
|
+
if (e.length <= ae) return e;
|
|
380
|
+
const r = e.length / ae, a = [];
|
|
381
|
+
for (let i = 0; i < ae; i++) a.push(e[Math.floor(i * r)]);
|
|
381
382
|
return a.push(e[e.length - 1]), a;
|
|
382
383
|
}
|
|
383
384
|
function Je(e, r, a) {
|
|
384
|
-
const i =
|
|
385
|
+
const i = Ae(r).filter((h) => h.length > 0);
|
|
385
386
|
if (i.length === 0) return "";
|
|
386
387
|
let t = 1 / 0, o = -1 / 0, n = 1 / 0, s = -1 / 0;
|
|
387
388
|
for (const h of i)
|
|
388
|
-
for (const [
|
|
389
|
-
$ < t && (t = $), $ > o && (o = $), -
|
|
390
|
-
const l = 16, c = 2, d = l - c * 2, p = o - t, f = s - n, m = Math.max(p, f), u = m > 0 ? d / m : 0, g = c + (d - p * u) / 2, k = c + (d - f * u) / 2, x = (h) => Math.round(h * 100) / 100,
|
|
389
|
+
for (const [y, $] of h)
|
|
390
|
+
$ < t && (t = $), $ > o && (o = $), -y < n && (n = -y), -y > s && (s = -y);
|
|
391
|
+
const l = 16, c = 2, d = l - c * 2, p = o - t, f = s - n, m = Math.max(p, f), u = m > 0 ? d / m : 0, g = c + (d - p * u) / 2, k = c + (d - f * u) / 2, x = (h) => Math.round(h * 100) / 100, w = ([h, y]) => `${x(g + (y - t) * u)},${x(k + (-h - n) * u)}`, C = e === "polygon" || e === "multipolygon", L = e === "linestring" || e === "multilinestring", b = (h) => `<svg viewBox="0 0 ${l} ${l}" width="100%" height="100%" aria-hidden="true">${h}</svg>`;
|
|
391
392
|
if (C) {
|
|
392
|
-
const h = i.filter((
|
|
393
|
+
const h = i.filter((y) => y.length >= 3).map((y) => `M${ge(y).map(w).join("L")}Z`).join("");
|
|
393
394
|
return h ? b(
|
|
394
395
|
`<path d="${h}" fill="${a}" fill-opacity="0.45" fill-rule="evenodd" stroke="${a}" stroke-width="1.2" stroke-linejoin="round"/>`
|
|
395
396
|
) : "";
|
|
396
397
|
}
|
|
397
398
|
if (L) {
|
|
398
|
-
const h = i.filter((
|
|
399
|
+
const h = i.filter((y) => y.length >= 2).map((y) => `M${ge(y).map(w).join("L")}`).join("");
|
|
399
400
|
return h ? b(
|
|
400
401
|
`<path d="${h}" fill="none" stroke="${a}" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>`
|
|
401
402
|
) : "";
|
|
@@ -403,7 +404,7 @@ function Je(e, r, a) {
|
|
|
403
404
|
return "";
|
|
404
405
|
}
|
|
405
406
|
function We(e, r, a) {
|
|
406
|
-
const i =
|
|
407
|
+
const i = H(r, "#00E08A"), t = (e || "").toLowerCase(), o = a !== void 0 ? Je(t, a, i) : "";
|
|
407
408
|
return o || (t === "polygon" || t === "multipolygon" ? `<svg viewBox="0 0 16 16" width="11" height="11"><polygon points="2,14 14,14 12,2 4,4" fill="${i}" fill-opacity="0.45" stroke="${i}" stroke-width="1.5"/></svg>` : t === "linestring" || t === "multilinestring" ? `<svg viewBox="0 0 16 16" width="11" height="11"><polyline points="2,13 8,3 14,10" fill="none" stroke="${i}" stroke-width="2"/></svg>` : t === "text" ? `<svg viewBox="0 0 16 16" width="11" height="11"><text x="8" y="12" font-size="12" font-weight="bold" fill="${i}" 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="${i}" stroke="#ffffff" stroke-width="1.2"/></svg>`);
|
|
408
409
|
}
|
|
409
410
|
function Ze(e) {
|
|
@@ -423,14 +424,14 @@ function Ze(e) {
|
|
|
423
424
|
}
|
|
424
425
|
return i.map((o) => t(o, 0));
|
|
425
426
|
}
|
|
426
|
-
const
|
|
427
|
+
const ke = 80;
|
|
427
428
|
function K(e, r) {
|
|
428
429
|
const a = (r || "").trim().toLowerCase();
|
|
429
430
|
return a ? e.filter(
|
|
430
431
|
(i) => (i.name || "").toLowerCase().includes(a) || (i.category || "").toLowerCase().includes(a) || (i.type || "").toLowerCase().includes(a)
|
|
431
432
|
) : e;
|
|
432
433
|
}
|
|
433
|
-
function
|
|
434
|
+
function Ie(e, r, a) {
|
|
434
435
|
var f, m;
|
|
435
436
|
const i = (a || "").trim().toLowerCase();
|
|
436
437
|
if (!i) return null;
|
|
@@ -465,8 +466,8 @@ function Ce(e, r, a) {
|
|
|
465
466
|
}
|
|
466
467
|
return { camadasVisiveis: c, feicoesPorCamada: p };
|
|
467
468
|
}
|
|
468
|
-
function ea(e, r, a, i = "", t =
|
|
469
|
-
const o =
|
|
469
|
+
function ea(e, r, a, i = "", t = ke) {
|
|
470
|
+
const o = Ie(e, r, i), n = [], s = /* @__PURE__ */ new Map();
|
|
470
471
|
for (let l = 0; l < r.length; l++) {
|
|
471
472
|
const c = r[l], d = c.layerId || "";
|
|
472
473
|
s.has(d) || s.set(d, []), s.get(d).push(c);
|
|
@@ -499,7 +500,7 @@ function aa(e, r, a, i, t, o) {
|
|
|
499
500
|
} else t ? (n.has(i) ? n.delete(i) : n.add(i), s = i) : (n.clear(), n.add(i), s = i);
|
|
500
501
|
return { selecionados: n, ultimoClicadoId: s };
|
|
501
502
|
}
|
|
502
|
-
function
|
|
503
|
+
function se(e, r) {
|
|
503
504
|
if (e.size === 0) return;
|
|
504
505
|
const a = new Set(r.map((i) => i.id));
|
|
505
506
|
for (const i of e)
|
|
@@ -516,12 +517,12 @@ function ra(e) {
|
|
|
516
517
|
editingLayerId: s,
|
|
517
518
|
editingFeatureId: l,
|
|
518
519
|
searchQuery: c,
|
|
519
|
-
limiteFeicoesPorCamada: d =
|
|
520
|
+
limiteFeicoesPorCamada: d = ke,
|
|
520
521
|
mostrarBotaoColapsar: p = !1
|
|
521
|
-
} = e, f = (c || "").trim().toLowerCase(), m =
|
|
522
|
+
} = e, f = (c || "").trim().toLowerCase(), m = Ie(r, a, f), u = /* @__PURE__ */ new Map();
|
|
522
523
|
for (let b = 0; b < a.length; b++) {
|
|
523
|
-
const h = a[b],
|
|
524
|
-
u.has(
|
|
524
|
+
const h = a[b], y = h.layerId || "";
|
|
525
|
+
u.has(y) || u.set(y, []), u.get(y).push(h);
|
|
525
526
|
}
|
|
526
527
|
const g = r.every((b) => b.visible !== !1), k = r.length > 0 && r.every((b) => t.has(b.id)), x = `
|
|
527
528
|
<div class="ui-tree-toolbar">
|
|
@@ -553,30 +554,29 @@ function ra(e) {
|
|
|
553
554
|
)}" />
|
|
554
555
|
${c ? `<button class="ui-tree-search-clear" id="btn-clear-layer-search" title="Limpar busca" aria-label="Limpar busca">${v.fechar}</button>` : ""}
|
|
555
556
|
</div>
|
|
556
|
-
`,
|
|
557
|
+
`, w = (b) => {
|
|
557
558
|
const h = b.camada;
|
|
558
559
|
if (m && !m.camadasVisiveis.has(h.id)) return "";
|
|
559
|
-
const
|
|
560
|
-
const q = S(I.id),
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
${U ? v.olhoAberto : v.olhoFechado}
|
|
560
|
+
const y = b.depth, $ = b.subcamadas, O = m ? $.filter((I) => m.camadasVisiveis.has(I.camada.id)) : $, B = !!(h.isGroup || $.length > 0), E = S(h.id), T = S(h.name || (B ? "Novo Grupo" : "Camada")), F = H(h.color, "#00E08A"), V = h.visible !== !1, j = h.locked === !0, U = f ? !0 : t.has(h.id), X = n === h.id, le = i === h.id, M = m ? m.feicoesPorCamada.get(h.id) || [] : u.get(h.id) || [], ce = M.length > 0 && M.every((I) => o.has(I.id)), Se = !ce && M.some((I) => o.has(I.id)), Me = M.slice(0, d), ze = M.length > d, Fe = Me.map((I) => {
|
|
561
|
+
const q = S(I.id), ue = S(I.name || "Feição"), pe = H(I.color, F), Y = I.visible !== !1, Q = j, J = I.locked === !0 || Q, fe = Q ? "Bloqueada pela camada" : J ? "Desbloquear Feição" : "Bloquear Feição", W = o.has(I.id), Re = I.status === "previa" ? '<span class="ui-previa-dot" title="Geometria prévia" aria-label="Geometria prévia"></span>' : "";
|
|
562
|
+
return `
|
|
563
|
+
<div class="ui-feat-row ${W ? "selected-row" : ""} ${Y ? "" : "hidden-row"}" data-feat-row="${q}" data-feat-select="${q}" data-feat-layer="${E}" role="treeitem" aria-selected="${W}" tabindex="-1" draggable="true" style="--layer-depth: ${y + 1};" title="Clique para selecionar | Arraste para reordenar">
|
|
564
|
+
<div class="ui-col ui-col-eye" data-feat-eye="${q}" role="button" tabindex="0" aria-label="${Y ? "Ocultar Feição" : "Exibir Feição"}" title="${Y ? "Ocultar Feição" : "Exibir Feição"}">
|
|
565
|
+
${Y ? v.olhoAberto : v.olhoFechado}
|
|
566
566
|
</div>
|
|
567
567
|
|
|
568
|
-
<div class="ui-col ui-col-lock ${J ? "" : "ui-lock-open"}" data-feat-lock="${q}" ${Q ? 'data-locked-by-layer="true"' : ""} role="button" tabindex="0" aria-label="${
|
|
568
|
+
<div class="ui-col ui-col-lock ${J ? "" : "ui-lock-open"}" data-feat-lock="${q}" ${Q ? 'data-locked-by-layer="true"' : ""} role="button" tabindex="0" aria-label="${fe}" title="${fe}">
|
|
569
569
|
${J ? v.cadeadoTrancado : v.cadeadoAberto}
|
|
570
570
|
</div>
|
|
571
571
|
|
|
572
|
-
<div class="ui-col ui-col-colorbar" style="background: ${
|
|
572
|
+
<div class="ui-col ui-col-colorbar" style="background: ${pe};"></div>
|
|
573
573
|
<div class="ui-col ui-col-branch"><span style="opacity: 0.35;">└─</span></div>
|
|
574
574
|
<div class="ui-col ui-col-thumb">
|
|
575
|
-
<div class="ui-thumb-box">${We(I.type || I.geometryType,
|
|
575
|
+
<div class="ui-thumb-box">${We(I.type || I.geometryType, pe, I.coordinates)}</div>
|
|
576
576
|
</div>
|
|
577
577
|
|
|
578
578
|
<div class="ui-col ui-col-name" data-feat-name-trigger="${q}" title="Duplo clique para renomear">
|
|
579
|
-
${l === I.id ? `<input type="text" class="ui-inline-rename-input" data-inline-feat-input="${q}" value="${
|
|
579
|
+
${l === I.id ? `<input type="text" class="ui-inline-rename-input" data-inline-feat-input="${q}" value="${ue}" />` : `<span class="ui-name-text">${ue}</span>${Re}`}
|
|
580
580
|
</div>
|
|
581
581
|
|
|
582
582
|
<div class="ui-col ui-col-actions">
|
|
@@ -588,16 +588,16 @@ function ra(e) {
|
|
|
588
588
|
</div>
|
|
589
589
|
</div>
|
|
590
590
|
`;
|
|
591
|
-
}).join(""),
|
|
591
|
+
}).join(""), Be = ze ? `<div style="padding: 4px 10px; font-size: 10px; color: var(--ui-cor-texto-secundario, #888899); font-style: italic; background: rgba(0,0,0,0.2);">Exibindo ${d} de ${M.length} feições. Use a busca acima para filtrar.</div>` : "", de = h.opacity !== void 0 ? h.opacity : 1, qe = Math.round(de * 100), De = r.filter((I) => I.id !== h.id).map(
|
|
592
592
|
(I) => `<option value="${S(I.id)}" ${h.parentId === I.id ? "selected" : ""}>${I.isGroup ? "📁 " : ""}${S(I.name)}</option>`
|
|
593
|
-
).join(""),
|
|
594
|
-
<div class="ui-layer-settings-drawer" id="settings-drawer-${
|
|
593
|
+
).join(""), Pe = X ? `
|
|
594
|
+
<div class="ui-layer-settings-drawer" id="settings-drawer-${E}" style="--drawer-cor-camada: ${F};">
|
|
595
595
|
<div class="ui-drawer-header">
|
|
596
596
|
<div class="ui-drawer-header-left">
|
|
597
597
|
<span class="ui-drawer-icon">${v.engrenagem}</span>
|
|
598
598
|
<span class="ui-drawer-title">Configurações da Camada</span>
|
|
599
599
|
</div>
|
|
600
|
-
<button type="button" class="ui-drawer-btn-fechar" data-layer-settings-close="${
|
|
600
|
+
<button type="button" class="ui-drawer-btn-fechar" data-layer-settings-close="${E}" title="Fechar configurações (Esc)" aria-label="Fechar configurações">
|
|
601
601
|
${v.fechar}
|
|
602
602
|
</button>
|
|
603
603
|
</div>
|
|
@@ -610,9 +610,9 @@ function ra(e) {
|
|
|
610
610
|
</div>
|
|
611
611
|
<div class="ui-drawer-color-group">
|
|
612
612
|
<label class="ui-drawer-color-pill" title="Clique para alterar a cor da camada">
|
|
613
|
-
<span class="ui-drawer-color-sample" id="sample-color-${
|
|
614
|
-
<span class="ui-drawer-color-hex" id="hex-color-${
|
|
615
|
-
<input type="color" aria-label="Cor da camada" data-layer-color-picker="${
|
|
613
|
+
<span class="ui-drawer-color-sample" id="sample-color-${E}" style="background-color: ${F};"></span>
|
|
614
|
+
<span class="ui-drawer-color-hex" id="hex-color-${E}">${F.toUpperCase()}</span>
|
|
615
|
+
<input type="color" aria-label="Cor da camada" data-layer-color-picker="${E}" value="${_e(F, "#00e08a")}" class="ui-drawer-color-native" />
|
|
616
616
|
</label>
|
|
617
617
|
</div>
|
|
618
618
|
</div>
|
|
@@ -621,10 +621,10 @@ function ra(e) {
|
|
|
621
621
|
<div class="ui-drawer-row">
|
|
622
622
|
<div class="ui-drawer-row-label">
|
|
623
623
|
<span>Opacidade</span>
|
|
624
|
-
<span class="ui-drawer-badge" id="badge-op-${
|
|
624
|
+
<span class="ui-drawer-badge" id="badge-op-${E}">${qe}%</span>
|
|
625
625
|
</div>
|
|
626
626
|
<div class="ui-drawer-slider-container">
|
|
627
|
-
<input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(
|
|
627
|
+
<input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(de) || 0}" data-layer-opacity-slider="${E}" class="ui-drawer-slider" />
|
|
628
628
|
</div>
|
|
629
629
|
</div>
|
|
630
630
|
|
|
@@ -634,9 +634,9 @@ function ra(e) {
|
|
|
634
634
|
<span>Pertence ao Grupo</span>
|
|
635
635
|
</div>
|
|
636
636
|
<div class="ui-drawer-select-wrapper">
|
|
637
|
-
<select class="ui-drawer-select" data-layer-parent-select="${
|
|
637
|
+
<select class="ui-drawer-select" data-layer-parent-select="${E}" aria-label="Grupo pai da camada">
|
|
638
638
|
<option value="" ${h.parentId ? "" : "selected"}>(Nenhum - Nível Principal)</option>
|
|
639
|
-
${
|
|
639
|
+
${De}
|
|
640
640
|
</select>
|
|
641
641
|
</div>
|
|
642
642
|
</div>
|
|
@@ -644,68 +644,66 @@ function ra(e) {
|
|
|
644
644
|
|
|
645
645
|
<div class="ui-drawer-footer">
|
|
646
646
|
<div class="ui-drawer-meta-info">
|
|
647
|
-
<span>${$.length > 0 ? `${$.length} subcamadas · ` : ""}${
|
|
647
|
+
<span>${$.length > 0 ? `${$.length} subcamadas · ` : ""}${M.length} ${M.length === 1 ? "feição" : "feições"}</span>
|
|
648
648
|
</div>
|
|
649
649
|
<div class="ui-drawer-actions">
|
|
650
|
-
<button type="button" class="ui-drawer-btn-sublayer" data-add-sublayer="${
|
|
650
|
+
<button type="button" class="ui-drawer-btn-sublayer" data-add-sublayer="${E}" title="Adicionar nova camada dentro desta">
|
|
651
651
|
${v.mais} Subcamada
|
|
652
652
|
</button>
|
|
653
|
-
<button type="button" class="ui-drawer-btn-danger" data-delete-layer="${
|
|
653
|
+
<button type="button" class="ui-drawer-btn-danger" data-delete-layer="${E}" title="Excluir esta camada e suas feições">
|
|
654
654
|
${v.lixeira}
|
|
655
655
|
<span class="ui-btn-label">Excluir</span>
|
|
656
656
|
</button>
|
|
657
657
|
</div>
|
|
658
658
|
</div>
|
|
659
659
|
</div>
|
|
660
|
-
` : "",
|
|
660
|
+
` : "", Te = O.map((I) => w(I)).join("");
|
|
661
661
|
return `
|
|
662
|
-
<div class="ui-layer-group ${
|
|
663
|
-
<div class="ui-layer-row ${
|
|
662
|
+
<div class="ui-layer-group ${y > 0 ? "is-sublayer-group" : ""}" data-layer-id="${E}" data-layer-depth="${y}" role="treeitem" aria-expanded="${U}" style="--layer-active-color: ${F};">
|
|
663
|
+
<div class="ui-layer-row ${V ? "" : "hidden-layer"} ${le ? "active-drawing-layer" : ""} ${y > 0 ? "is-sublayer" : ""} ${B ? "is-group-row" : ""}" data-layer-row="${E}" data-layer-id="${E}" tabindex="-1" draggable="true" ${le ? 'aria-current="true"' : ""} style="--layer-depth: ${y};">
|
|
664
664
|
<div class="ui-col ui-col-drag" title="Arrastar para reordenar Z-Index">${v.dragHandle}</div>
|
|
665
665
|
|
|
666
|
-
<div class="ui-col ui-col-eye" data-layer-eye="${
|
|
667
|
-
${
|
|
666
|
+
<div class="ui-col ui-col-eye" data-layer-eye="${E}" role="button" tabindex="0" aria-label="${V ? "Ocultar Camada" : "Exibir Camada"}" title="${V ? "Ocultar Camada" : "Exibir Camada"}">
|
|
667
|
+
${V ? v.olhoAberto : v.olhoFechado}
|
|
668
668
|
</div>
|
|
669
669
|
|
|
670
|
-
<div class="ui-col ui-col-lock ${j ? "" : "ui-lock-open"}" data-layer-lock="${
|
|
670
|
+
<div class="ui-col ui-col-lock ${j ? "" : "ui-lock-open"}" data-layer-lock="${E}" role="button" tabindex="0" aria-label="${j ? "Desbloquear Camada" : "Bloquear Camada"}" title="${j ? "Desbloquear Camada" : "Bloquear Camada"}">
|
|
671
671
|
${j ? v.cadeadoTrancado : v.cadeadoAberto}
|
|
672
672
|
</div>
|
|
673
673
|
|
|
674
|
-
<div class="ui-col ui-col-colorbar" style="background: ${F};"></div>
|
|
674
|
+
<div class="ui-col ui-col-colorbar ui-col-colorbar-editavel" data-layer-color="${E}" role="button" tabindex="0" style="background: ${F};" aria-label="Alterar cor da camada" title="Alterar cor da camada (usada no destaque de seleção)"></div>
|
|
675
675
|
|
|
676
|
-
<div class="ui-col ui-col-chevron" data-layer-expand="${
|
|
677
|
-
<span class="ui-chevron-icon ${
|
|
676
|
+
<div class="ui-col ui-col-chevron" data-layer-expand="${E}" role="button" tabindex="0" aria-label="${U ? "Recolher grupo" : "Expandir grupo"}">
|
|
677
|
+
<span class="ui-chevron-icon ${U ? "open" : ""}">${v.chevronDir}</span>
|
|
678
678
|
</div>
|
|
679
679
|
|
|
680
|
-
<div class="ui-col ui-col-name" data-layer-name-trigger="${
|
|
681
|
-
${s === h.id ? `<input type="text" class="ui-inline-rename-input" data-inline-layer-input="${
|
|
680
|
+
<div class="ui-col ui-col-name" data-layer-name-trigger="${E}" title="Clique para ativar camada de desenho | Duplo clique para renomear">
|
|
681
|
+
${s === h.id ? `<input type="text" class="ui-inline-rename-input" data-inline-layer-input="${E}" value="${T}" />` : `${B ? `<span class="ui-group-folder-icon" title="Grupo/Pasta">${v.moverPasta}</span>` : ""}
|
|
682
682
|
<span class="ui-name-text">${T}</span>
|
|
683
|
-
${
|
|
684
|
-
${$.length > 0 ? `<span class="ui-group-badge" title="${$.length} subcamadas">${$.length} sub</span>` : ""}
|
|
685
|
-
${z.length > 0 || !B ? `<span class="ui-count-chip">${z.length}</span>` : ""}`}
|
|
683
|
+
${M.length > 0 || !B ? `<span class="ui-count-chip" title="${M.length} ${M.length === 1 ? "feição" : "feições"}${$.length > 0 ? ` · ${$.length} subcamadas` : ""}">${M.length}</span>` : ""}`}
|
|
686
684
|
</div>
|
|
687
685
|
|
|
688
686
|
<div class="ui-col ui-col-actions">
|
|
689
|
-
<button class="ui-micro-btn" data-layer-fit="${
|
|
690
|
-
<button class="ui-micro-btn ${X ? "active" : ""}" data-layer-settings="${
|
|
687
|
+
<button class="ui-micro-btn" data-layer-fit="${E}" title="Enquadrar camada no mapa" aria-label="Enquadrar camada no mapa">${v.alvoEnquadrar}</button>
|
|
688
|
+
<button class="ui-micro-btn ${X ? "active" : ""}" data-layer-settings="${E}" title="Ajustar cor, hierarquia, opacidade e excluir" aria-label="Configurações da camada" aria-expanded="${X}">${v.engrenagem}</button>
|
|
691
689
|
</div>
|
|
692
690
|
|
|
693
|
-
<div class="ui-col ui-col-target" data-layer-target="${
|
|
694
|
-
<div class="ui-target-circle ${
|
|
691
|
+
<div class="ui-col ui-col-target" data-layer-target="${E}" role="button" tabindex="0" aria-label="Selecionar todas as feições deste grupo" title="Selecionar todas as feições deste grupo">
|
|
692
|
+
<div class="ui-target-circle ${ce ? "selected" : Se ? "partial" : ""}"></div>
|
|
695
693
|
</div>
|
|
696
694
|
</div>
|
|
697
695
|
|
|
698
|
-
${
|
|
696
|
+
${Pe}
|
|
699
697
|
|
|
700
|
-
<div class="ui-children-container ${
|
|
701
|
-
${
|
|
702
|
-
${
|
|
703
|
-
${
|
|
704
|
-
${O.length === 0 &&
|
|
698
|
+
<div class="ui-children-container ${y > 0 ? "is-subchildren" : ""}" role="group" style="display: ${U ? "block" : "none"};">
|
|
699
|
+
${Te}
|
|
700
|
+
${Fe}
|
|
701
|
+
${Be}
|
|
702
|
+
${O.length === 0 && M.length === 0 ? `<div class="ui-empty-row"><span>${B ? "Grupo vazio (adicione subcamadas ou feições)" : "Nenhum elemento neste grupo"}</span></div>` : ""}
|
|
705
703
|
</div>
|
|
706
704
|
</div>
|
|
707
705
|
`;
|
|
708
|
-
}, C = Ze(r), L = m && m.camadasVisiveis.size === 0 ? `<div class="ui-search-empty" role="status">Nenhum resultado para “${S((c || "").trim())}”</div>` : C.map((b) =>
|
|
706
|
+
}, C = Ze(r), L = m && m.camadasVisiveis.size === 0 ? `<div class="ui-search-empty" role="status">Nenhum resultado para “${S((c || "").trim())}”</div>` : C.map((b) => w(b)).join("");
|
|
709
707
|
return `
|
|
710
708
|
${x}
|
|
711
709
|
<div class="ui-panel-box">
|
|
@@ -821,10 +819,10 @@ function da(e, r, a, i) {
|
|
|
821
819
|
const ua = ["dragging", "drop-above", "drop-below", "drop-into"];
|
|
822
820
|
class pa {
|
|
823
821
|
constructor(r, a) {
|
|
824
|
-
|
|
825
|
-
|
|
822
|
+
A(this, "host");
|
|
823
|
+
A(this, "shadow");
|
|
826
824
|
/** Cancela um arraste por toque em andamento (remove os ouvintes de `window`). */
|
|
827
|
-
|
|
825
|
+
A(this, "cancelarToque", null);
|
|
828
826
|
this.host = r, this.shadow = a;
|
|
829
827
|
}
|
|
830
828
|
bindAll() {
|
|
@@ -975,7 +973,7 @@ function ma(e, r) {
|
|
|
975
973
|
const a = (e || r || "default").trim();
|
|
976
974
|
return `${fa}${a}`;
|
|
977
975
|
}
|
|
978
|
-
function
|
|
976
|
+
function ie(e) {
|
|
979
977
|
if (typeof window > "u" || typeof localStorage > "u")
|
|
980
978
|
return null;
|
|
981
979
|
try {
|
|
@@ -1004,7 +1002,7 @@ function va(e) {
|
|
|
1004
1002
|
} catch {
|
|
1005
1003
|
}
|
|
1006
1004
|
}
|
|
1007
|
-
function
|
|
1005
|
+
function Le(e) {
|
|
1008
1006
|
return {
|
|
1009
1007
|
name: e.name,
|
|
1010
1008
|
visible: e.visible !== !1,
|
|
@@ -1019,10 +1017,10 @@ function ba(e, r, a, i) {
|
|
|
1019
1017
|
const t = (r == null ? void 0 : r.camadasOverrides) || {}, o = new Set((r == null ? void 0 : r.expandedLayerIds) || []), n = new Set((r == null ? void 0 : r.collapsedLayerIds) || []), s = o.size > 0 || n.size > 0;
|
|
1020
1018
|
for (let p = 0; p < e.length; p++) {
|
|
1021
1019
|
const f = e[p], m = t[f.id];
|
|
1022
|
-
if (i == null || i.set(f.id,
|
|
1020
|
+
if (i == null || i.set(f.id, Le(f)), m) {
|
|
1023
1021
|
const u = m.origem, g = (k) => {
|
|
1024
|
-
var
|
|
1025
|
-
const x = (
|
|
1022
|
+
var w;
|
|
1023
|
+
const x = (w = i == null ? void 0 : i.get(f.id)) == null ? void 0 : w[k];
|
|
1026
1024
|
return u !== void 0 && u[k] !== x;
|
|
1027
1025
|
};
|
|
1028
1026
|
typeof m.name == "string" && m.name.trim() && !g("name") && (f.name = m.name), typeof m.visible == "boolean" && !g("visible") && (f.visible = m.visible), typeof m.locked == "boolean" && !g("locked") && (f.locked = m.locked), typeof m.opacity == "number" && !g("opacity") && (f.opacity = m.opacity), typeof m.color == "string" && !g("color") && (f.color = m.color), m.parentId !== void 0 && !g("parentId") && (f.parentId = m.parentId);
|
|
@@ -1074,12 +1072,12 @@ function ha(e) {
|
|
|
1074
1072
|
ultimaAtualizacao: Date.now()
|
|
1075
1073
|
};
|
|
1076
1074
|
}
|
|
1077
|
-
const xa = ':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-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-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-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-header{height:32px;min-height:32px;max-height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 5px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));background:var(--ui-cor-fundo-elevado, rgba(0, 0, 0, .28));gap:4px}.ui-camadas-tabs{display:flex;gap:3px;flex:1}.ui-camadas-tab-btn{flex:1;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);height:24px;padding:0 6px;font-size:11px;font-weight:500;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;transition:all var(--camada-transicao)}.ui-camadas-tab-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .07))}.ui-camadas-tab-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent);font-weight:600}.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:6px 6px 4px;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;padding:1px 2px 3px;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:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:22px;height:22px;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);border-color:var(--ui-cor-primaria, #00E08A);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) 12%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent);color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:22px;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);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.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(--ui-cor-primaria, #00E08A) 12%,transparent)!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(--ui-cor-primaria, #00E08A) 7%,transparent)}.ui-layer-row.active-drawing-layer .ui-name-text{color:var(--ui-cor-texto, #e1e1e6);font-weight:700}.ui-feat-row{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(--ui-cor-texto-info, #33b5ff) 18%,transparent)!important;outline:1px solid color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 50%,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{padding-left:calc(6px + var(--layer-depth, 1) * 16px);background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #18181d) 70%,transparent);border-left:2px solid color-mix(in srgb,var(--layer-active-color, #00E08A) 40%,transparent)}.ui-children-container.is-subchildren{position:relative;margin-left:calc(var(--layer-depth, 0) * 8px);border-left:1px dashed var(--ui-cor-borda, rgba(255, 255, 255, .1))}.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-group-badge{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 4px;border-radius:3px;background:color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 15%,transparent);color:var(--ui-cor-texto-alerta, #ffb86c);border:1px solid color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 30%,transparent);margin-left: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:14px;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-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-active-badge{font-size:8px;font-weight:700;color:var(--ui-cor-texto-sobre-primaria, #000000);background:var(--ui-cor-primaria, #00E08A);border:1px solid color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 45%,transparent);padding:1px 4px;border-radius:3px;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;flex-shrink:0;animation:pulseBadge 2.8s infinite}@keyframes pulseBadge{0%{opacity:.85}50%{opacity:1;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 50%,transparent))}to{opacity:.85}}.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, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);padding:0 4px;border-radius:8px}.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{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(--ui-cor-texto-info, #33b5ff);background: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(--ui-cor-texto-info, #33b5ff);background:color-mix(in srgb,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-geom-tag{font-size:8px;font-weight:700;letter-spacing:.4px;padding:1px 4px;border-radius:3px;margin-left:4px;text-transform:uppercase;flex-shrink:0}.ui-geom-tag.oficial{background:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 16%,transparent);color:var(--ui-cor-texto-sucesso, #00E08A);border:1px solid color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 35%,transparent)}.ui-geom-tag.previa{background:color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 16%,transparent);color:var(--ui-cor-texto-alerta, #ffb86c);border:1px solid color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 35%,transparent)}.ui-tree-footer{height:32px;min-height:32px;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 8px;gap:6px;box-sizing:border-box;overflow:hidden;position:relative}.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{font-size:10px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-metric{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-primaria, #00E08A);display:inline-flex;align-items:center;gap:3px;white-space:nowrap;background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);padding:1px 5px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 24%,transparent);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:#ffffff0a;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 7px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:#ffffff1a;color:var(--ui-cor-texto, #ffffff);border-color:#fff3}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);border-color:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 32%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 22%,transparent);border-color:var(--ui-cor-primaria, #00E08A);color:#fff}.ui-footer-right{display:flex;align-items:center;gap:3px;flex-shrink: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:#f55;background:#ff555526}.ui-footer-btn.confirming{background:#f55!important;color:#fff!important}.ui-footer-btn.btn-clear-footer{color:var(--ui-cor-texto-secundario, #888899);margin-left:2px}.ui-footer-btn.btn-clear-footer:hover{color:#fff;background:#ffffff1f}.ui-footer-color-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:18px;height:18px;cursor:pointer;flex-shrink:0}.ui-footer-color-preview{width:14px;height:14px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 0 4px #0006;pointer-events:none;transition:transform .15s ease,border-color .15s ease}.ui-footer-color-wrapper:hover .ui-footer-color-preview{transform:scale(1.15);border-color:#fff}.ui-footer-color{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;margin:0;border:none}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;max-width:95px;flex-shrink:0}.ui-footer-select{background:var(--ui-cor-fundo, #16161c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #e1e1e6);border-radius:4px;font-size:10px;height:22px;padding:0 4px;cursor:pointer;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){border-color:#ffffff40}.ui-footer-select:focus{outline:none;border-color:var(--ui-cor-primaria, #00E08A)}.ui-tree-btn-group{background:#ffffff0a;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto-secundario, #a0a0b0);border-radius:var(--ui-raio-sm, 4px);height:22px;padding:0 7px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-group:hover{background:#ffffff1a;color:var(--ui-cor-texto, #ffffff);border-color:#ffffff40}.ui-drawer-btn-sublayer{background:#ffffff0f;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:#ffffff1f;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-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-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}';
|
|
1075
|
+
const xa = ':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-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-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-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-header{height:32px;min-height:32px;max-height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 5px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));background:var(--ui-cor-fundo-elevado, rgba(0, 0, 0, .28));gap:4px}.ui-camadas-tabs{display:flex;gap:3px;flex:1}.ui-camadas-tab-btn{flex:1;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);height:24px;padding:0 6px;font-size:11px;font-weight:500;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;transition:all var(--camada-transicao)}.ui-camadas-tab-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .07))}.ui-camadas-tab-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent);font-weight:600}.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:6px 6px 4px;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;padding:1px 2px 3px;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:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:22px;height:22px;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);border-color:var(--ui-cor-primaria, #00E08A);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) 12%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent);color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:22px;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);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.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{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:32px;min-height:32px;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 8px;gap:6px;box-sizing:border-box;overflow:hidden;position:relative}.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{font-size:10px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-metric{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-primaria, #00E08A);display:inline-flex;align-items:center;gap:3px;white-space:nowrap;background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);padding:1px 5px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 24%,transparent);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:#ffffff0a;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 7px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:#ffffff1a;color:var(--ui-cor-texto, #ffffff);border-color:#fff3}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);border-color:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 32%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 22%,transparent);border-color:var(--ui-cor-primaria, #00E08A);color:#fff}.ui-footer-right{display:flex;align-items:center;gap:3px;flex-shrink: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:#f55;background:#ff555526}.ui-footer-btn.confirming{background:#f55!important;color:#fff!important}.ui-footer-btn.btn-clear-footer{color:var(--ui-cor-texto-secundario, #888899);margin-left:2px}.ui-footer-btn.btn-clear-footer:hover{color:#fff;background:#ffffff1f}.ui-footer-color-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:18px;height:18px;cursor:pointer;flex-shrink:0}.ui-footer-color-preview{width:14px;height:14px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 0 4px #0006;pointer-events:none;transition:transform .15s ease,border-color .15s ease}.ui-footer-color-wrapper:hover .ui-footer-color-preview{transform:scale(1.15);border-color:#fff}.ui-footer-color{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;margin:0;border:none}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;max-width:95px;flex-shrink:0}.ui-footer-select{background:var(--ui-cor-fundo, #16161c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #e1e1e6);border-radius:4px;font-size:10px;height:22px;padding:0 4px;cursor:pointer;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){border-color:#ffffff40}.ui-footer-select:focus{outline:none;border-color:var(--ui-cor-primaria, #00E08A)}.ui-tree-btn-group{background:#ffffff0a;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto-secundario, #a0a0b0);border-radius:var(--ui-raio-sm, 4px);height:22px;padding:0 7px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-group:hover{background:#ffffff1a;color:var(--ui-cor-texto, #ffffff);border-color:#ffffff40}.ui-drawer-btn-sublayer{background:#ffffff0f;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:#ffffff1f;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-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-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}';
|
|
1078
1076
|
function ya(e, r) {
|
|
1079
1077
|
r.querySelectorAll("[data-layer-row]").forEach((t) => {
|
|
1080
1078
|
t.addEventListener("click", (o) => {
|
|
1081
1079
|
if (o.target.closest(
|
|
1082
|
-
"[data-layer-eye], [data-layer-lock], [data-layer-expand], [data-layer-target], [data-layer-fit], [data-layer-settings], input, button"
|
|
1080
|
+
"[data-layer-eye], [data-layer-lock], [data-layer-expand], [data-layer-target], [data-layer-fit], [data-layer-settings], [data-layer-color], input, button"
|
|
1083
1081
|
))
|
|
1084
1082
|
return;
|
|
1085
1083
|
const s = t.getAttribute("data-layer-row");
|
|
@@ -1140,9 +1138,10 @@ function ya(e, r) {
|
|
|
1140
1138
|
});
|
|
1141
1139
|
});
|
|
1142
1140
|
const a = (t, o, n) => {
|
|
1143
|
-
|
|
1141
|
+
var m;
|
|
1142
|
+
const s = e.camadas.find((u) => u.id === t);
|
|
1144
1143
|
if (!s) return;
|
|
1145
|
-
const l =
|
|
1144
|
+
const l = H(o, s.color || "#00E08A");
|
|
1146
1145
|
s.color = l;
|
|
1147
1146
|
const c = r.getElementById(`sample-color-${t}`);
|
|
1148
1147
|
c && (c.style.backgroundColor = l);
|
|
@@ -1152,9 +1151,9 @@ function ya(e, r) {
|
|
|
1152
1151
|
p && p.style.setProperty("--drawer-cor-camada", l);
|
|
1153
1152
|
const f = P(r, "data-layer-row", t);
|
|
1154
1153
|
if (f) {
|
|
1155
|
-
f.style.setProperty("--layer-active-color", l);
|
|
1156
|
-
const
|
|
1157
|
-
|
|
1154
|
+
(m = f.closest(".ui-layer-group")) == null || m.style.setProperty("--layer-active-color", l);
|
|
1155
|
+
const u = f.querySelector(".ui-col-colorbar");
|
|
1156
|
+
u && (u.style.backgroundColor = l);
|
|
1158
1157
|
}
|
|
1159
1158
|
n ? e.salvarLembrancaEstado() : e.agendarSalvarLembranca(), e.dispararEvento("ui-camada-cor", { camadaId: s.id, cor: l });
|
|
1160
1159
|
};
|
|
@@ -1166,6 +1165,28 @@ function ya(e, r) {
|
|
|
1166
1165
|
a(c, d, s);
|
|
1167
1166
|
};
|
|
1168
1167
|
o.addEventListener("input", n(!1)), o.addEventListener("change", n(!0));
|
|
1168
|
+
}), r.querySelectorAll("[data-layer-color]").forEach((t) => {
|
|
1169
|
+
const o = (n) => {
|
|
1170
|
+
n.stopPropagation();
|
|
1171
|
+
const s = t.getAttribute("data-layer-color"), l = e.camadas.find((d) => d.id === s);
|
|
1172
|
+
if (!s || !l) return;
|
|
1173
|
+
const c = e.camadas.filter((d) => d.id !== s && d.color).map((d) => d.color);
|
|
1174
|
+
Ge({
|
|
1175
|
+
ancora: t,
|
|
1176
|
+
titulo: `Cor · ${l.name || "Camada"}`,
|
|
1177
|
+
modo: "simples",
|
|
1178
|
+
cor: H(l.color, "#00E08A"),
|
|
1179
|
+
mostrarOpacidade: !1,
|
|
1180
|
+
coresProjeto: c,
|
|
1181
|
+
aoAlterar: (d) => a(s, d.cor, !1),
|
|
1182
|
+
aoConfirmar: (d) => a(s, d.cor, !0),
|
|
1183
|
+
aoCancelar: (d) => a(s, d.cor, !0)
|
|
1184
|
+
});
|
|
1185
|
+
};
|
|
1186
|
+
t.addEventListener("click", o), t.addEventListener("keydown", (n) => {
|
|
1187
|
+
const s = n.key;
|
|
1188
|
+
(s === "Enter" || s === " ") && (n.preventDefault(), o(n));
|
|
1189
|
+
});
|
|
1169
1190
|
});
|
|
1170
1191
|
const i = (t, o) => {
|
|
1171
1192
|
const n = e.camadas.find((c) => c.id === t);
|
|
@@ -1350,7 +1371,7 @@ const ka = [
|
|
|
1350
1371
|
{ tipo: "cadeado", atributo: "data-feat-lock", entidade: "feicao" },
|
|
1351
1372
|
{ tipo: "selecao", atributo: "data-layer-target", entidade: "camada" },
|
|
1352
1373
|
{ tipo: "selecao", atributo: "data-feat-target", entidade: "feicao" }
|
|
1353
|
-
],
|
|
1374
|
+
], oe = {
|
|
1354
1375
|
olho: "[data-layer-eye], [data-feat-eye]",
|
|
1355
1376
|
cadeado: "[data-layer-lock], [data-feat-lock]",
|
|
1356
1377
|
selecao: "[data-layer-target], [data-feat-target]"
|
|
@@ -1358,7 +1379,7 @@ const ka = [
|
|
|
1358
1379
|
function La(e) {
|
|
1359
1380
|
return ka.find((r) => e.hasAttribute(r.atributo)) ?? null;
|
|
1360
1381
|
}
|
|
1361
|
-
function
|
|
1382
|
+
function re(e, r) {
|
|
1362
1383
|
const a = La(r);
|
|
1363
1384
|
if (!a) return null;
|
|
1364
1385
|
const i = r.getAttribute(a.atributo);
|
|
@@ -1379,7 +1400,7 @@ function te(e, r) {
|
|
|
1379
1400
|
);
|
|
1380
1401
|
return t.length === 0 ? null : t.every((o) => e.selectedFeatureIds.has(o.id));
|
|
1381
1402
|
}
|
|
1382
|
-
function
|
|
1403
|
+
function ve(e, r, a = !1) {
|
|
1383
1404
|
e.dispatchEvent(
|
|
1384
1405
|
new MouseEvent("click", {
|
|
1385
1406
|
bubbles: !0,
|
|
@@ -1389,52 +1410,52 @@ function he(e, r, a = !1) {
|
|
|
1389
1410
|
})
|
|
1390
1411
|
);
|
|
1391
1412
|
}
|
|
1392
|
-
let
|
|
1413
|
+
let z = null;
|
|
1393
1414
|
function Ca(e) {
|
|
1394
|
-
(
|
|
1415
|
+
(z == null ? void 0 : z.host) === e && z.cancelar();
|
|
1395
1416
|
}
|
|
1396
1417
|
function $a(e, r) {
|
|
1397
|
-
Object.keys(
|
|
1398
|
-
r.querySelectorAll(
|
|
1418
|
+
Object.keys(oe).forEach((a) => {
|
|
1419
|
+
r.querySelectorAll(oe[a]).forEach((i) => {
|
|
1399
1420
|
i.addEventListener("pointerdown", (t) => Sa(e, r, a, i, t));
|
|
1400
1421
|
});
|
|
1401
1422
|
});
|
|
1402
1423
|
}
|
|
1403
1424
|
function Sa(e, r, a, i, t) {
|
|
1404
|
-
if (t.pointerType === "mouse" && t.button !== 0 || e.editingLayerId || e.editingFeatureId ||
|
|
1405
|
-
|
|
1406
|
-
const o =
|
|
1425
|
+
if (t.pointerType === "mouse" && t.button !== 0 || e.editingLayerId || e.editingFeatureId || re(e, i) === null) return;
|
|
1426
|
+
z == null || z.cancelar();
|
|
1427
|
+
const o = oe[a], n = t.ctrlKey || t.metaKey, s = t.shiftKey;
|
|
1407
1428
|
let l = !1, c = !1, d = t.clientY;
|
|
1408
1429
|
const p = /* @__PURE__ */ new Set([i]), f = (b) => {
|
|
1409
1430
|
b.preventDefault(), b.stopImmediatePropagation();
|
|
1410
1431
|
}, m = (b) => {
|
|
1411
1432
|
b.stopPropagation(), b.preventDefault();
|
|
1412
1433
|
}, u = (b) => b.preventDefault(), g = (b) => {
|
|
1413
|
-
p.has(b) || (p.add(b),
|
|
1434
|
+
p.has(b) || (p.add(b), re(e, b) !== c && ve(b, a === "selecao"));
|
|
1414
1435
|
}, k = () => {
|
|
1415
|
-
l = !0,
|
|
1436
|
+
l = !0, ve(i, n, s), c = re(e, i) === !0, r.addEventListener("selectstart", u), document.body.style.userSelect = "none";
|
|
1416
1437
|
}, x = (b) => {
|
|
1417
1438
|
var O, B;
|
|
1418
1439
|
if (!l) {
|
|
1419
1440
|
if (Math.hypot(b.clientX - t.clientX, b.clientY - t.clientY) < Ia) return;
|
|
1420
|
-
const
|
|
1421
|
-
if (!
|
|
1441
|
+
const E = (O = r.elementFromPoint(b.clientX, b.clientY)) == null ? void 0 : O.closest(o);
|
|
1442
|
+
if (!E || E === i) return;
|
|
1422
1443
|
k();
|
|
1423
1444
|
}
|
|
1424
1445
|
b.preventDefault();
|
|
1425
|
-
const h = Math.min(d, b.clientY),
|
|
1426
|
-
r.querySelectorAll(o).forEach((
|
|
1427
|
-
const T =
|
|
1446
|
+
const h = Math.min(d, b.clientY), y = Math.max(d, b.clientY);
|
|
1447
|
+
r.querySelectorAll(o).forEach((E) => {
|
|
1448
|
+
const T = E.getBoundingClientRect();
|
|
1428
1449
|
if (T.height === 0) return;
|
|
1429
1450
|
const F = T.top + T.height / 2;
|
|
1430
|
-
F >= h && F <=
|
|
1451
|
+
F >= h && F <= y && g(E);
|
|
1431
1452
|
});
|
|
1432
1453
|
const $ = (B = r.elementFromPoint(b.clientX, b.clientY)) == null ? void 0 : B.closest(o);
|
|
1433
1454
|
$ && g($), d = b.clientY;
|
|
1434
|
-
},
|
|
1435
|
-
(
|
|
1436
|
-
}, C = () =>
|
|
1437
|
-
|
|
1455
|
+
}, w = (b = !1) => {
|
|
1456
|
+
(z == null ? void 0 : z.cancelar) === L && (z = null), window.removeEventListener("pointermove", x), window.removeEventListener("pointerup", C), window.removeEventListener("pointercancel", C), window.removeEventListener("dragstart", f, !0), r.removeEventListener("selectstart", u), l && (document.body.style.userSelect = "", b || (window.addEventListener("click", m, { capture: !0, once: !0 }), setTimeout(() => window.removeEventListener("click", m, !0), 0)));
|
|
1457
|
+
}, C = () => w(), L = () => w(!0);
|
|
1458
|
+
z = { host: e, cancelar: L }, window.addEventListener("dragstart", f, !0), window.addEventListener("pointermove", x, { passive: !1 }), window.addEventListener("pointerup", C), window.addEventListener("pointercancel", C);
|
|
1438
1459
|
}
|
|
1439
1460
|
function Ma(e, r) {
|
|
1440
1461
|
const a = r.getElementById("btn-toggle-all-vis");
|
|
@@ -1460,7 +1481,7 @@ function za(e, r) {
|
|
|
1460
1481
|
e.searchQuery = "", e.solicitarRenderizacao(), (o = r.getElementById("input-layer-search")) == null || o.focus();
|
|
1461
1482
|
};
|
|
1462
1483
|
if (a) {
|
|
1463
|
-
const o =
|
|
1484
|
+
const o = ye(() => e.solicitarRenderizacao(), 75);
|
|
1464
1485
|
a.addEventListener("input", (n) => {
|
|
1465
1486
|
e.searchQuery = n.target.value, o();
|
|
1466
1487
|
}), a.addEventListener("keydown", (n) => {
|
|
@@ -1572,18 +1593,18 @@ function Da(e, r, a, i) {
|
|
|
1572
1593
|
}
|
|
1573
1594
|
!p && f && ((g = P(a, f.name, f.value)) == null || g.focus({ preventScroll: !0 })), (k = r.querySelector("[data-layer-row], [data-feat-row]")) == null || k.setAttribute("tabindex", "0"), qa(e, r), i.bindAll();
|
|
1574
1595
|
}
|
|
1575
|
-
const Pa = '[role="button"][tabindex]',
|
|
1576
|
-
function
|
|
1596
|
+
const Pa = '[role="button"][tabindex]', N = "[data-layer-row], [data-feat-row]", Ta = ["color", "range", "checkbox", "radio", "button"];
|
|
1597
|
+
function Ce(e) {
|
|
1577
1598
|
return e instanceof HTMLSelectElement || e instanceof HTMLTextAreaElement ? !0 : e instanceof HTMLInputElement && !Ta.includes(e.type);
|
|
1578
1599
|
}
|
|
1579
1600
|
function Ra(e) {
|
|
1580
|
-
return Array.from(e.querySelectorAll(
|
|
1601
|
+
return Array.from(e.querySelectorAll(N)).filter((r) => {
|
|
1581
1602
|
const a = r.closest(".ui-children-container");
|
|
1582
1603
|
return !(a && a.style.display === "none") && !r.classList.contains("ui-search-hidden");
|
|
1583
1604
|
});
|
|
1584
1605
|
}
|
|
1585
|
-
function
|
|
1586
|
-
r && (e.querySelectorAll(
|
|
1606
|
+
function _(e, r) {
|
|
1607
|
+
r && (e.querySelectorAll(N).forEach((a) => a.setAttribute("tabindex", "-1")), r.setAttribute("tabindex", "0"), r.focus());
|
|
1587
1608
|
}
|
|
1588
1609
|
function Oa(e, r) {
|
|
1589
1610
|
e.dispatchEvent(
|
|
@@ -1596,7 +1617,7 @@ function Oa(e, r) {
|
|
|
1596
1617
|
}
|
|
1597
1618
|
function ja(e, r, a) {
|
|
1598
1619
|
var i;
|
|
1599
|
-
if (!
|
|
1620
|
+
if (!Ce(a.composedPath()[0])) {
|
|
1600
1621
|
if (e.activeSettingsLayerId) {
|
|
1601
1622
|
a.preventDefault();
|
|
1602
1623
|
const t = e.activeSettingsLayerId;
|
|
@@ -1609,25 +1630,25 @@ function ja(e, r, a) {
|
|
|
1609
1630
|
function Ha(e, r, a) {
|
|
1610
1631
|
var n;
|
|
1611
1632
|
const i = a.composedPath()[0];
|
|
1612
|
-
if (!(i instanceof HTMLElement) ||
|
|
1633
|
+
if (!(i instanceof HTMLElement) || Ce(i)) return;
|
|
1613
1634
|
if ((a.key === "Enter" || a.key === " ") && i.matches(Pa)) {
|
|
1614
1635
|
a.preventDefault(), i.click();
|
|
1615
1636
|
return;
|
|
1616
1637
|
}
|
|
1617
|
-
if (!i.matches(
|
|
1638
|
+
if (!i.matches(N)) return;
|
|
1618
1639
|
const t = Ra(e), o = t.indexOf(i);
|
|
1619
1640
|
switch (a.key) {
|
|
1620
1641
|
case "ArrowDown":
|
|
1621
|
-
a.preventDefault(),
|
|
1642
|
+
a.preventDefault(), _(e, t[Math.min(t.length - 1, o + 1)]);
|
|
1622
1643
|
break;
|
|
1623
1644
|
case "ArrowUp":
|
|
1624
|
-
a.preventDefault(),
|
|
1645
|
+
a.preventDefault(), _(e, t[Math.max(0, o - 1)]);
|
|
1625
1646
|
break;
|
|
1626
1647
|
case "Home":
|
|
1627
|
-
a.preventDefault(),
|
|
1648
|
+
a.preventDefault(), _(e, t[0]);
|
|
1628
1649
|
break;
|
|
1629
1650
|
case "End":
|
|
1630
|
-
a.preventDefault(),
|
|
1651
|
+
a.preventDefault(), _(e, t[t.length - 1]);
|
|
1631
1652
|
break;
|
|
1632
1653
|
case "ArrowRight":
|
|
1633
1654
|
case "ArrowLeft": {
|
|
@@ -1648,40 +1669,31 @@ function Na(e, r, a, i, t) {
|
|
|
1648
1669
|
o.key === "Escape" && ja(e, a, o);
|
|
1649
1670
|
}), t.add(i, "keydown", (o) => Ha(i, a, o)), t.add(i, "focusin", (o) => {
|
|
1650
1671
|
const n = o.composedPath()[0];
|
|
1651
|
-
n instanceof HTMLElement && n.matches(
|
|
1672
|
+
n instanceof HTMLElement && n.matches(N) && (i.querySelectorAll(N).forEach((s) => s.setAttribute("tabindex", "-1")), n.setAttribute("tabindex", "0"));
|
|
1652
1673
|
});
|
|
1653
1674
|
}
|
|
1654
1675
|
function Ga(e, r) {
|
|
1655
1676
|
r.querySelectorAll("[data-layer-row]").forEach((i) => {
|
|
1656
1677
|
const o = i.getAttribute("data-layer-row") === e.camadaAtivaId;
|
|
1657
|
-
i.classList.toggle("active-drawing-layer", o);
|
|
1658
|
-
const n = i.querySelector(".ui-col-name");
|
|
1659
|
-
if (n) {
|
|
1660
|
-
let s = n.querySelector(".ui-active-badge");
|
|
1661
|
-
if (o && !s) {
|
|
1662
|
-
s = document.createElement("span"), s.className = "ui-active-badge", s.textContent = "✓ Ativa";
|
|
1663
|
-
const l = n.querySelector(".ui-count-chip");
|
|
1664
|
-
l ? n.insertBefore(s, l) : n.appendChild(s);
|
|
1665
|
-
} else !o && s && s.remove();
|
|
1666
|
-
}
|
|
1678
|
+
i.classList.toggle("active-drawing-layer", o), o ? i.setAttribute("aria-current", "true") : i.removeAttribute("aria-current");
|
|
1667
1679
|
});
|
|
1668
1680
|
}
|
|
1669
1681
|
function Va(e, r) {
|
|
1670
1682
|
r.querySelectorAll(".ui-feat-row").forEach((x) => {
|
|
1671
|
-
const
|
|
1683
|
+
const w = x.getAttribute("data-feat-row"), C = w ? e.selectedFeatureIds.has(w) : !1;
|
|
1672
1684
|
x.classList.toggle("selected-row", C), x.setAttribute("aria-selected", String(C));
|
|
1673
1685
|
const L = x.querySelector(".ui-target-circle");
|
|
1674
1686
|
L && L.classList.toggle("selected", C);
|
|
1675
1687
|
}), r.querySelectorAll(".ui-layer-group").forEach((x) => {
|
|
1676
|
-
const
|
|
1688
|
+
const w = x.getAttribute("data-layer-id"), C = e.feicoes.filter((b) => b.layerId === w), L = x.querySelector(".ui-layer-row .ui-target-circle");
|
|
1677
1689
|
if (L && C.length > 0) {
|
|
1678
|
-
const b = C.every((
|
|
1690
|
+
const b = C.every((y) => e.selectedFeatureIds.has(y.id)), h = !b && C.some((y) => e.selectedFeatureIds.has(y.id));
|
|
1679
1691
|
L.classList.toggle("selected", b), L.classList.toggle("partial", h);
|
|
1680
1692
|
} else L && L.classList.remove("selected", "partial");
|
|
1681
1693
|
});
|
|
1682
1694
|
const a = e.feicoes.filter((x) => e.selectedFeatureIds.has(x.id)), i = a.length > 0, t = r.getElementById("footer-count"), o = r.getElementById("footer-label");
|
|
1683
1695
|
t && (t.textContent = String(i ? a.length : e.camadas.length)), o && (o.textContent = i ? a.length > 1 ? "selecionados" : "selecionado" : e.camadas.length > 1 ? "camadas" : "camada");
|
|
1684
|
-
const n = r.querySelector(".ui-footer-metric"), s =
|
|
1696
|
+
const n = r.querySelector(".ui-footer-metric"), s = xe(a);
|
|
1685
1697
|
n && (s ? (n.innerHTML = `${v.reguaMetrica} ${s}`, n.style.display = "inline-flex") : n.style.display = "none");
|
|
1686
1698
|
const l = r.querySelector(".ui-tree-footer");
|
|
1687
1699
|
l && (l.classList.toggle("tem-selecao", i), l.classList.toggle("sem-selecao", !i));
|
|
@@ -1689,8 +1701,8 @@ function Va(e, r) {
|
|
|
1689
1701
|
c && (c.style.display = i ? "none" : "flex");
|
|
1690
1702
|
const d = r.querySelector(".ui-footer-bulk-actions");
|
|
1691
1703
|
d && (d.style.display = i ? "flex" : "none"), ["btn-footer-vis", "btn-footer-lock", "btn-footer-del"].forEach((x) => {
|
|
1692
|
-
const
|
|
1693
|
-
|
|
1704
|
+
const w = r.getElementById(x);
|
|
1705
|
+
w && (w.disabled = !i, w.classList.toggle("disabled", !i));
|
|
1694
1706
|
});
|
|
1695
1707
|
const p = r.querySelector(".ui-footer-move-wrapper");
|
|
1696
1708
|
p && p.classList.toggle("disabled", !i);
|
|
@@ -1731,9 +1743,9 @@ function Ka(e) {
|
|
|
1731
1743
|
}
|
|
1732
1744
|
class Xa {
|
|
1733
1745
|
constructor(r) {
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1746
|
+
A(this, "origens", /* @__PURE__ */ new Map());
|
|
1747
|
+
A(this, "removidas", /* @__PURE__ */ new Set());
|
|
1748
|
+
A(this, "salvarComDebounce", ye(() => this.salvar(), 200));
|
|
1737
1749
|
this.instantaneo = r;
|
|
1738
1750
|
}
|
|
1739
1751
|
chaveAtual() {
|
|
@@ -1741,7 +1753,7 @@ class Xa {
|
|
|
1741
1753
|
return ma(r.storageKey, r.id);
|
|
1742
1754
|
}
|
|
1743
1755
|
carregar() {
|
|
1744
|
-
return
|
|
1756
|
+
return ie(this.chaveAtual());
|
|
1745
1757
|
}
|
|
1746
1758
|
/** Versão com debounce, para interações contínuas (seletor de cor, slider de opacidade). */
|
|
1747
1759
|
agendar() {
|
|
@@ -1751,7 +1763,7 @@ class Xa {
|
|
|
1751
1763
|
const r = this.instantaneo();
|
|
1752
1764
|
if (!r.persistir || !r.conectado) return;
|
|
1753
1765
|
const a = this.chaveAtual(), i = ha({
|
|
1754
|
-
estadoAnterior:
|
|
1766
|
+
estadoAnterior: ie(a),
|
|
1755
1767
|
origensCamadas: this.origens,
|
|
1756
1768
|
camadas: r.camadas,
|
|
1757
1769
|
expandedLayers: r.expandedLayers,
|
|
@@ -1772,7 +1784,7 @@ class Xa {
|
|
|
1772
1784
|
this.origens.clear();
|
|
1773
1785
|
}
|
|
1774
1786
|
registrarOrigem(r) {
|
|
1775
|
-
this.origens.set(r.id,
|
|
1787
|
+
this.origens.set(r.id, Le(r));
|
|
1776
1788
|
}
|
|
1777
1789
|
esquecerCamada(r) {
|
|
1778
1790
|
this.origens.delete(r), this.removidas.add(r);
|
|
@@ -1782,16 +1794,16 @@ class Xa {
|
|
|
1782
1794
|
ba(r, a, i, this.origens);
|
|
1783
1795
|
}
|
|
1784
1796
|
}
|
|
1785
|
-
function
|
|
1797
|
+
function $e(e, r = null) {
|
|
1786
1798
|
const a = [];
|
|
1787
1799
|
for (const i of e) {
|
|
1788
1800
|
const t = { ...i };
|
|
1789
|
-
r && t.parentId === void 0 && (t.parentId = r), a.push(t), Array.isArray(i.children) && i.children.length > 0 && a.push(
|
|
1801
|
+
r && t.parentId === void 0 && (t.parentId = r), a.push(t), Array.isArray(i.children) && i.children.length > 0 && a.push(...$e(i.children, i.id));
|
|
1790
1802
|
}
|
|
1791
1803
|
return a;
|
|
1792
1804
|
}
|
|
1793
1805
|
function Qa(e, r, a) {
|
|
1794
|
-
if (e.camadas = Array.isArray(r) ?
|
|
1806
|
+
if (e.camadas = Array.isArray(r) ? $e(r) : [], e.lembranca.limparOrigens(), e.persistir) {
|
|
1795
1807
|
const t = e.lembranca.carregar();
|
|
1796
1808
|
e.lembranca.reidratar(e.camadas, t, e.expandedLayers), t != null && t.camadaAtivaId && e.camadas.some((o) => o.id === t.camadaAtivaId) && (e.camadaAtivaId = t.camadaAtivaId);
|
|
1797
1809
|
} else
|
|
@@ -1804,13 +1816,13 @@ function Qa(e, r, a) {
|
|
|
1804
1816
|
o.length > 0 && console.warn(
|
|
1805
1817
|
`[UI-Camadas] ${o.length} feição(ões) possuem 'layerId' não cadastrado nas camadas:`,
|
|
1806
1818
|
o.map((n) => ({ id: n.id, nome: n.name, layerId: n.layerId }))
|
|
1807
|
-
),
|
|
1819
|
+
), se(e.selectedFeatureIds, e.feicoes);
|
|
1808
1820
|
}
|
|
1809
1821
|
const i = e.getAttribute("camada-ativa");
|
|
1810
1822
|
e.camadas.length > 0 && (!i || !e.camadas.some((t) => t.id === i)) && (e.camadaAtivaId = e.camadas[0].id), e.salvarLembrancaEstado(), e.solicitarRenderizacao();
|
|
1811
1823
|
}
|
|
1812
1824
|
function Ja(e, r) {
|
|
1813
|
-
e.feicoes = Array.isArray(r) ? r.map((a) => ({ ...a })) : [],
|
|
1825
|
+
e.feicoes = Array.isArray(r) ? r.map((a) => ({ ...a })) : [], se(e.selectedFeatureIds, e.feicoes), e.solicitarRenderizacao();
|
|
1814
1826
|
}
|
|
1815
1827
|
function Wa(e, r) {
|
|
1816
1828
|
if (!r || !r.id) return;
|
|
@@ -1825,7 +1837,7 @@ function Za(e, r) {
|
|
|
1825
1837
|
var a;
|
|
1826
1838
|
e.camadas.forEach((i) => {
|
|
1827
1839
|
i.parentId === r && (i.parentId = null);
|
|
1828
|
-
}), e.camadas = e.camadas.filter((i) => i.id !== r), e.feicoes = e.feicoes.filter((i) => i.layerId !== r), e.lembranca.esquecerCamada(r), e.expandedLayers.delete(r), e.activeSettingsLayerId === r && (e.activeSettingsLayerId = null),
|
|
1840
|
+
}), e.camadas = e.camadas.filter((i) => i.id !== r), e.feicoes = e.feicoes.filter((i) => i.layerId !== r), e.lembranca.esquecerCamada(r), e.expandedLayers.delete(r), e.activeSettingsLayerId === r && (e.activeSettingsLayerId = null), se(e.selectedFeatureIds, e.feicoes), e.selectedFeatureIds.size === 0 && (e.lastClickedFeatureId = null), e.camadaAtivaId === r && (e.camadaAtivaId = ((a = e.camadas[0]) == null ? void 0 : a.id) ?? null), e.salvarLembrancaEstado(), e.solicitarRenderizacao();
|
|
1829
1841
|
}
|
|
1830
1842
|
function er(e, r) {
|
|
1831
1843
|
if (!(!r || !r.id)) {
|
|
@@ -1883,10 +1895,10 @@ function tr(e) {
|
|
|
1883
1895
|
e.resizerElement.setPointerCapture(u.pointerId);
|
|
1884
1896
|
} catch {
|
|
1885
1897
|
}
|
|
1886
|
-
const g = (
|
|
1898
|
+
const g = (w) => {
|
|
1887
1899
|
if (!c) return;
|
|
1888
|
-
|
|
1889
|
-
const C =
|
|
1900
|
+
w.preventDefault();
|
|
1901
|
+
const C = w.clientY - d, L = Math.max(i(), Math.min(t(), Math.round(p + C)));
|
|
1890
1902
|
e.hostElement.style.height = `${L}px`, e.hostElement.style.setProperty("--ui-camadas-altura", `${L}px`), e.onRedimensionando && e.onRedimensionando(L), e.hostElement.dispatchEvent(
|
|
1891
1903
|
new CustomEvent("ui-redimensionando-altura", {
|
|
1892
1904
|
bubbles: !0,
|
|
@@ -1895,13 +1907,13 @@ function tr(e) {
|
|
|
1895
1907
|
})
|
|
1896
1908
|
);
|
|
1897
1909
|
}, k = () => {
|
|
1898
|
-
var
|
|
1899
|
-
c = !1, n = null, window.removeEventListener("pointermove", g), window.removeEventListener("pointerup", x), window.removeEventListener("pointercancel", x), (
|
|
1900
|
-
}, x = (
|
|
1910
|
+
var w;
|
|
1911
|
+
c = !1, n = null, window.removeEventListener("pointermove", g), window.removeEventListener("pointerup", x), window.removeEventListener("pointercancel", x), (w = e.resizerElement) == null || w.classList.remove("ui-camadas-resizer--ativo"), e.hostElement.classList.remove("ui-camadas--redimensionando");
|
|
1912
|
+
}, x = (w) => {
|
|
1901
1913
|
if (!c) return;
|
|
1902
1914
|
c = !1, e.resizerElement.classList.remove("ui-camadas-resizer--ativo"), e.hostElement.classList.remove("ui-camadas--redimensionando");
|
|
1903
1915
|
try {
|
|
1904
|
-
e.resizerElement.hasPointerCapture(
|
|
1916
|
+
e.resizerElement.hasPointerCapture(w.pointerId) && e.resizerElement.releasePointerCapture(w.pointerId);
|
|
1905
1917
|
} catch {
|
|
1906
1918
|
}
|
|
1907
1919
|
window.removeEventListener("pointermove", g), window.removeEventListener("pointerup", x), window.removeEventListener("pointercancel", x);
|
|
@@ -1929,19 +1941,19 @@ function tr(e) {
|
|
|
1929
1941
|
destruir: l
|
|
1930
1942
|
};
|
|
1931
1943
|
}
|
|
1932
|
-
const R = class R extends
|
|
1944
|
+
const R = class R extends He {
|
|
1933
1945
|
constructor() {
|
|
1934
1946
|
super();
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1947
|
+
A(this, "shadow");
|
|
1948
|
+
A(this, "listeners", new Ne());
|
|
1949
|
+
A(this, "dragDropManager");
|
|
1950
|
+
A(this, "resizerController");
|
|
1951
|
+
A(this, "alturaCustomizada", null);
|
|
1952
|
+
A(this, "conectado", !1);
|
|
1953
|
+
A(this, "profundidadeLote", 0);
|
|
1954
|
+
A(this, "renderPendente", !1);
|
|
1943
1955
|
/** @internal */
|
|
1944
|
-
|
|
1956
|
+
A(this, "lembranca", new Xa(() => ({
|
|
1945
1957
|
persistir: this.persistir,
|
|
1946
1958
|
conectado: this.conectado,
|
|
1947
1959
|
storageKey: this.storageKey,
|
|
@@ -1955,18 +1967,18 @@ const R = class R extends Ne {
|
|
|
1955
1967
|
altura: this.alturaCustomizada
|
|
1956
1968
|
})));
|
|
1957
1969
|
// Estado interno
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
+
A(this, "camadas", []);
|
|
1971
|
+
A(this, "feicoes", []);
|
|
1972
|
+
A(this, "mapasBase", [...we]);
|
|
1973
|
+
A(this, "expandedLayers", /* @__PURE__ */ new Set());
|
|
1974
|
+
A(this, "selectedFeatureIds", /* @__PURE__ */ new Set());
|
|
1975
|
+
A(this, "lastClickedFeatureId", null);
|
|
1976
|
+
A(this, "activeSettingsLayerId", null);
|
|
1977
|
+
A(this, "editingLayerId", null);
|
|
1978
|
+
A(this, "editingFeatureId", null);
|
|
1979
|
+
A(this, "searchQuery", "");
|
|
1980
|
+
A(this, "corpoElement");
|
|
1981
|
+
A(this, "btnExpandirFlutuante");
|
|
1970
1982
|
this.shadow = this.attachShadow({ mode: "open" }), this.shadow.innerHTML = `
|
|
1971
1983
|
<style>${xa}</style>
|
|
1972
1984
|
<div class="ui-camadas-container" id="panel-container" role="region" aria-label="Painel de Camadas">
|
|
@@ -2022,7 +2034,7 @@ const R = class R extends Ne {
|
|
|
2022
2034
|
}
|
|
2023
2035
|
connectedCallback() {
|
|
2024
2036
|
if (this.persistir) {
|
|
2025
|
-
const a =
|
|
2037
|
+
const a = ie(this.obterChaveStorageAtual());
|
|
2026
2038
|
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));
|
|
2027
2039
|
}
|
|
2028
2040
|
this.hasAttribute("altura") && this.resizerController.definirAltura(this.getAttribute("altura"), !1), this.persistir && !this.storageKey && !this.id && (R.instanciasChavePadrao.size > 0 && console.warn(
|
|
@@ -2066,7 +2078,7 @@ const R = class R extends Ne {
|
|
|
2066
2078
|
t.classList.toggle("active", o), t.setAttribute("aria-pressed", String(o));
|
|
2067
2079
|
});
|
|
2068
2080
|
const i = this.shadow.querySelector("[data-basemap-atual]");
|
|
2069
|
-
i && (i.textContent =
|
|
2081
|
+
i && (i.textContent = Ee(this.mapasBase, a));
|
|
2070
2082
|
}
|
|
2071
2083
|
/** Seção "Mapa Base" recolhida (só o cabeçalho com o mapa ativo). Atributo `mapas-base-recolhido`. */
|
|
2072
2084
|
get mapasBaseRecolhido() {
|
|
@@ -2323,16 +2335,16 @@ const R = class R extends Ne {
|
|
|
2323
2335
|
}
|
|
2324
2336
|
};
|
|
2325
2337
|
/** Painéis conectados sem `id` nem `storage-key`: dividem a mesma chave de persistência. */
|
|
2326
|
-
|
|
2327
|
-
let
|
|
2328
|
-
class ir extends
|
|
2338
|
+
A(R, "instanciasChavePadrao", /* @__PURE__ */ new Set());
|
|
2339
|
+
let G = R;
|
|
2340
|
+
class ir extends G {
|
|
2329
2341
|
}
|
|
2330
|
-
class or extends
|
|
2342
|
+
class or extends G {
|
|
2331
2343
|
}
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
function
|
|
2344
|
+
ne("ui-camadas", G);
|
|
2345
|
+
ne("ui-painel-camadas", ir);
|
|
2346
|
+
ne("ui-layer-panel", or);
|
|
2347
|
+
function ur(e) {
|
|
2336
2348
|
var r;
|
|
2337
2349
|
return {
|
|
2338
2350
|
id: e.id,
|
|
@@ -2349,7 +2361,7 @@ function dr(e) {
|
|
|
2349
2361
|
dados: e.dados
|
|
2350
2362
|
};
|
|
2351
2363
|
}
|
|
2352
|
-
function
|
|
2364
|
+
function pr(e, r = "levantamento", a = "feicoes") {
|
|
2353
2365
|
return {
|
|
2354
2366
|
id: e.id,
|
|
2355
2367
|
nome: e.name,
|
|
@@ -2368,7 +2380,7 @@ function ur(e, r = "levantamento", a = "feicoes") {
|
|
|
2368
2380
|
dados: typeof e.dados == "object" && e.dados !== null ? e.dados : void 0
|
|
2369
2381
|
};
|
|
2370
2382
|
}
|
|
2371
|
-
function
|
|
2383
|
+
function fr(e, r = "") {
|
|
2372
2384
|
var o, n, s, l;
|
|
2373
2385
|
const a = ((o = e.geometria) == null ? void 0 : o.tipo) || ((n = e.geometria) == null ? void 0 : n.type) || e.tipo || e.type || "Polygon", i = ((s = e.geometria) == null ? void 0 : s.coordenadas) || ((l = e.geometria) == null ? void 0 : l.coordinates) || e.coordinates, t = e.cor || e.color;
|
|
2374
2386
|
return {
|
|
@@ -2389,39 +2401,39 @@ function pr(e, r = "") {
|
|
|
2389
2401
|
export {
|
|
2390
2402
|
pa as CamadasDragDropManager,
|
|
2391
2403
|
v as ICONES,
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2404
|
+
ke as LIMITE_FEICOES_POR_CAMADA,
|
|
2405
|
+
we as MAPAS_BASE_PADRAO,
|
|
2406
|
+
G as UICamadas,
|
|
2395
2407
|
or as UILayerPanel,
|
|
2396
|
-
|
|
2408
|
+
vr as UIMapaBase,
|
|
2397
2409
|
ir as UIPainelCamadas,
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2410
|
+
br as UISeletorMapaBase,
|
|
2411
|
+
Z as calcularAreaAnelSimples,
|
|
2412
|
+
he as calcularAreaPoligono,
|
|
2413
|
+
be as calcularComprimentoLinha,
|
|
2402
2414
|
Ve as calcularDistanciaPontos,
|
|
2403
2415
|
aa as calcularSelecaoFeicao,
|
|
2404
|
-
|
|
2416
|
+
ie as carregarEstadoPersistido,
|
|
2405
2417
|
Ze as construirHierarquiaCamadas,
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2418
|
+
pr as converterCamadaItemParaCanvasLayer,
|
|
2419
|
+
ur as converterCanvasLayerParaCamadaItem,
|
|
2420
|
+
fr as converterFeicaoParaItem,
|
|
2409
2421
|
S as escapeHtml,
|
|
2410
|
-
|
|
2422
|
+
Ie as filtrarCamadasPorBusca,
|
|
2411
2423
|
K as filtrarFeicoesPorBusca,
|
|
2412
|
-
|
|
2424
|
+
xe as formatarMetricaFeicoes,
|
|
2413
2425
|
Xe as formatarOpcoesCamadasHierarquicas,
|
|
2414
2426
|
ma as gerarChaveStorage,
|
|
2415
2427
|
va as limparEstadoPersistido,
|
|
2416
2428
|
ha as montarEstadoPersistido,
|
|
2417
|
-
|
|
2429
|
+
Ee as nomeDoMapaBase,
|
|
2418
2430
|
ea as obterIdsVisiveisFeicoes,
|
|
2419
2431
|
ba as reidratarCamadasComOverrides,
|
|
2420
|
-
|
|
2432
|
+
se as removerSelecoesInvalidas,
|
|
2421
2433
|
ra as renderizarArvoreCamadas,
|
|
2422
2434
|
Ke as renderizarGridMapasBase,
|
|
2423
2435
|
Qe as renderizarRodapeAcoes,
|
|
2424
2436
|
We as renderizarThumbGeometria,
|
|
2425
2437
|
ga as salvarEstadoPersistido,
|
|
2426
|
-
|
|
2438
|
+
Le as snapshotCamada
|
|
2427
2439
|
};
|