@thibezer/ui-components-kit 2.12.2 → 2.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.md +1 -1
- package/dist/camadas.cjs +60 -60
- package/dist/camadas.js +676 -579
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
- package/dist/components/ui-camadas/camadas-persistencia.d.ts +6 -1
- package/dist/components/ui-camadas/camadas-sincronizacao-dom.d.ts +5 -0
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +2 -0
- package/dist/components/ui-tabela-propriedades/editores-basicos.d.ts +6 -0
- package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +5 -2
- package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +2 -0
- package/dist/components/ui-tabela-propriedades/tipos.d.ts +6 -0
- package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +6 -1
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +2 -2
- package/dist/custom-elements.json +11821 -11639
- package/dist/data.cjs +1 -1
- package/dist/data.js +39 -38
- package/dist/index.cjs +1 -1
- package/dist/index.js +100 -98
- package/dist/register.cjs +1 -1
- package/dist/register.js +3 -3
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +31 -30
- package/dist/tipos-elementos.d.ts +3 -3
- package/dist/tipos-vue.d.ts +3 -3
- package/dist/ui-controle-cores-C_cVXxCn.js +291 -0
- package/dist/ui-controle-cores-CuDFS8Y8.cjs +32 -0
- package/dist/ui-seletor-cor-DPKqf5wb.cjs +82 -0
- package/dist/ui-seletor-cor-FYtRccnK.js +396 -0
- package/dist/ui-tabela-propriedades-C5YYnod1.js +3053 -0
- package/dist/ui-tabela-propriedades-DWOKznMN.cjs +142 -0
- package/package.json +187 -187
package/dist/camadas.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
1
|
+
var da = Object.defineProperty;
|
|
2
|
+
var ua = (e, r, a) => r in e ? da(e, r, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[r] = a;
|
|
3
|
+
var w = (e, r, a) => ua(e, typeof r != "symbol" ? r + "" : r, a);
|
|
4
4
|
/* empty css */
|
|
5
|
-
import { d as
|
|
6
|
-
import { L as
|
|
7
|
-
import { a as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { UIMapaBase as
|
|
5
|
+
import { d as xe, S as pa } from "./ssr-safe-5cWfJP-s.js";
|
|
6
|
+
import { L as fa } from "./listener-bag-DQgv7OON.js";
|
|
7
|
+
import { a as Re } from "./parts-CaoQiCfI.js";
|
|
8
|
+
import { a as ma } from "./ui-seletor-cor-FYtRccnK.js";
|
|
9
|
+
import { f as ga } from "./alvo-digitavel-CzCvNVQ3.js";
|
|
10
|
+
import { UIMapaBase as Vr, UISeletorMapaBase as Yr } from "./seletor-mapa-base.js";
|
|
11
11
|
const b = {
|
|
12
12
|
camadas: `<svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
13
13
|
<polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
|
|
@@ -106,8 +106,8 @@ const b = {
|
|
|
106
106
|
<line x1="9" y1="3" x2="9" y2="21"></line>
|
|
107
107
|
<line x1="15" y1="3" x2="15" y2="21"></line>
|
|
108
108
|
</svg>`
|
|
109
|
-
},
|
|
110
|
-
function
|
|
109
|
+
}, Y = 6378137;
|
|
110
|
+
function va(e, r) {
|
|
111
111
|
if (!Array.isArray(e) || !Array.isArray(r) || e.length < 2 || r.length < 2 || !Number.isFinite(e[0]) || !Number.isFinite(e[1]) || !Number.isFinite(r[0]) || !Number.isFinite(r[1]))
|
|
112
112
|
return 0;
|
|
113
113
|
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, l = o - i, c = Math.min(
|
|
@@ -116,65 +116,65 @@ function ia(e, r) {
|
|
|
116
116
|
0,
|
|
117
117
|
Math.sin(n / 2) * Math.sin(n / 2) + Math.cos(a) * Math.cos(t) * Math.sin(l / 2) * Math.sin(l / 2)
|
|
118
118
|
)
|
|
119
|
-
), s =
|
|
119
|
+
), s = Y * 2 * Math.atan2(Math.sqrt(c), Math.sqrt(1 - c));
|
|
120
120
|
return Number.isFinite(s) ? s : 0;
|
|
121
121
|
}
|
|
122
|
-
function
|
|
122
|
+
function Oe(e) {
|
|
123
123
|
if (!Array.isArray(e) || e.length < 2) return 0;
|
|
124
124
|
if (Array.isArray(e[0]) && Array.isArray(e[0][0]))
|
|
125
|
-
return e.reduce((a, i) => a +
|
|
125
|
+
return e.reduce((a, i) => a + Oe(i), 0);
|
|
126
126
|
let r = 0;
|
|
127
127
|
for (let a = 0; a < e.length - 1; a++) {
|
|
128
128
|
const i = e[a], t = e[a + 1];
|
|
129
|
-
Array.isArray(i) && Array.isArray(t) && i.length >= 2 && t.length >= 2 && (r +=
|
|
129
|
+
Array.isArray(i) && Array.isArray(t) && i.length >= 2 && t.length >= 2 && (r += va([i[0], i[1]], [t[0], t[1]]));
|
|
130
130
|
}
|
|
131
131
|
return r;
|
|
132
132
|
}
|
|
133
|
-
function
|
|
133
|
+
function ue(e) {
|
|
134
134
|
if (!Array.isArray(e)) return 0;
|
|
135
135
|
const r = [];
|
|
136
|
-
for (let
|
|
137
|
-
const p = e[
|
|
136
|
+
for (let u = 0; u < e.length; u++) {
|
|
137
|
+
const p = e[u];
|
|
138
138
|
Array.isArray(p) && p.length >= 2 && Number.isFinite(p[0]) && Number.isFinite(p[1]) && r.push([p[0], p[1]]);
|
|
139
139
|
}
|
|
140
140
|
r.length > 3 && r[0][0] === r[r.length - 1][0] && r[0][1] === r[r.length - 1][1] && r.pop();
|
|
141
141
|
const a = r.length;
|
|
142
142
|
if (a < 3) return 0;
|
|
143
143
|
let i = 0;
|
|
144
|
-
for (let
|
|
145
|
-
i += r[
|
|
144
|
+
for (let u = 0; u < a; u++)
|
|
145
|
+
i += r[u][0];
|
|
146
146
|
const t = i / a * Math.PI / 180, o = Math.cos(t), n = Math.PI / 180, l = r[0][0], c = r[0][1];
|
|
147
147
|
let s = 0;
|
|
148
|
-
for (let
|
|
149
|
-
const p = r[
|
|
150
|
-
s +=
|
|
148
|
+
for (let u = 0; u < a; u++) {
|
|
149
|
+
const p = r[u], m = r[(u + 1) % a], f = (p[1] - c) * n * Y * o, g = (p[0] - l) * n * Y, v = (m[1] - c) * n * Y * o, h = (m[0] - l) * n * Y;
|
|
150
|
+
s += f * h - v * g;
|
|
151
151
|
}
|
|
152
152
|
const d = Math.abs(s) / 2;
|
|
153
153
|
return Number.isFinite(d) ? d : 0;
|
|
154
154
|
}
|
|
155
|
-
function
|
|
155
|
+
function je(e) {
|
|
156
156
|
if (!Array.isArray(e) || e.length === 0) return 0;
|
|
157
157
|
if (Array.isArray(e[0]) && typeof e[0][0] == "number")
|
|
158
|
-
return
|
|
158
|
+
return ue(e);
|
|
159
159
|
if (Array.isArray(e[0]) && Array.isArray(e[0][0])) {
|
|
160
160
|
if (Array.isArray(e[0][0][0]))
|
|
161
|
-
return e.reduce((i, t) => i +
|
|
162
|
-
const r =
|
|
161
|
+
return e.reduce((i, t) => i + je(t), 0);
|
|
162
|
+
const r = ue(e[0]);
|
|
163
163
|
let a = 0;
|
|
164
164
|
for (let i = 1; i < e.length; i++)
|
|
165
|
-
a +=
|
|
165
|
+
a += ue(e[i]);
|
|
166
166
|
return Math.max(0, r - a);
|
|
167
167
|
}
|
|
168
168
|
return 0;
|
|
169
169
|
}
|
|
170
|
-
function
|
|
170
|
+
function Or(e) {
|
|
171
171
|
if (!e || e.length === 0) return "";
|
|
172
172
|
const r = e.filter(
|
|
173
173
|
(i) => i.type === "Polygon" || i.type === "MultiPolygon" || i.geometryType === "Polygon"
|
|
174
174
|
);
|
|
175
175
|
if (r.length > 0) {
|
|
176
176
|
const i = r.reduce(
|
|
177
|
-
(t, o) => t + (
|
|
177
|
+
(t, o) => t + (je(o.coordinates) || 0),
|
|
178
178
|
0
|
|
179
179
|
);
|
|
180
180
|
return i >= 1e4 ? `${(i / 1e4).toLocaleString("pt-BR", {
|
|
@@ -187,7 +187,7 @@ function Lr(e) {
|
|
|
187
187
|
);
|
|
188
188
|
if (a.length > 0) {
|
|
189
189
|
const i = a.reduce(
|
|
190
|
-
(t, o) => t + (
|
|
190
|
+
(t, o) => t + (Oe(o.coordinates) || 0),
|
|
191
191
|
0
|
|
192
192
|
);
|
|
193
193
|
return i >= 1e3 ? `${(i / 1e3).toLocaleString("pt-BR", {
|
|
@@ -197,23 +197,23 @@ function Lr(e) {
|
|
|
197
197
|
}
|
|
198
198
|
return "";
|
|
199
199
|
}
|
|
200
|
-
function
|
|
200
|
+
function F(e) {
|
|
201
201
|
return e == null ? "" : String(e).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
202
202
|
}
|
|
203
|
-
const
|
|
204
|
-
function
|
|
203
|
+
const ba = /^(#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?:rgb|hsl)a?\(\s*[\w.%\s,/+-]+\)|[a-z]{3,30})$/i;
|
|
204
|
+
function K(e, r = "#00E08A") {
|
|
205
205
|
if (!e || typeof e != "string") return r;
|
|
206
206
|
const a = e.trim();
|
|
207
|
-
return
|
|
207
|
+
return ba.test(a) ? a : r;
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function pe(e) {
|
|
210
210
|
return Math.max(0, Math.min(255, Math.round(e))).toString(16).padStart(2, "0");
|
|
211
211
|
}
|
|
212
|
-
function
|
|
212
|
+
function ha(e, r, a) {
|
|
213
213
|
const i = r / 100, t = a / 100, o = (c) => (c + e / 30) % 12, n = i * Math.min(t, 1 - t), l = (c) => t - n * Math.max(-1, Math.min(o(c) - 3, Math.min(9 - o(c), 1)));
|
|
214
214
|
return [l(0) * 255, l(8) * 255, l(4) * 255];
|
|
215
215
|
}
|
|
216
|
-
function
|
|
216
|
+
function xa(e, r = "#000000") {
|
|
217
217
|
if (!e || typeof e != "string") return r;
|
|
218
218
|
const a = e.trim().toLowerCase(), i = /^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(a);
|
|
219
219
|
if (i) {
|
|
@@ -224,8 +224,8 @@ function sa(e, r = "#000000") {
|
|
|
224
224
|
if (t) {
|
|
225
225
|
const o = t[2].split(/[\s,/]+/).filter(Boolean).map((n) => parseFloat(n));
|
|
226
226
|
if (o.length >= 3 && o.slice(0, 3).every((n) => !isNaN(n))) {
|
|
227
|
-
const [n, l, c] = o, [s, d,
|
|
228
|
-
return `#${
|
|
227
|
+
const [n, l, c] = o, [s, d, u] = t[1] === "rgb" ? [n, l, c] : ha(n, l, c);
|
|
228
|
+
return `#${pe(s)}${pe(d)}${pe(u)}`;
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
return r;
|
|
@@ -236,7 +236,7 @@ function T(e, r, a) {
|
|
|
236
236
|
if (i[t].getAttribute(r) === a) return i[t];
|
|
237
237
|
return null;
|
|
238
238
|
}
|
|
239
|
-
function
|
|
239
|
+
function Ne(e, r = 80) {
|
|
240
240
|
let a = null;
|
|
241
241
|
return (...i) => {
|
|
242
242
|
a && clearTimeout(a), a = setTimeout(() => {
|
|
@@ -244,10 +244,10 @@ function Se(e, r = 80) {
|
|
|
244
244
|
}, r);
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
|
-
function
|
|
247
|
+
function B(e, r) {
|
|
248
248
|
e.setAttribute("title", r), e.setAttribute("aria-label", r);
|
|
249
249
|
}
|
|
250
|
-
const
|
|
250
|
+
const He = [
|
|
251
251
|
{
|
|
252
252
|
id: "none",
|
|
253
253
|
nome: "Sem Mapa",
|
|
@@ -290,16 +290,16 @@ const Me = [
|
|
|
290
290
|
thumbnailUrl: "https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"
|
|
291
291
|
}
|
|
292
292
|
];
|
|
293
|
-
function
|
|
293
|
+
function Ge(e, r) {
|
|
294
294
|
const a = Array.isArray(e) ? e.find((i) => i.id === r) : void 0;
|
|
295
295
|
return a && typeof a.nome == "string" ? a.nome : "";
|
|
296
296
|
}
|
|
297
|
-
function
|
|
297
|
+
function ya(e = He, r = "satelite", a = !1) {
|
|
298
298
|
if (!e || e.length === 0) return "";
|
|
299
299
|
const i = e.map((t) => {
|
|
300
|
-
const o = r === t.id, n =
|
|
300
|
+
const o = r === t.id, n = F(t.id), l = F(t.nome), c = F(t.descricao || t.nome);
|
|
301
301
|
let s = "";
|
|
302
|
-
return t.thumbnailUrl ? s = `<img class="ui-basemap-preview" src="${
|
|
302
|
+
return t.thumbnailUrl ? s = `<img class="ui-basemap-preview" src="${F(t.thumbnailUrl)}" alt="" loading="lazy" referrerpolicy="no-referrer" data-basemap-thumb />` : s = `<div class="ui-basemap-preview-none">${b.gradeCad}</div>`, `
|
|
303
303
|
<div class="ui-basemap-card ${o ? "active" : ""}" data-basemap-id="${n}" role="button" tabindex="0" aria-pressed="${o}" title="${c}">
|
|
304
304
|
${s}
|
|
305
305
|
<span>${l}</span>
|
|
@@ -310,7 +310,7 @@ function la(e = Me, r = "satelite", a = !1) {
|
|
|
310
310
|
<div class="ui-basemap-section ${a ? "recolhido" : ""}" part="mapas-base">
|
|
311
311
|
<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"}">
|
|
312
312
|
<span class="ui-basemap-title">Mapa Base</span>
|
|
313
|
-
<span class="ui-basemap-atual" data-basemap-atual>${
|
|
313
|
+
<span class="ui-basemap-atual" data-basemap-atual>${F(Ge(e, r))}</span>
|
|
314
314
|
<span class="ui-chevron-icon ${a ? "" : "open"}">${b.chevronDir}</span>
|
|
315
315
|
</button>
|
|
316
316
|
${a ? "" : `<div class="ui-basemap-grid" id="ui-basemap-grid">
|
|
@@ -319,7 +319,7 @@ function la(e = Me, r = "satelite", a = !1) {
|
|
|
319
319
|
</div>
|
|
320
320
|
`;
|
|
321
321
|
}
|
|
322
|
-
function
|
|
322
|
+
function ye(e) {
|
|
323
323
|
if (!Array.isArray(e) || e.length === 0) return [];
|
|
324
324
|
const r = e.filter((s) => !!(s && typeof s == "object" && s.id)), a = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
|
|
325
325
|
r.forEach((s, d) => {
|
|
@@ -328,19 +328,19 @@ function ve(e) {
|
|
|
328
328
|
const t = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
|
|
329
329
|
for (const s of r) {
|
|
330
330
|
if (o.has(s.id)) continue;
|
|
331
|
-
const d = [],
|
|
331
|
+
const d = [], u = /* @__PURE__ */ new Map();
|
|
332
332
|
let p = s;
|
|
333
333
|
for (; p && p.parentId && a.has(p.parentId) && p.parentId !== p.id; ) {
|
|
334
|
-
if (
|
|
335
|
-
const m =
|
|
336
|
-
let g =
|
|
337
|
-
for (const v of
|
|
334
|
+
if (u.has(p.id)) {
|
|
335
|
+
const m = u.get(p.id), f = d.slice(m);
|
|
336
|
+
let g = f[0];
|
|
337
|
+
for (const v of f)
|
|
338
338
|
(i.get(v) ?? 1 / 0) < (i.get(g) ?? 1 / 0) && (g = v);
|
|
339
339
|
t.add(g);
|
|
340
340
|
break;
|
|
341
341
|
}
|
|
342
342
|
if (o.has(p.id)) break;
|
|
343
|
-
|
|
343
|
+
u.set(p.id, d.length), d.push(p.id), p = a.get(p.parentId);
|
|
344
344
|
}
|
|
345
345
|
for (const m of d) o.add(m);
|
|
346
346
|
}
|
|
@@ -348,21 +348,21 @@ function ve(e) {
|
|
|
348
348
|
r.forEach((s) => {
|
|
349
349
|
!t.has(s.id) && !!(s.parentId && a.has(s.parentId) && s.parentId !== s.id) && s.parentId ? (n.has(s.parentId) || n.set(s.parentId, []), n.get(s.parentId).push(s)) : l.push(s);
|
|
350
350
|
});
|
|
351
|
-
function c(s, d,
|
|
352
|
-
const p = new Set(
|
|
351
|
+
function c(s, d, u) {
|
|
352
|
+
const p = new Set(u);
|
|
353
353
|
p.add(s.id);
|
|
354
|
-
const
|
|
354
|
+
const f = (n.get(s.id) || (Array.isArray(s.children) ? s.children : [])).filter(
|
|
355
355
|
(g) => !!(g && typeof g == "object" && g.id && !p.has(g.id))
|
|
356
356
|
);
|
|
357
357
|
return {
|
|
358
358
|
camada: s,
|
|
359
359
|
depth: d,
|
|
360
|
-
subcamadas:
|
|
360
|
+
subcamadas: f.map((g) => c(g, d + 1, p))
|
|
361
361
|
};
|
|
362
362
|
}
|
|
363
363
|
return l.map((s) => c(s, 0, /* @__PURE__ */ new Set()));
|
|
364
364
|
}
|
|
365
|
-
function
|
|
365
|
+
function wa(e, r) {
|
|
366
366
|
const a = /* @__PURE__ */ new Set();
|
|
367
367
|
if (!r || !Array.isArray(e)) return a;
|
|
368
368
|
const i = /* @__PURE__ */ new Map();
|
|
@@ -380,19 +380,42 @@ function ca(e, r) {
|
|
|
380
380
|
}
|
|
381
381
|
return a;
|
|
382
382
|
}
|
|
383
|
-
function
|
|
383
|
+
function ne(e, r, a) {
|
|
384
384
|
if (!a || !Array.isArray(r) || r.length === 0) return [];
|
|
385
|
-
const i =
|
|
385
|
+
const i = wa(e, a);
|
|
386
386
|
return r.filter((t) => !!(t && t.layerId && i.has(t.layerId)));
|
|
387
387
|
}
|
|
388
|
-
function
|
|
389
|
-
const r =
|
|
390
|
-
|
|
391
|
-
|
|
388
|
+
function we(e) {
|
|
389
|
+
const r = /* @__PURE__ */ new Map();
|
|
390
|
+
e.forEach((i) => i && i.id && r.set(i.id, i));
|
|
391
|
+
const a = /* @__PURE__ */ new Map();
|
|
392
|
+
for (const i of r.values()) {
|
|
393
|
+
let t = !1, o = !1;
|
|
394
|
+
const n = /* @__PURE__ */ new Set([i.id]);
|
|
395
|
+
let l = i.parentId ? r.get(i.parentId) : void 0;
|
|
396
|
+
for (; l && !n.has(l.id); )
|
|
397
|
+
n.add(l.id), l.visible === !1 && (t = !0), l.locked === !0 && (o = !0), l = l.parentId ? r.get(l.parentId) : void 0;
|
|
398
|
+
a.set(i.id, { ocultaPorAncestral: t, travadaPorAncestral: o });
|
|
399
|
+
}
|
|
400
|
+
return a;
|
|
401
|
+
}
|
|
402
|
+
function Ae(e) {
|
|
403
|
+
const r = we(e);
|
|
404
|
+
return new Set(
|
|
405
|
+
e.filter((a) => {
|
|
406
|
+
var i;
|
|
407
|
+
return a && (a.locked === !0 || ((i = r.get(a.id)) == null ? void 0 : i.travadaPorAncestral) === !0);
|
|
408
|
+
}).map((a) => a.id)
|
|
409
|
+
);
|
|
410
|
+
}
|
|
411
|
+
function Aa(e) {
|
|
412
|
+
const r = ye(e), a = Ae(e), i = (t) => {
|
|
413
|
+
const o = t.camada, n = t.depth, l = t.subcamadas, c = n > 0 ? " ".repeat(n) + "↳ " : l.length > 0 || o.isGroup ? "📁 " : "", s = a.has(o.id), d = `<option value="${F(o.id)}"${s ? " disabled" : ""}>${c}${F(o.name)}${s ? " 🔒" : ""}</option>`, u = l.map((p) => i(p)).join("");
|
|
414
|
+
return d + u;
|
|
392
415
|
};
|
|
393
|
-
return r.map((
|
|
416
|
+
return r.map((t) => i(t)).join("");
|
|
394
417
|
}
|
|
395
|
-
function
|
|
418
|
+
function Ue(e, r) {
|
|
396
419
|
return r > 0 ? {
|
|
397
420
|
icone: b.alvoEnquadrar,
|
|
398
421
|
texto: `${r} ${r > 1 ? "selecionados" : "selecionado"}`
|
|
@@ -401,8 +424,8 @@ function ze(e, r) {
|
|
|
401
424
|
texto: `${e} ${e > 1 ? "camadas" : "camada"}`
|
|
402
425
|
};
|
|
403
426
|
}
|
|
404
|
-
function
|
|
405
|
-
const i = r.filter((c) => a.has(c.id)), t = i.length > 0, o = t ? i.length : e.length, n =
|
|
427
|
+
function Ea(e, r, a) {
|
|
428
|
+
const i = r.filter((c) => a.has(c.id)), t = i.length > 0, o = t ? i.length : e.length, n = Ue(e.length, i.length), l = Aa(e);
|
|
406
429
|
return `
|
|
407
430
|
<div class="ui-tree-footer ${t ? "tem-selecao" : "sem-selecao"}" part="rodape">
|
|
408
431
|
<div class="ui-footer-left">
|
|
@@ -438,128 +461,128 @@ function ua(e, r, a) {
|
|
|
438
461
|
</div>
|
|
439
462
|
`;
|
|
440
463
|
}
|
|
441
|
-
const
|
|
442
|
-
function
|
|
464
|
+
const fe = 64;
|
|
465
|
+
function Be(e) {
|
|
443
466
|
return Array.isArray(e) && e.length >= 2 && Number.isFinite(e[0]) && Number.isFinite(e[1]);
|
|
444
467
|
}
|
|
445
|
-
function
|
|
446
|
-
return !Array.isArray(e) || e.length === 0 ? [] :
|
|
468
|
+
function Ve(e) {
|
|
469
|
+
return !Array.isArray(e) || e.length === 0 ? [] : Be(e[0]) ? [e.filter(Be)] : e.flatMap(Ve);
|
|
447
470
|
}
|
|
448
|
-
function
|
|
449
|
-
if (e.length <=
|
|
450
|
-
const r = e.length /
|
|
451
|
-
for (let i = 0; i <
|
|
471
|
+
function qe(e) {
|
|
472
|
+
if (e.length <= fe) return e;
|
|
473
|
+
const r = e.length / fe, a = [];
|
|
474
|
+
for (let i = 0; i < fe; i++) a.push(e[Math.floor(i * r)]);
|
|
452
475
|
return a.push(e[e.length - 1]), a;
|
|
453
476
|
}
|
|
454
|
-
function
|
|
455
|
-
const i =
|
|
477
|
+
function ka(e, r, a) {
|
|
478
|
+
const i = Ve(r).filter((I) => I.length > 0);
|
|
456
479
|
if (i.length === 0) return "";
|
|
457
480
|
let t = 1 / 0, o = -1 / 0, n = 1 / 0, l = -1 / 0;
|
|
458
481
|
for (const I of i)
|
|
459
|
-
for (const [L,
|
|
460
|
-
|
|
461
|
-
const c = 16, s = 2, d = c - s * 2,
|
|
482
|
+
for (const [L, q] of I)
|
|
483
|
+
q < t && (t = q), q > o && (o = q), -L < n && (n = -L), -L > l && (l = -L);
|
|
484
|
+
const c = 16, s = 2, d = c - s * 2, u = o - t, p = l - n, m = Math.max(u, p), f = m > 0 ? d / m : 0, g = s + (d - u * f) / 2, v = s + (d - p * f) / 2, h = (I) => Math.round(I * 100) / 100, k = ([I, L]) => `${h(g + (L - t) * f)},${h(v + (-I - n) * f)}`, C = e === "polygon" || e === "multipolygon", $ = e === "linestring" || e === "multilinestring", y = (I) => `<svg viewBox="0 0 ${c} ${c}" width="100%" height="100%" aria-hidden="true">${I}</svg>`;
|
|
462
485
|
if (C) {
|
|
463
|
-
const I = i.filter((L) => L.length >= 3).map((L) => `M${
|
|
464
|
-
return I ?
|
|
486
|
+
const I = i.filter((L) => L.length >= 3).map((L) => `M${qe(L).map(k).join("L")}Z`).join("");
|
|
487
|
+
return I ? y(
|
|
465
488
|
`<path d="${I}" fill="${a}" fill-opacity="0.45" fill-rule="evenodd" stroke="${a}" stroke-width="1.2" stroke-linejoin="round"/>`
|
|
466
489
|
) : "";
|
|
467
490
|
}
|
|
468
|
-
if (
|
|
469
|
-
const I = i.filter((L) => L.length >= 2).map((L) => `M${
|
|
470
|
-
return I ?
|
|
491
|
+
if ($) {
|
|
492
|
+
const I = i.filter((L) => L.length >= 2).map((L) => `M${qe(L).map(k).join("L")}`).join("");
|
|
493
|
+
return I ? y(
|
|
471
494
|
`<path d="${I}" fill="none" stroke="${a}" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>`
|
|
472
495
|
) : "";
|
|
473
496
|
}
|
|
474
497
|
return "";
|
|
475
498
|
}
|
|
476
|
-
function
|
|
477
|
-
const i =
|
|
499
|
+
function Ia(e, r, a) {
|
|
500
|
+
const i = K(r, "#00E08A"), t = (e || "").toLowerCase(), o = a !== void 0 ? ka(t, a, i) : "";
|
|
478
501
|
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>`);
|
|
479
502
|
}
|
|
480
|
-
const
|
|
481
|
-
function
|
|
503
|
+
const Ye = 80;
|
|
504
|
+
function oe(e, r) {
|
|
482
505
|
const a = (r || "").trim().toLowerCase();
|
|
483
506
|
return a ? e.filter(
|
|
484
507
|
(i) => (i.name || "").toLowerCase().includes(a) || (i.category || "").toLowerCase().includes(a) || (i.type || "").toLowerCase().includes(a)
|
|
485
508
|
) : e;
|
|
486
509
|
}
|
|
487
|
-
function
|
|
510
|
+
function Ke(e, r, a) {
|
|
488
511
|
var p, m;
|
|
489
512
|
const i = (a || "").trim().toLowerCase();
|
|
490
513
|
if (!i) return null;
|
|
491
514
|
const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
|
|
492
|
-
for (const
|
|
493
|
-
t.set(
|
|
515
|
+
for (const f of e)
|
|
516
|
+
t.set(f.id, f), f.parentId && f.parentId !== f.id && (o.has(f.parentId) || o.set(f.parentId, []), o.get(f.parentId).push(f.id));
|
|
494
517
|
const n = /* @__PURE__ */ new Map();
|
|
495
|
-
for (const
|
|
496
|
-
const g =
|
|
497
|
-
n.has(g) || n.set(g, []), n.get(g).push(
|
|
518
|
+
for (const f of r) {
|
|
519
|
+
const g = f.layerId || "";
|
|
520
|
+
n.has(g) || n.set(g, []), n.get(g).push(f);
|
|
498
521
|
}
|
|
499
522
|
const l = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set();
|
|
500
|
-
for (const
|
|
501
|
-
(typeof
|
|
523
|
+
for (const f of e)
|
|
524
|
+
(typeof f.name == "string" ? f.name.toLowerCase() : "").includes(i) ? (l.add(f.id), c.add(f.id)) : oe(n.get(f.id) || [], i).length > 0 && c.add(f.id);
|
|
502
525
|
const s = new Set(c);
|
|
503
|
-
for (const
|
|
504
|
-
const g = /* @__PURE__ */ new Set([
|
|
505
|
-
let v = (p = t.get(
|
|
526
|
+
for (const f of c) {
|
|
527
|
+
const g = /* @__PURE__ */ new Set([f]);
|
|
528
|
+
let v = (p = t.get(f)) == null ? void 0 : p.parentId;
|
|
506
529
|
for (; v && t.has(v) && !g.has(v); )
|
|
507
530
|
g.add(v), s.add(v), v = (m = t.get(v)) == null ? void 0 : m.parentId;
|
|
508
531
|
}
|
|
509
532
|
const d = [...l];
|
|
510
533
|
for (; d.length > 0; ) {
|
|
511
|
-
const
|
|
512
|
-
for (const g of o.get(
|
|
534
|
+
const f = d.pop();
|
|
535
|
+
for (const g of o.get(f) || [])
|
|
513
536
|
s.has(g) || (s.add(g), d.push(g));
|
|
514
537
|
}
|
|
515
|
-
const
|
|
516
|
-
for (const
|
|
517
|
-
const g = n.get(
|
|
518
|
-
|
|
538
|
+
const u = /* @__PURE__ */ new Map();
|
|
539
|
+
for (const f of s) {
|
|
540
|
+
const g = n.get(f) || [];
|
|
541
|
+
u.set(f, l.has(f) ? g : oe(g, i));
|
|
519
542
|
}
|
|
520
|
-
return { camadasVisiveis: s, feicoesPorCamada:
|
|
543
|
+
return { camadasVisiveis: s, feicoesPorCamada: u };
|
|
521
544
|
}
|
|
522
|
-
function
|
|
523
|
-
const n =
|
|
524
|
-
for (let
|
|
525
|
-
const p = r[
|
|
545
|
+
function _e(e, r, a, i = "", t = Ye, o) {
|
|
546
|
+
const n = Ke(e, r, i), l = [], c = /* @__PURE__ */ new Map();
|
|
547
|
+
for (let u = 0; u < r.length; u++) {
|
|
548
|
+
const p = r[u];
|
|
526
549
|
if (!p || !p.id) continue;
|
|
527
550
|
const m = p.layerId || "";
|
|
528
551
|
c.has(m) || c.set(m, []), c.get(m).push(p);
|
|
529
552
|
}
|
|
530
|
-
const s =
|
|
531
|
-
function d(
|
|
532
|
-
const p =
|
|
553
|
+
const s = ye(e);
|
|
554
|
+
function d(u) {
|
|
555
|
+
const p = u.camada;
|
|
533
556
|
if (n && !n.camadasVisiveis.has(p.id) || !(n ? !0 : a.has(p.id))) return;
|
|
534
|
-
for (const h of
|
|
557
|
+
for (const h of u.subcamadas)
|
|
535
558
|
d(h);
|
|
536
|
-
const
|
|
559
|
+
const f = n ? n.feicoesPorCamada.get(p.id) || [] : c.get(p.id) || [], g = (o == null ? void 0 : o.get(p.id)) ?? t, v = f.slice(0, g);
|
|
537
560
|
for (let h = 0; h < v.length; h++)
|
|
538
561
|
l.push(v[h].id);
|
|
539
562
|
}
|
|
540
|
-
for (const
|
|
541
|
-
d(
|
|
563
|
+
for (const u of s)
|
|
564
|
+
d(u);
|
|
542
565
|
return l;
|
|
543
566
|
}
|
|
544
|
-
function
|
|
567
|
+
function La(e, r, a, i, t, o) {
|
|
545
568
|
if (!e.includes(i)) return null;
|
|
546
569
|
const n = new Set(r);
|
|
547
570
|
let l = a;
|
|
548
571
|
if (o && a && e.includes(a)) {
|
|
549
|
-
const c = e.indexOf(a), s = e.indexOf(i), d = Math.min(c, s),
|
|
572
|
+
const c = e.indexOf(a), s = e.indexOf(i), d = Math.min(c, s), u = Math.max(c, s);
|
|
550
573
|
t || n.clear();
|
|
551
|
-
for (let p = d; p <=
|
|
574
|
+
for (let p = d; p <= u; p++)
|
|
552
575
|
n.add(e[p]);
|
|
553
576
|
} else t ? (n.has(i) ? n.delete(i) : n.add(i), l = i) : (n.clear(), n.add(i), l = i);
|
|
554
577
|
return { selecionados: n, ultimoClicadoId: l };
|
|
555
578
|
}
|
|
556
|
-
function
|
|
579
|
+
function Ee(e, r) {
|
|
557
580
|
if (e.size === 0) return;
|
|
558
581
|
const a = new Set(r.map((i) => i.id));
|
|
559
582
|
for (const i of e)
|
|
560
583
|
a.has(i) || e.delete(i);
|
|
561
584
|
}
|
|
562
|
-
function
|
|
585
|
+
function _(e, r, a) {
|
|
563
586
|
const i = /* @__PURE__ */ new Set();
|
|
564
587
|
let t = e.find((o) => o.id === r);
|
|
565
588
|
for (; t && t.parentId; ) {
|
|
@@ -568,46 +591,51 @@ function te(e, r, a) {
|
|
|
568
591
|
}
|
|
569
592
|
return !1;
|
|
570
593
|
}
|
|
571
|
-
function
|
|
594
|
+
function Ca(e) {
|
|
572
595
|
return Number.isFinite(e) ? e < 0.25 ? "acima" : e > 0.75 ? "abaixo" : "dentro" : "dentro";
|
|
573
596
|
}
|
|
574
|
-
function
|
|
597
|
+
function $a(e, r, a, i) {
|
|
575
598
|
if (!r || !a || r === a) return null;
|
|
576
599
|
const t = e.find((s) => s.id === r), o = e.find((s) => s.id === a);
|
|
577
600
|
if (!t || !o) return null;
|
|
578
601
|
const n = t.parentId !== void 0 ? t.parentId : null;
|
|
579
602
|
if (i === "dentro")
|
|
580
|
-
return
|
|
603
|
+
return _(e, o.id, t.id) ? null : (t.parentId = o.id, { tipo: "hierarquia", camada: t, novoParentId: o.id, parentAnteriorId: n });
|
|
604
|
+
if (_(e, o.id, t.id)) return null;
|
|
581
605
|
const l = e.findIndex((s) => s.id === r);
|
|
582
606
|
e.splice(l, 1);
|
|
583
607
|
const c = e.findIndex((s) => s.id === a);
|
|
584
608
|
return c === -1 ? e.push(t) : e.splice(i === "acima" ? c : c + 1, 0, t), t.parentId = o.parentId ?? null, { tipo: "ordem", camada: t, parentAnteriorId: n, novoParentId: t.parentId };
|
|
585
609
|
}
|
|
586
|
-
function
|
|
610
|
+
function Sa(e, r, a, i) {
|
|
587
611
|
if (!r || !a || r === a) return !1;
|
|
588
612
|
const t = e.findIndex((l) => l.id === r);
|
|
589
613
|
if (t === -1) return !1;
|
|
590
614
|
const [o] = e.splice(t, 1), n = e.findIndex((l) => l.id === a);
|
|
591
615
|
return n === -1 ? e.push(o) : e.splice(i ? n : n + 1, 0, o), !0;
|
|
592
616
|
}
|
|
593
|
-
function
|
|
617
|
+
function Ma(e, r, a, i) {
|
|
594
618
|
const t = e.find((l) => l.id === a), o = r.find((l) => l.id === i);
|
|
595
619
|
if (!t || !o || t.layerId === i) return null;
|
|
596
620
|
const n = t.layerId;
|
|
597
621
|
return t.layerId = i, { feicao: t, camadaOrigemId: n, camadaDestinoId: i, mudouDeCamada: !0 };
|
|
598
622
|
}
|
|
599
|
-
function
|
|
623
|
+
function Fa(e, r, a, i) {
|
|
600
624
|
if (!r || !a || r === a) return null;
|
|
601
|
-
const t = e.findIndex((
|
|
625
|
+
const t = e.findIndex((u) => u.id === r);
|
|
602
626
|
if (t === -1) return null;
|
|
603
|
-
const o = e.find((
|
|
627
|
+
const o = e.find((u) => u.id === a);
|
|
604
628
|
if (!o) return null;
|
|
605
629
|
const [n] = e.splice(t, 1), l = n.layerId, c = o.layerId, s = l !== c;
|
|
606
630
|
s && (n.layerId = c);
|
|
607
|
-
const d = e.findIndex((
|
|
631
|
+
const d = e.findIndex((u) => u.id === a);
|
|
608
632
|
return d === -1 ? e.push(n) : e.splice(i ? d : d + 1, 0, n), { feicao: n, camadaOrigemId: l, camadaDestinoId: c, mudouDeCamada: s };
|
|
609
633
|
}
|
|
610
|
-
|
|
634
|
+
const me = (e, r, a) => `${e} ${e === 1 ? r : a}`;
|
|
635
|
+
function za(e, r, a) {
|
|
636
|
+
return a === 0 ? me(e, "feição", "feições") : `${me(e, "feição", "feições")} no grupo (${r} nesta camada) · ${me(a, "subcamada", "subcamadas")}`;
|
|
637
|
+
}
|
|
638
|
+
function Ba(e) {
|
|
611
639
|
const {
|
|
612
640
|
camadas: r,
|
|
613
641
|
feicoes: a,
|
|
@@ -619,65 +647,65 @@ function ya(e) {
|
|
|
619
647
|
editingFeatureId: c,
|
|
620
648
|
searchQuery: s,
|
|
621
649
|
titulo: d = "CAMADAS",
|
|
622
|
-
mostrarBusca:
|
|
650
|
+
mostrarBusca: u = !0,
|
|
623
651
|
limitesPorCamada: p,
|
|
624
|
-
limiteFeicoesPorCamada: m =
|
|
625
|
-
mostrarBotaoColapsar:
|
|
626
|
-
} = e, g = (s || "").trim().toLowerCase(), v =
|
|
627
|
-
for (let
|
|
628
|
-
const
|
|
629
|
-
if (!
|
|
630
|
-
const
|
|
631
|
-
h.has(
|
|
632
|
-
}
|
|
633
|
-
const k = r.every((
|
|
652
|
+
limiteFeicoesPorCamada: m = Ye,
|
|
653
|
+
mostrarBotaoColapsar: f = !1
|
|
654
|
+
} = e, g = (s || "").trim().toLowerCase(), v = Ke(r, a, g), h = /* @__PURE__ */ new Map();
|
|
655
|
+
for (let S = 0; S < a.length; S++) {
|
|
656
|
+
const x = a[S];
|
|
657
|
+
if (!x || !x.id) continue;
|
|
658
|
+
const M = x.layerId || "";
|
|
659
|
+
h.has(M) || h.set(M, []), h.get(M).push(x);
|
|
660
|
+
}
|
|
661
|
+
const k = we(r), C = r.every((S) => S.visible !== !1), $ = r.length > 0 && r.every((S) => t.has(S.id)), y = u ? `
|
|
634
662
|
<div class="ui-tree-search-wrapper" part="busca">
|
|
635
663
|
<span class="ui-tree-search-icon">${b.busca}</span>
|
|
636
|
-
<input type="text" class="ui-tree-search-input" id="input-layer-search" aria-label="Buscar camada ou feição" placeholder="Buscar camada ou feição..." value="${
|
|
664
|
+
<input type="text" class="ui-tree-search-input" id="input-layer-search" aria-label="Buscar camada ou feição" placeholder="Buscar camada ou feição..." value="${F(
|
|
637
665
|
s
|
|
638
666
|
)}" />
|
|
639
667
|
${s ? `<button class="ui-tree-search-clear" id="btn-clear-layer-search" title="Limpar busca" aria-label="Limpar busca">${b.fechar}</button>` : ""}
|
|
640
668
|
</div>
|
|
641
|
-
` : "",
|
|
669
|
+
` : "", I = `
|
|
642
670
|
<div class="ui-tree-toolbar" part="toolbar">
|
|
643
671
|
<div class="ui-tree-title-group">
|
|
644
|
-
<span class="ui-tree-section-title">${
|
|
672
|
+
<span class="ui-tree-section-title">${F(d || "CAMADAS")}</span>
|
|
645
673
|
<span class="ui-tree-count-badge">${r.length}</span>
|
|
646
674
|
</div>
|
|
647
675
|
<div class="ui-tree-actions">
|
|
648
|
-
<button id="btn-toggle-all-vis" class="ui-tree-action-btn" title="${
|
|
649
|
-
${
|
|
676
|
+
<button id="btn-toggle-all-vis" class="ui-tree-action-btn" title="${C ? "Ocultar Todas as Camadas" : "Exibir Todas as Camadas"}" aria-label="${C ? "Ocultar Todas as Camadas" : "Exibir Todas as Camadas"}">
|
|
677
|
+
${C ? b.olhoAberto : b.olhoFechado}
|
|
650
678
|
</button>
|
|
651
|
-
<button id="btn-toggle-all-expand" class="ui-tree-action-btn" aria-label="${
|
|
652
|
-
<span class="ui-chevron-icon ${
|
|
679
|
+
<button id="btn-toggle-all-expand" class="ui-tree-action-btn" aria-label="${$ ? "Recolher Todos os Grupos" : "Expandir Todos os Grupos"}" title="${$ ? "Recolher Todos os Grupos" : "Expandir Todos os Grupos"}">
|
|
680
|
+
<span class="ui-chevron-icon ${$ ? "open" : ""}">${b.chevronDir}</span>
|
|
653
681
|
</button>
|
|
654
|
-
${
|
|
682
|
+
${f ? `<button id="btn-colapsar" class="ui-camadas-btn-colapsar" title="Recolher painel" aria-label="Recolher painel">${b.recolherPainel}</button>` : ""}
|
|
655
683
|
</div>
|
|
656
684
|
</div>
|
|
657
|
-
${
|
|
658
|
-
`,
|
|
659
|
-
const
|
|
660
|
-
if (v && !v.camadasVisiveis.has(
|
|
661
|
-
const
|
|
662
|
-
const R =
|
|
685
|
+
${y}
|
|
686
|
+
`, L = (S) => {
|
|
687
|
+
const x = S.camada;
|
|
688
|
+
if (v && !v.camadasVisiveis.has(x.id)) return "";
|
|
689
|
+
const M = S.depth, P = S.subcamadas, Ie = v ? P.filter((A) => v.camadasVisiveis.has(A.camada.id)) : P, G = !!(x.isGroup || P.length > 0), E = F(x.id), W = F(x.name || (G ? "Novo Grupo" : "Camada")), O = K(x.color, "#00E08A"), U = x.visible !== !1, V = x.locked === !0, Z = g ? !0 : t.has(x.id), se = n === x.id, le = i === x.id, j = k.get(x.id), Le = (j == null ? void 0 : j.ocultaPorAncestral) === !0, Ce = (j == null ? void 0 : j.travadaPorAncestral) === !0, D = v ? v.feicoesPorCamada.get(x.id) || [] : h.get(x.id) || [], N = v ? D : ne(r, a, x.id), $e = N.length > 0 && N.every((A) => o.has(A.id)), Ze = !$e && N.some((A) => o.has(A.id)), ee = (p == null ? void 0 : p.get(x.id)) ?? m, ea = D.slice(0, ee), aa = D.length > ee, ra = D.length - ee, ta = ea.map((A) => {
|
|
690
|
+
const R = F(A.id), Me = F(A.name || "Feição"), Fe = K(A.color, O), ae = A.visible !== !1, ce = V || Ce, de = A.locked === !0 || ce, ze = ce ? "Bloqueada pela camada" : de ? "Desbloquear Feição" : "Bloquear Feição", re = o.has(A.id), ca = A.status === "previa" ? '<span class="ui-previa-dot" title="Geometria prévia" aria-label="Geometria prévia"></span>' : "";
|
|
663
691
|
return `
|
|
664
|
-
<div class="ui-feat-row ${
|
|
665
|
-
<div class="ui-col ui-col-eye" data-feat-eye="${R}" role="button" tabindex="0" aria-label="${
|
|
666
|
-
${
|
|
692
|
+
<div class="ui-feat-row ${re ? "selected-row" : ""} ${ae ? "" : "hidden-row"} ${!U || Le ? "herdado-oculto" : ""}" data-feat-row="${R}" data-feat-select="${R}" data-feat-layer="${E}" role="treeitem" aria-level="${M + 2}" aria-selected="${re}" tabindex="-1" draggable="true" part="${re ? "feicao feicao-selecionada" : "feicao"}" style="--layer-depth: ${M + 1};" title="Clique para selecionar | Arraste para reordenar">
|
|
693
|
+
<div class="ui-col ui-col-eye" data-feat-eye="${R}" role="button" tabindex="0" aria-label="${ae ? "Ocultar Feição" : "Exibir Feição"}" title="${ae ? "Ocultar Feição" : "Exibir Feição"}">
|
|
694
|
+
${ae ? b.olhoAberto : b.olhoFechado}
|
|
667
695
|
</div>
|
|
668
696
|
|
|
669
|
-
<div class="ui-col ui-col-lock ${
|
|
670
|
-
${
|
|
697
|
+
<div class="ui-col ui-col-lock ${de ? "" : "ui-lock-open"}" data-feat-lock="${R}" ${ce ? 'data-locked-by-layer="true"' : ""} role="button" tabindex="0" aria-label="${ze}" title="${ze}">
|
|
698
|
+
${de ? b.cadeadoTrancado : b.cadeadoAberto}
|
|
671
699
|
</div>
|
|
672
700
|
|
|
673
|
-
<div class="ui-col ui-col-colorbar" style="background: ${
|
|
701
|
+
<div class="ui-col ui-col-colorbar" style="background: ${Fe};"></div>
|
|
674
702
|
<div class="ui-col ui-col-branch"><span style="opacity: 0.35;">└─</span></div>
|
|
675
703
|
<div class="ui-col ui-col-thumb">
|
|
676
|
-
<div class="ui-thumb-box">${
|
|
704
|
+
<div class="ui-thumb-box">${Ia(A.type || A.geometryType, Fe, A.coordinates)}</div>
|
|
677
705
|
</div>
|
|
678
706
|
|
|
679
707
|
<div class="ui-col ui-col-name" data-feat-name-trigger="${R}" title="Duplo clique para renomear">
|
|
680
|
-
${c === A.id ? `<input type="text" class="ui-inline-rename-input" data-inline-feat-input="${R}" value="${
|
|
708
|
+
${c === A.id ? `<input type="text" class="ui-inline-rename-input" data-inline-feat-input="${R}" value="${Me}" />` : `<span class="ui-name-text">${Me}</span>${ca}`}
|
|
681
709
|
</div>
|
|
682
710
|
|
|
683
711
|
<div class="ui-col ui-col-actions">
|
|
@@ -685,22 +713,22 @@ function ya(e) {
|
|
|
685
713
|
</div>
|
|
686
714
|
|
|
687
715
|
<div class="ui-col ui-col-target" data-feat-target="${R}" role="button" tabindex="0" aria-label="Selecionar feição" title="Selecionar feição">
|
|
688
|
-
<div class="ui-target-circle ${
|
|
716
|
+
<div class="ui-target-circle ${re ? "selected" : ""}"></div>
|
|
689
717
|
</div>
|
|
690
718
|
</div>
|
|
691
719
|
`;
|
|
692
|
-
}).join(""),
|
|
693
|
-
<span>Exibindo ${
|
|
694
|
-
<button type="button" class="ui-truncate-more-btn" data-layer-show-more="${E}"
|
|
695
|
-
</div>` : "",
|
|
696
|
-
(A) => `<option value="${
|
|
697
|
-
).join(""),
|
|
720
|
+
}).join(""), ia = aa ? `<div class="ui-truncate-notice" role="note">
|
|
721
|
+
<span>Exibindo ${ee} de ${D.length} feições. Use a busca acima para filtrar.</span>
|
|
722
|
+
<button type="button" class="ui-truncate-more-btn" data-layer-show-more="${E}">Mostrar mais (+${Math.min(80, ra)})</button>
|
|
723
|
+
</div>` : "", Se = x.opacity !== void 0 ? x.opacity : 1, oa = Math.round(Se * 100), na = r.filter((A) => A.id !== x.id && !_(r, A.id, x.id)).map(
|
|
724
|
+
(A) => `<option value="${F(A.id)}" ${x.parentId === A.id ? "selected" : ""}>${A.isGroup ? "📁 " : ""}${F(A.name)}</option>`
|
|
725
|
+
).join(""), sa = se ? `
|
|
698
726
|
<div class="ui-layer-settings-drawer" id="settings-drawer-${E}" part="drawer" style="--drawer-cor-camada: ${O};">
|
|
699
727
|
<div class="ui-drawer-header">
|
|
700
728
|
<div class="ui-drawer-header-left">
|
|
701
729
|
<span class="ui-drawer-icon">${b.engrenagem}</span>
|
|
702
730
|
<span class="ui-drawer-title">Configurações da Camada</span>
|
|
703
|
-
<span class="ui-drawer-layer-chip" title="${
|
|
731
|
+
<span class="ui-drawer-layer-chip" title="${W}">${W}</span>
|
|
704
732
|
</div>
|
|
705
733
|
<button type="button" class="ui-drawer-btn-fechar" data-layer-settings-close="${E}" title="Fechar configurações (Esc)" aria-label="Fechar configurações">
|
|
706
734
|
${b.fechar}
|
|
@@ -717,7 +745,7 @@ function ya(e) {
|
|
|
717
745
|
<label class="ui-drawer-color-pill" title="Clique para alterar a cor da camada">
|
|
718
746
|
<span class="ui-drawer-color-sample" id="sample-color-${E}" style="background-color: ${O};"></span>
|
|
719
747
|
<span class="ui-drawer-color-hex" id="hex-color-${E}">${O.toUpperCase()}</span>
|
|
720
|
-
<input type="color" aria-label="Cor da camada" data-layer-color-picker="${E}" value="${
|
|
748
|
+
<input type="color" aria-label="Cor da camada" data-layer-color-picker="${E}" value="${xa(O, "#00e08a")}" class="ui-drawer-color-native" />
|
|
721
749
|
</label>
|
|
722
750
|
</div>
|
|
723
751
|
</div>
|
|
@@ -726,10 +754,10 @@ function ya(e) {
|
|
|
726
754
|
<div class="ui-drawer-row">
|
|
727
755
|
<div class="ui-drawer-row-label">
|
|
728
756
|
<span>Opacidade</span>
|
|
729
|
-
<span class="ui-drawer-badge" id="badge-op-${E}">${
|
|
757
|
+
<span class="ui-drawer-badge" id="badge-op-${E}">${oa}%</span>
|
|
730
758
|
</div>
|
|
731
759
|
<div class="ui-drawer-slider-container">
|
|
732
|
-
<input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(
|
|
760
|
+
<input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(Se) || 0}" data-layer-opacity-slider="${E}" class="ui-drawer-slider" />
|
|
733
761
|
</div>
|
|
734
762
|
</div>
|
|
735
763
|
|
|
@@ -740,8 +768,8 @@ function ya(e) {
|
|
|
740
768
|
</div>
|
|
741
769
|
<div class="ui-drawer-select-wrapper">
|
|
742
770
|
<select class="ui-drawer-select" data-layer-parent-select="${E}" aria-label="Grupo pai da camada">
|
|
743
|
-
<option value="" ${
|
|
744
|
-
${
|
|
771
|
+
<option value="" ${x.parentId ? "" : "selected"}>(Nenhum - Nível Principal)</option>
|
|
772
|
+
${na}
|
|
745
773
|
</select>
|
|
746
774
|
</div>
|
|
747
775
|
</div>
|
|
@@ -749,7 +777,7 @@ function ya(e) {
|
|
|
749
777
|
|
|
750
778
|
<div class="ui-drawer-footer">
|
|
751
779
|
<div class="ui-drawer-meta-info">
|
|
752
|
-
<span>${
|
|
780
|
+
<span>${P.length > 0 ? `${P.length} subcamadas · ` : ""}${D.length} ${D.length === 1 ? "feição" : "feições"}</span>
|
|
753
781
|
</div>
|
|
754
782
|
<div class="ui-drawer-actions">
|
|
755
783
|
<button type="button" class="ui-drawer-btn-sublayer" data-add-sublayer="${E}" title="Adicionar nova camada dentro desta">
|
|
@@ -762,67 +790,68 @@ function ya(e) {
|
|
|
762
790
|
</div>
|
|
763
791
|
</div>
|
|
764
792
|
</div>
|
|
765
|
-
` : "",
|
|
793
|
+
` : "", la = Ie.map((A) => L(A)).join("");
|
|
766
794
|
return `
|
|
767
|
-
<div class="ui-layer-group ${
|
|
768
|
-
<div class="ui-layer-row ${
|
|
795
|
+
<div class="ui-layer-group ${M > 0 ? "is-sublayer-group" : ""}" data-layer-id="${E}" data-layer-depth="${M}" role="treeitem" aria-level="${M + 1}" aria-expanded="${Z}" part="grupo" style="--layer-active-color: ${O};">
|
|
796
|
+
<div class="ui-layer-row ${U ? "" : "hidden-layer"} ${le ? "active-drawing-layer" : ""} ${M > 0 ? "is-sublayer" : ""} ${G ? "is-group-row" : ""} ${Le ? "herdado-oculto" : ""} ${Ce ? "herdado-travado" : ""}" data-layer-row="${E}" data-layer-id="${E}" tabindex="-1" draggable="true" part="${le ? "camada camada-ativa" : "camada"}" ${le ? 'aria-current="true"' : ""} style="--layer-depth: ${M};">
|
|
769
797
|
<div class="ui-col ui-col-drag" title="Arrastar para reordenar Z-Index">${b.dragHandle}</div>
|
|
770
798
|
|
|
771
|
-
<div class="ui-col ui-col-eye" data-layer-eye="${E}" role="button" tabindex="0" aria-label="${
|
|
772
|
-
${
|
|
799
|
+
<div class="ui-col ui-col-eye" data-layer-eye="${E}" role="button" tabindex="0" aria-label="${U ? "Ocultar Camada" : "Exibir Camada"}" title="${U ? "Ocultar Camada" : "Exibir Camada"}">
|
|
800
|
+
${U ? b.olhoAberto : b.olhoFechado}
|
|
773
801
|
</div>
|
|
774
802
|
|
|
775
|
-
<div class="ui-col ui-col-lock ${
|
|
776
|
-
${
|
|
803
|
+
<div class="ui-col ui-col-lock ${V ? "" : "ui-lock-open"}" data-layer-lock="${E}" role="button" tabindex="0" aria-label="${V ? "Desbloquear Camada" : "Bloquear Camada"}" title="${V ? "Desbloquear Camada" : "Bloquear Camada"}">
|
|
804
|
+
${V ? b.cadeadoTrancado : b.cadeadoAberto}
|
|
777
805
|
</div>
|
|
778
806
|
|
|
779
807
|
<div class="ui-col ui-col-colorbar ui-col-colorbar-editavel" data-layer-color="${E}" role="button" tabindex="0" style="background: ${O};" aria-label="Alterar cor da camada" title="Alterar cor da camada (usada no destaque de seleção)"></div>
|
|
780
808
|
|
|
781
|
-
<div class="ui-col ui-col-chevron" data-layer-expand="${E}" role="button" tabindex="0" aria-label="${
|
|
782
|
-
<span class="ui-chevron-icon ${
|
|
809
|
+
<div class="ui-col ui-col-chevron" data-layer-expand="${E}" role="button" tabindex="0" aria-label="${Z ? "Recolher grupo" : "Expandir grupo"}">
|
|
810
|
+
<span class="ui-chevron-icon ${Z ? "open" : ""}">${b.chevronDir}</span>
|
|
783
811
|
</div>
|
|
784
812
|
|
|
785
813
|
<div class="ui-col ui-col-name" data-layer-name-trigger="${E}" title="Clique para ativar camada de desenho | Duplo clique para renomear">
|
|
786
|
-
${l ===
|
|
787
|
-
<span class="ui-name-text">${
|
|
788
|
-
${
|
|
814
|
+
${l === x.id ? `<input type="text" class="ui-inline-rename-input" data-inline-layer-input="${E}" value="${W}" />` : `${G ? `<span class="ui-group-folder-icon" title="Grupo/Pasta">${b.moverPasta}</span>` : ""}
|
|
815
|
+
<span class="ui-name-text">${W}</span>
|
|
816
|
+
${N.length > 0 || !G ? `<span class="ui-count-chip" title="${za(N.length, D.length, P.length)}">${N.length}</span>` : ""}`}
|
|
789
817
|
</div>
|
|
790
818
|
|
|
791
819
|
<div class="ui-col ui-col-actions">
|
|
792
820
|
<button class="ui-micro-btn" data-layer-fit="${E}" title="Enquadrar camada no mapa" aria-label="Enquadrar camada no mapa">${b.alvoEnquadrar}</button>
|
|
793
|
-
<button class="ui-micro-btn ${
|
|
821
|
+
<button class="ui-micro-btn ${se ? "active" : ""}" data-layer-settings="${E}" title="Ajustar cor, hierarquia, opacidade e excluir" aria-label="Configurações da camada" aria-expanded="${se}">${b.engrenagem}</button>
|
|
794
822
|
</div>
|
|
795
823
|
|
|
796
824
|
<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">
|
|
797
|
-
<div class="ui-target-circle ${
|
|
825
|
+
<div class="ui-target-circle ${$e ? "selected" : Ze ? "partial" : ""}"></div>
|
|
798
826
|
</div>
|
|
799
827
|
</div>
|
|
800
828
|
|
|
801
|
-
${
|
|
829
|
+
${sa}
|
|
802
830
|
|
|
803
|
-
<div class="ui-children-container ${
|
|
804
|
-
${
|
|
805
|
-
${
|
|
806
|
-
${
|
|
807
|
-
${
|
|
831
|
+
<div class="ui-children-container ${M > 0 ? "is-subchildren" : ""}" role="group" style="display: ${Z ? "block" : "none"};">
|
|
832
|
+
${la}
|
|
833
|
+
${ta}
|
|
834
|
+
${ia}
|
|
835
|
+
${Ie.length === 0 && D.length === 0 ? `<div class="ui-empty-row"><span>${G ? "Grupo vazio (adicione subcamadas ou feições)" : "Camada vazia"}</span></div>` : ""}
|
|
808
836
|
</div>
|
|
809
837
|
</div>
|
|
810
838
|
`;
|
|
811
|
-
},
|
|
839
|
+
}, q = ye(r), J = v && v.camadasVisiveis.size === 0 ? `<div class="ui-search-empty" role="status">Nenhum resultado para “${F((s || "").trim())}”</div>` : q.map((S) => L(S)).join("");
|
|
812
840
|
return `
|
|
813
|
-
${
|
|
841
|
+
${I}
|
|
814
842
|
<div class="ui-panel-box">
|
|
815
843
|
<div class="ui-layer-tree" id="ui-layer-tree-mount" role="tree" aria-label="Camadas e feições" aria-multiselectable="true" part="arvore">
|
|
816
|
-
${
|
|
844
|
+
${J}
|
|
817
845
|
</div>
|
|
818
846
|
</div>
|
|
819
847
|
`;
|
|
820
848
|
}
|
|
821
|
-
function
|
|
849
|
+
function qa(e) {
|
|
822
850
|
return [
|
|
823
851
|
{
|
|
824
852
|
gatilho: "data-layer-name-trigger",
|
|
825
853
|
input: "data-inline-layer-input",
|
|
854
|
+
linha: "data-layer-row",
|
|
826
855
|
marcarEditando: (r) => {
|
|
827
856
|
e.editingLayerId = r;
|
|
828
857
|
},
|
|
@@ -835,6 +864,7 @@ function wa(e) {
|
|
|
835
864
|
{
|
|
836
865
|
gatilho: "data-feat-name-trigger",
|
|
837
866
|
input: "data-inline-feat-input",
|
|
867
|
+
linha: "data-feat-row",
|
|
838
868
|
marcarEditando: (r) => {
|
|
839
869
|
e.editingFeatureId = r;
|
|
840
870
|
},
|
|
@@ -846,8 +876,8 @@ function wa(e) {
|
|
|
846
876
|
}
|
|
847
877
|
];
|
|
848
878
|
}
|
|
849
|
-
function
|
|
850
|
-
for (const a of
|
|
879
|
+
function Pa(e, r) {
|
|
880
|
+
for (const a of qa(e))
|
|
851
881
|
r.querySelectorAll(`[${a.gatilho}]`).forEach((i) => {
|
|
852
882
|
i.addEventListener("dblclick", (t) => {
|
|
853
883
|
t.stopPropagation();
|
|
@@ -858,29 +888,29 @@ function Aa(e, r) {
|
|
|
858
888
|
if (!n) return;
|
|
859
889
|
n.focus(), n.select();
|
|
860
890
|
let l = !1;
|
|
861
|
-
const c = (s) => {
|
|
862
|
-
var
|
|
891
|
+
const c = (s, d = !1) => {
|
|
892
|
+
var u, p;
|
|
863
893
|
if (!l) {
|
|
864
894
|
if (l = !0, a.marcarEditando(null), s) {
|
|
865
|
-
const
|
|
866
|
-
|
|
895
|
+
const m = a.aplicar(o, n.value.trim());
|
|
896
|
+
m && (m.salvar && ((u = e.salvarLembrancaEstado) == null || u.call(e)), a.emitir(m.detalhe));
|
|
867
897
|
}
|
|
868
|
-
e.solicitarRenderizacao();
|
|
898
|
+
e.solicitarRenderizacao(), d && ((p = T(r, a.linha, o)) == null || p.focus());
|
|
869
899
|
}
|
|
870
900
|
};
|
|
871
901
|
n.addEventListener("keydown", (s) => {
|
|
872
|
-
s.key === "Enter" ? (s.preventDefault(), c(!0)) : s.key === "Escape" && (s.preventDefault(), c(!1));
|
|
902
|
+
s.key === "Enter" ? (s.preventDefault(), c(!0, !0)) : s.key === "Escape" && (s.preventDefault(), c(!1, !0));
|
|
873
903
|
}), n.addEventListener("blur", () => c(!0));
|
|
874
904
|
});
|
|
875
905
|
});
|
|
876
906
|
}
|
|
877
|
-
const
|
|
878
|
-
class
|
|
907
|
+
const Da = ["dragging", "drop-above", "drop-below", "drop-into"];
|
|
908
|
+
class Ta {
|
|
879
909
|
constructor(r, a) {
|
|
880
|
-
|
|
881
|
-
|
|
910
|
+
w(this, "host");
|
|
911
|
+
w(this, "shadow");
|
|
882
912
|
/** Cancela um arraste por toque em andamento (remove os ouvintes de `window`). */
|
|
883
|
-
|
|
913
|
+
w(this, "cancelarToque", null);
|
|
884
914
|
this.host = r, this.shadow = a;
|
|
885
915
|
}
|
|
886
916
|
bindAll() {
|
|
@@ -892,11 +922,11 @@ class ka {
|
|
|
892
922
|
(r = this.cancelarToque) == null || r.call(this), this.cancelarToque = null;
|
|
893
923
|
}
|
|
894
924
|
bindInlineRename() {
|
|
895
|
-
|
|
925
|
+
Pa(this.host, this.shadow);
|
|
896
926
|
}
|
|
897
927
|
limparClassesDeArraste() {
|
|
898
928
|
this.shadow.querySelectorAll(".ui-layer-row, .ui-feat-row, .ui-layer-group").forEach((r) => {
|
|
899
|
-
r.classList.remove(...
|
|
929
|
+
r.classList.remove(...Da);
|
|
900
930
|
});
|
|
901
931
|
}
|
|
902
932
|
/** Depois de qualquer mudança na ordem/hierarquia de camadas. */
|
|
@@ -912,6 +942,14 @@ class ka {
|
|
|
912
942
|
feicao: r.feicao
|
|
913
943
|
});
|
|
914
944
|
}
|
|
945
|
+
/** Camada travada (ou sob grupo travado) não recebe nem perde feições pelo arraste. */
|
|
946
|
+
trocaEntreCamadasTravada(r, a) {
|
|
947
|
+
var o;
|
|
948
|
+
const i = (o = this.host.feicoes.find((n) => n.id === r)) == null ? void 0 : o.layerId;
|
|
949
|
+
if (!a || i === a) return !1;
|
|
950
|
+
const t = Ae(this.host.camadas);
|
|
951
|
+
return t.has(a) || !!i && t.has(i);
|
|
952
|
+
}
|
|
915
953
|
arrasteBloqueado(r) {
|
|
916
954
|
return !!r.closest("input, button, select") || !!this.host.editingLayerId || !!this.host.editingFeatureId;
|
|
917
955
|
}
|
|
@@ -930,7 +968,7 @@ class ka {
|
|
|
930
968
|
const l = n;
|
|
931
969
|
if (l.preventDefault(), l.stopPropagation(), l.dataTransfer && (l.dataTransfer.dropEffect = "move"), r === "layer") {
|
|
932
970
|
if (a === o) return;
|
|
933
|
-
const c = t.getBoundingClientRect(), s =
|
|
971
|
+
const c = t.getBoundingClientRect(), s = Ca((l.clientY - c.top) / c.height);
|
|
934
972
|
t.classList.toggle("drop-above", s === "acima"), t.classList.toggle("drop-below", s === "abaixo"), t.classList.toggle("drop-into", s === "dentro");
|
|
935
973
|
} else r === "feature" && t.classList.add("drop-into");
|
|
936
974
|
}), t.addEventListener("dragleave", (n) => {
|
|
@@ -942,8 +980,8 @@ class ka {
|
|
|
942
980
|
l.preventDefault(), l.stopPropagation();
|
|
943
981
|
const c = t.classList.contains("drop-into") ? "dentro" : t.classList.contains("drop-above") ? "acima" : "abaixo";
|
|
944
982
|
if (this.limparClassesDeArraste(), r === "layer") {
|
|
945
|
-
if (!a || a === o || !this.host.camadas.some((
|
|
946
|
-
const d =
|
|
983
|
+
if (!a || a === o || !this.host.camadas.some((u) => u.id === a) || !this.host.camadas.some((u) => u.id === o)) return;
|
|
984
|
+
const d = $a(this.host.camadas, a, o, c);
|
|
947
985
|
(d == null ? void 0 : d.tipo) === "hierarquia" ? ((s = this.host.expandedLayers) == null || s.add(d.novoParentId), this.host.dispararEvento("ui-camada-mover-hierarquia", {
|
|
948
986
|
camadaId: d.camada.id,
|
|
949
987
|
novoParentId: d.novoParentId,
|
|
@@ -956,8 +994,8 @@ class ka {
|
|
|
956
994
|
camada: d.camada
|
|
957
995
|
}), this.aposReordenarCamadas();
|
|
958
996
|
} else if (r === "feature") {
|
|
959
|
-
if (!i) return;
|
|
960
|
-
const d =
|
|
997
|
+
if (!i || this.trocaEntreCamadasTravada(i, o)) return;
|
|
998
|
+
const d = Ma(this.host.feicoes, this.host.camadas, i, o);
|
|
961
999
|
d && (this.emitirFeicaoMovida(d), this.host.solicitarRenderizacao());
|
|
962
1000
|
}
|
|
963
1001
|
}), t.addEventListener("dragend", () => {
|
|
@@ -986,8 +1024,8 @@ class ka {
|
|
|
986
1024
|
if (r !== "feature" || !i || i === o) return;
|
|
987
1025
|
c.preventDefault(), c.stopPropagation();
|
|
988
1026
|
const s = t.classList.contains("drop-above");
|
|
989
|
-
this.limparClassesDeArraste();
|
|
990
|
-
const d =
|
|
1027
|
+
if (this.limparClassesDeArraste(), this.trocaEntreCamadasTravada(i, n)) return;
|
|
1028
|
+
const d = Fa(this.host.feicoes, i, o, s);
|
|
991
1029
|
d && (d.mudouDeCamada && this.emitirFeicaoMovida(d), this.host.dispararEvento("ui-feicoes-reordenadas", { feicoes: [...this.host.feicoes] }), this.host.solicitarRenderizacao());
|
|
992
1030
|
}), t.addEventListener("dragend", (l) => {
|
|
993
1031
|
l.stopPropagation(), r = null, i = null, a = null, this.limparClassesDeArraste();
|
|
@@ -1004,18 +1042,18 @@ class ka {
|
|
|
1004
1042
|
if (!a) return;
|
|
1005
1043
|
const i = a.getAttribute("data-layer-id");
|
|
1006
1044
|
i && r.addEventListener("pointerdown", (t) => {
|
|
1007
|
-
var
|
|
1045
|
+
var u;
|
|
1008
1046
|
const o = t;
|
|
1009
1047
|
if (o.pointerType === "mouse" && o.button !== 0 || this.host.editingLayerId || this.host.editingFeatureId) return;
|
|
1010
|
-
(
|
|
1048
|
+
(u = this.cancelarToque) == null || u.call(this);
|
|
1011
1049
|
let n = null, l = !1;
|
|
1012
1050
|
const c = (p) => {
|
|
1013
1051
|
p.preventDefault(), a.classList.add("dragging");
|
|
1014
|
-
const m = this.shadow.elementFromPoint(p.clientX, p.clientY),
|
|
1015
|
-
if (n && n !==
|
|
1016
|
-
n =
|
|
1017
|
-
const g =
|
|
1018
|
-
l = p.clientY - g.top < g.height / 2,
|
|
1052
|
+
const m = this.shadow.elementFromPoint(p.clientX, p.clientY), f = m ? m.closest(".ui-layer-row") : null;
|
|
1053
|
+
if (n && n !== f && n.classList.remove("drop-above", "drop-below"), f && f !== a) {
|
|
1054
|
+
n = f;
|
|
1055
|
+
const g = f.getBoundingClientRect();
|
|
1056
|
+
l = p.clientY - g.top < g.height / 2, f.classList.toggle("drop-above", l), f.classList.toggle("drop-below", !l);
|
|
1019
1057
|
} else
|
|
1020
1058
|
n = null;
|
|
1021
1059
|
}, s = () => {
|
|
@@ -1023,7 +1061,7 @@ class ka {
|
|
|
1023
1061
|
}, d = () => {
|
|
1024
1062
|
s();
|
|
1025
1063
|
const p = n == null ? void 0 : n.getAttribute("data-layer-id");
|
|
1026
|
-
this.limparClassesDeArraste(), p &&
|
|
1064
|
+
this.limparClassesDeArraste(), p && Sa(this.host.camadas, i, p, l) && this.aposReordenarCamadas();
|
|
1027
1065
|
};
|
|
1028
1066
|
this.cancelarToque = () => {
|
|
1029
1067
|
s(), this.limparClassesDeArraste();
|
|
@@ -1032,26 +1070,60 @@ class ka {
|
|
|
1032
1070
|
});
|
|
1033
1071
|
}
|
|
1034
1072
|
}
|
|
1035
|
-
const
|
|
1036
|
-
function
|
|
1073
|
+
const Ra = "ui_camadas_estado_";
|
|
1074
|
+
function Oa(e, r) {
|
|
1037
1075
|
const a = (e || r || "default").trim();
|
|
1038
|
-
return `${
|
|
1076
|
+
return `${Ra}${a}`;
|
|
1077
|
+
}
|
|
1078
|
+
function ve(e) {
|
|
1079
|
+
return !!e && typeof e == "object" && !Array.isArray(e);
|
|
1080
|
+
}
|
|
1081
|
+
function te(e) {
|
|
1082
|
+
return Array.isArray(e) ? e.filter((r) => typeof r == "string") : [];
|
|
1083
|
+
}
|
|
1084
|
+
function Pe(e) {
|
|
1085
|
+
if (!ve(e)) return;
|
|
1086
|
+
const r = {};
|
|
1087
|
+
return typeof e.name == "string" && (r.name = e.name), typeof e.visible == "boolean" && (r.visible = e.visible), typeof e.locked == "boolean" && (r.locked = e.locked), typeof e.opacity == "number" && Number.isFinite(e.opacity) && e.opacity >= 0 && e.opacity <= 1 && (r.opacity = e.opacity), typeof e.color == "string" && (r.color = e.color), (typeof e.parentId == "string" || e.parentId === null) && (r.parentId = e.parentId), r;
|
|
1088
|
+
}
|
|
1089
|
+
function ja(e) {
|
|
1090
|
+
if (!ve(e)) return null;
|
|
1091
|
+
const r = {};
|
|
1092
|
+
if (ve(e.camadasOverrides))
|
|
1093
|
+
for (const [i, t] of Object.entries(e.camadasOverrides)) {
|
|
1094
|
+
const o = Pe(t);
|
|
1095
|
+
if (!o) continue;
|
|
1096
|
+
const n = Pe(t.origem);
|
|
1097
|
+
r[i] = n ? { ...o, origem: n } : o;
|
|
1098
|
+
}
|
|
1099
|
+
const a = e.altura;
|
|
1100
|
+
return {
|
|
1101
|
+
versao: typeof e.versao == "number" ? e.versao : 1,
|
|
1102
|
+
expandedLayerIds: te(e.expandedLayerIds),
|
|
1103
|
+
collapsedLayerIds: te(e.collapsedLayerIds),
|
|
1104
|
+
camadaAtivaId: typeof e.camadaAtivaId == "string" ? e.camadaAtivaId : null,
|
|
1105
|
+
painelColapsado: typeof e.painelColapsado == "boolean" ? e.painelColapsado : void 0,
|
|
1106
|
+
ordemCamadasIds: te(e.ordemCamadasIds),
|
|
1107
|
+
ordemOrigemIds: Array.isArray(e.ordemOrigemIds) ? te(e.ordemOrigemIds) : void 0,
|
|
1108
|
+
mapaBaseAtivo: typeof e.mapaBaseAtivo == "string" ? e.mapaBaseAtivo : void 0,
|
|
1109
|
+
densidade: e.densidade === "compacto" || e.densidade === "normal" ? e.densidade : void 0,
|
|
1110
|
+
altura: typeof a == "number" && Number.isFinite(a) && a > 0 ? a : null,
|
|
1111
|
+
camadasOverrides: r,
|
|
1112
|
+
ultimaAtualizacao: typeof e.ultimaAtualizacao == "number" ? e.ultimaAtualizacao : void 0
|
|
1113
|
+
};
|
|
1039
1114
|
}
|
|
1040
|
-
function
|
|
1115
|
+
function be(e) {
|
|
1041
1116
|
if (typeof window > "u" || typeof localStorage > "u")
|
|
1042
1117
|
return null;
|
|
1043
1118
|
try {
|
|
1044
1119
|
const r = localStorage.getItem(e);
|
|
1045
|
-
|
|
1046
|
-
const a = JSON.parse(r);
|
|
1047
|
-
if (a && typeof a == "object")
|
|
1048
|
-
return a;
|
|
1120
|
+
return r ? ja(JSON.parse(r)) : null;
|
|
1049
1121
|
} catch (r) {
|
|
1050
1122
|
console.warn(`[UI-Camadas] Não foi possível carregar o estado persistido (${e}):`, r);
|
|
1051
1123
|
}
|
|
1052
1124
|
return null;
|
|
1053
1125
|
}
|
|
1054
|
-
function
|
|
1126
|
+
function Na(e, r) {
|
|
1055
1127
|
if (!(typeof window > "u" || typeof localStorage > "u"))
|
|
1056
1128
|
try {
|
|
1057
1129
|
localStorage.setItem(e, JSON.stringify(r));
|
|
@@ -1059,14 +1131,14 @@ function Ca(e, r) {
|
|
|
1059
1131
|
console.warn(`[UI-Camadas] Não foi possível salvar o estado persistido (${e}):`, a);
|
|
1060
1132
|
}
|
|
1061
1133
|
}
|
|
1062
|
-
function
|
|
1134
|
+
function Ha(e) {
|
|
1063
1135
|
if (!(typeof window > "u" || typeof localStorage > "u"))
|
|
1064
1136
|
try {
|
|
1065
1137
|
localStorage.removeItem(e);
|
|
1066
1138
|
} catch {
|
|
1067
1139
|
}
|
|
1068
1140
|
}
|
|
1069
|
-
function
|
|
1141
|
+
function Xe(e) {
|
|
1070
1142
|
return {
|
|
1071
1143
|
name: e.name,
|
|
1072
1144
|
visible: e.visible !== !1,
|
|
@@ -1076,46 +1148,46 @@ function Te(e) {
|
|
|
1076
1148
|
parentId: e.parentId !== void 0 ? e.parentId : null
|
|
1077
1149
|
};
|
|
1078
1150
|
}
|
|
1079
|
-
function
|
|
1080
|
-
var
|
|
1151
|
+
function Ga(e, r, a, i) {
|
|
1152
|
+
var u;
|
|
1081
1153
|
if (!Array.isArray(e)) return;
|
|
1082
1154
|
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) || []), l = o.size > 0 || n.size > 0;
|
|
1083
1155
|
for (let p = 0; p < e.length; p++) {
|
|
1084
|
-
const m = e[p],
|
|
1085
|
-
if (i == null || i.set(m.id,
|
|
1086
|
-
const g =
|
|
1156
|
+
const m = e[p], f = t[m.id];
|
|
1157
|
+
if (i == null || i.set(m.id, Xe(m)), f) {
|
|
1158
|
+
const g = f.origem, v = (h) => {
|
|
1087
1159
|
var C;
|
|
1088
1160
|
const k = (C = i == null ? void 0 : i.get(m.id)) == null ? void 0 : C[h];
|
|
1089
1161
|
return g !== void 0 && g[h] !== k;
|
|
1090
1162
|
};
|
|
1091
|
-
typeof
|
|
1163
|
+
typeof f.name == "string" && f.name.trim() && !v("name") && (m.name = f.name), typeof f.visible == "boolean" && !v("visible") && (m.visible = f.visible), typeof f.locked == "boolean" && !v("locked") && (m.locked = f.locked), typeof f.opacity == "number" && !v("opacity") && (m.opacity = f.opacity), typeof f.color == "string" && !v("color") && (m.color = f.color), f.parentId !== void 0 && !v("parentId") && (m.parentId = f.parentId);
|
|
1092
1164
|
}
|
|
1093
1165
|
l ? o.has(m.id) ? a.add(m.id) : n.has(m.id) ? a.delete(m.id) : a.add(m.id) : a.add(m.id);
|
|
1094
1166
|
}
|
|
1095
1167
|
for (let p = 0; p < e.length; p++) {
|
|
1096
1168
|
const m = e[p];
|
|
1097
|
-
m.parentId && (m.parentId === m.id ||
|
|
1169
|
+
m.parentId && (m.parentId === m.id || _(e, m.parentId, m.id)) && (m.parentId = ((u = i == null ? void 0 : i.get(m.id)) == null ? void 0 : u.parentId) ?? null);
|
|
1098
1170
|
}
|
|
1099
1171
|
const c = new Set(e.map((p) => p.id)), s = r == null ? void 0 : r.ordemOrigemIds;
|
|
1100
1172
|
if (!(Array.isArray(s) && (() => {
|
|
1101
|
-
const p = new Set(s), m = (
|
|
1102
|
-
return m(s) !== m(e.map((
|
|
1173
|
+
const p = new Set(s), m = (f) => f.filter((g) => c.has(g) && p.has(g)).join("|");
|
|
1174
|
+
return m(s) !== m(e.map((f) => f.id));
|
|
1103
1175
|
})()) && Array.isArray(r == null ? void 0 : r.ordemCamadasIds) && r.ordemCamadasIds.length > 0) {
|
|
1104
1176
|
const p = /* @__PURE__ */ new Map();
|
|
1105
|
-
r.ordemCamadasIds.forEach((m,
|
|
1106
|
-
const g = p.has(m.id) ? p.get(m.id) : 9999, v = p.has(
|
|
1177
|
+
r.ordemCamadasIds.forEach((m, f) => p.set(m, f)), e.sort((m, f) => {
|
|
1178
|
+
const g = p.has(m.id) ? p.get(m.id) : 9999, v = p.has(f.id) ? p.get(f.id) : 9999;
|
|
1107
1179
|
return g - v;
|
|
1108
1180
|
});
|
|
1109
1181
|
}
|
|
1110
1182
|
}
|
|
1111
|
-
function
|
|
1183
|
+
function Ua(e) {
|
|
1112
1184
|
const { estadoAnterior: r, camadas: a, expandedLayers: i } = e;
|
|
1113
1185
|
let t = (r == null ? void 0 : r.expandedLayerIds) || [], o = (r == null ? void 0 : r.collapsedLayerIds) || [], n = (r == null ? void 0 : r.ordemCamadasIds) || [], l = r == null ? void 0 : r.ordemOrigemIds;
|
|
1114
1186
|
const c = {
|
|
1115
1187
|
...(r == null ? void 0 : r.camadasOverrides) || {}
|
|
1116
1188
|
};
|
|
1117
1189
|
a.length > 0 && (t = [], o = [], n = a.map((s) => s.id), l = e.origensCamadas ? [...e.origensCamadas.keys()] : n, a.forEach((s) => {
|
|
1118
|
-
var d,
|
|
1190
|
+
var d, u;
|
|
1119
1191
|
i.has(s.id) ? t.push(s.id) : o.push(s.id), c[s.id] = {
|
|
1120
1192
|
name: s.name,
|
|
1121
1193
|
visible: s.visible !== !1,
|
|
@@ -1123,7 +1195,7 @@ function Ma(e) {
|
|
|
1123
1195
|
opacity: typeof s.opacity == "number" ? s.opacity : 1,
|
|
1124
1196
|
color: s.color || "#00E08A",
|
|
1125
1197
|
parentId: s.parentId !== void 0 ? s.parentId : null,
|
|
1126
|
-
origem: ((d = e.origensCamadas) == null ? void 0 : d.get(s.id)) ?? ((
|
|
1198
|
+
origem: ((d = e.origensCamadas) == null ? void 0 : d.get(s.id)) ?? ((u = c[s.id]) == null ? void 0 : u.origem)
|
|
1127
1199
|
};
|
|
1128
1200
|
}));
|
|
1129
1201
|
for (const s of e.camadasRemovidas ?? []) delete c[s];
|
|
@@ -1142,8 +1214,65 @@ function Ma(e) {
|
|
|
1142
1214
|
ultimaAtualizacao: Date.now()
|
|
1143
1215
|
};
|
|
1144
1216
|
}
|
|
1145
|
-
const Fa = `:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:inherit;font-size:11px;color:var(--ui-cor-texto, #e1e1e6);-webkit-user-select:none;user-select:none;width:100%;height:var(--ui-camadas-altura, 100%);min-height:var(--ui-camadas-min-altura, 140px);position:relative;--camada-respiro: 8px;--camada-barra-altura: 28px;--camada-linha-altura: 25px;--camada-thumb-tamanho: 20px;--camada-transicao: .16s cubic-bezier(.16, 1, .3, 1)}:host([densidade="compacto"]){--camada-linha-altura: 22px;--camada-thumb-tamanho: 17px;font-size:10px}:host([flutuante]){position:absolute;top:10px;right:10px;bottom:46px;z-index:var(--ui-z-workspace-hud, 500);width:auto;height:var(--ui-camadas-altura, auto)}*,*:before,*:after{box-sizing:border-box}:host(:not([flutuante])) .ui-camadas-container{max-width:100%;min-width:0;border:none;box-shadow:none;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ui-camadas-container{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;width:100%;max-width:380px;min-width:270px;background:var(--ui-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:var(--camada-barra-altura);min-height:var(--camada-barra-altura);max-height:var(--camada-barra-altura);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:0 var(--camada-respiro) var(--camada-respiro);display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent) transparent}.ui-camadas-corpo::-webkit-scrollbar{width:4px}.ui-camadas-corpo::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-radius:var(--ui-raio-sm, 4px)}.ui-camadas-corpo::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent)}.ui-tree-toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro));padding:0 var(--camada-respiro);gap:8px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .06))}.ui-tree-title-group{display:flex;align-items:center;gap:5px}.ui-tree-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-tree-count-badge{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);color:var(--ui-cor-texto-secundario, #888899);padding:1px 5px;border-radius:8px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent)}.ui-tree-actions{display:flex;align-items:center;gap:3px}.ui-tree-action-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:24px;height:24px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-tree-action-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-tree-btn-new{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);border:none;color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 8px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-new:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-tree-search-wrapper{position:relative;display:flex;align-items:center;margin:1px 0}.ui-tree-search-icon{position:absolute;left:8px;color:var(--ui-cor-texto-secundario, #888899);pointer-events:none;display:flex;align-items:center}.ui-tree-search-input{width:100%;height:25px;background:var(--ui-cor-fundo, #0a0a0c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));border-radius:var(--ui-raio-borda, 5px);padding:0 24px 0 26px;color:var(--ui-cor-texto, #ffffff);font-size:10.5px;outline:none;transition:border-color var(--camada-transicao),box-shadow var(--camada-transicao)}.ui-tree-search-input:focus{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-tree-search-clear{position:absolute;right:5px;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all var(--camada-transicao)}.ui-tree-search-clear:hover{color:var(--ui-cor-texto, #ffffff);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent)}.ui-panel-box{background:var(--ui-cor-fundo, #0c0c0f);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));border-radius:var(--ui-raio-borda, 6px);overflow:hidden;display:flex;flex-direction:column;flex:1 1 0%;min-height:140px}.ui-search-empty{padding:14px 10px;text-align:center;font-size:11px;color:var(--ui-cor-texto-secundario, #888899);overflow-wrap:anywhere}.ui-layer-tree{flex:1 1 0%;min-height:40px;overflow-y:auto;overflow-x:hidden}.ui-layer-group{border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .04));transition:background var(--camada-transicao)}.ui-layer-group.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A);outline-offset:-1.5px}.ui-layer-row,.ui-feat-row{display:flex;align-items:center;height:var(--camada-linha-altura);min-height:var(--camada-linha-altura);max-height:var(--camada-linha-altura);padding:0 4px;-webkit-user-select:none;user-select:none;cursor:default;transition:background .1s ease;position:relative}.ui-layer-row{background:var(--ui-cor-fundo-elevado, #18181d);font-weight:600;cursor:pointer;border-left:3px solid transparent}.ui-layer-row:hover{background:var(--ui-cor-hover-menu, #22222a)}.ui-layer-row.active-drawing-layer{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 18%,var(--ui-cor-fundo-elevado, #18181d))!important;border-left:3px solid var(--layer-active-color, var(--ui-cor-primaria, #00E08A))!important;box-shadow:inset 0 0 12px color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 10%,transparent)}.ui-layer-row.active-drawing-layer .ui-name-text{color:var(--ui-cor-texto, #e1e1e6);font-weight:700}.ui-feat-row{border-left:3px solid transparent;padding-left:13px;background:var(--ui-cor-fundo, #101014);font-weight:400;cursor:pointer}.ui-feat-row:hover{background:var(--ui-cor-hover-menu, #19191f)}.ui-feat-row.selected-row{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 20%,var(--ui-cor-fundo, #101014))!important;outline:1px solid color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 55%,transparent)!important;outline-offset:-1px}.ui-layer-row.hidden-layer,.ui-feat-row.hidden-row{opacity:.52}.ui-layer-row.hidden-layer .ui-col-eye,.ui-feat-row.hidden-row .ui-col-eye{color:var(--ui-cor-texto-alerta, #ffb86c);opacity:.95}.ui-layer-row.dragging,.ui-feat-row.dragging{opacity:.35;background:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 16%,transparent)!important}.ui-layer-row.drop-above:before,.ui-feat-row.drop-above:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-below:after,.ui-feat-row.drop-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 16%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A)!important;outline-offset:-2px;border-radius:var(--ui-raio-sm, 4px)}.ui-layer-row.is-sublayer{background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #18181d) 70%,transparent)}.ui-group-folder-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-alerta, #ffb86c);margin-right:4px;flex-shrink:0}.ui-col{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--camada-linha-altura)}.ui-col-drag{width:8px;margin-right:1px;cursor:grab;color:var(--ui-cor-texto-secundario, #888899);opacity:.35;touch-action:none;transition:opacity var(--camada-transicao),color var(--camada-transicao)}.ui-layer-row:hover .ui-col-drag,.ui-feat-row:hover .ui-col-drag{opacity:.9;color:var(--ui-cor-primaria, #00E08A)}.ui-col-drag:active{cursor:grabbing}.ui-col-eye{width:20px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-eye:hover{color:var(--ui-cor-primaria, #00E08A)}.ui-col-lock{width:18px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-lock:hover{color:var(--ui-cor-texto-alerta, #ffb86c)}.ui-col-colorbar{width:3.5px;height:16px;margin:0 3px 0 2px;border-radius:1.5px;flex-shrink:0}.ui-col-colorbar-editavel{position:relative;width:5px;height:18px;cursor:pointer}.ui-col-colorbar-editavel:before{content:"";position:absolute;top:-3px;right:-4px;bottom:-3px;left:-4px}.ui-col-colorbar-editavel:hover,.ui-col-colorbar-editavel:focus-visible{filter:brightness(1.3);outline:none}.ui-col-chevron,.ui-col-branch{margin-left:calc(var(--layer-depth, 0) * 12px)}.ui-col-chevron{width:14px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);display:flex;align-items:center;justify-content:center}.ui-chevron-icon{display:inline-flex;align-items:center;justify-content:center;transition:transform var(--camada-transicao)}.ui-chevron-icon.open{transform:rotate(90deg)}.ui-col-branch{width:14px;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.ui-col-thumb{width:calc(var(--camada-thumb-tamanho) + 3px);margin-right:4px;display:flex;align-items:center;justify-content:center}.ui-thumb-box{width:var(--camada-thumb-tamanho);height:var(--camada-thumb-tamanho);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);border-radius:3px;background:var(--ui-cor-fundo, #0d0d10);box-sizing:border-box;overflow:hidden;display:flex;align-items:center;justify-content:center}.ui-col-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--ui-cor-texto, #e1e1e6);padding-left:2px;padding-right:4px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:4px}.ui-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-count-chip{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-texto-secundario, #888899);font-weight:400;padding:0 2px;flex-shrink:0}.ui-col-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--camada-transicao)}.ui-layer-row:hover .ui-col-actions,.ui-feat-row:hover .ui-col-actions{opacity:1}.ui-micro-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:18px;height:18px;padding:0;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-micro-btn:hover{color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-micro-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-col-target{width:22px;cursor:pointer}.ui-target-circle{width:11px;height:11px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent);background:transparent;transition:all .12s ease}.ui-col-target:hover .ui-target-circle{border-color:var(--ui-cor-texto-info, #33b5ff);transform:scale(1.18)}.ui-target-circle.selected{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));box-shadow:inset 0 0 0 2px var(--ui-cor-superficie, #141418)}.ui-target-circle.partial{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 40%,transparent)}.ui-inline-rename-input{width:100%;height:20px;background:var(--ui-cor-fundo, #0d0d10);color:var(--ui-cor-texto, #e1e1e6);border:1px solid var(--ui-cor-primaria, #00E08A);border-radius:3px;font-size:10.5px;padding:0 4px;outline:none;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 40%,transparent)}.ui-layer-settings-drawer{background:linear-gradient(180deg,var(--ui-cor-fundo-elevado, #17171e) 0%,var(--ui-cor-superficie, #0f0f13) 100%);padding:10px 14px 12px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent);border-left:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent),0 6px 16px #00000073;animation:drawerSlideDown .18s cubic-bezier(.16,1,.3,1);position:relative;z-index:10}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-header-left{display:flex;align-items:center;gap:7px;min-width:0}.ui-drawer-icon{color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;align-items:center;flex-shrink:0}.ui-drawer-title{font-size:10.5px;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.ui-drawer-layer-chip{font-size:9.5px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-drawer-btn-fechar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:20px;height:20px;padding:0;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-drawer-btn-fechar:hover{color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-body{display:flex;flex-direction:column;gap:10px}.ui-drawer-row{display:flex;flex-direction:column;gap:5px}.ui-drawer-row-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ui-cor-texto-secundario, #888899)}.ui-drawer-color-group{display:flex;align-items:center;justify-content:space-between;gap:8px}.ui-drawer-color-pill{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 5px;background:var(--ui-cor-fundo, #0b0b0d);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent);border-radius:var(--ui-raio-sm, 4px);cursor:pointer;transition:all var(--camada-transicao);-webkit-user-select:none;user-select:none}.ui-drawer-color-pill:hover{border-color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent)}.ui-drawer-color-sample{width:14px;height:14px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 35%,transparent);box-shadow:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .5));flex-shrink:0;transition:background-color .1s ease}.ui-drawer-color-hex{font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);letter-spacing:.5px}.ui-drawer-color-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ui-drawer-badge{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider-container{display:flex;flex-direction:column;gap:4px}.ui-drawer-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent) 0%,var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A)) 100%);border-radius:3px;outline:none;margin:3px 0;cursor:pointer;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer;transition:transform .12s ease}.ui-drawer-slider::-webkit-slider-thumb:hover{transform:scale(1.22)}.ui-drawer-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer}.ui-drawer-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-meta-info{font-size:9.5px;color:var(--ui-cor-texto-secundario, #888899);font-style:italic}.ui-drawer-actions{display:flex;align-items:center;gap:6px}.ui-drawer-btn-danger{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 10%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 35%,transparent);color:var(--ui-cor-texto-erro, #ff5555);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 10px;font-size:10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--camada-transicao)}.ui-drawer-btn-danger:hover{background:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 45%,transparent);transform:translateY(-.5px)}.ui-drawer-btn-danger.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-hover, #b71c1c);animation:pulseDanger 1.2s infinite}@keyframes pulseDanger{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.ui-previa-dot{width:6px;height:6px;margin-left:4px;border-radius:50%;flex-shrink:0;background:var(--ui-cor-texto-alerta, #ffb86c);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 25%,transparent)}.ui-tree-footer{height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);background:var(--ui-cor-fundo-elevado, #121216);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;align-items:center;justify-content:space-between;padding:0 var(--camada-respiro);gap:6px;box-sizing:border-box;overflow:hidden;position:relative;flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro))}.ui-footer-left{display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.ui-footer-count{font-size:11px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-primaria, #00E08A);flex-shrink:0}.ui-footer-label{display:inline-flex;align-items:center;color:var(--ui-cor-texto-secundario, #888899);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 8px;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-footer-right{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.ui-footer-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all var(--camada-transicao);flex-shrink:0}.ui-footer-btn:hover:not(.disabled){color:var(--ui-cor-texto, #e1e1e6);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-btn.disabled{opacity:.25;cursor:not-allowed}.ui-footer-btn.btn-danger-footer:hover:not(.disabled){color:#f55;background:#ff555526}.ui-footer-btn.confirming{background:#f55!important;color:#fff!important}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0}.ui-footer-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888899' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:10px;border:none;color:var(--ui-cor-texto, #e1e1e6);border-radius:var(--ui-raio-sm, 4px);font:inherit;font-size:10px;font-weight:500;height:22px;padding:0 22px 0 8px;cursor:pointer;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-select:focus-visible{outline:1px solid var(--ui-cor-primaria, #00E08A)}.ui-tree-btn-group{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);border-radius:var(--ui-raio-sm, 4px);height:24px;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:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.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}.ui-truncate-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;margin:4px 8px 6px;background:color-mix(in srgb,var(--ui-cor-superficie-elevada, #1c1c21) 70%,transparent);border:1px dashed var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 4px);font-size:10px;color:var(--ui-cor-texto-secundario, #9ca3af)}.ui-truncate-notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-truncate-more-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--ui-cor-superficie, #27272a);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 4px);color:var(--ui-cor-primaria, #00E08A);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--camada-transicao)}.ui-truncate-more-btn:hover{background:var(--ui-cor-superficie-hover, #3f3f46);border-color:var(--ui-cor-primaria, #00E08A)}.ui-truncate-more-btn:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}`;
|
|
1146
|
-
function
|
|
1217
|
+
const Va = `:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:inherit;font-size:11px;color:var(--ui-cor-texto, #e1e1e6);-webkit-user-select:none;user-select:none;width:100%;height:var(--ui-camadas-altura, 100%);min-height:var(--ui-camadas-min-altura, 140px);position:relative;--camada-respiro: 8px;--camada-barra-altura: 28px;--camada-linha-altura: 25px;--camada-thumb-tamanho: 20px;--camada-transicao: .16s cubic-bezier(.16, 1, .3, 1)}:host([densidade="compacto"]){--camada-linha-altura: 22px;--camada-thumb-tamanho: 17px;font-size:10px}:host([flutuante]){position:absolute;top:10px;right:10px;bottom:46px;z-index:var(--ui-z-workspace-hud, 500);width:auto;height:var(--ui-camadas-altura, auto)}*,*:before,*:after{box-sizing:border-box}:host(:not([flutuante])) .ui-camadas-container{max-width:100%;min-width:0;border:none;box-shadow:none;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ui-camadas-container{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;width:100%;max-width:380px;min-width:270px;background:var(--ui-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:var(--camada-barra-altura);min-height:var(--camada-barra-altura);max-height:var(--camada-barra-altura);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:0 var(--camada-respiro) var(--camada-respiro);display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent) transparent}.ui-camadas-corpo::-webkit-scrollbar{width:4px}.ui-camadas-corpo::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-radius:var(--ui-raio-sm, 4px)}.ui-camadas-corpo::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent)}.ui-tree-toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro));padding:0 var(--camada-respiro);gap:8px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .06))}.ui-tree-title-group{display:flex;align-items:center;gap:5px}.ui-tree-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-tree-count-badge{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);color:var(--ui-cor-texto-secundario, #888899);padding:1px 5px;border-radius:8px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent)}.ui-tree-actions{display:flex;align-items:center;gap:3px}.ui-tree-action-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:24px;height:24px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-tree-action-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-tree-btn-new{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);border:none;color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 8px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-new:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-tree-search-wrapper{position:relative;display:flex;align-items:center;margin:1px 0}.ui-tree-search-icon{position:absolute;left:8px;color:var(--ui-cor-texto-secundario, #888899);pointer-events:none;display:flex;align-items:center}.ui-tree-search-input{width:100%;height:25px;background:var(--ui-cor-fundo, #0a0a0c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));border-radius:var(--ui-raio-borda, 5px);padding:0 24px 0 26px;color:var(--ui-cor-texto, #ffffff);font-size:10.5px;outline:none;transition:border-color var(--camada-transicao),box-shadow var(--camada-transicao)}.ui-tree-search-input:focus{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-tree-search-clear{position:absolute;right:5px;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all var(--camada-transicao)}.ui-tree-search-clear:hover{color:var(--ui-cor-texto, #ffffff);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent)}.ui-panel-box{background:var(--ui-cor-fundo, #0c0c0f);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));border-radius:var(--ui-raio-borda, 6px);overflow:hidden;display:flex;flex-direction:column;flex:1 1 0%;min-height:140px}.ui-search-empty{padding:14px 10px;text-align:center;font-size:11px;color:var(--ui-cor-texto-secundario, #888899);overflow-wrap:anywhere}.ui-layer-tree{flex:1 1 0%;min-height:40px;overflow-y:auto;overflow-x:hidden}.ui-layer-group{border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .04));transition:background var(--camada-transicao)}.ui-layer-group.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A);outline-offset:-1.5px}.ui-layer-row,.ui-feat-row{display:flex;align-items:center;height:var(--camada-linha-altura);min-height:var(--camada-linha-altura);max-height:var(--camada-linha-altura);padding:0 4px;-webkit-user-select:none;user-select:none;cursor:default;transition:background .1s ease;position:relative}.ui-layer-row{background:var(--ui-cor-fundo-elevado, #18181d);font-weight:600;cursor:pointer;border-left:3px solid transparent}.ui-layer-row:hover{background:var(--ui-cor-hover-menu, #22222a)}.ui-layer-row.active-drawing-layer{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 18%,var(--ui-cor-fundo-elevado, #18181d))!important;border-left:3px solid var(--layer-active-color, var(--ui-cor-primaria, #00E08A))!important;box-shadow:inset 0 0 12px color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 10%,transparent)}.ui-layer-row.active-drawing-layer .ui-name-text{color:var(--ui-cor-texto, #e1e1e6);font-weight:700}.ui-feat-row{border-left:3px solid transparent;padding-left:13px;background:var(--ui-cor-fundo, #101014);font-weight:400;cursor:pointer}.ui-feat-row:hover{background:var(--ui-cor-hover-menu, #19191f)}.ui-feat-row.selected-row{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 20%,var(--ui-cor-fundo, #101014))!important;outline:1px solid color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 55%,transparent)!important;outline-offset:-1px}.ui-layer-row.hidden-layer,.ui-feat-row.hidden-row{opacity:.52}.ui-layer-row.hidden-layer .ui-col-eye,.ui-feat-row.hidden-row .ui-col-eye{color:var(--ui-cor-texto-alerta, #ffb86c);opacity:.95}.ui-layer-row.dragging,.ui-feat-row.dragging{opacity:.35;background:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 16%,transparent)!important}.ui-layer-row.drop-above:before,.ui-feat-row.drop-above:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-below:after,.ui-feat-row.drop-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 16%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A)!important;outline-offset:-2px;border-radius:var(--ui-raio-sm, 4px)}.ui-layer-row.is-sublayer{background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #18181d) 70%,transparent)}.ui-group-folder-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-alerta, #ffb86c);margin-right:4px;flex-shrink:0}.ui-col{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--camada-linha-altura)}.ui-col-drag{width:8px;margin-right:1px;cursor:grab;color:var(--ui-cor-texto-secundario, #888899);opacity:.35;touch-action:none;transition:opacity var(--camada-transicao),color var(--camada-transicao)}.ui-layer-row:hover .ui-col-drag,.ui-feat-row:hover .ui-col-drag{opacity:.9;color:var(--ui-cor-primaria, #00E08A)}.ui-col-drag:active{cursor:grabbing}.ui-col-eye{width:20px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-eye:hover{color:var(--ui-cor-primaria, #00E08A)}.ui-col-lock{width:18px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-lock:hover{color:var(--ui-cor-texto-alerta, #ffb86c)}.ui-col-colorbar{width:3.5px;height:16px;margin:0 3px 0 2px;border-radius:1.5px;flex-shrink:0}.ui-col-colorbar-editavel{position:relative;width:5px;height:18px;cursor:pointer}.ui-col-colorbar-editavel:before{content:"";position:absolute;top:-3px;right:-4px;bottom:-3px;left:-4px}.ui-col-colorbar-editavel:hover,.ui-col-colorbar-editavel:focus-visible{filter:brightness(1.3);outline:none}.ui-col-chevron,.ui-col-branch{margin-left:calc(var(--layer-depth, 0) * 12px)}.ui-col-chevron{width:14px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);display:flex;align-items:center;justify-content:center}.ui-chevron-icon{display:inline-flex;align-items:center;justify-content:center;transition:transform var(--camada-transicao)}.ui-chevron-icon.open{transform:rotate(90deg)}.ui-col-branch{width:14px;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.ui-col-thumb{width:calc(var(--camada-thumb-tamanho) + 3px);margin-right:4px;display:flex;align-items:center;justify-content:center}.ui-thumb-box{width:var(--camada-thumb-tamanho);height:var(--camada-thumb-tamanho);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);border-radius:3px;background:var(--ui-cor-fundo, #0d0d10);box-sizing:border-box;overflow:hidden;display:flex;align-items:center;justify-content:center}.ui-col-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--ui-cor-texto, #e1e1e6);padding-left:2px;padding-right:4px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:4px}.ui-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-count-chip{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-texto-secundario, #888899);font-weight:400;padding:0 2px;flex-shrink:0}.ui-col-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--camada-transicao)}.ui-layer-row:hover .ui-col-actions,.ui-feat-row:hover .ui-col-actions{opacity:1}.ui-micro-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:18px;height:18px;padding:0;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-micro-btn:hover{color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-micro-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-col-target{width:22px;cursor:pointer}.ui-target-circle{width:11px;height:11px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent);background:transparent;transition:all .12s ease}.ui-col-target:hover .ui-target-circle{border-color:var(--ui-cor-texto-info, #33b5ff);transform:scale(1.18)}.ui-target-circle.selected{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));box-shadow:inset 0 0 0 2px var(--ui-cor-superficie, #141418)}.ui-target-circle.partial{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 40%,transparent)}.ui-inline-rename-input{width:100%;height:20px;background:var(--ui-cor-fundo, #0d0d10);color:var(--ui-cor-texto, #e1e1e6);border:1px solid var(--ui-cor-primaria, #00E08A);border-radius:3px;font-size:10.5px;padding:0 4px;outline:none;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 40%,transparent)}.ui-layer-settings-drawer{background:linear-gradient(180deg,var(--ui-cor-fundo-elevado, #17171e) 0%,var(--ui-cor-superficie, #0f0f13) 100%);padding:10px 14px 12px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent);border-left:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent),0 6px 16px #00000073;animation:drawerSlideDown .18s cubic-bezier(.16,1,.3,1);position:relative;z-index:10}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-header-left{display:flex;align-items:center;gap:7px;min-width:0}.ui-drawer-icon{color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;align-items:center;flex-shrink:0}.ui-drawer-title{font-size:10.5px;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.ui-drawer-layer-chip{font-size:9.5px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-drawer-btn-fechar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:20px;height:20px;padding:0;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-drawer-btn-fechar:hover{color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-body{display:flex;flex-direction:column;gap:10px}.ui-drawer-row{display:flex;flex-direction:column;gap:5px}.ui-drawer-row-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ui-cor-texto-secundario, #888899)}.ui-drawer-color-group{display:flex;align-items:center;justify-content:space-between;gap:8px}.ui-drawer-color-pill{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 5px;background:var(--ui-cor-fundo, #0b0b0d);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent);border-radius:var(--ui-raio-sm, 4px);cursor:pointer;transition:all var(--camada-transicao);-webkit-user-select:none;user-select:none}.ui-drawer-color-pill:hover{border-color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent)}.ui-drawer-color-sample{width:14px;height:14px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 35%,transparent);box-shadow:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .5));flex-shrink:0;transition:background-color .1s ease}.ui-drawer-color-hex{font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);letter-spacing:.5px}.ui-drawer-color-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ui-drawer-badge{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider-container{display:flex;flex-direction:column;gap:4px}.ui-drawer-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent) 0%,var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A)) 100%);border-radius:3px;outline:none;margin:3px 0;cursor:pointer;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer;transition:transform .12s ease}.ui-drawer-slider::-webkit-slider-thumb:hover{transform:scale(1.22)}.ui-drawer-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer}.ui-drawer-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-meta-info{font-size:9.5px;color:var(--ui-cor-texto-secundario, #888899);font-style:italic}.ui-drawer-actions{display:flex;align-items:center;gap:6px}.ui-drawer-btn-danger{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 10%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 35%,transparent);color:var(--ui-cor-texto-erro, #ff5555);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 10px;font-size:10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--camada-transicao)}.ui-drawer-btn-danger:hover{background:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 45%,transparent);transform:translateY(-.5px)}.ui-drawer-btn-danger.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-hover, #b71c1c);animation:pulseDanger 1.2s infinite}@keyframes pulseDanger{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.ui-previa-dot{width:6px;height:6px;margin-left:4px;border-radius:50%;flex-shrink:0;background:var(--ui-cor-texto-alerta, #ffb86c);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 25%,transparent)}.ui-tree-footer{height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);background:var(--ui-cor-fundo-elevado, #121216);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;align-items:center;justify-content:space-between;padding:0 var(--camada-respiro);gap:6px;box-sizing:border-box;overflow:hidden;position:relative;flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro))}.ui-footer-left{display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.ui-footer-count{font-size:11px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-primaria, #00E08A);flex-shrink:0}.ui-footer-label{display:inline-flex;align-items:center;color:var(--ui-cor-texto-secundario, #888899);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 8px;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-footer-right{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.ui-footer-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all var(--camada-transicao);flex-shrink:0}.ui-footer-btn:hover:not(.disabled){color:var(--ui-cor-texto, #e1e1e6);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-btn.disabled{opacity:.25;cursor:not-allowed}.ui-footer-btn.btn-danger-footer:hover:not(.disabled){color:#f55;background:#ff555526}.ui-footer-btn.confirming{background:#f55!important;color:#fff!important}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0}.ui-footer-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888899' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:10px;border:none;color:var(--ui-cor-texto, #e1e1e6);border-radius:var(--ui-raio-sm, 4px);font:inherit;font-size:10px;font-weight:500;height:22px;padding:0 22px 0 8px;cursor:pointer;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-select:focus-visible{outline:1px solid var(--ui-cor-primaria, #00E08A)}.ui-tree-btn-group{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);border-radius:var(--ui-raio-sm, 4px);height:24px;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:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.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-layer-row.herdado-oculto,.ui-feat-row.herdado-oculto{opacity:.52}.ui-layer-row.herdado-travado .ui-col-lock.ui-lock-open{color:var(--ui-cor-texto-secundario, #888899);opacity:.7}.ui-search-hidden{display:none!important}.ui-empty-row{height:22px;display:flex;align-items:center;padding-left:36px;font-size:10px;color:var(--ui-cor-texto-secundario, #666677);font-style:italic;background:var(--ui-cor-fundo-recuado, rgba(0, 0, 0, .15))}.ui-camadas-resizer-altura{display:none;flex-shrink:0;width:100%;height:9px;background:var(--ui-cor-superficie, #141417);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:ns-resize;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none;transition:background .15s ease,border-color .15s ease;position:relative;z-index:10}:host([redimensionavel]) .ui-camadas-resizer-altura,:host([redimensionavel-altura]) .ui-camadas-resizer-altura{display:flex}.ui-camadas-resizer-altura:hover,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent);border-top-color:var(--ui-cor-primaria, #00E08A)}.ui-camadas-resizer-grip{width:32px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);transition:all .15s ease}.ui-camadas-resizer-altura:hover .ui-camadas-resizer-grip,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo .ui-camadas-resizer-grip{background:var(--ui-cor-primaria, #00E08A);width:46px;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 45%,transparent)}:host(.ui-camadas--redimensionando){-webkit-user-select:none!important;user-select:none!important;cursor:ns-resize!important}:host(.ui-camadas--redimensionando) *{-webkit-user-select:none!important;user-select:none!important}.ui-col-lock.ui-lock-open{opacity:.28}.ui-col-lock.ui-lock-open:hover,.ui-col-lock.ui-lock-open:focus-visible{opacity:.8}.ui-col-lock[data-locked-by-layer]{cursor:not-allowed}.ui-col[role=button]:focus-visible,.ui-basemap-card:focus-visible,.ui-feat-row:focus-visible,.ui-layer-row:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:-2px}.ui-footer-btn.confirming{color:var(--ui-cor-botao-destrutivo-texto, #ffffff);background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);width:auto;padding:0 6px}.ui-truncate-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;margin:4px 8px 6px;background:color-mix(in srgb,var(--ui-cor-superficie-elevada, #1c1c21) 70%,transparent);border:1px dashed var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 4px);font-size:10px;color:var(--ui-cor-texto-secundario, #9ca3af)}.ui-truncate-notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-truncate-more-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--ui-cor-superficie, #27272a);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 4px);color:var(--ui-cor-primaria, #00E08A);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--camada-transicao)}.ui-truncate-more-btn:hover{background:var(--ui-cor-superficie-hover, #3f3f46);border-color:var(--ui-cor-primaria, #00E08A)}.ui-truncate-more-btn:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}`;
|
|
1218
|
+
function Ya(e, r) {
|
|
1219
|
+
r.querySelectorAll("[data-layer-row]").forEach((i) => {
|
|
1220
|
+
const o = i.getAttribute("data-layer-row") === e.camadaAtivaId;
|
|
1221
|
+
i.classList.toggle("active-drawing-layer", o), Re(i, "camada-ativa", o), o ? i.setAttribute("aria-current", "true") : i.removeAttribute("aria-current");
|
|
1222
|
+
});
|
|
1223
|
+
}
|
|
1224
|
+
function Ka(e, r) {
|
|
1225
|
+
r.querySelectorAll(".ui-feat-row").forEach((u) => {
|
|
1226
|
+
const p = u.getAttribute("data-feat-row"), m = p ? e.selectedFeatureIds.has(p) : !1;
|
|
1227
|
+
u.classList.toggle("selected-row", m), Re(u, "feicao-selecionada", m), u.setAttribute("aria-selected", String(m));
|
|
1228
|
+
const f = u.querySelector(".ui-target-circle");
|
|
1229
|
+
f && f.classList.toggle("selected", m);
|
|
1230
|
+
}), r.querySelectorAll(".ui-layer-group").forEach((u) => {
|
|
1231
|
+
const p = u.getAttribute("data-layer-id"), m = ne(e.camadas, e.feicoes, p ?? ""), f = u.querySelector(".ui-layer-row .ui-target-circle");
|
|
1232
|
+
if (f && m.length > 0) {
|
|
1233
|
+
const g = m.every((h) => e.selectedFeatureIds.has(h.id)), v = !g && m.some((h) => e.selectedFeatureIds.has(h.id));
|
|
1234
|
+
f.classList.toggle("selected", g), f.classList.toggle("partial", v);
|
|
1235
|
+
} else f && f.classList.remove("selected", "partial");
|
|
1236
|
+
});
|
|
1237
|
+
const a = e.feicoes.filter((u) => e.selectedFeatureIds.has(u.id)), i = a.length > 0, t = r.getElementById("footer-count"), o = r.getElementById("footer-label");
|
|
1238
|
+
if (t && (t.textContent = String(i ? a.length : e.camadas.length)), o) {
|
|
1239
|
+
const u = Ue(e.camadas.length, a.length);
|
|
1240
|
+
o.innerHTML = u.icone, o.title = u.texto, o.setAttribute("aria-label", u.texto);
|
|
1241
|
+
}
|
|
1242
|
+
const n = r.querySelector(".ui-tree-footer");
|
|
1243
|
+
n && (n.classList.toggle("tem-selecao", i), n.classList.toggle("sem-selecao", !i));
|
|
1244
|
+
const l = r.querySelector(".ui-footer-actions-gerais");
|
|
1245
|
+
l && (l.style.display = i ? "none" : "flex");
|
|
1246
|
+
const c = r.querySelector(".ui-footer-bulk-actions");
|
|
1247
|
+
c && (c.style.display = i ? "flex" : "none"), ["btn-footer-del"].forEach((u) => {
|
|
1248
|
+
const p = r.getElementById(u);
|
|
1249
|
+
p && (p.disabled = !i, p.classList.toggle("disabled", !i));
|
|
1250
|
+
});
|
|
1251
|
+
const s = r.querySelector(".ui-footer-move-wrapper");
|
|
1252
|
+
s && s.classList.toggle("disabled", !i);
|
|
1253
|
+
const d = r.getElementById("select-footer-move");
|
|
1254
|
+
d && (d.disabled = !i);
|
|
1255
|
+
}
|
|
1256
|
+
function De(e, r) {
|
|
1257
|
+
const a = we(e.camadas), i = new Map(e.camadas.map((o) => [o.id, o]));
|
|
1258
|
+
r.querySelectorAll(".ui-layer-row").forEach((o) => {
|
|
1259
|
+
const n = a.get(o.getAttribute("data-layer-row") || "");
|
|
1260
|
+
o.classList.toggle("herdado-oculto", (n == null ? void 0 : n.ocultaPorAncestral) === !0), o.classList.toggle("herdado-travado", (n == null ? void 0 : n.travadaPorAncestral) === !0);
|
|
1261
|
+
});
|
|
1262
|
+
const t = new Map(e.feicoes.map((o) => [o.id, o]));
|
|
1263
|
+
r.querySelectorAll(".ui-feat-row").forEach((o) => {
|
|
1264
|
+
const n = o.getAttribute("data-feat-layer") || "", l = i.get(n), c = a.get(n);
|
|
1265
|
+
o.classList.toggle("herdado-oculto", (l == null ? void 0 : l.visible) === !1 || (c == null ? void 0 : c.ocultaPorAncestral) === !0);
|
|
1266
|
+
const s = o.querySelector("[data-feat-lock]"), d = t.get(o.getAttribute("data-feat-row") || "");
|
|
1267
|
+
if (!s || !d) return;
|
|
1268
|
+
const u = (l == null ? void 0 : l.locked) === !0 || (c == null ? void 0 : c.travadaPorAncestral) === !0, p = d.locked === !0 || u;
|
|
1269
|
+
s.innerHTML = p ? b.cadeadoTrancado : b.cadeadoAberto, s.classList.toggle("ui-lock-open", !p), u ? s.setAttribute("data-locked-by-layer", "true") : s.removeAttribute("data-locked-by-layer"), B(
|
|
1270
|
+
s,
|
|
1271
|
+
u ? "Bloqueada pela camada" : p ? "Desbloquear Feição" : "Bloquear Feição"
|
|
1272
|
+
);
|
|
1273
|
+
});
|
|
1274
|
+
}
|
|
1275
|
+
function _a(e, r) {
|
|
1147
1276
|
r.querySelectorAll("[data-layer-row]").forEach((t) => {
|
|
1148
1277
|
t.addEventListener("click", (o) => {
|
|
1149
1278
|
if (o.target.closest(
|
|
@@ -1165,7 +1294,7 @@ function za(e, r) {
|
|
|
1165
1294
|
const d = l.querySelector(".ui-children-container");
|
|
1166
1295
|
d && (d.style.display = s ? "block" : "none");
|
|
1167
1296
|
}
|
|
1168
|
-
|
|
1297
|
+
B(t, s ? "Recolher grupo" : "Expandir grupo"), Xa(e, r), e.salvarLembrancaEstado();
|
|
1169
1298
|
});
|
|
1170
1299
|
}), r.querySelectorAll("[data-layer-eye]").forEach((t) => {
|
|
1171
1300
|
t.addEventListener("click", (o) => {
|
|
@@ -1174,9 +1303,9 @@ function za(e, r) {
|
|
|
1174
1303
|
if (l) {
|
|
1175
1304
|
l.visible = l.visible === !1;
|
|
1176
1305
|
const c = l.visible !== !1;
|
|
1177
|
-
t.innerHTML = c ? b.olhoAberto : b.olhoFechado,
|
|
1306
|
+
t.innerHTML = c ? b.olhoAberto : b.olhoFechado, B(t, c ? "Ocultar Camada" : "Exibir Camada");
|
|
1178
1307
|
const s = t.closest(".ui-layer-row");
|
|
1179
|
-
s && s.classList.toggle("hidden-layer", !c),
|
|
1308
|
+
s && s.classList.toggle("hidden-layer", !c), Qa(e, r), De(e, r), e.salvarLembrancaEstado(), e.dispararEvento("ui-camada-visibilidade", {
|
|
1180
1309
|
camadaId: l.id,
|
|
1181
1310
|
visivel: c
|
|
1182
1311
|
});
|
|
@@ -1186,7 +1315,7 @@ function za(e, r) {
|
|
|
1186
1315
|
t.addEventListener("click", (o) => {
|
|
1187
1316
|
o.stopPropagation();
|
|
1188
1317
|
const n = t.getAttribute("data-layer-lock"), l = e.camadas.find((c) => c.id === n);
|
|
1189
|
-
l && (l.locked = !l.locked, t.innerHTML = l.locked ? b.cadeadoTrancado : b.cadeadoAberto, t.classList.toggle("ui-lock-open", !l.locked),
|
|
1318
|
+
l && (l.locked = !l.locked, t.innerHTML = l.locked ? b.cadeadoTrancado : b.cadeadoAberto, t.classList.toggle("ui-lock-open", !l.locked), B(t, l.locked ? "Desbloquear Camada" : "Bloquear Camada"), De(e, r), e.salvarLembrancaEstado(), e.dispararEvento("ui-camada-bloqueio", {
|
|
1190
1319
|
camadaId: l.id,
|
|
1191
1320
|
bloqueado: l.locked
|
|
1192
1321
|
}));
|
|
@@ -1210,21 +1339,21 @@ function za(e, r) {
|
|
|
1210
1339
|
});
|
|
1211
1340
|
const a = (t, o, n) => {
|
|
1212
1341
|
var m;
|
|
1213
|
-
const l = e.camadas.find((
|
|
1342
|
+
const l = e.camadas.find((f) => f.id === t);
|
|
1214
1343
|
if (!l) return;
|
|
1215
|
-
const c =
|
|
1344
|
+
const c = K(o, l.color || "#00E08A");
|
|
1216
1345
|
l.color = c;
|
|
1217
1346
|
const s = r.getElementById(`sample-color-${t}`);
|
|
1218
1347
|
s && (s.style.backgroundColor = c);
|
|
1219
1348
|
const d = r.getElementById(`hex-color-${t}`);
|
|
1220
1349
|
d && (d.textContent = c.toUpperCase());
|
|
1221
|
-
const
|
|
1222
|
-
|
|
1350
|
+
const u = r.getElementById(`settings-drawer-${t}`);
|
|
1351
|
+
u && u.style.setProperty("--drawer-cor-camada", c);
|
|
1223
1352
|
const p = T(r, "data-layer-row", t);
|
|
1224
1353
|
if (p) {
|
|
1225
1354
|
(m = p.closest(".ui-layer-group")) == null || m.style.setProperty("--layer-active-color", c);
|
|
1226
|
-
const
|
|
1227
|
-
|
|
1355
|
+
const f = p.querySelector(".ui-col-colorbar");
|
|
1356
|
+
f && (f.style.backgroundColor = c);
|
|
1228
1357
|
}
|
|
1229
1358
|
n ? e.salvarLembrancaEstado() : e.agendarSalvarLembranca(), e.dispararEvento("ui-camada-cor", { camadaId: l.id, cor: c });
|
|
1230
1359
|
};
|
|
@@ -1240,11 +1369,11 @@ function za(e, r) {
|
|
|
1240
1369
|
const o = (n) => {
|
|
1241
1370
|
n.stopPropagation();
|
|
1242
1371
|
const l = t.getAttribute("data-layer-color"), c = e.camadas.find((s) => s.id === l);
|
|
1243
|
-
!l || !c ||
|
|
1372
|
+
!l || !c || ma({
|
|
1244
1373
|
ancora: t,
|
|
1245
1374
|
titulo: `Cor · ${c.name || "Camada"}`,
|
|
1246
1375
|
modo: "simples",
|
|
1247
|
-
cor:
|
|
1376
|
+
cor: K(c.color, "#00E08A"),
|
|
1248
1377
|
mostrarOpacidade: !1,
|
|
1249
1378
|
aoAlterar: (s) => a(l, s.cor, !1),
|
|
1250
1379
|
aoConfirmar: (s) => a(l, s.cor, !0),
|
|
@@ -1288,7 +1417,7 @@ function za(e, r) {
|
|
|
1288
1417
|
t.classList.add("confirming");
|
|
1289
1418
|
const s = t.querySelector(".ui-btn-label");
|
|
1290
1419
|
s && (s.textContent = "Confirmar Exclusão?"), o = setTimeout(() => {
|
|
1291
|
-
t.classList.remove("confirming"), s && (s.textContent = "Excluir
|
|
1420
|
+
t.classList.remove("confirming"), s && (s.textContent = "Excluir");
|
|
1292
1421
|
}, 3500);
|
|
1293
1422
|
}
|
|
1294
1423
|
});
|
|
@@ -1296,7 +1425,7 @@ function za(e, r) {
|
|
|
1296
1425
|
t.addEventListener("change", (o) => {
|
|
1297
1426
|
const n = o.target, l = n.getAttribute("data-layer-parent-select"), c = n.value || null, s = e.camadas.find((d) => d.id === l);
|
|
1298
1427
|
if (s) {
|
|
1299
|
-
if (c && (c === s.id ||
|
|
1428
|
+
if (c && (c === s.id || _(e.camadas, c, s.id))) {
|
|
1300
1429
|
n.value = s.parentId || "";
|
|
1301
1430
|
return;
|
|
1302
1431
|
}
|
|
@@ -1326,57 +1455,51 @@ function za(e, r) {
|
|
|
1326
1455
|
o.stopPropagation();
|
|
1327
1456
|
const n = o, l = t.getAttribute("data-layer-target");
|
|
1328
1457
|
if (!l) return;
|
|
1329
|
-
const c =
|
|
1458
|
+
const c = ne(e.camadas, e.feicoes, l), s = oe(c, e.searchQuery);
|
|
1330
1459
|
if (s.length === 0) return;
|
|
1331
|
-
s.every((
|
|
1460
|
+
s.every((u) => e.selectedFeatureIds.has(u.id)) ? s.forEach((u) => e.selectedFeatureIds.delete(u.id)) : (!n.ctrlKey && !n.metaKey && e.selectedFeatureIds.clear(), s.forEach((u) => e.selectedFeatureIds.add(u.id))), e.lastClickedFeatureId = s[s.length - 1].id, e.sincronizarSelecaoDOM(), e.notificarMudancaSelecao();
|
|
1332
1461
|
});
|
|
1333
1462
|
});
|
|
1334
1463
|
}
|
|
1335
|
-
function
|
|
1464
|
+
function Xa(e, r) {
|
|
1336
1465
|
const a = r.getElementById("btn-toggle-all-expand");
|
|
1337
1466
|
if (!a) return;
|
|
1338
1467
|
const i = e.camadas.length > 0 && e.camadas.every((o) => e.expandedLayers.has(o.id)), t = a.querySelector(".ui-chevron-icon");
|
|
1339
|
-
t && t.classList.toggle("open", i),
|
|
1468
|
+
t && t.classList.toggle("open", i), B(
|
|
1340
1469
|
a,
|
|
1341
1470
|
i ? "Recolher Todos os Grupos" : "Expandir Todos os Grupos"
|
|
1342
1471
|
);
|
|
1343
1472
|
}
|
|
1344
|
-
function
|
|
1473
|
+
function Qa(e, r) {
|
|
1345
1474
|
const a = r.getElementById("btn-toggle-all-vis");
|
|
1346
1475
|
if (!a) return;
|
|
1347
1476
|
const i = e.camadas.every((t) => t.visible !== !1);
|
|
1348
|
-
a.innerHTML = i ? b.olhoAberto : b.olhoFechado,
|
|
1349
|
-
}
|
|
1350
|
-
function Da(e, r, a, i) {
|
|
1351
|
-
e.feicoes.filter((t) => t.layerId === a).forEach((t) => {
|
|
1352
|
-
const o = T(r, "data-feat-lock", t.id);
|
|
1353
|
-
if (!o) return;
|
|
1354
|
-
const n = t.locked === !0 || i;
|
|
1355
|
-
o.innerHTML = n ? b.cadeadoTrancado : b.cadeadoAberto, o.classList.toggle("ui-lock-open", !n), i ? o.setAttribute("data-locked-by-layer", "true") : o.removeAttribute("data-locked-by-layer"), D(
|
|
1356
|
-
o,
|
|
1357
|
-
i ? "Bloqueada pela camada" : n ? "Desbloquear Feição" : "Bloquear Feição"
|
|
1358
|
-
);
|
|
1359
|
-
});
|
|
1477
|
+
a.innerHTML = i ? b.olhoAberto : b.olhoFechado, B(a, i ? "Ocultar Todas as Camadas" : "Exibir Todas as Camadas");
|
|
1360
1478
|
}
|
|
1361
|
-
function
|
|
1479
|
+
function Ja(e, r) {
|
|
1362
1480
|
const a = r.getElementById("select-footer-move");
|
|
1363
1481
|
a && a.addEventListener("change", (n) => {
|
|
1364
1482
|
const l = n.target.value;
|
|
1365
1483
|
if (!l) return;
|
|
1366
|
-
const c =
|
|
1367
|
-
if (c.
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1484
|
+
const c = Ae(e.camadas);
|
|
1485
|
+
if (c.has(l)) {
|
|
1486
|
+
a.value = "";
|
|
1487
|
+
return;
|
|
1488
|
+
}
|
|
1489
|
+
const s = e.feicoes.filter((u) => e.selectedFeatureIds.has(u.id) && !c.has(u.layerId));
|
|
1490
|
+
if (s.length === 0) return;
|
|
1491
|
+
const d = new Map(s.map((u) => [u.id, u.layerId]));
|
|
1492
|
+
s.forEach((u) => u.layerId = l), s.forEach((u) => {
|
|
1493
|
+
d.get(u.id) !== l && e.dispararEvento("ui-feicao-movida", {
|
|
1494
|
+
feicaoId: u.id,
|
|
1495
|
+
camadaOrigemId: d.get(u.id),
|
|
1373
1496
|
camadaDestinoId: l,
|
|
1374
|
-
feicao:
|
|
1497
|
+
feicao: u
|
|
1375
1498
|
});
|
|
1376
1499
|
}), e.dispararEvento("ui-acao-massa", {
|
|
1377
1500
|
acao: "mover",
|
|
1378
|
-
feicoesIds:
|
|
1379
|
-
feicoes:
|
|
1501
|
+
feicoesIds: s.map((u) => u.id),
|
|
1502
|
+
feicoes: s,
|
|
1380
1503
|
valor: l
|
|
1381
1504
|
}), e.solicitarRenderizacao();
|
|
1382
1505
|
});
|
|
@@ -1396,8 +1519,8 @@ function Pa(e, r) {
|
|
|
1396
1519
|
const c = Array.from(e.selectedFeatureIds);
|
|
1397
1520
|
if (c.length === 0) return;
|
|
1398
1521
|
if (!o.classList.contains("confirming")) {
|
|
1399
|
-
o.classList.add("confirming"),
|
|
1400
|
-
o.classList.remove("confirming"),
|
|
1522
|
+
o.classList.add("confirming"), B(o, `Clique novamente para excluir ${c.length} selecionado(s)`), n = setTimeout(() => {
|
|
1523
|
+
o.classList.remove("confirming"), B(o, l);
|
|
1401
1524
|
}, 3500);
|
|
1402
1525
|
return;
|
|
1403
1526
|
}
|
|
@@ -1411,23 +1534,23 @@ function Pa(e, r) {
|
|
|
1411
1534
|
});
|
|
1412
1535
|
}
|
|
1413
1536
|
}
|
|
1414
|
-
const
|
|
1537
|
+
const Wa = [
|
|
1415
1538
|
{ tipo: "olho", atributo: "data-layer-eye", entidade: "camada" },
|
|
1416
1539
|
{ tipo: "olho", atributo: "data-feat-eye", entidade: "feicao" },
|
|
1417
1540
|
{ tipo: "cadeado", atributo: "data-layer-lock", entidade: "camada" },
|
|
1418
1541
|
{ tipo: "cadeado", atributo: "data-feat-lock", entidade: "feicao" },
|
|
1419
1542
|
{ tipo: "selecao", atributo: "data-layer-target", entidade: "camada" },
|
|
1420
1543
|
{ tipo: "selecao", atributo: "data-feat-target", entidade: "feicao" }
|
|
1421
|
-
],
|
|
1544
|
+
], he = {
|
|
1422
1545
|
olho: "[data-layer-eye], [data-feat-eye]",
|
|
1423
1546
|
cadeado: "[data-layer-lock], [data-feat-lock]",
|
|
1424
1547
|
selecao: "[data-layer-target], [data-feat-target]"
|
|
1425
|
-
},
|
|
1426
|
-
function
|
|
1427
|
-
return
|
|
1548
|
+
}, Za = 3;
|
|
1549
|
+
function er(e) {
|
|
1550
|
+
return Wa.find((r) => e.hasAttribute(r.atributo)) ?? null;
|
|
1428
1551
|
}
|
|
1429
|
-
function
|
|
1430
|
-
const a =
|
|
1552
|
+
function ge(e, r) {
|
|
1553
|
+
const a = er(r);
|
|
1431
1554
|
if (!a) return null;
|
|
1432
1555
|
const i = r.getAttribute(a.atributo);
|
|
1433
1556
|
if (!i) return null;
|
|
@@ -1441,13 +1564,13 @@ function pe(e, r) {
|
|
|
1441
1564
|
return o ? o.locked === !0 : null;
|
|
1442
1565
|
}
|
|
1443
1566
|
if (a.entidade === "feicao") return e.selectedFeatureIds.has(i);
|
|
1444
|
-
const t =
|
|
1445
|
-
|
|
1567
|
+
const t = oe(
|
|
1568
|
+
ne(e.camadas, e.feicoes, i),
|
|
1446
1569
|
e.searchQuery
|
|
1447
1570
|
);
|
|
1448
1571
|
return t.length === 0 ? null : t.every((o) => e.selectedFeatureIds.has(o.id));
|
|
1449
1572
|
}
|
|
1450
|
-
function
|
|
1573
|
+
function Te(e, r, a = !1) {
|
|
1451
1574
|
e.dispatchEvent(
|
|
1452
1575
|
new MouseEvent("click", {
|
|
1453
1576
|
bubbles: !0,
|
|
@@ -1457,54 +1580,54 @@ function Ie(e, r, a = !1) {
|
|
|
1457
1580
|
})
|
|
1458
1581
|
);
|
|
1459
1582
|
}
|
|
1460
|
-
let
|
|
1461
|
-
function
|
|
1462
|
-
(
|
|
1583
|
+
let z = null;
|
|
1584
|
+
function ar(e) {
|
|
1585
|
+
(z == null ? void 0 : z.host) === e && z.cancelar();
|
|
1463
1586
|
}
|
|
1464
|
-
function
|
|
1465
|
-
Object.keys(
|
|
1466
|
-
r.querySelectorAll(
|
|
1467
|
-
i.addEventListener("pointerdown", (t) =>
|
|
1587
|
+
function rr(e, r) {
|
|
1588
|
+
Object.keys(he).forEach((a) => {
|
|
1589
|
+
r.querySelectorAll(he[a]).forEach((i) => {
|
|
1590
|
+
i.addEventListener("pointerdown", (t) => tr(e, r, a, i, t));
|
|
1468
1591
|
});
|
|
1469
1592
|
});
|
|
1470
1593
|
}
|
|
1471
|
-
function
|
|
1472
|
-
if (t.pointerType === "mouse" && t.button !== 0 || e.editingLayerId || e.editingFeatureId ||
|
|
1473
|
-
|
|
1474
|
-
const o =
|
|
1594
|
+
function tr(e, r, a, i, t) {
|
|
1595
|
+
if (t.pointerType === "mouse" && t.button !== 0 || e.editingLayerId || e.editingFeatureId || ge(e, i) === null) return;
|
|
1596
|
+
z == null || z.cancelar();
|
|
1597
|
+
const o = he[a], n = t.ctrlKey || t.metaKey, l = t.shiftKey;
|
|
1475
1598
|
let c = !1, s = !1, d = t.clientY;
|
|
1476
|
-
const
|
|
1477
|
-
|
|
1478
|
-
}, m = (
|
|
1479
|
-
|
|
1480
|
-
},
|
|
1481
|
-
|
|
1599
|
+
const u = /* @__PURE__ */ new Set([i]), p = (y) => {
|
|
1600
|
+
y.preventDefault(), y.stopImmediatePropagation();
|
|
1601
|
+
}, m = (y) => {
|
|
1602
|
+
y.stopPropagation(), y.preventDefault();
|
|
1603
|
+
}, f = (y) => y.preventDefault(), g = (y) => {
|
|
1604
|
+
u.has(y) || (u.add(y), ge(e, y) !== s && Te(y, a === "selecao"));
|
|
1482
1605
|
}, v = () => {
|
|
1483
|
-
c = !0,
|
|
1484
|
-
}, h = (
|
|
1485
|
-
var
|
|
1606
|
+
c = !0, Te(i, n, l), s = ge(e, i) === !0, r.addEventListener("selectstart", f), document.body.style.userSelect = "none";
|
|
1607
|
+
}, h = (y) => {
|
|
1608
|
+
var J, S;
|
|
1486
1609
|
if (!c) {
|
|
1487
|
-
if (Math.hypot(
|
|
1488
|
-
const
|
|
1489
|
-
if (!
|
|
1610
|
+
if (Math.hypot(y.clientX - t.clientX, y.clientY - t.clientY) < Za) return;
|
|
1611
|
+
const x = (J = r.elementFromPoint(y.clientX, y.clientY)) == null ? void 0 : J.closest(o);
|
|
1612
|
+
if (!x || x === i) return;
|
|
1490
1613
|
v();
|
|
1491
1614
|
}
|
|
1492
|
-
|
|
1493
|
-
const I = Math.min(d,
|
|
1494
|
-
r.querySelectorAll(o).forEach((
|
|
1495
|
-
const
|
|
1496
|
-
if (
|
|
1497
|
-
const
|
|
1498
|
-
|
|
1615
|
+
y.preventDefault();
|
|
1616
|
+
const I = Math.min(d, y.clientY), L = Math.max(d, y.clientY);
|
|
1617
|
+
r.querySelectorAll(o).forEach((x) => {
|
|
1618
|
+
const M = x.getBoundingClientRect();
|
|
1619
|
+
if (M.height === 0) return;
|
|
1620
|
+
const P = M.top + M.height / 2;
|
|
1621
|
+
P >= I && P <= L && g(x);
|
|
1499
1622
|
});
|
|
1500
|
-
const
|
|
1501
|
-
|
|
1502
|
-
}, k = (
|
|
1503
|
-
(
|
|
1504
|
-
}, C = () => k(),
|
|
1505
|
-
|
|
1506
|
-
}
|
|
1507
|
-
function
|
|
1623
|
+
const q = (S = r.elementFromPoint(y.clientX, y.clientY)) == null ? void 0 : S.closest(o);
|
|
1624
|
+
q && g(q), d = y.clientY;
|
|
1625
|
+
}, k = (y = !1) => {
|
|
1626
|
+
(z == null ? void 0 : z.cancelar) === $ && (z = null), window.removeEventListener("pointermove", h), window.removeEventListener("pointerup", C), window.removeEventListener("pointercancel", C), window.removeEventListener("dragstart", p, !0), r.removeEventListener("selectstart", f), c && (document.body.style.userSelect = "", y || (window.addEventListener("click", m, { capture: !0, once: !0 }), setTimeout(() => window.removeEventListener("click", m, !0), 0)));
|
|
1627
|
+
}, C = () => k(), $ = () => k(!0);
|
|
1628
|
+
z = { host: e, cancelar: $ }, window.addEventListener("dragstart", p, !0), window.addEventListener("pointermove", h, { passive: !1 }), window.addEventListener("pointerup", C), window.addEventListener("pointercancel", C);
|
|
1629
|
+
}
|
|
1630
|
+
function ir(e, r) {
|
|
1508
1631
|
const a = r.getElementById("btn-toggle-all-vis");
|
|
1509
1632
|
a && a.addEventListener("click", () => e.alternarVisibilidadeTodas(!0));
|
|
1510
1633
|
const i = r.getElementById("btn-toggle-all-expand");
|
|
@@ -1512,15 +1635,15 @@ function Ga(e, r) {
|
|
|
1512
1635
|
o.stopPropagation(), e.camadas.length > 0 && e.camadas.every((l) => e.expandedLayers.has(l.id)) ? e.colapsarTodas() : e.expandirTodas();
|
|
1513
1636
|
});
|
|
1514
1637
|
const t = r.getElementById("btn-colapsar");
|
|
1515
|
-
t && t.addEventListener("click", () => e.colapsar(!0)),
|
|
1638
|
+
t && t.addEventListener("click", () => e.colapsar(!0)), or(e, r);
|
|
1516
1639
|
}
|
|
1517
|
-
function
|
|
1640
|
+
function or(e, r) {
|
|
1518
1641
|
const a = r.getElementById("input-layer-search"), i = r.getElementById("btn-clear-layer-search"), t = () => {
|
|
1519
1642
|
var o;
|
|
1520
1643
|
e.searchQuery = "", e.solicitarRenderizacao(), (o = r.getElementById("input-layer-search")) == null || o.focus();
|
|
1521
1644
|
};
|
|
1522
1645
|
if (a) {
|
|
1523
|
-
const o =
|
|
1646
|
+
const o = Ne(() => e.solicitarRenderizacao(), 75);
|
|
1524
1647
|
a.addEventListener("input", (n) => {
|
|
1525
1648
|
e.searchQuery = n.target.value, o();
|
|
1526
1649
|
}), a.addEventListener("keydown", (n) => {
|
|
@@ -1529,7 +1652,7 @@ function Ua(e, r) {
|
|
|
1529
1652
|
}
|
|
1530
1653
|
i && i.addEventListener("click", t);
|
|
1531
1654
|
}
|
|
1532
|
-
function
|
|
1655
|
+
function nr(e, r) {
|
|
1533
1656
|
r.querySelectorAll("[data-feat-select]").forEach((a) => {
|
|
1534
1657
|
a.addEventListener("click", (i) => {
|
|
1535
1658
|
if (e.editingFeatureId) return;
|
|
@@ -1554,7 +1677,7 @@ function Va(e, r) {
|
|
|
1554
1677
|
if (o) {
|
|
1555
1678
|
o.visible = o.visible === !1;
|
|
1556
1679
|
const n = o.visible !== !1;
|
|
1557
|
-
a.innerHTML = n ? b.olhoAberto : b.olhoFechado,
|
|
1680
|
+
a.innerHTML = n ? b.olhoAberto : b.olhoFechado, B(a, n ? "Ocultar Feição" : "Exibir Feição");
|
|
1558
1681
|
const l = a.closest(".ui-feat-row");
|
|
1559
1682
|
l && l.classList.toggle("hidden-row", !n), e.dispararEvento("ui-feicao-visibilidade", {
|
|
1560
1683
|
feicaoId: o.id,
|
|
@@ -1566,7 +1689,7 @@ function Va(e, r) {
|
|
|
1566
1689
|
a.addEventListener("click", (i) => {
|
|
1567
1690
|
if (i.stopPropagation(), a.hasAttribute("data-locked-by-layer")) return;
|
|
1568
1691
|
const t = a.getAttribute("data-feat-lock"), o = e.feicoes.find((n) => n.id === t);
|
|
1569
|
-
o && (o.locked = !o.locked, a.innerHTML = o.locked ? b.cadeadoTrancado : b.cadeadoAberto, a.classList.toggle("ui-lock-open", !o.locked),
|
|
1692
|
+
o && (o.locked = !o.locked, a.innerHTML = o.locked ? b.cadeadoTrancado : b.cadeadoAberto, a.classList.toggle("ui-lock-open", !o.locked), B(a, o.locked ? "Desbloquear Feição" : "Bloquear Feição"), e.dispararEvento("ui-feicao-bloqueio", {
|
|
1570
1693
|
feicaoId: o.id,
|
|
1571
1694
|
bloqueado: o.locked
|
|
1572
1695
|
}));
|
|
@@ -1579,7 +1702,7 @@ function Va(e, r) {
|
|
|
1579
1702
|
});
|
|
1580
1703
|
});
|
|
1581
1704
|
}
|
|
1582
|
-
function
|
|
1705
|
+
function sr(e, r) {
|
|
1583
1706
|
var a;
|
|
1584
1707
|
r.querySelectorAll("[data-basemap-thumb]").forEach((i) => {
|
|
1585
1708
|
i.addEventListener(
|
|
@@ -1599,12 +1722,12 @@ function Ya(e, r) {
|
|
|
1599
1722
|
});
|
|
1600
1723
|
});
|
|
1601
1724
|
}
|
|
1602
|
-
function
|
|
1603
|
-
|
|
1725
|
+
function lr(e, r) {
|
|
1726
|
+
ir(e, r), _a(e, r), nr(e, r), sr(e, r), Ja(e, r), rr(e, r);
|
|
1604
1727
|
}
|
|
1605
|
-
function
|
|
1728
|
+
function cr(e, r, a, i) {
|
|
1606
1729
|
var g, v;
|
|
1607
|
-
const t =
|
|
1730
|
+
const t = Ba({
|
|
1608
1731
|
camadas: e.camadas,
|
|
1609
1732
|
feicoes: e.feicoes,
|
|
1610
1733
|
camadaAtivaId: e.camadaAtivaId,
|
|
@@ -1618,37 +1741,37 @@ function _a(e, r, a, i) {
|
|
|
1618
1741
|
mostrarBusca: e.mostrarBusca,
|
|
1619
1742
|
limitesPorCamada: e.expandedFeatureLimits,
|
|
1620
1743
|
mostrarBotaoColapsar: e.flutuante && e.getAttribute("colapsavel") !== "false"
|
|
1621
|
-
}), o = e.mostrarMapasBase ?
|
|
1744
|
+
}), o = e.mostrarMapasBase ? ya(e.mapasBase, e.mapaBaseAtivo, e.mapasBaseRecolhido) : "", n = e.mostrarRodape ? Ea(e.camadas, e.feicoes, e.selectedFeatureIds) : "", l = r.getElementById("ui-layer-tree-mount"), c = a.scrollTop, s = l ? l.scrollTop : 0, d = r.activeElement, u = d && a.contains(d) ? d.id : "", p = d && !u && a.contains(d) ? Array.from(d.attributes).find((h) => h.name.startsWith("data-") && h.value !== "") : void 0, m = d && "selectionStart" in d ? d.selectionStart : null;
|
|
1622
1745
|
a.innerHTML = `
|
|
1623
1746
|
${t}
|
|
1624
1747
|
${n}
|
|
1625
1748
|
${o}
|
|
1626
1749
|
`, a.scrollTop = c;
|
|
1627
|
-
const
|
|
1628
|
-
if (
|
|
1629
|
-
const h = r.getElementById(
|
|
1750
|
+
const f = r.getElementById("ui-layer-tree-mount");
|
|
1751
|
+
if (f && (f.scrollTop = s), u) {
|
|
1752
|
+
const h = r.getElementById(u);
|
|
1630
1753
|
if (h && (h.focus({ preventScroll: !0 }), m !== null && typeof h.setSelectionRange == "function"))
|
|
1631
1754
|
try {
|
|
1632
1755
|
h.setSelectionRange(m, m);
|
|
1633
1756
|
} catch {
|
|
1634
1757
|
}
|
|
1635
1758
|
}
|
|
1636
|
-
!
|
|
1759
|
+
!u && p && ((g = T(a, p.name, p.value)) == null || g.focus({ preventScroll: !0 })), (v = r.querySelector("[data-layer-row], [data-feat-row]")) == null || v.setAttribute("tabindex", "0"), lr(e, r), i.bindAll();
|
|
1637
1760
|
}
|
|
1638
|
-
const
|
|
1639
|
-
function
|
|
1640
|
-
return !e || !(e instanceof Element) || e instanceof HTMLInputElement &&
|
|
1761
|
+
const dr = '[role="button"][tabindex]', X = "[data-layer-row], [data-feat-row]", ur = ["color", "range", "checkbox", "radio", "button"];
|
|
1762
|
+
function Qe(e) {
|
|
1763
|
+
return !e || !(e instanceof Element) || e instanceof HTMLInputElement && ur.includes(e.type) ? !1 : ga({ composedPath: () => [e] });
|
|
1641
1764
|
}
|
|
1642
|
-
function
|
|
1643
|
-
return Array.from(e.querySelectorAll(
|
|
1765
|
+
function pr(e) {
|
|
1766
|
+
return Array.from(e.querySelectorAll(X)).filter((r) => {
|
|
1644
1767
|
const a = r.closest(".ui-children-container");
|
|
1645
1768
|
return !(a && a.style.display === "none") && !r.classList.contains("ui-search-hidden");
|
|
1646
1769
|
});
|
|
1647
1770
|
}
|
|
1648
|
-
function
|
|
1649
|
-
r && (e.querySelectorAll(
|
|
1771
|
+
function ie(e, r) {
|
|
1772
|
+
r && (e.querySelectorAll(X).forEach((a) => a.setAttribute("tabindex", "-1")), r.setAttribute("tabindex", "0"), r.focus());
|
|
1650
1773
|
}
|
|
1651
|
-
function
|
|
1774
|
+
function fr(e, r) {
|
|
1652
1775
|
e.dispatchEvent(
|
|
1653
1776
|
new MouseEvent("click", {
|
|
1654
1777
|
bubbles: !0,
|
|
@@ -1657,9 +1780,9 @@ function Wa(e, r) {
|
|
|
1657
1780
|
})
|
|
1658
1781
|
);
|
|
1659
1782
|
}
|
|
1660
|
-
function
|
|
1783
|
+
function mr(e, r, a) {
|
|
1661
1784
|
var t;
|
|
1662
|
-
if (
|
|
1785
|
+
if (Qe(a.composedPath()[0])) return;
|
|
1663
1786
|
const i = r.querySelector(".confirming");
|
|
1664
1787
|
if (i) {
|
|
1665
1788
|
a.preventDefault(), i.classList.remove("confirming");
|
|
@@ -1673,16 +1796,16 @@ function Za(e, r, a) {
|
|
|
1673
1796
|
}
|
|
1674
1797
|
e.selectedFeatureIds.size > 0 && (a.preventDefault(), e.limparSelecao(!0));
|
|
1675
1798
|
}
|
|
1676
|
-
function
|
|
1799
|
+
function gr(e, r, a, i) {
|
|
1677
1800
|
var l;
|
|
1678
1801
|
const t = i.composedPath()[0];
|
|
1679
|
-
if (!(t instanceof HTMLElement) ||
|
|
1680
|
-
if ((i.key === "Enter" || i.key === " ") && t.matches(
|
|
1802
|
+
if (!(t instanceof HTMLElement) || Qe(t)) return;
|
|
1803
|
+
if ((i.key === "Enter" || i.key === " ") && t.matches(dr)) {
|
|
1681
1804
|
i.preventDefault(), t.click();
|
|
1682
1805
|
return;
|
|
1683
1806
|
}
|
|
1684
|
-
if (!t.matches(
|
|
1685
|
-
const o =
|
|
1807
|
+
if (!t.matches(X)) return;
|
|
1808
|
+
const o = pr(r), n = o.indexOf(t);
|
|
1686
1809
|
if (i.key === "F2") {
|
|
1687
1810
|
i.preventDefault();
|
|
1688
1811
|
const c = t.getAttribute("data-layer-row"), s = t.getAttribute("data-feat-row"), d = c ? T(t, "data-layer-name-trigger", c) : s ? T(t, "data-feat-name-trigger", s) : null;
|
|
@@ -1691,7 +1814,7 @@ function er(e, r, a, i) {
|
|
|
1691
1814
|
}
|
|
1692
1815
|
if ((i.ctrlKey || i.metaKey) && (i.key === "a" || i.key === "A")) {
|
|
1693
1816
|
i.preventDefault();
|
|
1694
|
-
const c =
|
|
1817
|
+
const c = _e(
|
|
1695
1818
|
e.camadas,
|
|
1696
1819
|
e.feicoes,
|
|
1697
1820
|
e.expandedLayers,
|
|
@@ -1711,16 +1834,16 @@ function er(e, r, a, i) {
|
|
|
1711
1834
|
}
|
|
1712
1835
|
switch (i.key) {
|
|
1713
1836
|
case "ArrowDown":
|
|
1714
|
-
i.preventDefault(),
|
|
1837
|
+
i.preventDefault(), ie(r, o[Math.min(o.length - 1, n + 1)]);
|
|
1715
1838
|
break;
|
|
1716
1839
|
case "ArrowUp":
|
|
1717
|
-
i.preventDefault(),
|
|
1840
|
+
i.preventDefault(), ie(r, o[Math.max(0, n - 1)]);
|
|
1718
1841
|
break;
|
|
1719
1842
|
case "Home":
|
|
1720
|
-
i.preventDefault(),
|
|
1843
|
+
i.preventDefault(), ie(r, o[0]);
|
|
1721
1844
|
break;
|
|
1722
1845
|
case "End":
|
|
1723
|
-
i.preventDefault(),
|
|
1846
|
+
i.preventDefault(), ie(r, o[o.length - 1]);
|
|
1724
1847
|
break;
|
|
1725
1848
|
case "ArrowRight":
|
|
1726
1849
|
case "ArrowLeft": {
|
|
@@ -1732,58 +1855,20 @@ function er(e, r, a, i) {
|
|
|
1732
1855
|
}
|
|
1733
1856
|
case "Enter":
|
|
1734
1857
|
case " ":
|
|
1735
|
-
i.preventDefault(),
|
|
1858
|
+
i.preventDefault(), fr(t, i);
|
|
1736
1859
|
break;
|
|
1737
1860
|
}
|
|
1738
1861
|
}
|
|
1739
|
-
function
|
|
1862
|
+
function vr(e, r, a, i, t) {
|
|
1740
1863
|
t.add(r, "keydown", (o) => {
|
|
1741
|
-
o.key === "Escape" &&
|
|
1742
|
-
}), t.add(i, "keydown", (o) =>
|
|
1864
|
+
o.key === "Escape" && mr(e, a, o);
|
|
1865
|
+
}), t.add(i, "keydown", (o) => gr(e, i, a, o)), t.add(i, "focusin", (o) => {
|
|
1743
1866
|
const n = o.composedPath()[0];
|
|
1744
|
-
n instanceof HTMLElement && n.matches(
|
|
1745
|
-
});
|
|
1746
|
-
}
|
|
1747
|
-
function rr(e, r) {
|
|
1748
|
-
r.querySelectorAll("[data-layer-row]").forEach((i) => {
|
|
1749
|
-
const o = i.getAttribute("data-layer-row") === e.camadaAtivaId;
|
|
1750
|
-
i.classList.toggle("active-drawing-layer", o), Le(i, "camada-ativa", o), o ? i.setAttribute("aria-current", "true") : i.removeAttribute("aria-current");
|
|
1867
|
+
n instanceof HTMLElement && n.matches(X) && (i.querySelectorAll(X).forEach((l) => l.setAttribute("tabindex", "-1")), n.setAttribute("tabindex", "0"));
|
|
1751
1868
|
});
|
|
1752
1869
|
}
|
|
1753
|
-
function
|
|
1754
|
-
|
|
1755
|
-
const p = f.getAttribute("data-feat-row"), m = p ? e.selectedFeatureIds.has(p) : !1;
|
|
1756
|
-
f.classList.toggle("selected-row", m), Le(f, "feicao-selecionada", m), f.setAttribute("aria-selected", String(m));
|
|
1757
|
-
const u = f.querySelector(".ui-target-circle");
|
|
1758
|
-
u && u.classList.toggle("selected", m);
|
|
1759
|
-
}), r.querySelectorAll(".ui-layer-group").forEach((f) => {
|
|
1760
|
-
const p = f.getAttribute("data-layer-id"), m = re(e.camadas, e.feicoes, p ?? ""), u = f.querySelector(".ui-layer-row .ui-target-circle");
|
|
1761
|
-
if (u && m.length > 0) {
|
|
1762
|
-
const g = m.every((h) => e.selectedFeatureIds.has(h.id)), v = !g && m.some((h) => e.selectedFeatureIds.has(h.id));
|
|
1763
|
-
u.classList.toggle("selected", g), u.classList.toggle("partial", v);
|
|
1764
|
-
} else u && u.classList.remove("selected", "partial");
|
|
1765
|
-
});
|
|
1766
|
-
const a = e.feicoes.filter((f) => e.selectedFeatureIds.has(f.id)), i = a.length > 0, t = r.getElementById("footer-count"), o = r.getElementById("footer-label");
|
|
1767
|
-
if (t && (t.textContent = String(i ? a.length : e.camadas.length)), o) {
|
|
1768
|
-
const f = ze(e.camadas.length, a.length);
|
|
1769
|
-
o.innerHTML = f.icone, o.title = f.texto, o.setAttribute("aria-label", f.texto);
|
|
1770
|
-
}
|
|
1771
|
-
const n = r.querySelector(".ui-tree-footer");
|
|
1772
|
-
n && (n.classList.toggle("tem-selecao", i), n.classList.toggle("sem-selecao", !i));
|
|
1773
|
-
const l = r.querySelector(".ui-footer-actions-gerais");
|
|
1774
|
-
l && (l.style.display = i ? "none" : "flex");
|
|
1775
|
-
const c = r.querySelector(".ui-footer-bulk-actions");
|
|
1776
|
-
c && (c.style.display = i ? "flex" : "none"), ["btn-footer-del"].forEach((f) => {
|
|
1777
|
-
const p = r.getElementById(f);
|
|
1778
|
-
p && (p.disabled = !i, p.classList.toggle("disabled", !i));
|
|
1779
|
-
});
|
|
1780
|
-
const s = r.querySelector(".ui-footer-move-wrapper");
|
|
1781
|
-
s && s.classList.toggle("disabled", !i);
|
|
1782
|
-
const d = r.getElementById("select-footer-move");
|
|
1783
|
-
d && (d.disabled = !i);
|
|
1784
|
-
}
|
|
1785
|
-
function ir(e, r, a, i, t) {
|
|
1786
|
-
const o = Pe(e.camadas, e.feicoes, e.expandedLayers, e.searchQuery), n = !i && !o.includes(r) && e.feicoes.some((c) => c.id === r), l = ma(
|
|
1870
|
+
function br(e, r, a, i, t) {
|
|
1871
|
+
const o = _e(e.camadas, e.feicoes, e.expandedLayers, e.searchQuery), n = !i && !o.includes(r) && e.feicoes.some((c) => c.id === r), l = La(
|
|
1787
1872
|
n ? [...o, r] : o,
|
|
1788
1873
|
e.selectedFeatureIds,
|
|
1789
1874
|
e.lastClickedFeatureId,
|
|
@@ -1793,33 +1878,33 @@ function ir(e, r, a, i, t) {
|
|
|
1793
1878
|
);
|
|
1794
1879
|
l && (e.selectedFeatureIds = l.selecionados, e.lastClickedFeatureId = l.ultimoClicadoId, e.sincronizarSelecaoDOM(), t && e.notificarMudancaSelecao());
|
|
1795
1880
|
}
|
|
1796
|
-
function
|
|
1881
|
+
function hr(e, r, a) {
|
|
1797
1882
|
const i = r || [];
|
|
1798
1883
|
i.length === e.selectedFeatureIds.size && i.every((n) => e.selectedFeatureIds.has(n)) || (e.selectedFeatureIds.clear(), i.forEach((n) => e.selectedFeatureIds.add(n)), e.lastClickedFeatureId = i.length > 0 ? i[i.length - 1] : null, e.sincronizarSelecaoDOM(), a && e.notificarMudancaSelecao());
|
|
1799
1884
|
}
|
|
1800
|
-
function
|
|
1885
|
+
function xr(e, r) {
|
|
1801
1886
|
e.selectedFeatureIds.size !== 0 && (e.selectedFeatureIds.clear(), e.lastClickedFeatureId = null, e.sincronizarSelecaoDOM(), r && e.notificarMudancaSelecao());
|
|
1802
1887
|
}
|
|
1803
|
-
function
|
|
1888
|
+
function yr(e) {
|
|
1804
1889
|
const r = e.feicoes.filter((a) => e.selectedFeatureIds.has(a.id));
|
|
1805
1890
|
e.dispararEvento("ui-feicoes-selecionadas", {
|
|
1806
1891
|
feicoesIds: Array.from(e.selectedFeatureIds),
|
|
1807
1892
|
feicoes: r
|
|
1808
1893
|
}), r.length === 1 ? e.dispararEvento("ui-feicao-selecionada", { feicaoId: r[0].id, feicao: r[0] }) : r.length === 0 && e.dispararEvento("ui-feicao-selecionada", { feicaoId: null, feicao: null });
|
|
1809
1894
|
}
|
|
1810
|
-
class
|
|
1895
|
+
class wr {
|
|
1811
1896
|
constructor(r) {
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1897
|
+
w(this, "origens", /* @__PURE__ */ new Map());
|
|
1898
|
+
w(this, "removidas", /* @__PURE__ */ new Set());
|
|
1899
|
+
w(this, "salvarComDebounce", Ne(() => this.salvar(), 200));
|
|
1815
1900
|
this.instantaneo = r;
|
|
1816
1901
|
}
|
|
1817
1902
|
chaveAtual() {
|
|
1818
1903
|
const r = this.instantaneo();
|
|
1819
|
-
return
|
|
1904
|
+
return Oa(r.storageKey, r.id);
|
|
1820
1905
|
}
|
|
1821
1906
|
carregar() {
|
|
1822
|
-
return
|
|
1907
|
+
return be(this.chaveAtual());
|
|
1823
1908
|
}
|
|
1824
1909
|
/** Versão com debounce, para interações contínuas (seletor de cor, slider de opacidade). */
|
|
1825
1910
|
agendar() {
|
|
@@ -1828,8 +1913,8 @@ class lr {
|
|
|
1828
1913
|
salvar() {
|
|
1829
1914
|
const r = this.instantaneo();
|
|
1830
1915
|
if (!r.persistir || !r.conectado) return;
|
|
1831
|
-
const a = this.chaveAtual(), i =
|
|
1832
|
-
estadoAnterior:
|
|
1916
|
+
const a = this.chaveAtual(), i = Ua({
|
|
1917
|
+
estadoAnterior: be(a),
|
|
1833
1918
|
origensCamadas: this.origens,
|
|
1834
1919
|
camadas: r.camadas,
|
|
1835
1920
|
expandedLayers: r.expandedLayers,
|
|
@@ -1840,27 +1925,27 @@ class lr {
|
|
|
1840
1925
|
altura: r.altura,
|
|
1841
1926
|
camadasRemovidas: this.removidas
|
|
1842
1927
|
});
|
|
1843
|
-
this.removidas.clear(),
|
|
1928
|
+
this.removidas.clear(), Na(a, i);
|
|
1844
1929
|
}
|
|
1845
1930
|
limpar() {
|
|
1846
|
-
|
|
1931
|
+
Ha(this.chaveAtual());
|
|
1847
1932
|
}
|
|
1848
1933
|
// --- Origens (como a camada chegou do consumidor) e remoções ---
|
|
1849
1934
|
limparOrigens() {
|
|
1850
1935
|
this.origens.clear();
|
|
1851
1936
|
}
|
|
1852
1937
|
registrarOrigem(r) {
|
|
1853
|
-
this.origens.set(r.id,
|
|
1938
|
+
this.origens.set(r.id, Xe(r));
|
|
1854
1939
|
}
|
|
1855
1940
|
esquecerCamada(r) {
|
|
1856
1941
|
this.origens.delete(r), this.removidas.add(r);
|
|
1857
1942
|
}
|
|
1858
1943
|
/** Aplica por cima de `camadas` o que foi lembrado (expansão, visibilidade, travas, opacidade, cor, ordem). */
|
|
1859
1944
|
reidratar(r, a, i) {
|
|
1860
|
-
|
|
1945
|
+
Ga(r, a, i, this.origens);
|
|
1861
1946
|
}
|
|
1862
1947
|
}
|
|
1863
|
-
function
|
|
1948
|
+
function ke(e, r = null, a = /* @__PURE__ */ new Set()) {
|
|
1864
1949
|
const i = [];
|
|
1865
1950
|
if (!Array.isArray(e)) return i;
|
|
1866
1951
|
for (const t of e) {
|
|
@@ -1869,11 +1954,15 @@ function Oe(e, r = null, a = /* @__PURE__ */ new Set()) {
|
|
|
1869
1954
|
if (a.has(o)) continue;
|
|
1870
1955
|
a.add(o);
|
|
1871
1956
|
const n = { ...t, id: o };
|
|
1872
|
-
delete n.children, r && n.parentId === void 0 && (n.parentId = r), i.push(n), Array.isArray(t.children) && t.children.length > 0 && i.push(...
|
|
1957
|
+
delete n.children, r && n.parentId === void 0 && (n.parentId = r), i.push(n), Array.isArray(t.children) && t.children.length > 0 && i.push(...ke(t.children, o, a));
|
|
1873
1958
|
}
|
|
1874
1959
|
return i;
|
|
1875
1960
|
}
|
|
1876
|
-
function
|
|
1961
|
+
function Je(e) {
|
|
1962
|
+
const r = e.lastClickedFeatureId;
|
|
1963
|
+
r && !e.feicoes.some((a) => a.id === r) && (e.lastClickedFeatureId = null);
|
|
1964
|
+
}
|
|
1965
|
+
function We(e) {
|
|
1877
1966
|
if (!Array.isArray(e)) return [];
|
|
1878
1967
|
const r = /* @__PURE__ */ new Set(), a = [];
|
|
1879
1968
|
for (const i of e) {
|
|
@@ -1883,8 +1972,8 @@ function je(e) {
|
|
|
1883
1972
|
}
|
|
1884
1973
|
return a;
|
|
1885
1974
|
}
|
|
1886
|
-
function
|
|
1887
|
-
if (e.camadas = Array.isArray(r) ?
|
|
1975
|
+
function Ar(e, r, a) {
|
|
1976
|
+
if (e.camadas = Array.isArray(r) ? ke(r) : [], e.lembranca.limparOrigens(), e.persistir) {
|
|
1888
1977
|
const t = e.lembranca.carregar();
|
|
1889
1978
|
e.lembranca.reidratar(e.camadas, t, e.expandedLayers), t != null && t.camadaAtivaId && e.camadas.some((o) => o.id === t.camadaAtivaId) && (e.camadaAtivaId = t.camadaAtivaId);
|
|
1890
1979
|
} else
|
|
@@ -1892,35 +1981,42 @@ function cr(e, r, a) {
|
|
|
1892
1981
|
e.lembranca.registrarOrigem(t), e.expandedLayers.has(t.id) || e.expandedLayers.add(t.id);
|
|
1893
1982
|
});
|
|
1894
1983
|
if (Array.isArray(a)) {
|
|
1895
|
-
e.feicoes =
|
|
1984
|
+
e.feicoes = We(a);
|
|
1896
1985
|
const t = new Set(e.camadas.map((n) => n.id)), o = e.feicoes.filter((n) => n.layerId && !t.has(n.layerId));
|
|
1897
1986
|
o.length > 0 && console.warn(
|
|
1898
1987
|
`[UI-Camadas] ${o.length} feição(ões) possuem 'layerId' não cadastrado nas camadas:`,
|
|
1899
1988
|
o.map((n) => ({ id: n.id, nome: n.name, layerId: n.layerId }))
|
|
1900
|
-
),
|
|
1989
|
+
), Ee(e.selectedFeatureIds, e.feicoes), Je(e);
|
|
1901
1990
|
}
|
|
1902
1991
|
const i = e.getAttribute("camada-ativa");
|
|
1903
1992
|
e.camadas.length > 0 && (!i || !e.camadas.some((t) => t.id === i)) && (e.camadaAtivaId = e.camadas[0].id), e.salvarLembrancaEstado(), e.solicitarRenderizacao();
|
|
1904
1993
|
}
|
|
1905
|
-
function
|
|
1906
|
-
e.feicoes =
|
|
1994
|
+
function Er(e, r) {
|
|
1995
|
+
e.feicoes = We(r), Ee(e.selectedFeatureIds, e.feicoes), Je(e), e.solicitarRenderizacao();
|
|
1907
1996
|
}
|
|
1908
|
-
function
|
|
1997
|
+
function kr(e, r) {
|
|
1909
1998
|
if (!r || !r.id) return;
|
|
1910
1999
|
if (e.camadas.some((i) => i.id === r.id)) {
|
|
1911
2000
|
console.warn(`[UI-Camadas] adicionarCamada ignorado: já existe uma camada com id '${r.id}'.`);
|
|
1912
2001
|
return;
|
|
1913
2002
|
}
|
|
1914
|
-
const a =
|
|
1915
|
-
|
|
2003
|
+
const a = new Set(e.camadas.map((i) => i.id));
|
|
2004
|
+
for (const i of ke([r])) {
|
|
2005
|
+
if (a.has(i.id)) {
|
|
2006
|
+
console.warn(`[UI-Camadas] adicionarCamada: subcamada '${i.id}' ignorada, o id já existe.`);
|
|
2007
|
+
continue;
|
|
2008
|
+
}
|
|
2009
|
+
a.add(i.id), e.camadas.push(i), e.lembranca.registrarOrigem(i), e.expandedLayers.add(i.id), i.parentId && e.expandedLayers.add(i.parentId);
|
|
2010
|
+
}
|
|
2011
|
+
e.salvarLembrancaEstado(), e.solicitarRenderizacao();
|
|
1916
2012
|
}
|
|
1917
|
-
function
|
|
2013
|
+
function Ir(e, r) {
|
|
1918
2014
|
var a;
|
|
1919
2015
|
e.camadas.forEach((i) => {
|
|
1920
2016
|
i.parentId === r && (i.parentId = null);
|
|
1921
|
-
}), 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),
|
|
2017
|
+
}), 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), Ee(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();
|
|
1922
2018
|
}
|
|
1923
|
-
function
|
|
2019
|
+
function Lr(e, r) {
|
|
1924
2020
|
if (!(!r || !r.id)) {
|
|
1925
2021
|
if (e.feicoes.some((a) => a.id === r.id)) {
|
|
1926
2022
|
console.warn(`[UI-Camadas] adicionarFeicao ignorado: já existe uma feição com id '${r.id}'.`);
|
|
@@ -1929,15 +2025,15 @@ function fr(e, r) {
|
|
|
1929
2025
|
e.feicoes.push({ ...r }), e.solicitarRenderizacao();
|
|
1930
2026
|
}
|
|
1931
2027
|
}
|
|
1932
|
-
function
|
|
2028
|
+
function Cr(e, r) {
|
|
1933
2029
|
if (!r || typeof r != "object" || !r.id) return;
|
|
1934
2030
|
const a = e.feicoes.findIndex((i) => i.id === r.id);
|
|
1935
2031
|
a !== -1 && (e.feicoes[a] = { ...e.feicoes[a], ...r }, e.solicitarRenderizacao());
|
|
1936
2032
|
}
|
|
1937
|
-
function
|
|
1938
|
-
e.feicoes = e.feicoes.filter((a) => a.id !== r), e.selectedFeatureIds.delete(r), e.solicitarRenderizacao();
|
|
2033
|
+
function $r(e, r) {
|
|
2034
|
+
e.feicoes = e.feicoes.filter((a) => a.id !== r), e.selectedFeatureIds.delete(r), e.lastClickedFeatureId === r && (e.lastClickedFeatureId = null), e.solicitarRenderizacao();
|
|
1939
2035
|
}
|
|
1940
|
-
function
|
|
2036
|
+
function Sr(e) {
|
|
1941
2037
|
function i() {
|
|
1942
2038
|
return e.getMinAltura ? e.getMinAltura() : 140;
|
|
1943
2039
|
}
|
|
@@ -1955,9 +2051,9 @@ function vr(e) {
|
|
|
1955
2051
|
);
|
|
1956
2052
|
return;
|
|
1957
2053
|
}
|
|
1958
|
-
const
|
|
1959
|
-
if (isNaN(
|
|
1960
|
-
const p = Math.max(i(), Math.min(t(), Math.round(
|
|
2054
|
+
const u = typeof s == "number" ? s : parseFloat(String(s));
|
|
2055
|
+
if (isNaN(u)) return;
|
|
2056
|
+
const p = Math.max(i(), Math.min(t(), Math.round(u)));
|
|
1961
2057
|
e.hostElement.style.height = `${p}px`, e.hostElement.style.setProperty("--ui-camadas-altura", `${p}px`), d && e.hostElement.dispatchEvent(
|
|
1962
2058
|
new CustomEvent("ui-redimensionar-altura", {
|
|
1963
2059
|
bubbles: !0,
|
|
@@ -1969,23 +2065,23 @@ function vr(e) {
|
|
|
1969
2065
|
let n = null;
|
|
1970
2066
|
function l() {
|
|
1971
2067
|
if (!e.resizerElement) return;
|
|
1972
|
-
let s = !1, d = 0,
|
|
1973
|
-
const p = (
|
|
1974
|
-
if (
|
|
1975
|
-
|
|
2068
|
+
let s = !1, d = 0, u = 0;
|
|
2069
|
+
const p = (f) => {
|
|
2070
|
+
if (f.button !== 0) return;
|
|
2071
|
+
f.preventDefault(), f.stopPropagation(), s = !0, d = f.clientY, u = e.hostElement.getBoundingClientRect().height, e.resizerElement.classList.add("ui-camadas-resizer--ativo"), e.hostElement.classList.add("ui-camadas--redimensionando");
|
|
1976
2072
|
try {
|
|
1977
|
-
e.resizerElement.setPointerCapture(
|
|
2073
|
+
e.resizerElement.setPointerCapture(f.pointerId);
|
|
1978
2074
|
} catch {
|
|
1979
2075
|
}
|
|
1980
2076
|
const g = (k) => {
|
|
1981
2077
|
if (!s) return;
|
|
1982
2078
|
k.preventDefault();
|
|
1983
|
-
const C = k.clientY - d,
|
|
1984
|
-
e.hostElement.style.height = `${
|
|
2079
|
+
const C = k.clientY - d, $ = Math.max(i(), Math.min(t(), Math.round(u + C)));
|
|
2080
|
+
e.hostElement.style.height = `${$}px`, e.hostElement.style.setProperty("--ui-camadas-altura", `${$}px`), e.onRedimensionando && e.onRedimensionando($), e.hostElement.dispatchEvent(
|
|
1985
2081
|
new CustomEvent("ui-redimensionando-altura", {
|
|
1986
2082
|
bubbles: !0,
|
|
1987
2083
|
composed: !0,
|
|
1988
|
-
detail: { altura:
|
|
2084
|
+
detail: { altura: $ }
|
|
1989
2085
|
})
|
|
1990
2086
|
);
|
|
1991
2087
|
}, v = () => {
|
|
@@ -1999,18 +2095,18 @@ function vr(e) {
|
|
|
1999
2095
|
} catch {
|
|
2000
2096
|
}
|
|
2001
2097
|
window.removeEventListener("pointermove", g), window.removeEventListener("pointerup", h), window.removeEventListener("pointercancel", h);
|
|
2002
|
-
const C = e.hostElement.getBoundingClientRect().height,
|
|
2003
|
-
e.onAlturaAlterada && e.onAlturaAlterada(
|
|
2098
|
+
const C = e.hostElement.getBoundingClientRect().height, $ = Math.round(C);
|
|
2099
|
+
e.onAlturaAlterada && e.onAlturaAlterada($), e.hostElement.dispatchEvent(
|
|
2004
2100
|
new CustomEvent("ui-redimensionar-altura", {
|
|
2005
2101
|
bubbles: !0,
|
|
2006
2102
|
composed: !0,
|
|
2007
|
-
detail: { altura:
|
|
2103
|
+
detail: { altura: $ }
|
|
2008
2104
|
})
|
|
2009
2105
|
);
|
|
2010
2106
|
};
|
|
2011
2107
|
n = v, window.addEventListener("pointermove", g), window.addEventListener("pointerup", h), window.addEventListener("pointercancel", h);
|
|
2012
|
-
}, m = (
|
|
2013
|
-
|
|
2108
|
+
}, m = (f) => {
|
|
2109
|
+
f.preventDefault(), f.stopPropagation(), o(null, !0), e.onAlturaAlterada && e.onAlturaAlterada(null);
|
|
2014
2110
|
};
|
|
2015
2111
|
e.listeners.add(e.resizerElement, "pointerdown", p), e.listeners.add(e.resizerElement, "dblclick", m);
|
|
2016
2112
|
}
|
|
@@ -2023,19 +2119,19 @@ function vr(e) {
|
|
|
2023
2119
|
destruir: c
|
|
2024
2120
|
};
|
|
2025
2121
|
}
|
|
2026
|
-
const
|
|
2122
|
+
const H = class H extends pa {
|
|
2027
2123
|
constructor() {
|
|
2028
2124
|
super();
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2125
|
+
w(this, "shadow");
|
|
2126
|
+
w(this, "listeners", new fa());
|
|
2127
|
+
w(this, "dragDropManager");
|
|
2128
|
+
w(this, "resizerController");
|
|
2129
|
+
w(this, "alturaCustomizada", null);
|
|
2130
|
+
w(this, "conectado", !1);
|
|
2131
|
+
w(this, "profundidadeLote", 0);
|
|
2132
|
+
w(this, "renderPendente", !1);
|
|
2037
2133
|
/** @internal */
|
|
2038
|
-
|
|
2134
|
+
w(this, "lembranca", new wr(() => ({
|
|
2039
2135
|
persistir: this.persistir,
|
|
2040
2136
|
conectado: this.conectado,
|
|
2041
2137
|
storageKey: this.storageKey,
|
|
@@ -2049,21 +2145,21 @@ const j = class j extends ea {
|
|
|
2049
2145
|
altura: this.alturaCustomizada
|
|
2050
2146
|
})));
|
|
2051
2147
|
// Estado interno
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2148
|
+
w(this, "camadas", []);
|
|
2149
|
+
w(this, "feicoes", []);
|
|
2150
|
+
w(this, "mapasBase", [...He]);
|
|
2151
|
+
w(this, "expandedLayers", /* @__PURE__ */ new Set());
|
|
2152
|
+
w(this, "expandedFeatureLimits", /* @__PURE__ */ new Map());
|
|
2153
|
+
w(this, "selectedFeatureIds", /* @__PURE__ */ new Set());
|
|
2154
|
+
w(this, "lastClickedFeatureId", null);
|
|
2155
|
+
w(this, "activeSettingsLayerId", null);
|
|
2156
|
+
w(this, "editingLayerId", null);
|
|
2157
|
+
w(this, "editingFeatureId", null);
|
|
2158
|
+
w(this, "searchQuery", "");
|
|
2159
|
+
w(this, "corpoElement");
|
|
2160
|
+
w(this, "btnExpandirFlutuante");
|
|
2065
2161
|
this.shadow = this.attachShadow({ mode: "open" }), this.shadow.innerHTML = `
|
|
2066
|
-
<style>${
|
|
2162
|
+
<style>${Va}</style>
|
|
2067
2163
|
<div class="ui-camadas-container" id="panel-container" part="base" role="region" aria-label="Painel de Camadas">
|
|
2068
2164
|
<div class="ui-camadas-corpo" id="painel-corpo" part="corpo"></div>
|
|
2069
2165
|
<div class="ui-camadas-resizer-altura" id="resizer-altura" part="resizer" title="Arraste para redimensionar a altura (duplo-clique para resetar)" aria-label="Redimensionar altura">
|
|
@@ -2073,9 +2169,9 @@ const j = class j extends ea {
|
|
|
2073
2169
|
<button class="ui-camadas-toggle-flutuante" id="btn-expandir-flutuante" part="botao-expandir" title="Expandir Painel de Camadas" aria-label="Expandir Painel de Camadas">
|
|
2074
2170
|
${b.camadas}
|
|
2075
2171
|
</button>
|
|
2076
|
-
`, this.corpoElement = this.shadow.getElementById("painel-corpo"), this.btnExpandirFlutuante = this.shadow.getElementById("btn-expandir-flutuante"), this.dragDropManager = new
|
|
2172
|
+
`, this.corpoElement = this.shadow.getElementById("painel-corpo"), this.btnExpandirFlutuante = this.shadow.getElementById("btn-expandir-flutuante"), this.dragDropManager = new Ta(this, this.shadow);
|
|
2077
2173
|
const a = this.shadow.getElementById("resizer-altura");
|
|
2078
|
-
this.resizerController =
|
|
2174
|
+
this.resizerController = Sr({
|
|
2079
2175
|
hostElement: this,
|
|
2080
2176
|
resizerElement: a,
|
|
2081
2177
|
listeners: this.listeners,
|
|
@@ -2117,16 +2213,16 @@ const j = class j extends ea {
|
|
|
2117
2213
|
}
|
|
2118
2214
|
connectedCallback() {
|
|
2119
2215
|
if (this.persistir) {
|
|
2120
|
-
const a =
|
|
2216
|
+
const a = be(this.obterChaveStorageAtual());
|
|
2121
2217
|
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));
|
|
2122
2218
|
}
|
|
2123
|
-
this.hasAttribute("altura") && this.resizerController.definirAltura(this.getAttribute("altura"), !1), this.persistir && !this.storageKey && !this.id && (
|
|
2219
|
+
this.hasAttribute("altura") && this.resizerController.definirAltura(this.getAttribute("altura"), !1), this.persistir && !this.storageKey && !this.id && (H.instanciasChavePadrao.size > 0 && console.warn(
|
|
2124
2220
|
"[UI-Camadas] Mais de um painel sem 'id' nem 'storage-key' divide a mesma chave de persistência e um sobrescreve o estado do outro. Defina 'storage-key' (ou 'id') em cada um."
|
|
2125
|
-
),
|
|
2221
|
+
), H.instanciasChavePadrao.add(this)), this.resizerController.init(), this.render(), this.conectarEventosGerais(), vr(this, this, this.shadow, this.corpoElement, this.listeners), this.conectado = !0, this.camadas.length > 0 && this.salvarLembrancaEstado();
|
|
2126
2222
|
}
|
|
2127
2223
|
disconnectedCallback() {
|
|
2128
2224
|
var a, i;
|
|
2129
|
-
this.conectado = !1,
|
|
2225
|
+
this.conectado = !1, H.instanciasChavePadrao.delete(this), (a = this.resizerController) == null || a.destruir(), (i = this.dragDropManager) == null || i.destruir(), ar(this), this.listeners.cleanup();
|
|
2130
2226
|
}
|
|
2131
2227
|
attributeChangedCallback(a, i, t) {
|
|
2132
2228
|
var o, n;
|
|
@@ -2161,7 +2257,7 @@ const j = class j extends ea {
|
|
|
2161
2257
|
t.classList.toggle("active", o), t.setAttribute("aria-pressed", String(o));
|
|
2162
2258
|
});
|
|
2163
2259
|
const i = this.shadow.querySelector("[data-basemap-atual]");
|
|
2164
|
-
i && (i.textContent =
|
|
2260
|
+
i && (i.textContent = Ge(this.mapasBase, a));
|
|
2165
2261
|
}
|
|
2166
2262
|
/** Seção "Mapa Base" recolhida (só o cabeçalho com o mapa ativo). Atributo `mapas-base-recolhido`. */
|
|
2167
2263
|
get mapasBaseRecolhido() {
|
|
@@ -2295,10 +2391,10 @@ const j = class j extends ea {
|
|
|
2295
2391
|
this.definirMapasBase(a);
|
|
2296
2392
|
}
|
|
2297
2393
|
definirCamadas(a, i) {
|
|
2298
|
-
|
|
2394
|
+
Ar(this, a, i);
|
|
2299
2395
|
}
|
|
2300
2396
|
definirFeicoes(a) {
|
|
2301
|
-
|
|
2397
|
+
Er(this, a);
|
|
2302
2398
|
}
|
|
2303
2399
|
definirMapasBase(a) {
|
|
2304
2400
|
this.mapasBase = Array.isArray(a) ? [...a] : [], this.solicitarRenderizacao();
|
|
@@ -2322,28 +2418,28 @@ const j = class j extends ea {
|
|
|
2322
2418
|
return this.feicoes.filter((a) => this.selectedFeatureIds.has(a.id));
|
|
2323
2419
|
}
|
|
2324
2420
|
adicionarCamada(a) {
|
|
2325
|
-
|
|
2421
|
+
kr(this, a);
|
|
2326
2422
|
}
|
|
2327
2423
|
removerCamada(a) {
|
|
2328
|
-
|
|
2424
|
+
Ir(this, a);
|
|
2329
2425
|
}
|
|
2330
2426
|
adicionarFeicao(a) {
|
|
2331
|
-
|
|
2427
|
+
Lr(this, a);
|
|
2332
2428
|
}
|
|
2333
2429
|
atualizarFeicao(a) {
|
|
2334
|
-
|
|
2430
|
+
Cr(this, a);
|
|
2335
2431
|
}
|
|
2336
2432
|
removerFeicao(a) {
|
|
2337
|
-
|
|
2433
|
+
$r(this, a);
|
|
2338
2434
|
}
|
|
2339
2435
|
selecionarFeicao(a, i = !1, t = !1, o = !1) {
|
|
2340
|
-
|
|
2436
|
+
br(this, a, i, t, o);
|
|
2341
2437
|
}
|
|
2342
2438
|
selecionarFeicoes(a, i = !1) {
|
|
2343
|
-
|
|
2439
|
+
hr(this, a, i);
|
|
2344
2440
|
}
|
|
2345
2441
|
limparSelecao(a = !1) {
|
|
2346
|
-
|
|
2442
|
+
xr(this, a);
|
|
2347
2443
|
}
|
|
2348
2444
|
expandirTodas() {
|
|
2349
2445
|
this.expandedLayers = new Set(this.camadas.map((a) => a.id)), this.salvarLembrancaEstado(), this.solicitarRenderizacao();
|
|
@@ -2407,7 +2503,7 @@ const j = class j extends ea {
|
|
|
2407
2503
|
);
|
|
2408
2504
|
}
|
|
2409
2505
|
render() {
|
|
2410
|
-
this.corpoElement &&
|
|
2506
|
+
this.corpoElement && cr(this, this.shadow, this.corpoElement, this.dragDropManager);
|
|
2411
2507
|
}
|
|
2412
2508
|
// --- Conexão de Eventos ---
|
|
2413
2509
|
conectarEventosGerais() {
|
|
@@ -2415,27 +2511,27 @@ const j = class j extends ea {
|
|
|
2415
2511
|
}
|
|
2416
2512
|
// --- Sincronização de DOM (delegada) ---
|
|
2417
2513
|
sincronizarCamadaAtivaDOM() {
|
|
2418
|
-
|
|
2514
|
+
Ya(this, this.shadow);
|
|
2419
2515
|
}
|
|
2420
2516
|
sincronizarSelecaoDOM() {
|
|
2421
|
-
|
|
2517
|
+
Ka(this, this.shadow);
|
|
2422
2518
|
}
|
|
2423
2519
|
// --- Auxiliares Internos ---
|
|
2424
2520
|
notificarMudancaSelecao() {
|
|
2425
|
-
|
|
2521
|
+
yr(this);
|
|
2426
2522
|
}
|
|
2427
2523
|
};
|
|
2428
2524
|
/** Painéis conectados sem `id` nem `storage-key`: dividem a mesma chave de persistência. */
|
|
2429
|
-
|
|
2430
|
-
let
|
|
2431
|
-
class
|
|
2525
|
+
w(H, "instanciasChavePadrao", /* @__PURE__ */ new Set());
|
|
2526
|
+
let Q = H;
|
|
2527
|
+
class Mr extends Q {
|
|
2432
2528
|
}
|
|
2433
|
-
class
|
|
2529
|
+
class Fr extends Q {
|
|
2434
2530
|
}
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
function
|
|
2531
|
+
xe("ui-camadas", Q);
|
|
2532
|
+
xe("ui-painel-camadas", Mr);
|
|
2533
|
+
xe("ui-layer-panel", Fr);
|
|
2534
|
+
function jr(e) {
|
|
2439
2535
|
var r;
|
|
2440
2536
|
return {
|
|
2441
2537
|
id: e.id,
|
|
@@ -2452,7 +2548,7 @@ function Cr(e) {
|
|
|
2452
2548
|
dados: e.dados
|
|
2453
2549
|
};
|
|
2454
2550
|
}
|
|
2455
|
-
function
|
|
2551
|
+
function Nr(e, r = "levantamento", a = "feicoes") {
|
|
2456
2552
|
return {
|
|
2457
2553
|
id: e.id,
|
|
2458
2554
|
nome: e.name,
|
|
@@ -2471,7 +2567,7 @@ function $r(e, r = "levantamento", a = "feicoes") {
|
|
|
2471
2567
|
dados: typeof e.dados == "object" && e.dados !== null ? e.dados : void 0
|
|
2472
2568
|
};
|
|
2473
2569
|
}
|
|
2474
|
-
function
|
|
2570
|
+
function Hr(e, r = "") {
|
|
2475
2571
|
var o, n, l, c;
|
|
2476
2572
|
const a = ((o = e.geometria) == null ? void 0 : o.tipo) || ((n = e.geometria) == null ? void 0 : n.type) || e.tipo || e.type || "Polygon", i = ((l = e.geometria) == null ? void 0 : l.coordenadas) || ((c = e.geometria) == null ? void 0 : c.coordinates) || e.coordinates, t = e.cor || e.color;
|
|
2477
2573
|
return {
|
|
@@ -2490,42 +2586,43 @@ function Sr(e, r = "") {
|
|
|
2490
2586
|
};
|
|
2491
2587
|
}
|
|
2492
2588
|
export {
|
|
2493
|
-
|
|
2589
|
+
Ta as CamadasDragDropManager,
|
|
2494
2590
|
b as ICONES,
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2591
|
+
Ye as LIMITE_FEICOES_POR_CAMADA,
|
|
2592
|
+
He as MAPAS_BASE_PADRAO,
|
|
2593
|
+
Q as UICamadas,
|
|
2594
|
+
Fr as UILayerPanel,
|
|
2595
|
+
Vr as UIMapaBase,
|
|
2596
|
+
Mr as UIPainelCamadas,
|
|
2597
|
+
Yr as UISeletorMapaBase,
|
|
2598
|
+
ue as calcularAreaAnelSimples,
|
|
2599
|
+
je as calcularAreaPoligono,
|
|
2600
|
+
Oe as calcularComprimentoLinha,
|
|
2601
|
+
va as calcularDistanciaPontos,
|
|
2602
|
+
La as calcularSelecaoFeicao,
|
|
2603
|
+
be as carregarEstadoPersistido,
|
|
2604
|
+
ye as construirHierarquiaCamadas,
|
|
2605
|
+
Nr as converterCamadaItemParaCanvasLayer,
|
|
2606
|
+
jr as converterCanvasLayerParaCamadaItem,
|
|
2607
|
+
Hr as converterFeicaoParaItem,
|
|
2608
|
+
F as escapeHtml,
|
|
2609
|
+
Ke as filtrarCamadasPorBusca,
|
|
2610
|
+
oe as filtrarFeicoesPorBusca,
|
|
2611
|
+
Or as formatarMetricaFeicoes,
|
|
2612
|
+
Aa as formatarOpcoesCamadasHierarquicas,
|
|
2613
|
+
Oa as gerarChaveStorage,
|
|
2614
|
+
Ha as limparEstadoPersistido,
|
|
2615
|
+
Ua as montarEstadoPersistido,
|
|
2616
|
+
Ge as nomeDoMapaBase,
|
|
2617
|
+
ja as normalizarEstadoPersistido,
|
|
2618
|
+
_e as obterIdsVisiveisFeicoes,
|
|
2619
|
+
Ga as reidratarCamadasComOverrides,
|
|
2620
|
+
Ee as removerSelecoesInvalidas,
|
|
2621
|
+
Ba as renderizarArvoreCamadas,
|
|
2622
|
+
ya as renderizarGridMapasBase,
|
|
2623
|
+
Ea as renderizarRodapeAcoes,
|
|
2624
|
+
Ia as renderizarThumbGeometria,
|
|
2625
|
+
Ue as rotuloRodape,
|
|
2626
|
+
Na as salvarEstadoPersistido,
|
|
2627
|
+
Xe as snapshotCamada
|
|
2531
2628
|
};
|