@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
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";var ke=Object.defineProperty;var ze=(t,o,e)=>o in t?ke(t,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[o]=e;var f=(t,o,e)=>ze(t,typeof o!="symbol"?o+"":o,e);const w=require("./listener-bag-D5omxZ9h.cjs"),E=require("./ssr-safe-CiHD1adl.cjs");class D{constructor(o){f(this,"autoFetchController",null);this.ctx=o}async carregar(o){if(!o)return;this.autoFetchController&&(this.autoFetchController.abort(),this.autoFetchController=null);const e=new AbortController;this.autoFetchController=e,this.ctx.onCarregandoAlterado(!0),this.ctx.host.dispatchEvent(new CustomEvent("ui-fetch-start",{bubbles:!0,composed:!0,detail:{url:o}}));try{const r=await fetch(o,{signal:e.signal});if(!r.ok)throw new Error(`HTTP ${r.status}: ${r.statusText}`);const i=await r.json(),a=Array.isArray(i)?i:i.dados||i.items||i.data||i.rows||[];this.autoFetchController===e&&(this.ctx.onDadosRecebidos(a),this.ctx.onCarregandoAlterado(!1),this.autoFetchController=null,this.ctx.host.dispatchEvent(new CustomEvent("ui-fetch-sucesso",{bubbles:!0,composed:!0,detail:{url:o,total:a.length,dados:a}})))}catch(r){if(r.name==="AbortError")return;this.autoFetchController===e&&(this.ctx.onCarregandoAlterado(!1),this.autoFetchController=null,console.error("[ui-tabela] Erro ao carregar dados remotos:",r),this.ctx.host.dispatchEvent(new CustomEvent("ui-fetch-erro",{bubbles:!0,composed:!0,detail:{url:o,erro:r.message||String(r)}})))}}abortar(){this.autoFetchController&&(this.autoFetchController.abort(),this.autoFetchController=null)}}function R(t,o,e="id"){if(!t||t.length===0)return-1;if(typeof o=="function")return t.findIndex(o);const r=t.findIndex(i=>!i||typeof i!="object"?!1:i[e]!==void 0&&(i[e]===o||String(i[e])===String(o))||i.id!==void 0&&(i.id===o||String(i.id)===String(o))||i._id!==void 0&&(i._id===o||String(i._id)===String(o))||i.codigo!==void 0&&(i.codigo===o||String(i.codigo)===String(o))||i.key!==void 0&&(i.key===o||String(i.key)===String(o)));if(r!==-1)return r;if(typeof o=="number"&&Number.isInteger(o)){if(o>=0&&o<t.length)return o}else if(typeof o=="string"&&/^\d+$/.test(o.trim())){const i=parseInt(o.trim(),10);if(i>=0&&i<t.length)return i}return-1}class C{constructor(o){f(this,"itemSelecionado",null);f(this,"indiceSelecionado",null);this.ctx=o}getItemSelecionado(){return this.itemSelecionado}setItemSelecionado(o){this.itemSelecionado=o,this.indiceSelecionado=o?this.ctx.dadosExibicao.indexOf(o):null,this.atualizarLinhasSelecionadas()}getIndiceSelecionado(){return this.indiceSelecionado}setIndiceSelecionado(o){this.indiceSelecionado=o,this.itemSelecionado=o!==null&&o>=0&&o<this.ctx.dadosExibicao.length?this.ctx.dadosExibicao[o]:null,this.atualizarLinhasSelecionadas()}limparSelecao(){this.itemSelecionado=null,this.indiceSelecionado=null,this.atualizarLinhasSelecionadas()}isItemSelecionado(o,e){if(this.itemSelecionado){if(this.itemSelecionado===o)return!0;const r=this.ctx.chaveId;if(o[r]!==void 0&&this.itemSelecionado[r]!==void 0)return String(o[r])===String(this.itemSelecionado[r]);if(o.id!==void 0&&this.itemSelecionado.id!==void 0)return String(o.id)===String(this.itemSelecionado.id)}return this.indiceSelecionado!==null&&this.indiceSelecionado===e}atualizarLinhasSelecionadas(){if(!this.ctx.tbodyElement)return;this.ctx.tbodyElement.querySelectorAll("tr:not(.ui-tabela__virtual-spacer)").forEach(e=>{const r=e.getAttribute("data-index"),i=r!==null?parseInt(r,10):-1,a=i>=0?this.ctx.dadosExibicao[i]:null,c=a?this.isItemSelecionado(a,i):!1;e.classList.toggle("ui-tabela__tr--selecionada",c),c?e.setAttribute("data-selecionada","true"):e.removeAttribute("data-selecionada")})}rolarPara(o,e){var l,u,d;const r=R(this.ctx.dadosExibicao,o,this.ctx.chaveId);if(r===-1)return!1;const i=this.ctx.dadosExibicao[r],a=(e==null?void 0:e.comportamento)||"smooth";e!=null&&e.selecionar&&(this.itemSelecionado=i,this.indiceSelecionado=r,this.atualizarLinhasSelecionadas(),this.ctx.host.dispatchEvent(new CustomEvent("ui-linha-selecionada",{bubbles:!0,composed:!0,detail:{item:i,indice:r}})));const c=this.ctx.getRowHeight(),n=(l=this.ctx.tbodyElement)==null?void 0:l.querySelector(`tr[data-index="${r}"]`);if(n&&!n.classList.contains("ui-tabela__virtual-spacer"))return this.ctx.containerElement&&(typeof window.happyDOM<"u"||typeof process<"u"&&((u=process.env)==null?void 0:u.NODE_ENV)==="test")&&(this.ctx.containerElement.scrollTop=r*c),typeof n.scrollIntoView=="function"&&n.scrollIntoView({behavior:a,block:"nearest"}),!0;if(this.ctx.containerElement){const s=Math.max(0,r*c);if(typeof this.ctx.containerElement.scrollTo=="function")try{this.ctx.containerElement.scrollTo({top:s,behavior:a})}catch{this.ctx.containerElement.scrollTop=s}else this.ctx.containerElement.scrollTop=s;return(a==="auto"||typeof window.happyDOM<"u"||typeof process<"u"&&((d=process.env)==null?void 0:d.NODE_ENV)==="test")&&(this.ctx.containerElement.scrollTop=s,this.ctx.onRenderBody()),!0}return!1}}function I(t,o,e){return t!==e?{idColuna:e,direcao:"asc"}:o==="asc"?{idColuna:e,direcao:"desc"}:o==="desc"?{idColuna:null,direcao:"original"}:{idColuna:e,direcao:"asc"}}function P(t,o,e){if(!o||e==="original")return[...t];const r=e==="asc"?1:-1;return[...t].sort((i,a)=>{const c=i[o],n=a[o];return c===n?0:c==null?1*r:n==null?-1*r:typeof c=="number"&&typeof n=="number"?(c-n)*r:String(c).localeCompare(String(n),"pt-BR",{numeric:!0,sensitivity:"base"})*r})}class H{constructor(){f(this,"dadosOriginais",[]);f(this,"dadosExibicao",[]);f(this,"colunaOrdenada",null);f(this,"direcaoOrdenacao","original");f(this,"ultimoFiltro","")}getDadosOriginais(){return this.dadosOriginais}setDadosOriginais(o){this.dadosOriginais=Array.isArray(o)?[...o]:[],this.aplicarOrdenacao()}getDadosExibicao(){return this.dadosExibicao}getColunaOrdenada(){return this.colunaOrdenada}setColunaOrdenada(o){this.colunaOrdenada=o,o?this.direcaoOrdenacao==="original"&&(this.direcaoOrdenacao="asc"):this.direcaoOrdenacao="original",this.aplicarOrdenacao()}getDirecaoOrdenacao(){return this.direcaoOrdenacao}setDirecaoOrdenacao(o){this.direcaoOrdenacao=o||"original",this.direcaoOrdenacao==="original"&&(this.colunaOrdenada=null),this.aplicarOrdenacao()}alternarOrdenacaoColuna(o){if(!o.ordenavel)return null;const e=I(this.colunaOrdenada,this.direcaoOrdenacao,o.id);return this.colunaOrdenada=e.idColuna,this.direcaoOrdenacao=e.direcao,this.aplicarOrdenacao(),e}aplicarOrdenacao(){this.dadosExibicao=P(this.dadosOriginais,this.colunaOrdenada,this.direcaoOrdenacao)}filtrar(o){if(this.ultimoFiltro=(o||"").trim().toLowerCase(),!this.ultimoFiltro){this.aplicarOrdenacao();return}this.dadosExibicao=this.dadosOriginais.filter(e=>Object.values(e).some(r=>r==null?!1:String(r).toLowerCase().includes(this.ultimoFiltro)))}}const Ae=':host{display:block;width:100%;box-sizing:border-box;font-family:inherit;color:var(--ui-cor-texto, #e1e1e6);position:relative}.ui-tabela-container{width:100%;max-width:100%;max-height:var(--ui-tabela-max-height, 500px);overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 6px);background-color:var(--ui-cor-superficie, #141417);box-sizing:border-box;position:relative}.ui-tabela{width:100%;border-collapse:separate;border-spacing:0;text-align:left;font-size:14px}.ui-tabela thead{position:sticky;top:0;z-index:10;background-color:var(--ui-cor-fundo-elevado, #1a1a1e)}.ui-tabela th{position:sticky;top:0;z-index:10;padding:10px 16px;background-color:var(--ui-cor-fundo-elevado, #1a1a1e);color:var(--ui-cor-texto, #e1e1e6);font-weight:600;border-bottom:2px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box}.ui-tabela__resizer{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:20;transition:background-color .15s ease}.ui-tabela__resizer:hover,.ui-tabela__resizer--ativo{background-color:var(--ui-cor-primaria, #00E08A)}:host([densidade="compacta"]) th,:host([densidade="compacta"]) td,:host([density="compact"]) th,:host([density="compact"]) td{padding:4px 8px}:host([densidade="normal"]) th,:host([densidade="normal"]) td,:host([density="normal"]) th,:host([density="normal"]) td{padding:10px 16px}:host([densidade="relaxada"]) th,:host([densidade="relaxada"]) td,:host([density="relaxed"]) th,:host([density="relaxed"]) td{padding:16px 20px}.ui-tabela__header-content{display:inline-flex;align-items:center;vertical-align:middle;width:100%;box-sizing:border-box}.ui-tabela__header-text{margin-right:90px;display:inline-flex;align-items:center}.ui-tabela__sort-icon,.ui-tabela__header-icon{width:70px;min-width:70px;max-width:70px;display:inline-flex;justify-content:center;align-items:center;transition:transform .2s ease,opacity .2s ease}.ui-tabela th.ui-tabela__th--ordenavel{cursor:pointer}.ui-tabela th.ui-tabela__th--ordenavel:hover{background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08))}.ui-tabela__sort-arrow{display:inline-block;width:12px;height:12px;vertical-align:middle;shape-rendering:geometricPrecision;transition:transform .2s ease,fill .2s ease;fill:var(--ui-cor-primaria, #00E08A)}.ui-tabela__sort-arrow--desc{transform:rotate(180deg)}.ui-tabela__sort-arrow--inativo{opacity:.3;fill:var(--ui-cor-texto-secundario, #888899)}.ui-tabela td{padding:10px 16px;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .06));white-space:nowrap;vertical-align:middle;color:var(--ui-cor-texto, #e1e1e6);box-sizing:border-box}.ui-tabela__cell-content{display:inline-flex;align-items:center;vertical-align:middle}.ui-tabela__cell-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ui-tabela--alinhar-esquerda{text-align:left}.ui-tabela--alinhar-esquerda .ui-tabela__header-content,.ui-tabela--alinhar-esquerda .ui-tabela__cell-content{justify-content:flex-start}.ui-tabela--alinhar-centro{text-align:center}.ui-tabela--alinhar-centro .ui-tabela__header-content,.ui-tabela--alinhar-centro .ui-tabela__cell-content{justify-content:center}.ui-tabela--alinhar-direita{text-align:right}.ui-tabela--alinhar-direita .ui-tabela__header-content,.ui-tabela--alinhar-direita .ui-tabela__cell-content{justify-content:flex-end}.ui-tabela tbody tr:nth-child(2n){background-color:var(--ui-cor-fundo-card, rgba(255, 255, 255, .02))}.ui-tabela tbody tr:hover{background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08))}.ui-tabela tbody tr.ui-tabela__tr--selecionada,.ui-tabela tbody tr[data-selecionada=true]{background-color:#00e08a24!important;box-shadow:inset 3px 0 0 var(--ui-cor-primaria, #00E08A)}.ui-tabela tbody tr.ui-tabela__tr--selecionada:hover,.ui-tabela tbody tr[data-selecionada=true]:hover{background-color:#00e08a38!important}.ui-tabela__virtual-spacer td{padding:0!important;border:none!important;height:inherit;background:transparent!important}.ui-tabela__empty{padding:48px 24px;text-align:center;border:2px dashed var(--ui-cor-borda, rgba(255, 255, 255, .2));border-radius:var(--ui-raio-borda, 6px);margin:16px;color:var(--ui-cor-texto-secundario, #888899);background-color:var(--ui-cor-fundo, #0b0b0d);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-sizing:border-box}.ui-tabela__empty-icon{width:32px;height:32px;opacity:.5;fill:currentColor}.ui-tabela__empty-text{font-size:14px;font-weight:500;color:var(--ui-cor-texto-secundario, #888899)}.ui-tabela__loading{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0b0b0db3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:50;color:var(--ui-cor-primaria, #00E08A);font-size:14px}.ui-tabela__spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--ui-cor-primaria, #00E08A);border-radius:50%;animation:ui-tabela-spin .8s linear infinite}@keyframes ui-tabela-spin{to{transform:rotate(360deg)}}.ui-tabela__context-menu{position:absolute;z-index:var(--ui-z-popover, 1050);background-color:var(--ui-cor-fundo-elevado, #1a1a1e);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .2));border-radius:var(--ui-raio-borda, 6px);box-shadow:0 4px 20px #0009;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:200px;font-size:13px;color:var(--ui-cor-texto, #e1e1e6)}.ui-tabela__context-item{padding:8px 12px;border-radius:4px;cursor:pointer;color:var(--ui-cor-texto, #e1e1e6);display:flex;align-items:center;justify-content:space-between;gap:8px;transition:background-color .15s ease}.ui-tabela__context-item:hover{background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08));color:var(--ui-cor-primaria, #00E08A)}.ui-tabela__prompt-dialog{border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .2));border-radius:var(--ui-raio-borda, 6px);background-color:var(--ui-cor-fundo-elevado, #1a1a1e);color:var(--ui-cor-texto, #e1e1e6);padding:12px;box-shadow:0 8px 32px #000c;font-family:inherit;font-size:14px}.ui-tabela__prompt-dialog::backdrop{background:#0000004d}.ui-tabela__prompt-title{margin-bottom:8px;font-weight:500}.ui-tabela__prompt-dialog input{width:100%;padding:6px 8px;border-radius:4px;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .2));background:var(--ui-cor-superficie, #141417);color:var(--ui-cor-texto, #e1e1e6);margin-bottom:12px;box-sizing:border-box}.ui-tabela__prompt-actions{display:flex;justify-content:flex-end;gap:8px}.ui-tabela__prompt-actions button{background:var(--ui-cor-borda, rgba(255, 255, 255, .12));color:var(--ui-cor-texto, #e1e1e6);border:none;padding:6px 12px;border-radius:4px;cursor:pointer}.ui-tabela__prompt-actions button:last-child{background:var(--ui-cor-primaria, #00E08A);color:#000;font-weight:600}@media (max-width: 640px){.ui-tabela th{padding:8px 10px;font-size:12px}.ui-tabela td{padding:8px 10px;font-size:13px}.ui-tabela__header-text{margin-right:16px}.ui-tabela__sort-icon,.ui-tabela__header-icon{width:24px;min-width:24px;max-width:24px}.ui-tabela__resizer{width:14px}}';function z(t){return t==null||t===""?"":typeof t=="number"?`${t}px`:t}function A(t){return t==="centro"||t==="center"?"ui-tabela--alinhar-centro":t==="direita"||t==="right"?"ui-tabela--alinhar-direita":"ui-tabela--alinhar-esquerda"}function S(t){return t==="centro"||t==="center"?"center":t==="direita"||t==="right"?"right":"left"}function O(t){return t==="compacta"?30:t==="relaxada"?56:42}function F(t,o,e,r){t.innerHTML=`<style>${Ae}</style>`;const i=document.createElement("div");i.className="ui-tabela-container",e&&(i.style.maxHeight=e);const a=document.createElement("div");a.className="ui-tabela__empty",a.style.display="none";const c=document.createElement("div");c.innerHTML=`
|
|
2
|
+
<svg class="ui-tabela__empty-icon" viewBox="0 0 24 24">
|
|
3
|
+
<path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7 10h2v7H7zm4-3h2v10h-2zm4 6h2v4h-2z"/>
|
|
4
|
+
</svg>`;const n=document.createElement("span");n.className="ui-tabela__empty-text",n.textContent=o,a.appendChild(c),a.appendChild(n);const l=document.createElement("table");l.className="ui-tabela";const u=document.createElement("colgroup"),d=document.createElement("thead"),s=document.createElement("tbody");l.appendChild(u),l.appendChild(d),l.appendChild(s),i.appendChild(a),i.appendChild(l);const p=document.createElement("div");return p.className="ui-tabela__loading",p.style.display=r?"flex":"none",p.innerHTML=`
|
|
5
|
+
<div class="ui-tabela__spinner"></div>
|
|
6
|
+
<span>Carregando dados...</span>
|
|
7
|
+
`,i.appendChild(p),t.appendChild(i),{containerElement:i,tableElement:l,theadElement:d,tbodyElement:s,colgroupElement:u,emptyElement:a,loadingElement:p}}function V(t){if(!t.theadElement||!t.colgroupElement)return;t.headerListeners.cleanup(),t.theadElement.innerHTML="",t.colgroupElement.innerHTML="";const o=document.createElement("tr");t.colunas.forEach((e,r)=>{const i=document.createElement("col");e.largura!==void 0&&(i.style.width=t.formatWidth(e.largura)),t.colgroupElement.appendChild(i);const a=document.createElement("th"),c=t.getAlignmentClass(e.alinhamento);if(a.className=c,a.style.textAlign=t.getTextAlign(e.alinhamento),e.largura!==void 0&&(a.style.width=t.formatWidth(e.largura)),e.larguraMinima!==void 0&&(a.style.minWidth=t.formatWidth(e.larguraMinima)),e.larguraMaxima!==void 0){const h=t.formatWidth(e.larguraMaxima);a.style.maxWidth=h,a.style.overflow="hidden",a.style.textOverflow="ellipsis",a.style.whiteSpace="nowrap"}if(e.tooltip&&(a.title=e.tooltip),e.ordenavel){a.classList.add("ui-tabela__th--ordenavel");const h=()=>t.onHeaderClick(e);t.headerListeners.add(a,"click",h)}const n=h=>t.onHeaderContextMenu(h,e,r,a);t.headerListeners.add(a,"contextmenu",n);const l=document.createElement("div");l.className="ui-tabela__header-content";const u=document.createElement("span");u.className="ui-tabela__header-text",u.textContent=e.rotulo,l.appendChild(u);const d=document.createElement("span");if(d.className="ui-tabela__sort-icon",e.ordenavel){const h=t.colunaOrdenada===e.id&&t.direcaoOrdenacao!=="original",b=h&&t.direcaoOrdenacao==="desc",g=h?"":"ui-tabela__sort-arrow--inativo",x=b?"ui-tabela__sort-arrow--desc":"";d.innerHTML=`
|
|
8
|
+
<svg class="ui-tabela__sort-arrow ${g} ${x}" viewBox="0 0 24 24">
|
|
9
|
+
<path d="M7 14l5-5 5 5H7z"/>
|
|
10
|
+
</svg>
|
|
11
|
+
`}l.appendChild(d),a.appendChild(l);const s=document.createElement("div");s.className="ui-tabela__resizer",s.title="Arrastar para redimensionar largura (duplo-clique para auto-ajuste)";const p=h=>t.onInitColumnResize(h,e,r,a,s);t.headerListeners.add(s,"mousedown",p);const m=h=>{h.stopPropagation(),t.onColumnAutoFit(e,a,i)};t.headerListeners.add(s,"dblclick",m),a.appendChild(s),o.appendChild(a)}),t.theadElement.appendChild(o)}function q(t){if(!t.tbodyElement||!t.tableElement||!t.emptyElement||!t.containerElement)return;if(!t.dadosExibicao||t.dadosExibicao.length===0){t.emptyElement.style.display="flex",t.tableElement.style.display="none";return}t.emptyElement.style.display="none",t.tableElement.style.display="table";const o=t.dadosExibicao.length,e=t.rowHeight,r=t.virtualizar&&o>30;let i=0,a=o;if(r){const n=t.containerElement.scrollTop,l=t.containerElement.clientHeight||400,u=5;i=Math.max(0,Math.floor(n/e)-u),a=Math.min(o,Math.ceil((n+l)/e)+u)}t.tbodyElement.innerHTML="";const c=document.createDocumentFragment();if(r&&i>0){const n=document.createElement("tr");n.className="ui-tabela__virtual-spacer",n.style.height=`${i*e}px`;const l=document.createElement("td");l.colSpan=t.colunas.length||1,n.appendChild(l),c.appendChild(n)}for(let n=i;n<a;n++){const l=t.dadosExibicao[n],u=document.createElement("tr");u.setAttribute("data-index",String(n));const d=t.chaveId;l[d]!==void 0?u.setAttribute("data-id",String(l[d])):l.id!==void 0?u.setAttribute("data-id",String(l.id)):l._id!==void 0&&u.setAttribute("data-id",String(l._id)),t.isItemSelecionado(l,n)&&(u.classList.add("ui-tabela__tr--selecionada"),u.setAttribute("data-selecionada","true")),u.addEventListener("click",s=>{const p=s.target;p&&p.closest("button, input, select, textarea, a, [data-prevent-select]")||t.onLinhaClique(l,n)}),t.colunas.forEach(s=>{const p=document.createElement("td"),m=t.getAlignmentClass(s.alinhamento);if(p.className=m,p.style.textAlign=t.getTextAlign(s.alinhamento),s.larguraMaxima!==void 0){const g=t.formatWidth(s.larguraMaxima);p.style.maxWidth=g,p.style.overflow="hidden",p.style.textOverflow="ellipsis",p.style.whiteSpace="nowrap"}const h=document.createElement("div");h.className="ui-tabela__cell-content",s.larguraMaxima!==void 0&&h.classList.add("ui-tabela__cell-truncate");const b=l[s.id];if(typeof s.render=="function"){const g=s.render(b,l,n);g instanceof Node?h.appendChild(g):h.textContent=String(g??"")}else if(b instanceof Node)h.appendChild(b);else{const g=b!=null?String(b):"";h.textContent=g,s.larguraMaxima!==void 0&&!s.tooltip&&(p.title=g)}p.appendChild(h),u.appendChild(p)}),c.appendChild(u)}if(r&&a<o){const n=document.createElement("tr");n.className="ui-tabela__virtual-spacer",n.style.height=`${(o-a)*e}px`;const l=document.createElement("td");l.colSpan=t.colunas.length||1,n.appendChild(l),c.appendChild(n)}t.tbodyElement.appendChild(c)}function j(t){const{evento:o,coluna:e,colIndex:r,thElement:i,resizer:a,colgroupElement:c,onResizeStart:n,onResizeEnd:l}=t;o.stopPropagation(),o.preventDefault(),n(),a.classList.add("ui-tabela__resizer--ativo");const u=o.pageX,d=i.offsetWidth,s=c==null?void 0:c.children[r],p=b=>{const g=b.pageX-u;let x=d+g;if(e.larguraMinima!==void 0){const v=typeof e.larguraMinima=="number"?e.larguraMinima:parseInt(e.larguraMinima,10);isNaN(v)||(x=Math.max(v,x))}else x=Math.max(60,x);if(e.larguraMaxima!==void 0){const v=typeof e.larguraMaxima=="number"?e.larguraMaxima:parseInt(e.larguraMaxima,10);isNaN(v)||(x=Math.min(v,x))}e.largura=`${x}px`,i.style.width=`${x}px`,s&&(s.style.width=`${x}px`)},m=()=>{h(),l(String(e.largura))},h=()=>{a.classList.remove("ui-tabela__resizer--ativo"),window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",m)};return window.addEventListener("mousemove",p),window.addEventListener("mouseup",m),h}function $(t){const{evento:o,coluna:e,colIndex:r,thElement:i,colgroupElement:a,shadow:c,onResizeEnd:n}=t,l=document.createElement("dialog");l.className="ui-tabela__prompt-dialog",l.style.position="fixed",l.style.left=`${o.clientX}px`,l.style.top=`${o.clientY}px`;const u=document.createElement("div");u.className="ui-tabela__prompt-title",u.textContent=`Largura para "${e.rotulo}" (px ou auto):`;const d=document.createElement("input");d.type="text";const s=e.largura?String(e.largura).replace("px",""):"auto";d.value=s;const p=document.createElement("div");p.className="ui-tabela__prompt-actions";const m=document.createElement("button");m.textContent="Aplicar";const h=document.createElement("button");h.textContent="Cancelar",p.appendChild(h),p.appendChild(m),l.appendChild(u),l.appendChild(d),l.appendChild(p),c.appendChild(l),l.showModal();const b=()=>{const x=d.value.trim().toLowerCase();if(x===""||x==="auto")e.largura=void 0,i.style.width="",a!=null&&a.children[r]&&(a.children[r].style.width="");else{const v=parseInt(x,10);!isNaN(v)&&v>20&&(e.largura=`${v}px`,i.style.width=`${v}px`,a!=null&&a.children[r]&&(a.children[r].style.width=`${v}px`))}l.close(),l.remove(),n(e.largura?String(e.largura):"auto")};m.addEventListener("click",g=>{g.stopPropagation(),b()}),h.addEventListener("click",g=>{g.stopPropagation(),l.close(),l.remove()}),d.addEventListener("keydown",g=>{g.key==="Enter"?(g.preventDefault(),b()):g.key==="Escape"&&(g.preventDefault(),l.close(),l.remove())}),setTimeout(()=>d.focus(),10)}function W(t,o,e,r,i,a){return j({evento:t,coluna:o,colIndex:e,thElement:r,resizer:i,colgroupElement:a.colgroupElement,onResizeStart:()=>a.onSetIsResizing(!0),onResizeEnd:c=>{setTimeout(()=>a.onSetIsResizing(!1),50),a.host.dispatchEvent(new CustomEvent("ui-column-resize",{detail:{idColuna:o.id,largura:c},bubbles:!0,composed:!0}))}})}function U(t,o,e,r,i){t.preventDefault(),t.stopPropagation(),$({evento:t,coluna:o,colIndex:e,thElement:r,colgroupElement:i.colgroupElement,shadow:i.shadow,onResizeEnd:a=>{i.host.dispatchEvent(new CustomEvent("ui-column-resize",{detail:{idColuna:o.id,largura:a},bubbles:!0,composed:!0}))}})}function X(t){V({theadElement:t.theadElement,colgroupElement:t.colgroupElement,colunas:t.colunas,colunaOrdenada:t.dadosController.getColunaOrdenada(),direcaoOrdenacao:t.dadosController.getDirecaoOrdenacao(),headerListeners:t.headerListeners,formatWidth:z,getAlignmentClass:A,getTextAlign:S,onHeaderClick:o=>t.onHeaderClick(o),onHeaderContextMenu:(o,e,r,i)=>{U(o,e,r,i,{host:t.host,colgroupElement:t.colgroupElement,shadow:t.shadow,onSetIsResizing:t.onSetIsResizing})},onInitColumnResize:(o,e,r,i,a)=>{const c=W(o,e,r,i,a,{host:t.host,colgroupElement:t.colgroupElement,shadow:t.shadow,onSetIsResizing:t.onSetIsResizing});t.onActiveResizeCleanup(c)},onColumnAutoFit:(o,e,r)=>{o.largura=void 0,e.style.width="",r.style.width="",t.host.dispatchEvent(new CustomEvent("ui-column-resize",{bubbles:!0,composed:!0,detail:{idColuna:o.id,largura:"auto"}}))}})}function Y(t){q({tbodyElement:t.tbodyElement,tableElement:t.tableElement,emptyElement:t.emptyElement,containerElement:t.containerElement,dadosExibicao:t.dadosController.getDadosExibicao(),colunas:t.colunas,chaveId:t.chaveId,virtualizar:t.virtualizar,rowHeight:t.rowHeight,isItemSelecionado:(o,e)=>t.selecaoController.isItemSelecionado(o,e),onLinhaClique:(o,e)=>{t.selecaoController.setItemSelecionado(o),t.host.dispatchEvent(new CustomEvent("ui-linha-clique",{bubbles:!0,composed:!0,detail:{item:o,indice:e}}))},formatWidth:z,getAlignmentClass:A,getTextAlign:S})}function G(t,o){let e=!1;const r=()=>{e||(window.requestAnimationFrame(()=>{o(),e=!1}),e=!0)};return t.addEventListener("scroll",r),r}function K(t,o,e,r){return F(t,o,e,r)}function L(t){const o=t.host.getAttribute("texto-vazio")||t.host.getAttribute("empty-text");o&&t.onTextoVazioAlterado(o);const e=t.host.getAttribute("virtualizar")||t.host.getAttribute("virtualize");e!==null&&t.onVirtualizarAlterado(e!=="false");const r=t.host.getAttribute("src");r&&t.host.isConnected&&t.onCarregarSrc(r);const i=t.host.hasAttribute("carregando")||t.host.hasAttribute("loading");t.onCarregandoAlterado(i),t.loadingElement&&(t.loadingElement.style.display=i?"flex":"none")}function Q(t,o,e){if(L(e),t==="max-height"&&e.containerElement){e.containerElement.style.maxHeight=o||"";return}if((t==="texto-vazio"||t==="empty-text")&&e.emptyElement){const r=e.emptyElement.querySelector(".ui-tabela__empty-text");r&&o&&(r.textContent=o),e.onRenderBody();return}if(t==="carregando"||t==="loading"){e.loadingElement&&(e.loadingElement.style.display=o!==null?"flex":"none");return}if(t==="densidade"||t==="density"){e.onRenderBody();return}e.onRenderTotal()}class Z extends E.SafeHTMLElement{constructor(){super();f(this,"shadow");f(this,"_colunas",[]);f(this,"_textoVazio","Nenhum registro encontrado");f(this,"_virtualizar",!0);f(this,"_isResizing",!1);f(this,"_carregando",!1);f(this,"_src",null);f(this,"_containerElement",null);f(this,"_tableElement",null);f(this,"_theadElement",null);f(this,"_tbodyElement",null);f(this,"_colgroupElement",null);f(this,"_emptyElement",null);f(this,"_loadingElement",null);f(this,"_scrollHandler",null);f(this,"_activeResizeCleanup",null);f(this,"_headerListeners",new w.ListenerBag);f(this,"remotaController");f(this,"selecaoController");f(this,"dadosController",new H);this.shadow=this.attachShadow({mode:"open"}),this.remotaController=new D({host:this,onCarregandoAlterado:e=>{this.carregando=e},onDadosRecebidos:e=>{this.dados=e}}),this.selecaoController=new C({host:this,tbodyElement:null,containerElement:null,dadosExibicao:this.dadosController.getDadosExibicao(),chaveId:this.chaveId,getRowHeight:()=>this.getRowHeight(),onRenderBody:()=>this.renderBody()})}static get observedAttributes(){return["texto-vazio","empty-text","max-height","densidade","density","virtualizar","virtualize","src","carregando","loading","chave-id","id-key"]}connectedCallback(){this.syncAttributes(),!this.hasAttribute("densidade")&&!this.hasAttribute("density")&&this.setAttribute("densidade","normal"),this.renderTotal(),this._src&&this.remotaController.carregar(this._src)}disconnectedCallback(){this.cleanupEventListeners()}attributeChangedCallback(e,r,i){Q(e,i,this.obterContextoAtributos())}syncAttributes(){L(this.obterContextoAtributos())}obterContextoAtributos(){return{host:this,containerElement:this._containerElement,emptyElement:this._emptyElement,loadingElement:this._loadingElement,onTextoVazioAlterado:e=>{this._textoVazio=e},onVirtualizarAlterado:e=>{this._virtualizar=e},onCarregarSrc:e=>{this._src=e,this.remotaController.carregar(e)},onCarregandoAlterado:e=>{this._carregando=e},onRenderBody:()=>this.renderBody(),onRenderTotal:()=>this.renderTotal()}}get src(){return this._src}set src(e){this._src=e,e?(this.setAttribute("src",e),this.remotaController.carregar(e)):this.removeAttribute("src")}get carregando(){return this._carregando}set carregando(e){this._carregando=!!e,this._carregando?this.setAttribute("carregando",""):(this.removeAttribute("carregando"),this.removeAttribute("loading")),this._loadingElement&&(this._loadingElement.style.display=this._carregando?"flex":"none")}async carregarDoEndpoint(e){await this.remotaController.carregar(e||this._src||"")}async recarregar(){this._src?await this.remotaController.carregar(this._src):(this.dadosController.aplicarOrdenacao(),this.renderBody())}filtrar(e){this.dadosController.filtrar(e),this.atualizarContextoSelecao(),this.renderBody()}cleanupEventListeners(){this._containerElement&&this._scrollHandler&&(this._containerElement.removeEventListener("scroll",this._scrollHandler),this._scrollHandler=null),this._activeResizeCleanup&&(this._activeResizeCleanup(),this._activeResizeCleanup=null),this.remotaController.abortar(),this._headerListeners.cleanup()}get colunas(){return this._colunas}set colunas(e){this._colunas=Array.isArray(e)?e:[],this.renderTotal()}get dados(){return this.dadosController.getDadosOriginais()}set dados(e){this.dadosController.setDadosOriginais(e),this.atualizarContextoSelecao(),this.renderBody()}get itens(){return this.dados}set itens(e){this.dados=e}get chaveId(){return this.getAttribute("chave-id")||this.getAttribute("id-key")||"id"}set chaveId(e){e?this.setAttribute("chave-id",e):(this.removeAttribute("chave-id"),this.removeAttribute("id-key")),this.atualizarContextoSelecao()}get itemSelecionado(){return this.selecaoController.getItemSelecionado()}set itemSelecionado(e){this.selecaoController.setItemSelecionado(e)}get indiceSelecionado(){return this.selecaoController.getIndiceSelecionado()}set indiceSelecionado(e){this.selecaoController.setIndiceSelecionado(e)}limparSelecao(){this.selecaoController.limparSelecao()}get densidade(){const e=this.getAttribute("densidade")||this.getAttribute("density");return e==="compacta"||e==="compact"?"compacta":e==="relaxada"||e==="relaxed"?"relaxada":"normal"}set densidade(e){e?this.setAttribute("densidade",e):(this.removeAttribute("densidade"),this.removeAttribute("density")),this.renderBody()}get virtualizar(){return this._virtualizar}set virtualizar(e){this._virtualizar=!!e,e?this.setAttribute("virtualizar","true"):this.removeAttribute("virtualizar"),this.renderTotal()}get colunaOrdenada(){return this.dadosController.getColunaOrdenada()}set colunaOrdenada(e){this.dadosController.setColunaOrdenada(e),this.renderHeader(),this.renderBody()}get direcaoOrdenacao(){return this.dadosController.getDirecaoOrdenacao()}set direcaoOrdenacao(e){this.dadosController.setDirecaoOrdenacao(e),this.renderHeader(),this.renderBody()}get textoVazio(){return this._textoVazio}set textoVazio(e){this._textoVazio=e||"Nenhum registro encontrado",this.renderTotal()}handleHeaderClick(e){if(!e.ordenavel||this._isResizing)return;const r=this.dadosController.alternarOrdenacaoColuna(e);r&&(this.atualizarContextoSelecao(),this.renderHeader(),this.renderBody(),this.dispatchEvent(new CustomEvent("ui-sort",{detail:r,bubbles:!0,composed:!0})))}getRowHeight(){return O(this.densidade)}atualizarContextoSelecao(){this.selecaoController=new C({host:this,tbodyElement:this._tbodyElement,containerElement:this._containerElement,dadosExibicao:this.dadosController.getDadosExibicao(),chaveId:this.chaveId,getRowHeight:()=>this.getRowHeight(),onRenderBody:()=>this.renderBody()})}renderTotal(){if(this.shadow){if(this._containerElement){if(this._containerElement.style.maxHeight=this.getAttribute("max-height")||"",this._emptyElement){const e=this._emptyElement.querySelector(".ui-tabela__empty-text");e&&(e.textContent=this._textoVazio)}}else{this.cleanupEventListeners();const e=K(this.shadow,this._textoVazio,this.getAttribute("max-height"),this._carregando);this._containerElement=e.containerElement,this._tableElement=e.tableElement,this._colgroupElement=e.colgroupElement,this._theadElement=e.theadElement,this._tbodyElement=e.tbodyElement,this._emptyElement=e.emptyElement,this._loadingElement=e.loadingElement,this.atualizarContextoSelecao()}this.renderHeader(),this.renderBody(),this._virtualizar&&this._containerElement&&!this._scrollHandler&&(this._scrollHandler=G(this._containerElement,()=>this.renderBody()))}}obterContextoRenderizador(){return{host:this,shadow:this.shadow,theadElement:this._theadElement,colgroupElement:this._colgroupElement,tbodyElement:this._tbodyElement,tableElement:this._tableElement,emptyElement:this._emptyElement,containerElement:this._containerElement,colunas:this._colunas,dadosController:this.dadosController,selecaoController:this.selecaoController,chaveId:this.chaveId,virtualizar:this._virtualizar,rowHeight:this.getRowHeight(),headerListeners:this._headerListeners,onSetIsResizing:e=>{this._isResizing=e},onActiveResizeCleanup:e=>{this._activeResizeCleanup=e},onHeaderClick:e=>this.handleHeaderClick(e)}}renderHeader(){X(this.obterContextoRenderizador())}renderBody(){Y(this.obterContextoRenderizador())}rolarPara(e,r){return this.selecaoController.rolarPara(e,r)}}E.definirCustomElement("ui-tabela",Z);function J(t){if(!t||typeof t!="string")return null;let o=t.trim();if(!o)return null;o=o.replace(/(\d),(\d)/g,"$1.$2").replace(/,/g,"."),o=o.replace(/\bpi\b/gi,String(Math.PI)),o=o.replace(/\be\b/gi,String(Math.E));let e=0;function r(){return o[e]||""}function i(){return o[e++]||""}function a(){for(;e<o.length&&/\s/.test(o[e]);)e++}function c(){a();let d=n();for(a();e<o.length;){const s=r();if(s==="+"||s==="-"){i(),a();const p=e,m=n();a(),o.slice(p,e).includes("%")?d=s==="+"?d+d*m:d-d*m:d=s==="+"?d+m:d-m}else break}return d}function n(){a();let d=l();for(a();e<o.length;){const s=r();if(s==="*"||s==="/"||s==="x"||s==="X"){i(),a();const p=l();if(s==="/"&&p===0)throw new Error("Divisão por zero");d=s==="/"?d/p:d*p,a()}else break}return d}function l(){a();let d=u();if(a(),r()==="^"){i();const s=l();d=Math.pow(d,s)}else if(o.slice(e,e+2)==="**"){e+=2;const s=l();d=Math.pow(d,s)}return d}function u(){a();const d=r();if(d==="+"||d==="-"){i();const m=u();return d==="-"?-m:m}if(d==="("){i();const m=c();return a(),r()===")"&&i(),a(),r()==="%"?(i(),m/100):m}const s=o.slice(e).match(/^([a-zA-Z_]\w*)\s*\(/);if(s){const m=s[1].toLowerCase();e+=s[0].length;const h=c();a(),r()===")"&&i();let b=h;switch(m){case"sqrt":b=Math.sqrt(h);break;case"abs":b=Math.abs(h);break;case"round":b=Math.round(h);break;case"floor":b=Math.floor(h);break;case"ceil":b=Math.ceil(h);break;case"sin":b=Math.sin(h);break;case"cos":b=Math.cos(h);break;case"tan":b=Math.tan(h);break}return a(),r()==="%"?(i(),b/100):b}const p=o.slice(e).match(/^([0-9]+(?:\.[0-9]+)?|\.[0-9]+)/);if(p){e+=p[0].length;let m=parseFloat(p[0]);return a(),r()==="%"&&(i(),m=m/100),m}throw new Error("Caractere inválido: "+d)}try{const d=c();return a(),e<o.length?null:isFinite(d)?d:null}catch{return null}}function ee(t){const o=document.createElement("span"),e=typeof t=="number"||typeof t=="string"&&/^-?\d+(\.\d+)?$/.test(t.trim());return o.className=`ui-prop__valor-readonly ${e?"ui-prop__valor-readonly--numero":""}`.trim(),o.textContent=t!=null?String(t):"—",o}function te(t,o,e,r){const i=document.createElement("label");i.className="ui-prop__editor-booleano";const a=!!e,c=document.createElement("div");c.className=`ui-prop__checkbox-custom ${a?"ui-prop__checkbox-custom--marcado":""}`,c.textContent=a?"✓":"";const n=document.createElement("span");return n.className="ui-prop__booleano-rotulo",n.textContent=a?"Sim":"Não",i.appendChild(c),i.appendChild(n),i.addEventListener("click",l=>{l.preventDefault();const u=!r.obterValorAtual(o.id);r.registrarAlteracao(t,o.id,u),c.classList.toggle("ui-prop__checkbox-custom--marcado",u),c.textContent=u?"✓":"",n.textContent=u?"Sim":"Não"}),i}function oe(t,o,e,r){const i=document.createElement("select");return i.className="ui-prop__editor-select",(o.opcoes||[]).forEach(a=>{const c=document.createElement("option");c.value=String(a.id),c.textContent=a.rotulo,String(a.id)===String(e)&&(c.selected=!0),i.appendChild(c)}),i.addEventListener("change",()=>{r.registrarAlteracao(t,o.id,i.value)}),i.addEventListener("keydown",a=>{a.key==="Enter"&&r.focarProximoEditor(i)}),i}function re(t,o,e){const r=document.createElement("button");return r.type="button",r.className="ui-prop__btn-acao-inline",r.textContent=o.rotuloAcao||"Editar...",r.addEventListener("click",()=>{typeof o.onClickAcao=="function"&&o.onClickAcao(o),e.despacharEventoAcao(o,t)}),r.addEventListener("keydown",i=>{i.key==="Enter"&&r.click()}),r}function ie(t,o,e,r){const i=document.createElement("input");i.type="text",i.inputMode="decimal",i.autocomplete="off",i.spellcheck=!1,i.className="ui-prop__editor-input ui-prop__editor-input--numero",o.placeholder&&(i.placeholder=o.placeholder);const a=n=>{if(n==null||n==="")return"";const l=Number(n);return isNaN(l)?String(n):o.casasDecimais!==void 0?l.toFixed(o.casasDecimais):String(l)};i.value=a(e),i.addEventListener("focus",()=>{i.select()}),i.addEventListener("input",()=>{const n=i.value,l=/[\+\-\*\/\^\%\(\)]/.test(n)&&!/^[+-]?[0-9]*\.?[0-9]*$/.test(n.trim());i.classList.toggle("ui-prop__editor-input--calculando",l)});const c=()=>{i.classList.remove("ui-prop__editor-input--calculando");const n=i.value.trim();if(n===""){r.registrarAlteracao(t,o.id,null);return}const l=J(n);if(l!==null&&!isNaN(l)){let u=l;o.casasDecimais!==void 0&&(u=Number(l.toFixed(o.casasDecimais))),i.value=a(u),u!==r.obterValorAtual(o.id)&&r.registrarAlteracao(t,o.id,u)}else i.value=a(r.obterValorAtual(o.id))};return i.addEventListener("change",c),i.addEventListener("blur",c),i.addEventListener("keydown",n=>{if(n.key==="Enter")c(),r.focarProximoEditor(i);else if(n.key==="Escape")i.classList.remove("ui-prop__editor-input--calculando"),i.value=a(r.obterValorAtual(o.id)),i.blur();else if(n.key==="ArrowUp"||n.key==="ArrowDown"){n.preventDefault();const l=parseFloat(i.value)||0;let u=o.casasDecimais!==void 0?Math.pow(10,-o.casasDecimais):1;n.shiftKey?u*=10:n.altKey&&(u*=.1);let d=n.key==="ArrowUp"?l+u:l-u;o.casasDecimais!==void 0?d=Number(d.toFixed(o.casasDecimais)):d=Math.round(d*100)/100,i.value=a(d),r.registrarAlteracao(t,o.id,d)}}),i}function ae(t,o,e,r){const i=document.createElement("input");i.type="text",i.className="ui-prop__editor-input",o.placeholder&&(i.placeholder=o.placeholder),i.value=e!=null?String(e):"",i.addEventListener("focus",()=>{i.select()});const a=()=>{i.value!==r.obterValorAtual(o.id)&&r.registrarAlteracao(t,o.id,i.value)};return i.addEventListener("change",a),i.addEventListener("keydown",c=>{c.key==="Enter"?(a(),r.focarProximoEditor(i)):c.key==="Escape"&&(i.value=String(r.obterValorAtual(o.id)??""),i.blur())}),i}function ne(t,o,e,r){const i=document.createElement("div");i.className="ui-prop__editor-linha-container";const a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("class","ui-prop__linha-amostra-svg"),a.setAttribute("viewBox","0 0 44 12");const c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1","0"),c.setAttribute("y1","6"),c.setAttribute("x2","44"),c.setAttribute("y2","6");const n=d=>{const s=String(d||"").toLowerCase();s.includes("dash")||s.includes("tracej")||s.includes("hidden")?c.setAttribute("stroke-dasharray","6,3"):s.includes("dot")||s.includes("ponto")||s.includes("pontilh")?c.setAttribute("stroke-dasharray","2,3"):s.includes("center")||s.includes("eixo")?c.setAttribute("stroke-dasharray","8,3,2,3"):c.setAttribute("stroke-dasharray","none")};n(e),a.appendChild(c);const l=document.createElement("select");return l.className="ui-prop__linha-select",(o.opcoes&&o.opcoes.length>0?o.opcoes:[{id:"ByLayer",rotulo:"ByLayer"},{id:"ByBlock",rotulo:"ByBlock"},{id:"Continuous",rotulo:"Continuous"},{id:"Dashed",rotulo:"Dashed"},{id:"Hidden",rotulo:"Hidden"},{id:"Center",rotulo:"Center"},{id:"Dotted",rotulo:"Dotted"}]).forEach(d=>{const s=document.createElement("option");s.value=String(d.id),s.textContent=d.rotulo,String(d.id).toLowerCase()===String(e).toLowerCase()&&(s.selected=!0),l.appendChild(s)}),l.addEventListener("change",()=>{n(l.value),r.registrarAlteracao(t,o.id,l.value)}),l.addEventListener("keydown",d=>{d.key==="Enter"&&r.focarProximoEditor(l)}),i.appendChild(a),i.appendChild(l),i}function se(t,o,e,r){const i=document.createElement("div");i.className="ui-prop__editor-espessura-container";const a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("class","ui-prop__espessura-amostra-svg"),a.setAttribute("viewBox","0 0 38 12");const c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1","0"),c.setAttribute("y1","6"),c.setAttribute("x2","38"),c.setAttribute("y2","6");const n=d=>{const s=parseFloat(String(d).replace(/[^0-9.]/g,""));return isNaN(s)||s<=0?1.5:Math.min(8,Math.max(1,s*8))};c.setAttribute("stroke-width",String(n(e))),a.appendChild(c);const l=document.createElement("select");return l.className="ui-prop__espessura-select",(o.opcoes&&o.opcoes.length>0?o.opcoes:[{id:"ByLayer",rotulo:"ByLayer"},{id:"ByBlock",rotulo:"ByBlock"},{id:"0.00 mm",rotulo:"0.00 mm"},{id:"0.05 mm",rotulo:"0.05 mm"},{id:"0.09 mm",rotulo:"0.09 mm"},{id:"0.13 mm",rotulo:"0.13 mm"},{id:"0.15 mm",rotulo:"0.15 mm"},{id:"0.18 mm",rotulo:"0.18 mm"},{id:"0.20 mm",rotulo:"0.20 mm"},{id:"0.25 mm",rotulo:"0.25 mm"},{id:"0.30 mm",rotulo:"0.30 mm"},{id:"0.35 mm",rotulo:"0.35 mm"},{id:"0.40 mm",rotulo:"0.40 mm"},{id:"0.50 mm",rotulo:"0.50 mm"},{id:"0.60 mm",rotulo:"0.60 mm"},{id:"0.70 mm",rotulo:"0.70 mm"},{id:"1.00 mm",rotulo:"1.00 mm"},{id:"1.40 mm",rotulo:"1.40 mm"},{id:"2.00 mm",rotulo:"2.00 mm"}]).forEach(d=>{const s=document.createElement("option");s.value=String(d.id),s.textContent=d.rotulo,String(d.id).toLowerCase()===String(e).toLowerCase()&&(s.selected=!0),l.appendChild(s)}),l.addEventListener("change",()=>{c.setAttribute("stroke-width",String(n(l.value))),r.registrarAlteracao(t,o.id,l.value)}),l.addEventListener("keydown",d=>{d.key==="Enter"&&r.focarProximoEditor(l)}),i.appendChild(a),i.appendChild(l),i}function le(t,o,e,r){const i=document.createElement("div");i.className="ui-prop__editor-cor-cad-container";const a=document.createElement("div");a.className="ui-prop__cor-amostra";const c=d=>{const s=String(d).toLowerCase();return s==="red"||s==="1"?"#ff0000":s==="yellow"||s==="2"?"#ffff00":s==="green"||s==="3"?"#00ff00":s==="cyan"||s==="4"?"#00ffff":s==="blue"||s==="5"?"#0000ff":s==="magenta"||s==="6"?"#ff00ff":s==="white"||s==="7"||s==="bylayer"||s==="byblock"?"#ffffff":s.startsWith("#")?s:"#ffffff"};a.style.backgroundColor=c(e);const n=document.createElement("select");n.className="ui-prop__cor-cad-select",[{id:"ByLayer",rotulo:"ByLayer"},{id:"ByBlock",rotulo:"ByBlock"},{id:"Red",rotulo:"Red (1)"},{id:"Yellow",rotulo:"Yellow (2)"},{id:"Green",rotulo:"Green (3)"},{id:"Cyan",rotulo:"Cyan (4)"},{id:"Blue",rotulo:"Blue (5)"},{id:"Magenta",rotulo:"Magenta (6)"},{id:"White",rotulo:"White (7)"},{id:"custom",rotulo:"Selecionar cor..."}].forEach(d=>{const s=document.createElement("option");s.value=d.id,s.textContent=d.rotulo,String(d.id).toLowerCase()===String(e).toLowerCase()&&(s.selected=!0),n.appendChild(s)});const u=document.createElement("input");return u.type="color",u.className="ui-prop__cor-picker-oculto",u.addEventListener("input",()=>{const d=u.value;a.style.backgroundColor=d,r.registrarAlteracao(t,o.id,d)}),n.addEventListener("change",()=>{n.value==="custom"?u.click():(a.style.backgroundColor=c(n.value),r.registrarAlteracao(t,o.id,n.value))}),n.addEventListener("keydown",d=>{d.key==="Enter"&&r.focarProximoEditor(n)}),i.appendChild(a),i.appendChild(n),i.appendChild(u),i}function de(t,o,e,r){const i=document.createElement("div");i.className="ui-prop__editor-cor-container";const a=document.createElement("div");a.className="ui-prop__cor-amostra",a.style.backgroundColor=e||"#ffffff";const c=document.createElement("span");c.className="ui-prop__cor-texto",c.textContent=o.textoAmostra||String(e||"ByLayer");const n=document.createElement("input");return n.type="color",n.className="ui-prop__cor-picker-oculto",n.value=typeof e=="string"&&e.startsWith("#")?e:"#ffffff",n.addEventListener("input",()=>{const l=n.value;a.style.backgroundColor=l,c.textContent=l,r.registrarAlteracao(t,o.id,l)}),i.addEventListener("click",()=>{n.click()}),i.appendChild(a),i.appendChild(c),i.appendChild(n),i}function ce(t,o,e,r){return o.somenteLeitura||o.tipo==="readonly"?ee(e):o.tipo==="booleano"?te(t,o,e,r):o.tipo==="linha"||o.tipo==="linetype"?ne(t,o,e,r):o.tipo==="espessura"||o.tipo==="lineweight"?se(t,o,e,r):o.tipo==="cor-cad"?le(t,o,e,r):o.tipo==="selecao"?oe(t,o,e,r):o.tipo==="cor"?de(t,o,e,r):o.tipo==="acao"?re(t,o,r):o.tipo==="numero"?ie(t,o,e,r):ae(t,o,e,r)}function ue(t){if(!t.tipoContainerElement)return;if(!t.tipos||t.tipos.length===0){t.tipoContainerElement.style.display="none";return}t.tipoContainerElement.style.display="flex",t.tipoContainerElement.innerHTML="";const o=t.tipos.find(e=>String(e.id)===String(t.tipoSelecionadoId))||t.tipos[0];if(t.estiloVisual==="revit"){const e=document.createElement("div");e.className="ui-prop__tipo-revit-card";const r=document.createElement("div");r.className="ui-prop__tipo-miniatura",o.iconeSvg?r.innerHTML=o.iconeSvg:r.innerHTML=`
|
|
12
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
13
|
+
<rect x="3" y="3" width="18" height="18" rx="2"></rect>
|
|
14
|
+
<path d="M3 9h18M9 21V9"></path>
|
|
15
|
+
</svg>
|
|
16
|
+
`;const i=document.createElement("div");i.className="ui-prop__tipo-info";const a=document.createElement("div");a.className="ui-prop__tipo-nome",a.textContent=o.rotulo;const c=document.createElement("div");c.className="ui-prop__tipo-subtexto",c.textContent=o.subtipo||"Tipo de Família",i.appendChild(a),i.appendChild(c),e.appendChild(r),e.appendChild(i);const n=document.createElement("div");n.className="ui-prop__tipo-revit-subbarra";const l=document.createElement("select");l.className="ui-prop__tipo-select",t.tipos.forEach(d=>{const s=document.createElement("option");s.value=d.id,s.textContent=`${d.rotulo}${d.subtipo?` : ${d.subtipo}`:""}`,String(d.id)===String(t.tipoSelecionadoId)&&(s.selected=!0),l.appendChild(s)}),l.addEventListener("change",()=>{t.onSelecionarTipo(l.value)});const u=document.createElement("button");u.type="button",u.className="ui-prop__btn-editar-tipo",u.innerHTML=`
|
|
17
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-right: 4px; vertical-align: -1px;">
|
|
18
|
+
<rect x="3" y="3" width="12" height="12" rx="1"></rect>
|
|
19
|
+
<rect x="9" y="9" width="12" height="12" rx="1"></rect>
|
|
20
|
+
</svg>
|
|
21
|
+
<span>Editar tipo</span>
|
|
22
|
+
`,u.addEventListener("click",()=>{t.onEditarTipo(o)}),n.appendChild(l),n.appendChild(u),t.tipoContainerElement.appendChild(e),t.tipoContainerElement.appendChild(n)}else{const e=document.createElement("div");e.className="ui-prop__tipo-autocad-bar";const r=document.createElement("select");r.className="ui-prop__tipo-select",t.tipos.forEach(l=>{const u=document.createElement("option");u.value=l.id,u.textContent=l.rotulo,String(l.id)===String(t.tipoSelecionadoId)&&(u.selected=!0),r.appendChild(u)}),r.addEventListener("change",()=>{t.onSelecionarTipo(r.value)});const i=document.createElement("div");i.className="ui-prop__tipo-autocad-acoes";const a=document.createElement("button");a.type="button",a.className="ui-prop__btn-autocad",a.title="Seleção rápida",a.setAttribute("aria-label","Seleção rápida"),a.innerHTML=`
|
|
23
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
24
|
+
<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon>
|
|
25
|
+
</svg>
|
|
26
|
+
`,a.addEventListener("click",()=>{t.onQuickSelect(o)});const c=document.createElement("button");c.type="button",c.className="ui-prop__btn-autocad",c.title="Selecionar objetos",c.setAttribute("aria-label","Selecionar objetos"),c.innerHTML=`
|
|
27
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
28
|
+
<circle cx="12" cy="12" r="7"></circle>
|
|
29
|
+
<line x1="12" y1="2" x2="12" y2="7"></line>
|
|
30
|
+
<line x1="12" y1="17" x2="12" y2="22"></line>
|
|
31
|
+
<line x1="2" y1="12" x2="7" y2="12"></line>
|
|
32
|
+
<line x1="17" y1="12" x2="22" y2="12"></line>
|
|
33
|
+
<line x1="12" y1="9" x2="12" y2="15" stroke-width="2.5"></line>
|
|
34
|
+
<line x1="9" y1="12" x2="15" y2="12" stroke-width="2.5"></line>
|
|
35
|
+
</svg>
|
|
36
|
+
`,c.addEventListener("click",()=>{t.onSelectObjects(o)});const n=document.createElement("button");n.type="button",n.className="ui-prop__btn-autocad",n.title="Calculadora rápida",n.setAttribute("aria-label","Calculadora rápida"),n.innerHTML=`
|
|
37
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
38
|
+
<rect x="4" y="2" width="16" height="20" rx="2"></rect>
|
|
39
|
+
<line x1="8" y1="6" x2="16" y2="6"></line>
|
|
40
|
+
<circle cx="8" cy="11" r="1" fill="currentColor"></circle>
|
|
41
|
+
<circle cx="12" cy="11" r="1" fill="currentColor"></circle>
|
|
42
|
+
<circle cx="16" cy="11" r="1" fill="currentColor"></circle>
|
|
43
|
+
<circle cx="8" cy="15" r="1" fill="currentColor"></circle>
|
|
44
|
+
<circle cx="12" cy="15" r="1" fill="currentColor"></circle>
|
|
45
|
+
<circle cx="16" cy="15" r="1" fill="currentColor"></circle>
|
|
46
|
+
</svg>
|
|
47
|
+
`,n.addEventListener("click",()=>{t.onCalculadora(o)}),i.appendChild(a),i.appendChild(c),i.appendChild(n),e.appendChild(r),e.appendChild(i),t.tipoContainerElement.appendChild(e)}}function pe(t){let o=45;function e(i){const a=Math.max(20,Math.min(65,i));return o=a,t.hostElement.style.setProperty("--ui-prop-rotulo-largura",`${a}%`),t.splitterElement&&(t.splitterElement.style.left=`calc(${a}% - 4px)`),a}function r(){if(!t.splitterElement||!t.corpoElement)return;t.splitterListeners.cleanup();let i=!1;const a=c=>{if(c.button!==0)return;c.preventDefault(),c.stopPropagation(),i=!0,t.splitterElement.classList.add("ui-prop__splitter--ativo");try{t.splitterElement.setPointerCapture(c.pointerId)}catch{}const n=t.corpoElement.getBoundingClientRect(),l=d=>{if(!i)return;const s=n.width;if(s<=0)return;const p=d.clientX-n.left;let g=Math.max(80,Math.min(s-130,p))/s*100;g=Math.max(20,Math.min(65,g)),e(g)},u=d=>{if(i){i=!1,t.splitterElement.classList.remove("ui-prop__splitter--ativo");try{t.splitterElement.hasPointerCapture(d.pointerId)&&t.splitterElement.releasePointerCapture(d.pointerId)}catch{}t.splitterElement.removeEventListener("pointermove",l),t.splitterElement.removeEventListener("pointerup",u),t.splitterElement.removeEventListener("pointercancel",u),t.onLarguraAlterada(o),t.hostElement.dispatchEvent(new CustomEvent("ui-splitter-resize",{bubbles:!0,composed:!0,detail:{larguraPorcentagem:o}}))}};t.splitterElement.addEventListener("pointermove",l),t.splitterElement.addEventListener("pointerup",u),t.splitterElement.addEventListener("pointercancel",u)};t.splitterListeners.add(t.splitterElement,"pointerdown",a),t.splitterListeners.add(t.splitterElement,"dblclick",()=>{e(45),t.onLarguraAlterada(45),t.hostElement.dispatchEvent(new CustomEvent("ui-splitter-resize",{bubbles:!0,composed:!0,detail:{larguraPorcentagem:45}}))})}return{init:r,definirLarguraRotulo:e}}const Se=`:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--ui-fonte-familia, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--ui-tamanho-corpo-sm, 12px);color:var(--ui-cor-texto, #e1e1e6);background-color:var(--ui-cor-superficie, #141417);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:var(--ui-raio-borda, 4px);overflow:hidden;width:100%;max-width:100%;height:100%;min-height:200px;-webkit-user-select:none;user-select:none;--ui-prop-altura-linha: 22px;--ui-prop-rotulo-largura: 45%}:host([densidade="compacta"]){--ui-prop-altura-linha: 19px;font-size:10.5px}:host([densidade="ultracompacta"]){--ui-prop-altura-linha: 17px;font-size:10px}:host([densidade="relaxada"]){--ui-prop-altura-linha: 28px;font-size:12px}:host([colapsado]){width:32px!important;min-width:32px!important;max-width:32px!important;height:100%!important;cursor:pointer;transition:width .2s cubic-bezier(.4,0,.2,1)}:host([colapsado]) .ui-prop__header,:host([colapsado]) .ui-prop__tipo-seletor-container,:host([colapsado]) .ui-prop__filtro-container,:host([colapsado]) .ui-prop__corpo-wrapper,:host([colapsado]) .ui-prop__footer,:host([colapsado]) .ui-prop__resizer-canto{display:none!important}:host([colapsado]) .ui-prop__faixa-estreita{display:flex!important;flex-direction:column;align-items:center;width:100%;height:100%;padding:8px 0;gap:10px;box-sizing:border-box;background-color:var(--ui-cor-fundo-elevado, #18181d);-webkit-user-select:none;user-select:none;cursor:pointer}.ui-prop__faixa-estreita{display:none}.ui-prop__faixa-icone{display:flex;align-items:center;justify-content:center;color:var(--ui-cor-destaque, #00E08A);flex-shrink:0}.ui-prop__faixa-btn-expandir{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#ffffff0d;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:3px;color:var(--ui-cor-texto, #e1e1e6);cursor:pointer;padding:0;transition:all .15s ease;flex-shrink:0}.ui-prop__faixa-btn-expandir:hover{background-color:var(--ui-cor-destaque, #00E08A);color:#000;border-color:var(--ui-cor-destaque, #00E08A)}.ui-prop__faixa-texto{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--ui-cor-texto-secundario, #888899);margin-top:8px;flex:1;pointer-events:none}:host([colapsado]):hover .ui-prop__faixa-texto{color:var(--ui-cor-texto, #ffffff)}:host([flutuante]){position:fixed!important;z-index:var(--ui-z-docked-bar, 600)!important;box-shadow:0 16px 48px #000000bf,0 0 0 1px #ffffff24,0 6px 14px #00000080!important;border-radius:6px!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);resize:both;overflow:hidden;max-width:95vw;max-height:95vh;min-width:220px;min-height:200px}:host([flutuante]) .ui-prop__header{cursor:grab;-webkit-user-select:none;user-select:none}:host([flutuante].arrastando) .ui-prop__header{cursor:grabbing!important}.ui-prop__resizer-canto{display:none}:host([flutuante]) .ui-prop__resizer-canto{display:block;position:absolute;bottom:0;right:0;width:14px;height:14px;cursor:nwse-resize;z-index:50;background:linear-gradient(135deg,transparent 50%,rgba(255,255,255,.25) 50%,rgba(255,255,255,.25) 65%,transparent 65%,transparent 80%,rgba(255,255,255,.25) 80%);pointer-events:auto}.ui-prop__btn-icone--ativo{background-color:#00e08a2e!important;color:var(--ui-cor-destaque, #00E08A)!important}.ui-prop__container{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;flex:1;overflow:hidden;box-sizing:border-box}.ui-prop__header{display:flex;align-items:center;justify-content:space-between;height:22px;min-height:22px;padding:0 8px;background-color:var(--ui-cor-fundo-elevado, #1a1a1e);border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));flex-shrink:0;box-sizing:border-box}:host([densidade="compacta"]) .ui-prop__header{height:20px;min-height:20px;padding:0 6px}:host([densidade="ultracompacta"]) .ui-prop__header{height:18px;min-height:18px;padding:0 5px}.ui-prop__header-titulo{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:var(--ui-cor-texto, #ffffff);text-transform:uppercase;letter-spacing:.4px}:host([densidade="compacta"]) .ui-prop__header-titulo{font-size:10px;gap:4px}:host([densidade="ultracompacta"]) .ui-prop__header-titulo{font-size:9.5px;gap:3px}.ui-prop__header-icone{display:flex;align-items:center;color:var(--ui-cor-destaque, #00E08A)}.ui-prop__header-icone svg{width:12px;height:12px}:host([densidade="ultracompacta"]) .ui-prop__header-icone svg{width:10px;height:10px}.ui-prop__header-acoes{display:flex;align-items:center;gap:2px}.ui-prop__btn-icone{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:transparent;border:none;border-radius:2px;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;transition:all .15s ease;padding:0}.ui-prop__btn-icone:hover{background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08));color:var(--ui-cor-texto, #ffffff)}:host([densidade="compacta"]) .ui-prop__btn-icone{width:17px;height:17px}:host([densidade="ultracompacta"]) .ui-prop__btn-icone{width:16px;height:16px}.ui-prop__tipo-seletor-container{padding:3px 6px;background-color:var(--ui-cor-superficie, #141417);border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;flex-direction:column;gap:3px;flex-shrink:0;box-sizing:border-box}:host([densidade="compacta"]) .ui-prop__tipo-seletor-container{padding:2px 5px;gap:2px}:host([densidade="ultracompacta"]) .ui-prop__tipo-seletor-container{padding:1px 4px;gap:1px}.ui-prop__tipo-revit-card{display:flex;align-items:center;gap:10px;background-color:var(--ui-cor-fundo-card, #18181c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:4px;padding:6px 8px;cursor:pointer;transition:border-color .15s ease}.ui-prop__tipo-revit-card:hover{border-color:var(--ui-cor-destaque, #00E08A)}.ui-prop__tipo-miniatura{width:32px;height:32px;border-radius:3px;background-color:var(--ui-cor-fundo-elevado, #24242a);display:flex;align-items:center;justify-content:center;color:var(--ui-cor-destaque, #00E08A);flex-shrink:0}.ui-prop__tipo-info{display:flex;flex-direction:column;flex:1;min-width:0}.ui-prop__tipo-nome{font-weight:600;font-size:12px;color:var(--ui-cor-texto, #ffffff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-prop__tipo-subtexto{font-size:11px;color:var(--ui-cor-texto-secundario, #888899);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-prop__tipo-revit-subbarra{display:flex;align-items:center;gap:6px}.ui-prop__tipo-select{flex:1;min-width:0;width:0;height:20px;background-color:transparent;color:var(--ui-cor-texto, #ffffff);border:none;border-radius:2px;padding:0 16px 0 2px;font-size:10.5px;font-weight:500;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='8' height='5' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23888899' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;background-size:8px 5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.ui-prop__tipo-select:hover{background-color:#ffffff0d;color:#fff}.ui-prop__tipo-select:focus{background-color:#00e08a14;color:var(--ui-cor-destaque, #00E08A)}:host([densidade="compacta"]) .ui-prop__tipo-select{height:18px;font-size:10px;padding:0 14px 0 2px}:host([densidade="ultracompacta"]) .ui-prop__tipo-select{height:16px;font-size:9.5px;padding:0 12px 0 2px}.ui-prop__btn-editar-tipo{height:20px;padding:0 6px;background-color:transparent;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:2px;color:var(--ui-cor-texto, #ffffff);font-size:10.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s ease}:host([densidade="compacta"]) .ui-prop__btn-editar-tipo{height:18px;font-size:10px}:host([densidade="ultracompacta"]) .ui-prop__btn-editar-tipo{height:16px;font-size:9.5px}.ui-prop__btn-editar-tipo:hover{background-color:var(--ui-cor-botao-secundario-hover, #2a2a34);border-color:var(--ui-cor-destaque, #00E08A)}.ui-prop__tipo-autocad-bar{display:flex;align-items:center;gap:2px;width:100%;min-width:0;box-sizing:border-box;background:transparent}.ui-prop__tipo-autocad-acoes{display:flex;align-items:center;gap:1px;flex-shrink:0;border-left:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));padding-left:3px;margin-left:1px}.ui-prop__btn-autocad{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:2px;color:var(--ui-cor-texto-secundario, #888899);cursor:pointer;padding:0;transition:all .15s ease}:host([densidade="compacta"]) .ui-prop__btn-autocad{width:18px;height:18px}:host([densidade="ultracompacta"]) .ui-prop__btn-autocad{width:16px;height:16px}.ui-prop__btn-autocad:hover{background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .1));color:var(--ui-cor-destaque, #00E08A)}.ui-prop__btn-autocad:active{transform:scale(.92);background-color:#00e08a26}.ui-prop__filtro-container{display:flex;align-items:center;padding:4px 8px;background-color:var(--ui-cor-fundo, #0b0b0d);border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));gap:6px;flex-shrink:0}.ui-prop__filtro-icone{color:var(--ui-cor-texto-secundario, #888899);flex-shrink:0}.ui-prop__filtro-input{flex:1;background:transparent;border:none;outline:none;font-size:11px;color:var(--ui-cor-texto, #e1e1e6);padding:3px 0}.ui-prop__filtro-input::placeholder{color:var(--ui-cor-texto-secundario, #666677)}.ui-prop__corpo-wrapper{position:relative;flex:1;min-height:0;width:100%;overflow:hidden;display:flex;flex-direction:column}.ui-prop__corpo{flex:1;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden;background-color:var(--ui-cor-superficie, #141417);position:relative;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) var(--ui-cor-fundo, #0b0b0d)}.ui-prop__corpo::-webkit-scrollbar{width:8px}.ui-prop__corpo::-webkit-scrollbar-track{background:var(--ui-cor-fundo, #0b0b0d)}.ui-prop__corpo::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:4px}.ui-prop__corpo::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.ui-prop__categoria{border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1))}.ui-prop__categoria-header{position:relative;z-index:25;display:flex;align-items:center;justify-content:space-between;height:21px;padding:0 6px;background-color:var(--ui-cor-fundo-elevado, #18181d);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;font-size:10.5px;color:var(--ui-cor-texto, #ffffff);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .05));transition:background-color .15s ease;box-sizing:border-box}:host([densidade="compacta"]) .ui-prop__categoria-header{height:19px;font-size:10px;padding:0 5px}:host([densidade="ultracompacta"]) .ui-prop__categoria-header{height:17px;font-size:9.5px;padding:0 4px}.ui-prop__categoria-header:hover{background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .06))}.ui-prop__categoria-titulo-bloco{display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-prop__categoria-seta{display:inline-flex;align-items:center;justify-content:center;font-size:9px;width:12px;height:12px;color:var(--ui-cor-texto-secundario, #888899);transition:transform .15s ease}.ui-prop__categoria--aberta .ui-prop__categoria-seta{transform:rotate(90deg)}.ui-prop__categoria-contador{font-size:10px;font-weight:400;color:var(--ui-cor-texto-secundario, #888899)}.ui-prop__categoria-conteudo{display:none}.ui-prop__categoria--aberta .ui-prop__categoria-conteudo{display:block}.ui-prop__linha{display:flex;align-items:stretch;min-height:var(--ui-prop-altura-linha, 24px);border-bottom:1px dotted var(--ui-cor-borda, rgba(255, 255, 255, .08));box-sizing:border-box;position:relative;z-index:1;transition:background-color .1s ease}.ui-prop__linha:hover{background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .04))}.ui-prop__linha:focus-within{background-color:#00e08a14}.ui-prop__linha:focus-within .ui-prop__col-rotulo{color:var(--ui-cor-texto, #ffffff);font-weight:500}.ui-prop__linha--modificada{background-color:#00e08a0d}.ui-prop__col-rotulo{width:var(--ui-prop-rotulo-largura, 45%);padding:1px 4px 1px 8px;display:flex;align-items:center;color:var(--ui-cor-texto-secundario, #9999aa);border-right:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;position:relative;flex-shrink:0;box-sizing:border-box}:host([densidade="compacta"]) .ui-prop__col-rotulo{padding:0 4px 0 6px;font-size:10px}:host([densidade="ultracompacta"]) .ui-prop__col-rotulo{padding:0 3px 0 5px;font-size:9.5px}.ui-prop__col-rotulo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-prop__col-rotulo--scrub{cursor:ew-resize;-webkit-user-select:none;user-select:none;transition:color .15s ease,background-color .15s ease}.ui-prop__col-rotulo--scrub:hover{color:var(--ui-cor-destaque, #00E08A);background-color:#00e08a0d}.ui-prop__col-rotulo--arrastando{color:#000!important;background-color:var(--ui-cor-destaque, #00E08A)!important;font-weight:600;cursor:ew-resize!important}.ui-prop__col-rotulo--arrastando span{color:#000!important}.ui-prop__splitter{position:absolute;top:0;bottom:0;min-height:100%;left:calc(var(--ui-prop-rotulo-largura, 45%) - 4px);width:8px;cursor:col-resize;z-index:30;touch-action:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center}.ui-prop__splitter:after{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background-color:transparent;pointer-events:none;transition:background-color .15s ease,box-shadow .15s ease}.ui-prop__splitter:hover:after,.ui-prop__splitter--ativo:after{background-color:var(--ui-cor-destaque, #00E08A);box-shadow:0 0 6px #00e08a80}.ui-prop__splitter--ativo{background-color:#00e08a14}.ui-prop__col-valor{width:calc(100% - var(--ui-prop-rotulo-largura, 45%));flex:1 1 0px;min-width:0!important;display:flex;align-items:stretch;padding:0;overflow:hidden;box-sizing:border-box;position:relative;transition:background-color .1s ease,box-shadow .1s ease}.ui-prop__col-valor:focus-within{background-color:var(--ui-cor-fundo, #0b0b0d);box-shadow:inset 0 0 0 1px var(--ui-cor-destaque, #00E08A)}.ui-prop__editor-input{width:100%;min-width:0;height:100%;min-height:var(--ui-prop-altura-linha, 24px);background:transparent;border:none;border-radius:0;color:var(--ui-cor-texto, #ffffff);font-family:inherit;font-size:11px;padding:0 8px;outline:none;box-sizing:border-box;transition:background-color .1s ease}.ui-prop__editor-input:hover{background-color:#ffffff08}.ui-prop__editor-input--numero{text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-variant-numeric:tabular-nums}.ui-prop__editor-input--calculando{color:var(--ui-cor-destaque, #00E08A)!important;font-weight:500}.ui-prop__col-valor:has(.ui-prop__editor-input--calculando){background-color:#00e08a14!important;box-shadow:inset 0 0 0 1.5px var(--ui-cor-destaque, #00E08A)!important}.ui-prop__editor-select{flex:1 1 0px;min-width:0!important;width:0!important;max-width:100%;height:100%;min-height:var(--ui-prop-altura-linha, 24px);background-color:transparent;color:var(--ui-cor-texto, #ffffff);border:none;border-radius:0;font-size:11px;padding:0 20px 0 8px;outline:none;cursor:pointer;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23888899' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:8px 5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:background-color .1s ease}.ui-prop__editor-select:hover{background-color:#ffffff08}.ui-prop__editor-select option{background-color:var(--ui-cor-fundo-elevado, #18181c);color:var(--ui-cor-texto, #ffffff)}.ui-prop__editor-cor-container{display:flex;align-items:center;gap:6px;width:100%;max-width:100%;min-width:0!important;height:100%;min-height:var(--ui-prop-altura-linha, 24px);cursor:pointer;padding:0 20px 0 8px;box-sizing:border-box;position:relative;border:none;border-radius:0;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23888899' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:8px 5px;transition:background-color .1s ease}.ui-prop__editor-cor-container:hover{background-color:#ffffff0a}.ui-prop__cor-amostra{width:13px;height:13px;border-radius:2px;border:1px solid rgba(255,255,255,.3);flex-shrink:0;box-sizing:border-box}.ui-prop__cor-texto{flex:1 1 0px;min-width:0!important;width:0!important;font-size:11px;color:var(--ui-cor-texto, #ffffff);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-prop__cor-picker-oculto{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.ui-prop__editor-linha-container{display:flex;align-items:center;gap:6px;width:100%;max-width:100%;min-width:0!important;height:100%;min-height:var(--ui-prop-altura-linha, 24px);padding:0 0 0 8px;box-sizing:border-box;overflow:hidden;border:none;border-radius:0}.ui-prop__linha-amostra-svg{width:24px;height:10px;flex-shrink:0}.ui-prop__linha-amostra-svg line{stroke:var(--ui-cor-texto, #e1e1e6);stroke-width:1.5}.ui-prop__linha-select{flex:1 1 0px;min-width:0!important;width:0!important;max-width:100%;height:100%;background:transparent;color:var(--ui-cor-texto, #ffffff);border:none;border-radius:0;font-size:11px;padding:0 20px 0 4px;outline:none;cursor:pointer;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23888899' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:8px 5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-prop__linha-select:hover{background-color:#ffffff08}.ui-prop__linha-select option{background-color:var(--ui-cor-fundo-elevado, #18181c);color:var(--ui-cor-texto, #ffffff)}.ui-prop__editor-espessura-container{display:flex;align-items:center;gap:6px;width:100%;max-width:100%;min-width:0!important;height:100%;min-height:var(--ui-prop-altura-linha, 24px);padding:0 0 0 8px;box-sizing:border-box;overflow:hidden;border:none;border-radius:0}.ui-prop__espessura-amostra-svg{width:20px;height:10px;flex-shrink:0}.ui-prop__espessura-amostra-svg line{stroke:var(--ui-cor-texto, #e1e1e6)}.ui-prop__espessura-select{flex:1 1 0px;min-width:0!important;width:0!important;max-width:100%;height:100%;background:transparent;color:var(--ui-cor-texto, #ffffff);border:none;border-radius:0;font-size:11px;padding:0 20px 0 4px;outline:none;cursor:pointer;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23888899' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:8px 5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-prop__espessura-select:hover{background-color:#ffffff08}.ui-prop__espessura-select option{background-color:var(--ui-cor-fundo-elevado, #18181c);color:var(--ui-cor-texto, #ffffff)}.ui-prop__editor-cor-cad-container{display:flex;align-items:center;gap:6px;width:100%;max-width:100%;min-width:0!important;height:100%;min-height:var(--ui-prop-altura-linha, 24px);padding:0 0 0 8px;box-sizing:border-box;overflow:hidden;border:none;border-radius:0}.ui-prop__cor-cad-select{flex:1 1 0px;min-width:0!important;width:0!important;max-width:100%;height:100%;background:transparent;color:var(--ui-cor-texto, #ffffff);border:none;border-radius:0;font-size:11px;padding:0 20px 0 4px;outline:none;cursor:pointer;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23888899' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:8px 5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-prop__cor-cad-select:hover{background-color:#ffffff08}.ui-prop__cor-cad-select option{background-color:var(--ui-cor-fundo-elevado, #18181c);color:var(--ui-cor-texto, #ffffff)}.ui-prop__editor-booleano{display:flex;align-items:center;gap:6px;width:100%;height:100%;min-height:var(--ui-prop-altura-linha, 24px);cursor:pointer;padding:0 8px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.ui-prop__editor-booleano:hover{background-color:#ffffff08}.ui-prop__checkbox-custom{width:13px;height:13px;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .25));border-radius:2px;background-color:var(--ui-cor-fundo, #0b0b0d);display:flex;align-items:center;justify-content:center;transition:all .15s ease}.ui-prop__checkbox-custom--marcado{background-color:var(--ui-cor-destaque, #00E08A);border-color:var(--ui-cor-destaque, #00E08A);color:#000}.ui-prop__booleano-rotulo{font-size:11px;color:var(--ui-cor-texto, #ffffff)}.ui-prop__btn-acao-inline{width:100%;height:100%;min-height:var(--ui-prop-altura-linha, 24px);padding:0 8px;background-color:transparent;border:none;border-radius:0;color:var(--ui-cor-texto, #ffffff);font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;text-align:left;transition:all .15s ease;box-sizing:border-box}.ui-prop__btn-acao-inline:hover{background-color:#ffffff0a;color:var(--ui-cor-destaque, #00E08A)}.ui-prop__valor-readonly{display:flex;align-items:center;width:100%;height:100%;min-height:var(--ui-prop-altura-linha, 24px);font-size:11px;color:var(--ui-cor-texto-secundario, #777788);padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;-webkit-user-select:text;user-select:text}.ui-prop__valor-readonly--numero{justify-content:flex-end;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-variant-numeric:tabular-nums}.ui-prop__unidade-sufixo{display:flex;align-items:center;font-size:10px;color:var(--ui-cor-texto-secundario, #777788);padding-right:8px;flex-shrink:0;-webkit-user-select:none;user-select:none}.ui-prop__vazio{padding:24px 16px;text-align:center;color:var(--ui-cor-texto-secundario, #888899);font-size:12px}.ui-prop__footer{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background-color:var(--ui-cor-fundo-elevado, #18181c);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .1));flex-shrink:0}.ui-prop__link-ajuda{font-size:11px;color:var(--ui-cor-destaque, #00E08A);text-decoration:none;cursor:pointer}.ui-prop__link-ajuda:hover{text-decoration:underline}.ui-prop__footer-botoes{display:flex;gap:6px}.ui-prop__btn-aplicar{height:24px;padding:0 12px;background-color:var(--ui-cor-destaque, #00E08A);color:#000;border:none;border-radius:3px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease}.ui-prop__btn-aplicar:disabled{background-color:#ffffff1a;color:#ffffff4d;cursor:not-allowed}.ui-prop__btn-desfazer{height:24px;padding:0 8px;background:transparent;color:var(--ui-cor-texto-secundario, #888899);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:3px;font-size:11px;cursor:pointer;transition:all .15s ease}.ui-prop__btn-desfazer:hover:not(:disabled){background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08));color:var(--ui-cor-texto, #ffffff)}.ui-prop__btn-desfazer:disabled{opacity:.4;cursor:not-allowed}@media (max-width: 640px){:host{--ui-prop-altura-linha: 28px;font-size:13px}.ui-prop__btn-icone{min-width:28px;min-height:28px}.ui-prop__footer-botoes{gap:8px}.ui-prop__btn-aplicar,.ui-prop__btn-desfazer{height:30px;font-size:12px;padding:0 12px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.ui-prop__editor-input,.ui-prop__editor-select{touch-action:manipulation;font-size:14px}}`;function Le(){return`
|
|
48
|
+
<style>${Se}</style>
|
|
49
|
+
<div class="ui-prop__container" id="container">
|
|
50
|
+
<!-- 0. Faixa Vertical da Coluna Estreita (visível quando colapsado) -->
|
|
51
|
+
<div class="ui-prop__faixa-estreita" id="faixa-estreita" title="Clique para expandir painel">
|
|
52
|
+
<span class="ui-prop__faixa-icone">
|
|
53
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
|
|
54
|
+
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
|
|
55
|
+
<line x1="3" y1="9" x2="21" y2="9"></line>
|
|
56
|
+
<line x1="9" y1="21" x2="9" y2="9"></line>
|
|
57
|
+
</svg>
|
|
58
|
+
</span>
|
|
59
|
+
<button type="button" class="ui-prop__faixa-btn-expandir" id="btn-expandir-faixa" title="Expandir painel de propriedades">
|
|
60
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2">
|
|
61
|
+
<polyline points="9 18 15 12 9 6"></polyline>
|
|
62
|
+
<line x1="5" y1="5" x2="5" y2="19"></line>
|
|
63
|
+
</svg>
|
|
64
|
+
</button>
|
|
65
|
+
<span class="ui-prop__faixa-texto">PROPRIEDADES</span>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<!-- 1. Header Superior -->
|
|
69
|
+
<header class="ui-prop__header" id="header">
|
|
70
|
+
<div class="ui-prop__header-titulo">
|
|
71
|
+
<span class="ui-prop__header-icone">
|
|
72
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
|
|
73
|
+
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
|
|
74
|
+
<line x1="3" y1="9" x2="21" y2="9"></line>
|
|
75
|
+
<line x1="9" y1="21" x2="9" y2="9"></line>
|
|
76
|
+
</svg>
|
|
77
|
+
</span>
|
|
78
|
+
<span id="header-titulo-texto">Propriedades</span>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="ui-prop__header-acoes">
|
|
81
|
+
<button type="button" class="ui-prop__btn-icone" id="btn-flutuante" title="Desacoplar / Modo flutuante (CAD)" aria-label="Modo flutuante">
|
|
82
|
+
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
|
|
83
|
+
<rect x="3" y="3" width="14" height="14" rx="2"></rect>
|
|
84
|
+
<polyline points="15 3 21 3 21 9"></polyline>
|
|
85
|
+
<line x1="10" y1="14" x2="21" y2="3"></line>
|
|
86
|
+
</svg>
|
|
87
|
+
</button>
|
|
88
|
+
<button type="button" class="ui-prop__btn-icone" id="btn-colapsar-horizontal" title="Recolher para coluna estreita" aria-label="Recolher para coluna estreita">
|
|
89
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
|
|
90
|
+
<polyline points="11 17 6 12 11 7"></polyline>
|
|
91
|
+
<line x1="18" y1="5" x2="18" y2="19"></line>
|
|
92
|
+
</svg>
|
|
93
|
+
</button>
|
|
94
|
+
<button type="button" class="ui-prop__btn-icone" id="btn-densidade" title="Alternar compressão vertical" aria-label="Alternar densidade vertical">
|
|
95
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
|
|
96
|
+
<polyline points="4 7 12 11 20 7"></polyline>
|
|
97
|
+
<polyline points="4 17 12 13 20 17"></polyline>
|
|
98
|
+
<line x1="4" y1="12" x2="20" y2="12"></line>
|
|
99
|
+
</svg>
|
|
100
|
+
</button>
|
|
101
|
+
<button type="button" class="ui-prop__btn-icone" id="btn-expandir-tudo" title="Expandir/Recolher Tudo" aria-label="Expandir ou recolher tudo">
|
|
102
|
+
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
103
|
+
<polyline points="7 13 12 18 17 13"></polyline>
|
|
104
|
+
<polyline points="7 6 12 11 17 6"></polyline>
|
|
105
|
+
</svg>
|
|
106
|
+
</button>
|
|
107
|
+
<button type="button" class="ui-prop__btn-icone" id="btn-fechar" title="Fechar" aria-label="Fechar" style="display: none;">
|
|
108
|
+
✕
|
|
109
|
+
</button>
|
|
110
|
+
</div>
|
|
111
|
+
</header>
|
|
112
|
+
|
|
113
|
+
<!-- 2. Seletor de Tipo (AutoCAD / Revit) -->
|
|
114
|
+
<div class="ui-prop__tipo-seletor-container" id="tipo-container" style="display: none;"></div>
|
|
115
|
+
|
|
116
|
+
<!-- 3. Busca Rápida de Propriedades -->
|
|
117
|
+
<div class="ui-prop__filtro-container" id="filtro-container" style="display: none;">
|
|
118
|
+
<svg class="ui-prop__filtro-icone" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
119
|
+
<circle cx="11" cy="11" r="8"></circle>
|
|
120
|
+
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
|
121
|
+
</svg>
|
|
122
|
+
<input type="text" class="ui-prop__filtro-input" id="filtro-input" placeholder="Filtrar propriedades..." />
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
<!-- 4. Corpo Rolável com Grade de Categorias -->
|
|
126
|
+
<div class="ui-prop__corpo-wrapper" id="corpo-wrapper">
|
|
127
|
+
<div class="ui-prop__splitter" id="splitter"></div>
|
|
128
|
+
<div class="ui-prop__corpo" id="corpo">
|
|
129
|
+
<div class="ui-prop__lista-categorias" id="lista-categorias"></div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<!-- 5. Rodapé com Ações (Aplicar / Desfazer) -->
|
|
134
|
+
<footer class="ui-prop__footer" id="footer" style="display: none;">
|
|
135
|
+
<a class="ui-prop__link-ajuda" id="link-ajuda">Ajuda de propriedades</a>
|
|
136
|
+
<div class="ui-prop__footer-botoes">
|
|
137
|
+
<button type="button" class="ui-prop__btn-desfazer" id="btn-desfazer" disabled>Desfazer</button>
|
|
138
|
+
<button type="button" class="ui-prop__btn-aplicar" id="btn-aplicar" disabled>Aplicar</button>
|
|
139
|
+
</div>
|
|
140
|
+
</footer>
|
|
141
|
+
|
|
142
|
+
<!-- 6. Grip para redimensionar no modo flutuante -->
|
|
143
|
+
<div class="ui-prop__resizer-canto" id="resizer-canto" title="Redimensionar"></div>
|
|
144
|
+
</div>
|
|
145
|
+
`}function he(t){const{listaContainer:o,categorias:e,termoBusca:r,onToggleCategoria:i,linhaCtx:a}=t;if(o.innerHTML="",!e||e.length===0){const n=document.createElement("div");n.className="ui-prop__vazio",n.textContent="Nenhuma propriedade disponível.",o.appendChild(n);return}const c=document.createDocumentFragment();e.forEach(n=>{const l=(n.propriedades||[]).filter(x=>r?x.rotulo.toLowerCase().includes(r)||String(x.id).toLowerCase().includes(r):!0);if(r&&l.length===0)return;const u=n.aberto!==!1,d=document.createElement("div");d.className=`ui-prop__categoria ${u?"ui-prop__categoria--aberta":""}`,d.setAttribute("data-cat-id",n.id);const s=document.createElement("div");s.className="ui-prop__categoria-header";const p=document.createElement("div");p.className="ui-prop__categoria-titulo-bloco";const m=document.createElement("span");m.className="ui-prop__categoria-seta",m.textContent="▶";const h=document.createElement("span");h.textContent=n.titulo,p.appendChild(m),p.appendChild(h);const b=document.createElement("span");b.className="ui-prop__categoria-contador",b.textContent=String(l.length),s.appendChild(p),s.appendChild(b),s.addEventListener("click",()=>i(n.id)),s.addEventListener("dblclick",()=>i(n.id));const g=document.createElement("div");g.className="ui-prop__categoria-conteudo",l.forEach(x=>{const v=me(n.id,x,a);g.appendChild(v)}),d.appendChild(s),d.appendChild(g),c.appendChild(d)}),o.appendChild(c)}function me(t,o,e){const r=document.createElement("div");r.className="ui-prop__linha",r.setAttribute("data-prop-id",o.id);const i=e.valoresAtuais[o.id]!==void 0?e.valoresAtuais[o.id]:o.valor,a=e.valoresOriginais[o.id];e.isDirty&&i!==a&&r.classList.add("ui-prop__linha--modificada"),r.addEventListener("dblclick",()=>{const d=r.querySelector('input:not([type="color"]):not(.ui-prop__cor-picker-oculto), select, .ui-prop__btn-acao-inline');d&&(d.focus(),d instanceof HTMLInputElement&&d.select())});const c=document.createElement("div");c.className="ui-prop__col-rotulo",c.title=o.rotulo;const n=document.createElement("span");n.textContent=o.rotulo,c.appendChild(n),o.tipo==="numero"&&!o.somenteLeitura&&Me(c,t,o,e);const l=document.createElement("div");l.className="ui-prop__col-valor";const u=ce(t,o,i,e.editorCtx);if(l.appendChild(u),o.unidade){const d=document.createElement("span");d.className="ui-prop__unidade-sufixo",d.textContent=o.unidade,l.appendChild(d)}return r.appendChild(c),r.appendChild(l),r}function Me(t,o,e,r){t.classList.add("ui-prop__col-rotulo--scrub"),t.title=`${e.rotulo} (Arraste para ajustar, duplo-clique para editar)`;let i=0,a=0,c=!1;t.addEventListener("pointerdown",n=>{if(n.button!==0)return;i=n.clientX;const l=r.valoresAtuais[e.id];a=typeof l=="number"?l:parseFloat(String(l||0))||0,c=!1;try{t.setPointerCapture(n.pointerId)}catch{}t.classList.add("ui-prop__col-rotulo--arrastando");const u=s=>{const p=s.clientX-i;if(Math.abs(p)>2&&(c=!0),c){let m=1;s.shiftKey?m=.1:(s.ctrlKey||s.metaKey)&&(m=10);const h=e.casasDecimais!==void 0?e.casasDecimais:2,b=Math.pow(10,-Math.min(h,2));let g=a+p*b*m;e.casasDecimais!==void 0?g=Number(g.toFixed(e.casasDecimais)):g=Math.round(g*100)/100,r.editorCtx.registrarAlteracao(o,e.id,g),r.onAtualizarCampoVisual(e.id,g)}},d=s=>{t.classList.remove("ui-prop__col-rotulo--arrastando");try{t.hasPointerCapture(s.pointerId)&&t.releasePointerCapture(s.pointerId)}catch{}t.removeEventListener("pointermove",u),t.removeEventListener("pointerup",d),t.removeEventListener("pointercancel",d)};t.addEventListener("pointermove",u),t.addEventListener("pointerup",d),t.addEventListener("pointercancel",d)})}const N=300,Be=480;function fe(t){const o=t.hasAttribute("flutuante");if(o)t.removeAttribute("flutuante"),t.style.left="",t.style.top="",t.style.right="",t.style.bottom="",t.style.position="",t.style.zIndex="";else if(t.setAttribute("flutuante",""),t.style.position="fixed",!t.style.left&&!t.style.top){const e=Math.max(20,(typeof window<"u"?window.innerWidth:1024)-N-30);t.style.left=`${e}px`,t.style.top="70px",t.style.width=`${N}px`,t.style.height=`${Be}px`}return!o}function ge(t,o,e){const r=o.getElementById("header");if(r){let a=null,c=0,n=0,l=0,u=0;const d=p=>{if(a===null)return;const m=p.clientX-c,h=p.clientY-n;let b=l+m,g=u+h;const x=Math.max(0,(typeof window<"u"?window.innerWidth:1024)-t.offsetWidth),v=Math.max(0,(typeof window<"u"?window.innerHeight:768)-30);b=Math.max(0,Math.min(x,b)),g=Math.max(0,Math.min(v,g)),t.style.left=`${b}px`,t.style.top=`${g}px`,t.style.right="auto",t.style.bottom="auto"},s=p=>{if(a!==null){try{r.releasePointerCapture(p.pointerId)}catch{}r.removeEventListener("pointermove",d),r.removeEventListener("pointerup",s),r.removeEventListener("pointercancel",s),a=null,t.classList.remove("arrastando"),t.dispatchEvent(new CustomEvent("ui-mover",{bubbles:!0,composed:!0,detail:{left:t.style.left,top:t.style.top}}))}};e.add(r,"pointerdown",p=>{if(!t.hasAttribute("flutuante")||p.target.closest("button, input, select, a")||p.button!==0)return;p.preventDefault(),a=p.pointerId,c=p.clientX,n=p.clientY;const h=t.getBoundingClientRect();l=h.left,u=h.top,t.classList.add("arrastando");try{r.setPointerCapture(p.pointerId)}catch{}r.addEventListener("pointermove",d),r.addEventListener("pointerup",s),r.addEventListener("pointercancel",s)})}const i=o.getElementById("resizer-canto");if(i){let a=null,c=0,n=0,l=0,u=0;const d=p=>{if(a===null)return;const m=Math.max(200,c+(p.clientX-l)),h=Math.max(180,n+(p.clientY-u));t.style.width=`${m}px`,t.style.height=`${h}px`},s=p=>{if(a!==null){try{i.releasePointerCapture(p.pointerId)}catch{}i.removeEventListener("pointermove",d),i.removeEventListener("pointerup",s),i.removeEventListener("pointercancel",s),a=null,t.dispatchEvent(new CustomEvent("ui-redimensionar",{bubbles:!0,composed:!0,detail:{width:t.style.width,height:t.style.height}}))}};e.add(i,"pointerdown",p=>{if(!t.hasAttribute("flutuante")||p.button!==0)return;p.preventDefault(),p.stopPropagation(),a=p.pointerId,l=p.clientX,u=p.clientY;const m=t.getBoundingClientRect();c=m.width,n=m.height;try{i.setPointerCapture(p.pointerId)}catch{}i.addEventListener("pointermove",d),i.addEventListener("pointerup",s),i.addEventListener("pointercancel",s)})}}function be(t){return t==="compacta"?"ultracompacta":t==="ultracompacta"?"padrao":"compacta"}class xe{constructor(o){f(this,"valoresOriginais",{});f(this,"valoresAtuais",{});f(this,"dirty",!1);this.ctx=o}inicializarCategorias(o){this.valoresOriginais={},this.valoresAtuais={},this.dirty=!1,o.forEach(e=>{(e.propriedades||[]).forEach(r=>{this.valoresOriginais[r.id]=r.valor,this.valoresAtuais[r.id]=r.valor})}),this.ctx.onAtualizarBotoesFooter(this.dirty)}get isDirty(){return this.dirty}getValores(){return{...this.valoresAtuais}}setValores(o){!o||typeof o!="object"||(Object.keys(o).forEach(e=>{this.valoresAtuais[e]=o[e],this.valoresOriginais[e]=o[e]}),this.dirty=!1,this.ctx.onAtualizarBotoesFooter(this.dirty))}obterValor(o){return this.valoresAtuais[o]}definirValor(o,e,r=!0){var a;const i=this.valoresAtuais[o];if(this.valoresAtuais[o]=e,this.dirty=!0,this.ctx.onAtualizarBotoesFooter(this.dirty),this.ctx.onAtualizarCampoVisual(o,e),r){let c="";for(const n of this.ctx.getCategorias())if((a=n.propriedades)!=null&&a.some(l=>l.id===o)){c=n.id;break}this.emitirAlteracao(o,e,i,c)}}registrarAlteracao(o,e,r){var c;const i=this.valoresAtuais[e];this.valoresAtuais[e]=r,this.dirty=!0,this.ctx.onAtualizarBotoesFooter(this.dirty);const a=(c=this.ctx.hostElement.shadowRoot)==null?void 0:c.querySelector(`[data-prop-id="${e}"]`);a&&a.classList.add("ui-prop__linha--modificada"),this.ctx.isModoManual()||this.emitirAlteracao(e,r,i,o)}aplicar(){var e;if(!this.dirty)return;this.valoresOriginais={...this.valoresAtuais},this.dirty=!1,this.ctx.onAtualizarBotoesFooter(this.dirty);const o=(e=this.ctx.hostElement.shadowRoot)==null?void 0:e.querySelectorAll(".ui-prop__linha--modificada");o==null||o.forEach(r=>r.classList.remove("ui-prop__linha--modificada")),this.ctx.hostElement.dispatchEvent(new CustomEvent("ui-aplicar",{bubbles:!0,composed:!0,detail:{valores:{...this.valoresAtuais}}}))}desfazer(){this.dirty&&(this.valoresAtuais={...this.valoresOriginais},this.dirty=!1,this.ctx.onAtualizarBotoesFooter(this.dirty),this.ctx.onRenderCategorias(),this.ctx.hostElement.dispatchEvent(new CustomEvent("ui-desfazer",{bubbles:!0,composed:!0,detail:{valores:{...this.valoresAtuais}}})))}emitirAlteracao(o,e,r,i=""){this.ctx.hostElement.dispatchEvent(new CustomEvent("ui-propriedade-alterada",{bubbles:!0,composed:!0,detail:{id:o,categoriaId:i,valor:e,valorAnterior:r,todosValores:{...this.valoresAtuais}}}))}}function ve(t){const{shadow:o,listeners:e,host:r,onToggleExpandirTodas:i,onFiltrar:a,onAplicar:c,onDesfazer:n,onAlternarDensidade:l,onAlternarFlutuante:u,onAlternarColapsoHorizontal:d}=t,s=o.getElementById("btn-flutuante");s&&u&&e.add(s,"click",u);const p=o.getElementById("btn-colapsar-horizontal");p&&d&&e.add(p,"click",d);const m=o.getElementById("faixa-estreita");m&&d&&e.add(m,"click",d);const h=o.getElementById("btn-expandir-faixa");h&&d&&e.add(h,"click",y=>{y.stopPropagation(),d()});const b=o.getElementById("btn-densidade");b&&l&&e.add(b,"click",l);const g=o.getElementById("btn-expandir-tudo");g&&e.add(g,"click",i);const x=o.getElementById("btn-fechar");x&&e.add(x,"click",()=>{r.dispatchEvent(new CustomEvent("ui-fechar",{bubbles:!0,composed:!0}))});const v=o.getElementById("filtro-input");v&&e.add(v,"input",()=>{const y=(v.value||"").trim().toLowerCase();a(y)});const M=o.getElementById("btn-aplicar");M&&e.add(M,"click",c);const B=o.getElementById("btn-desfazer");B&&e.add(B,"click",n);const T=o.getElementById("link-ajuda");T&&e.add(T,"click",()=>{r.dispatchEvent(new CustomEvent("ui-ajuda",{bubbles:!0,composed:!0}))})}function _(t,o){const e=t.getElementById("header-titulo-texto");e&&(e.textContent=o.getAttribute("titulo")||"Propriedades");const r=t.getElementById("btn-fechar");r&&(r.style.display=o.hasAttribute("fechavel")?"inline-flex":"none");const i=t.getElementById("btn-flutuante");if(i){const u=o.hasAttribute("flutuante");i.title=u?"Acoplar painel (Dock)":"Desacoplar / Modo flutuante (CAD)",i.classList.toggle("ui-prop__btn-icone--ativo",u)}const a=t.getElementById("btn-colapsar-horizontal");if(a){const u=o.hasAttribute("colapsado");a.title=u?"Expandir painel":"Recolher para coluna estreita",a.classList.toggle("ui-prop__btn-icone--ativo",u)}const c=t.getElementById("btn-densidade");if(c){const u=o.getAttribute("densidade")||"padrão";c.title=`Compressão vertical: ${u} (clique para alternar)`}const n=t.getElementById("filtro-container");n&&(n.style.display=o.hasAttribute("filtro")?"flex":"none");const l=t.getElementById("footer");l&&(l.style.display=o.getAttribute("modo-aplicar")==="manual"?"flex":"none")}function _e(t,o){const e=Array.from(t.querySelectorAll('.ui-prop__linha input:not([disabled]):not([type="color"]):not(.ui-prop__cor-picker-oculto), .ui-prop__linha select:not([disabled]), .ui-prop__linha .ui-prop__btn-acao-inline:not([disabled])')),r=e.indexOf(o);if(r!==-1&&r+1<e.length){const i=e[r+1];i.focus(),i instanceof HTMLInputElement&&i.select()}}function k(t,o,e){const r=t.querySelector(`[data-prop-id="${o}"]`);if(!r)return;const i=r.querySelector('input:not([type="color"]):not(.ui-prop__cor-picker-oculto)');i&&(i.value=String(e??""))}function Ee(t,o){o.forEach(r=>r.aberto=!0),t.querySelectorAll(".ui-prop__categoria").forEach(r=>r.classList.add("ui-prop__categoria--aberta"))}function ye(t,o){o.forEach(r=>r.aberto=!1),t.querySelectorAll(".ui-prop__categoria").forEach(r=>r.classList.remove("ui-prop__categoria--aberta"))}function we(t,o,e,r){const i=e.find(a=>a.id===r);if(i){i.aberto=i.aberto===!1;const a=t.querySelector(`[data-cat-id="${r}"]`);a&&a.classList.toggle("ui-prop__categoria--aberta",!!i.aberto),o.dispatchEvent(new CustomEvent("ui-categoria-toggle",{bubbles:!0,composed:!0,detail:{id:r,aberto:i.aberto}}))}}class Ce extends E.SafeHTMLElement{constructor(){super();f(this,"shadow");f(this,"listeners",new w.ListenerBag);f(this,"splitterListeners",new w.ListenerBag);f(this,"controladorSplitter");f(this,"gerenciadorValores");f(this,"_categorias",[]);f(this,"_tipos",[]);f(this,"_tipoSelecionadoId","");f(this,"_termoBusca","");f(this,"_larguraRotuloPorcentagem",45);f(this,"tipoContainerElement");f(this,"corpoElement");f(this,"btnAplicarElement");f(this,"btnDesfazerElement");f(this,"splitterElement");this.shadow=this.attachShadow({mode:"open"}),this.shadow.innerHTML=Le(),this.tipoContainerElement=this.shadow.getElementById("tipo-container"),this.corpoElement=this.shadow.getElementById("corpo"),this.btnAplicarElement=this.shadow.getElementById("btn-aplicar"),this.btnDesfazerElement=this.shadow.getElementById("btn-desfazer"),this.splitterElement=this.shadow.getElementById("splitter"),this.gerenciadorValores=new xe({hostElement:this,getCategorias:()=>this._categorias,onAtualizarBotoesFooter:e=>{this.btnAplicarElement.disabled=!e,this.btnDesfazerElement.disabled=!e},onAtualizarCampoVisual:(e,r)=>k(this.shadow,e,r),onRenderCategorias:()=>this.renderCategorias(),isModoManual:()=>this.getAttribute("modo-aplicar")==="manual"}),this.controladorSplitter=pe({hostElement:this,corpoElement:this.corpoElement,splitterElement:this.splitterElement,splitterListeners:this.splitterListeners,onLarguraAlterada:e=>{this._larguraRotuloPorcentagem=e}})}static get observedAttributes(){return["titulo","estilo-visual","modo-aplicar","filtro","densidade","largura-rotulo","fechavel","colapsado","flutuante"]}get larguraRotuloPorcentagem(){return this._larguraRotuloPorcentagem}connectedCallback(){this.listeners.cleanup(),ve({shadow:this.shadow,listeners:this.listeners,host:this,onToggleExpandirTodas:()=>this.toggleExpandirTodas(),onFiltrar:e=>{this._termoBusca=e,this.renderCategorias()},onAplicar:()=>this.aplicar(),onDesfazer:()=>this.desfazer(),onAlternarDensidade:()=>this.alternarDensidade(),onAlternarFlutuante:()=>this.alternarFlutuante(),onAlternarColapsoHorizontal:()=>this.alternarColapsoHorizontal()}),ge(this,this.shadow,this.listeners),this.controladorSplitter.init(),this.syncState()}disconnectedCallback(){this.listeners.cleanup(),this.splitterListeners.cleanup()}attributeChangedCallback(e,r,i){if(e==="largura-rotulo"&&i){const a=parseFloat(i);isNaN(a)||(this._larguraRotuloPorcentagem=this.controladorSplitter.definirLarguraRotulo(a))}this.syncState()}get categorias(){return this._categorias}set categorias(e){this._categorias=Array.isArray(e)?e:[],this.gerenciadorValores.inicializarCategorias(this._categorias),this.renderCategorias()}get tipos(){return this._tipos}set tipos(e){this._tipos=Array.isArray(e)?e:[],this.renderSeletorTipos()}get tipoSelecionado(){return this._tipoSelecionadoId}set tipoSelecionado(e){this._tipoSelecionadoId=e,this.renderSeletorTipos()}get valores(){return this.gerenciadorValores.getValores()}set valores(e){this.gerenciadorValores.setValores(e),this.renderCategorias()}get isDirty(){return this.gerenciadorValores.isDirty}get dirty(){return this.gerenciadorValores.isDirty}obterValor(e){return this.gerenciadorValores.obterValor(e)}definirValor(e,r,i=!0){this.gerenciadorValores.definirValor(e,r,i)}aplicar(){this.gerenciadorValores.aplicar()}desfazer(){this.gerenciadorValores.desfazer()}expandirTudo(){Ee(this.shadow,this._categorias)}colapsarTudo(){ye(this.shadow,this._categorias)}toggleCategoria(e){we(this.shadow,this,this._categorias,e)}get densidade(){return this.getAttribute("densidade")||"padrao"}set densidade(e){!e||e==="padrao"?this.removeAttribute("densidade"):this.setAttribute("densidade",e)}alternarDensidade(){const e=be(this.getAttribute("densidade")||"padrao");return e==="padrao"?this.removeAttribute("densidade"):this.setAttribute("densidade",e),this.dispatchEvent(new CustomEvent("ui-densidade-alterada",{bubbles:!0,composed:!0,detail:{densidade:e}})),_(this.shadow,this),e}get flutuante(){return this.hasAttribute("flutuante")}set flutuante(e){!!e!==this.hasAttribute("flutuante")&&this.alternarFlutuante()}get colapsado(){return this.hasAttribute("colapsado")}set colapsado(e){!!e!==this.hasAttribute("colapsado")&&this.alternarColapsoHorizontal()}alternarFlutuante(){const e=fe(this);return _(this.shadow,this),this.dispatchEvent(new CustomEvent("ui-flutuante-alterado",{bubbles:!0,composed:!0,detail:{flutuante:e,left:this.style.left,top:this.style.top,width:this.style.width,height:this.style.height}})),e}alternarColapsoHorizontal(){const e=this.hasAttribute("colapsado");e?this.removeAttribute("colapsado"):this.setAttribute("colapsado","");const r=!e;return _(this.shadow,this),this.dispatchEvent(new CustomEvent("ui-colapso-horizontal",{bubbles:!0,composed:!0,detail:{colapsado:r}})),r}syncState(){_(this.shadow,this);const e=this.getAttribute("largura-rotulo");if(e){const r=parseFloat(e);isNaN(r)||(this._larguraRotuloPorcentagem=this.controladorSplitter.definirLarguraRotulo(r))}this.renderSeletorTipos(),this.renderCategorias()}toggleExpandirTodas(){this._categorias.some(r=>r.aberto===!1)?this.expandirTudo():this.colapsarTudo()}renderSeletorTipos(){ue({tipoContainerElement:this.tipoContainerElement,tipos:this._tipos,tipoSelecionadoId:this._tipoSelecionadoId,estiloVisual:this.getAttribute("estilo-visual")||"autocad",onSelecionarTipo:e=>{this._tipoSelecionadoId=e,this.renderSeletorTipos();const r=this._tipos.find(i=>String(i.id)===String(e));this.dispatchEvent(new CustomEvent("ui-tipo-alterado",{bubbles:!0,composed:!0,detail:{id:e,tipo:r}}))},onEditarTipo:e=>this.dispatchEvent(new CustomEvent("ui-editar-tipo-clique",{bubbles:!0,composed:!0,detail:{tipo:e}})),onQuickSelect:e=>this.dispatchEvent(new CustomEvent("ui-quick-select",{bubbles:!0,composed:!0,detail:{tipo:e}})),onSelectObjects:e=>this.dispatchEvent(new CustomEvent("ui-selecionar-objetos",{bubbles:!0,composed:!0,detail:{tipo:e}})),onCalculadora:e=>this.dispatchEvent(new CustomEvent("ui-calculadora",{bubbles:!0,composed:!0,detail:{tipo:e}}))})}renderCategorias(){const e=this.shadow.getElementById("lista-categorias");e&&he({listaContainer:e,categorias:this._categorias,termoBusca:this._termoBusca,onToggleCategoria:r=>this.toggleCategoria(r),linhaCtx:{valoresAtuais:this.gerenciadorValores.getValores(),valoresOriginais:{},isDirty:this.gerenciadorValores.isDirty,onAtualizarCampoVisual:(r,i)=>k(this.shadow,r,i),editorCtx:{obterValorAtual:r=>this.gerenciadorValores.obterValor(r),registrarAlteracao:(r,i,a)=>{this.gerenciadorValores.registrarAlteracao(r,i,a)},focarProximoEditor:r=>_e(this.shadow,r),despacharEventoAcao:(r,i)=>{this.dispatchEvent(new CustomEvent("ui-acao-clique",{bubbles:!0,composed:!0,detail:{id:r.id,categoriaId:i,propriedade:r}}))}}}})}}E.definirCustomElement("ui-tabela-propriedades",Ce);exports.GerenciadorValoresPropriedades=xe;exports.TabelaOrquestradorDados=H;exports.TabelaRemotaController=D;exports.TabelaSelecaoController=C;exports.UITabela=Z;exports.UITabelaPropriedades=Ce;exports.abrirPopoverRedimensionamento=U;exports.alternarCategoria=we;exports.alternarDirecaoOrdenacao=I;exports.alternarPosicionamentoFlutuante=fe;exports.aplicarOrdenacaoTabela=P;exports.atualizarCampoVisual=k;exports.avaliarExpressaoMatematica=J;exports.colapsarTodasCategorias=ye;exports.conectarArrastoFlutuante=ge;exports.conectarPainelControles=ve;exports.criarControladorSplitter=pe;exports.criarEditorAcao=re;exports.criarEditorBooleano=te;exports.criarEditorCorCad=le;exports.criarEditorCorSwatch=de;exports.criarEditorLinetype=ne;exports.criarEditorLineweight=se;exports.criarEditorNumero=ie;exports.criarEditorReadonly=ee;exports.criarEditorSelecao=oe;exports.criarEditorTexto=ae;exports.criarEditorValor=ce;exports.criarLinhaPropriedade=me;exports.executarOrquestracaoCorpo=Y;exports.executarOrquestracaoHeader=X;exports.executarRedimensionamentoColuna=W;exports.exibirPromptPopoverRedimensionamento=$;exports.expandirTodasCategorias=Ee;exports.focarProximoEditor=_e;exports.formatWidth=z;exports.getAlignmentClass=A;exports.getRowHeight=O;exports.getTextAlign=S;exports.inicializarScrollVirtualizacao=G;exports.iniciarRedimensionamentoColuna=j;exports.localizarIndiceItem=R;exports.montarEstruturaDOM=F;exports.orquestrarEstruturaInicial=K;exports.proximaDensidade=be;exports.renderizarCategoriasETree=he;exports.renderizarCorpoTabela=q;exports.renderizarHeaderTabela=V;exports.renderizarSeletorTipos=ue;exports.sincronizarAtributosTabela=L;exports.sincronizarPainelControles=_;exports.tratarMudancaAtributoTabela=Q;
|