@thibezer/ui-components-kit 2.10.1 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +2 -2
- package/dist/camadas.cjs +2 -2
- package/dist/camadas.js +6 -9
- package/dist/canvas.cjs +50 -50
- package/dist/canvas.js +2219 -2083
- package/dist/components/ui-canvas-cad/cad-linha-padrao.d.ts +27 -0
- package/dist/components/ui-canvas-cad/index.d.ts +2 -0
- package/dist/components/ui-canvas-cad/tipos.d.ts +25 -4
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +10 -1
- package/dist/components/ui-cores/cores-utils.d.ts +1 -1
- package/dist/components/ui-cores/tipos.d.ts +2 -2
- package/dist/components/ui-cores/ui-controle-cores.d.ts +1 -1
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +8 -4
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +2 -2
- package/dist/custom-elements.json +17522 -17235
- package/dist/form-validacao-BIOXxt-1.js +140 -0
- package/dist/form-validacao-ytRYSF3E.cjs +1 -0
- package/dist/gerencigeo-canvas/feature_types.d.ts +17 -0
- package/dist/gerencigeo-canvas/motor/estilo.d.ts +8 -0
- package/dist/gerencigeo-canvas/motor/index.d.ts +1 -0
- package/dist/gerencigeo-canvas/motor/tipos-linha.d.ts +22 -0
- package/dist/gerencigeo-canvas/renderers/renderizador_formas.d.ts +2 -0
- package/dist/gerencigeo-canvas/types.d.ts +11 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/motor-BCWqlv3e.cjs +1 -0
- package/dist/motor-CXjQjVba.js +1386 -0
- package/dist/motor.cjs +1 -1
- package/dist/motor.js +45 -38
- package/dist/register.cjs +1 -1
- package/dist/register.js +2 -2
- package/dist/svg-seguro-BsbNQqpd.js +50 -0
- package/dist/svg-seguro-C76iLlAZ.cjs +1 -0
- package/dist/tipos-elementos.d.ts +9 -0
- package/dist/tipos-vue.d.ts +9 -0
- package/dist/ui-badge-BxT-sDmV.cjs +28 -0
- package/dist/ui-badge-C0eKBI8E.js +183 -0
- package/dist/ui-botao-BOOnP8ds.cjs +12 -0
- package/dist/ui-botao-DfqSivHl.js +165 -0
- package/dist/ui-botao-OGJV6Vfk.js +165 -0
- package/dist/ui-botao-psS1juof.cjs +12 -0
- package/dist/ui-campo-texto-Cnn2UAkS.cjs +16 -0
- package/dist/ui-campo-texto-Uu2dJE_0.js +379 -0
- package/dist/ui-card-B86lJXTP.cjs +20 -0
- package/dist/ui-card-C_o5_0cB.js +111 -0
- package/dist/{ui-controle-cores-DMtTUtLk.js → ui-controle-cores-B4R6ct4I.js} +9 -10
- package/dist/ui-controle-cores-BS0WYPdi.js +572 -0
- package/dist/{ui-controle-cores-CohlwXJK.cjs → ui-controle-cores-C8um-If9.cjs} +2 -2
- package/dist/ui-controle-cores-CHMKGemo.cjs +141 -0
- package/dist/ui-controle-cores-Dog7ERYv.js +697 -0
- package/dist/ui-controle-cores-Er6ZcQ7U.cjs +111 -0
- package/dist/ui-modal-CvGFGh1h.cjs +18 -0
- package/dist/ui-modal-DBOtSTbR.js +238 -0
- package/dist/ui-paleta-ferramentas-CEZYcN4J.js +624 -0
- package/dist/ui-paleta-ferramentas-CU4icLl0.js +1171 -0
- package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +21 -0
- package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +21 -0
- package/dist/ui-paleta-ferramentas-DNN5i6nL.js +860 -0
- package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +18 -0
- package/dist/ui-paleta-ferramentas-DbwdWVtT.js +1173 -0
- package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +21 -0
- package/dist/ui-segmented-D6b6zxVs.cjs +19 -0
- package/dist/ui-segmented-DyF5YLsV.js +418 -0
- package/dist/ui-segmented-rn9RxRGM.cjs +19 -0
- package/dist/ui-segmented-wUraId2e.js +412 -0
- package/dist/ui-seletor-cor-C4U2eqxY.cjs +82 -0
- package/dist/ui-seletor-cor-D2_C6Aor.js +391 -0
- package/dist/ui-skeleton-DI4_9WOX.js +428 -0
- package/dist/ui-skeleton-SPYqku8P.cjs +52 -0
- package/dist/ui-skeleton-W9uwIceA.js +585 -0
- package/dist/ui-skeleton-elhKIh2B.cjs +33 -0
- package/dist/ui-switch-BcOqOkiV.js +856 -0
- package/dist/ui-switch-D7iPKDj-.cjs +53 -0
- package/dist/ui-tabela-propriedades-BBr5sqki.cjs +145 -0
- package/dist/ui-tabela-propriedades-BecPqC-e.cjs +141 -0
- package/dist/ui-tabela-propriedades-BokvDD3b.js +2648 -0
- package/dist/ui-tabela-propriedades-Boy7I5yW.js +2412 -0
- package/dist/ui-tabela-propriedades-C-PeuW1i.cjs +141 -0
- package/dist/ui-tabela-propriedades-Df9ajC6M.js +2648 -0
- package/dist/ui-toast-Bp_NlM5G.js +156 -0
- package/dist/ui-toast-DGTZKne5.cjs +20 -0
- package/dist/zero-js-triggers-C_KrvFOQ.js +244 -0
- package/dist/zero-js-triggers-C_gtaojZ.cjs +1 -0
- package/package.json +187 -186
- package/dist/motor-BB6tB6U-.cjs +0 -1
- package/dist/motor-BKT2eStP.js +0 -1301
- package/dist/ui-seletor-cor-D9iI7yew.js +0 -413
- package/dist/ui-seletor-cor-Ft06TEUH.cjs +0 -110
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
let f = 0;
|
|
2
|
+
function c(e = "ui") {
|
|
3
|
+
return f += 1, `${e}-${f.toString(36)}-${Math.random().toString(36).slice(2, 7)}`;
|
|
4
|
+
}
|
|
5
|
+
function d(e, t) {
|
|
6
|
+
if (e === t) return "";
|
|
7
|
+
if (e.nodeType === 3) return e.textContent ?? "";
|
|
8
|
+
let n = "";
|
|
9
|
+
return e.childNodes.forEach((l) => {
|
|
10
|
+
n += d(l, t);
|
|
11
|
+
}), n;
|
|
12
|
+
}
|
|
13
|
+
function v(e, t) {
|
|
14
|
+
var m, a, o;
|
|
15
|
+
const n = (m = e.getAttribute("aria-label")) == null ? void 0 : m.trim();
|
|
16
|
+
if (n) return n;
|
|
17
|
+
const l = /* @__PURE__ */ new Set();
|
|
18
|
+
try {
|
|
19
|
+
(a = t == null ? void 0 : t.labels) == null || a.forEach((i) => l.add(i));
|
|
20
|
+
} catch {
|
|
21
|
+
}
|
|
22
|
+
if (e.id) {
|
|
23
|
+
const i = e.getRootNode();
|
|
24
|
+
(o = i.querySelectorAll) == null || o.call(i, "label[for]").forEach((r) => {
|
|
25
|
+
r.htmlFor === e.id && l.add(r);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const u = e.closest("label");
|
|
29
|
+
return u && l.add(u), Array.from(l).map((i) => d(i, e).replace(/\s+/g, " ").trim()).filter(Boolean).join(" ");
|
|
30
|
+
}
|
|
31
|
+
function g(e, t) {
|
|
32
|
+
return t.composedPath()[0] === e;
|
|
33
|
+
}
|
|
34
|
+
function p(e) {
|
|
35
|
+
if (e.disabled)
|
|
36
|
+
return { valido: !0, flags: {}, mensagem: "" };
|
|
37
|
+
if (e.customError && e.customError.trim() !== "")
|
|
38
|
+
return {
|
|
39
|
+
valido: !1,
|
|
40
|
+
flags: { customError: !0 },
|
|
41
|
+
mensagem: e.customError
|
|
42
|
+
};
|
|
43
|
+
const { val: t, rawVal: n, badInput: l, required: u, tipo: m = "text", mensagemValidacao: a } = e;
|
|
44
|
+
if (l || m === "number" && n && isNaN(Number(n)))
|
|
45
|
+
return {
|
|
46
|
+
valido: !1,
|
|
47
|
+
flags: { badInput: !0 },
|
|
48
|
+
mensagem: a || "Insira um número válido."
|
|
49
|
+
};
|
|
50
|
+
if (u && t.trim() === "")
|
|
51
|
+
return {
|
|
52
|
+
valido: !1,
|
|
53
|
+
flags: { valueMissing: !0 },
|
|
54
|
+
mensagem: a || "Preencha este campo."
|
|
55
|
+
};
|
|
56
|
+
if (t === "")
|
|
57
|
+
return { valido: !0, flags: {}, mensagem: "" };
|
|
58
|
+
if (e.minlength !== null && e.minlength !== void 0 && !isNaN(e.minlength) && t.length < e.minlength)
|
|
59
|
+
return {
|
|
60
|
+
valido: !1,
|
|
61
|
+
flags: { tooShort: !0 },
|
|
62
|
+
mensagem: a || `Use pelo menos ${e.minlength} caracteres (atualmente você está usando ${t.length}).`
|
|
63
|
+
};
|
|
64
|
+
if (e.maxlength !== null && e.maxlength !== void 0 && !isNaN(e.maxlength) && t.length > e.maxlength)
|
|
65
|
+
return {
|
|
66
|
+
valido: !1,
|
|
67
|
+
flags: { tooLong: !0 },
|
|
68
|
+
mensagem: a || `Reduza o texto para no máximo ${e.maxlength} caracteres (atualmente você está usando ${t.length}).`
|
|
69
|
+
};
|
|
70
|
+
if (e.pattern)
|
|
71
|
+
try {
|
|
72
|
+
if (!new RegExp(`^(?:${e.pattern})$`).test(t))
|
|
73
|
+
return {
|
|
74
|
+
valido: !1,
|
|
75
|
+
flags: { patternMismatch: !0 },
|
|
76
|
+
mensagem: a || "O valor não corresponde ao padrão solicitado."
|
|
77
|
+
};
|
|
78
|
+
} catch {
|
|
79
|
+
}
|
|
80
|
+
if (m === "email" && !/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/.test(t))
|
|
81
|
+
return {
|
|
82
|
+
valido: !1,
|
|
83
|
+
flags: { typeMismatch: !0 },
|
|
84
|
+
mensagem: a || "Insira um endereço de e-mail válido."
|
|
85
|
+
};
|
|
86
|
+
if (m === "url")
|
|
87
|
+
try {
|
|
88
|
+
new URL(t);
|
|
89
|
+
} catch {
|
|
90
|
+
return {
|
|
91
|
+
valido: !1,
|
|
92
|
+
flags: { typeMismatch: !0 },
|
|
93
|
+
mensagem: a || "Insira uma URL válida."
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (m === "number") {
|
|
97
|
+
const o = Number(t);
|
|
98
|
+
if (isNaN(o))
|
|
99
|
+
return {
|
|
100
|
+
valido: !1,
|
|
101
|
+
flags: { badInput: !0 },
|
|
102
|
+
mensagem: a || "Insira um número válido."
|
|
103
|
+
};
|
|
104
|
+
if (e.min !== null && e.min !== void 0 && !isNaN(e.min) && o < e.min)
|
|
105
|
+
return {
|
|
106
|
+
valido: !1,
|
|
107
|
+
flags: { rangeUnderflow: !0 },
|
|
108
|
+
mensagem: a || `O valor deve ser maior ou igual a ${e.min}.`
|
|
109
|
+
};
|
|
110
|
+
if (e.max !== null && e.max !== void 0 && !isNaN(e.max) && o > e.max)
|
|
111
|
+
return {
|
|
112
|
+
valido: !1,
|
|
113
|
+
flags: { rangeOverflow: !0 },
|
|
114
|
+
mensagem: a || `O valor deve ser menor ou igual a ${e.max}.`
|
|
115
|
+
};
|
|
116
|
+
if (e.step && e.step !== "any") {
|
|
117
|
+
const i = parseFloat(e.step);
|
|
118
|
+
if (!isNaN(i) && i > 0) {
|
|
119
|
+
const r = e.min !== null && e.min !== void 0 && !isNaN(e.min) ? e.min : 0, s = Math.abs((o - r) % i);
|
|
120
|
+
if (s > 1e-6 && Math.abs(s - i) > 1e-6)
|
|
121
|
+
return {
|
|
122
|
+
valido: !1,
|
|
123
|
+
flags: { stepMismatch: !0 },
|
|
124
|
+
mensagem: a || "Insira um valor válido de acordo com o intervalo."
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return { valido: !0, flags: {}, mensagem: "" };
|
|
130
|
+
}
|
|
131
|
+
function h(e, t, n) {
|
|
132
|
+
!e || typeof e.setValidity != "function" || (t.valido ? e.setValidity({}) : e.setValidity(t.flags, t.mensagem || "Valor inválido.", n));
|
|
133
|
+
}
|
|
134
|
+
export {
|
|
135
|
+
h as a,
|
|
136
|
+
g as c,
|
|
137
|
+
c as g,
|
|
138
|
+
v as o,
|
|
139
|
+
p as v
|
|
140
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";let f=0;function c(e="ui"){return f+=1,`${e}-${f.toString(36)}-${Math.random().toString(36).slice(2,7)}`}function d(e,t){if(e===t)return"";if(e.nodeType===3)return e.textContent??"";let o="";return e.childNodes.forEach(l=>{o+=d(l,t)}),o}function v(e,t){var m,a,n;const o=(m=e.getAttribute("aria-label"))==null?void 0:m.trim();if(o)return o;const l=new Set;try{(a=t==null?void 0:t.labels)==null||a.forEach(i=>l.add(i))}catch{}if(e.id){const i=e.getRootNode();(n=i.querySelectorAll)==null||n.call(i,"label[for]").forEach(u=>{u.htmlFor===e.id&&l.add(u)})}const r=e.closest("label");return r&&l.add(r),Array.from(l).map(i=>d(i,e).replace(/\s+/g," ").trim()).filter(Boolean).join(" ")}function g(e,t){return t.composedPath()[0]===e}function p(e){if(e.disabled)return{valido:!0,flags:{},mensagem:""};if(e.customError&&e.customError.trim()!=="")return{valido:!1,flags:{customError:!0},mensagem:e.customError};const{val:t,rawVal:o,badInput:l,required:r,tipo:m="text",mensagemValidacao:a}=e;if(l||m==="number"&&o&&isNaN(Number(o)))return{valido:!1,flags:{badInput:!0},mensagem:a||"Insira um número válido."};if(r&&t.trim()==="")return{valido:!1,flags:{valueMissing:!0},mensagem:a||"Preencha este campo."};if(t==="")return{valido:!0,flags:{},mensagem:""};if(e.minlength!==null&&e.minlength!==void 0&&!isNaN(e.minlength)&&t.length<e.minlength)return{valido:!1,flags:{tooShort:!0},mensagem:a||`Use pelo menos ${e.minlength} caracteres (atualmente você está usando ${t.length}).`};if(e.maxlength!==null&&e.maxlength!==void 0&&!isNaN(e.maxlength)&&t.length>e.maxlength)return{valido:!1,flags:{tooLong:!0},mensagem:a||`Reduza o texto para no máximo ${e.maxlength} caracteres (atualmente você está usando ${t.length}).`};if(e.pattern)try{if(!new RegExp(`^(?:${e.pattern})$`).test(t))return{valido:!1,flags:{patternMismatch:!0},mensagem:a||"O valor não corresponde ao padrão solicitado."}}catch{}if(m==="email"&&!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/.test(t))return{valido:!1,flags:{typeMismatch:!0},mensagem:a||"Insira um endereço de e-mail válido."};if(m==="url")try{new URL(t)}catch{return{valido:!1,flags:{typeMismatch:!0},mensagem:a||"Insira uma URL válida."}}if(m==="number"){const n=Number(t);if(isNaN(n))return{valido:!1,flags:{badInput:!0},mensagem:a||"Insira um número válido."};if(e.min!==null&&e.min!==void 0&&!isNaN(e.min)&&n<e.min)return{valido:!1,flags:{rangeUnderflow:!0},mensagem:a||`O valor deve ser maior ou igual a ${e.min}.`};if(e.max!==null&&e.max!==void 0&&!isNaN(e.max)&&n>e.max)return{valido:!1,flags:{rangeOverflow:!0},mensagem:a||`O valor deve ser menor ou igual a ${e.max}.`};if(e.step&&e.step!=="any"){const i=parseFloat(e.step);if(!isNaN(i)&&i>0){const u=e.min!==null&&e.min!==void 0&&!isNaN(e.min)?e.min:0,s=Math.abs((n-u)%i);if(s>1e-6&&Math.abs(s-i)>1e-6)return{valido:!1,flags:{stepMismatch:!0},mensagem:a||"Insira um valor válido de acordo com o intervalo."}}}}return{valido:!0,flags:{},mensagem:""}}function h(e,t,o){!e||typeof e.setValidity!="function"||(t.valido?e.setValidity({}):e.setValidity(t.flags,t.mensagem||"Valor inválido.",o))}exports.aplicarValidadeInternals=h;exports.cliqueVeioDeRotuloExterno=g;exports.gerarIdUnico=c;exports.obterRotuloExterno=v;exports.validarRestricoesCampoTexto=p;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { JuncaoTraco, TerminacaoTraco, TipoLinha } from './motor/tipos-linha';
|
|
1
2
|
export type TipoFeicao = 'Point' | 'LineString' | 'Polygon' | 'Circle' | 'Text';
|
|
2
3
|
export type StatusGeometria = 'oficial' | 'previa';
|
|
3
4
|
/** [lat, lon] */
|
|
@@ -56,7 +57,23 @@ export interface EstiloFeicao {
|
|
|
56
57
|
opacidadePreenchimento?: number;
|
|
57
58
|
corTraco?: string;
|
|
58
59
|
espessuraTraco?: number;
|
|
60
|
+
/** Tracejado explícito ("6 4"), no formato do SVG/Leaflet. Vence `tipoLinha`. */
|
|
59
61
|
dashArray?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Tipo de linha estilo CAD (`'tracejada'`, `'traco-ponto'`, `'centro'`...); ver `TIPOS_LINHA`. Os nomes do AutoCAD
|
|
64
|
+
* (`'Dashed'`, `'Hidden'`, `'Center'`...) também são aceitos. Padrão: contínua.
|
|
65
|
+
*/
|
|
66
|
+
tipoLinha?: TipoLinha;
|
|
67
|
+
/** Escala do tipo de linha (o LTSCALE do CAD): multiplica traços e vãos. Padrão 1, limitada a [0,05; 100]. */
|
|
68
|
+
escalaTipoLinha?: number;
|
|
69
|
+
/** Deslocamento do início do tracejado, em px (`dashOffset`). */
|
|
70
|
+
deslocamentoTracejado?: number;
|
|
71
|
+
/** Opacidade do traço, de 0 a 1 (padrão 1); independente de `opacidadePreenchimento`. */
|
|
72
|
+
opacidadeTraco?: number;
|
|
73
|
+
/** Pontas do traço: `'arredondada'` (padrão), `'reta'` ou `'quadrada'`. */
|
|
74
|
+
terminacaoTraco?: TerminacaoTraco;
|
|
75
|
+
/** Cantos do traço: `'arredondada'` (padrão), `'chanfrada'` ou `'angular'`. */
|
|
76
|
+
juncaoTraco?: JuncaoTraco;
|
|
60
77
|
icone?: string;
|
|
61
78
|
tamanhoIcone?: number;
|
|
62
79
|
rotacaoIcone?: number;
|
|
@@ -12,6 +12,14 @@ export interface EstiloVetor {
|
|
|
12
12
|
peso: number;
|
|
13
13
|
/** `dashArray` do Leaflet/SVG ("6 4"), ou `undefined` para linha contínua. */
|
|
14
14
|
dash: string | undefined;
|
|
15
|
+
/** Opacidade do traço, de 0 a 1 (ausente = 1). */
|
|
16
|
+
opacidadeTraco?: number;
|
|
17
|
+
/** Pontas do traço (ausente = `'round'`). */
|
|
18
|
+
terminacao?: CanvasLineCap;
|
|
19
|
+
/** Cantos do traço (ausente = `'round'`). */
|
|
20
|
+
juncao?: CanvasLineJoin;
|
|
21
|
+
/** Deslocamento do tracejado em px (ausente = 0). */
|
|
22
|
+
deslocamentoDash?: number;
|
|
15
23
|
preencher: boolean;
|
|
16
24
|
corPreenchimento: string;
|
|
17
25
|
opacidadePreenchimento: number;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Tipos de linha conhecidos. `'continua'` é a linha cheia. */
|
|
2
|
+
export declare const TIPOS_LINHA: readonly ["continua", "tracejada", "tracejada-curta", "tracejada-longa", "pontilhada", "traco-ponto", "traco-ponto-ponto", "oculta", "centro", "fantasma", "divisa"];
|
|
3
|
+
export type TipoLinha = (typeof TIPOS_LINHA)[number];
|
|
4
|
+
/** Terminação das pontas do traço (`lineCap`). */
|
|
5
|
+
export type TerminacaoTraco = 'arredondada' | 'reta' | 'quadrada';
|
|
6
|
+
/** Junção dos cantos do traço (`lineJoin`). */
|
|
7
|
+
export type JuncaoTraco = 'arredondada' | 'chanfrada' | 'angular';
|
|
8
|
+
export declare function ehTipoLinha(v: unknown): v is TipoLinha;
|
|
9
|
+
/** Tipo de linha a partir do nome em português ou do AutoCAD (`'Dashed'`, `'CENTER'`); desconhecido = `undefined`. */
|
|
10
|
+
export declare function normalizarTipoLinha(v: unknown): TipoLinha | undefined;
|
|
11
|
+
/** `lineCap` do Canvas/SVG a partir do nome em português; desconhecido = `undefined` (quem chama decide o padrão). */
|
|
12
|
+
export declare function terminacaoCanvas(v: unknown): CanvasLineCap | undefined;
|
|
13
|
+
/** `lineJoin` do Canvas/SVG a partir do nome em português; desconhecido = `undefined`. */
|
|
14
|
+
export declare function juncaoCanvas(v: unknown): CanvasLineJoin | undefined;
|
|
15
|
+
/** Escala do tipo de linha saneada: não finita ou ≤ 0 = 1; limitada a [0,05; 100]. */
|
|
16
|
+
export declare function escalaTipoLinhaSegura(v: unknown): number;
|
|
17
|
+
/**
|
|
18
|
+
* `dashArray` (SVG/Leaflet, "12 6") do tipo de linha (nome em português ou do AutoCAD); `'continua'` ou
|
|
19
|
+
* desconhecido = `undefined` (linha cheia).
|
|
20
|
+
* `peso` é a espessura em px; `terminacao` é o `lineCap` que será usado (pontos dependem dele).
|
|
21
|
+
*/
|
|
22
|
+
export declare function dashTipoLinha(tipo: unknown, peso: number, escala?: unknown, terminacao?: CanvasLineCap): string | undefined;
|
|
@@ -22,6 +22,8 @@ export interface ContextoFormas2D {
|
|
|
22
22
|
stroke(): void;
|
|
23
23
|
fillRect(x: number, y: number, w: number, h: number): void;
|
|
24
24
|
setLineDash(segmentos: number[]): void;
|
|
25
|
+
/** Opcional para contextos falsos de teste; o Canvas 2D real sempre tem. */
|
|
26
|
+
lineDashOffset?: number;
|
|
25
27
|
}
|
|
26
28
|
/** Superfície de pintura de uma camada (ou da sobreposição): o contexto e o tamanho do canvas em px CSS. */
|
|
27
29
|
export interface SuperficiePintura {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { JuncaoTraco, TerminacaoTraco, TipoLinha } from './motor/tipos-linha';
|
|
1
2
|
export type ScaleMode = 'screen' | 'world';
|
|
2
3
|
export type CanvasLayerCategory = 'base' | 'wms' | 'levantamento' | 'referencia' | 'anotacoes' | 'custom';
|
|
3
4
|
export type CanvasLayerType = 'tile' | 'wms' | 'vetorial-linhas' | 'vetorial-pontos' | 'vetorial-poligonos' | 'grid' | string;
|
|
@@ -8,6 +9,16 @@ export interface LayerStyleDef {
|
|
|
8
9
|
tamanhoMarcador?: number;
|
|
9
10
|
estiloMarcador?: 'circle' | 'square' | 'cross' | 'circle-dot' | 'triangle' | 'diamond' | string;
|
|
10
11
|
dashArray?: string;
|
|
12
|
+
/** Tipo de linha padrão das feições da camada (estilo CAD); a feição pode trocar o seu. */
|
|
13
|
+
tipoLinha?: TipoLinha;
|
|
14
|
+
/** Escala do tipo de linha padrão da camada (LTSCALE). */
|
|
15
|
+
escalaTipoLinha?: number;
|
|
16
|
+
/** Opacidade padrão do traço das feições da camada, de 0 a 1. */
|
|
17
|
+
opacidadeLinha?: number;
|
|
18
|
+
/** Pontas padrão do traço das feições da camada. */
|
|
19
|
+
terminacaoLinha?: TerminacaoTraco;
|
|
20
|
+
/** Cantos padrão do traço das feições da camada. */
|
|
21
|
+
juncaoLinha?: JuncaoTraco;
|
|
11
22
|
scaleMode?: ScaleMode;
|
|
12
23
|
/** Dimensão métrica no terreno em metros quando scaleMode === 'world' */
|
|
13
24
|
dimensaoMetros?: number;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const I=require("./ui-botao-D24oXySA.cjs"),e=require("./ui-switch-C0i_3QXu.cjs"),i=require("./ui-linha-C306zxWG.cjs"),n=require("./ui-campo-texto-CH8mzX61.cjs"),c=require("./ui-paleta-ferramentas-CsPMTY0G.cjs"),s=require("./ui-badge-DC4y6Dik.cjs"),p=require("./ui-card-0wu4rjEX.cjs"),l=require("./ui-modal-CUNbpbZ1.cjs"),o=require("./ui-skeleton-DiOxTBZK.cjs"),a=require("./ui-tabela-propriedades-B8AwlpqL.cjs"),U=require("./tools.cjs"),t=require("./ui-seletor-cor-Ft06TEUH.cjs"),E=require("./ui-controle-cores-CohlwXJK.cjs"),r=require("./camadas.cjs"),C=require("./seletor-mapa-base.cjs"),g=require("./ui-bus-XqBLlTYQ.cjs"),T=require("./zero-js-triggers-CgM9IIQB.cjs"),A=require("./listener-bag-D5omxZ9h.cjs"),S=require("./leaflet-loader-94z5VsdY.cjs"),d=require("./ssr-safe-CiHD1adl.cjs"),u=require("./acessibilidade-CSzX-DkG.cjs"),P=()=>Promise.resolve().then(()=>require("./mapa.cjs")),O=()=>Promise.resolve().then(()=>require("./canvas.cjs"));if(typeof document<"u"){const m=()=>{document.querySelector("ui-mapa, ui-mapa-marcador, ui-mapa-linha")&&!customElements.get("ui-mapa")&&Promise.resolve().then(()=>require("./mapa.cjs")),document.querySelector("ui-canvas-cad")&&!customElements.get("ui-canvas-cad")&&Promise.resolve().then(()=>require("./canvas.cjs"))};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",m,{once:!0}):m()}typeof document<"u"&&T.initZeroJSTriggers();exports.UIBotao=I.UIBotao;exports.UIBotaoPrimario=I.UIBotaoPrimario;exports.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE=e.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE;exports.ListaFlutuantePosicionamento=e.ListaFlutuantePosicionamento;exports.ListaFlutuanteTeclado=e.ListaFlutuanteTeclado;exports.RadioGrupoRegistry=e.RadioGrupoRegistry;exports.UIAreaTexto=e.UIAreaTexto;exports.UICheckbox=e.UICheckbox;exports.UIListaFlutuante=e.UIListaFlutuante;exports.UIRadio=e.UIRadio;exports.UISelect=e.UISelect;exports.UISwitch=e.UISwitch;exports.UITextarea=e.UITextarea;exports.UIToggle=e.UIToggle;exports.atualizarEstadoSelecaoLista=e.atualizarEstadoSelecaoLista;exports.calcularContador=e.calcularContador;exports.criarTemplateListaFlutuante=e.criarTemplateListaFlutuante;exports.renderizarItensLista=e.renderizarItensLista;exports.ATRIBUTOS_OBSERVADOS_SEGMENTED=i.ATRIBUTOS_OBSERVADOS_SEGMENTED;exports.SegmentedIndicadorController=i.SegmentedIndicadorController;exports.UIAvatar=i.UIAvatar;exports.UILinha=i.UILinha;exports.UISegmented=i.UISegmented;exports.UISegmento=i.UISegmento;exports.UITexto=i.UITexto;exports.criarBotaoOpcao=i.criarBotaoOpcao;exports.criarTemplateSegmented=i.criarTemplateSegmented;exports.tratarTecladoSegmented=i.tratarTecladoSegmented;exports.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO=n.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO;exports.UICampoTexto=n.UICampoTexto;exports.UIInput=n.UIInput;exports.criarTemplateCampoTexto=n.criarTemplateCampoTexto;exports.sincronizarFeedbackErro=n.sincronizarFeedbackErro;exports.sincronizarIconeSenha=n.sincronizarIconeSenha;exports.sincronizarLabelEPlaceholder=n.sincronizarLabelEPlaceholder;exports.UIIcone=c.UIIcone;exports.UIPaletaFerramentas=c.UIPaletaFerramentas;exports.UIRibbon=c.UIRibbon;exports.UIBadge=s.UIBadge;exports.UIChip=s.UIChip;exports.UIKpi=s.UIKpi;exports.UIMetrica=s.UIMetrica;exports.UIStat=s.UIStat;exports.UITag=s.UITag;exports.UICard=p.UICard;exports.UIDialog=l.UIDialog;exports.UIModal=l.UIModal;exports.aplicarInertForaDoModal=l.aplicarInertForaDoModal;exports.removerInertForaDoModal=l.removerInertForaDoModal;exports.ICONES_ALERTA=o.ICONES_ALERTA;exports.UIAlerta=o.UIAlerta;exports.UIDrawer=o.UIDrawer;exports.UIEsqueleto=o.UIEsqueleto;exports.UIGaveta=o.UIGaveta;exports.UIPainelLateral=o.UIPainelLateral;exports.UIPopover=o.UIPopover;exports.UISheet=o.UISheet;exports.UISkeleton=o.UISkeleton;exports.UIToast=o.UIToast;exports.UITooltip=o.UITooltip;exports.atualizarScrollLockDrawer=o.atualizarScrollLockDrawer;exports.gerenciarTabTrap=o.gerenciarTabTrap;exports.isTopMostDrawer=o.isTopMostDrawer;exports.obterElementosFocaveis=o.obterElementosFocaveis;exports.registrarToastNoBus=o.registrarToastNoBus;exports.GerenciadorValoresPropriedades=a.GerenciadorValoresPropriedades;exports.TEXTO_MISTO_PADRAO=a.TEXTO_MISTO_PADRAO;exports.TabelaOrquestradorDados=a.TabelaOrquestradorDados;exports.TabelaRemotaController=a.TabelaRemotaController;exports.TabelaSelecaoController=a.TabelaSelecaoController;exports.UITabela=a.UITabela;exports.UITabelaPropriedades=a.UITabelaPropriedades;exports.VALOR_MISTO=a.VALOR_MISTO;exports.abrirPopoverRedimensionamento=a.abrirPopoverRedimensionamento;exports.alternarCategoria=a.alternarCategoria;exports.alternarDirecaoOrdenacao=a.alternarDirecaoOrdenacao;exports.alternarPosicionamentoFlutuante=a.alternarPosicionamentoFlutuante;exports.aplicarOrdenacaoTabela=a.aplicarOrdenacaoTabela;exports.atualizarCampoVisual=a.atualizarCampoVisual;exports.avaliarExpressaoMatematica=a.avaliarExpressaoMatematica;exports.buscarLinhaPropriedade=a.buscarLinhaPropriedade;exports.colapsarTodasCategorias=a.colapsarTodasCategorias;exports.combinarValores=a.combinarValores;exports.conectarArrastoFlutuante=a.conectarArrastoFlutuante;exports.conectarPainelControles=a.conectarPainelControles;exports.criarControladorSplitter=a.criarControladorSplitter;exports.criarEditorAcao=a.criarEditorAcao;exports.criarEditorBooleano=a.criarEditorBooleano;exports.criarEditorCorCad=a.criarEditorCorCad;exports.criarEditorCorSwatch=a.criarEditorCorSwatch;exports.criarEditorLinetype=a.criarEditorLinetype;exports.criarEditorLineweight=a.criarEditorLineweight;exports.criarEditorNumero=a.criarEditorNumero;exports.criarEditorReadonly=a.criarEditorReadonly;exports.criarEditorSelecao=a.criarEditorSelecao;exports.criarEditorTexto=a.criarEditorTexto;exports.criarEditorValor=a.criarEditorValor;exports.criarLinhaPropriedade=a.criarLinhaPropriedade;exports.executarOrquestracaoCorpo=a.executarOrquestracaoCorpo;exports.executarOrquestracaoHeader=a.executarOrquestracaoHeader;exports.executarRedimensionamentoColuna=a.executarRedimensionamentoColuna;exports.executarRedimensionamentoTeclado=a.executarRedimensionamentoTeclado;exports.exibirPromptPopoverRedimensionamento=a.exibirPromptPopoverRedimensionamento;exports.expandirTodasCategorias=a.expandirTodasCategorias;exports.focarProximoEditor=a.focarProximoEditor;exports.formatWidth=a.formatWidth;exports.getAlignmentClass=a.getAlignmentClass;exports.getRowHeight=a.getRowHeight;exports.getTextAlign=a.getTextAlign;exports.inicializarScrollVirtualizacao=a.inicializarScrollVirtualizacao;exports.iniciarRedimensionamentoColuna=a.iniciarRedimensionamentoColuna;exports.interpretarIndice=a.interpretarIndice;exports.isValorMisto=a.isValorMisto;exports.limitarLarguraColuna=a.limitarLarguraColuna;exports.localizarIndiceItem=a.localizarIndiceItem;exports.marcarSelectMisto=a.marcarSelectMisto;exports.montarEstruturaDOM=a.montarEstruturaDOM;exports.normalizarTexto=a.normalizarTexto;exports.orquestrarEstruturaInicial=a.orquestrarEstruturaInicial;exports.proximaDensidade=a.proximaDensidade;exports.redimensionarColunaPorDelta=a.redimensionarColunaPorDelta;exports.registrarAtualizadorEditor=a.registrarAtualizadorEditor;exports.renderizarCategoriasETree=a.renderizarCategoriasETree;exports.renderizarCorpoTabela=a.renderizarCorpoTabela;exports.renderizarHeaderTabela=a.renderizarHeaderTabela;exports.renderizarSeletorTipos=a.renderizarSeletorTipos;exports.sincronizarAtributosTabela=a.sincronizarAtributosTabela;exports.sincronizarPainelControles=a.sincronizarPainelControles;exports.sincronizarSelect=a.sincronizarSelect;exports.textoMistoDe=a.textoMistoDe;exports.tratarMudancaAtributoTabela=a.tratarMudancaAtributoTabela;exports.valorComum=a.valorComum;exports.valorInicialDaPropriedade=a.valorInicialDaPropriedade;exports.valoresIguais=a.valoresIguais;exports.ICONES_FERRAMENTAS=U.ICONES_FERRAMENTAS;exports.PALETA_CORES_PADRAO=t.PALETA_CORES_PADRAO;exports.UISeletorCor=t.UISeletorCor;exports.abrirSeletorCor=t.abrirSeletorCor;exports.coresUnicas=t.coresUnicas;exports.escaparHtml=t.escaparHtml;exports.fecharSeletorCor=t.fecharSeletorCor;exports.normalizarCor=t.normalizarCor;exports.normalizarEspessura=t.normalizarEspessura;exports.normalizarOpacidade=t.normalizarOpacidade;exports.UIControleCores=E.UIControleCores;exports.CamadasDragDropManager=r.CamadasDragDropManager;exports.ICONES=r.ICONES;exports.LIMITE_FEICOES_POR_CAMADA=r.LIMITE_FEICOES_POR_CAMADA;exports.MAPAS_BASE_PADRAO=r.MAPAS_BASE_PADRAO;exports.UICamadas=r.UICamadas;exports.UILayerPanel=r.UILayerPanel;exports.UIPainelCamadas=r.UIPainelCamadas;exports.calcularAreaAnelSimples=r.calcularAreaAnelSimples;exports.calcularAreaPoligono=r.calcularAreaPoligono;exports.calcularComprimentoLinha=r.calcularComprimentoLinha;exports.calcularDistanciaPontos=r.calcularDistanciaPontos;exports.calcularSelecaoFeicao=r.calcularSelecaoFeicao;exports.carregarEstadoPersistido=r.carregarEstadoPersistido;exports.construirHierarquiaCamadas=r.construirHierarquiaCamadas;exports.converterCamadaItemParaCanvasLayer=r.converterCamadaItemParaCanvasLayer;exports.converterCanvasLayerParaCamadaItem=r.converterCanvasLayerParaCamadaItem;exports.converterFeicaoParaItem=r.converterFeicaoParaItem;exports.escapeHtml=r.escapeHtml;exports.filtrarCamadasPorBusca=r.filtrarCamadasPorBusca;exports.filtrarFeicoesPorBusca=r.filtrarFeicoesPorBusca;exports.formatarMetricaFeicoes=r.formatarMetricaFeicoes;exports.formatarOpcoesCamadasHierarquicas=r.formatarOpcoesCamadasHierarquicas;exports.gerarChaveStorage=r.gerarChaveStorage;exports.limparEstadoPersistido=r.limparEstadoPersistido;exports.montarEstadoPersistido=r.montarEstadoPersistido;exports.nomeDoMapaBase=r.nomeDoMapaBase;exports.obterIdsVisiveisFeicoes=r.obterIdsVisiveisFeicoes;exports.reidratarCamadasComOverrides=r.reidratarCamadasComOverrides;exports.removerSelecoesInvalidas=r.removerSelecoesInvalidas;exports.renderizarArvoreCamadas=r.renderizarArvoreCamadas;exports.renderizarGridMapasBase=r.renderizarGridMapasBase;exports.renderizarRodapeAcoes=r.renderizarRodapeAcoes;exports.renderizarThumbGeometria=r.renderizarThumbGeometria;exports.salvarEstadoPersistido=r.salvarEstadoPersistido;exports.snapshotCamada=r.snapshotCamada;exports.UIMapaBase=C.UIMapaBase;exports.UISeletorMapaBase=C.UISeletorMapaBase;exports.UIBus=g.UIBus;exports.initZeroJSTriggers=T.initZeroJSTriggers;exports.ListenerBag=A.ListenerBag;exports.carregarLeaflet=S.carregarLeaflet;exports.obterLeafletSincrono=S.obterLeafletSincrono;exports.SafeHTMLElement=d.SafeHTMLElement;exports.definirCustomElement=d.definirCustomElement;exports.isBrowser=d.isBrowser;exports.cliqueVeioDeRotuloExterno=u.cliqueVeioDeRotuloExterno;exports.gerarIdUnico=u.gerarIdUnico;exports.obterRotuloExterno=u.obterRotuloExterno;exports.carregarModuloCanvas=O;exports.carregarModuloMapa=P;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const I=require("./ui-botao-D24oXySA.cjs"),e=require("./ui-switch-C0i_3QXu.cjs"),i=require("./ui-linha-C306zxWG.cjs"),n=require("./ui-campo-texto-CH8mzX61.cjs"),c=require("./ui-paleta-ferramentas-CsPMTY0G.cjs"),s=require("./ui-badge-DC4y6Dik.cjs"),p=require("./ui-card-0wu4rjEX.cjs"),l=require("./ui-modal-CUNbpbZ1.cjs"),o=require("./ui-skeleton-DiOxTBZK.cjs"),a=require("./ui-tabela-propriedades-B8AwlpqL.cjs"),U=require("./tools.cjs"),t=require("./ui-seletor-cor-C4U2eqxY.cjs"),E=require("./ui-controle-cores-C8um-If9.cjs"),r=require("./camadas.cjs"),C=require("./seletor-mapa-base.cjs"),g=require("./ui-bus-XqBLlTYQ.cjs"),T=require("./zero-js-triggers-CgM9IIQB.cjs"),A=require("./listener-bag-D5omxZ9h.cjs"),S=require("./leaflet-loader-94z5VsdY.cjs"),d=require("./ssr-safe-CiHD1adl.cjs"),u=require("./acessibilidade-CSzX-DkG.cjs"),P=()=>Promise.resolve().then(()=>require("./mapa.cjs")),O=()=>Promise.resolve().then(()=>require("./canvas.cjs"));if(typeof document<"u"){const m=()=>{document.querySelector("ui-mapa, ui-mapa-marcador, ui-mapa-linha")&&!customElements.get("ui-mapa")&&Promise.resolve().then(()=>require("./mapa.cjs")),document.querySelector("ui-canvas-cad")&&!customElements.get("ui-canvas-cad")&&Promise.resolve().then(()=>require("./canvas.cjs"))};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",m,{once:!0}):m()}typeof document<"u"&&T.initZeroJSTriggers();exports.UIBotao=I.UIBotao;exports.UIBotaoPrimario=I.UIBotaoPrimario;exports.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE=e.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE;exports.ListaFlutuantePosicionamento=e.ListaFlutuantePosicionamento;exports.ListaFlutuanteTeclado=e.ListaFlutuanteTeclado;exports.RadioGrupoRegistry=e.RadioGrupoRegistry;exports.UIAreaTexto=e.UIAreaTexto;exports.UICheckbox=e.UICheckbox;exports.UIListaFlutuante=e.UIListaFlutuante;exports.UIRadio=e.UIRadio;exports.UISelect=e.UISelect;exports.UISwitch=e.UISwitch;exports.UITextarea=e.UITextarea;exports.UIToggle=e.UIToggle;exports.atualizarEstadoSelecaoLista=e.atualizarEstadoSelecaoLista;exports.calcularContador=e.calcularContador;exports.criarTemplateListaFlutuante=e.criarTemplateListaFlutuante;exports.renderizarItensLista=e.renderizarItensLista;exports.ATRIBUTOS_OBSERVADOS_SEGMENTED=i.ATRIBUTOS_OBSERVADOS_SEGMENTED;exports.SegmentedIndicadorController=i.SegmentedIndicadorController;exports.UIAvatar=i.UIAvatar;exports.UILinha=i.UILinha;exports.UISegmented=i.UISegmented;exports.UISegmento=i.UISegmento;exports.UITexto=i.UITexto;exports.criarBotaoOpcao=i.criarBotaoOpcao;exports.criarTemplateSegmented=i.criarTemplateSegmented;exports.tratarTecladoSegmented=i.tratarTecladoSegmented;exports.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO=n.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO;exports.UICampoTexto=n.UICampoTexto;exports.UIInput=n.UIInput;exports.criarTemplateCampoTexto=n.criarTemplateCampoTexto;exports.sincronizarFeedbackErro=n.sincronizarFeedbackErro;exports.sincronizarIconeSenha=n.sincronizarIconeSenha;exports.sincronizarLabelEPlaceholder=n.sincronizarLabelEPlaceholder;exports.UIIcone=c.UIIcone;exports.UIPaletaFerramentas=c.UIPaletaFerramentas;exports.UIRibbon=c.UIRibbon;exports.UIBadge=s.UIBadge;exports.UIChip=s.UIChip;exports.UIKpi=s.UIKpi;exports.UIMetrica=s.UIMetrica;exports.UIStat=s.UIStat;exports.UITag=s.UITag;exports.UICard=p.UICard;exports.UIDialog=l.UIDialog;exports.UIModal=l.UIModal;exports.aplicarInertForaDoModal=l.aplicarInertForaDoModal;exports.removerInertForaDoModal=l.removerInertForaDoModal;exports.ICONES_ALERTA=o.ICONES_ALERTA;exports.UIAlerta=o.UIAlerta;exports.UIDrawer=o.UIDrawer;exports.UIEsqueleto=o.UIEsqueleto;exports.UIGaveta=o.UIGaveta;exports.UIPainelLateral=o.UIPainelLateral;exports.UIPopover=o.UIPopover;exports.UISheet=o.UISheet;exports.UISkeleton=o.UISkeleton;exports.UIToast=o.UIToast;exports.UITooltip=o.UITooltip;exports.atualizarScrollLockDrawer=o.atualizarScrollLockDrawer;exports.gerenciarTabTrap=o.gerenciarTabTrap;exports.isTopMostDrawer=o.isTopMostDrawer;exports.obterElementosFocaveis=o.obterElementosFocaveis;exports.registrarToastNoBus=o.registrarToastNoBus;exports.GerenciadorValoresPropriedades=a.GerenciadorValoresPropriedades;exports.TEXTO_MISTO_PADRAO=a.TEXTO_MISTO_PADRAO;exports.TabelaOrquestradorDados=a.TabelaOrquestradorDados;exports.TabelaRemotaController=a.TabelaRemotaController;exports.TabelaSelecaoController=a.TabelaSelecaoController;exports.UITabela=a.UITabela;exports.UITabelaPropriedades=a.UITabelaPropriedades;exports.VALOR_MISTO=a.VALOR_MISTO;exports.abrirPopoverRedimensionamento=a.abrirPopoverRedimensionamento;exports.alternarCategoria=a.alternarCategoria;exports.alternarDirecaoOrdenacao=a.alternarDirecaoOrdenacao;exports.alternarPosicionamentoFlutuante=a.alternarPosicionamentoFlutuante;exports.aplicarOrdenacaoTabela=a.aplicarOrdenacaoTabela;exports.atualizarCampoVisual=a.atualizarCampoVisual;exports.avaliarExpressaoMatematica=a.avaliarExpressaoMatematica;exports.buscarLinhaPropriedade=a.buscarLinhaPropriedade;exports.colapsarTodasCategorias=a.colapsarTodasCategorias;exports.combinarValores=a.combinarValores;exports.conectarArrastoFlutuante=a.conectarArrastoFlutuante;exports.conectarPainelControles=a.conectarPainelControles;exports.criarControladorSplitter=a.criarControladorSplitter;exports.criarEditorAcao=a.criarEditorAcao;exports.criarEditorBooleano=a.criarEditorBooleano;exports.criarEditorCorCad=a.criarEditorCorCad;exports.criarEditorCorSwatch=a.criarEditorCorSwatch;exports.criarEditorLinetype=a.criarEditorLinetype;exports.criarEditorLineweight=a.criarEditorLineweight;exports.criarEditorNumero=a.criarEditorNumero;exports.criarEditorReadonly=a.criarEditorReadonly;exports.criarEditorSelecao=a.criarEditorSelecao;exports.criarEditorTexto=a.criarEditorTexto;exports.criarEditorValor=a.criarEditorValor;exports.criarLinhaPropriedade=a.criarLinhaPropriedade;exports.executarOrquestracaoCorpo=a.executarOrquestracaoCorpo;exports.executarOrquestracaoHeader=a.executarOrquestracaoHeader;exports.executarRedimensionamentoColuna=a.executarRedimensionamentoColuna;exports.executarRedimensionamentoTeclado=a.executarRedimensionamentoTeclado;exports.exibirPromptPopoverRedimensionamento=a.exibirPromptPopoverRedimensionamento;exports.expandirTodasCategorias=a.expandirTodasCategorias;exports.focarProximoEditor=a.focarProximoEditor;exports.formatWidth=a.formatWidth;exports.getAlignmentClass=a.getAlignmentClass;exports.getRowHeight=a.getRowHeight;exports.getTextAlign=a.getTextAlign;exports.inicializarScrollVirtualizacao=a.inicializarScrollVirtualizacao;exports.iniciarRedimensionamentoColuna=a.iniciarRedimensionamentoColuna;exports.interpretarIndice=a.interpretarIndice;exports.isValorMisto=a.isValorMisto;exports.limitarLarguraColuna=a.limitarLarguraColuna;exports.localizarIndiceItem=a.localizarIndiceItem;exports.marcarSelectMisto=a.marcarSelectMisto;exports.montarEstruturaDOM=a.montarEstruturaDOM;exports.normalizarTexto=a.normalizarTexto;exports.orquestrarEstruturaInicial=a.orquestrarEstruturaInicial;exports.proximaDensidade=a.proximaDensidade;exports.redimensionarColunaPorDelta=a.redimensionarColunaPorDelta;exports.registrarAtualizadorEditor=a.registrarAtualizadorEditor;exports.renderizarCategoriasETree=a.renderizarCategoriasETree;exports.renderizarCorpoTabela=a.renderizarCorpoTabela;exports.renderizarHeaderTabela=a.renderizarHeaderTabela;exports.renderizarSeletorTipos=a.renderizarSeletorTipos;exports.sincronizarAtributosTabela=a.sincronizarAtributosTabela;exports.sincronizarPainelControles=a.sincronizarPainelControles;exports.sincronizarSelect=a.sincronizarSelect;exports.textoMistoDe=a.textoMistoDe;exports.tratarMudancaAtributoTabela=a.tratarMudancaAtributoTabela;exports.valorComum=a.valorComum;exports.valorInicialDaPropriedade=a.valorInicialDaPropriedade;exports.valoresIguais=a.valoresIguais;exports.ICONES_FERRAMENTAS=U.ICONES_FERRAMENTAS;exports.PALETA_CORES_PADRAO=t.PALETA_CORES_PADRAO;exports.UISeletorCor=t.UISeletorCor;exports.abrirSeletorCor=t.abrirSeletorCor;exports.coresUnicas=t.coresUnicas;exports.escaparHtml=t.escaparHtml;exports.fecharSeletorCor=t.fecharSeletorCor;exports.normalizarCor=t.normalizarCor;exports.normalizarEspessura=t.normalizarEspessura;exports.normalizarOpacidade=t.normalizarOpacidade;exports.UIControleCores=E.UIControleCores;exports.CamadasDragDropManager=r.CamadasDragDropManager;exports.ICONES=r.ICONES;exports.LIMITE_FEICOES_POR_CAMADA=r.LIMITE_FEICOES_POR_CAMADA;exports.MAPAS_BASE_PADRAO=r.MAPAS_BASE_PADRAO;exports.UICamadas=r.UICamadas;exports.UILayerPanel=r.UILayerPanel;exports.UIPainelCamadas=r.UIPainelCamadas;exports.calcularAreaAnelSimples=r.calcularAreaAnelSimples;exports.calcularAreaPoligono=r.calcularAreaPoligono;exports.calcularComprimentoLinha=r.calcularComprimentoLinha;exports.calcularDistanciaPontos=r.calcularDistanciaPontos;exports.calcularSelecaoFeicao=r.calcularSelecaoFeicao;exports.carregarEstadoPersistido=r.carregarEstadoPersistido;exports.construirHierarquiaCamadas=r.construirHierarquiaCamadas;exports.converterCamadaItemParaCanvasLayer=r.converterCamadaItemParaCanvasLayer;exports.converterCanvasLayerParaCamadaItem=r.converterCanvasLayerParaCamadaItem;exports.converterFeicaoParaItem=r.converterFeicaoParaItem;exports.escapeHtml=r.escapeHtml;exports.filtrarCamadasPorBusca=r.filtrarCamadasPorBusca;exports.filtrarFeicoesPorBusca=r.filtrarFeicoesPorBusca;exports.formatarMetricaFeicoes=r.formatarMetricaFeicoes;exports.formatarOpcoesCamadasHierarquicas=r.formatarOpcoesCamadasHierarquicas;exports.gerarChaveStorage=r.gerarChaveStorage;exports.limparEstadoPersistido=r.limparEstadoPersistido;exports.montarEstadoPersistido=r.montarEstadoPersistido;exports.nomeDoMapaBase=r.nomeDoMapaBase;exports.obterIdsVisiveisFeicoes=r.obterIdsVisiveisFeicoes;exports.reidratarCamadasComOverrides=r.reidratarCamadasComOverrides;exports.removerSelecoesInvalidas=r.removerSelecoesInvalidas;exports.renderizarArvoreCamadas=r.renderizarArvoreCamadas;exports.renderizarGridMapasBase=r.renderizarGridMapasBase;exports.renderizarRodapeAcoes=r.renderizarRodapeAcoes;exports.renderizarThumbGeometria=r.renderizarThumbGeometria;exports.salvarEstadoPersistido=r.salvarEstadoPersistido;exports.snapshotCamada=r.snapshotCamada;exports.UIMapaBase=C.UIMapaBase;exports.UISeletorMapaBase=C.UISeletorMapaBase;exports.UIBus=g.UIBus;exports.initZeroJSTriggers=T.initZeroJSTriggers;exports.ListenerBag=A.ListenerBag;exports.carregarLeaflet=S.carregarLeaflet;exports.obterLeafletSincrono=S.obterLeafletSincrono;exports.SafeHTMLElement=d.SafeHTMLElement;exports.definirCustomElement=d.definirCustomElement;exports.isBrowser=d.isBrowser;exports.cliqueVeioDeRotuloExterno=u.cliqueVeioDeRotuloExterno;exports.gerarIdUnico=u.gerarIdUnico;exports.obterRotuloExterno=u.obterRotuloExterno;exports.carregarModuloCanvas=O;exports.carregarModuloMapa=P;
|
package/dist/index.js
CHANGED
|
@@ -10,8 +10,8 @@ import { U as ia, a as na, b as ca, r as la } from "./ui-modal-BkYvNP0G.js";
|
|
|
10
10
|
import { I as ma, U as ua, a as pa, b as Ia, c as Ua, d as Ca, e as Ta, f as Sa, g as Ea, h as ga, i as fa, j as Aa, k as xa, l as Pa, o as ba, r as Oa } from "./ui-skeleton-B2Rgrv8o.js";
|
|
11
11
|
import { G as Ra, T as Ma, a as va, b as Da, c as za, U as Ba, d as ha, V as _a, e as Fa, f as Va, g as ya, h as qa, i as wa, j as Ha, k as Na, l as Ga, m as ka, n as ja, o as Xa, p as Ja, q as Ka, r as Wa, s as Za, t as Qa, u as Ya, v as $a, w as ar, x as rr, y as er, z as or, A as sr, B as tr, C as ir, D as nr, E as cr, F as lr, H as dr, I as mr, J as ur, K as pr, L as Ir, M as Ur, N as Cr, O as Tr, P as Sr, Q as Er, R as gr, S as fr, W as Ar, X as xr, Y as Pr, Z as br, _ as Or, $ as Lr, a0 as Rr, a1 as Mr, a2 as vr, a3 as Dr, a4 as zr, a5 as Br, a6 as hr, a7 as _r, a8 as Fr, a9 as Vr, aa as yr, ab as qr, ac as wr, ad as Hr, ae as Nr } from "./ui-tabela-propriedades-DuaC4sFX.js";
|
|
12
12
|
import { ICONES_FERRAMENTAS as kr } from "./tools.js";
|
|
13
|
-
import { P as Xr, U as Jr, a as Kr, c as Wr, e as Zr, f as Qr, n as Yr, b as $r, d as ae } from "./ui-seletor-cor-
|
|
14
|
-
import { U as ee } from "./ui-controle-cores-
|
|
13
|
+
import { P as Xr, U as Jr, a as Kr, c as Wr, e as Zr, f as Qr, n as Yr, b as $r, d as ae } from "./ui-seletor-cor-D2_C6Aor.js";
|
|
14
|
+
import { U as ee } from "./ui-controle-cores-B4R6ct4I.js";
|
|
15
15
|
import { CamadasDragDropManager as se, ICONES as te, LIMITE_FEICOES_POR_CAMADA as ie, MAPAS_BASE_PADRAO as ne, UICamadas as ce, UILayerPanel as le, UIPainelCamadas as de, calcularAreaAnelSimples as me, calcularAreaPoligono as ue, calcularComprimentoLinha as pe, calcularDistanciaPontos as Ie, calcularSelecaoFeicao as Ue, carregarEstadoPersistido as Ce, construirHierarquiaCamadas as Te, converterCamadaItemParaCanvasLayer as Se, converterCanvasLayerParaCamadaItem as Ee, converterFeicaoParaItem as ge, escapeHtml as fe, filtrarCamadasPorBusca as Ae, filtrarFeicoesPorBusca as xe, formatarMetricaFeicoes as Pe, formatarOpcoesCamadasHierarquicas as be, gerarChaveStorage as Oe, limparEstadoPersistido as Le, montarEstadoPersistido as Re, nomeDoMapaBase as Me, obterIdsVisiveisFeicoes as ve, reidratarCamadasComOverrides as De, removerSelecoesInvalidas as ze, renderizarArvoreCamadas as Be, renderizarGridMapasBase as he, renderizarRodapeAcoes as _e, renderizarThumbGeometria as Fe, salvarEstadoPersistido as Ve, snapshotCamada as ye } from "./camadas.js";
|
|
16
16
|
import { UIMapaBase as we, UISeletorMapaBase as He } from "./seletor-mapa-base.js";
|
|
17
17
|
import { U as Ge } from "./ui-bus-CUd99VJi.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var co=Object.defineProperty;var lo=(a,t,o)=>t in a?co(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o;var M=(a,t,o)=>lo(a,typeof t!="symbol"?t+"":t,o);function T(a){return a.partes&&a.partes.length>1?a.partes:[a.coordenadas]}function uo(a){return a.tipo==="LineString"&&!!a.partes&&a.partes.length>1}function bt(a){return a.length>1?{tipo:"LineString",coordenadas:a[0],partes:a}:{tipo:"LineString",coordenadas:a[0]}}const _=6378137,k=1/298.257222101,Lt=k*(2-k),D=a=>a*Math.PI/180;function dt(a){const t=Math.sin(D(a)),o=1-Lt*t*t;return{N:_/Math.sqrt(o),M:_*(1-Lt)/(o*Math.sqrt(o))}}function ho(a){const{M:t,N:o}=dt(a);return{lat:D(1)*t,lng:D(1)*o*Math.cos(D(a))}}function fo(a,t){const o=_*(1-k),e=k,i=D(t[1]-a[1]),n=Math.atan((1-e)*Math.tan(D(a[0]))),s=Math.atan((1-e)*Math.tan(D(t[0]))),r=Math.sin(n),c=Math.cos(n),l=Math.sin(s),d=Math.cos(s);let h=i,u=0,g=0,L=0,f=0,m=0;for(let v=0;v<100;v++){const p=Math.sin(h),x=Math.cos(h);if(u=Math.hypot(d*p,c*l-r*d*x),u===0)return 0;g=r*l+c*d*x,L=Math.atan2(u,g);const A=c*d*p/u;f=1-A*A,m=f===0?0:g-2*r*l/f;const S=e/16*f*(4+e*(4-3*f)),b=h;if(h=i+(1-S)*e*A*(L+S*u*(m+S*g*(-1+2*m*m))),Math.abs(h-b)<1e-12)break}const P=f*(_*_-o*o)/(o*o),R=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*(g*(-1+2*m*m)-O/6*m*(-3+4*u*u)*(-3+4*m*m)));return o*R*(L-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}=dt((a[0]+t[0])/2),s=D(o)*i,r=D(e)*n*Math.cos(D((a[0]+t[0])/2));return Math.hypot(r,s)}return fo(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+=D(d[1]-c[1])*Math.sin(D(l[0])),e+=l[0]}const{M:i,N:n}=dt(e/t),s=Math.abs(o*i*n/2);return Number.isFinite(s)?s:0}function jt(a){const[t,...o]=a;return t?Math.max(0,Pt(t)-o.reduce((e,i)=>e+Pt(i),0)):0}const mo=new Intl.NumberFormat("pt-BR",{minimumFractionDigits:4,maximumFractionDigits:4}),xt=new Intl.NumberFormat("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});function Nt(a){return`${mo.format(a/1e4)} ha`}function Tt(a){return a>=1e3?`${xt.format(a/1e3)} km`:`${xt.format(a)} m`}function Rt(a){return a.tipo==="Polygon"?jt(a.aneis):a.tipo==="Circle"?Math.PI*a.raioMetros**2:null}function _t(a){return a.tipo==="LineString"?T(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 wt(a,t){var i;const o=t??"name";if(o==="area"){const n=Rt(a.geometria);return n===null?"":Nt(n)}if(o==="extensao"){const n=_t(a.geometria);return n===null?"":Tt(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 Ft(a){let t;switch(a.tipo){case"Point":case"Text":t=[a.coordenada];break;case"LineString":t=T(a).flat();break;case"Polygon":t=a.aneis.flat();break;case"Circle":{const i=a.raioMetros/111320,n=i/Math.max(.01,Math.cos(D(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 U=16,po=256;function W(a){const[[t,o],[e,i]]=Ft(a.geometria);return{minLon:o,minLat:t,maxLon:i,maxLat:e}}function w(a,t){return a.minLon<=t.maxLon&&a.maxLon>=t.minLon&&a.minLat<=t.maxLat&&a.maxLat>=t.minLat}function At(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 Dt(a){const t=a.length,o=Math.ceil(t/U),i=Math.ceil(Math.sqrt(o))*U,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+=U)s.push(c.slice(l,l+U))}return s}function go(a){if(a.length===0)return null;let t=Dt(a).map(o=>({...At(o),folhas:o}));for(;t.length>1;)t=Dt(t).map(o=>({...At(o),filhos:o}));return t[0]}class zt{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(w(i,t))if(i.folhas)for(const n of i.folhas)!this.obsoletos.has(n.id)&&w(n,t)&&o.push(n.id);else i.filhos&&e.push(...i.filhos)}for(const i of this.delta.values())w(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(po,this.itens.size*.1)&&this.remontar()}remontar(){this.raiz=go([...this.itens.values()]),this.delta.clear(),this.obsoletos.clear()}}const lt=17,G=9,vo=1.2;function $t(a){return!Number.isFinite(a)||a>=lt?0:360/(256*2**a)*vo}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 Mo(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 ut(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=Mo(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 Vt(a,t,o=1){if(!(t>0)||a.length<4)return a;const e=[...a,a[0]],i=ut(e,t,o);return i.pop(),i.length>=3?i:a}function Ut(a){return(a.tipo==="LineString"||a.tipo==="Polygon")&&a.curva?0:a.tipo==="LineString"?T(a).reduce((t,o)=>t+o.length,0):a.tipo==="Polygon"?a.aneis.reduce((t,o)=>t+o.length,0):0}function Lo(a,t){var e,i,n,s;const o=$t(t);if(o===0||Ut(a)<G)return a;if(a.tipo==="LineString"){const r=T(a),c=tt(((i=(e=r[0])==null?void 0:e[0])==null?void 0:i[0])??NaN);return bt(r.map(l=>ut(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=>Vt(c,o,r))}}return a}const Po=new Set(["previa","prévia","preview","rascunho","draft","proposta"]);function y(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"&&Po.has(i.trim().toLowerCase()))return"previa";return"oficial"}function I(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 xo{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&&y(e)==="oficial"&&o.add(I(e));return o}visivel(t,o){if(y(t)==="oficial")return!0;const e=I(t);return this.global||!o.has(e)||this.individualAtiva(t.camadaId,e)}previaSolicitada(t){return this.global||this.individualAtiva(t.camadaId,I(t))}}const Ao=24,Do=2,Ct=a=>typeof a=="number"&&Number.isFinite(a),J=a=>Array.isArray(a)&&a.length===2&&Ct(a[0])&&Ct(a[1]);function Co(a,t){return[2*a[0]-t[0],2*a[1]-t[1]]}function Bt(a){return a.some(t=>t.entrada!==void 0||t.saida!==void 0)}function ht(a,t){return[a.saida??a.ponto,t.entrada??t.ponto]}function qt(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 kt(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 So(a,t=!1,o=Ao){if(a.length===0)return[];const e=[[a[0].ponto[0],a[0].ponto[1]]];for(const[i,n]of qt(a.length,t)){const s=a[i],r=a[n];if(!(s.saida===void 0&&r.entrada===void 0)){const[l,d]=ht(s,r);for(let h=1;h<o;h++)e.push(kt(s.ponto,l,d,r.ponto,h/o))}n!==0&&e.push([r.ponto[0],r.ponto[1]])}return e}function Gt(a,t){if(a.length===0)return[];const o=[{cmd:"M",pts:[a[0].ponto]}];for(const[e,i]of qt(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]=ht(n,s);o.push({cmd:"C",pts:[r,c,s.ponto]})}}return o}function yo(a,t,o){const e=n=>String(Math.round(n*100)/100),i=Gt(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 Io(a,t=Do){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 Bt(o)?o:null}function Oo(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 z=55,Xt=17,Zt=8;function ft(a,t){return t<Xt&&a>Zt}function Ht(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 Eo(a,t,o){if(!ft(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/z)}:${Math.floor(c/z)}`,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:Ht(r),membros:r});return{clusters:i,isolados:n}}class Jt{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/z)}:${Math.floor(e/z)}`;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 Yt=3,mt=.75,St=85.0511287798,bo=256;function X(a,t,o){const e=bo*2**o,i=Math.max(-St,Math.min(St,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 jo=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 pt(a,t){if(!Number.isFinite(t)||t<0||!jo(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 Qt(a,t,o=Yt){if(!a)return!1;const e=pt(a,t);return Number.isFinite(e)&&e<o}function Kt(a){return Number.isFinite(a)&&a<1.5?1:2}function Wt(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 No="#38bdf8";function To(a,t,o,e,i,n,s){let r=0;const c=Wt(t);for(const[l,d]of c){let h=!1;for(const u of d){const g=X(u.lat,u.lon,o),L=g.x-e,f=g.y-i;L>=-2&&f>=-2&&L<=n+2&&f<=s+2&&(h||(a.fillStyle=l||No,a.globalAlpha=mt,h=!0),a.fillRect(Math.round(L-u.lado/2),Math.round(f-u.lado/2),u.lado,u.lado),r++)}}return r}const to=["continua","tracejada","tracejada-curta","tracejada-longa","pontilhada","traco-ponto","traco-ponto-ponto","oculta","centro","fantasma","divisa"],Ro={tracejada:[12,6],"tracejada-curta":[6,4],"tracejada-longa":[24,8],pontilhada:[0,4],"traco-ponto":[12,4,0,4],"traco-ponto-ponto":[12,4,0,4,0,4],oculta:[6,3],centro:[24,4,6,4],fantasma:[24,4,6,4,6,4],divisa:[12,4,12,4,0,4]},yt={arredondada:"round",reta:"butt",quadrada:"square"},It={arredondada:"round",chanfrada:"bevel",angular:"miter"},_o=.05,wo=100,Ot={continuous:"continua",dashed:"tracejada",dashed2:"tracejada-curta",dashedx2:"tracejada-longa",dot:"pontilhada",dotted:"pontilhada",dashdot:"traco-ponto",divide:"traco-ponto-ponto",hidden:"oculta",center:"centro",phantom:"fantasma",border:"divisa"};function at(a){return typeof a=="string"&&to.includes(a)}function gt(a){if(at(a))return a;if(typeof a!="string")return;const t=a.trim().toLowerCase();return at(t)?t:Object.prototype.hasOwnProperty.call(Ot,t)?Ot[t]:void 0}function et(a){return typeof a=="string"&&Object.prototype.hasOwnProperty.call(yt,a)?yt[a]:void 0}function it(a){return typeof a=="string"&&Object.prototype.hasOwnProperty.call(It,a)?It[a]:void 0}function oo(a){return typeof a!="number"||!Number.isFinite(a)||a<=0?1:Math.min(wo,Math.max(_o,a))}function nt(a,t,o=1,e="round"){const i=gt(a);if(!i||i==="continua")return;const n=Number.isFinite(t)&&t>0?t:1,s=oo(o)*Math.max(1,n/2),r=e==="butt"?n:0,c=e==="butt"?0:n;return Ro[i].map((l,d)=>{const h=d%2===0?l===0?r:l*s:l*s+c;return Math.round(h*100)/100}).join(" ")}const $="#38bdf8",ao="#38bdf8",Fo=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\([0-9.,%\s\/-]+\)|[a-z]{3,20})$/i;function F(a,t){return typeof a=="string"&&Fo.test(a.trim())?a.trim():t}const E=a=>typeof a=="number"&&Number.isFinite(a);function st(a,t,o=!1){const e=a.estilo??{},i=F(e.corTraco??t.corPrimaria,$),n=a.geometria.tipo,s=n==="Polygon"||n==="Circle",r=n==="Point",c=r&&F(e.corContorno,"")||i,l=r&&E(e.espessuraContorno)&&e.espessuraContorno>=0?e.espessuraContorno:void 0,d=l??(E(e.espessuraTraco)?e.espessuraTraco:void 0)??(E(t.espessuraLinha)?t.espessuraLinha:2),h=E(e.opacidadePreenchimento)?e.opacidadePreenchimento:s?.2:.85,u=o?d+2:d,g=et(e.terminacaoTraco)??et(t.terminacaoLinha)??"round",L=E(e.opacidadeTraco)?e.opacidadeTraco:E(t.opacidadeLinha)?t.opacidadeLinha:1;return{cor:o?ao:c,traco:!(l===0&&!o),peso:u,dash:zo(a,t,u,g),opacidadeTraco:o?1:Math.min(1,Math.max(0,L)),terminacao:g,juncao:it(e.juncaoTraco)??it(t.juncaoLinha)??"round",deslocamentoDash:E(e.deslocamentoTracejado)?e.deslocamentoTracejado:0,preencher:s||r,corPreenchimento:F(e.corPreenchimento,i),opacidadePreenchimento:o?Math.min(1,h+.18):h}}function zo(a,t,o,e){const i=a.estilo??{};if(i.dashArray)return i.dashArray;if(i.tipoLinha!==void 0&&i.tipoLinha!==null){const n=nt(i.tipoLinha,o,i.escalaTipoLinha??t.escalaTipoLinha,e);if(n||gt(i.tipoLinha)==="continua")return n}return y(a)==="previa"?"6 4":t.dashArray?t.dashArray:nt(t.tipoLinha,o,t.escalaTipoLinha,e)}function eo(a,t){var e;const o=((e=a.estilo)==null?void 0:e.tamanhoIcone)??t.tamanhoMarcador??8;return(E(o)&&o>0?o:8)/2}class io{constructor(){M(this,"porChave",new Map)}interno(t){const o=`${t.cor}|${t.traco?1:0}|${t.peso}|${t.dash??""}|${t.opacidadeTraco??1}|${t.terminacao??""}|${t.juncao??""}|${t.deslocamentoDash??0}|${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 $o=.3,Et=a=>!!a&&typeof a.id=="string"&&!!a.geometria&&typeof a.geometria.tipo=="string";class no{constructor(){M(this,"loja",new Map);M(this,"indice",new zt);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=>Et(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*$o)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(y(t)!=="oficial"){this.nPrevias++;const e=I(t);this.contPrevias.set(e,(this.contPrevias.get(e)??0)+1);continue}const o=I(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||y(d)!=="oficial")return;const u=I(d);e.has(u)||e.set(u,this.oficiais.has(u));const g=(this.contOficiais.get(u)??0)+h;g<=0?(this.contOficiais.delete(u),this.oficiais.delete(u)):(this.contOficiais.set(u,g),this.oficiais.add(u))},n=(d,h)=>{const u=I(d),g=(this.contPrevias.get(u)??0)+h;g<=0?this.contPrevias.delete(u):this.contPrevias.set(u,g)},s=[],r=[],c=d=>{const h=this.loja.get(d);h&&(y(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(!Et(d))continue;if(d.excluida){c(d.id);continue}const h=this.loja.get(d.id);y(d)==="previa"&&(this.nPrevias++,n(d,1)),h&&(y(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 Vo=256,N=85.0511287798,Uo=4007501668557849e-8;function vt(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=>Vo*2**a;function Bo(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 rt(a,t){const o=V(t),e=new Float64Array(a.length*2);for(let i=0;i<a.length;i++){const n=a[i];vt(e,i*2,n[0],n[1],o)}return e}function j(a,t,o){const e=new Float64Array(2);return vt(e,0,a,t,V(o)),e}function so(a,t){const o=Math.max(-N,Math.min(N,a));return Uo*Math.cos(o*Math.PI/180)/V(t)}function ro(a,t,o){const e=so(a,o),i=t/e;return Number.isFinite(i)&&i>=0?i:0}function qo(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 ko(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 ct(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(),g=r.pop();let L=0,f=-1;const m=i[g*2],P=i[g*2+1],R=i[u*2],O=i[u*2+1];for(let C=g+1;C<u;C++){const v=ko(i[C*2],i[C*2+1],m,P,R,O);v>L&&(L=v,f=C)}f!==-1&&L>t&&(s[f]=1,r.push(g,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 Go=1.2,B=1e-9,Xo=6,q={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 Zo{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 no,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 io,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=j(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(st(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=I(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=Qt(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<lt?Go:0;if(n.tipo==="Polygon"){const r=[];for(const c of n.aneis??[]){if(!Array.isArray(c)||c.length<3)continue;let l=rt(c,e);s>0&&c.length>=G&&(l=ct(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 T(n)){if(!Array.isArray(c)||c.length<2)continue;let l=rt(c,e);s>0&&c.length>=G&&(l=ct(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=j(r[0],r[1],e);return{rev:i,partes:[c],raioPx:ro(r[0],n.raioMetros,e),marca:!1}}return n.tipo==="Point"||n.tipo==="Text"?{rev:i,partes:[j(n.coordenada[0],n.coordenada[1],e)],raioPx:n.tipo==="Point"?eo(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=j((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:Kt(pt(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=F(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:mt})}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(!ft(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 Jt(o,s=>{const r=j(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)*Xo,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=[],g=[],L=[],f=[],m={total:i.loja.size,desenhadas:0,marcasLOD:0,clusters:0,marcadoresDom:0,avaliacoesLOD:0},P=v=>{var A;if(!r||!((A=v.estilo)!=null&&A.mostrarRotulo)||v.geometria.tipo==="Text")return;const p=wt(v,v.estilo.campoRotulo),x=i.indice.caixaDe(v.id);!p||!x||(f.push({camadaId:n.id,id:`rotulo:${v.id}`,forma:"rotulo",geometriaEmPx:[],raioPx:0,estilo:q,selecionada:!1,feicao:v,texto:p,coordenada:[(x.minLat+x.maxLat)/2,(x.minLon+x.maxLon)/2]}),m.marcadoresDom++)},R=v=>{var A;const p=v.geometria;if(p.tipo!=="Point")return;if((A=v.estilo)!=null&&A.icone){if(!r)return;f.push({...this.itemBase(t,v,"icone",[],0,q),coordenada:p.coordenada}),m.marcadoresDom++;return}if(!s)return;const x=this.geometriaProjetada(t,v,c);x&&(L.push(this.itemBase(t,v,"ponto",x.partes,x.raioPx,this.estiloDe(t,v))),m.desenhadas++)};for(const v of l){const p=i.loja.get(v);if(!p||!i.desenhavel(p)||t.previas.has(v))continue;const x=p.geometria;if(x.tipo==="Point"){if(d&&d.emCluster(v)&&(!((C=p.estilo)!=null&&C.icone)||!r||!this.soltoDoCluster(t,d,v)))continue;R(p),P(p);continue}if(x.tipo==="Text"){if(!r)continue;f.push({...this.itemBase(t,p,"texto",[],0,q),coordenada:x.coordenada}),m.marcadoresDom++;continue}if(ot(x)){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 A=t.geom.get(v),S=A==null?void 0:A.item;if(S&&S.feicao===p&&A.revEstilo===t.revEstilo&&!this.emPar(t,p)&&S.selecionada===i.selecionadas.has(v)&&S.destaque===!0===t.destaques.has(v)){h.push(S),m.marcasLOD++;continue}if(this.comoMarca(t,p,c)){const Mt=this.itemMarca(t,p,c);Mt&&(h.push(Mt),m.marcasLOD++);continue}const b=this.geometriaProjetada(t,p,c);if(!b)continue;const Z=this.estiloDe(t,p);x.tipo==="LineString"?g.push(this.itemBase(t,p,"linha",b.partes,0,Z)):x.tipo==="Circle"?u.push(this.itemBase(t,p,"circulo",b.partes,b.raioPx,Z)):u.push(this.itemBase(t,p,"poligono",b.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 v of[u,g,L,f])for(const p of v)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,g=d.somaLat,L=d.somaLon;for(const P of d.membros.values())r.selecionadas.has(P.id)&&(u++,g-=P.coordenada[0],L-=P.coordenada[1]);const f=h-u,m=[d.somaLat/h,d.somaLon/h];m[0]>=o.caixa.minLat-B&&m[0]<=o.caixa.maxLat+B&&m[1]>=o.caixa.minLon-B&&m[1]<=o.caixa.maxLon+B&&(f<2||!s||(i.push({camadaId:c.id,id:l,forma:"cluster",geometriaEmPx:[],raioPx:0,estilo:q,selecionada:!1,coordenada:[g/f,L/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 g=d?null:e.dados.indice.caixaDe(c);if(g&&!w(g,o.caixa))continue;const L=e.dados.selecionadas.has(c)||!!d;if(!L&&!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(st(h,e.def.estilo,L)),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:L,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=Jt;exports.CELULA_CLUSTER_PX=z;exports.COR_PADRAO=$;exports.COR_SELECAO=ao;exports.DadosCamada=no;exports.IndiceEspacial=zt;exports.InternadorEstilos=io;exports.LIMITE_MARCA_PX=Yt;exports.MAX_PONTOS_SEM_CLUSTER=Zt;exports.MIN_VERTICES_SIMPLIFICAR=G;exports.MotorFormas=Zo;exports.OPACIDADE_MARCA=mt;exports.RegraVersoes=xo;exports.TIPOS_LINHA=to;exports.ZOOM_DESMEMBRAR=Xt;exports.ZOOM_SEM_SIMPLIFICACAO=lt;exports.agruparMarcasPorCor=Wt;exports.agruparPontos=Eo;exports.amostrarCurva=So;exports.areaDaGeometria=Rt;exports.areaMetros2=jt;exports.caixaDaFeicao=W;exports.caixaPx=qo;exports.caixasSeTocam=w;exports.caminhoSvg=yo;exports.centroDe=Ht;exports.comprimentoMetros=K;exports.controlesDoSegmento=ht;exports.corSegura=F;exports.criarLinha=bt;exports.dashTipoLinha=nt;exports.deveAgrupar=ft;exports.diagonalPx=pt;exports.distanciaMetros=Q;exports.ehMarca=Qt;exports.ehMultilinha=uo;exports.ehTipoLinha=at;exports.entidadeDe=I;exports.escalaDoZoom=V;exports.escalaLatitude=tt;exports.escalaTipoLinhaSegura=oo;exports.espelhoDaAlca=Co;exports.estiloVetorDe=st;exports.extensaoDaGeometria=_t;exports.formatarArea=Nt;exports.formatarExtensao=Tt;exports.juncaoCanvas=it;exports.ladoMarca=Kt;exports.latLonDoMundo=Bo;exports.limitesDaGeometria=Ft;exports.metrosPorGrau=ho;exports.metrosPorPixel=so;exports.moverNos=Oo;exports.normalizarNos=Io;exports.normalizarTipoLinha=gt;exports.nosDaGeometria=ot;exports.partesDaLinha=T;exports.passosDaCurva=Gt;exports.pintarMarcas=To;exports.pontoDaCubica=kt;exports.projetarCentro=j;exports.projetarEm=vt;exports.projetarMercator=X;exports.projetarVertices=rt;exports.raioCirculoPx=ro;exports.raioPontoPx=eo;exports.simplificarAnel=Vt;exports.simplificarGeometria=Lo;exports.simplificarLinha=ut;exports.simplificarPx=ct;exports.statusDe=y;exports.temAlcas=Bt;exports.terminacaoCanvas=et;exports.textoRotulo=wt;exports.toleranciaPorZoom=$t;exports.vertices=Ut;
|