@thibezer/ui-components-kit 2.17.2 → 2.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/camadas.cjs +84 -86
- package/dist/camadas.js +1140 -879
- package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +1 -0
- package/dist/components/ui-camadas/camadas-atualizacao-incremental.d.ts +1 -0
- package/dist/components/ui-camadas/camadas-colecao.d.ts +1 -0
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-drop-ops.d.ts +34 -0
- package/dist/components/ui-camadas/camadas-lembranca.d.ts +2 -1
- package/dist/components/ui-camadas/camadas-persistencia.d.ts +3 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +1 -0
- package/dist/custom-elements.json +5697 -5245
- package/dist/tipos-elementos.d.ts +3 -0
- package/dist/tipos-vue.d.ts +3 -0
- package/package.json +1 -1
package/dist/camadas.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
1
|
+
var Pa = Object.defineProperty;
|
|
2
|
+
var za = (e, t, a) => t in e ? Pa(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
|
|
3
|
+
var I = (e, t, a) => za(e, typeof t != "symbol" ? t + "" : t, a);
|
|
4
4
|
/* empty css */
|
|
5
|
-
import { d as
|
|
6
|
-
import { A as
|
|
7
|
-
import { L as
|
|
8
|
-
import { a as
|
|
9
|
-
import { a as
|
|
10
|
-
import { f as
|
|
11
|
-
import { UIMapaBase as
|
|
12
|
-
const
|
|
5
|
+
import { d as Ce, S as Ba } from "./ssr-safe-5cWfJP-s.js";
|
|
6
|
+
import { A as qa, a as qe, e as Da } from "./degrade-gDa5sW__.js";
|
|
7
|
+
import { L as Ta } from "./listener-bag-DQgv7OON.js";
|
|
8
|
+
import { a as _e } from "./parts-CaoQiCfI.js";
|
|
9
|
+
import { a as Oa } from "./ui-seletor-cor-DFIQ1sin.js";
|
|
10
|
+
import { f as Ra } from "./alvo-digitavel-CzCvNVQ3.js";
|
|
11
|
+
import { UIMapaBase as Fr, UISeletorMapaBase as $r } from "./seletor-mapa-base.js";
|
|
12
|
+
const b = {
|
|
13
13
|
camadas: `<svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
14
14
|
<polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
|
|
15
15
|
<polyline points="2 17 12 22 22 17"></polyline>
|
|
@@ -107,8 +107,8 @@ const y = {
|
|
|
107
107
|
<line x1="9" y1="3" x2="9" y2="21"></line>
|
|
108
108
|
<line x1="15" y1="3" x2="15" y2="21"></line>
|
|
109
109
|
</svg>`
|
|
110
|
-
},
|
|
111
|
-
function
|
|
110
|
+
}, X = 6378137;
|
|
111
|
+
function ja(e, t) {
|
|
112
112
|
if (!Array.isArray(e) || !Array.isArray(t) || e.length < 2 || t.length < 2 || !Number.isFinite(e[0]) || !Number.isFinite(e[1]) || !Number.isFinite(t[0]) || !Number.isFinite(t[1]))
|
|
113
113
|
return 0;
|
|
114
114
|
const a = e[0] * Math.PI / 180, r = e[1] * Math.PI / 180, i = t[0] * Math.PI / 180, o = t[1] * Math.PI / 180, n = i - a, s = o - r, c = Math.min(
|
|
@@ -117,65 +117,65 @@ function za(e, t) {
|
|
|
117
117
|
0,
|
|
118
118
|
Math.sin(n / 2) * Math.sin(n / 2) + Math.cos(a) * Math.cos(i) * Math.sin(s / 2) * Math.sin(s / 2)
|
|
119
119
|
)
|
|
120
|
-
), l =
|
|
120
|
+
), l = X * 2 * Math.atan2(Math.sqrt(c), Math.sqrt(1 - c));
|
|
121
121
|
return Number.isFinite(l) ? l : 0;
|
|
122
122
|
}
|
|
123
|
-
function
|
|
123
|
+
function Ye(e) {
|
|
124
124
|
if (!Array.isArray(e) || e.length < 2) return 0;
|
|
125
125
|
if (Array.isArray(e[0]) && Array.isArray(e[0][0]))
|
|
126
|
-
return e.reduce((a, r) => a +
|
|
126
|
+
return e.reduce((a, r) => a + Ye(r), 0);
|
|
127
127
|
let t = 0;
|
|
128
128
|
for (let a = 0; a < e.length - 1; a++) {
|
|
129
129
|
const r = e[a], i = e[a + 1];
|
|
130
|
-
Array.isArray(r) && Array.isArray(i) && r.length >= 2 && i.length >= 2 && (t +=
|
|
130
|
+
Array.isArray(r) && Array.isArray(i) && r.length >= 2 && i.length >= 2 && (t += ja([r[0], r[1]], [i[0], i[1]]));
|
|
131
131
|
}
|
|
132
132
|
return t;
|
|
133
133
|
}
|
|
134
|
-
function
|
|
134
|
+
function ye(e) {
|
|
135
135
|
if (!Array.isArray(e)) return 0;
|
|
136
136
|
const t = [];
|
|
137
|
-
for (let
|
|
138
|
-
const
|
|
139
|
-
Array.isArray(
|
|
137
|
+
for (let p = 0; p < e.length; p++) {
|
|
138
|
+
const d = e[p];
|
|
139
|
+
Array.isArray(d) && d.length >= 2 && Number.isFinite(d[0]) && Number.isFinite(d[1]) && t.push([d[0], d[1]]);
|
|
140
140
|
}
|
|
141
141
|
t.length > 3 && t[0][0] === t[t.length - 1][0] && t[0][1] === t[t.length - 1][1] && t.pop();
|
|
142
142
|
const a = t.length;
|
|
143
143
|
if (a < 3) return 0;
|
|
144
144
|
let r = 0;
|
|
145
|
-
for (let
|
|
146
|
-
r += t[
|
|
145
|
+
for (let p = 0; p < a; p++)
|
|
146
|
+
r += t[p][0];
|
|
147
147
|
const i = r / a * Math.PI / 180, o = Math.cos(i), n = Math.PI / 180, s = t[0][0], c = t[0][1];
|
|
148
148
|
let l = 0;
|
|
149
|
-
for (let
|
|
150
|
-
const
|
|
151
|
-
l += m *
|
|
149
|
+
for (let p = 0; p < a; p++) {
|
|
150
|
+
const d = t[p], f = t[(p + 1) % a], m = (d[1] - c) * n * X * o, h = (d[0] - s) * n * X, v = (f[1] - c) * n * X * o, g = (f[0] - s) * n * X;
|
|
151
|
+
l += m * g - v * h;
|
|
152
152
|
}
|
|
153
|
-
const
|
|
154
|
-
return Number.isFinite(
|
|
153
|
+
const u = Math.abs(l) / 2;
|
|
154
|
+
return Number.isFinite(u) ? u : 0;
|
|
155
155
|
}
|
|
156
|
-
function
|
|
156
|
+
function Ue(e) {
|
|
157
157
|
if (!Array.isArray(e) || e.length === 0) return 0;
|
|
158
158
|
if (Array.isArray(e[0]) && typeof e[0][0] == "number")
|
|
159
|
-
return
|
|
159
|
+
return ye(e);
|
|
160
160
|
if (Array.isArray(e[0]) && Array.isArray(e[0][0])) {
|
|
161
161
|
if (Array.isArray(e[0][0][0]))
|
|
162
|
-
return e.reduce((r, i) => r +
|
|
163
|
-
const t =
|
|
162
|
+
return e.reduce((r, i) => r + Ue(i), 0);
|
|
163
|
+
const t = ye(e[0]);
|
|
164
164
|
let a = 0;
|
|
165
165
|
for (let r = 1; r < e.length; r++)
|
|
166
|
-
a +=
|
|
166
|
+
a += ye(e[r]);
|
|
167
167
|
return Math.max(0, t - a);
|
|
168
168
|
}
|
|
169
169
|
return 0;
|
|
170
170
|
}
|
|
171
|
-
function
|
|
171
|
+
function Er(e) {
|
|
172
172
|
if (!e || e.length === 0) return "";
|
|
173
173
|
const t = e.filter(
|
|
174
174
|
(r) => r.type === "Polygon" || r.type === "MultiPolygon" || r.geometryType === "Polygon"
|
|
175
175
|
);
|
|
176
176
|
if (t.length > 0) {
|
|
177
177
|
const r = t.reduce(
|
|
178
|
-
(i, o) => i + (
|
|
178
|
+
(i, o) => i + (Ue(o.coordinates) || 0),
|
|
179
179
|
0
|
|
180
180
|
);
|
|
181
181
|
return r >= 1e4 ? `${(r / 1e4).toLocaleString("pt-BR", {
|
|
@@ -188,7 +188,7 @@ function lr(e) {
|
|
|
188
188
|
);
|
|
189
189
|
if (a.length > 0) {
|
|
190
190
|
const r = a.reduce(
|
|
191
|
-
(i, o) => i + (
|
|
191
|
+
(i, o) => i + (Ye(o.coordinates) || 0),
|
|
192
192
|
0
|
|
193
193
|
);
|
|
194
194
|
return r >= 1e3 ? `${(r / 1e3).toLocaleString("pt-BR", {
|
|
@@ -198,23 +198,23 @@ function lr(e) {
|
|
|
198
198
|
}
|
|
199
199
|
return "";
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function M(e) {
|
|
202
202
|
return e == null ? "" : String(e).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
203
203
|
}
|
|
204
|
-
const
|
|
205
|
-
function
|
|
204
|
+
const Na = /^(#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?:rgb|hsl)a?\(\s*[\w.%\s,/+-]+\)|[a-z]{3,30})$/i;
|
|
205
|
+
function K(e, t = "#00E08A") {
|
|
206
206
|
if (!e || typeof e != "string") return t;
|
|
207
207
|
const a = e.trim();
|
|
208
|
-
return
|
|
208
|
+
return Na.test(a) ? a : t;
|
|
209
209
|
}
|
|
210
|
-
function
|
|
210
|
+
function xe(e) {
|
|
211
211
|
return Math.max(0, Math.min(255, Math.round(e))).toString(16).padStart(2, "0");
|
|
212
212
|
}
|
|
213
|
-
function
|
|
213
|
+
function Ha(e, t, a) {
|
|
214
214
|
const r = t / 100, i = a / 100, o = (c) => (c + e / 30) % 12, n = r * Math.min(i, 1 - i), s = (c) => i - n * Math.max(-1, Math.min(o(c) - 3, Math.min(9 - o(c), 1)));
|
|
215
215
|
return [s(0) * 255, s(8) * 255, s(4) * 255];
|
|
216
216
|
}
|
|
217
|
-
function
|
|
217
|
+
function Ga(e, t = "#000000") {
|
|
218
218
|
if (!e || typeof e != "string") return t;
|
|
219
219
|
const a = e.trim().toLowerCase(), r = /^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(a);
|
|
220
220
|
if (r) {
|
|
@@ -225,19 +225,19 @@ function Pa(e, t = "#000000") {
|
|
|
225
225
|
if (i) {
|
|
226
226
|
const o = i[2].split(/[\s,/]+/).filter(Boolean).map((n) => parseFloat(n));
|
|
227
227
|
if (o.length >= 3 && o.slice(0, 3).every((n) => !isNaN(n))) {
|
|
228
|
-
const [n, s, c] = o, [l,
|
|
229
|
-
return `#${
|
|
228
|
+
const [n, s, c] = o, [l, u, p] = i[1] === "rgb" ? [n, s, c] : Ha(n, s, c);
|
|
229
|
+
return `#${xe(l)}${xe(u)}${xe(p)}`;
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
return t;
|
|
233
233
|
}
|
|
234
|
-
function
|
|
234
|
+
function D(e, t, a) {
|
|
235
235
|
const r = e.querySelectorAll(`[${t}]`);
|
|
236
236
|
for (let i = 0; i < r.length; i++)
|
|
237
237
|
if (r[i].getAttribute(t) === a) return r[i];
|
|
238
238
|
return null;
|
|
239
239
|
}
|
|
240
|
-
function
|
|
240
|
+
function Ke(e, t = 80) {
|
|
241
241
|
let a = null;
|
|
242
242
|
return (...r) => {
|
|
243
243
|
a && clearTimeout(a), a = setTimeout(() => {
|
|
@@ -245,10 +245,10 @@ function je(e, t = 80) {
|
|
|
245
245
|
}, t);
|
|
246
246
|
};
|
|
247
247
|
}
|
|
248
|
-
function
|
|
248
|
+
function T(e, t) {
|
|
249
249
|
e.setAttribute("title", t), e.setAttribute("aria-label", t);
|
|
250
250
|
}
|
|
251
|
-
const
|
|
251
|
+
const Qe = [
|
|
252
252
|
{
|
|
253
253
|
id: "none",
|
|
254
254
|
nome: "Sem Mapa",
|
|
@@ -291,16 +291,16 @@ const Ne = [
|
|
|
291
291
|
thumbnailUrl: "https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"
|
|
292
292
|
}
|
|
293
293
|
];
|
|
294
|
-
function
|
|
294
|
+
function Xe(e, t) {
|
|
295
295
|
const a = Array.isArray(e) ? e.find((r) => r.id === t) : void 0;
|
|
296
296
|
return a && typeof a.nome == "string" ? a.nome : "";
|
|
297
297
|
}
|
|
298
|
-
function
|
|
298
|
+
function Va(e = Qe, t = "satelite", a = !1) {
|
|
299
299
|
if (!e || e.length === 0) return "";
|
|
300
300
|
const r = e.map((i) => {
|
|
301
|
-
const o = t === i.id, n =
|
|
301
|
+
const o = t === i.id, n = M(i.id), s = M(i.nome), c = M(i.descricao || i.nome);
|
|
302
302
|
let l = "";
|
|
303
|
-
return i.thumbnailUrl ? l = `<img class="ui-basemap-preview" src="${
|
|
303
|
+
return i.thumbnailUrl ? l = `<img class="ui-basemap-preview" src="${M(i.thumbnailUrl)}" alt="" loading="lazy" referrerpolicy="no-referrer" data-basemap-thumb />` : l = `<div class="ui-basemap-preview-none">${b.gradeCad}</div>`, `
|
|
304
304
|
<div class="ui-basemap-card ${o ? "active" : ""}" data-basemap-id="${n}" role="button" tabindex="0" aria-pressed="${o}" title="${c}">
|
|
305
305
|
${l}
|
|
306
306
|
<span>${s}</span>
|
|
@@ -311,8 +311,8 @@ function Da(e = Ne, t = "satelite", a = !1) {
|
|
|
311
311
|
<div class="ui-basemap-section ${a ? "recolhido" : ""}" part="mapas-base">
|
|
312
312
|
<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"}">
|
|
313
313
|
<span class="ui-basemap-title">Mapa Base</span>
|
|
314
|
-
<span class="ui-basemap-atual" data-basemap-atual>${
|
|
315
|
-
<span class="ui-chevron-icon ${a ? "" : "open"}">${
|
|
314
|
+
<span class="ui-basemap-atual" data-basemap-atual>${M(Xe(e, t))}</span>
|
|
315
|
+
<span class="ui-chevron-icon ${a ? "" : "open"}">${b.chevronDir}</span>
|
|
316
316
|
</button>
|
|
317
317
|
${a ? "" : `<div class="ui-basemap-grid" id="ui-basemap-grid">
|
|
318
318
|
${r}
|
|
@@ -320,50 +320,50 @@ function Da(e = Ne, t = "satelite", a = !1) {
|
|
|
320
320
|
</div>
|
|
321
321
|
`;
|
|
322
322
|
}
|
|
323
|
-
function
|
|
323
|
+
function pe(e) {
|
|
324
324
|
if (!Array.isArray(e) || e.length === 0) return [];
|
|
325
325
|
const t = e.filter((l) => !!(l && typeof l == "object" && l.id)), a = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
|
|
326
|
-
t.forEach((l,
|
|
327
|
-
a.set(l.id, l), r.set(l.id,
|
|
326
|
+
t.forEach((l, u) => {
|
|
327
|
+
a.set(l.id, l), r.set(l.id, u);
|
|
328
328
|
});
|
|
329
329
|
const i = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
|
|
330
330
|
for (const l of t) {
|
|
331
331
|
if (o.has(l.id)) continue;
|
|
332
|
-
const
|
|
333
|
-
let
|
|
334
|
-
for (;
|
|
335
|
-
if (
|
|
336
|
-
const f =
|
|
337
|
-
let
|
|
338
|
-
for (const
|
|
339
|
-
(r.get(
|
|
340
|
-
i.add(
|
|
332
|
+
const u = [], p = /* @__PURE__ */ new Map();
|
|
333
|
+
let d = l;
|
|
334
|
+
for (; d && d.parentId && a.has(d.parentId) && d.parentId !== d.id; ) {
|
|
335
|
+
if (p.has(d.id)) {
|
|
336
|
+
const f = p.get(d.id), m = u.slice(f);
|
|
337
|
+
let h = m[0];
|
|
338
|
+
for (const v of m)
|
|
339
|
+
(r.get(v) ?? 1 / 0) < (r.get(h) ?? 1 / 0) && (h = v);
|
|
340
|
+
i.add(h);
|
|
341
341
|
break;
|
|
342
342
|
}
|
|
343
|
-
if (o.has(
|
|
344
|
-
|
|
343
|
+
if (o.has(d.id)) break;
|
|
344
|
+
p.set(d.id, u.length), u.push(d.id), d = a.get(d.parentId);
|
|
345
345
|
}
|
|
346
|
-
for (const f of
|
|
346
|
+
for (const f of u) o.add(f);
|
|
347
347
|
}
|
|
348
348
|
const n = /* @__PURE__ */ new Map(), s = [];
|
|
349
349
|
t.forEach((l) => {
|
|
350
350
|
!i.has(l.id) && !!(l.parentId && a.has(l.parentId) && l.parentId !== l.id) && l.parentId ? (n.has(l.parentId) || n.set(l.parentId, []), n.get(l.parentId).push(l)) : s.push(l);
|
|
351
351
|
});
|
|
352
|
-
function c(l,
|
|
353
|
-
const
|
|
354
|
-
|
|
352
|
+
function c(l, u, p) {
|
|
353
|
+
const d = new Set(p);
|
|
354
|
+
d.add(l.id);
|
|
355
355
|
const m = (n.get(l.id) || (Array.isArray(l.children) ? l.children : [])).filter(
|
|
356
|
-
(
|
|
356
|
+
(h) => !!(h && typeof h == "object" && h.id && !d.has(h.id))
|
|
357
357
|
);
|
|
358
358
|
return {
|
|
359
359
|
camada: l,
|
|
360
|
-
depth:
|
|
361
|
-
subcamadas: m.map((
|
|
360
|
+
depth: u,
|
|
361
|
+
subcamadas: m.map((h) => c(h, u + 1, d))
|
|
362
362
|
};
|
|
363
363
|
}
|
|
364
364
|
return s.map((l) => c(l, 0, /* @__PURE__ */ new Set()));
|
|
365
365
|
}
|
|
366
|
-
function
|
|
366
|
+
function _a(e, t) {
|
|
367
367
|
const a = /* @__PURE__ */ new Set();
|
|
368
368
|
if (!t || !Array.isArray(e)) return a;
|
|
369
369
|
const r = /* @__PURE__ */ new Map();
|
|
@@ -381,12 +381,12 @@ function Ta(e, t) {
|
|
|
381
381
|
}
|
|
382
382
|
return a;
|
|
383
383
|
}
|
|
384
|
-
function
|
|
384
|
+
function ae(e, t, a) {
|
|
385
385
|
if (!a || !Array.isArray(t) || t.length === 0) return [];
|
|
386
|
-
const r =
|
|
386
|
+
const r = _a(e, a);
|
|
387
387
|
return t.filter((i) => !!(i && i.layerId && r.has(i.layerId)));
|
|
388
388
|
}
|
|
389
|
-
function
|
|
389
|
+
function fe(e) {
|
|
390
390
|
const t = /* @__PURE__ */ new Map();
|
|
391
391
|
e.forEach((r) => r && r.id && t.set(r.id, r));
|
|
392
392
|
const a = /* @__PURE__ */ new Map();
|
|
@@ -400,8 +400,8 @@ function le(e) {
|
|
|
400
400
|
}
|
|
401
401
|
return a;
|
|
402
402
|
}
|
|
403
|
-
function
|
|
404
|
-
const t =
|
|
403
|
+
function ce(e) {
|
|
404
|
+
const t = fe(e);
|
|
405
405
|
return new Set(
|
|
406
406
|
e.filter((a) => {
|
|
407
407
|
var r;
|
|
@@ -409,24 +409,24 @@ function ie(e) {
|
|
|
409
409
|
}).map((a) => a.id)
|
|
410
410
|
);
|
|
411
411
|
}
|
|
412
|
-
function
|
|
413
|
-
const t =
|
|
414
|
-
const o = i.camada, n = i.depth, s = i.subcamadas, c = n > 0 ? " ".repeat(n) + "↳ " : s.length > 0 || o.isGroup ? "📁 " : "", l = a.has(o.id),
|
|
415
|
-
return
|
|
412
|
+
function We(e) {
|
|
413
|
+
const t = pe(e), a = ce(e), r = (i) => {
|
|
414
|
+
const o = i.camada, n = i.depth, s = i.subcamadas, c = n > 0 ? " ".repeat(n) + "↳ " : s.length > 0 || o.isGroup ? "📁 " : "", l = a.has(o.id), u = `<option value="${M(o.id)}"${l ? " disabled" : ""}>${c}${M(o.name)}${l ? " 🔒" : ""}</option>`, p = s.map((d) => r(d)).join("");
|
|
415
|
+
return u + p;
|
|
416
416
|
};
|
|
417
417
|
return t.map((i) => r(i)).join("");
|
|
418
418
|
}
|
|
419
|
-
function
|
|
419
|
+
function Je(e, t) {
|
|
420
420
|
return t > 0 ? {
|
|
421
|
-
icone:
|
|
421
|
+
icone: b.alvoEnquadrar,
|
|
422
422
|
texto: `${t} ${t > 1 ? "selecionados" : "selecionado"}`
|
|
423
423
|
} : {
|
|
424
|
-
icone:
|
|
424
|
+
icone: b.camadas,
|
|
425
425
|
texto: `${e} ${e > 1 ? "camadas" : "camada"}`
|
|
426
426
|
};
|
|
427
427
|
}
|
|
428
|
-
function
|
|
429
|
-
const r = t.filter((c) => a.has(c.id)), i = r.length > 0, o = i ? r.length : e.length, n =
|
|
428
|
+
function Ya(e, t, a) {
|
|
429
|
+
const r = t.filter((c) => a.has(c.id)), i = r.length > 0, o = i ? r.length : e.length, n = Je(e.length, r.length), s = We(e);
|
|
430
430
|
return `
|
|
431
431
|
<div class="ui-tree-footer ${i ? "tem-selecao" : "sem-selecao"}" part="rodape">
|
|
432
432
|
<div class="ui-footer-left">
|
|
@@ -437,11 +437,11 @@ function Ra(e, t, a) {
|
|
|
437
437
|
<!-- Criação de camadas/grupos quando não há nada selecionado -->
|
|
438
438
|
<div class="ui-footer-actions-gerais" style="display: ${i ? "none" : "flex"};">
|
|
439
439
|
<button class="ui-footer-chip-btn" id="btn-footer-new-group" title="Criar Nova Pasta/Grupo de Camadas" aria-label="Criar Grupo de Camadas">
|
|
440
|
-
${
|
|
440
|
+
${b.moverPasta}
|
|
441
441
|
<span>Grupo</span>
|
|
442
442
|
</button>
|
|
443
443
|
<button class="ui-footer-chip-btn primario" id="btn-footer-new-layer" title="Criar Nova Camada Vetorial" aria-label="Criar Nova Camada">
|
|
444
|
-
${
|
|
444
|
+
${b.mais}
|
|
445
445
|
<span>Camada</span>
|
|
446
446
|
</button>
|
|
447
447
|
</div>
|
|
@@ -456,103 +456,103 @@ function Ra(e, t, a) {
|
|
|
456
456
|
</div>
|
|
457
457
|
|
|
458
458
|
<button class="ui-footer-btn btn-danger-footer ${i ? "" : "disabled"}" id="btn-footer-del" title="Excluir selecionados" aria-label="Excluir selecionados" ${i ? "" : "disabled"}>
|
|
459
|
-
${
|
|
459
|
+
${b.lixeira}
|
|
460
460
|
</button>
|
|
461
461
|
</div>
|
|
462
462
|
</div>
|
|
463
463
|
`;
|
|
464
464
|
}
|
|
465
|
-
const
|
|
466
|
-
function
|
|
465
|
+
const we = 64;
|
|
466
|
+
function De(e) {
|
|
467
467
|
return Array.isArray(e) && e.length >= 2 && Number.isFinite(e[0]) && Number.isFinite(e[1]);
|
|
468
468
|
}
|
|
469
|
-
function
|
|
470
|
-
return !Array.isArray(e) || e.length === 0 ? [] :
|
|
469
|
+
function Ze(e) {
|
|
470
|
+
return !Array.isArray(e) || e.length === 0 ? [] : De(e[0]) ? [e.filter(De)] : e.flatMap(Ze);
|
|
471
471
|
}
|
|
472
|
-
function
|
|
473
|
-
if (e.length <=
|
|
474
|
-
const t = e.length /
|
|
475
|
-
for (let r = 0; r <
|
|
472
|
+
function Te(e) {
|
|
473
|
+
if (e.length <= we) return e;
|
|
474
|
+
const t = e.length / we, a = [];
|
|
475
|
+
for (let r = 0; r < we; r++) a.push(e[Math.floor(r * t)]);
|
|
476
476
|
return a.push(e[e.length - 1]), a;
|
|
477
477
|
}
|
|
478
|
-
function
|
|
479
|
-
const r =
|
|
478
|
+
function Ua(e, t, a) {
|
|
479
|
+
const r = Ze(t).filter((S) => S.length > 0);
|
|
480
480
|
if (r.length === 0) return "";
|
|
481
481
|
let i = 1 / 0, o = -1 / 0, n = 1 / 0, s = -1 / 0;
|
|
482
|
-
for (const
|
|
483
|
-
for (const [
|
|
484
|
-
|
|
485
|
-
const c = 16, l = 2,
|
|
482
|
+
for (const S of r)
|
|
483
|
+
for (const [F, B] of S)
|
|
484
|
+
B < i && (i = B), B > o && (o = B), -F < n && (n = -F), -F > s && (s = -F);
|
|
485
|
+
const c = 16, l = 2, u = c - l * 2, p = o - i, d = s - n, f = Math.max(p, d), m = f > 0 ? u / f : 0, h = l + (u - p * m) / 2, v = l + (u - d * m) / 2, g = (S) => Math.round(S * 100) / 100, w = ([S, F]) => `${g(h + (F - i) * m)},${g(v + (-S - n) * m)}`, k = e === "polygon" || e === "multipolygon", L = e === "linestring" || e === "multilinestring", A = (S) => `<svg viewBox="0 0 ${c} ${c}" width="100%" height="100%" aria-hidden="true">${S}</svg>`;
|
|
486
486
|
if (k) {
|
|
487
|
-
const
|
|
488
|
-
return
|
|
489
|
-
`<path d="${
|
|
487
|
+
const S = r.filter((F) => F.length >= 3).map((F) => `M${Te(F).map(w).join("L")}Z`).join("");
|
|
488
|
+
return S ? A(
|
|
489
|
+
`<path d="${S}" fill="${a}" fill-opacity="0.45" fill-rule="evenodd" stroke="${a}" stroke-width="1.2" stroke-linejoin="round"/>`
|
|
490
490
|
) : "";
|
|
491
491
|
}
|
|
492
|
-
if (
|
|
493
|
-
const
|
|
494
|
-
return
|
|
495
|
-
`<path d="${
|
|
492
|
+
if (L) {
|
|
493
|
+
const S = r.filter((F) => F.length >= 2).map((F) => `M${Te(F).map(w).join("L")}`).join("");
|
|
494
|
+
return S ? A(
|
|
495
|
+
`<path d="${S}" fill="none" stroke="${a}" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>`
|
|
496
496
|
) : "";
|
|
497
497
|
}
|
|
498
498
|
return "";
|
|
499
499
|
}
|
|
500
|
-
function
|
|
501
|
-
const r =
|
|
500
|
+
function ea(e, t, a) {
|
|
501
|
+
const r = K(t, "#00E08A"), i = (e || "").toLowerCase(), o = a !== void 0 ? Ua(i, a, r) : "";
|
|
502
502
|
return o || (i === "polygon" || i === "multipolygon" ? `<svg viewBox="0 0 16 16" width="11" height="11"><polygon points="2,14 14,14 12,2 4,4" fill="${r}" fill-opacity="0.45" stroke="${r}" stroke-width="1.5"/></svg>` : i === "linestring" || i === "multilinestring" ? `<svg viewBox="0 0 16 16" width="11" height="11"><polyline points="2,13 8,3 14,10" fill="none" stroke="${r}" stroke-width="2"/></svg>` : i === "text" ? `<svg viewBox="0 0 16 16" width="11" height="11"><text x="8" y="12" font-size="12" font-weight="bold" fill="${r}" text-anchor="middle" font-family="sans-serif">T</text></svg>` : `<svg viewBox="0 0 16 16" width="11" height="11"><circle cx="8" cy="8" r="4.2" fill="${r}" stroke="#ffffff" stroke-width="1.2"/></svg>`);
|
|
503
503
|
}
|
|
504
|
-
function
|
|
504
|
+
function aa(e, t, a) {
|
|
505
505
|
return {
|
|
506
|
-
camadaIdSeguro:
|
|
507
|
-
corCamada:
|
|
506
|
+
camadaIdSeguro: M(e.id),
|
|
507
|
+
corCamada: K(e.color, "#00E08A"),
|
|
508
508
|
profundidade: t,
|
|
509
509
|
esmaecida: e.visible === !1 || (a == null ? void 0 : a.ocultaPorAncestral) === !0,
|
|
510
510
|
travadaPelaCamada: e.locked === !0 || (a == null ? void 0 : a.travadaPorAncestral) === !0
|
|
511
511
|
};
|
|
512
512
|
}
|
|
513
|
-
const
|
|
514
|
-
function
|
|
515
|
-
return a === 0 ?
|
|
513
|
+
const Ae = (e, t, a) => `${e} ${e === 1 ? t : a}`;
|
|
514
|
+
function ta(e, t, a) {
|
|
515
|
+
return a === 0 ? Ae(e, "feição", "feições") : `${Ae(e, "feição", "feições")} no grupo (${t} nesta camada) · ${Ae(a, "subcamada", "subcamadas")}`;
|
|
516
516
|
}
|
|
517
|
-
function
|
|
518
|
-
return e === 0 && r ? "" : `<span class="ui-count-chip" title="${
|
|
517
|
+
function ra(e, t, a, r) {
|
|
518
|
+
return e === 0 && r ? "" : `<span class="ui-count-chip" title="${ta(e, t, a)}">${e}</span>`;
|
|
519
519
|
}
|
|
520
|
-
function
|
|
520
|
+
function ia(e, t) {
|
|
521
521
|
const a = t - e;
|
|
522
522
|
return {
|
|
523
523
|
resumo: `Exibindo ${e} de ${t} feições. Use a busca acima para filtrar.`,
|
|
524
524
|
botao: `Mostrar mais (+${Math.min(80, a)})`
|
|
525
525
|
};
|
|
526
526
|
}
|
|
527
|
-
function
|
|
528
|
-
const r =
|
|
527
|
+
function oa(e, t, a) {
|
|
528
|
+
const r = ia(t, a);
|
|
529
529
|
return `<div class="ui-truncate-notice" role="note">
|
|
530
530
|
<span>${r.resumo}</span>
|
|
531
531
|
<button type="button" class="ui-truncate-more-btn" data-layer-show-more="${e}">${r.botao}</button>
|
|
532
532
|
</div>`;
|
|
533
533
|
}
|
|
534
|
-
function
|
|
534
|
+
function na(e) {
|
|
535
535
|
return `<div class="ui-empty-row"><span>${e ? "Grupo vazio (adicione subcamadas ou feições)" : "Camada vazia"}</span></div>`;
|
|
536
536
|
}
|
|
537
|
-
const
|
|
538
|
-
function
|
|
539
|
-
return
|
|
537
|
+
const Ka = ["name", "color", "visible", "locked", "status", "type", "geometryType", "coordinates", "layerId"];
|
|
538
|
+
function Qa(e, t) {
|
|
539
|
+
return Ka.every((a) => e[a] === t[a]);
|
|
540
540
|
}
|
|
541
|
-
function
|
|
542
|
-
const { camadaIdSeguro: i, corCamada: o, profundidade: n } = t, s =
|
|
541
|
+
function sa(e, t, a, r) {
|
|
542
|
+
const { camadaIdSeguro: i, corCamada: o, profundidade: n } = t, s = M(e.id), c = M(e.name || "Feição"), l = K(e.color, o), u = e.visible !== !1, p = t.travadaPelaCamada, d = e.locked === !0 || p, f = p ? "Bloqueada pela camada" : d ? "Desbloquear Feição" : "Bloquear Feição", m = e.status === "previa" ? '<span class="ui-previa-dot" title="Geometria prévia" aria-label="Geometria prévia"></span>' : "";
|
|
543
543
|
return `
|
|
544
|
-
<div class="ui-feat-row ${a ? "selected-row" : ""} ${
|
|
545
|
-
<div class="ui-col ui-col-eye" data-feat-eye="${s}" role="button" tabindex="0" aria-label="${
|
|
546
|
-
${
|
|
544
|
+
<div class="ui-feat-row ${a ? "selected-row" : ""} ${u ? "" : "hidden-row"} ${t.esmaecida ? "herdado-oculto" : ""}" data-feat-row="${s}" data-feat-select="${s}" data-feat-layer="${i}" role="treeitem" aria-level="${n + 2}" aria-selected="${a}" tabindex="-1" draggable="true" part="${a ? "feicao feicao-selecionada" : "feicao"}" style="--layer-depth: ${n + 1};" title="Clique para selecionar | Arraste para reordenar">
|
|
545
|
+
<div class="ui-col ui-col-eye" data-feat-eye="${s}" role="button" tabindex="0" aria-label="${u ? "Ocultar Feição" : "Exibir Feição"}" title="${u ? "Ocultar Feição" : "Exibir Feição"}">
|
|
546
|
+
${u ? b.olhoAberto : b.olhoFechado}
|
|
547
547
|
</div>
|
|
548
548
|
|
|
549
|
-
<div class="ui-col ui-col-lock ${
|
|
550
|
-
${
|
|
549
|
+
<div class="ui-col ui-col-lock ${d ? "" : "ui-lock-open"}" data-feat-lock="${s}" ${p ? 'data-locked-by-layer="true"' : ""} role="button" tabindex="0" aria-label="${f}" title="${f}">
|
|
550
|
+
${d ? b.cadeadoTrancado : b.cadeadoAberto}
|
|
551
551
|
</div>
|
|
552
552
|
|
|
553
553
|
<div class="ui-col ui-col-colorbar" style="background: ${o};"></div>
|
|
554
554
|
<div class="ui-col ui-col-thumb">
|
|
555
|
-
<div class="ui-thumb-box">${
|
|
555
|
+
<div class="ui-thumb-box">${ea(e.type || e.geometryType, l, e.coordinates)}</div>
|
|
556
556
|
</div>
|
|
557
557
|
|
|
558
558
|
<div class="ui-col ui-col-name" data-feat-name-trigger="${s}" title="Duplo clique para renomear">
|
|
@@ -560,7 +560,7 @@ function Ze(e, t, a, r) {
|
|
|
560
560
|
</div>
|
|
561
561
|
|
|
562
562
|
<div class="ui-col ui-col-actions">
|
|
563
|
-
<button class="ui-micro-btn" data-feat-fit="${s}" title="Enquadrar no mapa" aria-label="Enquadrar feição no mapa">${
|
|
563
|
+
<button class="ui-micro-btn" data-feat-fit="${s}" title="Enquadrar no mapa" aria-label="Enquadrar feição no mapa">${b.alvoEnquadrar}</button>
|
|
564
564
|
</div>
|
|
565
565
|
|
|
566
566
|
<div class="ui-col ui-col-target" data-feat-target="${s}" role="button" tabindex="0" aria-label="Selecionar feição" title="Selecionar feição">
|
|
@@ -569,15 +569,15 @@ function Ze(e, t, a, r) {
|
|
|
569
569
|
</div>
|
|
570
570
|
`;
|
|
571
571
|
}
|
|
572
|
-
const
|
|
573
|
-
function
|
|
572
|
+
const Se = 80;
|
|
573
|
+
function W(e, t) {
|
|
574
574
|
const a = (t || "").trim().toLowerCase();
|
|
575
575
|
return a ? e.filter(
|
|
576
576
|
(r) => (r.name || "").toLowerCase().includes(a) || (r.category || "").toLowerCase().includes(a) || (r.type || "").toLowerCase().includes(a)
|
|
577
577
|
) : e;
|
|
578
578
|
}
|
|
579
|
-
function
|
|
580
|
-
var
|
|
579
|
+
function la(e, t, a) {
|
|
580
|
+
var d, f;
|
|
581
581
|
const r = (a || "").trim().toLowerCase();
|
|
582
582
|
if (!r) return null;
|
|
583
583
|
const i = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
|
|
@@ -585,73 +585,73 @@ function ea(e, t, a) {
|
|
|
585
585
|
i.set(m.id, m), m.parentId && m.parentId !== m.id && (o.has(m.parentId) || o.set(m.parentId, []), o.get(m.parentId).push(m.id));
|
|
586
586
|
const n = /* @__PURE__ */ new Map();
|
|
587
587
|
for (const m of t) {
|
|
588
|
-
const
|
|
589
|
-
n.has(
|
|
588
|
+
const h = m.layerId || "";
|
|
589
|
+
n.has(h) || n.set(h, []), n.get(h).push(m);
|
|
590
590
|
}
|
|
591
591
|
const s = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set();
|
|
592
592
|
for (const m of e)
|
|
593
|
-
(typeof m.name == "string" ? m.name.toLowerCase() : "").includes(r) ? (s.add(m.id), c.add(m.id)) :
|
|
593
|
+
(typeof m.name == "string" ? m.name.toLowerCase() : "").includes(r) ? (s.add(m.id), c.add(m.id)) : W(n.get(m.id) || [], r).length > 0 && c.add(m.id);
|
|
594
594
|
const l = new Set(c);
|
|
595
595
|
for (const m of c) {
|
|
596
|
-
const
|
|
597
|
-
let
|
|
598
|
-
for (;
|
|
599
|
-
|
|
600
|
-
}
|
|
601
|
-
const
|
|
602
|
-
for (;
|
|
603
|
-
const m =
|
|
604
|
-
for (const
|
|
605
|
-
l.has(
|
|
606
|
-
}
|
|
607
|
-
const
|
|
596
|
+
const h = /* @__PURE__ */ new Set([m]);
|
|
597
|
+
let v = (d = i.get(m)) == null ? void 0 : d.parentId;
|
|
598
|
+
for (; v && i.has(v) && !h.has(v); )
|
|
599
|
+
h.add(v), l.add(v), v = (f = i.get(v)) == null ? void 0 : f.parentId;
|
|
600
|
+
}
|
|
601
|
+
const u = [...s];
|
|
602
|
+
for (; u.length > 0; ) {
|
|
603
|
+
const m = u.pop();
|
|
604
|
+
for (const h of o.get(m) || [])
|
|
605
|
+
l.has(h) || (l.add(h), u.push(h));
|
|
606
|
+
}
|
|
607
|
+
const p = /* @__PURE__ */ new Map();
|
|
608
608
|
for (const m of l) {
|
|
609
|
-
const
|
|
610
|
-
|
|
611
|
-
}
|
|
612
|
-
return { camadasVisiveis: l, feicoesPorCamada:
|
|
613
|
-
}
|
|
614
|
-
function
|
|
615
|
-
const n =
|
|
616
|
-
for (let
|
|
617
|
-
const
|
|
618
|
-
if (!
|
|
619
|
-
const f =
|
|
620
|
-
c.has(f) || c.set(f, []), c.get(f).push(
|
|
621
|
-
}
|
|
622
|
-
const l =
|
|
623
|
-
function p
|
|
624
|
-
const
|
|
625
|
-
if (n && !n.camadasVisiveis.has(
|
|
626
|
-
for (const
|
|
627
|
-
|
|
628
|
-
const m = n ? n.feicoesPorCamada.get(
|
|
629
|
-
for (let
|
|
630
|
-
s.push(
|
|
631
|
-
}
|
|
632
|
-
for (const
|
|
633
|
-
p
|
|
609
|
+
const h = n.get(m) || [];
|
|
610
|
+
p.set(m, s.has(m) ? h : W(h, r));
|
|
611
|
+
}
|
|
612
|
+
return { camadasVisiveis: l, feicoesPorCamada: p };
|
|
613
|
+
}
|
|
614
|
+
function ca(e, t, a, r = "", i = Se, o) {
|
|
615
|
+
const n = la(e, t, r), s = [], c = /* @__PURE__ */ new Map();
|
|
616
|
+
for (let p = 0; p < t.length; p++) {
|
|
617
|
+
const d = t[p];
|
|
618
|
+
if (!d || !d.id) continue;
|
|
619
|
+
const f = d.layerId || "";
|
|
620
|
+
c.has(f) || c.set(f, []), c.get(f).push(d);
|
|
621
|
+
}
|
|
622
|
+
const l = pe(e);
|
|
623
|
+
function u(p) {
|
|
624
|
+
const d = p.camada;
|
|
625
|
+
if (n && !n.camadasVisiveis.has(d.id) || !(n ? !0 : a.has(d.id))) return;
|
|
626
|
+
for (const g of p.subcamadas)
|
|
627
|
+
u(g);
|
|
628
|
+
const m = n ? n.feicoesPorCamada.get(d.id) || [] : c.get(d.id) || [], h = (o == null ? void 0 : o.get(d.id)) ?? i, v = m.slice(0, h);
|
|
629
|
+
for (let g = 0; g < v.length; g++)
|
|
630
|
+
s.push(v[g].id);
|
|
631
|
+
}
|
|
632
|
+
for (const p of l)
|
|
633
|
+
u(p);
|
|
634
634
|
return s;
|
|
635
635
|
}
|
|
636
|
-
function
|
|
636
|
+
function Xa(e, t, a, r, i, o) {
|
|
637
637
|
if (!e.includes(r)) return null;
|
|
638
638
|
const n = new Set(t);
|
|
639
639
|
let s = a;
|
|
640
640
|
if (o && a && e.includes(a)) {
|
|
641
|
-
const c = e.indexOf(a), l = e.indexOf(r),
|
|
641
|
+
const c = e.indexOf(a), l = e.indexOf(r), u = Math.min(c, l), p = Math.max(c, l);
|
|
642
642
|
i || n.clear();
|
|
643
|
-
for (let
|
|
644
|
-
n.add(e[
|
|
643
|
+
for (let d = u; d <= p; d++)
|
|
644
|
+
n.add(e[d]);
|
|
645
645
|
} else i ? (n.has(r) ? n.delete(r) : n.add(r), s = r) : (n.clear(), n.add(r), s = r);
|
|
646
646
|
return { selecionados: n, ultimoClicadoId: s };
|
|
647
647
|
}
|
|
648
|
-
function
|
|
648
|
+
function Fe(e, t) {
|
|
649
649
|
if (e.size === 0) return;
|
|
650
650
|
const a = new Set(t.map((r) => r.id));
|
|
651
651
|
for (const r of e)
|
|
652
652
|
a.has(r) || e.delete(r);
|
|
653
653
|
}
|
|
654
|
-
function
|
|
654
|
+
function N(e, t, a) {
|
|
655
655
|
const r = /* @__PURE__ */ new Set();
|
|
656
656
|
let i = e.find((o) => o.id === t);
|
|
657
657
|
for (; i && i.parentId; ) {
|
|
@@ -660,40 +660,172 @@ function Y(e, t, a) {
|
|
|
660
660
|
}
|
|
661
661
|
return !1;
|
|
662
662
|
}
|
|
663
|
-
function
|
|
663
|
+
function Ee(e) {
|
|
664
664
|
return Number.isFinite(e) ? e < 0.25 ? "acima" : e > 0.75 ? "abaixo" : "dentro" : "dentro";
|
|
665
665
|
}
|
|
666
|
-
function
|
|
666
|
+
function Oe(e, t, a, r) {
|
|
667
667
|
if (!t || !a || t === a) return null;
|
|
668
668
|
const i = e.find((l) => l.id === t), o = e.find((l) => l.id === a);
|
|
669
669
|
if (!i || !o) return null;
|
|
670
670
|
const n = i.parentId !== void 0 ? i.parentId : null;
|
|
671
671
|
if (r === "dentro")
|
|
672
|
-
return
|
|
673
|
-
if (
|
|
672
|
+
return N(e, o.id, i.id) ? null : (i.parentId = o.id, { tipo: "hierarquia", camada: i, novoParentId: o.id, parentAnteriorId: n });
|
|
673
|
+
if (N(e, o.id, i.id)) return null;
|
|
674
674
|
const s = e.findIndex((l) => l.id === t);
|
|
675
675
|
e.splice(s, 1);
|
|
676
676
|
const c = e.findIndex((l) => l.id === a);
|
|
677
677
|
return c === -1 ? e.push(i) : e.splice(r === "acima" ? c : c + 1, 0, i), i.parentId = o.parentId ?? null, { tipo: "ordem", camada: i, parentAnteriorId: n, novoParentId: i.parentId };
|
|
678
678
|
}
|
|
679
|
-
function
|
|
679
|
+
function Wa(e, t, a, r) {
|
|
680
680
|
const i = e.find((s) => s.id === a), o = t.find((s) => s.id === r);
|
|
681
681
|
if (!i || !o || i.layerId === r) return null;
|
|
682
682
|
const n = i.layerId;
|
|
683
683
|
return i.layerId = r, { feicao: i, camadaOrigemId: n, camadaDestinoId: r, mudouDeCamada: !0 };
|
|
684
684
|
}
|
|
685
|
-
function
|
|
685
|
+
function Ja(e, t, a, r) {
|
|
686
686
|
if (!t || !a || t === a) return null;
|
|
687
|
-
const i = e.findIndex((
|
|
687
|
+
const i = e.findIndex((p) => p.id === t);
|
|
688
688
|
if (i === -1) return null;
|
|
689
|
-
const o = e.find((
|
|
689
|
+
const o = e.find((p) => p.id === a);
|
|
690
690
|
if (!o) return null;
|
|
691
691
|
const [n] = e.splice(i, 1), s = n.layerId, c = o.layerId, l = s !== c;
|
|
692
692
|
l && (n.layerId = c);
|
|
693
|
-
const
|
|
694
|
-
return
|
|
693
|
+
const u = e.findIndex((p) => p.id === a);
|
|
694
|
+
return u === -1 ? e.push(n) : e.splice(r ? u : u + 1, 0, n), { feicao: n, camadaOrigemId: s, camadaDestinoId: c, mudouDeCamada: l };
|
|
695
|
+
}
|
|
696
|
+
function R(e) {
|
|
697
|
+
return `L:${e}`;
|
|
698
|
+
}
|
|
699
|
+
function O(e) {
|
|
700
|
+
return `F:${e}`;
|
|
701
|
+
}
|
|
702
|
+
function Za(e, t, a) {
|
|
703
|
+
if (!a || a.length === 0)
|
|
704
|
+
return [
|
|
705
|
+
...e.map((s) => ({ tipo: "layer", nodo: s })),
|
|
706
|
+
...t.map((s) => ({ tipo: "feature", feicao: s }))
|
|
707
|
+
];
|
|
708
|
+
const r = new Map(e.map((s) => [s.camada.id, s])), i = new Map(t.map((s) => [s.id, s])), o = /* @__PURE__ */ new Set(), n = [];
|
|
709
|
+
for (const s of a)
|
|
710
|
+
if (!o.has(s)) {
|
|
711
|
+
if (s.startsWith("L:")) {
|
|
712
|
+
const c = s.slice(2), l = r.get(c);
|
|
713
|
+
l && (o.add(s), n.push({ tipo: "layer", nodo: l }));
|
|
714
|
+
} else if (s.startsWith("F:")) {
|
|
715
|
+
const c = s.slice(2), l = i.get(c);
|
|
716
|
+
l && (o.add(s), n.push({ tipo: "feature", feicao: l }));
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
for (const s of e) {
|
|
720
|
+
const c = R(s.camada.id);
|
|
721
|
+
o.has(c) || (o.add(c), n.push({ tipo: "layer", nodo: s }));
|
|
722
|
+
}
|
|
723
|
+
for (const s of t) {
|
|
724
|
+
const c = O(s.id);
|
|
725
|
+
o.has(c) || (o.add(c), n.push({ tipo: "feature", feicao: s }));
|
|
726
|
+
}
|
|
727
|
+
return n;
|
|
728
|
+
}
|
|
729
|
+
function me(e, t, a, r) {
|
|
730
|
+
const i = a.filter((u) => u.parentId === t).map((u) => u.id), o = r.filter((u) => u.layerId === t).map((u) => u.id), n = /* @__PURE__ */ new Set([
|
|
731
|
+
...i.map(R),
|
|
732
|
+
...o.map(O)
|
|
733
|
+
]), s = e.get(t), c = [], l = /* @__PURE__ */ new Set();
|
|
734
|
+
if (s)
|
|
735
|
+
for (const u of s)
|
|
736
|
+
n.has(u) && !l.has(u) && (l.add(u), c.push(u));
|
|
737
|
+
for (const u of i) {
|
|
738
|
+
const p = R(u);
|
|
739
|
+
l.has(p) || (l.add(p), c.push(p));
|
|
740
|
+
}
|
|
741
|
+
for (const u of o) {
|
|
742
|
+
const p = O(u);
|
|
743
|
+
l.has(p) || (l.add(p), c.push(p));
|
|
744
|
+
}
|
|
745
|
+
return c;
|
|
746
|
+
}
|
|
747
|
+
function ge(e, t, a, r) {
|
|
748
|
+
const i = e.filter((n) => n !== t), o = i.indexOf(a);
|
|
749
|
+
o === -1 ? i.push(t) : i.splice(r ? o : o + 1, 0, t), e.length = 0, e.push(...i);
|
|
750
|
+
}
|
|
751
|
+
function _(e, t, a) {
|
|
752
|
+
if (!t) return;
|
|
753
|
+
const r = e.get(t);
|
|
754
|
+
if (!r) return;
|
|
755
|
+
const i = r.filter((o) => o !== a);
|
|
756
|
+
i.length === 0 ? e.delete(t) : e.set(t, i);
|
|
757
|
+
}
|
|
758
|
+
function et(e, t) {
|
|
759
|
+
const a = t.filter((n) => n.startsWith("L:")).map((n) => n.slice(2));
|
|
760
|
+
if (a.length < 2) return;
|
|
761
|
+
const r = new Set(a), i = [], o = /* @__PURE__ */ new Map();
|
|
762
|
+
for (let n = 0; n < e.length; n++)
|
|
763
|
+
r.has(e[n].id) && (i.push(n), o.set(e[n].id, e[n]));
|
|
764
|
+
if (i.length === a.length)
|
|
765
|
+
for (let n = 0; n < i.length; n++) {
|
|
766
|
+
const s = o.get(a[n]);
|
|
767
|
+
s && (e[i[n]] = s);
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
function at(e, t) {
|
|
771
|
+
const a = t.filter((n) => n.startsWith("F:")).map((n) => n.slice(2));
|
|
772
|
+
if (a.length < 2) return;
|
|
773
|
+
const r = new Set(a), i = [], o = /* @__PURE__ */ new Map();
|
|
774
|
+
for (let n = 0; n < e.length; n++)
|
|
775
|
+
r.has(e[n].id) && (i.push(n), o.set(e[n].id, e[n]));
|
|
776
|
+
if (i.length === a.length)
|
|
777
|
+
for (let n = 0; n < i.length; n++) {
|
|
778
|
+
const s = o.get(a[n]);
|
|
779
|
+
s && (e[i[n]] = s);
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
function Re(e, t, a, r, i, o) {
|
|
783
|
+
if (!r || !i) return null;
|
|
784
|
+
const n = e.find((p) => p.id === r), s = t.find((p) => p.id === i);
|
|
785
|
+
if (!n || !s || !s.layerId) return null;
|
|
786
|
+
const c = s.layerId;
|
|
787
|
+
if (c === r || N(e, c, r)) return null;
|
|
788
|
+
const l = n.parentId !== void 0 ? n.parentId : null;
|
|
789
|
+
l && l !== c && _(a, l, R(r)), n.parentId = c;
|
|
790
|
+
const u = me(a, c, e, t);
|
|
791
|
+
return ge(u, R(r), O(i), o), a.set(c, u), et(e, u), {
|
|
792
|
+
tipo: l !== c ? "hierarquia" : "ordem",
|
|
793
|
+
camada: n,
|
|
794
|
+
parentAnteriorId: l,
|
|
795
|
+
novoParentId: c
|
|
796
|
+
};
|
|
695
797
|
}
|
|
696
|
-
function
|
|
798
|
+
function tt(e, t, a, r, i, o) {
|
|
799
|
+
if (!r || !i) return null;
|
|
800
|
+
const n = t.find((d) => d.id === r), s = e.find((d) => d.id === i);
|
|
801
|
+
if (!n || !s || !s.parentId) return null;
|
|
802
|
+
const c = s.parentId, l = n.layerId, u = l !== c;
|
|
803
|
+
u && (_(a, l, O(r)), n.layerId = c);
|
|
804
|
+
const p = me(a, c, e, t);
|
|
805
|
+
return ge(p, O(r), R(i), o), a.set(c, p), at(t, p), { feicao: n, camadaOrigemId: l, camadaDestinoId: c, mudouDeCamada: u };
|
|
806
|
+
}
|
|
807
|
+
function je(e, t, a, r, i, o, n, s) {
|
|
808
|
+
const c = R(r);
|
|
809
|
+
if (n && (n !== s || o === "dentro") && _(a, n, c), o !== "dentro" && s && a.has(s)) {
|
|
810
|
+
const l = me(a, s, e, t);
|
|
811
|
+
ge(l, c, R(i), o === "acima"), a.set(s, l);
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
function rt(e, t, a, r, i, o, n, s) {
|
|
815
|
+
const c = O(r);
|
|
816
|
+
if (n && n !== s && _(a, n, c), s && a.has(s)) {
|
|
817
|
+
const l = me(a, s, e, t);
|
|
818
|
+
ge(l, c, O(i), o), a.set(s, l);
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
function it(e, t, a, r) {
|
|
822
|
+
const i = O(t);
|
|
823
|
+
if (_(e, a, i), r && e.has(r)) {
|
|
824
|
+
const o = e.get(r);
|
|
825
|
+
o.includes(i) || o.push(i);
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
function ot(e) {
|
|
697
829
|
const {
|
|
698
830
|
camadas: t,
|
|
699
831
|
feicoes: a,
|
|
@@ -704,60 +836,59 @@ function Ua(e) {
|
|
|
704
836
|
editingLayerId: s,
|
|
705
837
|
editingFeatureId: c,
|
|
706
838
|
searchQuery: l,
|
|
707
|
-
titulo:
|
|
708
|
-
mostrarBusca:
|
|
709
|
-
limitesPorCamada:
|
|
710
|
-
limiteFeicoesPorCamada: f =
|
|
711
|
-
mostrarBotaoColapsar: m = !1
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
839
|
+
titulo: u = "CAMADAS",
|
|
840
|
+
mostrarBusca: p = !0,
|
|
841
|
+
limitesPorCamada: d,
|
|
842
|
+
limiteFeicoesPorCamada: f = Se,
|
|
843
|
+
mostrarBotaoColapsar: m = !1,
|
|
844
|
+
ordemFilhosPorPai: h
|
|
845
|
+
} = e, v = (l || "").trim().toLowerCase(), g = la(t, a, v), w = /* @__PURE__ */ new Map();
|
|
846
|
+
for (let x = 0; x < a.length; x++) {
|
|
847
|
+
const y = a[x];
|
|
848
|
+
if (!y || !y.id) continue;
|
|
849
|
+
const P = y.layerId || "";
|
|
850
|
+
w.has(P) || w.set(P, []), w.get(P).push(y);
|
|
851
|
+
}
|
|
852
|
+
const k = fe(t), L = t.every((x) => x.visible !== !1), A = t.length > 0 && t.every((x) => i.has(x.id)), S = p ? `
|
|
720
853
|
<div class="ui-tree-search-wrapper" part="busca">
|
|
721
|
-
<span class="ui-tree-search-icon">${
|
|
722
|
-
<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="${
|
|
854
|
+
<span class="ui-tree-search-icon">${b.busca}</span>
|
|
855
|
+
<input type="text" class="ui-tree-search-input" id="input-layer-search" aria-label="Buscar camada ou feição" placeholder="Buscar camada ou feição..." value="${M(
|
|
723
856
|
l
|
|
724
857
|
)}" />
|
|
725
|
-
${l ? `<button class="ui-tree-search-clear" id="btn-clear-layer-search" title="Limpar busca" aria-label="Limpar busca">${
|
|
858
|
+
${l ? `<button class="ui-tree-search-clear" id="btn-clear-layer-search" title="Limpar busca" aria-label="Limpar busca">${b.fechar}</button>` : ""}
|
|
726
859
|
</div>
|
|
727
|
-
` : "",
|
|
860
|
+
` : "", F = `
|
|
728
861
|
<div class="ui-tree-toolbar" part="toolbar">
|
|
729
862
|
<div class="ui-tree-title-group">
|
|
730
|
-
<span class="ui-tree-section-title">${
|
|
863
|
+
<span class="ui-tree-section-title">${M(u || "CAMADAS")}</span>
|
|
731
864
|
<span class="ui-tree-count-badge">${t.length}</span>
|
|
732
865
|
</div>
|
|
733
866
|
<div class="ui-tree-actions">
|
|
734
|
-
<button id="btn-toggle-all-vis" class="ui-tree-action-btn" title="${
|
|
735
|
-
${
|
|
867
|
+
<button id="btn-toggle-all-vis" class="ui-tree-action-btn" title="${L ? "Ocultar Todas as Camadas" : "Exibir Todas as Camadas"}" aria-label="${L ? "Ocultar Todas as Camadas" : "Exibir Todas as Camadas"}">
|
|
868
|
+
${L ? b.olhoAberto : b.olhoFechado}
|
|
736
869
|
</button>
|
|
737
|
-
<button id="btn-toggle-all-expand" class="ui-tree-action-btn" aria-label="${
|
|
738
|
-
<span class="ui-chevron-icon ${
|
|
870
|
+
<button id="btn-toggle-all-expand" class="ui-tree-action-btn" aria-label="${A ? "Recolher Todos os Grupos" : "Expandir Todos os Grupos"}" title="${A ? "Recolher Todos os Grupos" : "Expandir Todos os Grupos"}">
|
|
871
|
+
<span class="ui-chevron-icon ${A ? "open" : ""}">${b.chevronDir}</span>
|
|
739
872
|
</button>
|
|
740
|
-
${m ? `<button id="btn-colapsar" class="ui-camadas-btn-colapsar" title="Recolher painel" aria-label="Recolher painel">${
|
|
873
|
+
${m ? `<button id="btn-colapsar" class="ui-camadas-btn-colapsar" title="Recolher painel" aria-label="Recolher painel">${b.recolherPainel}</button>` : ""}
|
|
741
874
|
</div>
|
|
742
875
|
</div>
|
|
743
|
-
${
|
|
744
|
-
`,
|
|
745
|
-
const
|
|
746
|
-
if (
|
|
747
|
-
const
|
|
748
|
-
(
|
|
749
|
-
).join(""),
|
|
750
|
-
|
|
751
|
-
).join(""), Aa = ce ? `
|
|
752
|
-
<div class="ui-layer-settings-drawer" id="settings-drawer-${S}" part="drawer" style="--drawer-cor-camada: ${O};">
|
|
876
|
+
${S}
|
|
877
|
+
`, B = (x) => {
|
|
878
|
+
const y = x.camada;
|
|
879
|
+
if (g && !g.camadasVisiveis.has(y.id)) return "";
|
|
880
|
+
const P = x.depth, Y = x.subcamadas, Me = g ? Y.filter(($) => g.camadasVisiveis.has($.camada.id)) : Y, te = !!(y.isGroup || Y.length > 0), C = M(y.id), re = M(y.name || (te ? "Novo Grupo" : "Camada")), H = K(y.color, "#00E08A"), ie = y.visible !== !1, oe = y.locked === !0, ne = v ? !0 : i.has(y.id), he = n === y.id, ve = r === y.id, G = k.get(y.id), xa = (G == null ? void 0 : G.ocultaPorAncestral) === !0, wa = (G == null ? void 0 : G.travadaPorAncestral) === !0, j = g ? g.feicoesPorCamada.get(y.id) || [] : w.get(y.id) || [], se = g ? j : ae(t, a, y.id), Pe = se.length > 0 && se.every(($) => o.has($.id)), Aa = !Pe && se.some(($) => o.has($.id)), be = (d == null ? void 0 : d.get(y.id)) ?? f, Ea = j.slice(0, be), Ia = j.length > be, ka = aa(y, P, G), La = ($) => sa($, ka, o.has($.id), c === $.id), Ca = Ia ? oa(C, be, j.length) : "", ze = Number(y.opacity ?? 1), Be = Number.isFinite(ze) ? Math.min(1, Math.max(0, ze)) : 1, Sa = Math.round(Be * 100), Fa = t.filter(($) => $.id !== y.id && !N(t, $.id, y.id)).map(
|
|
881
|
+
($) => `<option value="${M($.id)}" ${y.parentId === $.id ? "selected" : ""}>${$.isGroup ? "📁 " : ""}${M($.name)}</option>`
|
|
882
|
+
).join(""), $a = he ? `
|
|
883
|
+
<div class="ui-layer-settings-drawer" id="settings-drawer-${C}" part="drawer" style="--drawer-cor-camada: ${H};">
|
|
753
884
|
<div class="ui-drawer-header">
|
|
754
885
|
<div class="ui-drawer-header-left">
|
|
755
|
-
<span class="ui-drawer-icon">${
|
|
886
|
+
<span class="ui-drawer-icon">${b.engrenagem}</span>
|
|
756
887
|
<span class="ui-drawer-title">Configurações da Camada</span>
|
|
757
|
-
<span class="ui-drawer-layer-chip" title="${
|
|
888
|
+
<span class="ui-drawer-layer-chip" title="${re}">${re}</span>
|
|
758
889
|
</div>
|
|
759
|
-
<button type="button" class="ui-drawer-btn-fechar" data-layer-settings-close="${
|
|
760
|
-
${
|
|
890
|
+
<button type="button" class="ui-drawer-btn-fechar" data-layer-settings-close="${C}" title="Fechar configurações (Esc)" aria-label="Fechar configurações">
|
|
891
|
+
${b.fechar}
|
|
761
892
|
</button>
|
|
762
893
|
</div>
|
|
763
894
|
|
|
@@ -769,9 +900,9 @@ function Ua(e) {
|
|
|
769
900
|
</div>
|
|
770
901
|
<div class="ui-drawer-color-group">
|
|
771
902
|
<label class="ui-drawer-color-pill" title="Clique para alterar a cor da camada">
|
|
772
|
-
<span class="ui-drawer-color-sample" id="sample-color-${
|
|
773
|
-
<span class="ui-drawer-color-hex" id="hex-color-${
|
|
774
|
-
<input type="color" aria-label="Cor da camada" data-layer-color-picker="${
|
|
903
|
+
<span class="ui-drawer-color-sample" id="sample-color-${C}" style="background-color: ${H};"></span>
|
|
904
|
+
<span class="ui-drawer-color-hex" id="hex-color-${C}">${H.toUpperCase()}</span>
|
|
905
|
+
<input type="color" aria-label="Cor da camada" data-layer-color-picker="${C}" value="${Ga(H, "#00e08a")}" class="ui-drawer-color-native" />
|
|
775
906
|
</label>
|
|
776
907
|
</div>
|
|
777
908
|
</div>
|
|
@@ -780,10 +911,10 @@ function Ua(e) {
|
|
|
780
911
|
<div class="ui-drawer-row">
|
|
781
912
|
<div class="ui-drawer-row-label">
|
|
782
913
|
<span>Opacidade</span>
|
|
783
|
-
<span class="ui-drawer-badge" id="badge-op-${
|
|
914
|
+
<span class="ui-drawer-badge" id="badge-op-${C}">${Sa}%</span>
|
|
784
915
|
</div>
|
|
785
916
|
<div class="ui-drawer-slider-container">
|
|
786
|
-
<input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(
|
|
917
|
+
<input type="range" aria-label="Opacidade da camada" min="0.05" max="1" step="0.05" value="${Number(Be) || 0}" data-layer-opacity-slider="${C}" class="ui-drawer-slider" />
|
|
787
918
|
</div>
|
|
788
919
|
</div>
|
|
789
920
|
|
|
@@ -793,9 +924,9 @@ function Ua(e) {
|
|
|
793
924
|
<span>Pertence ao Grupo</span>
|
|
794
925
|
</div>
|
|
795
926
|
<div class="ui-drawer-select-wrapper">
|
|
796
|
-
<select class="ui-drawer-select" data-layer-parent-select="${
|
|
797
|
-
<option value="" ${
|
|
798
|
-
${
|
|
927
|
+
<select class="ui-drawer-select" data-layer-parent-select="${C}" aria-label="Grupo pai da camada">
|
|
928
|
+
<option value="" ${y.parentId ? "" : "selected"}>(Nenhum - Nível Principal)</option>
|
|
929
|
+
${Fa}
|
|
799
930
|
</select>
|
|
800
931
|
</div>
|
|
801
932
|
</div>
|
|
@@ -803,76 +934,78 @@ function Ua(e) {
|
|
|
803
934
|
|
|
804
935
|
<div class="ui-drawer-footer">
|
|
805
936
|
<div class="ui-drawer-meta-info">
|
|
806
|
-
<span>${
|
|
937
|
+
<span>${Y.length > 0 ? `${Y.length} subcamadas · ` : ""}${j.length} ${j.length === 1 ? "feição" : "feições"}</span>
|
|
807
938
|
</div>
|
|
808
939
|
<div class="ui-drawer-actions">
|
|
809
|
-
<button type="button" class="ui-drawer-btn-sublayer" data-add-sublayer="${
|
|
810
|
-
${
|
|
940
|
+
<button type="button" class="ui-drawer-btn-sublayer" data-add-sublayer="${C}" title="Adicionar nova camada dentro desta">
|
|
941
|
+
${b.mais} Subcamada
|
|
811
942
|
</button>
|
|
812
|
-
<button type="button" class="ui-drawer-btn-danger" data-delete-layer="${
|
|
813
|
-
${
|
|
943
|
+
<button type="button" class="ui-drawer-btn-danger" data-delete-layer="${C}" title="Excluir esta camada e suas feições">
|
|
944
|
+
${b.lixeira}
|
|
814
945
|
<span class="ui-btn-label">Excluir</span>
|
|
815
946
|
</button>
|
|
816
947
|
</div>
|
|
817
948
|
</div>
|
|
818
949
|
</div>
|
|
819
|
-
` : "",
|
|
950
|
+
` : "", Ma = Za(
|
|
951
|
+
Me,
|
|
952
|
+
Ea,
|
|
953
|
+
h == null ? void 0 : h.get(y.id)
|
|
954
|
+
).map(($) => $.tipo === "layer" ? B($.nodo) : La($.feicao)).join("");
|
|
820
955
|
return `
|
|
821
|
-
<div class="ui-layer-group ${
|
|
822
|
-
<div class="ui-layer-row ${
|
|
823
|
-
<div class="ui-col ui-col-drag" title="Arrastar para reordenar Z-Index">${
|
|
956
|
+
<div class="ui-layer-group ${P > 0 ? "is-sublayer-group" : ""}" data-layer-id="${C}" data-layer-depth="${P}" role="treeitem" aria-level="${P + 1}" aria-expanded="${ne}" part="grupo" style="--layer-active-color: ${H};">
|
|
957
|
+
<div class="ui-layer-row ${ie ? "" : "hidden-layer"} ${ve ? "active-drawing-layer" : ""} ${P > 0 ? "is-sublayer" : ""} ${te ? "is-group-row" : ""} ${xa ? "herdado-oculto" : ""} ${wa ? "herdado-travado" : ""}" data-layer-row="${C}" data-layer-id="${C}" tabindex="-1" draggable="true" part="${ve ? "camada camada-ativa" : "camada"}" ${ve ? 'aria-current="true"' : ""} style="--layer-depth: ${P};">
|
|
958
|
+
<div class="ui-col ui-col-drag" title="Arrastar para reordenar Z-Index">${b.dragHandle}</div>
|
|
824
959
|
|
|
825
|
-
<div class="ui-col ui-col-eye" data-layer-eye="${
|
|
826
|
-
${
|
|
960
|
+
<div class="ui-col ui-col-eye" data-layer-eye="${C}" role="button" tabindex="0" aria-label="${ie ? "Ocultar Camada" : "Exibir Camada"}" title="${ie ? "Ocultar Camada" : "Exibir Camada"}">
|
|
961
|
+
${ie ? b.olhoAberto : b.olhoFechado}
|
|
827
962
|
</div>
|
|
828
963
|
|
|
829
|
-
<div class="ui-col ui-col-lock ${
|
|
830
|
-
${
|
|
964
|
+
<div class="ui-col ui-col-lock ${oe ? "" : "ui-lock-open"}" data-layer-lock="${C}" role="button" tabindex="0" aria-label="${oe ? "Desbloquear Camada" : "Bloquear Camada"}" title="${oe ? "Desbloquear Camada" : "Bloquear Camada"}">
|
|
965
|
+
${oe ? b.cadeadoTrancado : b.cadeadoAberto}
|
|
831
966
|
</div>
|
|
832
967
|
|
|
833
|
-
<div class="ui-col ui-col-colorbar ui-col-colorbar-editavel" data-layer-color="${
|
|
968
|
+
<div class="ui-col ui-col-colorbar ui-col-colorbar-editavel" data-layer-color="${C}" role="button" tabindex="0" style="background: ${H};" aria-label="Alterar cor da camada" title="Alterar cor da camada (usada no destaque de seleção)"></div>
|
|
834
969
|
|
|
835
|
-
<div class="ui-col ui-col-chevron" data-layer-expand="${
|
|
836
|
-
<span class="ui-chevron-icon ${
|
|
970
|
+
<div class="ui-col ui-col-chevron" data-layer-expand="${C}" role="button" tabindex="0" aria-label="${ne ? "Recolher grupo" : "Expandir grupo"}">
|
|
971
|
+
<span class="ui-chevron-icon ${ne ? "open" : ""}">${b.chevronDir}</span>
|
|
837
972
|
</div>
|
|
838
973
|
|
|
839
|
-
<div class="ui-col ui-col-name" data-layer-name-trigger="${
|
|
840
|
-
${s ===
|
|
841
|
-
|
|
842
|
-
${Qe(te.length, R.length, T.length, _)}`}
|
|
974
|
+
<div class="ui-col ui-col-name" data-layer-name-trigger="${C}" title="Clique para ativar camada de desenho | Duplo clique para renomear">
|
|
975
|
+
${s === y.id ? `<input type="text" class="ui-inline-rename-input" data-inline-layer-input="${C}" value="${re}" />` : `<span class="ui-name-text">${re}</span>
|
|
976
|
+
${ra(se.length, j.length, Y.length, te)}`}
|
|
843
977
|
</div>
|
|
844
978
|
|
|
845
979
|
<div class="ui-col ui-col-actions">
|
|
846
|
-
<button class="ui-micro-btn" data-layer-fit="${
|
|
847
|
-
<button class="ui-micro-btn ${
|
|
980
|
+
<button class="ui-micro-btn" data-layer-fit="${C}" title="Enquadrar camada no mapa" aria-label="Enquadrar camada no mapa">${b.alvoEnquadrar}</button>
|
|
981
|
+
<button class="ui-micro-btn ${he ? "active" : ""}" data-layer-settings="${C}" title="Ajustar cor, hierarquia, opacidade e excluir" aria-label="Configurações da camada" aria-expanded="${he}">${b.engrenagem}</button>
|
|
848
982
|
</div>
|
|
849
983
|
|
|
850
|
-
<div class="ui-col ui-col-target" data-layer-target="${
|
|
851
|
-
<div class="ui-target-circle ${
|
|
984
|
+
<div class="ui-col ui-col-target" data-layer-target="${C}" role="button" tabindex="0" aria-label="Selecionar todas as feições deste grupo" title="Selecionar todas as feições deste grupo">
|
|
985
|
+
<div class="ui-target-circle ${Pe ? "selected" : Aa ? "partial" : ""}"></div>
|
|
852
986
|
</div>
|
|
853
987
|
</div>
|
|
854
988
|
|
|
855
|
-
${
|
|
989
|
+
${$a}
|
|
856
990
|
|
|
857
|
-
<div class="ui-children-container ${
|
|
858
|
-
${
|
|
859
|
-
${
|
|
860
|
-
${
|
|
861
|
-
${Ie.length === 0 && R.length === 0 ? Je(_) : ""}
|
|
991
|
+
<div class="ui-children-container ${P > 0 ? "is-subchildren" : ""}" role="group" style="--parent-depth: ${P}; --parent-layer-color: ${H}; display: ${ne ? "block" : "none"};">
|
|
992
|
+
${Ma}
|
|
993
|
+
${Ca}
|
|
994
|
+
${Me.length === 0 && j.length === 0 ? na(te) : ""}
|
|
862
995
|
</div>
|
|
863
996
|
</div>
|
|
864
997
|
`;
|
|
865
|
-
},
|
|
998
|
+
}, E = pe(t), z = g && g.camadasVisiveis.size === 0 ? `<div class="ui-search-empty" role="status">Nenhum resultado para “${M((l || "").trim())}”</div>` : E.map((x) => B(x)).join("");
|
|
866
999
|
return `
|
|
867
|
-
${
|
|
1000
|
+
${F}
|
|
868
1001
|
<div class="ui-panel-box">
|
|
869
1002
|
<div class="ui-layer-tree" id="ui-layer-tree-mount" role="tree" aria-label="Camadas e feições" aria-multiselectable="true" part="arvore">
|
|
870
|
-
${
|
|
1003
|
+
${z}
|
|
871
1004
|
</div>
|
|
872
1005
|
</div>
|
|
873
1006
|
`;
|
|
874
1007
|
}
|
|
875
|
-
function
|
|
1008
|
+
function nt(e) {
|
|
876
1009
|
return [
|
|
877
1010
|
{
|
|
878
1011
|
gatilho: "data-layer-name-trigger",
|
|
@@ -902,46 +1035,46 @@ function Va(e) {
|
|
|
902
1035
|
}
|
|
903
1036
|
];
|
|
904
1037
|
}
|
|
905
|
-
function
|
|
906
|
-
for (const r of
|
|
1038
|
+
function Ne(e, t, a = t) {
|
|
1039
|
+
for (const r of nt(e))
|
|
907
1040
|
a.querySelectorAll(`[${r.gatilho}]`).forEach((i) => {
|
|
908
1041
|
i.addEventListener("dblclick", (o) => {
|
|
909
1042
|
o.stopPropagation();
|
|
910
1043
|
const n = i.getAttribute(r.gatilho);
|
|
911
1044
|
if (!n) return;
|
|
912
1045
|
r.marcarEditando(n), e.solicitarRenderizacao();
|
|
913
|
-
const s =
|
|
1046
|
+
const s = D(t, r.input, n);
|
|
914
1047
|
if (!s) return;
|
|
915
1048
|
s.focus(), s.select();
|
|
916
1049
|
let c = !1;
|
|
917
|
-
const l = (
|
|
918
|
-
var
|
|
1050
|
+
const l = (u, p = !1) => {
|
|
1051
|
+
var d, f;
|
|
919
1052
|
if (!c) {
|
|
920
|
-
if (c = !0, r.marcarEditando(null),
|
|
1053
|
+
if (c = !0, r.marcarEditando(null), u) {
|
|
921
1054
|
const m = r.aplicar(n, s.value.trim());
|
|
922
|
-
m && (m.salvar && ((
|
|
1055
|
+
m && (m.salvar && ((d = e.salvarLembrancaEstado) == null || d.call(e)), r.emitir(m.detalhe));
|
|
923
1056
|
}
|
|
924
|
-
e.solicitarRenderizacao(),
|
|
1057
|
+
e.solicitarRenderizacao(), p && ((f = D(t, r.linha, n)) == null || f.focus());
|
|
925
1058
|
}
|
|
926
1059
|
};
|
|
927
|
-
s.addEventListener("keydown", (
|
|
928
|
-
|
|
1060
|
+
s.addEventListener("keydown", (u) => {
|
|
1061
|
+
u.key === "Enter" ? (u.preventDefault(), l(!0, !0)) : u.key === "Escape" && (u.preventDefault(), l(!1, !0));
|
|
929
1062
|
}), s.addEventListener("blur", () => l(!0));
|
|
930
1063
|
});
|
|
931
1064
|
});
|
|
932
1065
|
}
|
|
933
|
-
const
|
|
934
|
-
class
|
|
1066
|
+
const st = ["dragging", "drop-above", "drop-below", "drop-into"];
|
|
1067
|
+
class lt {
|
|
935
1068
|
constructor(t, a) {
|
|
936
|
-
|
|
937
|
-
|
|
1069
|
+
I(this, "host");
|
|
1070
|
+
I(this, "shadow");
|
|
938
1071
|
/** Cancela um arraste por toque em andamento (remove os ouvintes de `window`). */
|
|
939
|
-
|
|
1072
|
+
I(this, "cancelarToque", null);
|
|
940
1073
|
/**
|
|
941
1074
|
* Arraste HTML5 em andamento. Fica no gerenciador (e não numa closure de `bindDragAndDrop`) para que linhas
|
|
942
1075
|
* ligadas depois, na atualização incremental, enxerguem o arraste iniciado numa linha mais antiga.
|
|
943
1076
|
*/
|
|
944
|
-
|
|
1077
|
+
I(this, "arraste", {
|
|
945
1078
|
tipo: null,
|
|
946
1079
|
camadaId: null,
|
|
947
1080
|
feicaoId: null
|
|
@@ -957,11 +1090,11 @@ class Ka {
|
|
|
957
1090
|
(t = this.cancelarToque) == null || t.call(this), this.cancelarToque = null;
|
|
958
1091
|
}
|
|
959
1092
|
bindInlineRename() {
|
|
960
|
-
|
|
1093
|
+
Ne(this.host, this.shadow);
|
|
961
1094
|
}
|
|
962
1095
|
limparClassesDeArraste() {
|
|
963
1096
|
this.shadow.querySelectorAll(".ui-layer-row, .ui-feat-row, .ui-layer-group").forEach((t) => {
|
|
964
|
-
t.classList.remove(...
|
|
1097
|
+
t.classList.remove(...st);
|
|
965
1098
|
});
|
|
966
1099
|
}
|
|
967
1100
|
/** Depois de qualquer mudança na ordem/hierarquia de camadas. */
|
|
@@ -974,7 +1107,8 @@ class Ka {
|
|
|
974
1107
|
feicaoId: t.feicao.id,
|
|
975
1108
|
camadaOrigemId: t.camadaOrigemId,
|
|
976
1109
|
camadaDestinoId: t.camadaDestinoId,
|
|
977
|
-
feicao: t.feicao
|
|
1110
|
+
feicao: t.feicao,
|
|
1111
|
+
feicoes: [...this.host.feicoes]
|
|
978
1112
|
});
|
|
979
1113
|
}
|
|
980
1114
|
/** Camada travada (ou sob grupo travado) ou feição individualmente travada não pode ser movida entre camadas. */
|
|
@@ -982,7 +1116,7 @@ class Ka {
|
|
|
982
1116
|
const r = this.host.feicoes.find((n) => n.id === t), i = r == null ? void 0 : r.layerId;
|
|
983
1117
|
if (!a || i === a) return !1;
|
|
984
1118
|
if ((r == null ? void 0 : r.locked) === !0) return !0;
|
|
985
|
-
const o =
|
|
1119
|
+
const o = ce(this.host.camadas);
|
|
986
1120
|
return o.has(a) || !!i && o.has(i);
|
|
987
1121
|
}
|
|
988
1122
|
arrasteBloqueado(t) {
|
|
@@ -994,7 +1128,7 @@ class Ka {
|
|
|
994
1128
|
}
|
|
995
1129
|
/** Atualização incremental: liga renomear e arraste só nas linhas de feição novas dentro de `raiz`. */
|
|
996
1130
|
bindLinhasFeicao(t) {
|
|
997
|
-
|
|
1131
|
+
Ne(this.host, this.shadow, t), this.vincularArrasteFeicoes(t);
|
|
998
1132
|
}
|
|
999
1133
|
vincularArrasteCamadas(t) {
|
|
1000
1134
|
t.querySelectorAll('.ui-layer-row[draggable="true"]').forEach((a) => {
|
|
@@ -1010,35 +1144,72 @@ class Ka {
|
|
|
1010
1144
|
const o = i;
|
|
1011
1145
|
if (o.preventDefault(), o.stopPropagation(), o.dataTransfer && (o.dataTransfer.dropEffect = "move"), this.arraste.tipo === "layer") {
|
|
1012
1146
|
if (this.arraste.camadaId === r) return;
|
|
1013
|
-
const n = a.getBoundingClientRect(), s =
|
|
1147
|
+
const n = a.getBoundingClientRect(), s = Ee((o.clientY - n.top) / n.height);
|
|
1014
1148
|
a.classList.toggle("drop-above", s === "acima"), a.classList.toggle("drop-below", s === "abaixo"), a.classList.toggle("drop-into", s === "dentro");
|
|
1015
|
-
} else this.arraste.tipo === "feature"
|
|
1149
|
+
} else if (this.arraste.tipo === "feature") {
|
|
1150
|
+
const n = this.host.camadas.find((s) => s.id === r);
|
|
1151
|
+
if (n != null && n.parentId) {
|
|
1152
|
+
const s = a.getBoundingClientRect(), c = s.height > 0 ? Ee((o.clientY - s.top) / s.height) : "dentro";
|
|
1153
|
+
a.classList.toggle("drop-above", c === "acima"), a.classList.toggle("drop-below", c === "abaixo"), a.classList.toggle("drop-into", c === "dentro");
|
|
1154
|
+
} else
|
|
1155
|
+
a.classList.remove("drop-above", "drop-below"), a.classList.add("drop-into");
|
|
1156
|
+
}
|
|
1016
1157
|
}), a.addEventListener("dragleave", (i) => {
|
|
1017
1158
|
const o = i.relatedTarget;
|
|
1018
1159
|
o && a.contains(o) || a.classList.remove("drop-above", "drop-below", "drop-into");
|
|
1019
1160
|
}), a.addEventListener("drop", (i) => {
|
|
1020
|
-
var s;
|
|
1161
|
+
var s, c, l, u, p;
|
|
1021
1162
|
const o = i;
|
|
1022
1163
|
o.preventDefault(), o.stopPropagation();
|
|
1023
1164
|
const n = a.classList.contains("drop-into") ? "dentro" : a.classList.contains("drop-above") ? "acima" : "abaixo";
|
|
1024
1165
|
if (this.limparClassesDeArraste(), this.arraste.tipo === "layer") {
|
|
1025
|
-
if (!this.arraste.camadaId || this.arraste.camadaId === r || !this.host.camadas.some((
|
|
1026
|
-
const
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1166
|
+
if (!this.arraste.camadaId || this.arraste.camadaId === r || !this.host.camadas.some((f) => f.id === this.arraste.camadaId) || !this.host.camadas.some((f) => f.id === r)) return;
|
|
1167
|
+
const d = Oe(this.host.camadas, this.arraste.camadaId, r, n);
|
|
1168
|
+
d && this.host.ordemFilhosPorPai && je(
|
|
1169
|
+
this.host.camadas,
|
|
1170
|
+
this.host.feicoes,
|
|
1171
|
+
this.host.ordemFilhosPorPai,
|
|
1172
|
+
this.arraste.camadaId,
|
|
1173
|
+
r,
|
|
1174
|
+
n,
|
|
1175
|
+
d.parentAnteriorId,
|
|
1176
|
+
d.novoParentId
|
|
1177
|
+
), (d == null ? void 0 : d.tipo) === "hierarquia" ? ((s = this.host.expandedLayers) == null || s.add(d.novoParentId), this.host.dispararEvento("ui-camada-mover-hierarquia", {
|
|
1178
|
+
camadaId: d.camada.id,
|
|
1179
|
+
novoParentId: d.novoParentId,
|
|
1180
|
+
parentAnteriorId: d.parentAnteriorId,
|
|
1181
|
+
camada: d.camada
|
|
1182
|
+
})) : d && d.parentAnteriorId !== d.novoParentId && this.host.dispararEvento("ui-camada-mover-hierarquia", {
|
|
1183
|
+
camadaId: d.camada.id,
|
|
1184
|
+
novoParentId: d.novoParentId,
|
|
1185
|
+
parentAnteriorId: d.parentAnteriorId,
|
|
1186
|
+
camada: d.camada
|
|
1037
1187
|
}), this.aposReordenarCamadas();
|
|
1038
1188
|
} else if (this.arraste.tipo === "feature") {
|
|
1039
|
-
if (!this.arraste.feicaoId
|
|
1040
|
-
const
|
|
1041
|
-
|
|
1189
|
+
if (!this.arraste.feicaoId) return;
|
|
1190
|
+
const d = this.host.camadas.find((f) => f.id === r);
|
|
1191
|
+
if (d != null && d.parentId && (n === "acima" || n === "abaixo")) {
|
|
1192
|
+
if (this.trocaEntreCamadasTravada(this.arraste.feicaoId, d.parentId) || !this.host.ordemFilhosPorPai) return;
|
|
1193
|
+
const f = tt(
|
|
1194
|
+
this.host.camadas,
|
|
1195
|
+
this.host.feicoes,
|
|
1196
|
+
this.host.ordemFilhosPorPai,
|
|
1197
|
+
this.arraste.feicaoId,
|
|
1198
|
+
r,
|
|
1199
|
+
n === "acima"
|
|
1200
|
+
);
|
|
1201
|
+
if (!f) return;
|
|
1202
|
+
this.host.dispararEvento("ui-feicoes-reordenadas", { feicoes: [...this.host.feicoes] }), f.mudouDeCamada && this.emitirFeicaoMovida(f), (l = (c = this.host).salvarLembrancaEstado) == null || l.call(c), this.host.solicitarRenderizacao();
|
|
1203
|
+
} else {
|
|
1204
|
+
if (this.trocaEntreCamadasTravada(this.arraste.feicaoId, r)) return;
|
|
1205
|
+
const f = Wa(this.host.feicoes, this.host.camadas, this.arraste.feicaoId, r);
|
|
1206
|
+
f && (this.host.ordemFilhosPorPai && it(
|
|
1207
|
+
this.host.ordemFilhosPorPai,
|
|
1208
|
+
f.feicao.id,
|
|
1209
|
+
f.camadaOrigemId,
|
|
1210
|
+
f.camadaDestinoId
|
|
1211
|
+
), this.emitirFeicaoMovida(f), (p = (u = this.host).salvarLembrancaEstado) == null || p.call(u), this.host.solicitarRenderizacao());
|
|
1212
|
+
}
|
|
1042
1213
|
}
|
|
1043
1214
|
}), a.addEventListener("dragend", () => {
|
|
1044
1215
|
this.arraste.tipo = null, this.arraste.camadaId = null, this.arraste.feicaoId = null, this.limparClassesDeArraste();
|
|
@@ -1056,22 +1227,50 @@ class Ka {
|
|
|
1056
1227
|
}
|
|
1057
1228
|
n.stopPropagation(), this.arraste.tipo = "feature", this.arraste.feicaoId = r, this.arraste.camadaId = i, n.dataTransfer && (n.dataTransfer.setData("text/plain", JSON.stringify({ type: "feature", id: r, layerId: i })), n.dataTransfer.effectAllowed = "move"), a.classList.add("dragging");
|
|
1058
1229
|
}), a.addEventListener("dragover", (o) => {
|
|
1059
|
-
const n = o;
|
|
1060
|
-
if (
|
|
1230
|
+
const n = o, s = this.arraste.tipo === "feature" && this.arraste.feicaoId !== r, c = this.arraste.tipo === "layer" && !!this.arraste.camadaId && !!i && this.arraste.camadaId !== i && !N(this.host.camadas, i, this.arraste.camadaId);
|
|
1231
|
+
if (!s && !c) return;
|
|
1061
1232
|
n.preventDefault(), n.stopPropagation(), n.dataTransfer && (n.dataTransfer.dropEffect = "move");
|
|
1062
|
-
const
|
|
1063
|
-
a.classList.toggle("drop-above",
|
|
1233
|
+
const l = a.getBoundingClientRect(), u = n.clientY - l.top < l.height / 2;
|
|
1234
|
+
a.classList.toggle("drop-above", u), a.classList.toggle("drop-below", !u);
|
|
1064
1235
|
}), a.addEventListener("dragleave", (o) => {
|
|
1065
1236
|
const n = o.relatedTarget;
|
|
1066
1237
|
n && a.contains(n) || a.classList.remove("drop-above", "drop-below");
|
|
1067
1238
|
}), a.addEventListener("drop", (o) => {
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1239
|
+
var l, u, p;
|
|
1240
|
+
const n = o, s = a.getBoundingClientRect(), c = a.classList.contains("drop-above") ? !0 : a.classList.contains("drop-below") ? !1 : s.height > 0 && n.clientY - s.top < s.height / 2;
|
|
1241
|
+
if (this.arraste.tipo === "feature") {
|
|
1242
|
+
if (!this.arraste.feicaoId || this.arraste.feicaoId === r || (n.preventDefault(), n.stopPropagation(), this.limparClassesDeArraste(), this.trocaEntreCamadasTravada(this.arraste.feicaoId, i))) return;
|
|
1243
|
+
const d = Ja(this.host.feicoes, this.arraste.feicaoId, r, c);
|
|
1244
|
+
if (!d) return;
|
|
1245
|
+
this.host.ordemFilhosPorPai && rt(
|
|
1246
|
+
this.host.camadas,
|
|
1247
|
+
this.host.feicoes,
|
|
1248
|
+
this.host.ordemFilhosPorPai,
|
|
1249
|
+
this.arraste.feicaoId,
|
|
1250
|
+
r,
|
|
1251
|
+
c,
|
|
1252
|
+
d.camadaOrigemId,
|
|
1253
|
+
d.camadaDestinoId
|
|
1254
|
+
), this.host.dispararEvento("ui-feicoes-reordenadas", { feicoes: [...this.host.feicoes] }), d.mudouDeCamada && this.emitirFeicaoMovida(d), (u = (l = this.host).salvarLembrancaEstado) == null || u.call(l), this.host.solicitarRenderizacao();
|
|
1255
|
+
} else if (this.arraste.tipo === "layer") {
|
|
1256
|
+
if (!this.arraste.camadaId || !i || !this.host.ordemFilhosPorPai) return;
|
|
1257
|
+
n.preventDefault(), n.stopPropagation(), this.limparClassesDeArraste();
|
|
1258
|
+
const d = Re(
|
|
1259
|
+
this.host.camadas,
|
|
1260
|
+
this.host.feicoes,
|
|
1261
|
+
this.host.ordemFilhosPorPai,
|
|
1262
|
+
this.arraste.camadaId,
|
|
1263
|
+
r,
|
|
1264
|
+
c
|
|
1265
|
+
);
|
|
1266
|
+
if (!d) return;
|
|
1267
|
+
d.parentAnteriorId !== d.novoParentId && d.novoParentId && ((p = this.host.expandedLayers) == null || p.add(d.novoParentId), this.host.dispararEvento("ui-camada-mover-hierarquia", {
|
|
1268
|
+
camadaId: d.camada.id,
|
|
1269
|
+
novoParentId: d.novoParentId,
|
|
1270
|
+
parentAnteriorId: d.parentAnteriorId,
|
|
1271
|
+
camada: d.camada
|
|
1272
|
+
})), this.aposReordenarCamadas();
|
|
1273
|
+
}
|
|
1075
1274
|
}), a.addEventListener("dragend", (o) => {
|
|
1076
1275
|
o.stopPropagation(), this.arraste.tipo = null, this.arraste.feicaoId = null, this.arraste.camadaId = null, this.limparClassesDeArraste();
|
|
1077
1276
|
}));
|
|
@@ -1089,82 +1288,129 @@ class Ka {
|
|
|
1089
1288
|
if (!a) return;
|
|
1090
1289
|
const r = a.getAttribute("data-layer-id");
|
|
1091
1290
|
r && t.addEventListener("pointerdown", (i) => {
|
|
1092
|
-
var
|
|
1291
|
+
var p;
|
|
1093
1292
|
const o = i;
|
|
1094
1293
|
if (o.pointerType === "mouse" && o.button !== 0 || this.host.editingLayerId || this.host.editingFeatureId) return;
|
|
1095
|
-
(
|
|
1294
|
+
(p = this.cancelarToque) == null || p.call(this);
|
|
1096
1295
|
let n = null, s = "abaixo";
|
|
1097
|
-
const c = (
|
|
1098
|
-
|
|
1099
|
-
const f = this.shadow.elementFromPoint(
|
|
1100
|
-
if (n && n !== m && n.classList.remove("drop-above", "drop-below", "drop-into"), m && m !== a)
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1296
|
+
const c = (d) => {
|
|
1297
|
+
d.preventDefault(), a.classList.add("dragging");
|
|
1298
|
+
const f = this.shadow.elementFromPoint(d.clientX, d.clientY), m = f ? f.closest(".ui-layer-row, .ui-feat-row") : null;
|
|
1299
|
+
if (n && n !== m && n.classList.remove("drop-above", "drop-below", "drop-into"), m && m !== a)
|
|
1300
|
+
if (m.classList.contains("ui-feat-row")) {
|
|
1301
|
+
const v = m.getAttribute("data-feat-layer");
|
|
1302
|
+
if (!v || v === r || N(this.host.camadas, v, r)) {
|
|
1303
|
+
n = null;
|
|
1304
|
+
return;
|
|
1305
|
+
}
|
|
1306
|
+
n = m;
|
|
1307
|
+
const g = m.getBoundingClientRect(), w = g.height > 0 && d.clientY - g.top < g.height / 2;
|
|
1308
|
+
s = w ? "acima" : "abaixo", m.classList.toggle("drop-above", w), m.classList.toggle("drop-below", !w), m.classList.remove("drop-into");
|
|
1309
|
+
} else {
|
|
1310
|
+
n = m;
|
|
1311
|
+
const v = m.getBoundingClientRect();
|
|
1312
|
+
s = v.height > 0 ? Ee((d.clientY - v.top) / v.height) : "abaixo", m.classList.toggle("drop-above", s === "acima"), m.classList.toggle("drop-below", s === "abaixo"), m.classList.toggle("drop-into", s === "dentro");
|
|
1313
|
+
}
|
|
1314
|
+
else
|
|
1105
1315
|
n = null;
|
|
1106
1316
|
}, l = () => {
|
|
1107
|
-
window.removeEventListener("pointermove", c), window.removeEventListener("pointerup",
|
|
1108
|
-
},
|
|
1109
|
-
var
|
|
1317
|
+
window.removeEventListener("pointermove", c), window.removeEventListener("pointerup", u), window.removeEventListener("pointercancel", u), this.cancelarToque = null;
|
|
1318
|
+
}, u = () => {
|
|
1319
|
+
var h, v;
|
|
1110
1320
|
l();
|
|
1111
|
-
const
|
|
1112
|
-
if (this.limparClassesDeArraste(),
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
parentAnteriorId
|
|
1123
|
-
|
|
1321
|
+
const d = n == null ? void 0 : n.getAttribute("data-layer-id"), f = n == null ? void 0 : n.getAttribute("data-feat-row");
|
|
1322
|
+
if (this.limparClassesDeArraste(), f && this.host.ordemFilhosPorPai) {
|
|
1323
|
+
const g = Re(
|
|
1324
|
+
this.host.camadas,
|
|
1325
|
+
this.host.feicoes,
|
|
1326
|
+
this.host.ordemFilhosPorPai,
|
|
1327
|
+
r,
|
|
1328
|
+
f,
|
|
1329
|
+
s === "acima"
|
|
1330
|
+
);
|
|
1331
|
+
if (!g) return;
|
|
1332
|
+
g.parentAnteriorId !== g.novoParentId && g.novoParentId && ((h = this.host.expandedLayers) == null || h.add(g.novoParentId), this.host.dispararEvento("ui-camada-mover-hierarquia", {
|
|
1333
|
+
camadaId: g.camada.id,
|
|
1334
|
+
novoParentId: g.novoParentId,
|
|
1335
|
+
parentAnteriorId: g.parentAnteriorId,
|
|
1336
|
+
camada: g.camada
|
|
1337
|
+
})), this.aposReordenarCamadas();
|
|
1338
|
+
return;
|
|
1339
|
+
}
|
|
1340
|
+
if (!d || d === r) return;
|
|
1341
|
+
const m = Oe(this.host.camadas, r, d, s);
|
|
1342
|
+
m && (this.host.ordemFilhosPorPai && je(
|
|
1343
|
+
this.host.camadas,
|
|
1344
|
+
this.host.feicoes,
|
|
1345
|
+
this.host.ordemFilhosPorPai,
|
|
1346
|
+
r,
|
|
1347
|
+
d,
|
|
1348
|
+
s,
|
|
1349
|
+
m.parentAnteriorId,
|
|
1350
|
+
m.novoParentId
|
|
1351
|
+
), m.tipo === "hierarquia" ? ((v = this.host.expandedLayers) == null || v.add(m.novoParentId), this.host.dispararEvento("ui-camada-mover-hierarquia", {
|
|
1352
|
+
camadaId: m.camada.id,
|
|
1353
|
+
novoParentId: m.novoParentId,
|
|
1354
|
+
parentAnteriorId: m.parentAnteriorId,
|
|
1355
|
+
camada: m.camada
|
|
1356
|
+
})) : m.parentAnteriorId !== m.novoParentId && this.host.dispararEvento("ui-camada-mover-hierarquia", {
|
|
1357
|
+
camadaId: m.camada.id,
|
|
1358
|
+
novoParentId: m.novoParentId,
|
|
1359
|
+
parentAnteriorId: m.parentAnteriorId,
|
|
1360
|
+
camada: m.camada
|
|
1124
1361
|
}), this.aposReordenarCamadas());
|
|
1125
1362
|
};
|
|
1126
1363
|
this.cancelarToque = () => {
|
|
1127
1364
|
l(), this.limparClassesDeArraste();
|
|
1128
|
-
}, window.addEventListener("pointermove", c, { passive: !1 }), window.addEventListener("pointerup",
|
|
1365
|
+
}, window.addEventListener("pointermove", c, { passive: !1 }), window.addEventListener("pointerup", u), window.addEventListener("pointercancel", u);
|
|
1129
1366
|
});
|
|
1130
1367
|
});
|
|
1131
1368
|
}
|
|
1132
1369
|
}
|
|
1133
|
-
const
|
|
1134
|
-
function
|
|
1370
|
+
const ct = "ui_camadas_estado_";
|
|
1371
|
+
function dt(e, t) {
|
|
1135
1372
|
const a = (e || t || "default").trim();
|
|
1136
|
-
return `${
|
|
1373
|
+
return `${ct}${a}`;
|
|
1137
1374
|
}
|
|
1138
|
-
function
|
|
1375
|
+
function le(e) {
|
|
1139
1376
|
return !!e && typeof e == "object" && !Array.isArray(e);
|
|
1140
1377
|
}
|
|
1141
|
-
function
|
|
1378
|
+
function Q(e) {
|
|
1142
1379
|
return Array.isArray(e) ? e.filter((t) => typeof t == "string") : [];
|
|
1143
1380
|
}
|
|
1144
|
-
function
|
|
1145
|
-
if (!
|
|
1381
|
+
function He(e) {
|
|
1382
|
+
if (!le(e)) return;
|
|
1146
1383
|
const t = {};
|
|
1147
1384
|
return typeof e.name == "string" && (t.name = e.name), typeof e.visible == "boolean" && (t.visible = e.visible), typeof e.locked == "boolean" && (t.locked = e.locked), typeof e.opacity == "number" && Number.isFinite(e.opacity) && e.opacity >= 0 && e.opacity <= 1 && (t.opacity = e.opacity), typeof e.color == "string" && (t.color = e.color), (typeof e.parentId == "string" || e.parentId === null) && (t.parentId = e.parentId), t;
|
|
1148
1385
|
}
|
|
1149
|
-
function
|
|
1150
|
-
if (!
|
|
1386
|
+
function ut(e) {
|
|
1387
|
+
if (!le(e)) return null;
|
|
1151
1388
|
const t = {};
|
|
1152
|
-
if (
|
|
1389
|
+
if (le(e.camadasOverrides))
|
|
1153
1390
|
for (const [r, i] of Object.entries(e.camadasOverrides)) {
|
|
1154
|
-
const o =
|
|
1391
|
+
const o = He(i);
|
|
1155
1392
|
if (!o) continue;
|
|
1156
|
-
const n =
|
|
1393
|
+
const n = He(i.origem);
|
|
1157
1394
|
t[r] = n ? { ...o, origem: n } : o;
|
|
1158
1395
|
}
|
|
1159
1396
|
const a = e.altura;
|
|
1160
1397
|
return {
|
|
1161
1398
|
versao: typeof e.versao == "number" ? e.versao : 1,
|
|
1162
|
-
expandedLayerIds:
|
|
1163
|
-
collapsedLayerIds:
|
|
1399
|
+
expandedLayerIds: Q(e.expandedLayerIds),
|
|
1400
|
+
collapsedLayerIds: Q(e.collapsedLayerIds),
|
|
1164
1401
|
camadaAtivaId: typeof e.camadaAtivaId == "string" ? e.camadaAtivaId : null,
|
|
1165
1402
|
painelColapsado: typeof e.painelColapsado == "boolean" ? e.painelColapsado : void 0,
|
|
1166
|
-
ordemCamadasIds:
|
|
1167
|
-
ordemOrigemIds: Array.isArray(e.ordemOrigemIds) ?
|
|
1403
|
+
ordemCamadasIds: Q(e.ordemCamadasIds),
|
|
1404
|
+
ordemOrigemIds: Array.isArray(e.ordemOrigemIds) ? Q(e.ordemOrigemIds) : void 0,
|
|
1405
|
+
ordemFilhosPorPai: (() => {
|
|
1406
|
+
if (!le(e.ordemFilhosPorPai)) return;
|
|
1407
|
+
const r = {};
|
|
1408
|
+
for (const [i, o] of Object.entries(e.ordemFilhosPorPai)) {
|
|
1409
|
+
const n = Q(o);
|
|
1410
|
+
n.length > 0 && (r[i] = n);
|
|
1411
|
+
}
|
|
1412
|
+
return Object.keys(r).length > 0 ? r : void 0;
|
|
1413
|
+
})(),
|
|
1168
1414
|
mapaBaseAtivo: typeof e.mapaBaseAtivo == "string" ? e.mapaBaseAtivo : void 0,
|
|
1169
1415
|
densidade: e.densidade === "compacto" || e.densidade === "normal" ? e.densidade : void 0,
|
|
1170
1416
|
altura: typeof a == "number" && Number.isFinite(a) && a > 0 ? a : null,
|
|
@@ -1172,18 +1418,18 @@ function Wa(e) {
|
|
|
1172
1418
|
ultimaAtualizacao: typeof e.ultimaAtualizacao == "number" ? e.ultimaAtualizacao : void 0
|
|
1173
1419
|
};
|
|
1174
1420
|
}
|
|
1175
|
-
function
|
|
1421
|
+
function ke(e) {
|
|
1176
1422
|
if (typeof window > "u" || typeof localStorage > "u")
|
|
1177
1423
|
return null;
|
|
1178
1424
|
try {
|
|
1179
1425
|
const t = localStorage.getItem(e);
|
|
1180
|
-
return t ?
|
|
1426
|
+
return t ? ut(JSON.parse(t)) : null;
|
|
1181
1427
|
} catch (t) {
|
|
1182
1428
|
console.warn(`[UI-Camadas] Não foi possível carregar o estado persistido (${e}):`, t);
|
|
1183
1429
|
}
|
|
1184
1430
|
return null;
|
|
1185
1431
|
}
|
|
1186
|
-
function
|
|
1432
|
+
function pt(e, t) {
|
|
1187
1433
|
if (!(typeof window > "u" || typeof localStorage > "u"))
|
|
1188
1434
|
try {
|
|
1189
1435
|
localStorage.setItem(e, JSON.stringify(t));
|
|
@@ -1191,14 +1437,14 @@ function Ja(e, t) {
|
|
|
1191
1437
|
console.warn(`[UI-Camadas] Não foi possível salvar o estado persistido (${e}):`, a);
|
|
1192
1438
|
}
|
|
1193
1439
|
}
|
|
1194
|
-
function
|
|
1440
|
+
function ft(e) {
|
|
1195
1441
|
if (!(typeof window > "u" || typeof localStorage > "u"))
|
|
1196
1442
|
try {
|
|
1197
1443
|
localStorage.removeItem(e);
|
|
1198
1444
|
} catch {
|
|
1199
1445
|
}
|
|
1200
1446
|
}
|
|
1201
|
-
function
|
|
1447
|
+
function da(e) {
|
|
1202
1448
|
return {
|
|
1203
1449
|
name: e.name,
|
|
1204
1450
|
visible: e.visible !== !1,
|
|
@@ -1208,58 +1454,61 @@ function ta(e) {
|
|
|
1208
1454
|
parentId: e.parentId !== void 0 ? e.parentId : null
|
|
1209
1455
|
};
|
|
1210
1456
|
}
|
|
1211
|
-
function
|
|
1212
|
-
var
|
|
1457
|
+
function mt(e, t, a, r) {
|
|
1458
|
+
var p;
|
|
1213
1459
|
if (!Array.isArray(e)) return;
|
|
1214
1460
|
const i = (t == null ? void 0 : t.camadasOverrides) || {}, o = new Set((t == null ? void 0 : t.expandedLayerIds) || []), n = new Set((t == null ? void 0 : t.collapsedLayerIds) || []), s = o.size > 0 || n.size > 0;
|
|
1215
|
-
for (let
|
|
1216
|
-
const f = e[
|
|
1217
|
-
if (r == null || r.set(f.id,
|
|
1218
|
-
const
|
|
1461
|
+
for (let d = 0; d < e.length; d++) {
|
|
1462
|
+
const f = e[d], m = i[f.id];
|
|
1463
|
+
if (r == null || r.set(f.id, da(f)), m) {
|
|
1464
|
+
const h = m.origem, v = (g) => {
|
|
1219
1465
|
var k;
|
|
1220
|
-
const
|
|
1221
|
-
return
|
|
1466
|
+
const w = (k = r == null ? void 0 : r.get(f.id)) == null ? void 0 : k[g];
|
|
1467
|
+
return h !== void 0 && h[g] !== w;
|
|
1222
1468
|
};
|
|
1223
|
-
typeof m.name == "string" && m.name.trim() && !
|
|
1469
|
+
typeof m.name == "string" && m.name.trim() && !v("name") && (f.name = m.name), typeof m.visible == "boolean" && !v("visible") && (f.visible = m.visible), typeof m.locked == "boolean" && !v("locked") && (f.locked = m.locked), typeof m.opacity == "number" && !v("opacity") && (f.opacity = m.opacity), typeof m.color == "string" && !v("color") && (f.color = m.color), m.parentId !== void 0 && !v("parentId") && (f.parentId = m.parentId);
|
|
1224
1470
|
}
|
|
1225
1471
|
s ? o.has(f.id) ? a.add(f.id) : n.has(f.id) ? a.delete(f.id) : a.add(f.id) : a.add(f.id);
|
|
1226
1472
|
}
|
|
1227
|
-
for (let
|
|
1228
|
-
const f = e[
|
|
1229
|
-
f.parentId && (f.parentId === f.id ||
|
|
1473
|
+
for (let d = 0; d < e.length; d++) {
|
|
1474
|
+
const f = e[d];
|
|
1475
|
+
f.parentId && (f.parentId === f.id || N(e, f.parentId, f.id)) && (f.parentId = ((p = r == null ? void 0 : r.get(f.id)) == null ? void 0 : p.parentId) ?? null);
|
|
1230
1476
|
}
|
|
1231
|
-
const c = new Set(e.map((
|
|
1477
|
+
const c = new Set(e.map((d) => d.id)), l = t == null ? void 0 : t.ordemOrigemIds;
|
|
1232
1478
|
if (!(Array.isArray(l) && (() => {
|
|
1233
|
-
const
|
|
1479
|
+
const d = new Set(l), f = (m) => m.filter((h) => c.has(h) && d.has(h)).join("|");
|
|
1234
1480
|
return f(l) !== f(e.map((m) => m.id));
|
|
1235
1481
|
})()) && Array.isArray(t == null ? void 0 : t.ordemCamadasIds) && t.ordemCamadasIds.length > 0) {
|
|
1236
|
-
const
|
|
1237
|
-
t.ordemCamadasIds.forEach((f, m) =>
|
|
1238
|
-
const
|
|
1239
|
-
return
|
|
1482
|
+
const d = /* @__PURE__ */ new Map();
|
|
1483
|
+
t.ordemCamadasIds.forEach((f, m) => d.set(f, m)), e.sort((f, m) => {
|
|
1484
|
+
const h = d.has(f.id) ? d.get(f.id) : 9999, v = d.has(m.id) ? d.get(m.id) : 9999;
|
|
1485
|
+
return h - v;
|
|
1240
1486
|
});
|
|
1241
1487
|
}
|
|
1242
1488
|
}
|
|
1243
|
-
function
|
|
1489
|
+
function gt(e) {
|
|
1244
1490
|
const { estadoAnterior: t, camadas: a, expandedLayers: r } = e;
|
|
1245
1491
|
let i = (t == null ? void 0 : t.expandedLayerIds) || [], o = (t == null ? void 0 : t.collapsedLayerIds) || [], n = (t == null ? void 0 : t.ordemCamadasIds) || [], s = t == null ? void 0 : t.ordemOrigemIds;
|
|
1246
1492
|
const c = {
|
|
1247
1493
|
...(t == null ? void 0 : t.camadasOverrides) || {}
|
|
1248
1494
|
};
|
|
1249
|
-
a.length > 0 && (i = [], o = [], n = a.map((
|
|
1495
|
+
a.length > 0 && (i = [], o = [], n = a.map((u) => u.id), s = e.origensCamadas ? [...e.origensCamadas.keys()] : n, a.forEach((u) => {
|
|
1250
1496
|
var p, d;
|
|
1251
|
-
r.has(
|
|
1252
|
-
name:
|
|
1253
|
-
visible:
|
|
1254
|
-
locked: !!
|
|
1255
|
-
opacity: typeof
|
|
1256
|
-
color:
|
|
1257
|
-
parentId:
|
|
1258
|
-
origem: ((p = e.origensCamadas) == null ? void 0 : p.get(
|
|
1497
|
+
r.has(u.id) ? i.push(u.id) : o.push(u.id), c[u.id] = {
|
|
1498
|
+
name: u.name,
|
|
1499
|
+
visible: u.visible !== !1,
|
|
1500
|
+
locked: !!u.locked,
|
|
1501
|
+
opacity: typeof u.opacity == "number" ? u.opacity : 1,
|
|
1502
|
+
color: u.color || "#00E08A",
|
|
1503
|
+
parentId: u.parentId !== void 0 ? u.parentId : null,
|
|
1504
|
+
origem: ((p = e.origensCamadas) == null ? void 0 : p.get(u.id)) ?? ((d = c[u.id]) == null ? void 0 : d.origem)
|
|
1259
1505
|
};
|
|
1260
1506
|
}));
|
|
1261
|
-
for (const
|
|
1262
|
-
|
|
1507
|
+
for (const u of e.camadasRemovidas ?? []) delete c[u];
|
|
1508
|
+
let l;
|
|
1509
|
+
return e.ordemFilhosPorPai && e.ordemFilhosPorPai.size > 0 ? (l = {}, e.ordemFilhosPorPai.forEach((u, p) => {
|
|
1510
|
+
u.length > 0 && (l[p] = [...u]);
|
|
1511
|
+
}), Object.keys(l).length === 0 && (l = void 0)) : !a.length && (t != null && t.ordemFilhosPorPai) && (l = t.ordemFilhosPorPai), {
|
|
1263
1512
|
versao: 1,
|
|
1264
1513
|
expandedLayerIds: i,
|
|
1265
1514
|
collapsedLayerIds: o,
|
|
@@ -1267,6 +1516,7 @@ function at(e) {
|
|
|
1267
1516
|
painelColapsado: e.painelColapsado,
|
|
1268
1517
|
ordemCamadasIds: n,
|
|
1269
1518
|
ordemOrigemIds: s,
|
|
1519
|
+
ordemFilhosPorPai: l,
|
|
1270
1520
|
mapaBaseAtivo: e.mapaBaseAtivo,
|
|
1271
1521
|
densidade: e.densidade,
|
|
1272
1522
|
altura: e.altura,
|
|
@@ -1274,25 +1524,25 @@ function at(e) {
|
|
|
1274
1524
|
ultimaAtualizacao: Date.now()
|
|
1275
1525
|
};
|
|
1276
1526
|
}
|
|
1277
|
-
const tt = `:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:inherit;font-size:11px;color:var(--ui-cor-texto, #e1e1e6);-webkit-user-select:none;user-select:none;width:100%;height:var(--ui-camadas-altura, 100%);min-height:var(--ui-camadas-min-altura, 140px);position:relative;--camada-respiro: 8px;--camada-barra-altura: 28px;--camada-linha-altura: 25px;--camada-thumb-tamanho: 20px;--camada-indent-nivel: 16px;--camada-transicao: .16s cubic-bezier(.16, 1, .3, 1)}:host([densidade="compacto"]){--camada-linha-altura: 22px;--camada-thumb-tamanho: 17px;font-size:10px}:host([flutuante]){position:absolute;top:10px;right:10px;bottom:46px;z-index:var(--ui-z-workspace-hud, 500);width:auto;height:var(--ui-camadas-altura, auto)}*,*:before,*:after{box-sizing:border-box}:host(:not([flutuante])) .ui-camadas-container{max-width:100%;min-width:0;border:none;box-shadow:none;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ui-camadas-container{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;width:100%;max-width:380px;min-width:270px;background:var(--ui-degrade-interno, var(--ui-camadas-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417))));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 8px);box-shadow:var(--ui-sombra-lg, 0 10px 30px -4px rgba(0, 0, 0, .5)),0 0 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 5%,transparent);overflow:hidden;position:relative;transition:transform .24s cubic-bezier(.16,1,.3,1),opacity .2s ease;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}:host([colapsado]) .ui-camadas-container{transform:translate(calc(100% + 24px));opacity:0;pointer-events:none}.ui-camadas-toggle-flutuante{display:none;position:absolute;top:10px;right:10px;z-index:calc(var(--ui-z-workspace-hud, 500) - 1);background:var(--ui-camadas-toggle-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417)));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 6px);color:var(--ui-cor-texto, #ffffff);width:34px;height:34px;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--ui-sombra-md, 0 8px 20px rgba(0, 0, 0, .45));transition:all var(--camada-transicao)}:host([colapsado][flutuante]) .ui-camadas-toggle-flutuante{display:flex}.ui-camadas-toggle-flutuante:hover{border-color:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-primaria, #00E08A);transform:scale(1.08);box-shadow:0 0 14px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-camadas-btn-colapsar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;cursor:pointer;border-radius:var(--ui-raio-sm, 4px);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--camada-transicao)}.ui-camadas-btn-colapsar:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-camadas-corpo{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 var(--camada-respiro) var(--camada-respiro);display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent) transparent}.ui-camadas-corpo::-webkit-scrollbar{width:4px}.ui-camadas-corpo::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-radius:var(--ui-raio-sm, 4px)}.ui-camadas-corpo::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent)}.ui-tree-toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro));padding:0 var(--camada-respiro);gap:8px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .06))}.ui-tree-title-group{display:flex;align-items:center;gap:5px}.ui-tree-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-tree-count-badge{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);color:var(--ui-cor-texto-secundario, #888899);padding:1px 5px;border-radius:8px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent)}.ui-tree-actions{display:flex;align-items:center;gap:3px}.ui-tree-action-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:24px;height:24px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-tree-action-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-tree-btn-new{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);border:none;color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 8px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-new:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-tree-search-wrapper{position:relative;display:flex;align-items:center;margin:1px 0}.ui-tree-search-icon{position:absolute;left:8px;color:var(--ui-cor-texto-secundario, #888899);pointer-events:none;display:flex;align-items:center}.ui-tree-search-input{width:100%;height:25px;background:var(--ui-cor-fundo, #0a0a0c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));border-radius:var(--ui-raio-borda, 5px);padding:0 24px 0 26px;color:var(--ui-cor-texto, #ffffff);font-size:10.5px;outline:none;transition:border-color var(--camada-transicao),box-shadow var(--camada-transicao)}.ui-tree-search-input:focus{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-tree-search-clear{position:absolute;right:5px;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all var(--camada-transicao)}.ui-tree-search-clear:hover{color:var(--ui-cor-texto, #ffffff);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent)}.ui-panel-box{background:var(--ui-cor-fundo, #0c0c0f);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));border-radius:var(--ui-raio-borda, 6px);overflow:hidden;display:flex;flex-direction:column;flex:1 1 0%;min-height:140px}.ui-search-empty{padding:14px 10px;text-align:center;font-size:11px;color:var(--ui-cor-texto-secundario, #888899);overflow-wrap:anywhere}.ui-layer-tree{flex:1 1 0%;min-height:40px;overflow-y:auto;overflow-x:hidden}.ui-layer-group{border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .04));transition:background var(--camada-transicao)}.ui-layer-group.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A);outline-offset:-1.5px}.ui-layer-row,.ui-feat-row{display:flex;align-items:center;height:var(--camada-linha-altura);min-height:var(--camada-linha-altura);max-height:var(--camada-linha-altura);padding:0 4px;-webkit-user-select:none;user-select:none;cursor:default;transition:background .1s ease;position:relative}.ui-layer-row{background:var(--ui-cor-fundo-elevado, #18181d);font-weight:600;cursor:pointer;border-left:3px solid transparent}.ui-layer-row:hover{background:var(--ui-cor-hover-menu, #22222a)}.ui-layer-row.active-drawing-layer{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 18%,var(--ui-cor-fundo-elevado, #18181d))!important;border-left:3px solid var(--layer-active-color, var(--ui-cor-primaria, #00E08A))!important;box-shadow:inset 0 0 12px color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 10%,transparent)}.ui-layer-row.active-drawing-layer .ui-name-text{color:var(--ui-cor-texto, #e1e1e6);font-weight:700}.ui-feat-row{border-left:3px solid transparent;padding-left:13px;background:var(--ui-cor-fundo, #101014);font-weight:400;cursor:pointer}.ui-feat-row:hover{background:var(--ui-cor-hover-menu, #19191f)}.ui-feat-row.selected-row{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 20%,var(--ui-cor-fundo, #101014))!important;outline:1px solid color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 55%,transparent)!important;outline-offset:-1px}.ui-layer-row.hidden-layer,.ui-feat-row.hidden-row{opacity:.52}.ui-layer-row.hidden-layer .ui-col-eye,.ui-feat-row.hidden-row .ui-col-eye{color:var(--ui-cor-texto-alerta, #ffb86c);opacity:.95}.ui-layer-row.dragging,.ui-feat-row.dragging{opacity:.35;background:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 16%,transparent)!important}.ui-layer-row.drop-above:before,.ui-feat-row.drop-above:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-below:after,.ui-feat-row.drop-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 16%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A)!important;outline-offset:-2px;border-radius:var(--ui-raio-sm, 4px)}.ui-layer-row.is-sublayer{background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #18181d) 70%,transparent)}.ui-group-folder-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-alerta, #ffb86c);margin-right:4px;flex-shrink:0}.ui-col{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--camada-linha-altura)}.ui-col-drag{width:8px;margin-right:1px;cursor:grab;color:var(--ui-cor-texto-secundario, #888899);opacity:.35;touch-action:none;transition:opacity var(--camada-transicao),color var(--camada-transicao)}.ui-layer-row:hover .ui-col-drag,.ui-feat-row:hover .ui-col-drag{opacity:.9;color:var(--ui-cor-primaria, #00E08A)}.ui-col-drag:active{cursor:grabbing}.ui-col-eye{width:20px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-eye:hover{color:var(--ui-cor-primaria, #00E08A)}.ui-col-lock{width:18px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-lock:hover{color:var(--ui-cor-texto-alerta, #ffb86c)}.ui-col-colorbar{width:5px;height:16px;margin:0 3px 0 2px;border-radius:1.5px;flex-shrink:0}.ui-col-colorbar-editavel{position:relative;width:5px;height:18px;cursor:pointer}.ui-col-colorbar-editavel:before{content:"";position:absolute;top:-3px;right:-4px;bottom:-3px;left:-4px}.ui-col-colorbar-editavel:hover,.ui-col-colorbar-editavel:focus-visible{filter:brightness(1.3);outline:none}.ui-children-container{position:relative}.ui-children-container:before{content:"";position:absolute;top:0;bottom:10px;left:calc(64px + var(--parent-depth, 0) * var(--camada-indent-nivel, 16px) + 7px);width:1.5px;background:color-mix(in srgb,var(--parent-layer-color, var(--layer-active-color, var(--ui-cor-primaria, #00E08A))) 48%,transparent);pointer-events:none;z-index:2}.ui-children-container:has(>.ui-empty-row):before{display:none}.ui-col-chevron,.ui-feat-row .ui-col-thumb{position:relative;margin-left:calc(var(--layer-depth, 0) * var(--camada-indent-nivel, 16px))}.ui-layer-row.is-sublayer .ui-col-chevron:before,.ui-feat-row .ui-col-thumb:before{content:"";position:absolute;left:-9px;top:50%;width:8px;height:1.5px;transform:translateY(-50%);background:color-mix(in srgb,var(--parent-layer-color, var(--layer-active-color, var(--ui-cor-primaria, #00E08A))) 48%,transparent);pointer-events:none}.ui-col-chevron{width:14px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);display:flex;align-items:center;justify-content:center}.ui-chevron-icon{display:inline-flex;align-items:center;justify-content:center;transition:transform var(--camada-transicao)}.ui-chevron-icon.open{transform:rotate(90deg)}.ui-col-thumb{width:calc(var(--camada-thumb-tamanho) + 3px);margin-right:4px;display:flex;align-items:center;justify-content:center}.ui-thumb-box{width:var(--camada-thumb-tamanho);height:var(--camada-thumb-tamanho);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);border-radius:3px;background:var(--ui-cor-fundo, #0d0d10);box-sizing:border-box;overflow:hidden;display:flex;align-items:center;justify-content:center}.ui-col-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--ui-cor-texto, #e1e1e6);padding-left:2px;padding-right:4px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:4px}.ui-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-count-chip{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-texto-secundario, #888899);font-weight:400;padding:0 2px;flex-shrink:0}.ui-col-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--camada-transicao)}.ui-layer-row:hover .ui-col-actions,.ui-feat-row:hover .ui-col-actions,.ui-layer-row:focus-within .ui-col-actions,.ui-feat-row:focus-within .ui-col-actions,.ui-col-actions:has(.ui-micro-btn.active){opacity:1}.ui-micro-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:18px;height:18px;padding:0;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-micro-btn:hover{color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-micro-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-col-target{width:22px;cursor:pointer}.ui-target-circle{width:11px;height:11px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent);background:transparent;transition:all .12s ease}.ui-col-target:hover .ui-target-circle{border-color:var(--ui-cor-texto-info, #33b5ff);transform:scale(1.18)}.ui-target-circle.selected{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));box-shadow:inset 0 0 0 2px var(--ui-cor-superficie, #141418)}.ui-target-circle.partial{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 40%,transparent)}.ui-inline-rename-input{width:100%;height:20px;background:var(--ui-cor-fundo, #0d0d10);color:var(--ui-cor-texto, #e1e1e6);border:1px solid var(--ui-cor-primaria, #00E08A);border-radius:3px;font-size:10.5px;padding:0 4px;outline:none;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 40%,transparent)}.ui-layer-settings-drawer{background:linear-gradient(180deg,var(--ui-cor-fundo-elevado, #17171e) 0%,var(--ui-cor-superficie, #0f0f13) 100%);padding:10px 14px 12px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent);border-left:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent),0 6px 16px #00000073;animation:drawerSlideDown .18s cubic-bezier(.16,1,.3,1);position:relative;z-index:10}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-header-left{display:flex;align-items:center;gap:7px;min-width:0}.ui-drawer-icon{color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;align-items:center;flex-shrink:0}.ui-drawer-title{font-size:10.5px;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.ui-drawer-layer-chip{font-size:9.5px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-drawer-btn-fechar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:20px;height:20px;padding:0;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-drawer-btn-fechar:hover{color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-body{display:flex;flex-direction:column;gap:10px}.ui-drawer-row{display:flex;flex-direction:column;gap:5px}.ui-drawer-row-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ui-cor-texto-secundario, #888899)}.ui-drawer-color-group{display:flex;align-items:center;justify-content:space-between;gap:8px}.ui-drawer-color-pill{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 5px;background:var(--ui-cor-fundo, #0b0b0d);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent);border-radius:var(--ui-raio-sm, 4px);cursor:pointer;transition:all var(--camada-transicao);-webkit-user-select:none;user-select:none}.ui-drawer-color-pill:hover{border-color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent)}.ui-drawer-color-sample{width:14px;height:14px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 35%,transparent);box-shadow:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .5));flex-shrink:0;transition:background-color .1s ease}.ui-drawer-color-hex{font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);letter-spacing:.5px}.ui-drawer-color-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ui-drawer-badge{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider-container{display:flex;flex-direction:column;gap:4px}.ui-drawer-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent) 0%,var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A)) 100%);border-radius:3px;outline:none;margin:3px 0;cursor:pointer;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer;transition:transform .12s ease}.ui-drawer-slider::-webkit-slider-thumb:hover{transform:scale(1.22)}.ui-drawer-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer}.ui-drawer-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-meta-info{font-size:9.5px;color:var(--ui-cor-texto-secundario, #888899);font-style:italic}.ui-drawer-actions{display:flex;align-items:center;gap:6px}.ui-drawer-btn-danger{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 10%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 35%,transparent);color:var(--ui-cor-texto-erro, #ff5555);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 10px;font-size:10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--camada-transicao)}.ui-drawer-btn-danger:hover{background:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 45%,transparent);transform:translateY(-.5px)}.ui-drawer-btn-danger.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-hover, #b71c1c);animation:pulseDanger 1.2s infinite}@keyframes pulseDanger{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.ui-previa-dot{width:6px;height:6px;margin-left:4px;border-radius:50%;flex-shrink:0;background:var(--ui-cor-texto-alerta, #ffb86c);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 25%,transparent)}.ui-tree-footer{height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);background:var(--ui-cor-fundo-elevado, #121216);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;align-items:center;justify-content:space-between;padding:0 var(--camada-respiro);gap:6px;box-sizing:border-box;overflow:hidden;position:relative;flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro))}.ui-footer-left{display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.ui-footer-count{font-size:11px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-primaria, #00E08A);flex-shrink:0}.ui-footer-label{display:inline-flex;align-items:center;color:var(--ui-cor-texto-secundario, #888899);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 8px;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-footer-right{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.ui-footer-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all var(--camada-transicao);flex-shrink:0}.ui-footer-btn:hover:not(.disabled){color:var(--ui-cor-texto, #e1e1e6);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-btn.disabled{opacity:.25;cursor:not-allowed}.ui-footer-btn.btn-danger-footer:hover:not(.disabled){color:var(--ui-cor-texto-erro, #ff5555);background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 15%,transparent)}.ui-footer-btn.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c)!important;color:var(--ui-cor-botao-destrutivo-texto, #ffffff)!important}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0}.ui-footer-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;--_chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888899' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background:var(--_chevron) right 6px center / 10px no-repeat,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto, #e1e1e6);border-radius:var(--ui-raio-sm, 4px);font:inherit;font-size:10px;font-weight:500;height:22px;padding:0 22px 0 8px;cursor:pointer;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){background:var(--_chevron) right 6px center / 10px no-repeat,var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-select:focus-visible{outline:1px solid var(--ui-cor-primaria, #00E08A)}.ui-drawer-btn-sublayer{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #e1e1e6);font-size:10.5px;font-weight:500;padding:4px 8px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-drawer-btn-sublayer:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-primaria, #00E08A);border-color:var(--ui-cor-primaria, #00E08A)}.ui-drawer-select-wrapper{display:flex;align-items:center}.ui-drawer-select{background:var(--ui-cor-fundo, #16161c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .15));color:var(--ui-cor-texto, #e1e1e6);border-radius:4px;font-size:10.5px;height:24px;padding:0 6px;cursor:pointer;max-width:140px}.ui-basemap-section{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.ui-basemap-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:2px;background:transparent;border:0;border-radius:var(--ui-raio-sm, 4px);font:inherit;color:inherit;cursor:pointer;text-align:left}.ui-basemap-toggle:hover .ui-basemap-title{color:var(--ui-cor-texto, #e1e1e6)}.ui-basemap-toggle:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}.ui-basemap-atual{flex:1 1 auto;min-width:0;font-size:10px;color:var(--ui-cor-primaria, #00E08A);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.ui-basemap-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.ui-basemap-section{container-type:inline-size}@container (min-width: 260px){.ui-basemap-grid{grid-template-columns:repeat(3,1fr)}}@container (min-width: 340px){.ui-basemap-grid{grid-template-columns:repeat(4,1fr)}}.ui-basemap-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px;border-radius:var(--ui-raio-borda, 5px);background:var(--ui-cor-fundo, #101014);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:pointer;transition:all var(--camada-transicao);text-align:center;overflow:hidden}.ui-basemap-card:hover{border-color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-fundo-elevado, #17171c)}.ui-basemap-card.active{border-color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);color:var(--ui-cor-primaria, #00E08A);font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-basemap-preview{width:100%;height:22px;border-radius:3px;object-fit:cover;opacity:.85;transition:opacity var(--camada-transicao)}.ui-basemap-preview-none{width:100%;height:22px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 4%,transparent);border-radius:3px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-card:hover .ui-basemap-preview,.ui-basemap-card.active .ui-basemap-preview{opacity:1}.ui-basemap-card span{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ui-layer-row.herdado-oculto,.ui-feat-row.herdado-oculto{opacity:.52}.ui-layer-row.herdado-travado .ui-col-lock.ui-lock-open{color:var(--ui-cor-texto-secundario, #888899);opacity:.7}.ui-search-hidden{display:none!important}.ui-empty-row{height:22px;display:flex;align-items:center;padding-left:36px;font-size:10px;color:var(--ui-cor-texto-secundario, #666677);font-style:italic;background:var(--ui-cor-fundo-recuado, rgba(0, 0, 0, .15))}.ui-camadas-resizer-altura{display:none;flex-shrink:0;width:100%;height:9px;background:var(--ui-cor-superficie, #141417);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:ns-resize;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none;transition:background .15s ease,border-color .15s ease;position:relative;z-index:10}:host([redimensionavel]) .ui-camadas-resizer-altura,:host([redimensionavel-altura]) .ui-camadas-resizer-altura{display:flex}.ui-camadas-resizer-altura:hover,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent);border-top-color:var(--ui-cor-primaria, #00E08A)}.ui-camadas-resizer-grip{width:32px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);transition:all .15s ease}.ui-camadas-resizer-altura:hover .ui-camadas-resizer-grip,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo .ui-camadas-resizer-grip{background:var(--ui-cor-primaria, #00E08A);width:46px;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 45%,transparent)}:host(.ui-camadas--redimensionando){-webkit-user-select:none!important;user-select:none!important;cursor:ns-resize!important}:host(.ui-camadas--redimensionando) *{-webkit-user-select:none!important;user-select:none!important}.ui-col-lock.ui-lock-open{opacity:.28}.ui-col-lock.ui-lock-open:hover,.ui-col-lock.ui-lock-open:focus-visible{opacity:.8}.ui-col-lock[data-locked-by-layer]{cursor:not-allowed}.ui-col[role=button]:focus-visible,.ui-basemap-card:focus-visible,.ui-feat-row:focus-visible,.ui-layer-row:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:-2px}.ui-footer-btn.confirming{color:var(--ui-cor-botao-destrutivo-texto, #ffffff);background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);width:auto;padding:0 6px}.ui-truncate-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;margin:4px 8px 6px;background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 70%,transparent);border:1px dashed var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 4px);font-size:10px;color:var(--ui-cor-texto-secundario, #9696a6)}.ui-truncate-notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-truncate-more-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--ui-cor-superficie, #141417);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 4px);color:var(--ui-cor-primaria, #00E08A);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--camada-transicao)}.ui-truncate-more-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08));border-color:var(--ui-cor-primaria, #00E08A)}.ui-truncate-more-btn:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}:host(.degrade),:host(.gradiente),:host([data-degrade]:not([data-degrade="false"])),.ui-camadas-container[data-degrade]:not([data-degrade=false]){--ui-camadas-fundo: var(--ui-gradiente-superficie);--ui-camadas-toggle-fundo: var(--ui-gradiente-superficie)}`;
|
|
1278
|
-
function
|
|
1527
|
+
const ht = `:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:inherit;font-size:11px;color:var(--ui-cor-texto, #e1e1e6);-webkit-user-select:none;user-select:none;width:100%;height:var(--ui-camadas-altura, 100%);min-height:var(--ui-camadas-min-altura, 140px);position:relative;--camada-respiro: 8px;--camada-barra-altura: 28px;--camada-linha-altura: 25px;--camada-thumb-tamanho: 20px;--camada-indent-nivel: 16px;--camada-transicao: .16s cubic-bezier(.16, 1, .3, 1)}:host([densidade="compacto"]){--camada-linha-altura: 22px;--camada-thumb-tamanho: 17px;font-size:10px}:host([flutuante]){position:absolute;top:10px;right:10px;bottom:46px;z-index:var(--ui-z-workspace-hud, 500);width:auto;height:var(--ui-camadas-altura, auto)}*,*:before,*:after{box-sizing:border-box}:host(:not([flutuante])) .ui-camadas-container{max-width:100%;min-width:0;border:none;box-shadow:none;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ui-camadas-container{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;width:100%;max-width:380px;min-width:270px;background:var(--ui-degrade-interno, var(--ui-camadas-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417))));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 8px);box-shadow:var(--ui-sombra-lg, 0 10px 30px -4px rgba(0, 0, 0, .5)),0 0 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 5%,transparent);overflow:hidden;position:relative;transition:transform .24s cubic-bezier(.16,1,.3,1),opacity .2s ease;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}:host([colapsado]) .ui-camadas-container{transform:translate(calc(100% + 24px));opacity:0;pointer-events:none}.ui-camadas-toggle-flutuante{display:none;position:absolute;top:10px;right:10px;z-index:calc(var(--ui-z-workspace-hud, 500) - 1);background:var(--ui-camadas-toggle-fundo, var(--ui-fundo-superficie, var(--ui-cor-superficie, #141417)));border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 6px);color:var(--ui-cor-texto, #ffffff);width:34px;height:34px;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--ui-sombra-md, 0 8px 20px rgba(0, 0, 0, .45));transition:all var(--camada-transicao)}:host([colapsado][flutuante]) .ui-camadas-toggle-flutuante{display:flex}.ui-camadas-toggle-flutuante:hover{border-color:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-primaria, #00E08A);transform:scale(1.08);box-shadow:0 0 14px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-camadas-btn-colapsar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;cursor:pointer;border-radius:var(--ui-raio-sm, 4px);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--camada-transicao)}.ui-camadas-btn-colapsar:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-camadas-corpo{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 var(--camada-respiro) var(--camada-respiro);display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent) transparent}.ui-camadas-corpo::-webkit-scrollbar{width:4px}.ui-camadas-corpo::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-radius:var(--ui-raio-sm, 4px)}.ui-camadas-corpo::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent)}.ui-tree-toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro));padding:0 var(--camada-respiro);gap:8px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .06))}.ui-tree-title-group{display:flex;align-items:center;gap:5px}.ui-tree-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-tree-count-badge{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);color:var(--ui-cor-texto-secundario, #888899);padding:1px 5px;border-radius:8px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent)}.ui-tree-actions{display:flex;align-items:center;gap:3px}.ui-tree-action-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);border-radius:var(--ui-raio-sm, 4px);width:24px;height:24px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-tree-action-btn:hover{color:var(--ui-cor-texto, #ffffff);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .09))}.ui-tree-btn-new{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);border:none;color:var(--ui-cor-primaria, #00E08A);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 8px;font-size:10px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-tree-btn-new:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-tree-search-wrapper{position:relative;display:flex;align-items:center;margin:1px 0}.ui-tree-search-icon{position:absolute;left:8px;color:var(--ui-cor-texto-secundario, #888899);pointer-events:none;display:flex;align-items:center}.ui-tree-search-input{width:100%;height:25px;background:var(--ui-cor-fundo, #0a0a0c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));border-radius:var(--ui-raio-borda, 5px);padding:0 24px 0 26px;color:var(--ui-cor-texto, #ffffff);font-size:10.5px;outline:none;transition:border-color var(--camada-transicao),box-shadow var(--camada-transicao)}.ui-tree-search-input:focus{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-tree-search-clear{position:absolute;right:5px;background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all var(--camada-transicao)}.ui-tree-search-clear:hover{color:var(--ui-cor-texto, #ffffff);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent)}.ui-panel-box{background:var(--ui-cor-fundo, #0c0c0f);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));border-radius:var(--ui-raio-borda, 6px);overflow:hidden;display:flex;flex-direction:column;flex:1 1 0%;min-height:140px}.ui-search-empty{padding:14px 10px;text-align:center;font-size:11px;color:var(--ui-cor-texto-secundario, #888899);overflow-wrap:anywhere}.ui-layer-tree{flex:1 1 0%;min-height:40px;overflow-y:auto;overflow-x:hidden}.ui-layer-group{border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .04));transition:background var(--camada-transicao)}.ui-layer-group.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A);outline-offset:-1.5px}.ui-layer-row,.ui-feat-row{display:flex;align-items:center;height:var(--camada-linha-altura);min-height:var(--camada-linha-altura);max-height:var(--camada-linha-altura);padding:0 4px;-webkit-user-select:none;user-select:none;cursor:default;transition:background .1s ease;position:relative}.ui-layer-row{background:var(--ui-cor-fundo-elevado, #18181d);font-weight:600;cursor:pointer;border-left:3px solid transparent}.ui-layer-row:hover{background:var(--ui-cor-hover-menu, #22222a)}.ui-layer-row.active-drawing-layer{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 18%,var(--ui-cor-fundo-elevado, #18181d))!important;border-left:3px solid var(--layer-active-color, var(--ui-cor-primaria, #00E08A))!important;box-shadow:inset 0 0 12px color-mix(in srgb,var(--layer-active-color, var(--ui-cor-primaria, #00E08A)) 10%,transparent)}.ui-layer-row.active-drawing-layer .ui-name-text{color:var(--ui-cor-texto, #e1e1e6);font-weight:700}.ui-feat-row{border-left:3px solid transparent;padding-left:13px;background:var(--ui-cor-fundo, #101014);font-weight:400;cursor:pointer}.ui-feat-row:hover{background:var(--ui-cor-hover-menu, #19191f)}.ui-feat-row.selected-row{background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 20%,var(--ui-cor-fundo, #101014))!important;outline:1px solid color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 55%,transparent)!important;outline-offset:-1px}.ui-layer-row.hidden-layer,.ui-feat-row.hidden-row{opacity:.52}.ui-layer-row.hidden-layer .ui-col-eye,.ui-feat-row.hidden-row .ui-col-eye{color:var(--ui-cor-texto-alerta, #ffb86c);opacity:.95}.ui-layer-row.dragging,.ui-feat-row.dragging{opacity:.35;background:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 16%,transparent)!important}.ui-layer-row.drop-above:before,.ui-feat-row.drop-above:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-below:after,.ui-feat-row.drop-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ui-cor-texto-info, #33b5ff);box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 100%,transparent);z-index:20;pointer-events:none}.ui-layer-row.drop-into{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 16%,transparent)!important;outline:1.5px dashed var(--ui-cor-primaria, #00E08A)!important;outline-offset:-2px;border-radius:var(--ui-raio-sm, 4px)}.ui-layer-row.is-sublayer{background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #18181d) 70%,transparent)}.ui-group-folder-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-alerta, #ffb86c);margin-right:4px;flex-shrink:0}.ui-col{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--camada-linha-altura)}.ui-col-drag{width:8px;margin-right:1px;cursor:grab;color:var(--ui-cor-texto-secundario, #888899);opacity:.35;touch-action:none;transition:opacity var(--camada-transicao),color var(--camada-transicao)}.ui-layer-row:hover .ui-col-drag,.ui-feat-row:hover .ui-col-drag{opacity:.9;color:var(--ui-cor-primaria, #00E08A)}.ui-col-drag:active{cursor:grabbing}.ui-col-eye{width:20px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-eye:hover{color:var(--ui-cor-primaria, #00E08A)}.ui-col-lock{width:18px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);transition:color var(--camada-transicao)}.ui-col-lock:hover{color:var(--ui-cor-texto-alerta, #ffb86c)}.ui-col-colorbar{width:5px;height:16px;margin:0 3px 0 2px;border-radius:1.5px;flex-shrink:0}.ui-col-colorbar-editavel{position:relative;width:5px;height:18px;cursor:pointer}.ui-col-colorbar-editavel:before{content:"";position:absolute;top:-3px;right:-4px;bottom:-3px;left:-4px}.ui-col-colorbar-editavel:hover,.ui-col-colorbar-editavel:focus-visible{filter:brightness(1.3);outline:none}.ui-children-container{position:relative}.ui-children-container:before{content:"";position:absolute;top:0;bottom:10px;left:calc(64px + var(--parent-depth, 0) * var(--camada-indent-nivel, 16px) + 7px);width:1.5px;background:color-mix(in srgb,var(--parent-layer-color, var(--layer-active-color, var(--ui-cor-primaria, #00E08A))) 48%,transparent);pointer-events:none;z-index:2}.ui-children-container:has(>.ui-empty-row):before{display:none}.ui-col-chevron,.ui-feat-row .ui-col-thumb{position:relative;margin-left:calc(var(--layer-depth, 0) * var(--camada-indent-nivel, 16px))}.ui-layer-row.is-sublayer .ui-col-chevron:before,.ui-feat-row .ui-col-thumb:before{content:"";position:absolute;left:-9px;top:50%;width:8px;height:1.5px;transform:translateY(-50%);background:color-mix(in srgb,var(--parent-layer-color, var(--layer-active-color, var(--ui-cor-primaria, #00E08A))) 48%,transparent);pointer-events:none}.ui-col-chevron{width:14px;cursor:pointer;color:var(--ui-cor-texto-secundario, #888899);display:flex;align-items:center;justify-content:center}.ui-chevron-icon{display:inline-flex;align-items:center;justify-content:center;transition:transform var(--camada-transicao)}.ui-chevron-icon.open{transform:rotate(90deg)}.ui-col-thumb{width:calc(var(--camada-thumb-tamanho) + 3px);margin-right:4px;display:flex;align-items:center;justify-content:center}.ui-thumb-box{width:var(--camada-thumb-tamanho);height:var(--camada-thumb-tamanho);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);border-radius:3px;background:var(--ui-cor-fundo, #0d0d10);box-sizing:border-box;overflow:hidden;display:flex;align-items:center;justify-content:center}.ui-col-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:var(--ui-cor-texto, #e1e1e6);padding-left:2px;padding-right:4px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:4px}.ui-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-count-chip{font-size:9px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--ui-cor-texto-secundario, #888899);font-weight:400;padding:0 2px;flex-shrink:0}.ui-col-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--camada-transicao)}.ui-layer-row:hover .ui-col-actions,.ui-feat-row:hover .ui-col-actions,.ui-layer-row:focus-within .ui-col-actions,.ui-feat-row:focus-within .ui-col-actions,.ui-col-actions:has(.ui-micro-btn.active){opacity:1}.ui-micro-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:18px;height:18px;padding:0;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-micro-btn:hover{color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-micro-btn.active{color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)}.ui-col-target{width:22px;cursor:pointer}.ui-target-circle{width:11px;height:11px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 32%,transparent);background:transparent;transition:all .12s ease}.ui-col-target:hover .ui-target-circle{border-color:var(--ui-cor-texto-info, #33b5ff);transform:scale(1.18)}.ui-target-circle.selected{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));box-shadow:inset 0 0 0 2px var(--ui-cor-superficie, #141418)}.ui-target-circle.partial{border:2px solid var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff));background:color-mix(in srgb,var(--layer-active-color, var(--ui-cor-texto-info, #33b5ff)) 40%,transparent)}.ui-inline-rename-input{width:100%;height:20px;background:var(--ui-cor-fundo, #0d0d10);color:var(--ui-cor-texto, #e1e1e6);border:1px solid var(--ui-cor-primaria, #00E08A);border-radius:3px;font-size:10.5px;padding:0 4px;outline:none;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 40%,transparent)}.ui-layer-settings-drawer{background:linear-gradient(180deg,var(--ui-cor-fundo-elevado, #17171e) 0%,var(--ui-cor-superficie, #0f0f13) 100%);padding:10px 14px 12px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent);border-left:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent),0 6px 16px #00000073;animation:drawerSlideDown .18s cubic-bezier(.16,1,.3,1);position:relative;z-index:10}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-header-left{display:flex;align-items:center;gap:7px;min-width:0}.ui-drawer-icon{color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));display:flex;align-items:center;flex-shrink:0}.ui-drawer-title{font-size:10.5px;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.ui-drawer-layer-chip{font-size:9.5px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-drawer-btn-fechar{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:20px;height:20px;padding:0;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--camada-transicao)}.ui-drawer-btn-fechar:hover{color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-body{display:flex;flex-direction:column;gap:10px}.ui-drawer-row{display:flex;flex-direction:column;gap:5px}.ui-drawer-row-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ui-cor-texto-secundario, #888899)}.ui-drawer-color-group{display:flex;align-items:center;justify-content:space-between;gap:8px}.ui-drawer-color-pill{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 5px;background:var(--ui-cor-fundo, #0b0b0d);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent);border-radius:var(--ui-raio-sm, 4px);cursor:pointer;transition:all var(--camada-transicao);-webkit-user-select:none;user-select:none}.ui-drawer-color-pill:hover{border-color:var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent)}.ui-drawer-color-sample{width:14px;height:14px;border-radius:3px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 35%,transparent);box-shadow:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .5));flex-shrink:0;transition:background-color .1s ease}.ui-drawer-color-hex{font-size:10px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);letter-spacing:.5px}.ui-drawer-color-native{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ui-drawer-badge{font-size:9.5px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-texto, #e1e1e6);background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);padding:1px 6px;border-radius:var(--ui-raio-sm, 4px);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider-container{display:flex;flex-direction:column;gap:4px}.ui-drawer-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent) 0%,var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A)) 100%);border-radius:3px;outline:none;margin:3px 0;cursor:pointer;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 12%,transparent)}.ui-drawer-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer;transition:transform .12s ease}.ui-drawer-slider::-webkit-slider-thumb:hover{transform:scale(1.22)}.ui-drawer-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--drawer-cor-camada, var(--ui-cor-primaria, #00E08A));box-shadow:0 0 6px #0009,0 0 10px var(--drawer-cor-camada, rgba(0, 224, 138, .6));cursor:pointer}.ui-drawer-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent)}.ui-drawer-meta-info{font-size:9.5px;color:var(--ui-cor-texto-secundario, #888899);font-style:italic}.ui-drawer-actions{display:flex;align-items:center;gap:6px}.ui-drawer-btn-danger{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 10%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 35%,transparent);color:var(--ui-cor-texto-erro, #ff5555);border-radius:var(--ui-raio-sm, 4px);height:24px;padding:0 10px;font-size:10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--camada-transicao)}.ui-drawer-btn-danger:hover{background:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-fundo, #d32f2f);box-shadow:0 0 10px color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 45%,transparent);transform:translateY(-.5px)}.ui-drawer-btn-danger.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);color:var(--ui-cor-botao-destrutivo-texto, #ffffff);border-color:var(--ui-cor-botao-destrutivo-hover, #b71c1c);animation:pulseDanger 1.2s infinite}@keyframes pulseDanger{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.ui-previa-dot{width:6px;height:6px;margin-left:4px;border-radius:50%;flex-shrink:0;background:var(--ui-cor-texto-alerta, #ffb86c);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 25%,transparent)}.ui-tree-footer{height:var(--camada-barra-altura);min-height:var(--camada-barra-altura);background:var(--ui-cor-fundo-elevado, #121216);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;align-items:center;justify-content:space-between;padding:0 var(--camada-respiro);gap:6px;box-sizing:border-box;overflow:hidden;position:relative;flex-shrink:0;margin:0 calc(-1 * var(--camada-respiro))}.ui-footer-left{display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.ui-footer-count{font-size:11px;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-cor-primaria, #00E08A);flex-shrink:0}.ui-footer-label{display:inline-flex;align-items:center;color:var(--ui-cor-texto-secundario, #888899);flex-shrink:0}.ui-footer-actions-gerais{display:flex;align-items:center;gap:4px;flex-shrink:0}.ui-footer-chip-btn{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto-secundario, #a0a0b0);font-size:10px;font-weight:600;height:22px;padding:0 8px;border-radius:var(--ui-raio-sm, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-footer-chip-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #ffffff)}.ui-footer-chip-btn.primario{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 14%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-footer-chip-btn.primario:hover{background:var(--ui-cor-primaria, #00E08A);color:var(--ui-cor-texto-sobre-primaria, #000000)}.ui-footer-right{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.ui-footer-btn{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);width:22px;height:22px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all var(--camada-transicao);flex-shrink:0}.ui-footer-btn:hover:not(.disabled){color:var(--ui-cor-texto, #e1e1e6);background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-btn.disabled{opacity:.25;cursor:not-allowed}.ui-footer-btn.btn-danger-footer:hover:not(.disabled){color:var(--ui-cor-texto-erro, #ff5555);background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 15%,transparent)}.ui-footer-btn.confirming{background:var(--ui-cor-botao-destrutivo-hover, #b71c1c)!important;color:var(--ui-cor-botao-destrutivo-texto, #ffffff)!important}.ui-footer-move-wrapper{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0}.ui-footer-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;--_chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888899' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background:var(--_chevron) right 6px center / 10px no-repeat,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:none;color:var(--ui-cor-texto, #e1e1e6);border-radius:var(--ui-raio-sm, 4px);font:inherit;font-size:10px;font-weight:500;height:22px;padding:0 22px 0 8px;cursor:pointer;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-footer-select:hover:not(:disabled){background:var(--_chevron) right 6px center / 10px no-repeat,var(--ui-cor-hover-menu, rgba(255, 255, 255, .12))}.ui-footer-select:focus-visible{outline:1px solid var(--ui-cor-primaria, #00E08A)}.ui-drawer-btn-sublayer{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #e1e1e6);font-size:10.5px;font-weight:500;padding:4px 8px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all var(--camada-transicao)}.ui-drawer-btn-sublayer:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .12));color:var(--ui-cor-primaria, #00E08A);border-color:var(--ui-cor-primaria, #00E08A)}.ui-drawer-select-wrapper{display:flex;align-items:center}.ui-drawer-select{background:var(--ui-cor-fundo, #16161c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .15));color:var(--ui-cor-texto, #e1e1e6);border-radius:4px;font-size:10.5px;height:24px;padding:0 6px;cursor:pointer;max-width:140px}.ui-basemap-section{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.ui-basemap-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:2px;background:transparent;border:0;border-radius:var(--ui-raio-sm, 4px);font:inherit;color:inherit;cursor:pointer;text-align:left}.ui-basemap-toggle:hover .ui-basemap-title{color:var(--ui-cor-texto, #e1e1e6)}.ui-basemap-toggle:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}.ui-basemap-atual{flex:1 1 auto;min-width:0;font-size:10px;color:var(--ui-cor-primaria, #00E08A);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.ui-basemap-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.ui-basemap-section{container-type:inline-size}@container (min-width: 260px){.ui-basemap-grid{grid-template-columns:repeat(3,1fr)}}@container (min-width: 340px){.ui-basemap-grid{grid-template-columns:repeat(4,1fr)}}.ui-basemap-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px;border-radius:var(--ui-raio-borda, 5px);background:var(--ui-cor-fundo, #101014);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:pointer;transition:all var(--camada-transicao);text-align:center;overflow:hidden}.ui-basemap-card:hover{border-color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-fundo-elevado, #17171c)}.ui-basemap-card.active{border-color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);color:var(--ui-cor-primaria, #00E08A);font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-basemap-preview{width:100%;height:22px;border-radius:3px;object-fit:cover;opacity:.85;transition:opacity var(--camada-transicao)}.ui-basemap-preview-none{width:100%;height:22px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 4%,transparent);border-radius:3px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-card:hover .ui-basemap-preview,.ui-basemap-card.active .ui-basemap-preview{opacity:1}.ui-basemap-card span{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ui-layer-row.herdado-oculto,.ui-feat-row.herdado-oculto{opacity:.52}.ui-layer-row.herdado-travado .ui-col-lock.ui-lock-open{color:var(--ui-cor-texto-secundario, #888899);opacity:.7}.ui-search-hidden{display:none!important}.ui-empty-row{height:22px;display:flex;align-items:center;padding-left:36px;font-size:10px;color:var(--ui-cor-texto-secundario, #666677);font-style:italic;background:var(--ui-cor-fundo-recuado, rgba(0, 0, 0, .15))}.ui-camadas-resizer-altura{display:none;flex-shrink:0;width:100%;height:9px;background:var(--ui-cor-superficie, #141417);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));cursor:ns-resize;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none;transition:background .15s ease,border-color .15s ease;position:relative;z-index:10}:host([redimensionavel]) .ui-camadas-resizer-altura,:host([redimensionavel-altura]) .ui-camadas-resizer-altura{display:flex}.ui-camadas-resizer-altura:hover,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 9%,transparent);border-top-color:var(--ui-cor-primaria, #00E08A)}.ui-camadas-resizer-grip{width:32px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 22%,transparent);transition:all .15s ease}.ui-camadas-resizer-altura:hover .ui-camadas-resizer-grip,.ui-camadas-resizer-altura.ui-camadas-resizer--ativo .ui-camadas-resizer-grip{background:var(--ui-cor-primaria, #00E08A);width:46px;box-shadow:0 0 8px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 45%,transparent)}:host(.ui-camadas--redimensionando){-webkit-user-select:none!important;user-select:none!important;cursor:ns-resize!important}:host(.ui-camadas--redimensionando) *{-webkit-user-select:none!important;user-select:none!important}.ui-col-lock.ui-lock-open{opacity:.28}.ui-col-lock.ui-lock-open:hover,.ui-col-lock.ui-lock-open:focus-visible{opacity:.8}.ui-col-lock[data-locked-by-layer]{cursor:not-allowed}.ui-col[role=button]:focus-visible,.ui-basemap-card:focus-visible,.ui-feat-row:focus-visible,.ui-layer-row:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:-2px}.ui-footer-btn.confirming{color:var(--ui-cor-botao-destrutivo-texto, #ffffff);background:var(--ui-cor-botao-destrutivo-hover, #b71c1c);width:auto;padding:0 6px}.ui-truncate-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;margin:4px 8px 6px;background:color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 70%,transparent);border:1px dashed var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 4px);font-size:10px;color:var(--ui-cor-texto-secundario, #9696a6)}.ui-truncate-notice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-truncate-more-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--ui-cor-superficie, #141417);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .18));border-radius:var(--ui-raio-borda, 4px);color:var(--ui-cor-primaria, #00E08A);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--camada-transicao)}.ui-truncate-more-btn:hover{background:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08));border-color:var(--ui-cor-primaria, #00E08A)}.ui-truncate-more-btn:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:1px}:host(.degrade),:host(.gradiente),:host([data-degrade]:not([data-degrade="false"])),.ui-camadas-container[data-degrade]:not([data-degrade=false]){--ui-camadas-fundo: var(--ui-gradiente-superficie);--ui-camadas-toggle-fundo: var(--ui-gradiente-superficie)}`;
|
|
1528
|
+
function vt(e, t) {
|
|
1279
1529
|
t.querySelectorAll("[data-layer-row]").forEach((r) => {
|
|
1280
1530
|
const o = r.getAttribute("data-layer-row") === e.camadaAtivaId;
|
|
1281
|
-
r.classList.toggle("active-drawing-layer", o),
|
|
1531
|
+
r.classList.toggle("active-drawing-layer", o), _e(r, "camada-ativa", o), o ? r.setAttribute("aria-current", "true") : r.removeAttribute("aria-current");
|
|
1282
1532
|
});
|
|
1283
1533
|
}
|
|
1284
|
-
function
|
|
1534
|
+
function bt(e, t) {
|
|
1285
1535
|
t.querySelectorAll(".ui-feat-row").forEach((a) => {
|
|
1286
1536
|
const r = a.getAttribute("data-feat-row"), i = r ? e.selectedFeatureIds.has(r) : !1;
|
|
1287
|
-
a.classList.toggle("selected-row", i),
|
|
1537
|
+
a.classList.toggle("selected-row", i), _e(a, "feicao-selecionada", i), a.setAttribute("aria-selected", String(i));
|
|
1288
1538
|
const o = a.querySelector(".ui-target-circle");
|
|
1289
1539
|
o && o.classList.toggle("selected", i);
|
|
1290
1540
|
}), t.querySelectorAll(".ui-layer-group").forEach((a) => {
|
|
1291
|
-
const r = a.getAttribute("data-layer-id"), i =
|
|
1292
|
-
|
|
1293
|
-
}),
|
|
1541
|
+
const r = a.getAttribute("data-layer-id"), i = ae(e.camadas, e.feicoes, r ?? ""), o = W(i, e.searchQuery);
|
|
1542
|
+
ua(a.querySelector(".ui-layer-row .ui-target-circle"), o, e.selectedFeatureIds);
|
|
1543
|
+
}), pa(e, t);
|
|
1294
1544
|
}
|
|
1295
|
-
function
|
|
1545
|
+
function ua(e, t, a) {
|
|
1296
1546
|
if (!e) return;
|
|
1297
1547
|
if (t.length === 0) {
|
|
1298
1548
|
e.classList.remove("selected", "partial");
|
|
@@ -1301,28 +1551,28 @@ function ra(e, t, a) {
|
|
|
1301
1551
|
const r = t.every((o) => a.has(o.id)), i = !r && t.some((o) => a.has(o.id));
|
|
1302
1552
|
e.classList.toggle("selected", r), e.classList.toggle("partial", i);
|
|
1303
1553
|
}
|
|
1304
|
-
function
|
|
1305
|
-
const a = e.feicoes.filter((
|
|
1554
|
+
function pa(e, t) {
|
|
1555
|
+
const a = e.feicoes.filter((p) => e.selectedFeatureIds.has(p.id)), r = a.length > 0, i = t.getElementById("footer-count"), o = t.getElementById("footer-label");
|
|
1306
1556
|
if (i && (i.textContent = String(r ? a.length : e.camadas.length)), o) {
|
|
1307
|
-
const
|
|
1308
|
-
o.innerHTML =
|
|
1557
|
+
const p = Je(e.camadas.length, a.length);
|
|
1558
|
+
o.innerHTML = p.icone, o.title = p.texto, o.setAttribute("aria-label", p.texto);
|
|
1309
1559
|
}
|
|
1310
1560
|
const n = t.querySelector(".ui-tree-footer");
|
|
1311
1561
|
n && (n.classList.toggle("tem-selecao", r), n.classList.toggle("sem-selecao", !r));
|
|
1312
1562
|
const s = t.querySelector(".ui-footer-actions-gerais");
|
|
1313
1563
|
s && (s.style.display = r ? "none" : "flex");
|
|
1314
1564
|
const c = t.querySelector(".ui-footer-bulk-actions");
|
|
1315
|
-
c && (c.style.display = r ? "flex" : "none"), ["btn-footer-del"].forEach((
|
|
1316
|
-
const
|
|
1317
|
-
|
|
1565
|
+
c && (c.style.display = r ? "flex" : "none"), ["btn-footer-del"].forEach((p) => {
|
|
1566
|
+
const d = t.getElementById(p);
|
|
1567
|
+
d && (d.disabled = !r, d.classList.toggle("disabled", !r));
|
|
1318
1568
|
});
|
|
1319
1569
|
const l = t.querySelector(".ui-footer-move-wrapper");
|
|
1320
1570
|
l && l.classList.toggle("disabled", !r);
|
|
1321
|
-
const
|
|
1322
|
-
|
|
1571
|
+
const u = t.getElementById("select-footer-move");
|
|
1572
|
+
u && (u.disabled = !r);
|
|
1323
1573
|
}
|
|
1324
|
-
function
|
|
1325
|
-
const a =
|
|
1574
|
+
function Ge(e, t) {
|
|
1575
|
+
const a = fe(e.camadas), r = new Map(e.camadas.map((n) => [n.id, n]));
|
|
1326
1576
|
t.querySelectorAll(".ui-layer-row").forEach((n) => {
|
|
1327
1577
|
const s = a.get(n.getAttribute("data-layer-row") || "");
|
|
1328
1578
|
n.classList.toggle("herdado-oculto", (s == null ? void 0 : s.ocultaPorAncestral) === !0), n.classList.toggle("herdado-travado", (s == null ? void 0 : s.travadaPorAncestral) === !0);
|
|
@@ -1331,18 +1581,18 @@ function Pe(e, t) {
|
|
|
1331
1581
|
t.querySelectorAll(".ui-feat-row").forEach((n) => {
|
|
1332
1582
|
const s = n.getAttribute("data-feat-layer") || "", c = r.get(s), l = a.get(s);
|
|
1333
1583
|
n.classList.toggle("herdado-oculto", (c == null ? void 0 : c.visible) === !1 || (l == null ? void 0 : l.ocultaPorAncestral) === !0);
|
|
1334
|
-
const
|
|
1335
|
-
if (!
|
|
1336
|
-
const
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1584
|
+
const u = n.querySelector("[data-feat-lock]"), p = i.get(n.getAttribute("data-feat-row") || "");
|
|
1585
|
+
if (!u || !p) return;
|
|
1586
|
+
const d = (c == null ? void 0 : c.locked) === !0 || (l == null ? void 0 : l.travadaPorAncestral) === !0, f = p.locked === !0 || d;
|
|
1587
|
+
u.innerHTML = f ? b.cadeadoTrancado : b.cadeadoAberto, u.classList.toggle("ui-lock-open", !f), d ? u.setAttribute("data-locked-by-layer", "true") : u.removeAttribute("data-locked-by-layer"), T(
|
|
1588
|
+
u,
|
|
1589
|
+
d ? "Bloqueada pela camada" : f ? "Desbloquear Feição" : "Bloquear Feição"
|
|
1340
1590
|
);
|
|
1341
1591
|
});
|
|
1342
1592
|
const o = t.getElementById("select-footer-move");
|
|
1343
|
-
o && (o.innerHTML = `<option value="" disabled selected>Mover para...</option>${
|
|
1593
|
+
o && (o.innerHTML = `<option value="" disabled selected>Mover para...</option>${We(e.camadas)}`);
|
|
1344
1594
|
}
|
|
1345
|
-
function
|
|
1595
|
+
function yt(e, t) {
|
|
1346
1596
|
t.querySelectorAll("[data-layer-row]").forEach((i) => {
|
|
1347
1597
|
i.addEventListener("click", (o) => {
|
|
1348
1598
|
if (o.target.closest(
|
|
@@ -1361,10 +1611,10 @@ function ot(e, t) {
|
|
|
1361
1611
|
const s = i.closest(".ui-layer-group"), c = i.querySelector(".ui-chevron-icon"), l = e.expandedLayers.has(n);
|
|
1362
1612
|
if (c && c.classList.toggle("open", l), s) {
|
|
1363
1613
|
s.setAttribute("aria-expanded", String(l));
|
|
1364
|
-
const
|
|
1365
|
-
|
|
1614
|
+
const u = s.querySelector(".ui-children-container");
|
|
1615
|
+
u && (u.style.display = l ? "block" : "none");
|
|
1366
1616
|
}
|
|
1367
|
-
|
|
1617
|
+
T(i, l ? "Recolher grupo" : "Expandir grupo"), xt(e, t), e.salvarLembrancaEstado();
|
|
1368
1618
|
});
|
|
1369
1619
|
}), t.querySelectorAll("[data-layer-eye]").forEach((i) => {
|
|
1370
1620
|
i.addEventListener("click", (o) => {
|
|
@@ -1373,9 +1623,9 @@ function ot(e, t) {
|
|
|
1373
1623
|
if (s) {
|
|
1374
1624
|
s.visible = s.visible === !1;
|
|
1375
1625
|
const c = s.visible !== !1;
|
|
1376
|
-
i.innerHTML = c ?
|
|
1626
|
+
i.innerHTML = c ? b.olhoAberto : b.olhoFechado, T(i, c ? "Ocultar Camada" : "Exibir Camada");
|
|
1377
1627
|
const l = i.closest(".ui-layer-row");
|
|
1378
|
-
l && l.classList.toggle("hidden-layer", !c),
|
|
1628
|
+
l && l.classList.toggle("hidden-layer", !c), wt(e, t), Ge(e, t), e.salvarLembrancaEstado(), e.dispararEvento("ui-camada-visibilidade", {
|
|
1379
1629
|
camadaId: s.id,
|
|
1380
1630
|
visivel: c
|
|
1381
1631
|
});
|
|
@@ -1385,7 +1635,7 @@ function ot(e, t) {
|
|
|
1385
1635
|
i.addEventListener("click", (o) => {
|
|
1386
1636
|
o.stopPropagation();
|
|
1387
1637
|
const n = i.getAttribute("data-layer-lock"), s = e.camadas.find((c) => c.id === n);
|
|
1388
|
-
s && (s.locked = !s.locked, i.innerHTML = s.locked ?
|
|
1638
|
+
s && (s.locked = !s.locked, i.innerHTML = s.locked ? b.cadeadoTrancado : b.cadeadoAberto, i.classList.toggle("ui-lock-open", !s.locked), T(i, s.locked ? "Desbloquear Camada" : "Bloquear Camada"), Ge(e, t), e.salvarLembrancaEstado(), e.dispararEvento("ui-camada-bloqueio", {
|
|
1389
1639
|
camadaId: s.id,
|
|
1390
1640
|
bloqueado: s.locked
|
|
1391
1641
|
}));
|
|
@@ -1410,31 +1660,31 @@ function ot(e, t) {
|
|
|
1410
1660
|
const a = (i, o, n) => {
|
|
1411
1661
|
const s = e.camadas.find((f) => f.id === i);
|
|
1412
1662
|
if (!s) return;
|
|
1413
|
-
const c =
|
|
1663
|
+
const c = K(o, s.color || "#00E08A");
|
|
1414
1664
|
s.color = c;
|
|
1415
1665
|
const l = t.getElementById(`sample-color-${i}`);
|
|
1416
1666
|
l && (l.style.backgroundColor = c);
|
|
1417
|
-
const
|
|
1418
|
-
|
|
1419
|
-
const
|
|
1420
|
-
|
|
1421
|
-
const
|
|
1422
|
-
if (
|
|
1423
|
-
const f =
|
|
1667
|
+
const u = t.getElementById(`hex-color-${i}`);
|
|
1668
|
+
u && (u.textContent = c.toUpperCase());
|
|
1669
|
+
const p = t.getElementById(`settings-drawer-${i}`);
|
|
1670
|
+
p && p.style.setProperty("--drawer-cor-camada", c);
|
|
1671
|
+
const d = D(t, "data-layer-row", i);
|
|
1672
|
+
if (d) {
|
|
1673
|
+
const f = d.closest(".ui-layer-group");
|
|
1424
1674
|
f == null || f.style.setProperty("--layer-active-color", c);
|
|
1425
1675
|
const m = f == null ? void 0 : f.querySelector(":scope > .ui-children-container");
|
|
1426
1676
|
m == null || m.style.setProperty("--parent-layer-color", c);
|
|
1427
|
-
const
|
|
1428
|
-
|
|
1429
|
-
const
|
|
1430
|
-
f == null || f.querySelectorAll(".ui-feat-row").forEach((
|
|
1431
|
-
if (
|
|
1432
|
-
const
|
|
1433
|
-
|
|
1434
|
-
const k =
|
|
1677
|
+
const h = d.querySelector(".ui-col-colorbar");
|
|
1678
|
+
h && (h.style.backgroundColor = c);
|
|
1679
|
+
const v = new Map(e.feicoes.map((g) => [g.id, g]));
|
|
1680
|
+
f == null || f.querySelectorAll(".ui-feat-row").forEach((g) => {
|
|
1681
|
+
if (g.getAttribute("data-feat-layer") !== i) return;
|
|
1682
|
+
const w = g.querySelector(".ui-col-colorbar");
|
|
1683
|
+
w && (w.style.backgroundColor = c);
|
|
1684
|
+
const k = v.get(g.getAttribute("data-feat-row") || "");
|
|
1435
1685
|
if (!k || k.color) return;
|
|
1436
|
-
const
|
|
1437
|
-
|
|
1686
|
+
const L = g.querySelector(".ui-thumb-box");
|
|
1687
|
+
L && (L.innerHTML = ea(k.type || k.geometryType, c, k.coordinates));
|
|
1438
1688
|
});
|
|
1439
1689
|
}
|
|
1440
1690
|
n ? e.salvarLembrancaEstado() : e.agendarSalvarLembranca(), e.dispararEvento("ui-camada-cor", { camadaId: s.id, cor: c });
|
|
@@ -1443,19 +1693,19 @@ function ot(e, t) {
|
|
|
1443
1693
|
const o = i, n = (s) => (c) => {
|
|
1444
1694
|
const l = o.getAttribute("data-layer-color-picker");
|
|
1445
1695
|
if (!l) return;
|
|
1446
|
-
const
|
|
1447
|
-
a(l,
|
|
1696
|
+
const u = c.target.value;
|
|
1697
|
+
a(l, u, s);
|
|
1448
1698
|
};
|
|
1449
1699
|
o.addEventListener("input", n(!1)), o.addEventListener("change", n(!0));
|
|
1450
1700
|
}), t.querySelectorAll("[data-layer-color]").forEach((i) => {
|
|
1451
1701
|
const o = (n) => {
|
|
1452
1702
|
n.stopPropagation();
|
|
1453
1703
|
const s = i.getAttribute("data-layer-color"), c = e.camadas.find((l) => l.id === s);
|
|
1454
|
-
!s || !c ||
|
|
1704
|
+
!s || !c || Oa({
|
|
1455
1705
|
ancora: i,
|
|
1456
1706
|
titulo: `Cor · ${c.name || "Camada"}`,
|
|
1457
1707
|
modo: "simples",
|
|
1458
|
-
cor:
|
|
1708
|
+
cor: K(c.color, "#00E08A"),
|
|
1459
1709
|
mostrarOpacidade: !1,
|
|
1460
1710
|
aoAlterar: (l) => a(s, l.cor, !1),
|
|
1461
1711
|
aoConfirmar: (l) => a(s, l.cor, !0),
|
|
@@ -1473,7 +1723,7 @@ function ot(e, t) {
|
|
|
1473
1723
|
n.opacity = o;
|
|
1474
1724
|
const s = t.getElementById(`badge-op-${i}`);
|
|
1475
1725
|
s && (s.textContent = `${Math.round(o * 100)}%`);
|
|
1476
|
-
const c =
|
|
1726
|
+
const c = D(t, "data-layer-opacity-slider", i);
|
|
1477
1727
|
c && parseFloat(c.value) !== o && (c.value = String(o)), e.agendarSalvarLembranca(), e.dispararEvento("ui-camada-opacidade", { camadaId: n.id, opacidade: o });
|
|
1478
1728
|
};
|
|
1479
1729
|
t.querySelectorAll("[data-layer-opacity-slider]").forEach((i) => {
|
|
@@ -1496,29 +1746,29 @@ function ot(e, t) {
|
|
|
1496
1746
|
if (!c) return;
|
|
1497
1747
|
if (i.classList.contains("confirming")) {
|
|
1498
1748
|
n(), e.dispararEvento("ui-camada-excluida", { camadaId: c });
|
|
1499
|
-
const
|
|
1500
|
-
e.camadas.forEach((
|
|
1501
|
-
|
|
1502
|
-
}), e.removerCamada(c), e.selectedFeatureIds.size !==
|
|
1749
|
+
const u = e.selectedFeatureIds.size;
|
|
1750
|
+
e.camadas.forEach((p) => {
|
|
1751
|
+
p.parentId === c && (p.parentId = null);
|
|
1752
|
+
}), e.removerCamada(c), e.selectedFeatureIds.size !== u && e.notificarMudancaSelecao();
|
|
1503
1753
|
} else {
|
|
1504
1754
|
i.classList.add("confirming");
|
|
1505
|
-
const
|
|
1506
|
-
|
|
1755
|
+
const u = i.querySelector(".ui-btn-label");
|
|
1756
|
+
u && (u.textContent = "Confirmar Exclusão?"), o = setTimeout(n, 3500);
|
|
1507
1757
|
}
|
|
1508
1758
|
});
|
|
1509
1759
|
}), t.querySelectorAll("[data-layer-parent-select]").forEach((i) => {
|
|
1510
1760
|
i.addEventListener("change", (o) => {
|
|
1511
|
-
const n = o.target, s = n.getAttribute("data-layer-parent-select"), c = n.value || null, l = e.camadas.find((
|
|
1761
|
+
const n = o.target, s = n.getAttribute("data-layer-parent-select"), c = n.value || null, l = e.camadas.find((u) => u.id === s);
|
|
1512
1762
|
if (l) {
|
|
1513
|
-
if (c && (c === l.id ||
|
|
1763
|
+
if (c && (c === l.id || N(e.camadas, c, l.id))) {
|
|
1514
1764
|
n.value = l.parentId || "";
|
|
1515
1765
|
return;
|
|
1516
1766
|
}
|
|
1517
|
-
const
|
|
1767
|
+
const u = l.parentId ?? null;
|
|
1518
1768
|
l.parentId = c, c && e.expandedLayers.add(c), e.salvarLembrancaEstado(), e.dispararEvento("ui-camada-mover-hierarquia", {
|
|
1519
1769
|
camadaId: l.id,
|
|
1520
1770
|
novoParentId: c,
|
|
1521
|
-
parentAnteriorId:
|
|
1771
|
+
parentAnteriorId: u,
|
|
1522
1772
|
camada: l
|
|
1523
1773
|
}), e.solicitarRenderizacao();
|
|
1524
1774
|
}
|
|
@@ -1529,18 +1779,18 @@ function ot(e, t) {
|
|
|
1529
1779
|
const n = i.getAttribute("data-add-sublayer");
|
|
1530
1780
|
e.dispararEvento("ui-camada-adicionar", { parentId: n });
|
|
1531
1781
|
});
|
|
1532
|
-
}),
|
|
1782
|
+
}), fa(e, t), t.querySelectorAll("[data-layer-target]").forEach((i) => {
|
|
1533
1783
|
i.addEventListener("click", (o) => {
|
|
1534
1784
|
o.stopPropagation();
|
|
1535
1785
|
const n = o, s = i.getAttribute("data-layer-target");
|
|
1536
1786
|
if (!s) return;
|
|
1537
|
-
const c =
|
|
1787
|
+
const c = ae(e.camadas, e.feicoes, s), l = W(c, e.searchQuery);
|
|
1538
1788
|
if (l.length === 0) return;
|
|
1539
|
-
l.every((
|
|
1789
|
+
l.every((p) => e.selectedFeatureIds.has(p.id)) ? l.forEach((p) => e.selectedFeatureIds.delete(p.id)) : (!n.ctrlKey && !n.metaKey && e.selectedFeatureIds.clear(), l.forEach((p) => e.selectedFeatureIds.add(p.id))), e.lastClickedFeatureId = l[l.length - 1].id, e.sincronizarSelecaoDOM(), e.notificarMudancaSelecao();
|
|
1540
1790
|
});
|
|
1541
1791
|
});
|
|
1542
1792
|
}
|
|
1543
|
-
function
|
|
1793
|
+
function fa(e, t) {
|
|
1544
1794
|
t.querySelectorAll("[data-layer-show-more]").forEach((a) => {
|
|
1545
1795
|
a.addEventListener("click", (r) => {
|
|
1546
1796
|
r.stopPropagation();
|
|
@@ -1549,49 +1799,49 @@ function oa(e, t) {
|
|
|
1549
1799
|
});
|
|
1550
1800
|
});
|
|
1551
1801
|
}
|
|
1552
|
-
function
|
|
1802
|
+
function xt(e, t) {
|
|
1553
1803
|
const a = t.getElementById("btn-toggle-all-expand");
|
|
1554
1804
|
if (!a) return;
|
|
1555
1805
|
const r = e.camadas.length > 0 && e.camadas.every((o) => e.expandedLayers.has(o.id)), i = a.querySelector(".ui-chevron-icon");
|
|
1556
|
-
i && i.classList.toggle("open", r),
|
|
1806
|
+
i && i.classList.toggle("open", r), T(
|
|
1557
1807
|
a,
|
|
1558
1808
|
r ? "Recolher Todos os Grupos" : "Expandir Todos os Grupos"
|
|
1559
1809
|
);
|
|
1560
1810
|
}
|
|
1561
|
-
function
|
|
1811
|
+
function wt(e, t) {
|
|
1562
1812
|
const a = t.getElementById("btn-toggle-all-vis");
|
|
1563
1813
|
if (!a) return;
|
|
1564
1814
|
const r = e.camadas.every((i) => i.visible !== !1);
|
|
1565
|
-
a.innerHTML = r ?
|
|
1815
|
+
a.innerHTML = r ? b.olhoAberto : b.olhoFechado, T(a, r ? "Ocultar Todas as Camadas" : "Exibir Todas as Camadas");
|
|
1566
1816
|
}
|
|
1567
|
-
function
|
|
1817
|
+
function At(e, t) {
|
|
1568
1818
|
const a = t.getElementById("select-footer-move");
|
|
1569
1819
|
a && a.addEventListener("change", (n) => {
|
|
1570
1820
|
const s = n.target.value;
|
|
1571
1821
|
if (!s) return;
|
|
1572
|
-
const c =
|
|
1822
|
+
const c = ce(e.camadas);
|
|
1573
1823
|
if (c.has(s)) {
|
|
1574
1824
|
a.value = "";
|
|
1575
1825
|
return;
|
|
1576
1826
|
}
|
|
1577
1827
|
const l = e.feicoes.filter(
|
|
1578
|
-
(
|
|
1828
|
+
(p) => e.selectedFeatureIds.has(p.id) && !c.has(p.layerId) && p.locked !== !0
|
|
1579
1829
|
);
|
|
1580
1830
|
if (l.length === 0) {
|
|
1581
1831
|
a.value = "";
|
|
1582
1832
|
return;
|
|
1583
1833
|
}
|
|
1584
|
-
const
|
|
1585
|
-
l.forEach((
|
|
1586
|
-
|
|
1587
|
-
feicaoId:
|
|
1588
|
-
camadaOrigemId:
|
|
1834
|
+
const u = new Map(l.map((p) => [p.id, p.layerId]));
|
|
1835
|
+
l.forEach((p) => p.layerId = s), l.forEach((p) => {
|
|
1836
|
+
u.get(p.id) !== s && e.dispararEvento("ui-feicao-movida", {
|
|
1837
|
+
feicaoId: p.id,
|
|
1838
|
+
camadaOrigemId: u.get(p.id),
|
|
1589
1839
|
camadaDestinoId: s,
|
|
1590
|
-
feicao:
|
|
1840
|
+
feicao: p
|
|
1591
1841
|
});
|
|
1592
1842
|
}), e.dispararEvento("ui-acao-massa", {
|
|
1593
1843
|
acao: "mover",
|
|
1594
|
-
feicoesIds: l.map((
|
|
1844
|
+
feicoesIds: l.map((p) => p.id),
|
|
1595
1845
|
feicoes: l,
|
|
1596
1846
|
valor: s
|
|
1597
1847
|
}), e.solicitarRenderizacao();
|
|
@@ -1608,45 +1858,45 @@ function lt(e, t) {
|
|
|
1608
1858
|
if (o) {
|
|
1609
1859
|
let n = null;
|
|
1610
1860
|
const s = "Excluir selecionados", c = () => {
|
|
1611
|
-
n && (clearTimeout(n), n = null), o.classList.remove("confirming"),
|
|
1861
|
+
n && (clearTimeout(n), n = null), o.classList.remove("confirming"), T(o, s);
|
|
1612
1862
|
};
|
|
1613
1863
|
o.addEventListener("ui-cancelar-confirmacao", c), o.addEventListener("click", () => {
|
|
1614
|
-
const l =
|
|
1864
|
+
const l = ce(e.camadas), u = e.feicoes.filter(
|
|
1615
1865
|
(f) => e.selectedFeatureIds.has(f.id) && !l.has(f.layerId) && f.locked !== !0
|
|
1616
1866
|
);
|
|
1617
|
-
if (
|
|
1618
|
-
const
|
|
1867
|
+
if (u.length === 0) return;
|
|
1868
|
+
const p = u.map((f) => f.id);
|
|
1619
1869
|
if (!o.classList.contains("confirming")) {
|
|
1620
|
-
o.classList.add("confirming"),
|
|
1870
|
+
o.classList.add("confirming"), T(o, `Clique novamente para excluir ${p.length} selecionado(s)`), n = setTimeout(c, 3500);
|
|
1621
1871
|
return;
|
|
1622
1872
|
}
|
|
1623
1873
|
c();
|
|
1624
|
-
const
|
|
1625
|
-
e.feicoes = e.feicoes.filter((f) => !
|
|
1874
|
+
const d = new Set(p);
|
|
1875
|
+
e.feicoes = e.feicoes.filter((f) => !d.has(f.id)), p.forEach((f) => e.selectedFeatureIds.delete(f)), e.lastClickedFeatureId && d.has(e.lastClickedFeatureId) && (e.lastClickedFeatureId = null), e.dispararEvento("ui-acao-massa", {
|
|
1626
1876
|
acao: "excluir",
|
|
1627
|
-
feicoesIds:
|
|
1628
|
-
feicoes:
|
|
1877
|
+
feicoesIds: p,
|
|
1878
|
+
feicoes: u
|
|
1629
1879
|
}), e.notificarMudancaSelecao(), e.solicitarRenderizacao();
|
|
1630
1880
|
});
|
|
1631
1881
|
}
|
|
1632
1882
|
}
|
|
1633
|
-
const
|
|
1883
|
+
const Et = [
|
|
1634
1884
|
{ tipo: "olho", atributo: "data-layer-eye", entidade: "camada" },
|
|
1635
1885
|
{ tipo: "olho", atributo: "data-feat-eye", entidade: "feicao" },
|
|
1636
1886
|
{ tipo: "cadeado", atributo: "data-layer-lock", entidade: "camada" },
|
|
1637
1887
|
{ tipo: "cadeado", atributo: "data-feat-lock", entidade: "feicao" },
|
|
1638
1888
|
{ tipo: "selecao", atributo: "data-layer-target", entidade: "camada" },
|
|
1639
1889
|
{ tipo: "selecao", atributo: "data-feat-target", entidade: "feicao" }
|
|
1640
|
-
],
|
|
1890
|
+
], Le = {
|
|
1641
1891
|
olho: "[data-layer-eye], [data-feat-eye]",
|
|
1642
1892
|
cadeado: "[data-layer-lock], [data-feat-lock]",
|
|
1643
1893
|
selecao: "[data-layer-target], [data-feat-target]"
|
|
1644
|
-
},
|
|
1645
|
-
function
|
|
1646
|
-
return
|
|
1894
|
+
}, It = 3;
|
|
1895
|
+
function kt(e) {
|
|
1896
|
+
return Et.find((t) => e.hasAttribute(t.atributo)) ?? null;
|
|
1647
1897
|
}
|
|
1648
|
-
function
|
|
1649
|
-
const a =
|
|
1898
|
+
function Ie(e, t) {
|
|
1899
|
+
const a = kt(t);
|
|
1650
1900
|
if (!a) return null;
|
|
1651
1901
|
const r = t.getAttribute(a.atributo);
|
|
1652
1902
|
if (!r) return null;
|
|
@@ -1660,13 +1910,13 @@ function ve(e, t) {
|
|
|
1660
1910
|
return o ? o.locked === !0 : null;
|
|
1661
1911
|
}
|
|
1662
1912
|
if (a.entidade === "feicao") return e.selectedFeatureIds.has(r);
|
|
1663
|
-
const i =
|
|
1664
|
-
|
|
1913
|
+
const i = W(
|
|
1914
|
+
ae(e.camadas, e.feicoes, r),
|
|
1665
1915
|
e.searchQuery
|
|
1666
1916
|
);
|
|
1667
1917
|
return i.length === 0 ? null : i.every((o) => e.selectedFeatureIds.has(o.id));
|
|
1668
1918
|
}
|
|
1669
|
-
function
|
|
1919
|
+
function Ve(e, t, a = !1) {
|
|
1670
1920
|
e.dispatchEvent(
|
|
1671
1921
|
new MouseEvent("click", {
|
|
1672
1922
|
bubbles: !0,
|
|
@@ -1677,53 +1927,53 @@ function De(e, t, a = !1) {
|
|
|
1677
1927
|
);
|
|
1678
1928
|
}
|
|
1679
1929
|
let q = null;
|
|
1680
|
-
function
|
|
1930
|
+
function Lt(e) {
|
|
1681
1931
|
(q == null ? void 0 : q.host) === e && q.cancelar();
|
|
1682
1932
|
}
|
|
1683
|
-
function
|
|
1684
|
-
Object.keys(
|
|
1685
|
-
a.querySelectorAll(
|
|
1686
|
-
i.addEventListener("pointerdown", (o) =>
|
|
1933
|
+
function ma(e, t, a = t) {
|
|
1934
|
+
Object.keys(Le).forEach((r) => {
|
|
1935
|
+
a.querySelectorAll(Le[r]).forEach((i) => {
|
|
1936
|
+
i.addEventListener("pointerdown", (o) => Ct(e, t, r, i, o));
|
|
1687
1937
|
});
|
|
1688
1938
|
});
|
|
1689
1939
|
}
|
|
1690
|
-
function
|
|
1691
|
-
if (i.pointerType === "mouse" && i.button !== 0 || e.editingLayerId || e.editingFeatureId ||
|
|
1940
|
+
function Ct(e, t, a, r, i) {
|
|
1941
|
+
if (i.pointerType === "mouse" && i.button !== 0 || e.editingLayerId || e.editingFeatureId || Ie(e, r) === null) return;
|
|
1692
1942
|
q == null || q.cancelar();
|
|
1693
|
-
const o =
|
|
1694
|
-
let c = !1, l = !1,
|
|
1695
|
-
const
|
|
1696
|
-
|
|
1697
|
-
}, f = (
|
|
1698
|
-
|
|
1699
|
-
}, m = (
|
|
1700
|
-
|
|
1701
|
-
},
|
|
1702
|
-
c = !0,
|
|
1703
|
-
},
|
|
1704
|
-
var
|
|
1943
|
+
const o = Le[a], n = i.ctrlKey || i.metaKey, s = i.shiftKey;
|
|
1944
|
+
let c = !1, l = !1, u = i.clientY;
|
|
1945
|
+
const p = /* @__PURE__ */ new Set([r]), d = (A) => {
|
|
1946
|
+
A.preventDefault(), A.stopImmediatePropagation();
|
|
1947
|
+
}, f = (A) => {
|
|
1948
|
+
A.stopPropagation(), A.preventDefault();
|
|
1949
|
+
}, m = (A) => A.preventDefault(), h = (A) => {
|
|
1950
|
+
p.has(A) || (p.add(A), Ie(e, A) !== l && Ve(A, a === "selecao"));
|
|
1951
|
+
}, v = () => {
|
|
1952
|
+
c = !0, Ve(r, n, s), l = Ie(e, r) === !0, t.addEventListener("selectstart", m), document.body.style.userSelect = "none";
|
|
1953
|
+
}, g = (A) => {
|
|
1954
|
+
var E, z;
|
|
1705
1955
|
if (!c) {
|
|
1706
|
-
if (Math.hypot(
|
|
1707
|
-
const x = (
|
|
1956
|
+
if (Math.hypot(A.clientX - i.clientX, A.clientY - i.clientY) < It) return;
|
|
1957
|
+
const x = (E = t.elementFromPoint(A.clientX, A.clientY)) == null ? void 0 : E.closest(o);
|
|
1708
1958
|
if (!x || x === r) return;
|
|
1709
|
-
|
|
1959
|
+
v();
|
|
1710
1960
|
}
|
|
1711
|
-
|
|
1712
|
-
const
|
|
1961
|
+
A.preventDefault();
|
|
1962
|
+
const S = Math.min(u, A.clientY), F = Math.max(u, A.clientY);
|
|
1713
1963
|
t.querySelectorAll(o).forEach((x) => {
|
|
1714
|
-
const
|
|
1715
|
-
if (
|
|
1716
|
-
const
|
|
1717
|
-
|
|
1964
|
+
const y = x.getBoundingClientRect();
|
|
1965
|
+
if (y.height === 0) return;
|
|
1966
|
+
const P = y.top + y.height / 2;
|
|
1967
|
+
P >= S && P <= F && h(x);
|
|
1718
1968
|
});
|
|
1719
|
-
const
|
|
1720
|
-
|
|
1721
|
-
},
|
|
1722
|
-
(q == null ? void 0 : q.cancelar) ===
|
|
1723
|
-
}, k = () =>
|
|
1724
|
-
q = { host: e, cancelar:
|
|
1725
|
-
}
|
|
1726
|
-
function
|
|
1969
|
+
const B = (z = t.elementFromPoint(A.clientX, A.clientY)) == null ? void 0 : z.closest(o);
|
|
1970
|
+
B && h(B), u = A.clientY;
|
|
1971
|
+
}, w = (A = !1) => {
|
|
1972
|
+
(q == null ? void 0 : q.cancelar) === L && (q = null), window.removeEventListener("pointermove", g), window.removeEventListener("pointerup", k), window.removeEventListener("pointercancel", k), window.removeEventListener("dragstart", d, !0), t.removeEventListener("selectstart", m), c && (document.body.style.userSelect = "", A || (window.addEventListener("click", f, { capture: !0, once: !0 }), setTimeout(() => window.removeEventListener("click", f, !0), 0)));
|
|
1973
|
+
}, k = () => w(), L = () => w(!0);
|
|
1974
|
+
q = { host: e, cancelar: L }, window.addEventListener("dragstart", d, !0), window.addEventListener("pointermove", g, { passive: !1 }), window.addEventListener("pointerup", k), window.addEventListener("pointercancel", k);
|
|
1975
|
+
}
|
|
1976
|
+
function St(e, t) {
|
|
1727
1977
|
const a = t.getElementById("btn-toggle-all-vis");
|
|
1728
1978
|
a && a.addEventListener("click", () => e.alternarVisibilidadeTodas(!0));
|
|
1729
1979
|
const r = t.getElementById("btn-toggle-all-expand");
|
|
@@ -1731,15 +1981,15 @@ function mt(e, t) {
|
|
|
1731
1981
|
o.stopPropagation(), e.camadas.length > 0 && e.camadas.every((s) => e.expandedLayers.has(s.id)) ? e.colapsarTodas() : e.expandirTodas();
|
|
1732
1982
|
});
|
|
1733
1983
|
const i = t.getElementById("btn-colapsar");
|
|
1734
|
-
i && i.addEventListener("click", () => e.colapsar(!0)),
|
|
1984
|
+
i && i.addEventListener("click", () => e.colapsar(!0)), Ft(e, t);
|
|
1735
1985
|
}
|
|
1736
|
-
function
|
|
1986
|
+
function Ft(e, t) {
|
|
1737
1987
|
const a = t.getElementById("input-layer-search"), r = t.getElementById("btn-clear-layer-search"), i = () => {
|
|
1738
1988
|
var o;
|
|
1739
1989
|
e.searchQuery = "", e.solicitarRenderizacao(), (o = t.getElementById("input-layer-search")) == null || o.focus();
|
|
1740
1990
|
};
|
|
1741
1991
|
if (a) {
|
|
1742
|
-
const o =
|
|
1992
|
+
const o = Ke(() => e.solicitarRenderizacao(), 75);
|
|
1743
1993
|
a.addEventListener("input", (n) => {
|
|
1744
1994
|
e.searchQuery = n.target.value, o();
|
|
1745
1995
|
}), a.addEventListener("keydown", (n) => {
|
|
@@ -1748,7 +1998,7 @@ function gt(e, t) {
|
|
|
1748
1998
|
}
|
|
1749
1999
|
r && r.addEventListener("click", i);
|
|
1750
2000
|
}
|
|
1751
|
-
function
|
|
2001
|
+
function ga(e, t) {
|
|
1752
2002
|
t.querySelectorAll("[data-feat-select]").forEach((a) => {
|
|
1753
2003
|
a.addEventListener("click", (r) => {
|
|
1754
2004
|
if (e.editingFeatureId) return;
|
|
@@ -1773,7 +2023,7 @@ function sa(e, t) {
|
|
|
1773
2023
|
if (o) {
|
|
1774
2024
|
o.visible = o.visible === !1;
|
|
1775
2025
|
const n = o.visible !== !1;
|
|
1776
|
-
a.innerHTML = n ?
|
|
2026
|
+
a.innerHTML = n ? b.olhoAberto : b.olhoFechado, T(a, n ? "Ocultar Feição" : "Exibir Feição");
|
|
1777
2027
|
const s = a.closest(".ui-feat-row");
|
|
1778
2028
|
s && s.classList.toggle("hidden-row", !n), e.dispararEvento("ui-feicao-visibilidade", {
|
|
1779
2029
|
feicaoId: o.id,
|
|
@@ -1785,7 +2035,7 @@ function sa(e, t) {
|
|
|
1785
2035
|
a.addEventListener("click", (r) => {
|
|
1786
2036
|
if (r.stopPropagation(), a.hasAttribute("data-locked-by-layer")) return;
|
|
1787
2037
|
const i = a.getAttribute("data-feat-lock"), o = e.feicoes.find((n) => n.id === i);
|
|
1788
|
-
o && (o.locked = !o.locked, a.innerHTML = o.locked ?
|
|
2038
|
+
o && (o.locked = !o.locked, a.innerHTML = o.locked ? b.cadeadoTrancado : b.cadeadoAberto, a.classList.toggle("ui-lock-open", !o.locked), T(a, o.locked ? "Desbloquear Feição" : "Bloquear Feição"), e.dispararEvento("ui-feicao-bloqueio", {
|
|
1789
2039
|
feicaoId: o.id,
|
|
1790
2040
|
bloqueado: o.locked
|
|
1791
2041
|
}));
|
|
@@ -1798,7 +2048,7 @@ function sa(e, t) {
|
|
|
1798
2048
|
});
|
|
1799
2049
|
});
|
|
1800
2050
|
}
|
|
1801
|
-
function
|
|
2051
|
+
function $t(e, t) {
|
|
1802
2052
|
var a;
|
|
1803
2053
|
(a = t.querySelector("[data-basemap-toggle]")) == null || a.addEventListener("click", () => {
|
|
1804
2054
|
e.alternarMapasBaseRecolhido(!0);
|
|
@@ -1809,10 +2059,10 @@ function vt(e, t) {
|
|
|
1809
2059
|
});
|
|
1810
2060
|
});
|
|
1811
2061
|
}
|
|
1812
|
-
function
|
|
1813
|
-
|
|
2062
|
+
function Mt(e, t) {
|
|
2063
|
+
St(e, t), yt(e, t), ga(e, t), $t(e, t), At(e, t), ma(e, t);
|
|
1814
2064
|
}
|
|
1815
|
-
function
|
|
2065
|
+
function Pt(e) {
|
|
1816
2066
|
if (!e.arvoreRenderizada) return { incremental: !1, motivo: "arvore-nao-renderizada" };
|
|
1817
2067
|
if (e.buscaAtiva) return { incremental: !1, motivo: "busca-ativa" };
|
|
1818
2068
|
if (e.editandoCamada || e.editandoFeicao) return { incremental: !1, motivo: "edicao-inline" };
|
|
@@ -1823,12 +2073,12 @@ function ht(e) {
|
|
|
1823
2073
|
}
|
|
1824
2074
|
return e.idsDuplicados ? { incremental: !1, motivo: "ids-duplicados" } : { incremental: !0 };
|
|
1825
2075
|
}
|
|
1826
|
-
function
|
|
2076
|
+
function ha(e, t = /* @__PURE__ */ new Map()) {
|
|
1827
2077
|
for (const a of e)
|
|
1828
|
-
t.set(a.camada.id, a),
|
|
2078
|
+
t.set(a.camada.id, a), ha(a.subcamadas, t);
|
|
1829
2079
|
return t;
|
|
1830
2080
|
}
|
|
1831
|
-
function
|
|
2081
|
+
function zt(e) {
|
|
1832
2082
|
const t = /* @__PURE__ */ new Map();
|
|
1833
2083
|
for (let a = 0; a < e.length; a++) {
|
|
1834
2084
|
const r = e[a];
|
|
@@ -1838,23 +2088,24 @@ function yt(e) {
|
|
|
1838
2088
|
}
|
|
1839
2089
|
return t;
|
|
1840
2090
|
}
|
|
1841
|
-
function
|
|
2091
|
+
function J(e, t) {
|
|
1842
2092
|
for (let a = e.firstElementChild; a; a = a.nextElementSibling)
|
|
1843
2093
|
if (a.classList.contains(t)) return a;
|
|
1844
2094
|
return null;
|
|
1845
2095
|
}
|
|
1846
|
-
function
|
|
2096
|
+
function Bt(e) {
|
|
1847
2097
|
const t = /* @__PURE__ */ new Map(), a = (r) => {
|
|
1848
|
-
for (let i = r.firstElementChild; i
|
|
2098
|
+
for (let i = r.firstElementChild; i; i = i.nextElementSibling) {
|
|
2099
|
+
if (!i.classList.contains("ui-layer-group")) continue;
|
|
1849
2100
|
const o = i.getAttribute("data-layer-id");
|
|
1850
2101
|
o !== null && t.set(o, i);
|
|
1851
|
-
const n =
|
|
2102
|
+
const n = J(i, "ui-children-container");
|
|
1852
2103
|
n && a(n);
|
|
1853
2104
|
}
|
|
1854
2105
|
};
|
|
1855
2106
|
return a(e), t;
|
|
1856
2107
|
}
|
|
1857
|
-
function
|
|
2108
|
+
function qt(e) {
|
|
1858
2109
|
if (!e || e.length < 2) return !1;
|
|
1859
2110
|
const t = /* @__PURE__ */ new Set();
|
|
1860
2111
|
for (const a of e) {
|
|
@@ -1863,7 +2114,7 @@ function wt(e) {
|
|
|
1863
2114
|
}
|
|
1864
2115
|
return !1;
|
|
1865
2116
|
}
|
|
1866
|
-
function
|
|
2117
|
+
function Dt(e, t) {
|
|
1867
2118
|
var i;
|
|
1868
2119
|
const a = new Map(t.map((o) => [o.id, o])), r = /* @__PURE__ */ new Set();
|
|
1869
2120
|
for (const o of e) {
|
|
@@ -1873,142 +2124,145 @@ function At(e, t) {
|
|
|
1873
2124
|
}
|
|
1874
2125
|
return r;
|
|
1875
2126
|
}
|
|
1876
|
-
function
|
|
2127
|
+
function de(e) {
|
|
1877
2128
|
const t = document.createElement("template");
|
|
1878
2129
|
return t.innerHTML = e, { modelo: t, elementos: Array.from(t.content.children) };
|
|
1879
2130
|
}
|
|
1880
|
-
function
|
|
2131
|
+
function ue(e) {
|
|
1881
2132
|
var a;
|
|
1882
2133
|
const t = e.nextSibling;
|
|
1883
2134
|
t && t.nodeType === 3 && !(t.textContent ?? "").trim() && ((a = t.parentNode) == null || a.removeChild(t)), e.remove();
|
|
1884
2135
|
}
|
|
1885
|
-
function
|
|
2136
|
+
function Tt(e, t) {
|
|
1886
2137
|
if (!e || !t.contains(e)) return null;
|
|
1887
2138
|
const a = Array.from(e.attributes).find((r) => r.name.startsWith("data-") && r.value !== "");
|
|
1888
2139
|
return a ? { nome: a.name, valor: a.value } : null;
|
|
1889
2140
|
}
|
|
1890
|
-
function
|
|
1891
|
-
|
|
2141
|
+
function Ot(e, t) {
|
|
2142
|
+
var F, B;
|
|
2143
|
+
const { host: a, shadow: r, mudanca: i } = e;
|
|
2144
|
+
if ((B = (F = a.ordemFilhosPorPai) == null ? void 0 : F.get(t)) != null && B.length) return !1;
|
|
2145
|
+
const o = e.grupos.get(t), n = e.nodos.get(t), s = o ? J(o, "ui-children-container") : null;
|
|
1892
2146
|
if (!o || !n || !s) return !1;
|
|
1893
|
-
const c = n.camada, l = e.porCamada.get(t) ?? [],
|
|
1894
|
-
let
|
|
1895
|
-
for (let
|
|
1896
|
-
|
|
1897
|
-
const
|
|
1898
|
-
if (
|
|
1899
|
-
!
|
|
2147
|
+
const c = n.camada, l = e.porCamada.get(t) ?? [], u = a.expandedFeatureLimits.get(t) ?? Se, p = l.slice(0, u), d = new Set(p.map((E) => E.id)), f = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map(), h = r.activeElement;
|
|
2148
|
+
let v = null;
|
|
2149
|
+
for (let E = s.firstElementChild, z; E; E = z) {
|
|
2150
|
+
z = E.nextElementSibling;
|
|
2151
|
+
const x = E.getAttribute("data-feat-row");
|
|
2152
|
+
if (x === null) {
|
|
2153
|
+
!v && !E.classList.contains("ui-layer-group") && (v = E);
|
|
1900
2154
|
continue;
|
|
1901
2155
|
}
|
|
1902
|
-
const
|
|
1903
|
-
!
|
|
2156
|
+
const y = i.idsAlterados.has(x) && d.has(x) && !f.has(x);
|
|
2157
|
+
!d.has(x) || f.has(x) || y ? (y && m.set(x, { tabindex: E.getAttribute("tabindex"), foco: Tt(h, E) }), ue(E)) : (f.set(x, E), v || (v = E));
|
|
1904
2158
|
}
|
|
1905
|
-
const
|
|
2159
|
+
const g = aa(c, n.depth, e.herdado.get(t)), w = p.filter((E) => !f.has(E.id));
|
|
1906
2160
|
let k = [];
|
|
1907
|
-
if (
|
|
1908
|
-
const
|
|
1909
|
-
(
|
|
1910
|
-
).join(""), { modelo:
|
|
1911
|
-
if (
|
|
1912
|
-
e.ligar(
|
|
1913
|
-
}
|
|
1914
|
-
let
|
|
1915
|
-
const
|
|
1916
|
-
for (const
|
|
1917
|
-
const
|
|
1918
|
-
if (
|
|
1919
|
-
|
|
2161
|
+
if (w.length > 0) {
|
|
2162
|
+
const E = w.map(
|
|
2163
|
+
(y) => sa(y, g, a.selectedFeatureIds.has(y.id), a.editingFeatureId === y.id)
|
|
2164
|
+
).join(""), { modelo: z, elementos: x } = de(E);
|
|
2165
|
+
if (x.length !== w.length) return !1;
|
|
2166
|
+
e.ligar(z.content), k = x;
|
|
2167
|
+
}
|
|
2168
|
+
let L = v, A = 0;
|
|
2169
|
+
const S = /* @__PURE__ */ new Map();
|
|
2170
|
+
for (const E of p) {
|
|
2171
|
+
const z = f.get(E.id);
|
|
2172
|
+
if (z)
|
|
2173
|
+
z === L ? L = z.nextElementSibling : s.insertBefore(z, L);
|
|
1920
2174
|
else {
|
|
1921
|
-
const
|
|
1922
|
-
s.insertBefore(
|
|
2175
|
+
const x = k[A++];
|
|
2176
|
+
s.insertBefore(x, L), S.set(E.id, x);
|
|
1923
2177
|
}
|
|
1924
2178
|
}
|
|
1925
|
-
return m.forEach((
|
|
1926
|
-
const
|
|
1927
|
-
if (!
|
|
1928
|
-
const
|
|
1929
|
-
(
|
|
2179
|
+
return m.forEach((E, z) => {
|
|
2180
|
+
const x = S.get(z);
|
|
2181
|
+
if (!x || (E.tabindex !== null && x.setAttribute("tabindex", E.tabindex), !E.foco)) return;
|
|
2182
|
+
const y = x.getAttribute(E.foco.nome) === E.foco.valor ? x : Array.from(x.querySelectorAll(`[${E.foco.nome}]`)).find(
|
|
2183
|
+
(P) => P.getAttribute(E.foco.nome) === E.foco.valor
|
|
1930
2184
|
);
|
|
1931
|
-
|
|
1932
|
-
}),
|
|
2185
|
+
y == null || y.focus({ preventScroll: !0 });
|
|
2186
|
+
}), Rt(e, s, n, u, l.length);
|
|
1933
2187
|
}
|
|
1934
|
-
function
|
|
1935
|
-
const o =
|
|
1936
|
-
if (
|
|
2188
|
+
function Rt(e, t, a, r, i) {
|
|
2189
|
+
const o = M(a.camada.id), n = !!(a.camada.isGroup || a.subcamadas.length > 0), s = i > r, c = a.subcamadas.length === 0 && i === 0, l = J(t, "ui-truncate-notice"), u = J(t, "ui-empty-row");
|
|
2190
|
+
if (u && !c && ue(u), l && !s && ue(l), s)
|
|
1937
2191
|
if (l) {
|
|
1938
|
-
const
|
|
1939
|
-
if (!
|
|
1940
|
-
|
|
2192
|
+
const p = ia(r, i), d = l.querySelector("span"), f = l.querySelector(".ui-truncate-more-btn");
|
|
2193
|
+
if (!d || !f) return !1;
|
|
2194
|
+
d.textContent !== p.resumo && (d.textContent = p.resumo), f.textContent !== p.botao && (f.textContent = p.botao);
|
|
1941
2195
|
} else {
|
|
1942
|
-
const { modelo:
|
|
1943
|
-
if (
|
|
1944
|
-
e.ligar(
|
|
2196
|
+
const { modelo: p, elementos: d } = de(oa(o, r, i));
|
|
2197
|
+
if (d.length !== 1) return !1;
|
|
2198
|
+
e.ligar(p.content), t.appendChild(d[0]);
|
|
1945
2199
|
}
|
|
1946
|
-
if (c && !
|
|
1947
|
-
const { elementos:
|
|
1948
|
-
if (
|
|
1949
|
-
t.appendChild(
|
|
2200
|
+
if (c && !u) {
|
|
2201
|
+
const { elementos: p } = de(na(n));
|
|
2202
|
+
if (p.length !== 1) return !1;
|
|
2203
|
+
t.appendChild(p[0]);
|
|
1950
2204
|
}
|
|
1951
2205
|
return !0;
|
|
1952
2206
|
}
|
|
1953
|
-
function
|
|
1954
|
-
const a = e.grupos.get(t), r = e.nodos.get(t), i = a ?
|
|
2207
|
+
function jt(e, t) {
|
|
2208
|
+
const a = e.grupos.get(t), r = e.nodos.get(t), i = a ? J(a, "ui-layer-row") : null, o = i == null ? void 0 : i.querySelector(".ui-col-name");
|
|
1955
2209
|
if (!a || !r || !i || !o) return !1;
|
|
1956
|
-
const { host: n } = e, s =
|
|
1957
|
-
if (
|
|
1958
|
-
if (s.length === 0 &&
|
|
1959
|
-
|
|
2210
|
+
const { host: n } = e, s = ae(n.camadas, n.feicoes, t), c = (e.porCamada.get(t) ?? []).length, l = r.subcamadas.length, u = !!(r.camada.isGroup || l > 0), p = o.querySelector(".ui-count-chip");
|
|
2211
|
+
if (p)
|
|
2212
|
+
if (s.length === 0 && u)
|
|
2213
|
+
ue(p);
|
|
1960
2214
|
else {
|
|
1961
|
-
const
|
|
1962
|
-
|
|
2215
|
+
const d = String(s.length), f = ta(s.length, c, l);
|
|
2216
|
+
p.textContent !== d && (p.textContent = d), p.getAttribute("title") !== f && p.setAttribute("title", f);
|
|
1963
2217
|
}
|
|
1964
2218
|
else {
|
|
1965
|
-
const
|
|
1966
|
-
if (
|
|
1967
|
-
const { elementos: f } =
|
|
2219
|
+
const d = ra(s.length, c, l, u);
|
|
2220
|
+
if (d) {
|
|
2221
|
+
const { elementos: f } = de(d);
|
|
1968
2222
|
if (f.length !== 1) return !1;
|
|
1969
2223
|
o.appendChild(f[0]);
|
|
1970
2224
|
}
|
|
1971
2225
|
}
|
|
1972
|
-
return
|
|
2226
|
+
return ua(i.querySelector(".ui-target-circle"), s, n.selectedFeatureIds), !0;
|
|
1973
2227
|
}
|
|
1974
|
-
function
|
|
1975
|
-
const i = t.getElementById("ui-layer-tree-mount"), o =
|
|
1976
|
-
existeNoModelo: o.has(
|
|
1977
|
-
renderizadaNoDom: n.has(
|
|
1978
|
-
drawerAberto: e.activeSettingsLayerId ===
|
|
2228
|
+
function Nt(e, t, a, r) {
|
|
2229
|
+
const i = t.getElementById("ui-layer-tree-mount"), o = ha(pe(e.camadas)), n = i ? Bt(i) : /* @__PURE__ */ new Map(), s = zt(e.feicoes), c = a.camadas === "todas" ? Array.from(o.keys()) : Array.from(a.camadas), l = c.map((d) => ({
|
|
2230
|
+
existeNoModelo: o.has(d),
|
|
2231
|
+
renderizadaNoDom: n.has(d),
|
|
2232
|
+
drawerAberto: e.activeSettingsLayerId === d
|
|
1979
2233
|
}));
|
|
1980
|
-
if (!
|
|
2234
|
+
if (!Pt({
|
|
1981
2235
|
arvoreRenderizada: i !== null,
|
|
1982
2236
|
buscaAtiva: (e.searchQuery || "").trim() !== "",
|
|
1983
2237
|
editandoCamada: e.editingLayerId !== null,
|
|
1984
2238
|
editandoFeicao: e.editingFeatureId !== null,
|
|
1985
|
-
idsDuplicados: c.some((
|
|
2239
|
+
idsDuplicados: c.some((d) => qt(s.get(d))),
|
|
1986
2240
|
camadasAfetadas: l
|
|
1987
2241
|
}).incremental) return !1;
|
|
1988
|
-
const
|
|
2242
|
+
const p = {
|
|
1989
2243
|
host: e,
|
|
1990
2244
|
shadow: t,
|
|
1991
2245
|
mudanca: a,
|
|
1992
2246
|
porCamada: s,
|
|
1993
2247
|
nodos: o,
|
|
1994
2248
|
grupos: n,
|
|
1995
|
-
herdado:
|
|
2249
|
+
herdado: fe(e.camadas),
|
|
1996
2250
|
ligar: r
|
|
1997
2251
|
};
|
|
1998
|
-
for (const
|
|
1999
|
-
if (!
|
|
2000
|
-
for (const
|
|
2001
|
-
if (!
|
|
2002
|
-
return (a.selecaoAfetada || e.selectedFeatureIds.size > 0) &&
|
|
2252
|
+
for (const d of c)
|
|
2253
|
+
if (!Ot(p, d)) return !1;
|
|
2254
|
+
for (const d of Dt(c, e.camadas))
|
|
2255
|
+
if (!jt(p, d)) return !1;
|
|
2256
|
+
return (a.selecaoAfetada || e.selectedFeatureIds.size > 0) && pa(e, t), !0;
|
|
2003
2257
|
}
|
|
2004
|
-
function
|
|
2258
|
+
function Ht(e) {
|
|
2005
2259
|
if (!e.isConnected) return;
|
|
2006
2260
|
const t = document.createElement("div");
|
|
2007
|
-
t.className = "ui-basemap-preview-none", t.innerHTML =
|
|
2261
|
+
t.className = "ui-basemap-preview-none", t.innerHTML = b.gradeCad, e.replaceWith(t);
|
|
2008
2262
|
}
|
|
2009
|
-
function
|
|
2010
|
-
var
|
|
2011
|
-
const i =
|
|
2263
|
+
function Gt(e, t, a, r) {
|
|
2264
|
+
var h, v;
|
|
2265
|
+
const i = ot({
|
|
2012
2266
|
camadas: e.camadas,
|
|
2013
2267
|
feicoes: e.feicoes,
|
|
2014
2268
|
camadaAtivaId: e.camadaAtivaId,
|
|
@@ -2021,50 +2275,51 @@ function $t(e, t, a, r) {
|
|
|
2021
2275
|
titulo: e.titulo,
|
|
2022
2276
|
mostrarBusca: e.mostrarBusca,
|
|
2023
2277
|
limitesPorCamada: e.expandedFeatureLimits,
|
|
2024
|
-
mostrarBotaoColapsar: e.flutuante && e.getAttribute("colapsavel") !== "false"
|
|
2025
|
-
|
|
2278
|
+
mostrarBotaoColapsar: e.flutuante && e.getAttribute("colapsavel") !== "false",
|
|
2279
|
+
ordemFilhosPorPai: e.ordemFilhosPorPai
|
|
2280
|
+
}), o = e.mostrarMapasBase ? Va(e.mapasBase, e.mapaBaseAtivo, e.mapasBaseRecolhido) : "", n = e.mostrarRodape ? Ya(e.camadas, e.feicoes, e.selectedFeatureIds) : "", s = t.getElementById("ui-layer-tree-mount"), c = a.scrollTop, l = s ? s.scrollTop : 0, u = t.activeElement, p = u && a.contains(u) ? u.id : "", d = u && !p && a.contains(u) ? Array.from(u.attributes).find((g) => g.name.startsWith("data-") && g.value !== "") : void 0, f = u && "selectionStart" in u ? u.selectionStart : null;
|
|
2026
2281
|
a.innerHTML = `
|
|
2027
2282
|
${i}
|
|
2028
2283
|
${n}
|
|
2029
2284
|
${o}
|
|
2030
2285
|
`, a.scrollTop = c;
|
|
2031
2286
|
const m = t.getElementById("ui-layer-tree-mount");
|
|
2032
|
-
if (m && (m.scrollTop = l),
|
|
2033
|
-
const
|
|
2034
|
-
if (
|
|
2287
|
+
if (m && (m.scrollTop = l), p) {
|
|
2288
|
+
const g = t.getElementById(p);
|
|
2289
|
+
if (g && (g.focus({ preventScroll: !0 }), f !== null && typeof g.setSelectionRange == "function"))
|
|
2035
2290
|
try {
|
|
2036
|
-
|
|
2291
|
+
g.setSelectionRange(f, f);
|
|
2037
2292
|
} catch {
|
|
2038
2293
|
}
|
|
2039
2294
|
}
|
|
2040
|
-
!
|
|
2041
|
-
const
|
|
2042
|
-
|
|
2043
|
-
}),
|
|
2295
|
+
!p && d && ((h = D(a, d.name, d.value)) == null || h.focus({ preventScroll: !0 })), (v = t.querySelector("[data-layer-row], [data-feat-row]")) == null || v.setAttribute("tabindex", "0"), a.querySelectorAll("img[data-basemap-thumb]").forEach((g) => {
|
|
2296
|
+
const w = () => Ht(g);
|
|
2297
|
+
g.addEventListener("error", w, { once: !0 }), g.complete && g.naturalWidth === 0 && g.getAttribute("src") && w();
|
|
2298
|
+
}), Mt(e, t), r.bindAll();
|
|
2044
2299
|
}
|
|
2045
|
-
function
|
|
2300
|
+
function Vt(e, t, a, r) {
|
|
2046
2301
|
try {
|
|
2047
|
-
return
|
|
2048
|
-
|
|
2302
|
+
return Nt(e, t, r, (i) => {
|
|
2303
|
+
ga(e, i), fa(e, i), ma(e, t, i), a.bindLinhasFeicao(i);
|
|
2049
2304
|
});
|
|
2050
2305
|
} catch (i) {
|
|
2051
2306
|
return console.warn("[UI-Camadas] atualização incremental falhou; redesenhando o painel.", i), !1;
|
|
2052
2307
|
}
|
|
2053
2308
|
}
|
|
2054
|
-
const
|
|
2055
|
-
function
|
|
2056
|
-
return !e || !(e instanceof Element) || e instanceof HTMLInputElement &&
|
|
2309
|
+
const _t = '[role="button"][tabindex]', Z = "[data-layer-row], [data-feat-row]", Yt = ["color", "range", "checkbox", "radio", "button"];
|
|
2310
|
+
function va(e) {
|
|
2311
|
+
return !e || !(e instanceof Element) || e instanceof HTMLInputElement && Yt.includes(e.type) ? !1 : Ra({ composedPath: () => [e] });
|
|
2057
2312
|
}
|
|
2058
|
-
function
|
|
2059
|
-
return Array.from(e.querySelectorAll(
|
|
2313
|
+
function Ut(e) {
|
|
2314
|
+
return Array.from(e.querySelectorAll(Z)).filter((t) => {
|
|
2060
2315
|
const a = t.closest(".ui-children-container");
|
|
2061
2316
|
return !(a && a.style.display === "none") && !t.classList.contains("ui-search-hidden");
|
|
2062
2317
|
});
|
|
2063
2318
|
}
|
|
2064
|
-
function
|
|
2065
|
-
t && (e.querySelectorAll(
|
|
2319
|
+
function V(e, t) {
|
|
2320
|
+
t && (e.querySelectorAll(Z).forEach((a) => a.setAttribute("tabindex", "-1")), t.setAttribute("tabindex", "0"), t.focus());
|
|
2066
2321
|
}
|
|
2067
|
-
function
|
|
2322
|
+
function Kt(e, t) {
|
|
2068
2323
|
e.dispatchEvent(
|
|
2069
2324
|
new MouseEvent("click", {
|
|
2070
2325
|
bubbles: !0,
|
|
@@ -2073,9 +2328,9 @@ function qt(e, t) {
|
|
|
2073
2328
|
})
|
|
2074
2329
|
);
|
|
2075
2330
|
}
|
|
2076
|
-
function
|
|
2331
|
+
function Qt(e, t, a) {
|
|
2077
2332
|
var i;
|
|
2078
|
-
if (
|
|
2333
|
+
if (va(a.composedPath()[0])) return;
|
|
2079
2334
|
const r = t.querySelector(".confirming");
|
|
2080
2335
|
if (r) {
|
|
2081
2336
|
a.preventDefault(), r.dispatchEvent(new Event("ui-cancelar-confirmacao")), r.classList.remove("confirming");
|
|
@@ -2084,30 +2339,30 @@ function Pt(e, t, a) {
|
|
|
2084
2339
|
if (e.activeSettingsLayerId) {
|
|
2085
2340
|
a.preventDefault();
|
|
2086
2341
|
const o = e.activeSettingsLayerId;
|
|
2087
|
-
e.activeSettingsLayerId = null, e.solicitarRenderizacao(), (i =
|
|
2342
|
+
e.activeSettingsLayerId = null, e.solicitarRenderizacao(), (i = D(t, "data-layer-settings", o)) == null || i.focus();
|
|
2088
2343
|
return;
|
|
2089
2344
|
}
|
|
2090
2345
|
e.selectedFeatureIds.size > 0 && (a.preventDefault(), e.limparSelecao(!0));
|
|
2091
2346
|
}
|
|
2092
|
-
function
|
|
2347
|
+
function Xt(e, t, a, r) {
|
|
2093
2348
|
var s, c, l;
|
|
2094
2349
|
const i = r.composedPath()[0];
|
|
2095
|
-
if (!(i instanceof HTMLElement) ||
|
|
2096
|
-
if ((r.key === "Enter" || r.key === " ") && i.matches(
|
|
2350
|
+
if (!(i instanceof HTMLElement) || va(i)) return;
|
|
2351
|
+
if ((r.key === "Enter" || r.key === " ") && i.matches(_t)) {
|
|
2097
2352
|
r.preventDefault(), i.click();
|
|
2098
2353
|
return;
|
|
2099
2354
|
}
|
|
2100
|
-
if (!i.matches(
|
|
2101
|
-
const o =
|
|
2355
|
+
if (!i.matches(Z)) return;
|
|
2356
|
+
const o = Ut(t), n = o.indexOf(i);
|
|
2102
2357
|
if (r.key === "F2") {
|
|
2103
2358
|
r.preventDefault();
|
|
2104
|
-
const
|
|
2105
|
-
|
|
2359
|
+
const u = i.getAttribute("data-layer-row"), p = i.getAttribute("data-feat-row"), d = u ? D(i, "data-layer-name-trigger", u) : p ? D(i, "data-feat-name-trigger", p) : null;
|
|
2360
|
+
d && d.dispatchEvent(new MouseEvent("dblclick", { bubbles: !0 }));
|
|
2106
2361
|
return;
|
|
2107
2362
|
}
|
|
2108
2363
|
if ((r.ctrlKey || r.metaKey) && (r.key === "a" || r.key === "A")) {
|
|
2109
2364
|
r.preventDefault();
|
|
2110
|
-
const
|
|
2365
|
+
const u = ca(
|
|
2111
2366
|
e.camadas,
|
|
2112
2367
|
e.feicoes,
|
|
2113
2368
|
e.expandedLayers,
|
|
@@ -2115,75 +2370,75 @@ function Dt(e, t, a, r) {
|
|
|
2115
2370
|
void 0,
|
|
2116
2371
|
e.expandedFeatureLimits
|
|
2117
2372
|
);
|
|
2118
|
-
|
|
2373
|
+
u.length > 0 && e.selecionarFeicoes(u, !0);
|
|
2119
2374
|
return;
|
|
2120
2375
|
}
|
|
2121
2376
|
if (r.key === "Delete") {
|
|
2122
|
-
const
|
|
2123
|
-
if (
|
|
2124
|
-
r.preventDefault(),
|
|
2377
|
+
const u = a.getElementById("btn-footer-del");
|
|
2378
|
+
if (u && !u.hasAttribute("disabled") && e.selectedFeatureIds.size > 0) {
|
|
2379
|
+
r.preventDefault(), u.click();
|
|
2125
2380
|
return;
|
|
2126
2381
|
}
|
|
2127
2382
|
}
|
|
2128
2383
|
switch (r.key) {
|
|
2129
2384
|
case "ArrowDown":
|
|
2130
|
-
r.preventDefault(),
|
|
2385
|
+
r.preventDefault(), V(t, o[Math.min(o.length - 1, n + 1)]);
|
|
2131
2386
|
break;
|
|
2132
2387
|
case "ArrowUp":
|
|
2133
|
-
r.preventDefault(),
|
|
2388
|
+
r.preventDefault(), V(t, o[Math.max(0, n - 1)]);
|
|
2134
2389
|
break;
|
|
2135
2390
|
case "Home":
|
|
2136
|
-
r.preventDefault(),
|
|
2391
|
+
r.preventDefault(), V(t, o[0]);
|
|
2137
2392
|
break;
|
|
2138
2393
|
case "End":
|
|
2139
|
-
r.preventDefault(),
|
|
2394
|
+
r.preventDefault(), V(t, o[o.length - 1]);
|
|
2140
2395
|
break;
|
|
2141
2396
|
case "ArrowRight": {
|
|
2142
|
-
const
|
|
2143
|
-
if (!
|
|
2144
|
-
const
|
|
2145
|
-
(
|
|
2397
|
+
const u = i.getAttribute("data-layer-row");
|
|
2398
|
+
if (!u) return;
|
|
2399
|
+
const p = i.closest(".ui-layer-group");
|
|
2400
|
+
(p == null ? void 0 : p.getAttribute("aria-expanded")) === "true" ? n + 1 < o.length && (p != null && p.contains(o[n + 1])) && (r.preventDefault(), V(t, o[n + 1])) : (r.preventDefault(), (s = D(a, "data-layer-expand", u)) == null || s.click());
|
|
2146
2401
|
break;
|
|
2147
2402
|
}
|
|
2148
2403
|
case "ArrowLeft": {
|
|
2149
|
-
const
|
|
2150
|
-
if (
|
|
2404
|
+
const u = i.getAttribute("data-layer-row");
|
|
2405
|
+
if (u) {
|
|
2151
2406
|
const f = i.closest(".ui-layer-group");
|
|
2152
2407
|
if ((f == null ? void 0 : f.getAttribute("aria-expanded")) === "true")
|
|
2153
|
-
r.preventDefault(), (c =
|
|
2408
|
+
r.preventDefault(), (c = D(a, "data-layer-expand", u)) == null || c.click();
|
|
2154
2409
|
else {
|
|
2155
|
-
const
|
|
2156
|
-
|
|
2410
|
+
const h = (l = f == null ? void 0 : f.parentElement) == null ? void 0 : l.closest(".ui-layer-group"), v = h == null ? void 0 : h.getAttribute("data-layer-id"), g = v ? D(t, "data-layer-row", v) : null;
|
|
2411
|
+
g && (r.preventDefault(), V(t, g));
|
|
2157
2412
|
}
|
|
2158
2413
|
return;
|
|
2159
2414
|
}
|
|
2160
|
-
const
|
|
2161
|
-
|
|
2415
|
+
const p = i.getAttribute("data-feat-layer"), d = p ? D(t, "data-layer-row", p) : null;
|
|
2416
|
+
d && (r.preventDefault(), V(t, d));
|
|
2162
2417
|
break;
|
|
2163
2418
|
}
|
|
2164
2419
|
case "Enter":
|
|
2165
2420
|
case " ":
|
|
2166
|
-
r.preventDefault(),
|
|
2421
|
+
r.preventDefault(), Kt(i, r);
|
|
2167
2422
|
break;
|
|
2168
2423
|
}
|
|
2169
2424
|
}
|
|
2170
|
-
function
|
|
2425
|
+
function Wt(e, t, a, r, i) {
|
|
2171
2426
|
i.add(t, "keydown", (o) => {
|
|
2172
|
-
o.key === "Escape" &&
|
|
2173
|
-
}), i.add(r, "keydown", (o) =>
|
|
2427
|
+
o.key === "Escape" && Qt(e, a, o);
|
|
2428
|
+
}), i.add(r, "keydown", (o) => Xt(e, r, a, o)), i.add(r, "focusin", (o) => {
|
|
2174
2429
|
const n = o.composedPath()[0];
|
|
2175
|
-
n instanceof HTMLElement && n.matches(
|
|
2430
|
+
n instanceof HTMLElement && n.matches(Z) && (r.querySelectorAll(Z).forEach((s) => s.setAttribute("tabindex", "-1")), n.setAttribute("tabindex", "0"));
|
|
2176
2431
|
});
|
|
2177
2432
|
}
|
|
2178
|
-
function
|
|
2179
|
-
const o =
|
|
2433
|
+
function Jt(e, t, a, r, i) {
|
|
2434
|
+
const o = ca(
|
|
2180
2435
|
e.camadas,
|
|
2181
2436
|
e.feicoes,
|
|
2182
2437
|
e.expandedLayers,
|
|
2183
2438
|
e.searchQuery,
|
|
2184
2439
|
void 0,
|
|
2185
2440
|
e.expandedFeatureLimits
|
|
2186
|
-
), n = !r && !o.includes(t) && e.feicoes.some((c) => c.id === t), s =
|
|
2441
|
+
), n = !r && !o.includes(t) && e.feicoes.some((c) => c.id === t), s = Xa(
|
|
2187
2442
|
n ? [...o, t] : o,
|
|
2188
2443
|
e.selectedFeatureIds,
|
|
2189
2444
|
e.lastClickedFeatureId,
|
|
@@ -2193,33 +2448,33 @@ function Rt(e, t, a, r, i) {
|
|
|
2193
2448
|
);
|
|
2194
2449
|
s && (e.selectedFeatureIds = s.selecionados, e.lastClickedFeatureId = s.ultimoClicadoId, e.sincronizarSelecaoDOM(), i && e.notificarMudancaSelecao());
|
|
2195
2450
|
}
|
|
2196
|
-
function
|
|
2451
|
+
function Zt(e, t, a) {
|
|
2197
2452
|
const r = t || [];
|
|
2198
2453
|
r.length === e.selectedFeatureIds.size && r.every((n) => e.selectedFeatureIds.has(n)) || (e.selectedFeatureIds.clear(), r.forEach((n) => e.selectedFeatureIds.add(n)), e.lastClickedFeatureId = r.length > 0 ? r[r.length - 1] : null, e.sincronizarSelecaoDOM(), a && e.notificarMudancaSelecao());
|
|
2199
2454
|
}
|
|
2200
|
-
function
|
|
2455
|
+
function er(e, t) {
|
|
2201
2456
|
e.selectedFeatureIds.size !== 0 && (e.selectedFeatureIds.clear(), e.lastClickedFeatureId = null, e.sincronizarSelecaoDOM(), t && e.notificarMudancaSelecao());
|
|
2202
2457
|
}
|
|
2203
|
-
function
|
|
2458
|
+
function ar(e) {
|
|
2204
2459
|
const t = e.feicoes.filter((a) => e.selectedFeatureIds.has(a.id));
|
|
2205
2460
|
e.dispararEvento("ui-feicoes-selecionadas", {
|
|
2206
2461
|
feicoesIds: Array.from(e.selectedFeatureIds),
|
|
2207
2462
|
feicoes: t
|
|
2208
2463
|
}), t.length === 1 ? e.dispararEvento("ui-feicao-selecionada", { feicaoId: t[0].id, feicao: t[0] }) : t.length === 0 && e.dispararEvento("ui-feicao-selecionada", { feicaoId: null, feicao: null });
|
|
2209
2464
|
}
|
|
2210
|
-
class
|
|
2465
|
+
class tr {
|
|
2211
2466
|
constructor(t) {
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2467
|
+
I(this, "origens", /* @__PURE__ */ new Map());
|
|
2468
|
+
I(this, "removidas", /* @__PURE__ */ new Set());
|
|
2469
|
+
I(this, "salvarComDebounce", Ke(() => this.salvar(), 200));
|
|
2215
2470
|
this.instantaneo = t;
|
|
2216
2471
|
}
|
|
2217
2472
|
chaveAtual() {
|
|
2218
2473
|
const t = this.instantaneo();
|
|
2219
|
-
return
|
|
2474
|
+
return dt(t.storageKey, t.id);
|
|
2220
2475
|
}
|
|
2221
2476
|
carregar() {
|
|
2222
|
-
return
|
|
2477
|
+
return ke(this.chaveAtual());
|
|
2223
2478
|
}
|
|
2224
2479
|
/** Versão com debounce, para interações contínuas (seletor de cor, slider de opacidade). */
|
|
2225
2480
|
agendar() {
|
|
@@ -2228,8 +2483,8 @@ class Ht {
|
|
|
2228
2483
|
salvar() {
|
|
2229
2484
|
const t = this.instantaneo();
|
|
2230
2485
|
if (!t.persistir || !t.conectado) return;
|
|
2231
|
-
const a = this.chaveAtual(), r =
|
|
2232
|
-
estadoAnterior:
|
|
2486
|
+
const a = this.chaveAtual(), r = gt({
|
|
2487
|
+
estadoAnterior: ke(a),
|
|
2233
2488
|
origensCamadas: this.origens,
|
|
2234
2489
|
camadas: t.camadas,
|
|
2235
2490
|
expandedLayers: t.expandedLayers,
|
|
@@ -2238,29 +2493,32 @@ class Ht {
|
|
|
2238
2493
|
mapaBaseAtivo: t.mapaBaseAtivo,
|
|
2239
2494
|
densidade: t.densidade,
|
|
2240
2495
|
altura: t.altura,
|
|
2241
|
-
camadasRemovidas: this.removidas
|
|
2496
|
+
camadasRemovidas: this.removidas,
|
|
2497
|
+
ordemFilhosPorPai: t.ordemFilhosPorPai
|
|
2242
2498
|
});
|
|
2243
|
-
this.removidas.clear(),
|
|
2499
|
+
this.removidas.clear(), pt(a, r);
|
|
2244
2500
|
}
|
|
2245
2501
|
limpar() {
|
|
2246
|
-
|
|
2502
|
+
ft(this.chaveAtual());
|
|
2247
2503
|
}
|
|
2248
2504
|
// --- Origens (como a camada chegou do consumidor) e remoções ---
|
|
2249
2505
|
limparOrigens() {
|
|
2250
2506
|
this.origens.clear();
|
|
2251
2507
|
}
|
|
2252
2508
|
registrarOrigem(t) {
|
|
2253
|
-
this.origens.set(t.id,
|
|
2509
|
+
this.origens.set(t.id, da(t));
|
|
2254
2510
|
}
|
|
2255
2511
|
esquecerCamada(t) {
|
|
2256
2512
|
this.origens.delete(t), this.removidas.add(t);
|
|
2257
2513
|
}
|
|
2258
2514
|
/** Aplica por cima de `camadas` o que foi lembrado (expansão, visibilidade, travas, opacidade, cor, ordem). */
|
|
2259
|
-
reidratar(t, a, r) {
|
|
2260
|
-
|
|
2515
|
+
reidratar(t, a, r, i) {
|
|
2516
|
+
if (mt(t, a, r, this.origens), i && (i.clear(), a != null && a.ordemFilhosPorPai))
|
|
2517
|
+
for (const [o, n] of Object.entries(a.ordemFilhosPorPai))
|
|
2518
|
+
Array.isArray(n) && n.length > 0 && i.set(o, [...n]);
|
|
2261
2519
|
}
|
|
2262
2520
|
}
|
|
2263
|
-
function
|
|
2521
|
+
function $e(e, t = null, a = /* @__PURE__ */ new Set()) {
|
|
2264
2522
|
const r = [];
|
|
2265
2523
|
if (!Array.isArray(e)) return r;
|
|
2266
2524
|
for (const i of e) {
|
|
@@ -2269,15 +2527,15 @@ function Ee(e, t = null, a = /* @__PURE__ */ new Set()) {
|
|
|
2269
2527
|
if (a.has(o)) continue;
|
|
2270
2528
|
a.add(o);
|
|
2271
2529
|
const n = { ...i, id: o };
|
|
2272
|
-
delete n.children, t && n.parentId === void 0 && (n.parentId = t), r.push(n), Array.isArray(i.children) && i.children.length > 0 && r.push(
|
|
2530
|
+
delete n.children, t && n.parentId === void 0 && (n.parentId = t), r.push(n), Array.isArray(i.children) && i.children.length > 0 && r.push(...$e(i.children, o, a));
|
|
2273
2531
|
}
|
|
2274
2532
|
return r;
|
|
2275
2533
|
}
|
|
2276
|
-
function
|
|
2534
|
+
function ba(e) {
|
|
2277
2535
|
const t = e.lastClickedFeatureId;
|
|
2278
2536
|
t && !e.feicoes.some((a) => a.id === t) && (e.lastClickedFeatureId = null);
|
|
2279
2537
|
}
|
|
2280
|
-
function
|
|
2538
|
+
function ya(e) {
|
|
2281
2539
|
if (!Array.isArray(e)) return [];
|
|
2282
2540
|
const t = /* @__PURE__ */ new Set(), a = [];
|
|
2283
2541
|
for (const r of e) {
|
|
@@ -2287,21 +2545,21 @@ function ua(e) {
|
|
|
2287
2545
|
}
|
|
2288
2546
|
return a;
|
|
2289
2547
|
}
|
|
2290
|
-
function
|
|
2291
|
-
if (e.camadas = Array.isArray(t) ?
|
|
2548
|
+
function rr(e, t, a) {
|
|
2549
|
+
if (e.camadas = Array.isArray(t) ? $e(t) : [], e.lembranca.limparOrigens(), e.persistir) {
|
|
2292
2550
|
const o = e.lembranca.carregar();
|
|
2293
|
-
e.lembranca.reidratar(e.camadas, o, e.expandedLayers), o != null && o.camadaAtivaId && e.camadas.some((n) => n.id === o.camadaAtivaId) && (e.camadaAtivaId = o.camadaAtivaId);
|
|
2551
|
+
e.lembranca.reidratar(e.camadas, o, e.expandedLayers, e.ordemFilhosPorPai), o != null && o.camadaAtivaId && e.camadas.some((n) => n.id === o.camadaAtivaId) && (e.camadaAtivaId = o.camadaAtivaId);
|
|
2294
2552
|
} else
|
|
2295
2553
|
e.camadas.forEach((o) => {
|
|
2296
2554
|
e.lembranca.registrarOrigem(o), e.expandedLayers.has(o.id) || e.expandedLayers.add(o.id);
|
|
2297
2555
|
});
|
|
2298
2556
|
if (Array.isArray(a)) {
|
|
2299
|
-
e.feicoes =
|
|
2557
|
+
e.feicoes = ya(a);
|
|
2300
2558
|
const o = new Set(e.camadas.map((s) => s.id)), n = e.feicoes.filter((s) => s.layerId && !o.has(s.layerId));
|
|
2301
2559
|
n.length > 0 && console.warn(
|
|
2302
2560
|
`[UI-Camadas] ${n.length} feição(ões) possuem 'layerId' não cadastrado nas camadas:`,
|
|
2303
2561
|
n.map((s) => ({ id: s.id, nome: s.name, layerId: s.layerId }))
|
|
2304
|
-
),
|
|
2562
|
+
), Fe(e.selectedFeatureIds, e.feicoes), ba(e);
|
|
2305
2563
|
}
|
|
2306
2564
|
const r = new Set(e.camadas.map((o) => o.id));
|
|
2307
2565
|
if (e.activeSettingsLayerId && !r.has(e.activeSettingsLayerId) && (e.activeSettingsLayerId = null), e.editingLayerId && !r.has(e.editingLayerId) && (e.editingLayerId = null), e.expandedFeatureLimits)
|
|
@@ -2310,32 +2568,32 @@ function Gt(e, t, a) {
|
|
|
2310
2568
|
const i = e.getAttribute("camada-ativa");
|
|
2311
2569
|
e.camadas.length > 0 && (!i || !r.has(i)) && (e.camadaAtivaId = e.camadas[0].id), e.salvarLembrancaEstado(), e.solicitarRenderizacao();
|
|
2312
2570
|
}
|
|
2313
|
-
function
|
|
2571
|
+
function ir(e, t) {
|
|
2314
2572
|
const a = new Map(e.map((i) => [i.id, i])), r = /* @__PURE__ */ new Set();
|
|
2315
2573
|
for (const i of t) {
|
|
2316
2574
|
const o = a.get(i.id);
|
|
2317
|
-
(!o || !
|
|
2575
|
+
(!o || !Qa(o, i)) && r.add(i.id);
|
|
2318
2576
|
}
|
|
2319
2577
|
return r;
|
|
2320
2578
|
}
|
|
2321
|
-
function
|
|
2579
|
+
function or(e, t) {
|
|
2322
2580
|
const a = e.feicoes;
|
|
2323
|
-
e.feicoes =
|
|
2581
|
+
e.feicoes = ya(t);
|
|
2324
2582
|
const r = e.selectedFeatureIds.size;
|
|
2325
|
-
|
|
2583
|
+
Fe(e.selectedFeatureIds, e.feicoes), ba(e), e.editingFeatureId && !e.feicoes.some((i) => i.id === e.editingFeatureId) && (e.editingFeatureId = null), e.solicitarAtualizacaoFeicoes({
|
|
2326
2584
|
camadas: "todas",
|
|
2327
|
-
idsAlterados:
|
|
2585
|
+
idsAlterados: ir(a, e.feicoes),
|
|
2328
2586
|
selecaoAfetada: e.selectedFeatureIds.size !== r
|
|
2329
2587
|
});
|
|
2330
2588
|
}
|
|
2331
|
-
function
|
|
2589
|
+
function nr(e, t) {
|
|
2332
2590
|
if (!t || !t.id) return;
|
|
2333
2591
|
if (e.camadas.some((r) => r.id === t.id)) {
|
|
2334
2592
|
console.warn(`[UI-Camadas] adicionarCamada ignorado: já existe uma camada com id '${t.id}'.`);
|
|
2335
2593
|
return;
|
|
2336
2594
|
}
|
|
2337
2595
|
const a = new Set(e.camadas.map((r) => r.id));
|
|
2338
|
-
for (const r of
|
|
2596
|
+
for (const r of $e([t])) {
|
|
2339
2597
|
if (a.has(r.id)) {
|
|
2340
2598
|
console.warn(`[UI-Camadas] adicionarCamada: subcamada '${r.id}' ignorada, o id já existe.`);
|
|
2341
2599
|
continue;
|
|
@@ -2344,13 +2602,14 @@ function Vt(e, t) {
|
|
|
2344
2602
|
}
|
|
2345
2603
|
e.salvarLembrancaEstado(), e.solicitarRenderizacao();
|
|
2346
2604
|
}
|
|
2347
|
-
function
|
|
2348
|
-
var
|
|
2349
|
-
e.camadas.
|
|
2350
|
-
|
|
2351
|
-
|
|
2605
|
+
function sr(e, t) {
|
|
2606
|
+
var r, i;
|
|
2607
|
+
const a = e.camadas.find((o) => o.id === t);
|
|
2608
|
+
e.camadas.forEach((o) => {
|
|
2609
|
+
o.parentId === t && (o.parentId = null);
|
|
2610
|
+
}), e.camadas = e.camadas.filter((o) => o.id !== t), e.feicoes = e.feicoes.filter((o) => o.layerId !== t), e.ordemFilhosPorPai && (e.ordemFilhosPorPai.delete(t), a != null && a.parentId && _(e.ordemFilhosPorPai, a.parentId, R(t))), e.lembranca.esquecerCamada(t), e.expandedLayers.delete(t), (r = e.expandedFeatureLimits) == null || r.delete(t), e.activeSettingsLayerId === t && (e.activeSettingsLayerId = null), e.editingLayerId === t && (e.editingLayerId = null), e.editingFeatureId && !e.feicoes.some((o) => o.id === e.editingFeatureId) && (e.editingFeatureId = null), Fe(e.selectedFeatureIds, e.feicoes), e.selectedFeatureIds.size === 0 && (e.lastClickedFeatureId = null), e.camadaAtivaId === t && (e.camadaAtivaId = ((i = e.camadas[0]) == null ? void 0 : i.id) ?? null), e.salvarLembrancaEstado(), e.solicitarRenderizacao();
|
|
2352
2611
|
}
|
|
2353
|
-
function
|
|
2612
|
+
function lr(e, t) {
|
|
2354
2613
|
if (!(!t || !t.id)) {
|
|
2355
2614
|
if (e.feicoes.some((a) => a.id === t.id)) {
|
|
2356
2615
|
console.warn(`[UI-Camadas] adicionarFeicao ignorado: já existe uma feição com id '${t.id}'.`);
|
|
@@ -2363,7 +2622,7 @@ function Kt(e, t) {
|
|
|
2363
2622
|
});
|
|
2364
2623
|
}
|
|
2365
2624
|
}
|
|
2366
|
-
function
|
|
2625
|
+
function cr(e, t) {
|
|
2367
2626
|
if (!t || typeof t != "object" || !t.id) return;
|
|
2368
2627
|
const a = e.feicoes.findIndex((r) => r.id === t.id);
|
|
2369
2628
|
if (a !== -1) {
|
|
@@ -2375,9 +2634,9 @@ function Qt(e, t) {
|
|
|
2375
2634
|
});
|
|
2376
2635
|
}
|
|
2377
2636
|
}
|
|
2378
|
-
function
|
|
2637
|
+
function dr(e, t) {
|
|
2379
2638
|
const a = e.feicoes.find((i) => i.id === t);
|
|
2380
|
-
e.feicoes = e.feicoes.filter((i) => i.id !== t);
|
|
2639
|
+
e.feicoes = e.feicoes.filter((i) => i.id !== t), a != null && a.layerId && e.ordemFilhosPorPai && _(e.ordemFilhosPorPai, a.layerId, O(t));
|
|
2381
2640
|
const r = e.selectedFeatureIds.delete(t);
|
|
2382
2641
|
e.lastClickedFeatureId === t && (e.lastClickedFeatureId = null), e.editingFeatureId === t && (e.editingFeatureId = null), e.solicitarAtualizacaoFeicoes({
|
|
2383
2642
|
camadas: new Set(a ? [a.layerId || ""] : []),
|
|
@@ -2385,16 +2644,16 @@ function Xt(e, t) {
|
|
|
2385
2644
|
selecaoAfetada: r
|
|
2386
2645
|
});
|
|
2387
2646
|
}
|
|
2388
|
-
function
|
|
2647
|
+
function ur(e) {
|
|
2389
2648
|
function r() {
|
|
2390
2649
|
return e.getMinAltura ? e.getMinAltura() : 140;
|
|
2391
2650
|
}
|
|
2392
2651
|
function i() {
|
|
2393
2652
|
return e.getMaxAltura ? e.getMaxAltura() : 1600;
|
|
2394
2653
|
}
|
|
2395
|
-
function o(l,
|
|
2654
|
+
function o(l, u = !1) {
|
|
2396
2655
|
if (l == null || l === "") {
|
|
2397
|
-
e.hostElement.style.removeProperty("height"), e.hostElement.style.removeProperty("--ui-camadas-altura"),
|
|
2656
|
+
e.hostElement.style.removeProperty("height"), e.hostElement.style.removeProperty("--ui-camadas-altura"), u && e.hostElement.dispatchEvent(
|
|
2398
2657
|
new CustomEvent("ui-redimensionar-altura", {
|
|
2399
2658
|
bubbles: !0,
|
|
2400
2659
|
composed: !0,
|
|
@@ -2403,64 +2662,64 @@ function Wt(e) {
|
|
|
2403
2662
|
);
|
|
2404
2663
|
return;
|
|
2405
2664
|
}
|
|
2406
|
-
const
|
|
2407
|
-
if (isNaN(
|
|
2408
|
-
const
|
|
2409
|
-
e.hostElement.style.height = `${
|
|
2665
|
+
const p = typeof l == "number" ? l : parseFloat(String(l));
|
|
2666
|
+
if (isNaN(p)) return;
|
|
2667
|
+
const d = Math.max(r(), Math.min(i(), Math.round(p)));
|
|
2668
|
+
e.hostElement.style.height = `${d}px`, e.hostElement.style.setProperty("--ui-camadas-altura", `${d}px`), u && e.hostElement.dispatchEvent(
|
|
2410
2669
|
new CustomEvent("ui-redimensionar-altura", {
|
|
2411
2670
|
bubbles: !0,
|
|
2412
2671
|
composed: !0,
|
|
2413
|
-
detail: { altura:
|
|
2672
|
+
detail: { altura: d }
|
|
2414
2673
|
})
|
|
2415
2674
|
);
|
|
2416
2675
|
}
|
|
2417
2676
|
let n = null;
|
|
2418
2677
|
function s() {
|
|
2419
2678
|
if (!e.resizerElement) return;
|
|
2420
|
-
let l = !1,
|
|
2421
|
-
const
|
|
2679
|
+
let l = !1, u = 0, p = 0;
|
|
2680
|
+
const d = (m) => {
|
|
2422
2681
|
if (m.button !== 0) return;
|
|
2423
|
-
m.preventDefault(), m.stopPropagation(), l = !0,
|
|
2682
|
+
m.preventDefault(), m.stopPropagation(), l = !0, u = m.clientY, p = e.hostElement.getBoundingClientRect().height, e.resizerElement.classList.add("ui-camadas-resizer--ativo"), e.hostElement.classList.add("ui-camadas--redimensionando");
|
|
2424
2683
|
try {
|
|
2425
2684
|
e.resizerElement.setPointerCapture(m.pointerId);
|
|
2426
2685
|
} catch {
|
|
2427
2686
|
}
|
|
2428
|
-
const
|
|
2687
|
+
const h = (w) => {
|
|
2429
2688
|
if (!l) return;
|
|
2430
|
-
|
|
2431
|
-
const k =
|
|
2432
|
-
e.hostElement.style.height = `${
|
|
2689
|
+
w.preventDefault();
|
|
2690
|
+
const k = w.clientY - u, L = Math.max(r(), Math.min(i(), Math.round(p + k)));
|
|
2691
|
+
e.hostElement.style.height = `${L}px`, e.hostElement.style.setProperty("--ui-camadas-altura", `${L}px`), e.onRedimensionando && e.onRedimensionando(L), e.hostElement.dispatchEvent(
|
|
2433
2692
|
new CustomEvent("ui-redimensionando-altura", {
|
|
2434
2693
|
bubbles: !0,
|
|
2435
2694
|
composed: !0,
|
|
2436
|
-
detail: { altura:
|
|
2695
|
+
detail: { altura: L }
|
|
2437
2696
|
})
|
|
2438
2697
|
);
|
|
2439
|
-
},
|
|
2440
|
-
var
|
|
2441
|
-
l = !1, n = null, window.removeEventListener("pointermove",
|
|
2442
|
-
},
|
|
2698
|
+
}, v = () => {
|
|
2699
|
+
var w;
|
|
2700
|
+
l = !1, n = null, window.removeEventListener("pointermove", h), window.removeEventListener("pointerup", g), window.removeEventListener("pointercancel", g), (w = e.resizerElement) == null || w.classList.remove("ui-camadas-resizer--ativo"), e.hostElement.classList.remove("ui-camadas--redimensionando");
|
|
2701
|
+
}, g = (w) => {
|
|
2443
2702
|
if (!l) return;
|
|
2444
2703
|
l = !1, e.resizerElement.classList.remove("ui-camadas-resizer--ativo"), e.hostElement.classList.remove("ui-camadas--redimensionando");
|
|
2445
2704
|
try {
|
|
2446
|
-
e.resizerElement.hasPointerCapture(
|
|
2705
|
+
e.resizerElement.hasPointerCapture(w.pointerId) && e.resizerElement.releasePointerCapture(w.pointerId);
|
|
2447
2706
|
} catch {
|
|
2448
2707
|
}
|
|
2449
|
-
window.removeEventListener("pointermove",
|
|
2450
|
-
const k = e.hostElement.getBoundingClientRect().height,
|
|
2451
|
-
e.onAlturaAlterada && e.onAlturaAlterada(
|
|
2708
|
+
window.removeEventListener("pointermove", h), window.removeEventListener("pointerup", g), window.removeEventListener("pointercancel", g);
|
|
2709
|
+
const k = e.hostElement.getBoundingClientRect().height, L = Math.round(k);
|
|
2710
|
+
e.onAlturaAlterada && e.onAlturaAlterada(L), e.hostElement.dispatchEvent(
|
|
2452
2711
|
new CustomEvent("ui-redimensionar-altura", {
|
|
2453
2712
|
bubbles: !0,
|
|
2454
2713
|
composed: !0,
|
|
2455
|
-
detail: { altura:
|
|
2714
|
+
detail: { altura: L }
|
|
2456
2715
|
})
|
|
2457
2716
|
);
|
|
2458
2717
|
};
|
|
2459
|
-
n =
|
|
2718
|
+
n = v, window.addEventListener("pointermove", h), window.addEventListener("pointerup", g), window.addEventListener("pointercancel", g);
|
|
2460
2719
|
}, f = (m) => {
|
|
2461
2720
|
m.preventDefault(), m.stopPropagation(), o(null, !0), e.onAlturaAlterada && e.onAlturaAlterada(null);
|
|
2462
2721
|
};
|
|
2463
|
-
e.listeners.add(e.resizerElement, "pointerdown",
|
|
2722
|
+
e.listeners.add(e.resizerElement, "pointerdown", d), e.listeners.add(e.resizerElement, "dblclick", f);
|
|
2464
2723
|
}
|
|
2465
2724
|
function c() {
|
|
2466
2725
|
n == null || n(), e.listeners.cleanup();
|
|
@@ -2471,21 +2730,21 @@ function Wt(e) {
|
|
|
2471
2730
|
destruir: c
|
|
2472
2731
|
};
|
|
2473
2732
|
}
|
|
2474
|
-
const
|
|
2733
|
+
const U = class U extends Ba {
|
|
2475
2734
|
constructor() {
|
|
2476
2735
|
super();
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2736
|
+
I(this, "shadow");
|
|
2737
|
+
I(this, "listeners", new Ta());
|
|
2738
|
+
I(this, "dragDropManager");
|
|
2739
|
+
I(this, "resizerController");
|
|
2740
|
+
I(this, "alturaCustomizada", null);
|
|
2741
|
+
I(this, "conectado", !1);
|
|
2742
|
+
I(this, "profundidadeLote", 0);
|
|
2743
|
+
I(this, "renderPendente", !1);
|
|
2485
2744
|
/** Mudança de feições à espera do `render()` (consumida nele): permite atualizar só as linhas afetadas. */
|
|
2486
|
-
|
|
2745
|
+
I(this, "mudancaFeicoes", null);
|
|
2487
2746
|
/** @internal */
|
|
2488
|
-
|
|
2747
|
+
I(this, "lembranca", new tr(() => ({
|
|
2489
2748
|
persistir: this.persistir,
|
|
2490
2749
|
conectado: this.conectado,
|
|
2491
2750
|
storageKey: this.storageKey,
|
|
@@ -2496,24 +2755,26 @@ const H = class H extends La {
|
|
|
2496
2755
|
painelColapsado: this.colapsado,
|
|
2497
2756
|
mapaBaseAtivo: this.mapaBaseAtivo,
|
|
2498
2757
|
densidade: this.densidade,
|
|
2499
|
-
altura: this.alturaCustomizada
|
|
2758
|
+
altura: this.alturaCustomizada,
|
|
2759
|
+
ordemFilhosPorPai: this.ordemFilhosPorPai
|
|
2500
2760
|
})));
|
|
2501
2761
|
// Estado interno
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2762
|
+
I(this, "camadas", []);
|
|
2763
|
+
I(this, "feicoes", []);
|
|
2764
|
+
I(this, "mapasBase", [...Qe]);
|
|
2765
|
+
I(this, "expandedLayers", /* @__PURE__ */ new Set());
|
|
2766
|
+
I(this, "expandedFeatureLimits", /* @__PURE__ */ new Map());
|
|
2767
|
+
I(this, "ordemFilhosPorPai", /* @__PURE__ */ new Map());
|
|
2768
|
+
I(this, "selectedFeatureIds", /* @__PURE__ */ new Set());
|
|
2769
|
+
I(this, "lastClickedFeatureId", null);
|
|
2770
|
+
I(this, "activeSettingsLayerId", null);
|
|
2771
|
+
I(this, "editingLayerId", null);
|
|
2772
|
+
I(this, "editingFeatureId", null);
|
|
2773
|
+
I(this, "searchQuery", "");
|
|
2774
|
+
I(this, "corpoElement");
|
|
2775
|
+
I(this, "btnExpandirFlutuante");
|
|
2515
2776
|
this.shadow = this.attachShadow({ mode: "open" }), this.shadow.innerHTML = `
|
|
2516
|
-
<style>${
|
|
2777
|
+
<style>${ht}</style>
|
|
2517
2778
|
<div class="ui-camadas-container" id="panel-container" part="base" role="region" aria-label="Painel de Camadas">
|
|
2518
2779
|
<div class="ui-camadas-corpo" id="painel-corpo" part="corpo"></div>
|
|
2519
2780
|
<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">
|
|
@@ -2521,11 +2782,11 @@ const H = class H extends La {
|
|
|
2521
2782
|
</div>
|
|
2522
2783
|
</div>
|
|
2523
2784
|
<button class="ui-camadas-toggle-flutuante" id="btn-expandir-flutuante" part="botao-expandir" title="Expandir Painel de Camadas" aria-label="Expandir Painel de Camadas">
|
|
2524
|
-
${
|
|
2785
|
+
${b.camadas}
|
|
2525
2786
|
</button>
|
|
2526
|
-
`, this.corpoElement = this.shadow.getElementById("painel-corpo"), this.btnExpandirFlutuante = this.shadow.getElementById("btn-expandir-flutuante"), this.dragDropManager = new
|
|
2787
|
+
`, this.corpoElement = this.shadow.getElementById("painel-corpo"), this.btnExpandirFlutuante = this.shadow.getElementById("btn-expandir-flutuante"), this.dragDropManager = new lt(this, this.shadow);
|
|
2527
2788
|
const a = this.shadow.getElementById("resizer-altura");
|
|
2528
|
-
this.resizerController =
|
|
2789
|
+
this.resizerController = ur({
|
|
2529
2790
|
hostElement: this,
|
|
2530
2791
|
resizerElement: a,
|
|
2531
2792
|
listeners: this.listeners,
|
|
@@ -2563,27 +2824,27 @@ const H = class H extends La {
|
|
|
2563
2824
|
"altura",
|
|
2564
2825
|
"min-altura",
|
|
2565
2826
|
"max-altura",
|
|
2566
|
-
...
|
|
2827
|
+
...qa
|
|
2567
2828
|
];
|
|
2568
2829
|
}
|
|
2569
2830
|
connectedCallback() {
|
|
2570
2831
|
if (this.persistir) {
|
|
2571
|
-
const a =
|
|
2832
|
+
const a = ke(this.obterChaveStorageAtual());
|
|
2572
2833
|
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));
|
|
2573
2834
|
}
|
|
2574
|
-
this.hasAttribute("altura") && this.resizerController.definirAltura(this.getAttribute("altura"), !1), this.persistir && !this.storageKey && !this.id && (
|
|
2835
|
+
this.hasAttribute("altura") && this.resizerController.definirAltura(this.getAttribute("altura"), !1), this.persistir && !this.storageKey && !this.id && (U.instanciasChavePadrao.size > 0 && console.warn(
|
|
2575
2836
|
"[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."
|
|
2576
|
-
),
|
|
2837
|
+
), U.instanciasChavePadrao.add(this)), this.resizerController.init(), qe(this, this.shadow.getElementById("panel-container")), this.render(), this.conectarEventosGerais(), Wt(this, this, this.shadow, this.corpoElement, this.listeners), this.conectado = !0, this.camadas.length > 0 && this.salvarLembrancaEstado();
|
|
2577
2838
|
}
|
|
2578
2839
|
disconnectedCallback() {
|
|
2579
2840
|
var a, r;
|
|
2580
|
-
this.conectado = !1,
|
|
2841
|
+
this.conectado = !1, U.instanciasChavePadrao.delete(this), (a = this.resizerController) == null || a.destruir(), (r = this.dragDropManager) == null || r.destruir(), Lt(this), this.listeners.cleanup();
|
|
2581
2842
|
}
|
|
2582
2843
|
attributeChangedCallback(a, r, i) {
|
|
2583
2844
|
var o, n;
|
|
2584
2845
|
if (r !== i) {
|
|
2585
|
-
if (
|
|
2586
|
-
|
|
2846
|
+
if (Da(a)) {
|
|
2847
|
+
qe(this, this.shadow.getElementById("panel-container"));
|
|
2587
2848
|
return;
|
|
2588
2849
|
}
|
|
2589
2850
|
a === "colapsado" ? this.salvarLembrancaEstado() : a === "camada-ativa" ? (this.sincronizarCamadaAtivaDOM(), this.salvarLembrancaEstado()) : a === "densidade" ? this.salvarLembrancaEstado() : a === "mapa-base-ativo" ? i && this.marcarMapaBaseAtivoNoDOM(i) : a === "titulo" || a === "mostrar-mapas-base" || a === "mapas-base-recolhido" || a === "mostrar-rodape" || a === "mostrar-busca" || a === "colapsavel" || a === "flutuante" ? this.solicitarRenderizacao() : a === "altura" ? (o = this.resizerController) == null || o.definirAltura(i, !1) : (a === "min-altura" || a === "max-altura") && this.alturaCustomizada !== null && ((n = this.resizerController) == null || n.definirAltura(this.alturaCustomizada, !1));
|
|
@@ -2618,7 +2879,7 @@ const H = class H extends La {
|
|
|
2618
2879
|
i.classList.toggle("active", o), i.setAttribute("aria-pressed", String(o));
|
|
2619
2880
|
});
|
|
2620
2881
|
const r = this.shadow.querySelector("[data-basemap-atual]");
|
|
2621
|
-
r && (r.textContent =
|
|
2882
|
+
r && (r.textContent = Xe(this.mapasBase, a));
|
|
2622
2883
|
}
|
|
2623
2884
|
/** Seção "Mapa Base" recolhida (só o cabeçalho com o mapa ativo). Atributo `mapas-base-recolhido`. */
|
|
2624
2885
|
get mapasBaseRecolhido() {
|
|
@@ -2721,7 +2982,7 @@ const H = class H extends La {
|
|
|
2721
2982
|
this.lembranca.salvar();
|
|
2722
2983
|
}
|
|
2723
2984
|
limparLembranca() {
|
|
2724
|
-
this.expandedFeatureLimits.clear(), this.lembranca.limpar();
|
|
2985
|
+
this.expandedFeatureLimits.clear(), this.ordemFilhosPorPai.clear(), this.lembranca.limpar();
|
|
2725
2986
|
}
|
|
2726
2987
|
// --- API Pública de Alta Ergonomia ---
|
|
2727
2988
|
//
|
|
@@ -2752,10 +3013,10 @@ const H = class H extends La {
|
|
|
2752
3013
|
this.definirMapasBase(a);
|
|
2753
3014
|
}
|
|
2754
3015
|
definirCamadas(a, r) {
|
|
2755
|
-
|
|
3016
|
+
rr(this, a, r);
|
|
2756
3017
|
}
|
|
2757
3018
|
definirFeicoes(a) {
|
|
2758
|
-
|
|
3019
|
+
or(this, a);
|
|
2759
3020
|
}
|
|
2760
3021
|
definirMapasBase(a) {
|
|
2761
3022
|
this.mapasBase = Array.isArray(a) ? [...a] : [], this.solicitarRenderizacao();
|
|
@@ -2779,28 +3040,28 @@ const H = class H extends La {
|
|
|
2779
3040
|
return this.feicoes.filter((a) => this.selectedFeatureIds.has(a.id));
|
|
2780
3041
|
}
|
|
2781
3042
|
adicionarCamada(a) {
|
|
2782
|
-
|
|
3043
|
+
nr(this, a);
|
|
2783
3044
|
}
|
|
2784
3045
|
removerCamada(a) {
|
|
2785
|
-
|
|
3046
|
+
sr(this, a);
|
|
2786
3047
|
}
|
|
2787
3048
|
adicionarFeicao(a) {
|
|
2788
|
-
|
|
3049
|
+
lr(this, a);
|
|
2789
3050
|
}
|
|
2790
3051
|
atualizarFeicao(a) {
|
|
2791
|
-
|
|
3052
|
+
cr(this, a);
|
|
2792
3053
|
}
|
|
2793
3054
|
removerFeicao(a) {
|
|
2794
|
-
|
|
3055
|
+
dr(this, a);
|
|
2795
3056
|
}
|
|
2796
3057
|
selecionarFeicao(a, r = !1, i = !1, o = !1) {
|
|
2797
|
-
|
|
3058
|
+
Jt(this, a, r, i, o);
|
|
2798
3059
|
}
|
|
2799
3060
|
selecionarFeicoes(a, r = !1) {
|
|
2800
|
-
|
|
3061
|
+
Zt(this, a, r);
|
|
2801
3062
|
}
|
|
2802
3063
|
limparSelecao(a = !1) {
|
|
2803
|
-
|
|
3064
|
+
er(this, a);
|
|
2804
3065
|
}
|
|
2805
3066
|
expandirTodas() {
|
|
2806
3067
|
this.expandedLayers = new Set(this.camadas.map((a) => a.id)), this.salvarLembrancaEstado(), this.solicitarRenderizacao();
|
|
@@ -2878,7 +3139,7 @@ const H = class H extends La {
|
|
|
2878
3139
|
}
|
|
2879
3140
|
render() {
|
|
2880
3141
|
const a = this.mudancaFeicoes;
|
|
2881
|
-
this.mudancaFeicoes = null, this.corpoElement && (a &&
|
|
3142
|
+
this.mudancaFeicoes = null, this.corpoElement && (a && Vt(this, this.shadow, this.dragDropManager, a) || Gt(this, this.shadow, this.corpoElement, this.dragDropManager));
|
|
2882
3143
|
}
|
|
2883
3144
|
// --- Conexão de Eventos ---
|
|
2884
3145
|
conectarEventosGerais() {
|
|
@@ -2886,27 +3147,27 @@ const H = class H extends La {
|
|
|
2886
3147
|
}
|
|
2887
3148
|
// --- Sincronização de DOM (delegada) ---
|
|
2888
3149
|
sincronizarCamadaAtivaDOM() {
|
|
2889
|
-
|
|
3150
|
+
vt(this, this.shadow);
|
|
2890
3151
|
}
|
|
2891
3152
|
sincronizarSelecaoDOM() {
|
|
2892
|
-
|
|
3153
|
+
bt(this, this.shadow);
|
|
2893
3154
|
}
|
|
2894
3155
|
// --- Auxiliares Internos ---
|
|
2895
3156
|
notificarMudancaSelecao() {
|
|
2896
|
-
|
|
3157
|
+
ar(this);
|
|
2897
3158
|
}
|
|
2898
3159
|
};
|
|
2899
3160
|
/** Painéis conectados sem `id` nem `storage-key`: dividem a mesma chave de persistência. */
|
|
2900
|
-
|
|
2901
|
-
let
|
|
2902
|
-
class
|
|
3161
|
+
I(U, "instanciasChavePadrao", /* @__PURE__ */ new Set());
|
|
3162
|
+
let ee = U;
|
|
3163
|
+
class pr extends ee {
|
|
2903
3164
|
}
|
|
2904
|
-
class
|
|
3165
|
+
class fr extends ee {
|
|
2905
3166
|
}
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
function
|
|
3167
|
+
Ce("ui-camadas", ee);
|
|
3168
|
+
Ce("ui-painel-camadas", pr);
|
|
3169
|
+
Ce("ui-layer-panel", fr);
|
|
3170
|
+
function Ir(e) {
|
|
2910
3171
|
var t;
|
|
2911
3172
|
return {
|
|
2912
3173
|
id: e.id,
|
|
@@ -2923,7 +3184,7 @@ function cr(e) {
|
|
|
2923
3184
|
dados: e.dados
|
|
2924
3185
|
};
|
|
2925
3186
|
}
|
|
2926
|
-
function
|
|
3187
|
+
function kr(e, t = "levantamento", a = "feicoes") {
|
|
2927
3188
|
return {
|
|
2928
3189
|
id: e.id,
|
|
2929
3190
|
nome: e.name,
|
|
@@ -2942,7 +3203,7 @@ function dr(e, t = "levantamento", a = "feicoes") {
|
|
|
2942
3203
|
dados: typeof e.dados == "object" && e.dados !== null ? e.dados : void 0
|
|
2943
3204
|
};
|
|
2944
3205
|
}
|
|
2945
|
-
function
|
|
3206
|
+
function Lr(e, t = "") {
|
|
2946
3207
|
var o, n, s, c;
|
|
2947
3208
|
const a = ((o = e.geometria) == null ? void 0 : o.tipo) || ((n = e.geometria) == null ? void 0 : n.type) || e.tipo || e.type || "Polygon", r = ((s = e.geometria) == null ? void 0 : s.coordenadas) || ((c = e.geometria) == null ? void 0 : c.coordinates) || e.coordinates, i = e.cor || e.color;
|
|
2948
3209
|
return {
|
|
@@ -2961,43 +3222,43 @@ function ur(e, t = "") {
|
|
|
2961
3222
|
};
|
|
2962
3223
|
}
|
|
2963
3224
|
export {
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3225
|
+
lt as CamadasDragDropManager,
|
|
3226
|
+
b as ICONES,
|
|
3227
|
+
Se as LIMITE_FEICOES_POR_CAMADA,
|
|
3228
|
+
Qe as MAPAS_BASE_PADRAO,
|
|
3229
|
+
ee as UICamadas,
|
|
3230
|
+
fr as UILayerPanel,
|
|
3231
|
+
Fr as UIMapaBase,
|
|
3232
|
+
pr as UIPainelCamadas,
|
|
3233
|
+
$r as UISeletorMapaBase,
|
|
3234
|
+
ye as calcularAreaAnelSimples,
|
|
3235
|
+
Ue as calcularAreaPoligono,
|
|
3236
|
+
Ye as calcularComprimentoLinha,
|
|
3237
|
+
ja as calcularDistanciaPontos,
|
|
3238
|
+
Xa as calcularSelecaoFeicao,
|
|
3239
|
+
ke as carregarEstadoPersistido,
|
|
3240
|
+
pe as construirHierarquiaCamadas,
|
|
3241
|
+
kr as converterCamadaItemParaCanvasLayer,
|
|
3242
|
+
Ir as converterCanvasLayerParaCamadaItem,
|
|
3243
|
+
Lr as converterFeicaoParaItem,
|
|
3244
|
+
M as escapeHtml,
|
|
3245
|
+
la as filtrarCamadasPorBusca,
|
|
3246
|
+
W as filtrarFeicoesPorBusca,
|
|
3247
|
+
Er as formatarMetricaFeicoes,
|
|
3248
|
+
We as formatarOpcoesCamadasHierarquicas,
|
|
3249
|
+
dt as gerarChaveStorage,
|
|
3250
|
+
ft as limparEstadoPersistido,
|
|
3251
|
+
gt as montarEstadoPersistido,
|
|
3252
|
+
Xe as nomeDoMapaBase,
|
|
3253
|
+
ut as normalizarEstadoPersistido,
|
|
3254
|
+
ca as obterIdsVisiveisFeicoes,
|
|
3255
|
+
mt as reidratarCamadasComOverrides,
|
|
3256
|
+
Fe as removerSelecoesInvalidas,
|
|
3257
|
+
ot as renderizarArvoreCamadas,
|
|
3258
|
+
Va as renderizarGridMapasBase,
|
|
3259
|
+
Ya as renderizarRodapeAcoes,
|
|
3260
|
+
ea as renderizarThumbGeometria,
|
|
3261
|
+
Je as rotuloRodape,
|
|
3262
|
+
pt as salvarEstadoPersistido,
|
|
3263
|
+
da as snapshotCamada
|
|
3003
3264
|
};
|