@thibezer/ui-components-kit 2.8.2 → 2.9.0
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 +146 -0
- package/README.md +32 -8
- package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
- package/dist/acessibilidade-CUlSXc2X.js +38 -0
- package/dist/altura-controle-ukMRPckR.cjs +1 -0
- package/dist/altura-controle-vxQiXG4q.js +62 -0
- package/dist/botao.cjs +1 -1
- package/dist/botao.js +1 -1
- package/dist/camadas.cjs +114 -110
- package/dist/camadas.js +1343 -1177
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +86 -85
- package/dist/canvas.js +5437 -4304
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/components/ui-avatar/ui-avatar.d.ts +11 -0
- package/dist/components/ui-badge/ui-badge.d.ts +2 -0
- package/dist/components/ui-barra-ferramentas/ferramentas-comum.d.ts +3 -1
- package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +23 -0
- package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +22 -0
- package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +3 -7
- package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +0 -1
- package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +4 -11
- package/dist/components/ui-camadas/camadas-colecao.d.ts +27 -0
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +13 -1
- package/dist/components/ui-camadas/camadas-drop-ops.d.ts +31 -0
- package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
- package/dist/components/ui-camadas/camadas-host.d.ts +1 -0
- package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
- package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -1
- package/dist/components/ui-camadas/camadas-render.d.ts +15 -0
- package/dist/components/ui-camadas/camadas-renomear.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-selecao-api.d.ts +17 -0
- package/dist/components/ui-camadas/camadas-selecao.d.ts +12 -0
- package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +8 -5
- package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +15 -0
- package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +2 -1
- package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +1 -1
- package/dist/components/ui-canvas-cad/cad-evento-coordenadas.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +3 -8
- package/dist/components/ui-canvas-cad/cad-feicoes-camera.d.ts +26 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-consulta.d.ts +21 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-dados.d.ts +39 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-desenho.d.ts +68 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +37 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-operacoes.d.ts +48 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +28 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +22 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +53 -0
- package/dist/components/ui-canvas-cad/cad-feicoes-versoes.d.ts +33 -0
- package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +39 -106
- package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +3 -1
- package/dist/components/ui-canvas-cad/cad-leaflet-adaptador.d.ts +5 -0
- package/dist/components/ui-canvas-cad/cad-selecao-pontos.d.ts +5 -0
- package/dist/components/ui-canvas-cad/tipos.d.ts +37 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +30 -1
- package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
- package/dist/components/ui-cores/tipos.d.ts +2 -0
- package/dist/components/ui-cores/ui-controle-cores.d.ts +8 -3
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +3 -1
- package/dist/components/ui-linha/index.d.ts +1 -0
- package/dist/components/ui-linha/ui-linha.d.ts +48 -0
- package/dist/components/ui-mapa/mapa-atributos.d.ts +14 -0
- package/dist/components/ui-mapa/mapa-basemaps.d.ts +7 -0
- package/dist/components/ui-mapa/mapa-icones.d.ts +4 -0
- package/dist/components/ui-mapa/mapa-leaflet.d.ts +5 -0
- package/dist/components/ui-mapa/mapa-vinculo-pai.d.ts +22 -0
- package/dist/components/ui-mapa/tipos.d.ts +13 -0
- package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -5
- package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -6
- package/dist/components/ui-mapa/ui-mapa.d.ts +14 -1
- package/dist/components/ui-modal/modal-acessibilidade.d.ts +5 -5
- package/dist/components/ui-modal/modal-foco.d.ts +28 -0
- package/dist/components/ui-modal/ui-modal.d.ts +1 -11
- package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
- package/dist/components/ui-radio/ui-radio.d.ts +9 -2
- package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
- package/dist/components/ui-switch/ui-switch.d.ts +3 -1
- package/dist/components/ui-tabela/tabela-estados.d.ts +16 -0
- package/dist/components/ui-tabela/tabela-rolagem.d.ts +44 -0
- package/dist/components/ui-tabela/tabela-teclado.d.ts +16 -0
- package/dist/components/ui-tabela/ui-tabela.d.ts +1 -19
- package/dist/components/ui-tooltip/tooltip-popover.d.ts +7 -0
- package/dist/components/ui-tooltip/tooltip-posicionamento.d.ts +29 -0
- package/dist/components/ui-tooltip/ui-tooltip.d.ts +24 -1
- package/dist/core/altura-controle.d.ts +34 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/opcoes.d.ts +9 -0
- package/dist/core/rotulo-controle.d.ts +13 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +28 -18
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +1 -1
- package/dist/custom-elements.json +22088 -16390
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +2 -2
- package/dist/form-validacao-BlQFxUVj.js +104 -0
- package/dist/form-validacao-DIeyQVH5.cjs +1 -0
- package/dist/forms.cjs +1 -1
- package/dist/forms.js +2 -2
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +0 -1
- package/dist/gerencigeo-canvas/curva_leaflet.d.ts +2 -2
- package/dist/gerencigeo-canvas/feature_curvas.d.ts +3 -1
- package/dist/gerencigeo-canvas/feature_lod.d.ts +38 -0
- package/dist/gerencigeo-canvas/feature_popup.d.ts +2 -0
- package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +16 -8
- package/dist/gerencigeo-canvas/index.d.ts +7 -0
- package/dist/gerencigeo-canvas/layer_hit_test.d.ts +22 -0
- package/dist/gerencigeo-canvas/layer_manager.d.ts +5 -0
- package/dist/gerencigeo-canvas/mapa_core.d.ts +6 -0
- package/dist/gerencigeo-canvas/motor/dados-camada.d.ts +39 -0
- package/dist/gerencigeo-canvas/motor/estilo.d.ts +28 -0
- package/dist/gerencigeo-canvas/motor/geometria-px.d.ts +27 -0
- package/dist/gerencigeo-canvas/motor/index.d.ts +5 -0
- package/dist/gerencigeo-canvas/motor/motor-formas.d.ts +107 -0
- package/dist/gerencigeo-canvas/motor/tipos.d.ts +100 -0
- package/dist/gerencigeo-canvas/popup_gate.d.ts +30 -0
- package/dist/gerencigeo-canvas/renderers/canvas_formas_leaflet.d.ts +87 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_canvas_renderer.d.ts +58 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_despachante.d.ts +31 -0
- package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +48 -9
- package/dist/gerencigeo-canvas/renderers/marcadores_feicoes.d.ts +11 -0
- package/dist/gerencigeo-canvas/renderers/marcas_lod_layer.d.ts +19 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_feicoes_tipos.d.ts +44 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_formas.d.ts +95 -0
- package/dist/gerencigeo-canvas/renderers/selecao_visual.d.ts +6 -0
- package/dist/gerencigeo-canvas/types.d.ts +2 -0
- package/dist/gerencigeo-canvas/zoom_opcoes.d.ts +10 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +179 -176
- package/dist/mapa.cjs +11 -16
- package/dist/mapa.js +242 -170
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/motor-BB6tB6U-.cjs +1 -0
- package/dist/motor-CFI84lM2.js +1301 -0
- package/dist/motor.cjs +1 -0
- package/dist/motor.d.ts +7 -0
- package/dist/motor.js +52 -0
- package/dist/opcoes-CJYLi6kd.js +12 -0
- package/dist/opcoes-CkyDxBuQ.cjs +1 -0
- package/dist/register.cjs +1 -1
- package/dist/register.js +11 -11
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +1 -1
- package/dist/tipos-elementos.d.ts +49 -8
- package/dist/tipos-react.d.ts +2 -0
- package/dist/tipos-vue.d.ts +45 -8
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/ui-badge-BWhoGgo9.js +197 -0
- package/dist/ui-badge-SIR81R9l.cjs +28 -0
- package/dist/ui-botao-D24oXySA.cjs +12 -0
- package/dist/ui-botao-Dsj08jjw.js +165 -0
- package/dist/{ui-campo-texto-Uu2dJE_0.js → ui-campo-texto-B_OHVGiN.js} +51 -51
- package/dist/ui-campo-texto-DauJCde3.cjs +16 -0
- package/dist/{ui-card-C_o5_0cB.js → ui-card-BNYCQ7g-.js} +50 -42
- package/dist/ui-card-BrjBL-yo.cjs +20 -0
- package/dist/ui-controle-cores-DgEza3wF.js +612 -0
- package/dist/ui-controle-cores-uY__TgwW.cjs +117 -0
- package/dist/ui-kit.css +1 -1
- package/dist/ui-linha-BYAX4W6x.cjs +19 -0
- package/dist/{ui-segmented-DyF5YLsV.js → ui-linha-aqLlaYi7.js} +209 -114
- package/dist/{ui-modal-DBOtSTbR.js → ui-modal-BkYvNP0G.js} +116 -140
- package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
- package/dist/{ui-paleta-ferramentas-DbwdWVtT.js → ui-paleta-ferramentas-BXXrI1Y7.js} +491 -431
- package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +21 -0
- package/dist/{ui-skeleton-W9uwIceA.js → ui-skeleton-B2Rgrv8o.js} +254 -191
- package/dist/{ui-skeleton-SPYqku8P.cjs → ui-skeleton-DiOxTBZK.cjs} +10 -10
- package/dist/ui-switch-D9a8XlVX.cjs +53 -0
- package/dist/{ui-switch-BcOqOkiV.js → ui-switch-DO1R0Ce7.js} +187 -128
- package/dist/{ui-tabela-propriedades-C-PeuW1i.cjs → ui-tabela-propriedades-CjK2gG14.cjs} +10 -10
- package/dist/{ui-tabela-propriedades-BokvDD3b.js → ui-tabela-propriedades-DoL4SE0r.js} +845 -826
- package/package.json +8 -3
- package/dist/form-validacao-BIOXxt-1.js +0 -140
- package/dist/form-validacao-ytRYSF3E.cjs +0 -1
- package/dist/svg-seguro-BsbNQqpd.js +0 -50
- package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
- package/dist/ui-badge-BxT-sDmV.cjs +0 -28
- package/dist/ui-badge-C0eKBI8E.js +0 -183
- package/dist/ui-botao-BOOnP8ds.cjs +0 -12
- package/dist/ui-botao-DfqSivHl.js +0 -165
- package/dist/ui-botao-OGJV6Vfk.js +0 -165
- package/dist/ui-botao-psS1juof.cjs +0 -12
- package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
- package/dist/ui-card-B86lJXTP.cjs +0 -20
- package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
- package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
- package/dist/ui-modal-CvGFGh1h.cjs +0 -18
- package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
- package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
- package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
- package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
- package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
- package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
- package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
- package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
- package/dist/ui-segmented-wUraId2e.js +0 -412
- package/dist/ui-skeleton-DI4_9WOX.js +0 -428
- package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
- package/dist/ui-switch-D7iPKDj-.cjs +0 -53
- package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
- package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
- package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
- package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
- package/dist/ui-toast-Bp_NlM5G.js +0 -156
- package/dist/ui-toast-DGTZKne5.cjs +0 -20
- package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
- package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
package/dist/mapa.js
CHANGED
|
@@ -1,111 +1,166 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
1
|
+
var C = Object.defineProperty;
|
|
2
|
+
var x = (r, e, t) => e in r ? C(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
|
3
|
+
var s = (r, e, t) => x(r, typeof e != "symbol" ? e + "" : e, t);
|
|
4
4
|
/* empty css */
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
const
|
|
9
|
-
function
|
|
5
|
+
import { l as z, p as v } from "./leaflet-PPDKB6Dd.js";
|
|
6
|
+
import { d as m, S as d } from "./ssr-safe-5cWfJP-s.js";
|
|
7
|
+
import { c as S, o as I } from "./leaflet-loader-Cjcdgj5R.js";
|
|
8
|
+
const _ = ":host{display:block;width:100%;height:400px;position:relative;border-radius:var(--ui-raio-lg, 10px);overflow:hidden;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0,0,0,.1))}.ui-mapa-container{width:100%;height:100%;z-index:1}.leaflet-top,.leaflet-bottom{z-index:1000}.ui-mapa-popup{font-family:inherit;font-size:13px;font-weight:500;color:#111827;padding:2px 4px}.ui-mapa-svg-pin,.ui-mapa-div-marker{background:transparent!important;border:none!important;cursor:pointer;transition:transform .15s ease,filter .15s ease}.ui-mapa-svg-pin:hover,.ui-mapa-div-marker:hover{transform:scale(1.15);filter:brightness(1.2)}";
|
|
9
|
+
function h() {
|
|
10
|
+
return I() ?? null;
|
|
11
|
+
}
|
|
12
|
+
async function E() {
|
|
13
|
+
return await S() ?? null;
|
|
14
|
+
}
|
|
15
|
+
function w(r) {
|
|
10
16
|
return {
|
|
11
17
|
osm: {
|
|
12
18
|
nome: "OpenStreetMap",
|
|
13
|
-
layer: () =>
|
|
19
|
+
layer: () => r.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
|
|
14
20
|
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
|
15
21
|
})
|
|
16
22
|
},
|
|
17
23
|
satelite: {
|
|
18
24
|
nome: "Satélite (Esri)",
|
|
19
|
-
layer: () =>
|
|
25
|
+
layer: () => r.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}", {
|
|
20
26
|
attribution: "Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"
|
|
21
27
|
})
|
|
22
28
|
},
|
|
23
29
|
topografia: {
|
|
24
30
|
nome: "Topografia",
|
|
25
|
-
layer: () =>
|
|
31
|
+
layer: () => r.tileLayer("https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png", {
|
|
26
32
|
attribution: 'Map data: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, <a href="http://viewfinderpanoramas.org">SRTM</a> | Map style: © <a href="https://opentopomap.org">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)'
|
|
27
33
|
})
|
|
28
34
|
},
|
|
29
35
|
ruas: {
|
|
30
36
|
nome: "Ruas (Esri)",
|
|
31
|
-
layer: () =>
|
|
37
|
+
layer: () => r.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}", {
|
|
32
38
|
attribution: "Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"
|
|
33
39
|
})
|
|
34
40
|
}
|
|
35
41
|
};
|
|
36
42
|
}
|
|
37
|
-
|
|
43
|
+
const p = { lat: -23.55052, lng: -46.633308, zoom: 13 }, L = "#00f5a0", O = "#3388ff", k = 3, l = (r) => Number.isFinite(r);
|
|
44
|
+
function A(r, e, t) {
|
|
45
|
+
const i = parseFloat(r ?? ""), o = parseFloat(e ?? ""), a = parseInt(t ?? "", 10);
|
|
46
|
+
return {
|
|
47
|
+
lat: l(i) && Math.abs(i) <= 90 ? i : p.lat,
|
|
48
|
+
lng: l(o) && Math.abs(o) <= 180 ? o : p.lng,
|
|
49
|
+
zoom: l(a) && a >= 0 && a <= 22 ? a : p.zoom
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function P(r, e) {
|
|
53
|
+
const t = parseInt(r ?? "", 10);
|
|
54
|
+
return l(t) && t > 0 ? t : e;
|
|
55
|
+
}
|
|
56
|
+
const R = /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i, N = /^(?:rgb|rgba|hsl|hsla)\(\s*[\d.,%\s/deg-]+\)$/i, D = /^[a-z]{3,30}$/i;
|
|
57
|
+
function T(r, e) {
|
|
58
|
+
const t = (r ?? "").trim();
|
|
59
|
+
return R.test(t) || N.test(t) || D.test(t) ? t : e;
|
|
60
|
+
}
|
|
61
|
+
function G(r, e) {
|
|
62
|
+
const t = (r ?? "").split(",").map((i) => i.trim().toLowerCase()).filter((i) => e.includes(i));
|
|
63
|
+
return t.length > 0 ? t : ["osm"];
|
|
64
|
+
}
|
|
65
|
+
function y(r) {
|
|
66
|
+
if (!r) return [];
|
|
67
|
+
let e;
|
|
68
|
+
try {
|
|
69
|
+
e = JSON.parse(r);
|
|
70
|
+
} catch (i) {
|
|
71
|
+
return console.error('Formato inválido para atributo pontos no <ui-mapa-linha>. Deve ser um JSON array, ex: "[[lat, lng], ...]"', i), [];
|
|
72
|
+
}
|
|
73
|
+
if (!Array.isArray(e)) return [];
|
|
74
|
+
const t = [];
|
|
75
|
+
for (const i of e) {
|
|
76
|
+
if (!Array.isArray(i) || i.length < 2) continue;
|
|
77
|
+
const [o, a] = i;
|
|
78
|
+
typeof o == "number" && typeof a == "number" && l(o) && l(a) && Math.abs(o) <= 90 && Math.abs(a) <= 180 && t.push([o, a]);
|
|
79
|
+
}
|
|
80
|
+
return t;
|
|
81
|
+
}
|
|
82
|
+
const U = "Mapa", V = `
|
|
83
|
+
<div style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 140px; padding: 16px; box-sizing: border-box; text-align: center; color: var(--ui-cor-texto-secundario, #888899); font-family: var(--ui-fonte-base, 'Inter', sans-serif); font-size: 12px; background: var(--ui-cor-superficie, #141417); border-radius: var(--ui-raio-borda, 6px); border: 1px dashed var(--ui-cor-borda, rgba(255,255,255,0.15));">
|
|
84
|
+
<span style="font-size: 20px; margin-bottom: 6px;" aria-hidden="true">🗺️</span>
|
|
85
|
+
<strong style="color: var(--ui-cor-texto, #e1e1e6); margin-bottom: 4px;">Leaflet não encontrado</strong>
|
|
86
|
+
<span style="max-width: 320px; line-height: 1.4;">Para utilizar o componente <code><ui-mapa></code>, instale a biblioteca <code>leaflet</code> ou inclua seu script no HTML: <code><script src=".../leaflet.js"></script></code>.</span>
|
|
87
|
+
</div>
|
|
88
|
+
`;
|
|
89
|
+
class H extends d {
|
|
38
90
|
constructor() {
|
|
39
91
|
super();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
92
|
+
s(this, "mapContainer");
|
|
93
|
+
s(this, "mapInstance", null);
|
|
94
|
+
s(this, "_initTimer", null);
|
|
95
|
+
s(this, "_resizeObserver");
|
|
96
|
+
s(this, "_resizeTimer");
|
|
97
|
+
s(this, "_invalidarTimer");
|
|
45
98
|
const t = this.attachShadow({ mode: "open" });
|
|
46
99
|
t.innerHTML = `
|
|
47
100
|
<style>
|
|
48
|
-
${
|
|
49
|
-
${
|
|
101
|
+
${z}
|
|
102
|
+
${_}
|
|
50
103
|
</style>
|
|
51
|
-
<div class="ui-mapa-container" id="map-container"></div>
|
|
104
|
+
<div class="ui-mapa-container" id="map-container" role="region"></div>
|
|
52
105
|
<div style="display: none;"><slot></slot></div>
|
|
53
|
-
`, this.mapContainer = t.getElementById("map-container");
|
|
106
|
+
`, this.mapContainer = t.getElementById("map-container"), this.sincronizarRotulo();
|
|
54
107
|
}
|
|
55
108
|
static get observedAttributes() {
|
|
56
|
-
return ["lat", "lng", "zoom"];
|
|
109
|
+
return ["lat", "lng", "zoom", "aria-label"];
|
|
57
110
|
}
|
|
58
111
|
connectedCallback() {
|
|
59
|
-
this._initTimer =
|
|
60
|
-
this.initMap();
|
|
112
|
+
this.sincronizarRotulo(), this._initTimer = setTimeout(() => {
|
|
113
|
+
this._initTimer = null, this.initMap();
|
|
61
114
|
}, 0);
|
|
62
115
|
}
|
|
63
116
|
disconnectedCallback() {
|
|
64
|
-
|
|
117
|
+
var t;
|
|
118
|
+
this._initTimer && (clearTimeout(this._initTimer), this._initTimer = null), (t = this._resizeObserver) == null || t.disconnect(), this._resizeObserver = void 0, this._resizeTimer && clearTimeout(this._resizeTimer), this._invalidarTimer && clearTimeout(this._invalidarTimer), this._resizeTimer = void 0, this._invalidarTimer = void 0, this.mapInstance && (this.mapInstance.remove(), this.mapInstance = null);
|
|
65
119
|
}
|
|
66
|
-
attributeChangedCallback(t,
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
|
|
120
|
+
attributeChangedCallback(t, i, o) {
|
|
121
|
+
if (i !== o) {
|
|
122
|
+
if (t === "aria-label") {
|
|
123
|
+
this.sincronizarRotulo();
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (this.mapInstance) {
|
|
127
|
+
const a = A(this.getAttribute("lat"), this.getAttribute("lng"), this.getAttribute("zoom"));
|
|
128
|
+
this.mapInstance.setView([a.lat, a.lng], a.zoom);
|
|
129
|
+
}
|
|
70
130
|
}
|
|
71
131
|
}
|
|
132
|
+
/** Nome acessível da região: o `aria-label` do host ou "Mapa". */
|
|
133
|
+
sincronizarRotulo() {
|
|
134
|
+
var t;
|
|
135
|
+
(t = this.mapContainer) == null || t.setAttribute("aria-label", this.getAttribute("aria-label") || U);
|
|
136
|
+
}
|
|
72
137
|
async initMap() {
|
|
73
|
-
var
|
|
138
|
+
var b;
|
|
74
139
|
if (this.mapInstance) return;
|
|
75
|
-
const t = await
|
|
140
|
+
const t = await E();
|
|
141
|
+
if (!this.isConnected || this.mapInstance) return;
|
|
76
142
|
if (!t) {
|
|
77
|
-
this.mapContainer.innerHTML =
|
|
78
|
-
<div style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 140px; padding: 16px; box-sizing: border-box; text-align: center; color: var(--ui-cor-texto-secundario, #888899); font-family: var(--ui-fonte-base, 'Inter', sans-serif); font-size: 12px; background: var(--ui-cor-superficie, #141417); border-radius: var(--ui-raio-borda, 6px); border: 1px dashed var(--ui-cor-borda, rgba(255,255,255,0.15));">
|
|
79
|
-
<span style="font-size: 20px; margin-bottom: 6px;">🗺️</span>
|
|
80
|
-
<strong style="color: var(--ui-cor-texto, #e1e1e6); margin-bottom: 4px;">Leaflet não encontrado</strong>
|
|
81
|
-
<span style="max-width: 320px; line-height: 1.4;">Para utilizar o componente <code><ui-mapa></code>, instale a biblioteca <code>leaflet</code> ou inclua seu script no HTML: <code><script src=".../leaflet.js"></script></code>.</span>
|
|
82
|
-
</div>
|
|
83
|
-
`;
|
|
143
|
+
this.mapContainer.innerHTML = V;
|
|
84
144
|
return;
|
|
85
145
|
}
|
|
86
|
-
const
|
|
87
|
-
this.mapInstance =
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const l = {};
|
|
94
|
-
l[e[p[0]].nome] = f;
|
|
95
|
-
for (let m = 1; m < p.length; m++) {
|
|
96
|
-
const b = p[m];
|
|
97
|
-
l[e[b].nome] = e[b].layer();
|
|
98
|
-
}
|
|
99
|
-
t.control.layers(l, void 0, { position: "topright" }).addTo(this.mapInstance);
|
|
146
|
+
const i = w(t), o = A(this.getAttribute("lat"), this.getAttribute("lng"), this.getAttribute("zoom")), a = t.map(this.mapContainer).setView([o.lat, o.lng], o.zoom);
|
|
147
|
+
this.mapInstance = a;
|
|
148
|
+
const n = G(this.getAttribute("camadas"), Object.keys(i)), f = i[n[0]].layer();
|
|
149
|
+
if (f.addTo(a), n.length > 1) {
|
|
150
|
+
const c = { [i[n[0]].nome]: f };
|
|
151
|
+
for (const g of n.slice(1)) c[i[g].nome] = i[g].layer();
|
|
152
|
+
t.control.layers(c, void 0, { position: "topright" }).addTo(a);
|
|
100
153
|
}
|
|
101
|
-
(
|
|
154
|
+
(b = t.Icon) != null && b.Default && (t.Icon.Default.imagePath = "https://unpkg.com/leaflet@1.9.4/dist/images/"), typeof ResizeObserver < "u" && (this._resizeObserver = new ResizeObserver(() => {
|
|
102
155
|
this._resizeTimer && clearTimeout(this._resizeTimer), this._resizeTimer = setTimeout(() => {
|
|
103
|
-
|
|
156
|
+
var c;
|
|
157
|
+
return (c = this.mapInstance) == null ? void 0 : c.invalidateSize();
|
|
104
158
|
}, 60);
|
|
105
|
-
}), this._resizeObserver.observe(this.mapContainer)), setTimeout(() => {
|
|
106
|
-
|
|
159
|
+
}), this._resizeObserver.observe(this.mapContainer)), this._invalidarTimer = setTimeout(() => {
|
|
160
|
+
var c;
|
|
161
|
+
return (c = this.mapInstance) == null ? void 0 : c.invalidateSize();
|
|
107
162
|
}, 100), this.dispatchEvent(new CustomEvent("ui-mapa-pronto", {
|
|
108
|
-
detail: { map:
|
|
163
|
+
detail: { map: a },
|
|
109
164
|
bubbles: !0,
|
|
110
165
|
composed: !0
|
|
111
166
|
}));
|
|
@@ -114,151 +169,168 @@ class C extends d {
|
|
|
114
169
|
return this.mapInstance;
|
|
115
170
|
}
|
|
116
171
|
}
|
|
117
|
-
|
|
118
|
-
|
|
172
|
+
m("ui-mapa", H);
|
|
173
|
+
const u = "http://www.w3.org/2000/svg";
|
|
174
|
+
function $(r) {
|
|
175
|
+
const e = document.createElement("div");
|
|
176
|
+
return e.style.cssText = "width:14px;height:14px;border-radius:50%;border:2px solid #ffffff;box-shadow:0 1px 4px rgba(0,0,0,0.6);", e.style.backgroundColor = r, e;
|
|
177
|
+
}
|
|
178
|
+
function F(r) {
|
|
179
|
+
const e = document.createElementNS(u, "svg");
|
|
180
|
+
e.setAttribute("width", "24"), e.setAttribute("height", "32"), e.setAttribute("viewBox", "0 0 24 32"), e.setAttribute("fill", "none"), e.setAttribute("aria-hidden", "true"), e.style.filter = "drop-shadow(0 2px 4px rgba(0,0,0,0.45))";
|
|
181
|
+
const t = document.createElementNS(u, "path");
|
|
182
|
+
t.setAttribute("d", "M12 0C5.372 0 0 5.372 0 12C0 21 12 32 12 32C12 32 24 21 24 12C24 5.372 18.628 0 12 0Z"), t.setAttribute("fill", r);
|
|
183
|
+
const i = document.createElementNS(u, "circle");
|
|
184
|
+
return i.setAttribute("cx", "12"), i.setAttribute("cy", "11"), i.setAttribute("r", "4.5"), i.setAttribute("fill", "#ffffff"), e.append(t, i), e;
|
|
185
|
+
}
|
|
186
|
+
function B(r, e, t) {
|
|
187
|
+
return t === "circle" ? r.divIcon({ className: "ui-mapa-div-marker", html: $(e), iconSize: [14, 14], iconAnchor: [7, 7] }) : r.divIcon({ className: "ui-mapa-svg-pin", html: F(e), iconSize: [24, 32], iconAnchor: [12, 32], popupAnchor: [0, -30] });
|
|
188
|
+
}
|
|
189
|
+
const j = 30, J = 50;
|
|
190
|
+
class M {
|
|
191
|
+
constructor(e, t) {
|
|
192
|
+
s(this, "pai", null);
|
|
193
|
+
s(this, "timer", null);
|
|
194
|
+
s(this, "tentativas", 0);
|
|
195
|
+
s(this, "aoPronto", () => {
|
|
196
|
+
this.opcoes.aoPerderMapa(), this.tentativas = 0, this.tentar();
|
|
197
|
+
});
|
|
198
|
+
this.host = e, this.opcoes = t;
|
|
199
|
+
}
|
|
200
|
+
conectar() {
|
|
201
|
+
var e;
|
|
202
|
+
this.desconectar(), this.pai = this.host.closest("ui-mapa"), (e = this.pai) == null || e.addEventListener("ui-mapa-pronto", this.aoPronto), this.agendar(0);
|
|
203
|
+
}
|
|
204
|
+
desconectar() {
|
|
205
|
+
var e;
|
|
206
|
+
this.timer && clearTimeout(this.timer), this.timer = null, (e = this.pai) == null || e.removeEventListener("ui-mapa-pronto", this.aoPronto), this.pai = null, this.tentativas = 0;
|
|
207
|
+
}
|
|
208
|
+
agendar(e) {
|
|
209
|
+
this.timer && clearTimeout(this.timer), this.timer = setTimeout(() => this.tentar(), e);
|
|
210
|
+
}
|
|
211
|
+
tentar() {
|
|
212
|
+
this.timer = null;
|
|
213
|
+
const e = this.pai ?? this.host.closest("ui-mapa");
|
|
214
|
+
if (!e) {
|
|
215
|
+
console.warn(`<${this.opcoes.rotulo}> deve estar dentro de um elemento <ui-mapa>`);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const t = e.getMap();
|
|
219
|
+
if (!t) {
|
|
220
|
+
if (this.tentativas >= j) {
|
|
221
|
+
console.warn(`<${this.opcoes.rotulo}> Tempo limite esgotado aguardando inicialização do mapa pai.`);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
this.tentativas++, this.agendar(J);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
this.tentativas = 0, this.opcoes.aoMapa(t);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
class X extends d {
|
|
119
231
|
constructor() {
|
|
120
232
|
super(...arguments);
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
233
|
+
s(this, "marker", null);
|
|
234
|
+
s(this, "vinculo", new M(this, {
|
|
235
|
+
rotulo: "ui-mapa-marcador",
|
|
236
|
+
aoMapa: (t) => this.criarMarcador(t),
|
|
237
|
+
aoPerderMapa: () => this.removerMarcador()
|
|
238
|
+
}));
|
|
128
239
|
}
|
|
129
240
|
static get observedAttributes() {
|
|
130
241
|
return ["lat", "lng", "titulo", "cor", "formato"];
|
|
131
242
|
}
|
|
132
243
|
connectedCallback() {
|
|
133
|
-
this.
|
|
244
|
+
this.vinculo.conectar();
|
|
134
245
|
}
|
|
135
246
|
disconnectedCallback() {
|
|
136
|
-
this.
|
|
247
|
+
this.vinculo.desconectar(), this.removerMarcador();
|
|
137
248
|
}
|
|
138
|
-
attributeChangedCallback(t,
|
|
139
|
-
if (
|
|
249
|
+
attributeChangedCallback(t, i, o) {
|
|
250
|
+
if (!(i === o || !this.marker)) {
|
|
140
251
|
if (t === "lat" || t === "lng") {
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
252
|
+
const a = v(this.getAttribute("lat"), this.getAttribute("lng"));
|
|
253
|
+
a && this.marker.setLatLng([a.lat, a.lon]);
|
|
254
|
+
} else if (t === "titulo")
|
|
255
|
+
this.marker.unbindPopup(), o && this.marker.bindPopup(this.createPopupContent(o)), this.aplicarNomeAcessivel();
|
|
256
|
+
else if (t === "cor" || t === "formato") {
|
|
257
|
+
const a = h();
|
|
258
|
+
a && this.marker.setIcon(this.createIcon(a));
|
|
147
259
|
}
|
|
148
260
|
}
|
|
149
261
|
}
|
|
262
|
+
removerMarcador() {
|
|
263
|
+
var t;
|
|
264
|
+
(t = this.marker) == null || t.remove(), this.marker = null;
|
|
265
|
+
}
|
|
150
266
|
createPopupContent(t) {
|
|
151
|
-
const
|
|
152
|
-
return
|
|
267
|
+
const i = document.createElement("div");
|
|
268
|
+
return i.className = "ui-mapa-popup", i.textContent = t, i;
|
|
153
269
|
}
|
|
154
270
|
createIcon(t) {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
const o = `<div style="width:14px; height:14px; background-color:${e}; border-radius:50%; border:2px solid #ffffff; box-shadow:0 1px 4px rgba(0,0,0,0.6);"></div>`;
|
|
158
|
-
return t.divIcon({
|
|
159
|
-
className: "ui-mapa-div-marker",
|
|
160
|
-
html: o,
|
|
161
|
-
iconSize: [14, 14],
|
|
162
|
-
iconAnchor: [7, 7]
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
const i = `
|
|
166
|
-
<svg width="24" height="32" viewBox="0 0 24 32" fill="none" xmlns="http://www.w3.org/2000/svg" style="filter: drop-shadow(0 2px 4px rgba(0,0,0,0.45));">
|
|
167
|
-
<path d="M12 0C5.372 0 0 5.372 0 12C0 21 12 32 12 32C12 32 24 21 24 12C24 5.372 18.628 0 12 0Z" fill="${e}"/>
|
|
168
|
-
<circle cx="12" cy="11" r="4.5" fill="#ffffff"/>
|
|
169
|
-
</svg>
|
|
170
|
-
`;
|
|
171
|
-
return t.divIcon({
|
|
172
|
-
className: "ui-mapa-svg-pin",
|
|
173
|
-
html: i,
|
|
174
|
-
iconSize: [24, 32],
|
|
175
|
-
iconAnchor: [12, 32],
|
|
176
|
-
popupAnchor: [0, -30]
|
|
177
|
-
});
|
|
271
|
+
const i = this.getAttribute("formato") === "circle" ? "circle" : "pin";
|
|
272
|
+
return B(t, T(this.getAttribute("cor"), L), i);
|
|
178
273
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
this.
|
|
195
|
-
const r = y(this.getAttribute("lat"), this.getAttribute("lng"));
|
|
196
|
-
if (!r) return;
|
|
197
|
-
const i = this.getAttribute("titulo"), o = h() || window.L;
|
|
198
|
-
o && (this.marker = o.marker([r.lat, r.lon], {
|
|
199
|
-
icon: this.createIcon(o)
|
|
200
|
-
}), this.marker && (i && this.marker.bindPopup(this.createPopupContent(i)), this.marker.addTo(e)));
|
|
274
|
+
/** O ícone é um `div`: o nome acessível vai em `aria-label` (o Leaflet já põe `role=button` e `tabindex=0`). */
|
|
275
|
+
aplicarNomeAcessivel() {
|
|
276
|
+
var o;
|
|
277
|
+
const t = (o = this.marker) == null ? void 0 : o.getElement();
|
|
278
|
+
if (!t) return;
|
|
279
|
+
const i = this.getAttribute("titulo");
|
|
280
|
+
i ? (t.setAttribute("aria-label", i), t.setAttribute("title", i)) : (t.removeAttribute("aria-label"), t.removeAttribute("title"));
|
|
281
|
+
}
|
|
282
|
+
criarMarcador(t) {
|
|
283
|
+
this.removerMarcador();
|
|
284
|
+
const i = v(this.getAttribute("lat"), this.getAttribute("lng"));
|
|
285
|
+
if (!i) return;
|
|
286
|
+
const o = h();
|
|
287
|
+
if (!o) return;
|
|
288
|
+
const a = this.getAttribute("titulo"), n = o.marker([i.lat, i.lon], { icon: this.createIcon(o), keyboard: !0, title: a || void 0 });
|
|
289
|
+
a && n.bindPopup(this.createPopupContent(a)), n.addTo(t), this.marker = n, this.aplicarNomeAcessivel();
|
|
201
290
|
}
|
|
202
291
|
}
|
|
203
|
-
|
|
204
|
-
class
|
|
292
|
+
m("ui-mapa-marcador", X);
|
|
293
|
+
class W extends d {
|
|
205
294
|
constructor() {
|
|
206
295
|
super(...arguments);
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
296
|
+
s(this, "polyline", null);
|
|
297
|
+
s(this, "vinculo", new M(this, {
|
|
298
|
+
rotulo: "ui-mapa-linha",
|
|
299
|
+
aoMapa: (t) => this.criarLinha(t),
|
|
300
|
+
aoPerderMapa: () => this.removerLinha()
|
|
301
|
+
}));
|
|
210
302
|
}
|
|
211
303
|
static get observedAttributes() {
|
|
212
304
|
return ["pontos", "cor", "espessura"];
|
|
213
305
|
}
|
|
214
306
|
connectedCallback() {
|
|
215
|
-
this.
|
|
307
|
+
this.vinculo.conectar();
|
|
216
308
|
}
|
|
217
309
|
disconnectedCallback() {
|
|
218
|
-
this.
|
|
310
|
+
this.vinculo.desconectar(), this.removerLinha();
|
|
219
311
|
}
|
|
220
|
-
attributeChangedCallback(t,
|
|
221
|
-
|
|
222
|
-
color: this.getAttribute("cor") || "#3388ff",
|
|
223
|
-
weight: parseInt(this.getAttribute("espessura") || "3", 10)
|
|
224
|
-
}));
|
|
312
|
+
attributeChangedCallback(t, i, o) {
|
|
313
|
+
i === o || !this.polyline || (t === "pontos" ? this.polyline.setLatLngs(y(this.getAttribute("pontos"))) : this.polyline.setStyle(this.estilo()));
|
|
225
314
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
} catch (t) {
|
|
232
|
-
console.error('Formato inválido para atributo pontos no <ui-mapa-linha>. Deve ser um JSON array, ex: "[[lat, lng], ...]"', t);
|
|
233
|
-
}
|
|
234
|
-
return [];
|
|
315
|
+
estilo() {
|
|
316
|
+
return {
|
|
317
|
+
color: T(this.getAttribute("cor"), O),
|
|
318
|
+
weight: P(this.getAttribute("espessura"), k)
|
|
319
|
+
};
|
|
235
320
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
if (this._retryCount >= 30) {
|
|
245
|
-
console.warn("<ui-mapa-linha> Tempo limite esgotado aguardando inicialização do mapa pai.");
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
this._retryCount++, this._initTimer = setTimeout(() => this.initLinha(), 50);
|
|
249
|
-
return;
|
|
250
|
-
}
|
|
251
|
-
this._retryCount = 0;
|
|
252
|
-
const r = this.getAttribute("cor") || "#3388ff", i = parseInt(this.getAttribute("espessura") || "3", 10), o = h() || window.L;
|
|
253
|
-
o && (this.polyline = o.polyline(this.getPontos(), {
|
|
254
|
-
color: r,
|
|
255
|
-
weight: i
|
|
256
|
-
}), this.polyline && this.polyline.addTo(e));
|
|
321
|
+
removerLinha() {
|
|
322
|
+
var t;
|
|
323
|
+
(t = this.polyline) == null || t.remove(), this.polyline = null;
|
|
324
|
+
}
|
|
325
|
+
criarLinha(t) {
|
|
326
|
+
this.removerLinha();
|
|
327
|
+
const i = h();
|
|
328
|
+
i && (this.polyline = i.polyline(y(this.getAttribute("pontos")), this.estilo()).addTo(t));
|
|
257
329
|
}
|
|
258
330
|
}
|
|
259
|
-
|
|
331
|
+
m("ui-mapa-linha", W);
|
|
260
332
|
export {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
333
|
+
H as UIMapa,
|
|
334
|
+
W as UIMapaLinha,
|
|
335
|
+
X as UIMapaMarcador
|
|
264
336
|
};
|
package/dist/modal.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-modal-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-modal-CUNbpbZ1.cjs");exports.UIDialog=o.UIDialog;exports.UIModal=o.UIModal;exports.aplicarInertForaDoModal=o.aplicarInertForaDoModal;exports.removerInertForaDoModal=o.removerInertForaDoModal;
|
package/dist/modal.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var Kt=Object.defineProperty;var Wt=(a,t,o)=>t in a?Kt(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o;var M=(a,t,o)=>Wt(a,typeof t!="symbol"?t+"":t,o);function R(a){return a.partes&&a.partes.length>1?a.partes:[a.coordenadas]}function to(a){return a.tipo==="LineString"&&!!a.partes&&a.partes.length>1}function Dt(a){return a.length>1?{tipo:"LineString",coordenadas:a[0],partes:a}:{tipo:"LineString",coordenadas:a[0]}}const F=6378137,q=1/298.257222101,mt=q*(2-q),A=a=>a*Math.PI/180;function nt(a){const t=Math.sin(A(a)),o=1-mt*t*t;return{N:F/Math.sqrt(o),M:F*(1-mt)/(o*Math.sqrt(o))}}function oo(a){const{M:t,N:o}=nt(a);return{lat:A(1)*t,lng:A(1)*o*Math.cos(A(a))}}function eo(a,t){const o=F*(1-q),e=q,i=A(t[1]-a[1]),n=Math.atan((1-e)*Math.tan(A(a[0]))),s=Math.atan((1-e)*Math.tan(A(t[0]))),r=Math.sin(n),c=Math.cos(n),l=Math.sin(s),d=Math.cos(s);let h=i,u=0,v=0,x=0,f=0,m=0;for(let g=0;g<100;g++){const p=Math.sin(h),L=Math.cos(h);if(u=Math.hypot(d*p,c*l-r*d*L),u===0)return 0;v=r*l+c*d*L,x=Math.atan2(u,v);const D=c*d*p/u;f=1-D*D,m=f===0?0:v-2*r*l/f;const I=e/16*f*(4+e*(4-3*f)),E=h;if(h=i+(1-I)*e*D*(x+I*u*(m+I*v*(-1+2*m*m))),Math.abs(h-E)<1e-12)break}const P=f*(F*F-o*o)/(o*o),w=1+P/16384*(4096+P*(-768+P*(320-175*P))),O=P/1024*(256+P*(-128+P*(74-47*P))),C=O*u*(m+O/4*(v*(-1+2*m*m)-O/6*m*(-3+4*u*u)*(-3+4*m*m)));return o*w*(x-C)}function Q(a,t){const o=t[0]-a[0],e=t[1]-a[1];if(Math.abs(o)<.1&&Math.abs(e)<.1){const{M:i,N:n}=nt((a[0]+t[0])/2),s=A(o)*i,r=A(e)*n*Math.cos(A((a[0]+t[0])/2));return Math.hypot(r,s)}return eo(a,t)}function K(a,t=!1){let o=0;for(let e=1;e<a.length;e++)o+=Q(a[e-1],a[e]);return t&&a.length>2&&(o+=Q(a[a.length-1],a[0])),o}function pt(a){const t=a.length;if(t<3)return 0;let o=0,e=0;for(let r=0;r<t;r++){const c=a[(r-1+t)%t],l=a[r],d=a[(r+1)%t];o+=A(d[1]-c[1])*Math.sin(A(l[0])),e+=l[0]}const{M:i,N:n}=nt(e/t),s=Math.abs(o*i*n/2);return Number.isFinite(s)?s:0}function At(a){const[t,...o]=a;return t?Math.max(0,pt(t)-o.reduce((e,i)=>e+pt(i),0)):0}const ao=new Intl.NumberFormat("pt-BR",{minimumFractionDigits:4,maximumFractionDigits:4}),gt=new Intl.NumberFormat("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});function Ct(a){return`${ao.format(a/1e4)} ha`}function It(a){return a>=1e3?`${gt.format(a/1e3)} km`:`${gt.format(a)} m`}function St(a){return a.tipo==="Polygon"?At(a.aneis):a.tipo==="Circle"?Math.PI*a.raioMetros**2:null}function yt(a){return a.tipo==="LineString"?R(a).reduce((t,o)=>t+K(o),0):a.tipo==="Polygon"?K(a.aneis[0]??[],!0):a.tipo==="Circle"?2*Math.PI*a.raioMetros:null}function Ot(a,t){var i;const o=t??"name";if(o==="area"){const n=St(a.geometria);return n===null?"":Ct(n)}if(o==="extensao"){const n=yt(a.geometria);return n===null?"":It(n)}if(o==="id")return a.id;const e=(i=a.propriedades)==null?void 0:i[o];return e!=null&&e!==""?String(e):t?"":a.id}function Et(a){let t;switch(a.tipo){case"Point":case"Text":t=[a.coordenada];break;case"LineString":t=R(a).flat();break;case"Polygon":t=a.aneis.flat();break;case"Circle":{const i=a.raioMetros/111320,n=i/Math.max(.01,Math.cos(A(a.centro[0])));t=[[a.centro[0]-i,a.centro[1]-n],[a.centro[0]+i,a.centro[1]+n]];break}}const o=t.map(i=>i[0]),e=t.map(i=>i[1]);return[[Math.min(...o),Math.min(...e)],[Math.max(...o),Math.max(...e)]]}const B=16,io=256;function W(a){const[[t,o],[e,i]]=Et(a.geometria);return{minLon:o,minLat:t,maxLon:i,maxLat:e}}function j(a,t){return a.minLon<=t.maxLon&&a.maxLon>=t.minLon&&a.minLat<=t.maxLat&&a.maxLat>=t.minLat}function vt(a){let t=1/0,o=1/0,e=-1/0,i=-1/0;for(const n of a)n.minLon<t&&(t=n.minLon),n.minLat<o&&(o=n.minLat),n.maxLon>e&&(e=n.maxLon),n.maxLat>i&&(i=n.maxLat);return{minLon:t,minLat:o,maxLon:e,maxLat:i}}function Mt(a){const t=a.length,o=Math.ceil(t/B),i=Math.ceil(Math.sqrt(o))*B,n=[...a].sort((r,c)=>r.minLon+r.maxLon-(c.minLon+c.maxLon)),s=[];for(let r=0;r<t;r+=i){const c=n.slice(r,r+i).sort((l,d)=>l.minLat+l.maxLat-(d.minLat+d.maxLat));for(let l=0;l<c.length;l+=B)s.push(c.slice(l,l+B))}return s}function no(a){if(a.length===0)return null;let t=Mt(a).map(o=>({...vt(o),folhas:o}));for(;t.length>1;)t=Mt(t).map(o=>({...vt(o),filhos:o}));return t[0]}class bt{constructor(){M(this,"raiz",null);M(this,"itens",new Map);M(this,"delta",new Map);M(this,"obsoletos",new Set)}get tamanho(){return this.itens.size}construir(t){this.itens.clear();for(const o of t)o.excluida||this.itens.set(o.id,{id:o.id,...W(o)});this.remontar()}inserir(t){this.atualizar(t)}atualizar(t){if(t.excluida){this.remover(t.id);return}const o={id:t.id,...W(t)};this.itens.has(t.id)&&this.obsoletos.add(t.id),this.itens.set(t.id,o),this.delta.set(t.id,o),this.compactarSeNecessario()}remover(t){this.itens.delete(t)&&(this.obsoletos.add(t),this.delta.delete(t),this.compactarSeNecessario())}limpar(){this.itens.clear(),this.remontar()}consultar(t){const o=[],e=this.raiz?[this.raiz]:[];for(;e.length>0;){const i=e.pop();if(j(i,t))if(i.folhas)for(const n of i.folhas)!this.obsoletos.has(n.id)&&j(n,t)&&o.push(n.id);else i.filhos&&e.push(...i.filhos)}for(const i of this.delta.values())j(i,t)&&o.push(i.id);return o}intersecta(t){return this.consultar(t).length>0}caixaDe(t){return this.itens.get(t)}compactarSeNecessario(){this.delta.size+this.obsoletos.size>Math.max(io,this.itens.size*.1)&&this.remontar()}remontar(){this.raiz=no([...this.itens.values()]),this.delta.clear(),this.obsoletos.clear()}}const st=17,G=9,so=1.2;function Nt(a){return!Number.isFinite(a)||a>=st?0:360/(256*2**a)*so}function tt(a){return Number.isFinite(a)?1/Math.max(.05,Math.cos(Math.max(-85,Math.min(85,a))*Math.PI/180)):1}function ro(a,t,o,e){const i=o[1]-t[1],n=(o[0]-t[0])*e,s=i*i+n*n,r=(a[0]-t[0])*e;let c=s===0?0:((a[1]-t[1])*i+r*n)/s;return c=Math.max(0,Math.min(1,c)),Math.hypot(a[1]-(t[1]+c*i),r-c*n)}function rt(a,t,o=1){if(!(t>0)||a.length<3)return a;const e=Number.isFinite(o)&&o>0?o:1,i=new Uint8Array(a.length);i[0]=1,i[a.length-1]=1;const n=[[0,a.length-1]];for(;n.length>0;){const[s,r]=n.pop();let c=0,l=-1;for(let d=s+1;d<r;d++){const h=ro(a[d],a[s],a[r],e);h>c&&(c=h,l=d)}l!==-1&&c>t&&(i[l]=1,n.push([s,l],[l,r]))}return a.filter((s,r)=>i[r]===1)}function Rt(a,t,o=1){if(!(t>0)||a.length<4)return a;const e=[...a,a[0]],i=rt(e,t,o);return i.pop(),i.length>=3?i:a}function wt(a){return(a.tipo==="LineString"||a.tipo==="Polygon")&&a.curva?0:a.tipo==="LineString"?R(a).reduce((t,o)=>t+o.length,0):a.tipo==="Polygon"?a.aneis.reduce((t,o)=>t+o.length,0):0}function co(a,t){var e,i,n,s;const o=Nt(t);if(o===0||wt(a)<G)return a;if(a.tipo==="LineString"){const r=R(a),c=tt(((i=(e=r[0])==null?void 0:e[0])==null?void 0:i[0])??NaN);return Dt(r.map(l=>rt(l,o,c)))}if(a.tipo==="Polygon"){const r=tt(((s=(n=a.aneis[0])==null?void 0:n[0])==null?void 0:s[0])??NaN);return{tipo:"Polygon",aneis:a.aneis.map(c=>Rt(c,o,r))}}return a}const lo=new Set(["previa","prévia","preview","rascunho","draft","proposta"]);function S(a){var o,e;const t=[a.status,(o=a.propriedades)==null?void 0:o.status,(e=a.propriedades)==null?void 0:e.tipo_geometria];for(const i of t)if(typeof i=="string"&&lo.has(i.trim().toLowerCase()))return"previa";return"oficial"}function y(a){var o;const t=a.entidadeId??((o=a.propriedades)==null?void 0:o.entidadeId);return typeof t=="string"||typeof t=="number"?String(t):a.id}const H=(a,t)=>`${a}\0${t}`;class uo{constructor(){M(this,"global",!1);M(this,"individuais",new Set)}alternarIndividual(t,o){const e=H(t,o);return this.individuais.has(e)?this.individuais.delete(e):this.individuais.add(e),this.individuais.has(e)}definirIndividual(t,o,e){const i=H(t,o);e?this.individuais.add(i):this.individuais.delete(i)}individualAtiva(t,o){return this.individuais.has(H(t,o))}static oficiais(t){const o=new Set;for(const e of t)!e.excluida&&S(e)==="oficial"&&o.add(y(e));return o}visivel(t,o){if(S(t)==="oficial")return!0;const e=y(t);return this.global||!o.has(e)||this.individualAtiva(t.camadaId,e)}previaSolicitada(t){return this.global||this.individualAtiva(t.camadaId,y(t))}}const ho=24,fo=2,xt=a=>typeof a=="number"&&Number.isFinite(a),J=a=>Array.isArray(a)&&a.length===2&&xt(a[0])&&xt(a[1]);function mo(a,t){return[2*a[0]-t[0],2*a[1]-t[1]]}function _t(a){return a.some(t=>t.entrada!==void 0||t.saida!==void 0)}function ct(a,t){return[a.saida??a.ponto,t.entrada??t.ponto]}function Ft(a,t){const o=[];for(let e=0;e<a-1;e++)o.push([e,e+1]);return t&&a>2&&o.push([a-1,0]),o}function jt(a,t,o,e,i){const n=1-i,s=n*n*n,r=3*n*n*i,c=3*n*i*i,l=i*i*i;return[s*a[0]+r*t[0]+c*o[0]+l*e[0],s*a[1]+r*t[1]+c*o[1]+l*e[1]]}function po(a,t=!1,o=ho){if(a.length===0)return[];const e=[[a[0].ponto[0],a[0].ponto[1]]];for(const[i,n]of Ft(a.length,t)){const s=a[i],r=a[n];if(!(s.saida===void 0&&r.entrada===void 0)){const[l,d]=ct(s,r);for(let h=1;h<o;h++)e.push(jt(s.ponto,l,d,r.ponto,h/o))}n!==0&&e.push([r.ponto[0],r.ponto[1]])}return e}function zt(a,t){if(a.length===0)return[];const o=[{cmd:"M",pts:[a[0].ponto]}];for(const[e,i]of Ft(a.length,t)){const n=a[e],s=a[i];if(n.saida===void 0&&s.entrada===void 0)o.push({cmd:"L",pts:[s.ponto]});else{const[r,c]=ct(n,s);o.push({cmd:"C",pts:[r,c,s.ponto]})}}return o}function go(a,t,o){const e=n=>String(Math.round(n*100)/100),i=zt(a,t).map(n=>n.cmd+n.pts.map(s=>{const r=o(s);return`${e(r.x)} ${e(r.y)}`}).join(" ")).join("");return i&&t?`${i}Z`:i}function vo(a,t=fo){if(!Array.isArray(a)||a.length<t)return null;const o=[];for(const e of a){if(!e||typeof e!="object"||!J(e.ponto))return null;const i=e,n={ponto:[i.ponto[0],i.ponto[1]]};J(i.entrada)&&(n.entrada=[i.entrada[0],i.entrada[1]]),J(i.saida)&&(n.saida=[i.saida[0],i.saida[1]]),o.push(n)}return _t(o)?o:null}function Mo(a,t){return a.map(o=>{const e={ponto:t(o.ponto)};return o.entrada&&(e.entrada=t(o.entrada)),o.saida&&(e.saida=t(o.saida)),e})}function ot(a){return a.tipo==="LineString"?a.curva&&a.curva.length>=2&&!(a.partes&&a.partes.length>1)?a.curva:null:a.tipo==="Polygon"&&a.curva&&a.curva.length>=3&&a.aneis.length===1?a.curva:null}const T=55,Tt=17,$t=8;function dt(a,t){return t<Tt&&a>$t}function Vt(a){let t=0,o=0;for(const e of a)t+=e.coordenada[0],o+=e.coordenada[1];return[t/a.length,o/a.length]}function xo(a,t,o){if(!dt(a.length,t))return{clusters:[],isolados:a};const e=new Map;for(const s of a){const{x:r,y:c}=o(s.coordenada),l=`${t}:${Math.floor(r/T)}:${Math.floor(c/T)}`,d=e.get(l);d?d.push(s):e.set(l,[s])}const i=[],n=[];for(const[s,r]of e)r.length===1?n.push(r[0]):i.push({chave:s,coordenada:Vt(r),membros:r});return{clusters:i,isolados:n}}class Bt{constructor(t,o){M(this,"celulas",new Map);M(this,"celulaDe",new Map);M(this,"multiplas",new Set);this.zoom=t,this.projetar=o}get total(){return this.celulaDe.size}chaveDoPonto(t){return this.celulaDe.get(t)}celula(t){return this.celulas.get(t)}*celulasAgrupadas(){for(const t of this.multiplas){const o=this.celulas.get(t);o&&(yield[t,o])}}emCluster(t){var e;const o=this.celulaDe.get(t);return o!==void 0&&(((e=this.celulas.get(o))==null?void 0:e.membros.size)??0)>=2}inserir(t){this.remover(t.id);const{x:o,y:e}=this.projetar(t.coordenada),i=`${this.zoom}:${Math.floor(o/T)}:${Math.floor(e/T)}`;let n=this.celulas.get(i);return n||(n={membros:new Map,somaLat:0,somaLon:0},this.celulas.set(i,n)),n.membros.set(t.id,t),n.somaLat+=t.coordenada[0],n.somaLon+=t.coordenada[1],n.membros.size>=2&&this.multiplas.add(i),this.celulaDe.set(t.id,i),i}remover(t){const o=this.celulaDe.get(t);if(o===void 0)return;this.celulaDe.delete(t);const e=this.celulas.get(o),i=e==null?void 0:e.membros.get(t);return e&&i&&(e.membros.delete(t),e.somaLat-=i.coordenada[0],e.somaLon-=i.coordenada[1],e.membros.size<2&&this.multiplas.delete(o),e.membros.size===0&&this.celulas.delete(o)),o}}const Ut=3,lt=.75,Pt=85.0511287798,Po=256;function X(a,t,o){const e=Po*2**o,i=Math.max(-Pt,Math.min(Pt,a)),n=Math.sin(i*Math.PI/180);return{x:(t+180)/360*e,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*e}}const Lo=a=>Number.isFinite(a.minLat)&&Number.isFinite(a.maxLat)&&Number.isFinite(a.minLon)&&Number.isFinite(a.maxLon)&&a.minLat<=a.maxLat&&a.minLon<=a.maxLon;function ut(a,t){if(!Number.isFinite(t)||t<0||!Lo(a))return NaN;const o=X(a.minLat,a.minLon,t),e=X(a.maxLat,a.maxLon,t);return Math.hypot(e.x-o.x,e.y-o.y)}function kt(a,t,o=Ut){if(!a)return!1;const e=ut(a,t);return Number.isFinite(e)&&e<o}function qt(a){return Number.isFinite(a)&&a<1.5?1:2}function Gt(a){const t=new Map;for(const o of a){const e=t.get(o.cor);e?e.push(o):t.set(o.cor,[o])}return t}const Do="#38bdf8";function Ao(a,t,o,e,i,n,s){let r=0;const c=Gt(t);for(const[l,d]of c){let h=!1;for(const u of d){const v=X(u.lat,u.lon,o),x=v.x-e,f=v.y-i;x>=-2&&f>=-2&&x<=n+2&&f<=s+2&&(h||(a.fillStyle=l||Do,a.globalAlpha=lt,h=!0),a.fillRect(Math.round(x-u.lado/2),Math.round(f-u.lado/2),u.lado,u.lado),r++)}}return r}const $="#38bdf8",Xt="#38bdf8",Co=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\([0-9.,%\s\/-]+\)|[a-z]{3,20})$/i;function z(a,t){return typeof a=="string"&&Co.test(a.trim())?a.trim():t}const _=a=>typeof a=="number"&&Number.isFinite(a);function et(a,t,o=!1){const e=a.estilo??{},i=z(e.corTraco??t.corPrimaria,$),n=a.geometria.tipo,s=n==="Polygon"||n==="Circle",r=n==="Point",c=r&&z(e.corContorno,"")||i,l=r&&_(e.espessuraContorno)&&e.espessuraContorno>=0?e.espessuraContorno:void 0,d=l??(_(e.espessuraTraco)?e.espessuraTraco:void 0)??(_(t.espessuraLinha)?t.espessuraLinha:2),h=_(e.opacidadePreenchimento)?e.opacidadePreenchimento:s?.2:.85;return{cor:o?Xt:c,traco:!(l===0&&!o),peso:o?d+2:d,dash:e.dashArray??(S(a)==="previa"?"6 4":t.dashArray),preencher:s||r,corPreenchimento:z(e.corPreenchimento,i),opacidadePreenchimento:o?Math.min(1,h+.18):h}}function Zt(a,t){var e;const o=((e=a.estilo)==null?void 0:e.tamanhoIcone)??t.tamanhoMarcador??8;return(_(o)&&o>0?o:8)/2}class Ht{constructor(){M(this,"porChave",new Map)}interno(t){const o=`${t.cor}|${t.traco?1:0}|${t.peso}|${t.dash??""}|${t.preencher?1:0}|${t.corPreenchimento}|${t.opacidadePreenchimento}`,e=this.porChave.get(o);return e||(this.porChave.set(o,t),t)}limpar(){this.porChave.clear()}}const Io=.3,Lt=a=>!!a&&typeof a.id=="string"&&!!a.geometria&&typeof a.geometria.tipo=="string";class Jt{constructor(){M(this,"loja",new Map);M(this,"indice",new bt);M(this,"revisao",0);M(this,"revisaoBase",0);M(this,"listaSincronizada",null);M(this,"oficiais",new Set);M(this,"contOficiais",new Map);M(this,"contPrevias",new Map);M(this,"nPrevias",0);M(this,"selecionadas",new Set);M(this,"regra",null);M(this,"revisaoDe",new Map);M(this,"contador",0)}revisaoDaFeicao(t){return this.revisaoDe.get(t)??0}desenhavel(t){return t.oculta?!1:!this.regra||this.regra(t,this.oficiais)}visivelPorVersao(t){return!this.regra||this.regra(t,this.oficiais)}sincronizar(t){const o=t.filter(s=>Lt(s)&&!s.excluida),e=new Set,i=new Set;for(const s of o)i.add(s.id),this.loja.get(s.id)!==s&&e.add(s.id);const n=[...this.loja.keys()].filter(s=>!i.has(s));if(e.size>0||n.length>0){if(this.revisao++,this.revisaoBase++,this.loja.size===0||e.size+n.length>o.length*Io)this.indice.construir(o);else{for(const s of o)e.has(s.id)&&this.indice.atualizar(s);for(const s of n)this.indice.remover(s)}this.loja.clear();for(const s of o)this.loja.set(s.id,s);for(const s of n)this.revisaoDe.delete(s);for(const s of e)this.revisaoDe.set(s,++this.contador);this.recontarOficiais()}this.listaSincronizada=t;for(const s of[...this.selecionadas])i.has(s)||this.selecionadas.delete(s);return{mudadas:[...e],removidas:n,oficiaisMudou:!1}}recontarOficiais(){this.contOficiais=new Map,this.contPrevias=new Map,this.nPrevias=0;for(const t of this.loja.values()){if(S(t)!=="oficial"){this.nPrevias++;const e=y(t);this.contPrevias.set(e,(this.contPrevias.get(e)??0)+1);continue}const o=y(t);this.contOficiais.set(o,(this.contOficiais.get(o)??0)+1)}this.oficiais=new Set(this.contOficiais.keys())}aplicarDelta(t,o){if(!o||o.base!==this.listaSincronizada)return null;const e=new Map,i=(d,h)=>{if(!d||d.excluida||S(d)!=="oficial")return;const u=y(d);e.has(u)||e.set(u,this.oficiais.has(u));const v=(this.contOficiais.get(u)??0)+h;v<=0?(this.contOficiais.delete(u),this.oficiais.delete(u)):(this.contOficiais.set(u,v),this.oficiais.add(u))},n=(d,h)=>{const u=y(d),v=(this.contPrevias.get(u)??0)+h;v<=0?this.contPrevias.delete(u):this.contPrevias.set(u,v)},s=[],r=[],c=d=>{const h=this.loja.get(d);h&&(S(h)==="previa"&&(this.nPrevias--,n(h,-1)),i(h,-1),this.loja.delete(d),this.indice.remover(d),this.selecionadas.delete(d),this.revisaoDe.delete(d),r.push(d))};for(const d of o.removidas??[])c(d);for(const d of o.mudadas??[]){if(!Lt(d))continue;if(d.excluida){c(d.id);continue}const h=this.loja.get(d.id);S(d)==="previa"&&(this.nPrevias++,n(d,1)),h&&(S(h)==="previa"&&(this.nPrevias--,n(h,-1)),i(h,-1)),this.loja.set(d.id,d),this.indice.atualizar(d),i(d,1),this.revisaoDe.set(d.id,++this.contador),s.push(d.id)}let l=!1;if(this.nPrevias>0)for(const[d,h]of e)h!==this.oficiais.has(d)&&(l=!0);return this.listaSincronizada=t,this.revisao++,l&&this.revisaoBase++,{mudadas:s,removidas:r,oficiaisMudou:l}}}const So=256,N=85.0511287798,yo=4007501668557849e-8;function ht(a,t,o,e,i){const n=o>N?N:o<-N?-N:o,s=Math.sin(n*Math.PI/180);a[t]=(e+180)/360*i,a[t+1]=(.5-Math.log((1+s)/(1-s))/(4*Math.PI))*i}const V=a=>So*2**a;function Oo(a,t,o){const e=V(o);return[Math.atan(Math.sinh(Math.PI*(1-2*t/e)))*180/Math.PI,a/e*360-180]}function at(a,t){const o=V(t),e=new Float64Array(a.length*2);for(let i=0;i<a.length;i++){const n=a[i];ht(e,i*2,n[0],n[1],o)}return e}function b(a,t,o){const e=new Float64Array(2);return ht(e,0,a,t,V(o)),e}function Yt(a,t){const o=Math.max(-N,Math.min(N,a));return yo*Math.cos(o*Math.PI/180)/V(t)}function Qt(a,t,o){const e=Yt(a,o),i=t/e;return Number.isFinite(i)&&i>=0?i:0}function Eo(a){let t=1/0,o=1/0,e=-1/0,i=-1/0;for(const n of a)for(let s=0;s+1<n.length;s+=2){const r=n[s],c=n[s+1];Number.isFinite(r)&&Number.isFinite(c)&&(r<t&&(t=r),r>e&&(e=r),c<o&&(o=c),c>i&&(i=c))}return t<=e&&o<=i?{minX:t,minY:o,maxX:e,maxY:i}:null}function bo(a,t,o,e,i,n){const s=i-o,r=n-e,c=s*s+r*r;let l=c===0?0:((a-o)*s+(t-e)*r)/c;return l=l<0?0:l>1?1:l,Math.hypot(a-(o+l*s),t-(e+l*r))}function it(a,t,o){const e=a.length>>1;if(!(t>0)||e<3)return a;let i=a,n=e;o&&(i=new Float64Array((e+1)*2),i.set(a),i[e*2]=a[0],i[e*2+1]=a[1],n=e+1);const s=new Uint8Array(n);s[0]=1,s[n-1]=1;const r=[0,n-1];for(;r.length>0;){const u=r.pop(),v=r.pop();let x=0,f=-1;const m=i[v*2],P=i[v*2+1],w=i[u*2],O=i[u*2+1];for(let C=v+1;C<u;C++){const g=bo(i[C*2],i[C*2+1],m,P,w,O);g>x&&(x=g,f=C)}f!==-1&&x>t&&(s[f]=1,r.push(v,f,f,u))}const c=o?n-1:n;let l=0;for(let u=0;u<c;u++)s[u]&&l++;if(o&&l<3||l===c)return a;const d=new Float64Array(l*2);let h=0;for(let u=0;u<c;u++)s[u]&&(d[h++]=i[u*2],d[h++]=i[u*2+1]);return d}const No=1.2,U=1e-9,Ro=6,k={cor:$,traco:!1,peso:0,dash:void 0,preencher:!1,corPreenchimento:$,opacidadePreenchimento:0},Y=a=>!!a&&Number.isFinite(a.zoom)&&a.zoom>=0&&!!a.caixa&&Number.isFinite(a.caixa.minLat)&&Number.isFinite(a.caixa.maxLat)&&Number.isFinite(a.caixa.minLon)&&Number.isFinite(a.caixa.maxLon);class wo{constructor(){M(this,"camadas",new Map);M(this,"regra",null)}definirCamada(t){if(!t||typeof t.id!="string")return;let o=this.camadas.get(t.id);if(!o){o={def:t,dados:new Jt,zoomCache:-1,geom:new Map,estilos:new Map,lod:new Map,avaliacoesLOD:0,agrupador:null,agrupadorRev:-1,nPontos:0,nPontosRev:-1,previas:new Map,destaques:new Set,revEstilo:0,internador:new Ht,ultima:{total:0,desenhadas:0,marcasLOD:0,clusters:0,marcadoresDom:0,avaliacoesLOD:0}},o.dados.regra=this.regra,this.camadas.set(t.id,o);return}const e=JSON.stringify(o.def.estilo)!==JSON.stringify(t.estilo);o.def=t,e&&(o.revEstilo++,o.estilos.clear(),o.internador.limpar())}removerCamada(t){this.camadas.delete(t)}temCamada(t){return this.camadas.has(t)}definirRegra(t){this.regra=t;for(const o of this.camadas.values())o.dados.regra=t}reavaliarVersoes(t){const o=this.camadas.get(t);o&&(o.dados.revisao++,o.dados.revisaoBase++)}definirFeicoes(t,o){const e=this.camadas.get(t);if(!e)return;const i=Array.isArray(o)?o:[],n=e.dados.sincronizar(i);this.aposMudanca(e,n.mudadas,n.removidas,!0)}aplicarDelta(t,o,e){const i=this.camadas.get(t);if(!i)return;const n=Array.isArray(o)?o:[],s=new Map;if(e){for(const l of e.removidas??[])s.set(l,this.pontoVisivel(i,i.dados.loja.get(l)));for(const l of e.mudadas??[])l&&typeof l.id=="string"&&s.set(l.id,this.pontoVisivel(i,i.dados.loja.get(l.id)))}const r=i.dados.aplicarDelta(n,e);if(!r){this.definirFeicoes(t,n);return}let c=i.nPontos;for(const[l,d]of s){const h=this.pontoVisivel(i,i.dados.loja.get(l));c+=(h?1:0)-(d?1:0)}i.nPontos=Math.max(0,c),this.aposMudanca(i,r.mudadas,r.removidas,r.oficiaisMudou),r.oficiaisMudou||this.manterAgrupador(i,r.mudadas,r.removidas)}pontoVisivel(t,o){var e;return!!o&&((e=o.geometria)==null?void 0:e.tipo)==="Point"&&t.dados.desenhavel(o)}aposMudanca(t,o,e,i){for(const n of o)t.lod.delete(n),t.geom.delete(n),t.estilos.delete(n),t.previas.delete(n);for(const n of e)t.lod.delete(n),t.geom.delete(n),t.estilos.delete(n),t.previas.delete(n),t.destaques.delete(n);i&&(t.agrupador=null)}manterAgrupador(t,o,e){const i=t.agrupador;if(i){for(const n of e)i.remover(n);for(const n of o){const s=t.dados.loja.get(n);s&&s.geometria.tipo==="Point"&&t.dados.desenhavel(s)?i.inserir({id:n,coordenada:s.geometria.coordenada}):i.remover(n)}}}selecionar(t,o){const e=this.camadas.get(t);if(!e)return{entrou:[],saiu:[]};const i=new Set;for(const r of o)e.dados.loja.has(r)&&i.add(r);const n=[],s=[];for(const r of i)e.dados.selecionadas.has(r)||n.push(r);for(const r of e.dados.selecionadas)i.has(r)||s.push(r);e.dados.selecionadas.clear();for(const r of i)e.dados.selecionadas.add(r);return{entrou:n,saiu:s}}selecionadas(t){var o;return((o=this.camadas.get(t))==null?void 0:o.dados.selecionadas)??new Set}previsualizar(t,o){const e=this.camadas.get(t);!e||!o||typeof o.id!="string"||!e.dados.loja.has(o.id)||e.previas.set(o.id,o)}temPrevia(t,o){var e;return((e=this.camadas.get(t))==null?void 0:e.previas.has(o))??!1}destacar(t,o){const e=this.camadas.get(t);e&&(e.destaques=new Set(o))}feicao(t,o){var e;return(e=this.camadas.get(t))==null?void 0:e.dados.loja.get(o)}caixaDe(t,o){var e;return(e=this.camadas.get(t))==null?void 0:e.dados.indice.caixaDe(o)}consultarCaixa(t,o){const e=this.camadas.get(t);if(!e)return[];const i=[];for(const n of e.dados.indice.consultar(o)){const s=e.dados.loja.get(n);s&&!s.oculta&&i.push(s)}return i}feicaoVisivel(t,o){const e=this.camadas.get(t);return!e||e.dados.visivelPorVersao(o)}estatisticas(t){const o=this.camadas.get(t);return o?{...o.ultima,total:o.dados.loja.size,avaliacoesLOD:o.avaliacoesLOD}:null}ehPar(t,o){const e=this.camadas.get(t);return!!e&&this.emPar(e,o)}listaDesenho(t,o){const e=this.origemDe(t),i={vista:t,origem:e,camadas:[]};if(!Y(t))return i;const n=o!=null&&o.camadas?new Set(o.camadas):null,s=[...this.camadas.values()].filter(r=>r.def.visivel&&(!n||n.has(r.def.id)));s.sort((r,c)=>r.def.zIndex-c.def.zIndex);for(const r of s)try{i.camadas.push(this.listarCamada(r,t,(o==null?void 0:o.parte)??"tudo"))}catch{i.camadas.push(this.camadaVazia(r))}return i}origemDe(t){if(t!=null&&t.origemPx&&Number.isFinite(t.origemPx.x)&&Number.isFinite(t.origemPx.y))return t.origemPx;if(!Y(t))return{x:0,y:0};const o=b(t.caixa.maxLat,t.caixa.minLon,t.zoom);return{x:o[0],y:o[1]}}camadaVazia(t){return{camadaId:t.def.id,zIndex:t.def.zIndex,opacidade:t.def.opacidade,itens:[],estatisticas:{total:t.dados.loja.size,desenhadas:0,marcasLOD:0,clusters:0,marcadoresDom:0,avaliacoesLOD:t.avaliacoesLOD}}}prepararZoom(t,o){o!==t.zoomCache&&(t.geom.clear(),t.lod.clear(),t.zoomCache=o)}estiloDe(t,o){const e=t.dados.revisaoDaFeicao(o.id),i=t.estilos.get(o.id);if(i&&i.rev===e&&i.revEstilo===t.revEstilo)return i.estilo;const n=t.internador.interno(et(o,t.def.estilo,!1));return t.estilos.set(o.id,{rev:e,revEstilo:t.revEstilo,estilo:n}),n}emPar(t,o){if(t.dados.contPrevias.size===0)return!1;const e=y(o);return t.dados.contPrevias.has(e)&&t.dados.oficiais.has(e)}comoMarca(t,o,e){var r;const i=o.geometria.tipo;if(i==="Point"||i==="Text"||(r=o.estilo)!=null&&r.mostrarRotulo||this.emPar(t,o))return!1;const n=t.lod.get(o.id);if(n!==void 0)return n;t.avaliacoesLOD++;const s=kt(t.dados.indice.caixaDe(o.id),e);return t.lod.set(o.id,s),s}geometriaProjetada(t,o,e){const i=t.dados.revisaoDaFeicao(o.id),n=t.geom.get(o.id);if(n&&n.rev===i)return n;const s=this.construirGeometria(t,o,e,i);return s&&t.geom.set(o.id,s),s}construirGeometria(t,o,e,i){const n=o.geometria,s=e<st?No:0;if(n.tipo==="Polygon"){const r=[];for(const c of n.aneis??[]){if(!Array.isArray(c)||c.length<3)continue;let l=at(c,e);s>0&&c.length>=G&&(l=it(l,s,!0)),r.push(l)}return r.length>0?{rev:i,partes:r,raioPx:0,marca:!1}:null}if(n.tipo==="LineString"){const r=[];for(const c of R(n)){if(!Array.isArray(c)||c.length<2)continue;let l=at(c,e);s>0&&c.length>=G&&(l=it(l,s,!1)),r.push(l)}return r.length>0?{rev:i,partes:r,raioPx:0,marca:!1}:null}if(n.tipo==="Circle"){const r=n.centro;if(!Array.isArray(r))return null;const c=b(r[0],r[1],e);return{rev:i,partes:[c],raioPx:Qt(r[0],n.raioMetros,e),marca:!1}}return n.tipo==="Point"||n.tipo==="Text"?{rev:i,partes:[b(n.coordenada[0],n.coordenada[1],e)],raioPx:n.tipo==="Point"?Zt(o,t.def.estilo):0,marca:!1}:null}marcaDe(t,o,e){const i=t.dados.revisaoDaFeicao(o.id),n=t.geom.get(o.id);if(n&&n.rev===i)return n;const s=t.dados.indice.caixaDe(o.id);if(!s)return null;const r=b((s.minLat+s.maxLat)/2,(s.minLon+s.maxLon)/2,e);if(!(Number.isFinite(r[0])&&Number.isFinite(r[1])))return null;const c={rev:i,partes:[r],raioPx:qt(ut(s,e)),marca:!0};return t.geom.set(o.id,c),c}itemMarca(t,o,e){const i=this.marcaDe(t,o,e);if(!i)return null;const n=i.item;if(n&&n.feicao===o&&i.revEstilo===t.revEstilo&&n.selecionada===t.dados.selecionadas.has(o.id)&&n.destaque===!0===t.destaques.has(o.id))return n;const s=this.itemBase(t,o,"marca",i.partes,i.raioPx,this.estiloMarca(t,o));return i.item=s,i.revEstilo=t.revEstilo,s}estiloMarca(t,o){const e=o.estilo??{},i=z(e.corPreenchimento??e.corTraco??t.def.estilo.corPrimaria,$);return t.internador.interno({cor:i,traco:!1,peso:0,dash:void 0,preencher:!0,corPreenchimento:i,opacidadePreenchimento:lt})}agrupadorAtivo(t,o){const{dados:e}=t;if(t.nPontosRev!==e.revisaoBase){let s=0;for(const r of e.loja.values())r.geometria.tipo==="Point"&&e.desenhavel(r)&&s++;t.nPontos=s,t.nPontosRev=e.revisaoBase}if(!dt(t.nPontos,o))return t.agrupador=null,null;const i=t.agrupador;if(i&&i.zoom===o&&t.agrupadorRev===e.revisaoBase)return i;const n=new Bt(o,s=>{const r=b(s[0],s[1],o);return{x:r[0],y:r[1]}});for(const s of e.loja.values())s.geometria.tipo==="Point"&&e.desenhavel(s)&&n.inserir({id:s.id,coordenada:s.geometria.coordenada});return t.agrupador=n,t.agrupadorRev=e.revisaoBase,n}itemBase(t,o,e,i,n,s){return{camadaId:t.def.id,id:o.id,forma:e,geometriaEmPx:i,raioPx:n,estilo:s,selecionada:t.dados.selecionadas.has(o.id),feicao:o,...t.destaques.has(o.id)?{destaque:!0}:{}}}caixaComFolga(t){const o=t.caixa,i=360/(256*2**t.zoom)*Ro,n=i*Math.cos((o.minLat+o.maxLat)/2*Math.PI/180);return{minLat:o.minLat-n,maxLat:o.maxLat+n,minLon:o.minLon-i,maxLon:o.maxLon+i}}listarCamada(t,o,e){var C;const{dados:i,def:n}=t,s=e!=="dom",r=e!=="canvas",c=o.zoom;this.prepararZoom(t,c);const l=i.indice.consultar(this.caixaComFolga(o)),d=this.agrupadorAtivo(t,c),h=[],u=[],v=[],x=[],f=[],m={total:i.loja.size,desenhadas:0,marcasLOD:0,clusters:0,marcadoresDom:0,avaliacoesLOD:0},P=g=>{var D;if(!r||!((D=g.estilo)!=null&&D.mostrarRotulo)||g.geometria.tipo==="Text")return;const p=Ot(g,g.estilo.campoRotulo),L=i.indice.caixaDe(g.id);!p||!L||(f.push({camadaId:n.id,id:`rotulo:${g.id}`,forma:"rotulo",geometriaEmPx:[],raioPx:0,estilo:k,selecionada:!1,feicao:g,texto:p,coordenada:[(L.minLat+L.maxLat)/2,(L.minLon+L.maxLon)/2]}),m.marcadoresDom++)},w=g=>{var D;const p=g.geometria;if(p.tipo!=="Point")return;if((D=g.estilo)!=null&&D.icone){if(!r)return;f.push({...this.itemBase(t,g,"icone",[],0,k),coordenada:p.coordenada}),m.marcadoresDom++;return}if(!s)return;const L=this.geometriaProjetada(t,g,c);L&&(x.push(this.itemBase(t,g,"ponto",L.partes,L.raioPx,this.estiloDe(t,g))),m.desenhadas++)};for(const g of l){const p=i.loja.get(g);if(!p||!i.desenhavel(p)||t.previas.has(g))continue;const L=p.geometria;if(L.tipo==="Point"){if(d&&d.emCluster(g)&&(!((C=p.estilo)!=null&&C.icone)||!r||!this.soltoDoCluster(t,d,g)))continue;w(p),P(p);continue}if(L.tipo==="Text"){if(!r)continue;f.push({...this.itemBase(t,p,"texto",[],0,k),coordenada:L.coordenada}),m.marcadoresDom++;continue}if(ot(L)){if(!r)continue;f.push(this.itemBase(t,p,"curva",[],0,this.estiloDe(t,p))),m.marcadoresDom++,P(p);continue}if(!s){P(p);continue}const D=t.geom.get(g),I=D==null?void 0:D.item;if(I&&I.feicao===p&&D.revEstilo===t.revEstilo&&!this.emPar(t,p)&&I.selecionada===i.selecionadas.has(g)&&I.destaque===!0===t.destaques.has(g)){h.push(I),m.marcasLOD++;continue}if(this.comoMarca(t,p,c)){const ft=this.itemMarca(t,p,c);ft&&(h.push(ft),m.marcasLOD++);continue}const E=this.geometriaProjetada(t,p,c);if(!E)continue;const Z=this.estiloDe(t,p);L.tipo==="LineString"?v.push(this.itemBase(t,p,"linha",E.partes,0,Z)):L.tipo==="Circle"?u.push(this.itemBase(t,p,"circulo",E.partes,E.raioPx,Z)):u.push(this.itemBase(t,p,"poligono",E.partes,0,Z)),m.desenhadas++,P(p)}d&&r&&this.listarClusters(t,o,d,f,m,r),m.avaliacoesLOD=t.avaliacoesLOD,e==="tudo"&&(t.ultima=m);const O=h;for(const g of[u,v,x,f])for(const p of g)O.push(p);return{camadaId:n.id,zIndex:n.zIndex,opacidade:n.opacidade,itens:O,estatisticas:m}}listarClusters(t,o,e,i,n,s){const{dados:r,def:c}=t;for(const[l,d]of e.celulasAgrupadas()){const h=d.membros.size;let u=0,v=d.somaLat,x=d.somaLon;for(const P of d.membros.values())r.selecionadas.has(P.id)&&(u++,v-=P.coordenada[0],x-=P.coordenada[1]);const f=h-u,m=[d.somaLat/h,d.somaLon/h];m[0]>=o.caixa.minLat-U&&m[0]<=o.caixa.maxLat+U&&m[1]>=o.caixa.minLon-U&&m[1]<=o.caixa.maxLon+U&&(f<2||!s||(i.push({camadaId:c.id,id:l,forma:"cluster",geometriaEmPx:[],raioPx:0,estilo:k,selecionada:!1,coordenada:[v/f,x/f],total:h,restantes:f}),n.clusters++,n.marcadoresDom++))}}pontoAgrupado(t,o){const e=this.camadas.get(t);return!!(e!=null&&e.agrupador)&&e.agrupador.emCluster(o)&&!e.dados.selecionadas.has(o)}soltoDoCluster(t,o,e){if(t.dados.selecionadas.has(e))return!0;const i=o.chaveDoPonto(e),n=i===void 0?void 0:o.celula(i);if(!n)return!1;let s=0;for(const r of n.membros.keys())t.dados.selecionadas.has(r)||s++;return s===1}membrosDoCluster(t,o){var n;const e=this.camadas.get(t),i=(n=e==null?void 0:e.agrupador)==null?void 0:n.celula(o);return i?[...i.membros.values()].map(s=>({id:s.id,coordenada:s.coordenada})):[]}listaSobreposicao(t,o){var r;const e=this.camadas.get(t);if(!e||!Y(o))return null;this.prepararZoom(e,o.zoom);const i=[],n=new Set([...e.dados.selecionadas,...e.previas.keys(),...e.destaques]),s=e.agrupador;if(s&&e.dados.selecionadas.size>0){const c=new Set;for(const l of e.dados.selecionadas){const d=s.chaveDoPonto(l);d!==void 0&&c.add(d)}for(const l of c){const d=s.celula(l);if(!d||d.membros.size<2)continue;const h=[...d.membros.keys()].filter(u=>!e.dados.selecionadas.has(u));h.length===1&&n.add(h[0])}}for(const c of n){const l=e.dados.loja.get(c);if(!l||!e.dados.desenhavel(l))continue;const d=e.previas.get(c),h=d??l,u=h.geometria;if(u.tipo==="Text"||ot(u)||u.tipo==="Point"&&((r=h.estilo)!=null&&r.icone))continue;const v=d?null:e.dados.indice.caixaDe(c);if(v&&!j(v,o.caixa))continue;const x=e.dados.selecionadas.has(c)||!!d;if(!x&&!e.destaques.has(c)&&!(u.tipo==="Point"&&(s!=null&&s.emCluster(c))))continue;const f=d?this.construirGeometria(e,h,o.zoom,-1):this.geometriaProjetada(e,h,o.zoom);if(!f)continue;const m=e.internador.interno(et(h,e.def.estilo,x)),P=u.tipo==="LineString"?"linha":u.tipo==="Circle"?"circulo":u.tipo==="Point"?"ponto":"poligono";i.push({camadaId:t,id:c,forma:P,geometriaEmPx:f.partes,raioPx:f.raioPx,estilo:m,selecionada:x,feicao:h,...e.destaques.has(c)?{destaque:!0}:{}})}return{camadaId:t,zIndex:e.def.zIndex,opacidade:e.def.opacidade,itens:i,estatisticas:{total:e.dados.loja.size,desenhadas:i.length,marcasLOD:0,clusters:0,marcadoresDom:0,avaliacoesLOD:e.avaliacoesLOD}}}selecaoAfetaAgrupamento(t,o){var i;const e=this.camadas.get(t);if(!e||!e.agrupador)return!1;for(const n of o)if(((i=e.dados.loja.get(n))==null?void 0:i.geometria.tipo)==="Point")return!0;return!1}}exports.AgrupadorCluster=Bt;exports.CELULA_CLUSTER_PX=T;exports.COR_PADRAO=$;exports.COR_SELECAO=Xt;exports.DadosCamada=Jt;exports.IndiceEspacial=bt;exports.InternadorEstilos=Ht;exports.LIMITE_MARCA_PX=Ut;exports.MAX_PONTOS_SEM_CLUSTER=$t;exports.MIN_VERTICES_SIMPLIFICAR=G;exports.MotorFormas=wo;exports.OPACIDADE_MARCA=lt;exports.RegraVersoes=uo;exports.ZOOM_DESMEMBRAR=Tt;exports.ZOOM_SEM_SIMPLIFICACAO=st;exports.agruparMarcasPorCor=Gt;exports.agruparPontos=xo;exports.amostrarCurva=po;exports.areaDaGeometria=St;exports.areaMetros2=At;exports.caixaDaFeicao=W;exports.caixaPx=Eo;exports.caixasSeTocam=j;exports.caminhoSvg=go;exports.centroDe=Vt;exports.comprimentoMetros=K;exports.controlesDoSegmento=ct;exports.corSegura=z;exports.criarLinha=Dt;exports.deveAgrupar=dt;exports.diagonalPx=ut;exports.distanciaMetros=Q;exports.ehMarca=kt;exports.ehMultilinha=to;exports.entidadeDe=y;exports.escalaDoZoom=V;exports.escalaLatitude=tt;exports.espelhoDaAlca=mo;exports.estiloVetorDe=et;exports.extensaoDaGeometria=yt;exports.formatarArea=Ct;exports.formatarExtensao=It;exports.ladoMarca=qt;exports.latLonDoMundo=Oo;exports.limitesDaGeometria=Et;exports.metrosPorGrau=oo;exports.metrosPorPixel=Yt;exports.moverNos=Mo;exports.normalizarNos=vo;exports.nosDaGeometria=ot;exports.partesDaLinha=R;exports.passosDaCurva=zt;exports.pintarMarcas=Ao;exports.pontoDaCubica=jt;exports.projetarCentro=b;exports.projetarEm=ht;exports.projetarMercator=X;exports.projetarVertices=at;exports.raioCirculoPx=Qt;exports.raioPontoPx=Zt;exports.simplificarAnel=Rt;exports.simplificarGeometria=co;exports.simplificarLinha=rt;exports.simplificarPx=it;exports.statusDe=S;exports.temAlcas=_t;exports.textoRotulo=Ot;exports.toleranciaPorZoom=Nt;exports.vertices=wt;
|