@thibezer/ui-components-kit 1.0.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/LICENSE +21 -0
- package/README.md +624 -0
- package/dist/botao.cjs +1 -0
- package/dist/botao.d.ts +8 -0
- package/dist/botao.js +6 -0
- package/dist/camadas.cjs +296 -0
- package/dist/camadas.d.ts +14 -0
- package/dist/camadas.js +1857 -0
- package/dist/campo-texto.cjs +1 -0
- package/dist/campo-texto.d.ts +8 -0
- package/dist/campo-texto.js +11 -0
- package/dist/canvas.cjs +254 -0
- package/dist/canvas.d.ts +8 -0
- package/dist/canvas.js +3082 -0
- package/dist/card.cjs +1 -0
- package/dist/card.d.ts +7 -0
- package/dist/card.js +5 -0
- package/dist/components/ui-alerta/index.d.ts +2 -0
- package/dist/components/ui-alerta/ui-alerta-base.d.ts +23 -0
- package/dist/components/ui-alerta/ui-alerta.d.ts +2 -0
- package/dist/components/ui-alerta/ui-toast.d.ts +34 -0
- package/dist/components/ui-avatar/index.d.ts +1 -0
- package/dist/components/ui-avatar/ui-avatar.d.ts +12 -0
- package/dist/components/ui-badge/index.d.ts +1 -0
- package/dist/components/ui-badge/ui-badge.d.ts +20 -0
- package/dist/components/ui-barra-ferramentas/ferramentas-comum.d.ts +22 -0
- package/dist/components/ui-barra-ferramentas/ferramentas-icones.d.ts +24 -0
- package/dist/components/ui-barra-ferramentas/index.d.ts +4 -0
- package/dist/components/ui-barra-ferramentas/tipos.d.ts +55 -0
- package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +54 -0
- package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +52 -0
- package/dist/components/ui-botao/index.d.ts +1 -0
- package/dist/components/ui-botao/ui-botao.d.ts +26 -0
- package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +18 -0
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +18 -0
- package/dist/components/ui-camadas/camadas-eventos-arvore.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-eventos-camadas.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-eventos-rodape.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-host.d.ts +23 -0
- package/dist/components/ui-camadas/camadas-icones.d.ts +23 -0
- package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -0
- package/dist/components/ui-camadas/camadas-metricas.d.ts +17 -0
- package/dist/components/ui-camadas/camadas-persistencia.d.ts +65 -0
- package/dist/components/ui-camadas/camadas-resizer.d.ts +16 -0
- package/dist/components/ui-camadas/camadas-rodape.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-selecao.d.ts +24 -0
- package/dist/components/ui-camadas/camadas-sincronizacao-dom.d.ts +3 -0
- package/dist/components/ui-camadas/camadas-teclado.d.ts +3 -0
- package/dist/components/ui-camadas/camadas-utils.d.ts +26 -0
- package/dist/components/ui-camadas/index.d.ts +11 -0
- package/dist/components/ui-camadas/tipos.d.ts +116 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +112 -0
- package/dist/components/ui-campo-texto/campo-texto-estados.d.ts +12 -0
- package/dist/components/ui-campo-texto/campo-texto-template.d.ts +2 -0
- package/dist/components/ui-campo-texto/index.d.ts +1 -0
- package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +57 -0
- package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +13 -0
- package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +19 -0
- package/dist/components/ui-canvas-cad/cad-colecoes-dados.d.ts +46 -0
- package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +26 -0
- package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +19 -0
- package/dist/components/ui-canvas-cad/cad-painel-camadas.d.ts +9 -0
- package/dist/components/ui-canvas-cad/cad-tamanho-observer.d.ts +7 -0
- package/dist/components/ui-canvas-cad/cad-template.d.ts +1 -0
- package/dist/components/ui-canvas-cad/cad-toolbar-painel.d.ts +29 -0
- package/dist/components/ui-canvas-cad/index.d.ts +8 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +91 -0
- package/dist/components/ui-card/index.d.ts +1 -0
- package/dist/components/ui-card/ui-card.d.ts +18 -0
- package/dist/components/ui-checkbox/index.d.ts +1 -0
- package/dist/components/ui-checkbox/ui-checkbox.d.ts +36 -0
- package/dist/components/ui-drawer/drawer-acessibilidade.d.ts +16 -0
- package/dist/components/ui-drawer/index.d.ts +1 -0
- package/dist/components/ui-drawer/ui-drawer.d.ts +37 -0
- package/dist/components/ui-icone/index.d.ts +1 -0
- package/dist/components/ui-icone/ui-icone.d.ts +15 -0
- package/dist/components/ui-lista-flutuante/index.d.ts +1 -0
- package/dist/components/ui-lista-flutuante/lista-flutuante-posicionamento.d.ts +15 -0
- package/dist/components/ui-lista-flutuante/lista-flutuante-render.d.ts +9 -0
- package/dist/components/ui-lista-flutuante/lista-flutuante-teclado.d.ts +13 -0
- package/dist/components/ui-lista-flutuante/lista-flutuante-template.d.ts +2 -0
- package/dist/components/ui-lista-flutuante/tipos.d.ts +4 -0
- package/dist/components/ui-lista-flutuante/ui-lista-flutuante.d.ts +63 -0
- package/dist/components/ui-mapa/index.d.ts +3 -0
- package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -0
- package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -0
- package/dist/components/ui-mapa/ui-mapa.d.ts +16 -0
- package/dist/components/ui-modal/index.d.ts +2 -0
- package/dist/components/ui-modal/modal-acessibilidade.d.ts +12 -0
- package/dist/components/ui-modal/ui-modal.d.ts +30 -0
- package/dist/components/ui-radio/index.d.ts +1 -0
- package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
- package/dist/components/ui-radio/ui-radio.d.ts +29 -0
- package/dist/components/ui-segmented/index.d.ts +1 -0
- package/dist/components/ui-segmented/segmented-indicador.d.ts +13 -0
- package/dist/components/ui-segmented/segmented-teclado.d.ts +4 -0
- package/dist/components/ui-segmented/segmented-template.d.ts +4 -0
- package/dist/components/ui-segmented/ui-segmented.d.ts +48 -0
- package/dist/components/ui-seletor-mapa-base/index.d.ts +2 -0
- package/dist/components/ui-seletor-mapa-base/tipos.d.ts +22 -0
- package/dist/components/ui-seletor-mapa-base/ui-seletor-mapa-base.d.ts +43 -0
- package/dist/components/ui-skeleton/index.d.ts +1 -0
- package/dist/components/ui-skeleton/ui-skeleton.d.ts +19 -0
- package/dist/components/ui-stat/index.d.ts +1 -0
- package/dist/components/ui-stat/ui-stat.d.ts +30 -0
- package/dist/components/ui-switch/index.d.ts +1 -0
- package/dist/components/ui-switch/ui-switch.d.ts +36 -0
- package/dist/components/ui-tabela/index.d.ts +7 -0
- package/dist/components/ui-tabela/tabela-atributos-sync.d.ts +14 -0
- package/dist/components/ui-tabela/tabela-corpo.d.ts +18 -0
- package/dist/components/ui-tabela/tabela-dom.d.ts +15 -0
- package/dist/components/ui-tabela/tabela-header.d.ts +18 -0
- package/dist/components/ui-tabela/tabela-interacao.d.ts +9 -0
- package/dist/components/ui-tabela/tabela-localizador.d.ts +4 -0
- package/dist/components/ui-tabela/tabela-ordenacao.d.ts +12 -0
- package/dist/components/ui-tabela/tabela-orquestrador-dados.d.ts +18 -0
- package/dist/components/ui-tabela/tabela-redimensionamento.d.ts +28 -0
- package/dist/components/ui-tabela/tabela-remota.d.ts +15 -0
- package/dist/components/ui-tabela/tabela-renderizador.d.ts +29 -0
- package/dist/components/ui-tabela/tabela-selecao.d.ts +24 -0
- package/dist/components/ui-tabela/tipos.d.ts +27 -0
- package/dist/components/ui-tabela/ui-tabela.d.ts +83 -0
- package/dist/components/ui-tabela-propriedades/avaliador-expressao.d.ts +6 -0
- package/dist/components/ui-tabela-propriedades/editores-basicos.d.ts +7 -0
- package/dist/components/ui-tabela-propriedades/editores-cad.d.ts +17 -0
- package/dist/components/ui-tabela-propriedades/index.d.ts +6 -0
- package/dist/components/ui-tabela-propriedades/propriedades-densidade.d.ts +5 -0
- package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +6 -0
- package/dist/components/ui-tabela-propriedades/propriedades-editores.d.ts +5 -0
- package/dist/components/ui-tabela-propriedades/propriedades-flutuante.d.ts +7 -0
- package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +26 -0
- package/dist/components/ui-tabela-propriedades/propriedades-painel-controles.d.ts +15 -0
- package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +24 -0
- package/dist/components/ui-tabela-propriedades/propriedades-seletor-tipo.d.ts +13 -0
- package/dist/components/ui-tabela-propriedades/propriedades-splitter.d.ts +13 -0
- package/dist/components/ui-tabela-propriedades/propriedades-template.d.ts +1 -0
- package/dist/components/ui-tabela-propriedades/tipos.d.ts +48 -0
- package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +66 -0
- package/dist/components/ui-texto/index.d.ts +1 -0
- package/dist/components/ui-texto/ui-texto.d.ts +15 -0
- package/dist/components/ui-tooltip/index.d.ts +1 -0
- package/dist/components/ui-tooltip/ui-tooltip.d.ts +25 -0
- package/dist/core/acessibilidade.d.ts +21 -0
- package/dist/core/form-associated-element.d.ts +33 -0
- package/dist/core/form-validacao.d.ts +34 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/leaflet-loader.d.ts +7 -0
- package/dist/core/leaflet-style.d.ts +7 -0
- package/dist/core/listener-bag.d.ts +21 -0
- package/dist/core/ssr-safe.d.ts +20 -0
- package/dist/core/ui-bus.d.ts +85 -0
- package/dist/core/zero-js-triggers.d.ts +1 -0
- package/dist/core.cjs +1 -0
- package/dist/core.js +22 -0
- package/dist/data.cjs +1 -0
- package/dist/data.d.ts +22 -0
- package/dist/data.js +63 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.d.ts +26 -0
- package/dist/feedback.js +25 -0
- package/dist/form-validacao-BIOXxt-1.js +140 -0
- package/dist/form-validacao-ytRYSF3E.cjs +1 -0
- package/dist/forms.cjs +1 -0
- package/dist/forms.d.ts +22 -0
- package/dist/forms.js +25 -0
- package/dist/gerencigeo-canvas/canvas_destaque.d.ts +13 -0
- package/dist/gerencigeo-canvas/canvas_destaque_marcadores.d.ts +8 -0
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +56 -0
- package/dist/gerencigeo-canvas/canvas_selecao_box.d.ts +23 -0
- package/dist/gerencigeo-canvas/controller_dados_ops.d.ts +15 -0
- package/dist/gerencigeo-canvas/index.d.ts +17 -0
- package/dist/gerencigeo-canvas/layer_defaults.d.ts +3 -0
- package/dist/gerencigeo-canvas/layer_instance_ops.d.ts +6 -0
- package/dist/gerencigeo-canvas/layer_manager.d.ts +37 -0
- package/dist/gerencigeo-canvas/layer_pane_ops.d.ts +8 -0
- package/dist/gerencigeo-canvas/layer_renderer_factory.d.ts +14 -0
- package/dist/gerencigeo-canvas/layer_state_ops.d.ts +6 -0
- package/dist/gerencigeo-canvas/mapa_config.d.ts +11 -0
- package/dist/gerencigeo-canvas/mapa_controller.d.ts +53 -0
- package/dist/gerencigeo-canvas/mapa_core.d.ts +30 -0
- package/dist/gerencigeo-canvas/mapa_linhas.d.ts +14 -0
- package/dist/gerencigeo-canvas/mapa_marcadores.d.ts +18 -0
- package/dist/gerencigeo-canvas/mapa_pontos_shapes.d.ts +8 -0
- package/dist/gerencigeo-canvas/renderers/grid_renderer.d.ts +9 -0
- package/dist/gerencigeo-canvas/renderers/tile_renderer.d.ts +8 -0
- package/dist/gerencigeo-canvas/renderers/vector_lines_builder.d.ts +4 -0
- package/dist/gerencigeo-canvas/renderers/vector_lines_renderer.d.ts +9 -0
- package/dist/gerencigeo-canvas/renderers/vector_points_renderer.d.ts +11 -0
- package/dist/gerencigeo-canvas/renderers/vector_polygons_renderer.d.ts +9 -0
- package/dist/gerencigeo-canvas/renderers/wms_renderer.d.ts +8 -0
- package/dist/gerencigeo-canvas/sigef_consultor.d.ts +9 -0
- package/dist/gerencigeo-canvas/tile_preloader.d.ts +2 -0
- package/dist/gerencigeo-canvas/types.d.ts +169 -0
- package/dist/gerencigeo-canvas/utils.d.ts +46 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +116 -0
- package/dist/index.js +186 -0
- package/dist/leaflet-Cw6tqYFh.cjs +1 -0
- package/dist/leaflet-DkaFZYc5.js +69 -0
- package/dist/leaflet-loader-94z5VsdY.cjs +2 -0
- package/dist/leaflet-loader-Cjcdgj5R.js +21 -0
- package/dist/listener-bag-D5omxZ9h.cjs +1 -0
- package/dist/listener-bag-DQgv7OON.js +34 -0
- package/dist/mapa.cjs +19 -0
- package/dist/mapa.d.ts +11 -0
- package/dist/mapa.js +264 -0
- package/dist/modal.cjs +1 -0
- package/dist/modal.d.ts +8 -0
- package/dist/modal.js +8 -0
- package/dist/register.cjs +1 -0
- package/dist/register.d.ts +7 -0
- package/dist/register.js +21 -0
- package/dist/seletor-mapa-base.cjs +53 -0
- package/dist/seletor-mapa-base.d.ts +8 -0
- package/dist/seletor-mapa-base.js +275 -0
- package/dist/ssr-safe-5cWfJP-s.js +10 -0
- package/dist/ssr-safe-CiHD1adl.cjs +1 -0
- package/dist/tabela.cjs +1 -0
- package/dist/tabela.d.ts +12 -0
- package/dist/tabela.js +56 -0
- package/dist/tools.cjs +1 -0
- package/dist/tools.d.ts +8 -0
- package/dist/tools.js +30 -0
- package/dist/ui-badge-92yelKls.js +183 -0
- package/dist/ui-badge-B95jSECC.cjs +28 -0
- package/dist/ui-botao-BShEouvi.js +124 -0
- package/dist/ui-botao-DF1yuUUD.cjs +12 -0
- package/dist/ui-campo-texto-BCh5HyCM.cjs +16 -0
- package/dist/ui-campo-texto-B_JF6POq.js +361 -0
- package/dist/ui-card-BJ8SmvVf.js +111 -0
- package/dist/ui-card-Bhm6k91e.cjs +20 -0
- package/dist/ui-kit.css +1 -0
- package/dist/ui-modal-Bi4isGYh.cjs +18 -0
- package/dist/ui-modal-DV-pw2x1.js +194 -0
- package/dist/ui-paleta-ferramentas-B6dJ0O6K.cjs +18 -0
- package/dist/ui-paleta-ferramentas-Bpp4XBVg.js +633 -0
- package/dist/ui-segmented-C8wuycjJ.js +411 -0
- package/dist/ui-segmented-NC5cBXLh.cjs +19 -0
- package/dist/ui-skeleton-B3xQyn0Z.js +396 -0
- package/dist/ui-skeleton-D42oQufF.cjs +33 -0
- package/dist/ui-switch-C6o4yZUF.cjs +53 -0
- package/dist/ui-switch-CO9MoS8x.js +826 -0
- package/dist/ui-tabela-propriedades-7yJ9g7ti.cjs +145 -0
- package/dist/ui-tabela-propriedades-D-XKNVwK.js +2078 -0
- package/dist/ui-toast-CQBqvUm3.cjs +20 -0
- package/dist/ui-toast-CwUmiqyG.js +156 -0
- package/dist/zero-js-triggers-DdESy0tk.js +205 -0
- package/dist/zero-js-triggers-QGD7FOTv.cjs +1 -0
- package/package.json +149 -0
package/dist/mapa.js
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
var v = Object.defineProperty;
|
|
2
|
+
var T = (s, n, t) => n in s ? v(s, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[n] = t;
|
|
3
|
+
var a = (s, n, t) => T(s, typeof n != "symbol" ? n + "" : n, t);
|
|
4
|
+
/* empty css */
|
|
5
|
+
import { c as _, o as h } from "./leaflet-loader-Cjcdgj5R.js";
|
|
6
|
+
import { l as x, p as y } from "./leaflet-DkaFZYc5.js";
|
|
7
|
+
import { d as u, S as d } from "./ssr-safe-5cWfJP-s.js";
|
|
8
|
+
const M = ":host{display:block;width:100%;height:400px;position:relative;border-radius:var(--border-radius-md, 8px);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 w(s) {
|
|
10
|
+
return {
|
|
11
|
+
osm: {
|
|
12
|
+
nome: "OpenStreetMap",
|
|
13
|
+
layer: () => s.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
|
|
14
|
+
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
|
15
|
+
})
|
|
16
|
+
},
|
|
17
|
+
satelite: {
|
|
18
|
+
nome: "Satélite (Esri)",
|
|
19
|
+
layer: () => s.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}", {
|
|
20
|
+
attribution: "Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"
|
|
21
|
+
})
|
|
22
|
+
},
|
|
23
|
+
topografia: {
|
|
24
|
+
nome: "Topografia",
|
|
25
|
+
layer: () => s.tileLayer("https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png", {
|
|
26
|
+
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
|
+
})
|
|
28
|
+
},
|
|
29
|
+
ruas: {
|
|
30
|
+
nome: "Ruas (Esri)",
|
|
31
|
+
layer: () => s.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}", {
|
|
32
|
+
attribution: "Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"
|
|
33
|
+
})
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
class C extends d {
|
|
38
|
+
constructor() {
|
|
39
|
+
super();
|
|
40
|
+
a(this, "mapContainer");
|
|
41
|
+
a(this, "mapInstance", null);
|
|
42
|
+
a(this, "_initTimer", null);
|
|
43
|
+
a(this, "_resizeObserver");
|
|
44
|
+
a(this, "_resizeTimer");
|
|
45
|
+
const t = this.attachShadow({ mode: "open" });
|
|
46
|
+
t.innerHTML = `
|
|
47
|
+
<style>
|
|
48
|
+
${x}
|
|
49
|
+
${M}
|
|
50
|
+
</style>
|
|
51
|
+
<div class="ui-mapa-container" id="map-container"></div>
|
|
52
|
+
<div style="display: none;"><slot></slot></div>
|
|
53
|
+
`, this.mapContainer = t.getElementById("map-container");
|
|
54
|
+
}
|
|
55
|
+
static get observedAttributes() {
|
|
56
|
+
return ["lat", "lng", "zoom"];
|
|
57
|
+
}
|
|
58
|
+
connectedCallback() {
|
|
59
|
+
this._initTimer = window.setTimeout(() => {
|
|
60
|
+
this.initMap();
|
|
61
|
+
}, 0);
|
|
62
|
+
}
|
|
63
|
+
disconnectedCallback() {
|
|
64
|
+
this._initTimer && (window.clearTimeout(this._initTimer), this._initTimer = null), this._resizeObserver && (this._resizeObserver.disconnect(), this._resizeObserver = void 0), this._resizeTimer && (window.clearTimeout(this._resizeTimer), this._resizeTimer = null), this.mapInstance && (this.mapInstance.remove(), this.mapInstance = null);
|
|
65
|
+
}
|
|
66
|
+
attributeChangedCallback(t, e, r) {
|
|
67
|
+
if (e !== r && this.mapInstance) {
|
|
68
|
+
const i = parseFloat(this.getAttribute("lat") || "-23.550520"), o = parseFloat(this.getAttribute("lng") || "-46.633308"), c = parseInt(this.getAttribute("zoom") || "13", 10);
|
|
69
|
+
!isNaN(i) && !isNaN(o) && this.mapInstance.setView([i, o], c);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async initMap() {
|
|
73
|
+
var g;
|
|
74
|
+
if (this.mapInstance) return;
|
|
75
|
+
const t = await _();
|
|
76
|
+
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
|
+
`;
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const e = w(t), r = parseFloat(this.getAttribute("lat") || "-23.550520"), i = parseFloat(this.getAttribute("lng") || "-46.633308"), o = parseInt(this.getAttribute("zoom") || "13", 10);
|
|
87
|
+
this.mapInstance = t.map(this.mapContainer).setView([r, i], o);
|
|
88
|
+
const c = this.getAttribute("camadas");
|
|
89
|
+
let p = ["osm"];
|
|
90
|
+
c && (p = c.split(",").map((l) => l.trim().toLowerCase()).filter((l) => e[l]), p.length === 0 && (p = ["osm"]));
|
|
91
|
+
const f = e[p[0]].layer();
|
|
92
|
+
if (f.addTo(this.mapInstance), p.length > 1) {
|
|
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);
|
|
100
|
+
}
|
|
101
|
+
(g = t.Icon) != null && g.Default && (t.Icon.Default.imagePath = "https://unpkg.com/leaflet@1.9.4/dist/images/"), typeof ResizeObserver < "u" && this.mapContainer && (this._resizeObserver = new ResizeObserver(() => {
|
|
102
|
+
this._resizeTimer && clearTimeout(this._resizeTimer), this._resizeTimer = setTimeout(() => {
|
|
103
|
+
this.mapInstance && this.mapInstance.invalidateSize();
|
|
104
|
+
}, 60);
|
|
105
|
+
}), this._resizeObserver.observe(this.mapContainer)), setTimeout(() => {
|
|
106
|
+
this.mapInstance && this.mapInstance.invalidateSize();
|
|
107
|
+
}, 100), this.dispatchEvent(new CustomEvent("ui-mapa-pronto", {
|
|
108
|
+
detail: { map: this.mapInstance },
|
|
109
|
+
bubbles: !0,
|
|
110
|
+
composed: !0
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
getMap() {
|
|
114
|
+
return this.mapInstance;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
u("ui-mapa", C);
|
|
118
|
+
class I extends d {
|
|
119
|
+
constructor() {
|
|
120
|
+
super(...arguments);
|
|
121
|
+
a(this, "marker", null);
|
|
122
|
+
a(this, "_initTimer", null);
|
|
123
|
+
a(this, "_retryCount", 0);
|
|
124
|
+
a(this, "_parentMap", null);
|
|
125
|
+
a(this, "handleMapReady", () => {
|
|
126
|
+
this.marker && (this.marker.remove(), this.marker = null), this.initMarker();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
static get observedAttributes() {
|
|
130
|
+
return ["lat", "lng", "titulo", "cor", "formato"];
|
|
131
|
+
}
|
|
132
|
+
connectedCallback() {
|
|
133
|
+
this._parentMap = this.closest("ui-mapa"), this._parentMap && this._parentMap.addEventListener("ui-mapa-pronto", this.handleMapReady), this._initTimer = setTimeout(() => this.initMarker(), 0);
|
|
134
|
+
}
|
|
135
|
+
disconnectedCallback() {
|
|
136
|
+
this._initTimer && (clearTimeout(this._initTimer), this._initTimer = null), this._parentMap && (this._parentMap.removeEventListener("ui-mapa-pronto", this.handleMapReady), this._parentMap = null), this.marker && (this.marker.remove(), this.marker = null);
|
|
137
|
+
}
|
|
138
|
+
attributeChangedCallback(t, e, r) {
|
|
139
|
+
if (e !== r && this.marker) {
|
|
140
|
+
if (t === "lat" || t === "lng") {
|
|
141
|
+
const i = y(this.getAttribute("lat"), this.getAttribute("lng"));
|
|
142
|
+
i && this.marker.setLatLng([i.lat, i.lon]);
|
|
143
|
+
}
|
|
144
|
+
if (t === "titulo" && (this.marker.unbindPopup(), r && this.marker.bindPopup(this.createPopupContent(r))), t === "cor" || t === "formato") {
|
|
145
|
+
const i = h() || window.L;
|
|
146
|
+
i && this.marker.setIcon(this.createIcon(i));
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
createPopupContent(t) {
|
|
151
|
+
const e = document.createElement("div");
|
|
152
|
+
return e.className = "ui-mapa-popup", e.textContent = t, e;
|
|
153
|
+
}
|
|
154
|
+
createIcon(t) {
|
|
155
|
+
const e = this.getAttribute("cor") || "#00f5a0";
|
|
156
|
+
if ((this.getAttribute("formato") || "pin") === "circle") {
|
|
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
|
+
});
|
|
178
|
+
}
|
|
179
|
+
initMarker() {
|
|
180
|
+
const t = this._parentMap || this.closest("ui-mapa");
|
|
181
|
+
if (!t) {
|
|
182
|
+
console.warn("<ui-mapa-marcador> deve estar dentro de um elemento <ui-mapa>");
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const e = t.getMap();
|
|
186
|
+
if (!e) {
|
|
187
|
+
if (this._retryCount >= 30) {
|
|
188
|
+
console.warn("<ui-mapa-marcador> Tempo limite esgotado aguardando inicialização do mapa pai.");
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
this._retryCount++, this._initTimer = setTimeout(() => this.initMarker(), 50);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
this._retryCount = 0;
|
|
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)));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
u("ui-mapa-marcador", I);
|
|
204
|
+
class A extends d {
|
|
205
|
+
constructor() {
|
|
206
|
+
super(...arguments);
|
|
207
|
+
a(this, "polyline", null);
|
|
208
|
+
a(this, "_initTimer", null);
|
|
209
|
+
a(this, "_retryCount", 0);
|
|
210
|
+
}
|
|
211
|
+
static get observedAttributes() {
|
|
212
|
+
return ["pontos", "cor", "espessura"];
|
|
213
|
+
}
|
|
214
|
+
connectedCallback() {
|
|
215
|
+
this._initTimer = setTimeout(() => this.initLinha(), 0);
|
|
216
|
+
}
|
|
217
|
+
disconnectedCallback() {
|
|
218
|
+
this._initTimer && (clearTimeout(this._initTimer), this._initTimer = null), this.polyline && (this.polyline.remove(), this.polyline = null);
|
|
219
|
+
}
|
|
220
|
+
attributeChangedCallback(t, e, r) {
|
|
221
|
+
e !== r && this.polyline && (t === "pontos" ? this.polyline.setLatLngs(this.getPontos()) : (t === "cor" || t === "espessura") && this.polyline.setStyle({
|
|
222
|
+
color: this.getAttribute("cor") || "#3388ff",
|
|
223
|
+
weight: parseInt(this.getAttribute("espessura") || "3", 10)
|
|
224
|
+
}));
|
|
225
|
+
}
|
|
226
|
+
getPontos() {
|
|
227
|
+
try {
|
|
228
|
+
const t = this.getAttribute("pontos");
|
|
229
|
+
if (t)
|
|
230
|
+
return JSON.parse(t);
|
|
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 [];
|
|
235
|
+
}
|
|
236
|
+
initLinha() {
|
|
237
|
+
const t = this.closest("ui-mapa");
|
|
238
|
+
if (!t) {
|
|
239
|
+
console.warn("<ui-mapa-linha> deve estar dentro de um elemento <ui-mapa>");
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const e = t.getMap();
|
|
243
|
+
if (!e) {
|
|
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));
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
u("ui-mapa-linha", A);
|
|
260
|
+
export {
|
|
261
|
+
C as UIMapa,
|
|
262
|
+
A as UIMapaLinha,
|
|
263
|
+
I as UIMapaMarcador
|
|
264
|
+
};
|
package/dist/modal.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-modal-Bi4isGYh.cjs");exports.UIDialog=o.UIDialog;exports.UIModal=o.UIModal;exports.aplicarInertForaDoModal=o.aplicarInertForaDoModal;exports.removerInertForaDoModal=o.removerInertForaDoModal;
|
package/dist/modal.d.ts
ADDED
package/dist/modal.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./ssr-safe-CiHD1adl.cjs"),e=require("./zero-js-triggers-QGD7FOTv.cjs");require("./ui-botao-DF1yuUUD.cjs");require("./ui-switch-C6o4yZUF.cjs");require("./ui-segmented-NC5cBXLh.cjs");require("./ui-campo-texto-BCh5HyCM.cjs");require("./ui-paleta-ferramentas-B6dJ0O6K.cjs");require("./ui-badge-B95jSECC.cjs");require("./ui-card-Bhm6k91e.cjs");require("./ui-modal-Bi4isGYh.cjs");require("./ui-skeleton-D42oQufF.cjs");require("./ui-toast-CQBqvUm3.cjs");require("./ui-tabela-propriedades-7yJ9g7ti.cjs");function i(){r.isBrowser&&e.initZeroJSTriggers()}r.isBrowser&&e.initZeroJSTriggers();exports.isBrowser=r.isBrowser;exports.registrarTodosComponentes=i;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { isBrowser } from './core/ssr-safe';
|
|
2
|
+
export { isBrowser };
|
|
3
|
+
/**
|
|
4
|
+
* Registra manualmente todos os componentes do kit caso ainda não estejam registrados.
|
|
5
|
+
* Seguro para chamar múltiplas vezes ou no ciclo de montagem de frameworks client-side (Next.js 'use client', Vue onMounted, etc.).
|
|
6
|
+
*/
|
|
7
|
+
export declare function registrarTodosComponentes(): void;
|
package/dist/register.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { i as r } from "./ssr-safe-5cWfJP-s.js";
|
|
2
|
+
import { i } from "./zero-js-triggers-DdESy0tk.js";
|
|
3
|
+
import "./ui-botao-BShEouvi.js";
|
|
4
|
+
import "./ui-switch-CO9MoS8x.js";
|
|
5
|
+
import "./ui-segmented-C8wuycjJ.js";
|
|
6
|
+
import "./ui-campo-texto-B_JF6POq.js";
|
|
7
|
+
import "./ui-paleta-ferramentas-Bpp4XBVg.js";
|
|
8
|
+
import "./ui-badge-92yelKls.js";
|
|
9
|
+
import "./ui-card-BJ8SmvVf.js";
|
|
10
|
+
import "./ui-modal-DV-pw2x1.js";
|
|
11
|
+
import "./ui-skeleton-B3xQyn0Z.js";
|
|
12
|
+
import "./ui-toast-CwUmiqyG.js";
|
|
13
|
+
import "./ui-tabela-propriedades-D-XKNVwK.js";
|
|
14
|
+
function d() {
|
|
15
|
+
r && i();
|
|
16
|
+
}
|
|
17
|
+
r && i();
|
|
18
|
+
export {
|
|
19
|
+
r as isBrowser,
|
|
20
|
+
d as registrarTodosComponentes
|
|
21
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var h=(o,p,e)=>p in o?d(o,p,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[p]=e;var r=(o,p,e)=>h(o,typeof p!="symbol"?p+"":p,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const n=require("./ssr-safe-CiHD1adl.cjs"),f=require("./listener-bag-D5omxZ9h.cjs"),g=':host{display:inline-block;font-family:var(--ui-fonte-principal, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);color:var(--ui-cor-texto, #f1f1f5);box-sizing:border-box;-webkit-user-select:none;user-select:none}:host *,:host *:before,:host *:after{box-sizing:border-box}:host([posicao="bottom-right"]){position:absolute;bottom:16px;right:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="bottom-left"]){position:absolute;bottom:16px;left:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="top-right"]){position:absolute;top:16px;right:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="top-left"]){position:absolute;top:16px;left:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="inline"]){position:relative;display:inline-flex}.ui-basemap-wrapper{position:relative;display:inline-flex;align-items:center}.ui-basemap-trigger{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 6px;background:var(--ui-cor-fundo-elevado, rgba(18, 18, 24, .88));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:9999px;color:var(--ui-cor-texto, #f1f1f5);cursor:pointer;outline:none;font-size:11.5px;font-weight:500;letter-spacing:.2px;box-shadow:0 4px 14px #00000059,0 1px 3px #0003;transition:all .18s cubic-bezier(.16,1,.3,1)}.ui-basemap-trigger:hover{background:var(--ui-cor-fundo-hover, rgba(28, 28, 36, .95));border-color:var(--ui-cor-primaria, #00E08A);transform:translateY(-1px);box-shadow:0 6px 20px #00000073,0 0 12px #00e08a33}.ui-basemap-trigger:focus-visible{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px #00e08a59}.ui-basemap-trigger.active{border-color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-fundo-ativo, rgba(22, 26, 32, .95));box-shadow:0 4px 16px #0006,0 0 10px #00e08a40}:host([compacto]) .ui-basemap-trigger,.ui-basemap-trigger.compacto{width:36px;height:36px;padding:0;justify-content:center;border-radius:50%}:host([compacto]) .ui-basemap-label,:host([compacto]) .ui-basemap-chevron,.ui-basemap-trigger.compacto .ui-basemap-label,.ui-basemap-trigger.compacto .ui-basemap-chevron{display:none!important}.ui-basemap-thumb-mini{width:22px;height:22px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1.5px solid var(--ui-cor-borda, rgba(255, 255, 255, .2));box-shadow:0 1px 3px #0006}.ui-basemap-thumb-mini.fallback{display:flex;align-items:center;justify-content:center;background:#ffffff14;color:var(--ui-cor-primaria, #00E08A)}.ui-basemap-thumb-mini.fallback svg{width:13px;height:13px}.ui-basemap-label{white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.ui-basemap-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-secundario, #888899);transition:transform .2s cubic-bezier(.16,1,.3,1);margin-left:2px}.ui-basemap-chevron svg{width:12px;height:12px}.ui-basemap-trigger.active .ui-basemap-chevron{transform:rotate(180deg);color:var(--ui-cor-primaria, #00E08A)}.ui-basemap-popover{position:absolute;min-width:210px;max-width:250px;background:var(--ui-cor-fundo-elevado, rgba(16, 16, 22, .95));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:12px;padding:6px;box-shadow:0 12px 32px #0009,0 2px 8px #0000004d;z-index:var(--ui-z-popover, 1050);display:flex;flex-direction:column;gap:3px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px) scale(.97);transition:opacity .18s cubic-bezier(.16,1,.3,1),transform .18s cubic-bezier(.16,1,.3,1),visibility .18s}.ui-basemap-wrapper.pos-bottom-right .ui-basemap-popover,.ui-basemap-wrapper.pos-bottom-left .ui-basemap-popover,.ui-basemap-wrapper.pos-bottom .ui-basemap-popover{bottom:calc(100% + 8px);transform:translateY(8px) scale(.97)}.ui-basemap-wrapper.pos-bottom-right .ui-basemap-popover{right:0}.ui-basemap-wrapper.pos-bottom-left .ui-basemap-popover{left:0}.ui-basemap-wrapper.pos-top-right .ui-basemap-popover,.ui-basemap-wrapper.pos-top-left .ui-basemap-popover,.ui-basemap-wrapper.pos-top .ui-basemap-popover{top:calc(100% + 8px);transform:translateY(-8px) scale(.97)}.ui-basemap-wrapper.pos-top-right .ui-basemap-popover{right:0}.ui-basemap-wrapper.pos-top-left .ui-basemap-popover{left:0}.ui-basemap-popover.aberto{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.ui-basemap-popover-header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 6px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:2px}.ui-basemap-popover-titulo{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-popover-badge{font-size:9px;font-weight:600;padding:1px 5px;border-radius:4px;background:#00e08a1f;color:var(--ui-cor-primaria, #00E08A);font-variant-numeric:tabular-nums}.ui-basemap-list{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto;overflow-x:hidden;padding-right:2px}.ui-basemap-list::-webkit-scrollbar{width:4px}.ui-basemap-list::-webkit-scrollbar-track{background:transparent}.ui-basemap-list::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.ui-basemap-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:7px;background:transparent;border:1px solid transparent;cursor:pointer;transition:all .12s ease;outline:none}.ui-basemap-item:hover{background:#ffffff0f;border-color:#ffffff14}.ui-basemap-item:focus-visible{border-color:var(--ui-cor-primaria, #00E08A);background:#00e08a0f}.ui-basemap-item.active{background:#00e08a1f;border-color:#00e08a59}.ui-basemap-item-preview{width:32px;height:24px;border-radius:4px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,255,255,.1);box-shadow:0 1px 3px #0000004d}.ui-basemap-item-preview-none{width:32px;height:24px;border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-item-preview-none svg{width:14px;height:14px}.ui-basemap-item-info{display:flex;flex-direction:column;min-width:0;flex:1}.ui-basemap-item-nome{font-size:11px;font-weight:500;color:var(--ui-cor-texto, #f1f1f5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-basemap-item.active .ui-basemap-item-nome{color:var(--ui-cor-primaria, #00E08A);font-weight:600}.ui-basemap-item-desc{font-size:9.5px;color:var(--ui-cor-texto-secundario, #77778b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-basemap-item-check{display:flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--ui-cor-primaria, #00E08A);opacity:0;transform:scale(.6);transition:all .15s cubic-bezier(.16,1,.3,1)}.ui-basemap-item.active .ui-basemap-item-check{opacity:1;transform:scale(1)}.ui-basemap-item-check svg{width:13px;height:13px}:host-context([data-tema="claro"]),:host-context(.light),:host([data-tema="claro"]){--ui-cor-texto: #1a1a1e;--ui-cor-texto-secundario: #666677}:host-context([data-tema="claro"]) .ui-basemap-trigger,:host([data-tema="claro"]) .ui-basemap-trigger{background:#ffffffeb;border-color:#0000001f;color:#1a1a1e;box-shadow:0 4px 14px #0000001a}:host-context([data-tema="claro"]) .ui-basemap-popover,:host([data-tema="claro"]) .ui-basemap-popover{background:#fffffff7;border-color:#0000001f;box-shadow:0 12px 32px #0000002e}:host-context([data-tema="claro"]) .ui-basemap-item:hover,:host([data-tema="claro"]) .ui-basemap-item:hover{background:#0000000a}:host-context([data-tema="claro"]) .ui-basemap-item.active,:host([data-tema="claro"]) .ui-basemap-item.active{background:#00b46e1f;border-color:#00b46e59}',b=[{id:"none",nome:"Sem Mapa",descricao:"Tela CAD neutra com grade quadriculada"},{id:"google_satelite_puro",nome:"Google Puro",descricao:"Satélite limpo sem ruas ou rótulos",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"google_satelite",nome:"Google Híbrido",descricao:"Satélite com nomes de ruas e divisas",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"satelite",nome:"Esri Satélite",descricao:"Imagens orbitais de alta resolução",thumbnailUrl:"https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=160&auto=format&fit=crop&q=80"},{id:"osm",nome:"OpenStreetMap",descricao:"Mapa viário e urbano colaborativo",thumbnailUrl:"https://images.unsplash.com/photo-1569336415962-a4bd9f69cd83?w=160&auto=format&fit=crop&q=80"},{id:"topografia",nome:"Topografia",descricao:"Curvas de nível e relevo sombreado",thumbnailUrl:"https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=160&auto=format&fit=crop&q=80"},{id:"dark",nome:"Dark Canvas",descricao:"Mapa escuro de alto contraste para CAD",thumbnailUrl:"https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"}],x=`
|
|
2
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
3
|
+
<circle cx="12" cy="12" r="10"></circle>
|
|
4
|
+
<line x1="2" y1="12" x2="22" y2="12"></line>
|
|
5
|
+
<path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path>
|
|
6
|
+
</svg>
|
|
7
|
+
`,v=`
|
|
8
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
|
|
9
|
+
<polyline points="6 9 12 15 18 9"></polyline>
|
|
10
|
+
</svg>
|
|
11
|
+
`,w=`
|
|
12
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
|
|
13
|
+
<polyline points="20 6 9 17 4 12"></polyline>
|
|
14
|
+
</svg>
|
|
15
|
+
`,u=`
|
|
16
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
17
|
+
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
|
|
18
|
+
<line x1="3" y1="9" x2="21" y2="9"></line>
|
|
19
|
+
<line x1="3" y1="15" x2="21" y2="15"></line>
|
|
20
|
+
<line x1="9" y1="3" x2="9" y2="21"></line>
|
|
21
|
+
<line x1="15" y1="3" x2="15" y2="21"></line>
|
|
22
|
+
</svg>
|
|
23
|
+
`;class c extends n.SafeHTMLElement{constructor(){super();r(this,"shadow");r(this,"listeners",new f.ListenerBag);r(this,"_mapasBase",[...b]);r(this,"wrapperEl");r(this,"triggerBtn");r(this,"popoverEl");r(this,"listEl");r(this,"thumbEl");r(this,"labelEl");this.shadow=this.attachShadow({mode:"open"}),this.shadow.innerHTML=`
|
|
24
|
+
<style>${g}</style>
|
|
25
|
+
<div class="ui-basemap-wrapper" id="basemap-wrapper">
|
|
26
|
+
<button class="ui-basemap-trigger" id="basemap-trigger" type="button" aria-haspopup="listbox" aria-expanded="false" title="Alternar Mapa Base">
|
|
27
|
+
<span class="ui-basemap-thumb-container" id="thumb-container"></span>
|
|
28
|
+
<span class="ui-basemap-label" id="basemap-label">Esri Satélite</span>
|
|
29
|
+
<span class="ui-basemap-chevron">${v}</span>
|
|
30
|
+
</button>
|
|
31
|
+
|
|
32
|
+
<div class="ui-basemap-popover" id="basemap-popover" role="listbox" aria-label="Selecione o Mapa Base">
|
|
33
|
+
<div class="ui-basemap-popover-header">
|
|
34
|
+
<span class="ui-basemap-popover-titulo">Mapa Base</span>
|
|
35
|
+
<span class="ui-basemap-popover-badge" id="popover-count">7 opções</span>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="ui-basemap-list" id="basemap-list"></div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
`,this.wrapperEl=this.shadow.getElementById("basemap-wrapper"),this.triggerBtn=this.shadow.getElementById("basemap-trigger"),this.popoverEl=this.shadow.getElementById("basemap-popover"),this.listEl=this.shadow.getElementById("basemap-list"),this.thumbEl=this.shadow.getElementById("thumb-container"),this.labelEl=this.shadow.getElementById("basemap-label")}static get observedAttributes(){return["mapa-base-ativo","valor","posicao","aberto","compacto","desabilitado"]}connectedCallback(){this.atualizarPosicaoClasses(),this.renderizarOpcoes(),this.atualizarGatilho(),this.conectarEventos()}disconnectedCallback(){this.listeners.cleanup()}attributeChangedCallback(e,t,a){if(t!==a)if(e==="mapa-base-ativo"||e==="valor")this.atualizarSelecaoVisual(),this.atualizarGatilho();else if(e==="posicao")this.atualizarPosicaoClasses();else if(e==="aberto"){const i=a!==null&&a!=="false";this.aplicarEstadoAberto(i)}else e==="compacto"&&this.triggerBtn.classList.toggle("compacto",a!==null&&a!=="false")}get mapaBaseAtivo(){return this.getAttribute("mapa-base-ativo")||this.getAttribute("valor")||"satelite"}set mapaBaseAtivo(e){this.setAttribute("mapa-base-ativo",e),this.setAttribute("valor",e)}get valor(){return this.mapaBaseAtivo}set valor(e){this.mapaBaseAtivo=e}get posicao(){return this.getAttribute("posicao")||"inline"}set posicao(e){this.setAttribute("posicao",e)}get aberto(){return this.hasAttribute("aberto")&&this.getAttribute("aberto")!=="false"}set aberto(e){e?this.setAttribute("aberto",""):this.removeAttribute("aberto")}get compacto(){return this.hasAttribute("compacto")&&this.getAttribute("compacto")!=="false"}set compacto(e){e?this.setAttribute("compacto",""):this.removeAttribute("compacto")}get mapasBase(){return this._mapasBase}definirMapasBase(e){Array.isArray(e)&&(this._mapasBase=[...e],this.renderizarOpcoes(),this.atualizarGatilho())}abrir(){this.aberto=!0}fechar(){this.aberto=!1}alternar(){this.aberto=!this.aberto}selecionar(e){if(!e||this.mapaBaseAtivo===e){this.fechar();return}this.mapaBaseAtivo=e;const t=this._mapasBase.find(i=>i.id===e),a={mapaBaseId:e,item:t};this.dispatchEvent(new CustomEvent("ui-mapa-base-alterado",{detail:a,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0})),this.fechar()}atualizarPosicaoClasses(){const e=this.posicao;this.wrapperEl.className=`ui-basemap-wrapper pos-${e}`}aplicarEstadoAberto(e){this.popoverEl.classList.toggle("aberto",e),this.triggerBtn.classList.toggle("active",e),this.triggerBtn.setAttribute("aria-expanded",String(e))}atualizarGatilho(){const e=this.mapaBaseAtivo,t=this._mapasBase.find(a=>a.id===e)||this._mapasBase[0];t?(this.labelEl.textContent=t.nome,this.triggerBtn.title=`Mapa Base: ${t.nome} (${t.descricao||""})`,t.thumbnailUrl?this.thumbEl.innerHTML=`<img class="ui-basemap-thumb-mini" src="${l(t.thumbnailUrl)}" alt="${l(t.nome)}" />`:this.thumbEl.innerHTML=`<span class="ui-basemap-thumb-mini fallback">${u}</span>`):(this.labelEl.textContent="Mapa Base",this.thumbEl.innerHTML=`<span class="ui-basemap-thumb-mini fallback">${x}</span>`)}renderizarOpcoes(){const e=this.shadow.getElementById("popover-count");e&&(e.textContent=`${this._mapasBase.length} opções`);const t=this.mapaBaseAtivo;this.listEl.innerHTML=this._mapasBase.map(a=>{const i=a.id===t,s=a.thumbnailUrl?`<img class="ui-basemap-item-preview" src="${l(a.thumbnailUrl)}" alt="${l(a.nome)}" loading="lazy" />`:`<div class="ui-basemap-item-preview-none">${u}</div>`;return`
|
|
41
|
+
<div class="ui-basemap-item ${i?"active":""}"
|
|
42
|
+
data-id="${l(a.id)}"
|
|
43
|
+
role="option"
|
|
44
|
+
aria-selected="${i}"
|
|
45
|
+
tabindex="0">
|
|
46
|
+
${s}
|
|
47
|
+
<div class="ui-basemap-item-info">
|
|
48
|
+
<span class="ui-basemap-item-nome">${l(a.nome)}</span>
|
|
49
|
+
${a.descricao?`<span class="ui-basemap-item-desc">${l(a.descricao)}</span>`:""}
|
|
50
|
+
</div>
|
|
51
|
+
<span class="ui-basemap-item-check">${w}</span>
|
|
52
|
+
</div>
|
|
53
|
+
`}).join("")}atualizarSelecaoVisual(){const e=this.mapaBaseAtivo;this.listEl.querySelectorAll(".ui-basemap-item").forEach(a=>{const s=a.getAttribute("data-id")===e;a.classList.toggle("active",s),a.setAttribute("aria-selected",String(s))})}conectarEventos(){this.listeners.add(this.triggerBtn,"click",a=>{a.stopPropagation(),this.alternar()}),this.listeners.add(this.listEl,"click",a=>{const i=a.target.closest(".ui-basemap-item");if(!i)return;const s=i.getAttribute("data-id");s&&this.selecionar(s)}),this.listeners.add(this.listEl,"keydown",a=>{if(a.key==="Enter"||a.key===" "){const i=a.target.closest(".ui-basemap-item");if(i){a.preventDefault();const s=i.getAttribute("data-id");s&&this.selecionar(s)}}});const e=a=>{if(!this.aberto)return;a.composedPath().includes(this)||this.fechar()};this.listeners.add(document,"click",e);const t=a=>{a.key==="Escape"&&this.aberto&&(this.fechar(),this.triggerBtn.focus())};this.listeners.add(document,"keydown",t)}}function l(o){return o?String(o).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"):""}class m extends c{}n.definirCustomElement("ui-seletor-mapa-base",c);n.definirCustomElement("ui-mapa-base",m);exports.MAPAS_BASE_PADRAO=b;exports.UIMapaBase=m;exports.UISeletorMapaBase=c;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { UISeletorMapaBase } from './components/ui-seletor-mapa-base';
|
|
2
|
+
export * from './components/ui-seletor-mapa-base';
|
|
3
|
+
declare global {
|
|
4
|
+
interface HTMLElementTagNameMap {
|
|
5
|
+
'ui-seletor-mapa-base': UISeletorMapaBase;
|
|
6
|
+
'ui-mapa-base': UISeletorMapaBase;
|
|
7
|
+
}
|
|
8
|
+
}
|