@thibezer/ui-components-kit 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/README.md +760 -739
- package/dist/camadas.cjs +72 -72
- package/dist/camadas.js +700 -667
- package/dist/canvas.cjs +99 -140
- package/dist/canvas.js +5125 -1192
- package/dist/components/ui-camadas/camadas-persistencia.d.ts +4 -0
- package/dist/components/ui-camadas/ui-camadas.d.ts +10 -0
- package/dist/components/ui-canvas-cad/cad-estilos-externos.d.ts +16 -0
- package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +4 -0
- package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +262 -0
- package/dist/components/ui-canvas-cad/cad-ferramentas-barra.d.ts +15 -0
- package/dist/components/ui-canvas-cad/cad-snap.d.ts +32 -0
- package/dist/components/ui-canvas-cad/cad-toolbar-painel.d.ts +1 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +143 -0
- package/dist/components/ui-lista-flutuante/lista-flutuante-posicionamento.d.ts +2 -0
- package/dist/components/ui-lista-flutuante/ui-lista-flutuante.d.ts +1 -0
- package/dist/components/ui-seletor-mapa-base/ui-seletor-mapa-base.d.ts +3 -0
- package/dist/components/ui-tabela/tabela-atributos-sync.d.ts +3 -0
- package/dist/components/ui-tabela/tabela-localizador.d.ts +8 -1
- package/dist/components/ui-tabela/tabela-orquestrador-dados.d.ts +4 -0
- package/dist/components/ui-tabela/tabela-selecao.d.ts +19 -9
- package/dist/components/ui-tabela/tipos.d.ts +6 -0
- package/dist/components/ui-tabela/ui-tabela.d.ts +41 -2
- package/dist/components/ui-tabela-propriedades/avaliador-expressao.d.ts +0 -5
- package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +17 -1
- package/dist/components/ui-tabela-propriedades/propriedades-flutuante.d.ts +2 -0
- package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +10 -1
- package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +3 -1
- package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +5 -1
- package/dist/core/alvo-digitavel.d.ts +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/svg-seguro.d.ts +10 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +12 -10
- package/dist/custom-elements.json +14782 -10666
- package/dist/data.cjs +1 -1
- package/dist/data.js +51 -46
- package/dist/forms.cjs +1 -1
- package/dist/forms.js +1 -1
- package/dist/gerencigeo-canvas/canvas_interacao.d.ts +18 -0
- package/dist/gerencigeo-canvas/feature_adapters.d.ts +35 -0
- package/dist/gerencigeo-canvas/feature_algoritmos.d.ts +45 -0
- package/dist/gerencigeo-canvas/feature_amostra.d.ts +4 -0
- package/dist/gerencigeo-canvas/feature_caixa.d.ts +19 -0
- package/dist/gerencigeo-canvas/feature_cluster.d.ts +61 -0
- package/dist/gerencigeo-canvas/feature_cursores.d.ts +17 -0
- package/dist/gerencigeo-canvas/feature_desenho.d.ts +53 -0
- package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +91 -0
- package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +19 -0
- package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +62 -0
- package/dist/gerencigeo-canvas/feature_formas.d.ts +7 -0
- package/dist/gerencigeo-canvas/feature_hud.d.ts +23 -0
- package/dist/gerencigeo-canvas/feature_indice.d.ts +36 -0
- package/dist/gerencigeo-canvas/feature_metricas.d.ts +16 -0
- package/dist/gerencigeo-canvas/feature_popup.d.ts +31 -0
- package/dist/gerencigeo-canvas/feature_selecao.d.ts +38 -0
- package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +14 -0
- package/dist/gerencigeo-canvas/feature_snap.d.ts +25 -0
- package/dist/gerencigeo-canvas/feature_types.d.ts +86 -0
- package/dist/gerencigeo-canvas/feature_versoes.d.ts +19 -0
- package/dist/gerencigeo-canvas/index.d.ts +21 -0
- package/dist/gerencigeo-canvas/layer_hit_test.d.ts +30 -0
- package/dist/gerencigeo-canvas/layer_manager.d.ts +11 -3
- package/dist/gerencigeo-canvas/layer_pane_ops.d.ts +9 -0
- package/dist/gerencigeo-canvas/mapa_controller.d.ts +1 -0
- package/dist/gerencigeo-canvas/mapa_pontos_shapes.d.ts +24 -5
- package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +89 -0
- package/dist/gerencigeo-canvas/renderers/vector_points_renderer.d.ts +1 -0
- package/dist/gerencigeo-canvas/renderers/vector_polygons_renderer.d.ts +2 -2
- package/dist/gerencigeo-canvas/types.d.ts +12 -0
- package/dist/gerencigeo-canvas/utils.d.ts +3 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +111 -106
- package/dist/leaflet-DcO7uRC-.cjs +1 -0
- package/dist/{leaflet-DkaFZYc5.js → leaflet-PPDKB6Dd.js} +37 -37
- package/dist/mapa.cjs +1 -1
- package/dist/mapa.js +1 -1
- package/dist/register.cjs +1 -1
- package/dist/register.js +3 -3
- package/dist/seletor-mapa-base.cjs +13 -13
- package/dist/seletor-mapa-base.js +101 -51
- package/dist/svg-seguro-BsbNQqpd.js +50 -0
- package/dist/svg-seguro-C76iLlAZ.cjs +1 -0
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +41 -36
- package/dist/tipos-elementos.d.ts +17 -4
- package/dist/tipos-vue.d.ts +15 -4
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/{ui-paleta-ferramentas-BIytXQLh.js → ui-paleta-ferramentas-CEZYcN4J.js} +18 -27
- package/dist/{ui-paleta-ferramentas-DqLY51qa.cjs → ui-paleta-ferramentas-Dbj1kBS9.cjs} +6 -6
- package/dist/{ui-switch-DWLgVVnT.js → ui-switch-BcOqOkiV.js} +124 -96
- package/dist/ui-switch-D7iPKDj-.cjs +53 -0
- package/dist/ui-tabela-propriedades-BBr5sqki.cjs +145 -0
- package/dist/{ui-tabela-propriedades-BNcE6VLX.js → ui-tabela-propriedades-Boy7I5yW.js} +1304 -1072
- package/package.json +169 -169
- package/dist/leaflet-Cw6tqYFh.cjs +0 -1
- package/dist/ui-switch-yZIn3IW0.cjs +0 -53
- package/dist/ui-tabela-propriedades-D3pyQvyy.cjs +0 -145
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
"use strict";var ke=Object.defineProperty;var Ae=(t,r,e)=>r in t?ke(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e;var g=(t,r,e)=>Ae(t,typeof r!="symbol"?r+"":r,e);const k=require("./listener-bag-D5omxZ9h.cjs"),ze=require("./parts-vQa2873h.cjs"),A=require("./ssr-safe-CiHD1adl.cjs");class D{constructor(r){g(this,"autoFetchController",null);this.ctx=r}async carregar(r){if(!r)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:r}}));try{const o=await fetch(r,{signal:e.signal});if(!o.ok)throw new Error(`HTTP ${o.status}: ${o.statusText}`);const i=await o.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:r,total:a.length,dados:a}})))}catch(o){if(o.name==="AbortError")return;this.autoFetchController===e&&(this.ctx.onCarregandoAlterado(!1),this.autoFetchController=null,console.error("[ui-tabela] Erro ao carregar dados remotos:",o),this.ctx.host.dispatchEvent(new CustomEvent("ui-fetch-erro",{bubbles:!0,composed:!0,detail:{url:r,erro:o.message||String(o)}})))}}abortar(){this.autoFetchController&&(this.autoFetchController.abort(),this.autoFetchController=null)}}function R(t,r,e="id"){if(!t||t.length===0)return-1;if(typeof r=="function")return t.findIndex(r);const o=t.findIndex(i=>!i||typeof i!="object"?!1:i[e]!==void 0&&(i[e]===r||String(i[e])===String(r))||i.id!==void 0&&(i.id===r||String(i.id)===String(r))||i._id!==void 0&&(i._id===r||String(i._id)===String(r))||i.codigo!==void 0&&(i.codigo===r||String(i.codigo)===String(r))||i.key!==void 0&&(i.key===r||String(i.key)===String(r)));if(o!==-1)return o;if(typeof r=="number"&&Number.isInteger(r)){if(r>=0&&r<t.length)return r}else if(typeof r=="string"&&/^\d+$/.test(r.trim())){const i=parseInt(r.trim(),10);if(i>=0&&i<t.length)return i}return-1}class z{constructor(r){g(this,"itemSelecionado",null);g(this,"indiceSelecionado",null);this.ctx=r}getItemSelecionado(){return this.itemSelecionado}setItemSelecionado(r){this.itemSelecionado=r,this.indiceSelecionado=r?this.ctx.dadosExibicao.indexOf(r):null,this.atualizarLinhasSelecionadas()}getIndiceSelecionado(){return this.indiceSelecionado}setIndiceSelecionado(r){this.indiceSelecionado=r,this.itemSelecionado=r!==null&&r>=0&&r<this.ctx.dadosExibicao.length?this.ctx.dadosExibicao[r]:null,this.atualizarLinhasSelecionadas()}restaurarSelecao(r){const e=this.ctx.chaveId,o=this.ctx.dadosExibicao.findIndex(i=>i===r||r[e]!==void 0&&i[e]!==void 0&&String(i[e])===String(r[e]));o>=0&&(this.itemSelecionado=this.ctx.dadosExibicao[o],this.indiceSelecionado=o)}limparSelecao(){this.itemSelecionado=null,this.indiceSelecionado=null,this.atualizarLinhasSelecionadas()}isItemSelecionado(r,e){if(this.itemSelecionado){if(this.itemSelecionado===r)return!0;const o=this.ctx.chaveId;if(r[o]!==void 0&&this.itemSelecionado[o]!==void 0)return String(r[o])===String(this.itemSelecionado[o]);if(r.id!==void 0&&this.itemSelecionado.id!==void 0)return String(r.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 o=e.getAttribute("data-index"),i=o!==null?parseInt(o,10):-1,a=i>=0?this.ctx.dadosExibicao[i]:null,l=a?this.isItemSelecionado(a,i):!1;e.classList.toggle("ui-tabela__tr--selecionada",l),ze.alternarPart(e,"linha-selecionada",l),l?(e.setAttribute("data-selecionada","true"),e.setAttribute("aria-current","true")):(e.removeAttribute("data-selecionada"),e.removeAttribute("aria-current"))})}rolarPara(r,e){var d,p,s;const o=R(this.ctx.dadosExibicao,r,this.ctx.chaveId);if(o===-1)return!1;const i=this.ctx.dadosExibicao[o],a=(e==null?void 0:e.comportamento)||"smooth";e!=null&&e.selecionar&&(this.itemSelecionado=i,this.indiceSelecionado=o,this.atualizarLinhasSelecionadas(),this.ctx.host.dispatchEvent(new CustomEvent("ui-linha-selecionada",{bubbles:!0,composed:!0,detail:{item:i,indice:o}})));const l=this.ctx.getRowHeight(),n=(d=this.ctx.tbodyElement)==null?void 0:d.querySelector(`tr[data-index="${o}"]`);if(n&&!n.classList.contains("ui-tabela__virtual-spacer"))return this.ctx.containerElement&&(typeof window.happyDOM<"u"||typeof process<"u"&&((p=process.env)==null?void 0:p.NODE_ENV)==="test")&&(this.ctx.containerElement.scrollTop=o*l),typeof n.scrollIntoView=="function"&&n.scrollIntoView({behavior:a,block:"nearest"}),!0;if(this.ctx.containerElement){const c=Math.max(0,o*l);if(typeof this.ctx.containerElement.scrollTo=="function")try{this.ctx.containerElement.scrollTo({top:c,behavior:a})}catch{this.ctx.containerElement.scrollTop=c}else this.ctx.containerElement.scrollTop=c;return(a==="auto"||typeof window.happyDOM<"u"||typeof process<"u"&&((s=process.env)==null?void 0:s.NODE_ENV)==="test")&&(this.ctx.containerElement.scrollTop=c,this.ctx.onRenderBody()),!0}return!1}}function I(t,r,e){return t!==e?{idColuna:e,direcao:"asc"}:r==="asc"?{idColuna:e,direcao:"desc"}:r==="desc"?{idColuna:null,direcao:"original"}:{idColuna:e,direcao:"asc"}}function P(t,r,e){if(!r||e==="original")return[...t];const o=e==="asc"?1:-1;return[...t].sort((i,a)=>{const l=i[r],n=a[r];return l===n?0:l==null?1*o:n==null?-1*o:typeof l=="number"&&typeof n=="number"?(l-n)*o:String(l).localeCompare(String(n),"pt-BR",{numeric:!0,sensitivity:"base"})*o})}class H{constructor(){g(this,"dadosOriginais",[]);g(this,"dadosExibicao",[]);g(this,"colunaOrdenada",null);g(this,"direcaoOrdenacao","original");g(this,"ultimoFiltro","")}getDadosOriginais(){return this.dadosOriginais}setDadosOriginais(r){this.dadosOriginais=Array.isArray(r)?[...r]:[],this.aplicarOrdenacao()}getDadosExibicao(){return this.dadosExibicao}getColunaOrdenada(){return this.colunaOrdenada}setColunaOrdenada(r){this.colunaOrdenada=r,r?this.direcaoOrdenacao==="original"&&(this.direcaoOrdenacao="asc"):this.direcaoOrdenacao="original",this.aplicarOrdenacao()}getDirecaoOrdenacao(){return this.direcaoOrdenacao}setDirecaoOrdenacao(r){this.direcaoOrdenacao=r||"original",this.direcaoOrdenacao==="original"&&(this.colunaOrdenada=null),this.aplicarOrdenacao()}alternarOrdenacaoColuna(r){if(!r.ordenavel)return null;const e=I(this.colunaOrdenada,this.direcaoOrdenacao,r.id);return this.colunaOrdenada=e.idColuna,this.direcaoOrdenacao=e.direcao,this.aplicarOrdenacao(),e}aplicarOrdenacao(){this.dadosExibicao=P(this.dadosOriginais,this.colunaOrdenada,this.direcaoOrdenacao)}filtrar(r){if(this.ultimoFiltro=(r||"").trim().toLowerCase(),!this.ultimoFiltro){this.aplicarOrdenacao();return}this.dadosExibicao=this.dadosOriginais.filter(e=>Object.values(e).some(o=>o==null?!1:String(o).toLowerCase().includes(this.ultimoFiltro)))}}const Se=':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__ordenar{all:unset;display:flex;width:100%;box-sizing:border-box;cursor:pointer;font:inherit;color:inherit;text-align:inherit}.ui-tabela__ordenar:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:2px;border-radius:var(--ui-raio-sm, 4px)}.ui-tabela tbody tr:focus{outline:none}.ui-tabela tbody tr:focus-visible{outline:2px solid var(--ui-cor-primaria, #00E08A);outline-offset:-2px}.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:var(--ui-cor-linha-selecionada, color-mix(in srgb, var(--ui-cor-primaria, #00E08A) 14%, transparent));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:var(--ui-cor-linha-selecionada-hover, color-mix(in srgb, var(--ui-cor-primaria, #00E08A) 22%, transparent))}.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 color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);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:var(--ui-sombra-md, 0 4px 20px rgba(0, 0, 0, .6));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:var(--ui-raio-sm, 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:var(--ui-sombra-lg, 0 8px 32px rgba(0, 0, 0, .8));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:var(--ui-raio-sm, 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:var(--ui-raio-sm, 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 L(t){return t==null||t===""?"":typeof t=="number"?`${t}px`:t}function M(t){return t==="centro"||t==="center"?"ui-tabela--alinhar-centro":t==="direita"||t==="right"?"ui-tabela--alinhar-direita":"ui-tabela--alinhar-esquerda"}function B(t){return t==="centro"||t==="center"?"center":t==="direita"||t==="right"?"right":"left"}function F(t){return t==="compacta"?30:t==="relaxada"?56:42}function O(t,r,e,o){t.innerHTML=`<style>${Se}</style>`;const i=document.createElement("div");i.className="ui-tabela-container",i.setAttribute("part","base"),e&&(i.style.maxHeight=e);const a=document.createElement("div");a.className="ui-tabela__empty",a.setAttribute("part","vazio"),a.style.display="none";const l=document.createElement("div");l.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=r,a.appendChild(l),a.appendChild(n);const d=document.createElement("table");d.className="ui-tabela",d.setAttribute("part","tabela");const p=document.createElement("colgroup"),s=document.createElement("thead"),c=document.createElement("tbody");d.appendChild(p),d.appendChild(s),d.appendChild(c),i.appendChild(a),i.appendChild(d);const u=document.createElement("div");return u.className="ui-tabela__loading",u.setAttribute("part","carregando"),u.style.display=o?"flex":"none",u.innerHTML=`
|
|
5
|
-
<div class="ui-tabela__spinner"></div>
|
|
6
|
-
<span>Carregando dados...</span>
|
|
7
|
-
`,i.appendChild(u),t.appendChild(i),{containerElement:i,tableElement:d,theadElement:s,tbodyElement:c,colgroupElement:p,emptyElement:a,loadingElement:u}}function V(t){var a,l;if(!t.theadElement||!t.colgroupElement)return;t.headerListeners.cleanup();const e=t.theadElement.getRootNode().activeElement,o=e&&t.theadElement.contains(e)?((a=e.closest("th"))==null?void 0:a.getAttribute("data-coluna"))??null:null;t.theadElement.innerHTML="",t.colgroupElement.innerHTML="";const i=document.createElement("tr");if(t.colunas.forEach((n,d)=>{const p=document.createElement("col");n.largura!==void 0&&(p.style.width=t.formatWidth(n.largura)),t.colgroupElement.appendChild(p);const s=document.createElement("th"),c=t.getAlignmentClass(n.alinhamento);if(s.className=c,s.setAttribute("part","celula-cabecalho"),s.scope="col",s.setAttribute("data-coluna",n.id),s.style.textAlign=t.getTextAlign(n.alinhamento),n.largura!==void 0&&(s.style.width=t.formatWidth(n.largura)),n.larguraMinima!==void 0&&(s.style.minWidth=t.formatWidth(n.larguraMinima)),n.larguraMaxima!==void 0){const v=t.formatWidth(n.larguraMaxima);s.style.maxWidth=v,s.style.overflow="hidden",s.style.textOverflow="ellipsis",s.style.whiteSpace="nowrap"}n.tooltip&&(s.title=n.tooltip);const u=!!n.ordenavel&&t.colunaOrdenada===n.id&&t.direcaoOrdenacao!=="original",h=u&&t.direcaoOrdenacao==="desc";if(n.ordenavel){s.classList.add("ui-tabela__th--ordenavel");const v=()=>t.onHeaderClick(n);t.headerListeners.add(s,"click",v),u&&s.setAttribute("aria-sort",h?"descending":"ascending")}const m=v=>t.onHeaderContextMenu(v,n,d,s);t.headerListeners.add(s,"contextmenu",m);const x=document.createElement("div");x.className="ui-tabela__header-content";const b=document.createElement("span");b.className="ui-tabela__header-text",b.textContent=n.rotulo,x.appendChild(b);const f=document.createElement("span");if(f.className="ui-tabela__sort-icon",n.ordenavel){const v=u?"":"ui-tabela__sort-arrow--inativo",w=h?"ui-tabela__sort-arrow--desc":"";f.setAttribute("aria-hidden","true"),f.innerHTML=`
|
|
8
|
-
<svg class="ui-tabela__sort-arrow ${v} ${w}" viewBox="0 0 24 24">
|
|
9
|
-
<path d="M7 14l5-5 5 5H7z"/>
|
|
10
|
-
</svg>
|
|
11
|
-
`}if(x.appendChild(f),n.ordenavel){const v=document.createElement("button");v.type="button",v.className="ui-tabela__ordenar",v.setAttribute("part","ordenar"),v.appendChild(x),s.appendChild(v)}else s.appendChild(x);const _=document.createElement("div");_.className="ui-tabela__resizer",_.title="Arrastar para redimensionar largura (duplo-clique para auto-ajuste)";const E=v=>t.onInitColumnResize(v,n,d,s,_);t.headerListeners.add(_,"mousedown",E);const y=v=>{v.stopPropagation(),t.onColumnAutoFit(n,s,p)};t.headerListeners.add(_,"dblclick",y),s.appendChild(_),i.appendChild(s)}),t.theadElement.appendChild(i),o!==null){const n=Array.from(i.children).find(d=>d.getAttribute("data-coluna")===o);(l=n==null?void 0:n.querySelector(".ui-tabela__ordenar"))==null||l.focus()}}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 r=t.dadosExibicao.length,e=t.rowHeight,o=t.virtualizar&&r>30;let i=0,a=r;if(o){const u=t.containerElement.scrollTop,h=t.containerElement.clientHeight||400,m=5;i=Math.max(0,Math.floor(u/e)-m),a=Math.min(r,Math.ceil((u+h)/e)+m)}const n=t.tbodyElement.getRootNode().activeElement,d=n&&n.parentElement===t.tbodyElement?n.getAttribute("data-index"):null,p=t.indiceAtivo??null,s=p!==null&&p>=i&&p<a?p:i;t.tbodyElement.innerHTML="";const c=document.createDocumentFragment();if(o&&i>0){const u=document.createElement("tr");u.className="ui-tabela__virtual-spacer",u.style.height=`${i*e}px`;const h=document.createElement("td");h.colSpan=t.colunas.length||1,u.appendChild(h),c.appendChild(u)}for(let u=i;u<a;u++){const h=t.dadosExibicao[u],m=document.createElement("tr");m.setAttribute("data-index",String(u)),m.setAttribute("part","linha"),m.tabIndex=u===s?0:-1;const x=t.chaveId;h[x]!==void 0?m.setAttribute("data-id",String(h[x])):h.id!==void 0?m.setAttribute("data-id",String(h.id)):h._id!==void 0&&m.setAttribute("data-id",String(h._id)),t.isItemSelecionado(h,u)&&(m.classList.add("ui-tabela__tr--selecionada"),m.setAttribute("part","linha linha-selecionada"),m.setAttribute("aria-current","true"),m.setAttribute("data-selecionada","true")),m.addEventListener("click",b=>{const f=b.target;f&&f.closest("button, input, select, textarea, a, [data-prevent-select]")||t.onLinhaClique(h,u)}),t.colunas.forEach(b=>{const f=document.createElement("td"),_=t.getAlignmentClass(b.alinhamento);if(f.className=_,f.setAttribute("part","celula"),f.style.textAlign=t.getTextAlign(b.alinhamento),b.larguraMaxima!==void 0){const v=t.formatWidth(b.larguraMaxima);f.style.maxWidth=v,f.style.overflow="hidden",f.style.textOverflow="ellipsis",f.style.whiteSpace="nowrap"}const E=document.createElement("div");E.className="ui-tabela__cell-content",b.larguraMaxima!==void 0&&E.classList.add("ui-tabela__cell-truncate");const y=h[b.id];if(typeof b.render=="function"){const v=b.render(y,h,u);v instanceof Node?E.appendChild(v):E.textContent=String(v??"")}else if(y instanceof Node)E.appendChild(y);else{const v=y!=null?String(y):"";E.textContent=v,b.larguraMaxima!==void 0&&!b.tooltip&&(f.title=v)}f.appendChild(E),m.appendChild(f)}),c.appendChild(m)}if(o&&a<r){const u=document.createElement("tr");u.className="ui-tabela__virtual-spacer",u.style.height=`${(r-a)*e}px`;const h=document.createElement("td");h.colSpan=t.colunas.length||1,u.appendChild(h),c.appendChild(u)}if(t.tbodyElement.appendChild(c),d!==null){const u=t.tbodyElement.querySelector(`tr[data-index="${d}"]`);u==null||u.focus({preventScroll:!0})}}function j(t){const{evento:r,coluna:e,colIndex:o,thElement:i,resizer:a,colgroupElement:l,onResizeStart:n,onResizeEnd:d}=t;r.stopPropagation(),r.preventDefault(),n(),a.classList.add("ui-tabela__resizer--ativo");const p=r.pageX,s=i.offsetWidth,c=l==null?void 0:l.children[o],u=x=>{const b=x.pageX-p;let f=s+b;if(e.larguraMinima!==void 0){const _=typeof e.larguraMinima=="number"?e.larguraMinima:parseInt(e.larguraMinima,10);isNaN(_)||(f=Math.max(_,f))}else f=Math.max(60,f);if(e.larguraMaxima!==void 0){const _=typeof e.larguraMaxima=="number"?e.larguraMaxima:parseInt(e.larguraMaxima,10);isNaN(_)||(f=Math.min(_,f))}e.largura=`${f}px`,i.style.width=`${f}px`,c&&(c.style.width=`${f}px`)},h=()=>{m(),d(String(e.largura))},m=()=>{a.classList.remove("ui-tabela__resizer--ativo"),window.removeEventListener("mousemove",u),window.removeEventListener("mouseup",h)};return window.addEventListener("mousemove",u),window.addEventListener("mouseup",h),m}function $(t){const{evento:r,coluna:e,colIndex:o,thElement:i,colgroupElement:a,shadow:l,onResizeEnd:n}=t,d=document.createElement("dialog");d.className="ui-tabela__prompt-dialog",d.style.position="fixed",d.style.left=`${r.clientX}px`,d.style.top=`${r.clientY}px`;const p=document.createElement("div");p.className="ui-tabela__prompt-title",p.textContent=`Largura para "${e.rotulo}" (px ou auto):`;const s=document.createElement("input");s.type="text";const c=e.largura?String(e.largura).replace("px",""):"auto";s.value=c;const u=document.createElement("div");u.className="ui-tabela__prompt-actions";const h=document.createElement("button");h.textContent="Aplicar";const m=document.createElement("button");m.textContent="Cancelar",u.appendChild(m),u.appendChild(h),d.appendChild(p),d.appendChild(s),d.appendChild(u),l.appendChild(d),d.showModal();const x=()=>{const f=s.value.trim().toLowerCase();if(f===""||f==="auto")e.largura=void 0,i.style.width="",a!=null&&a.children[o]&&(a.children[o].style.width="");else{const _=parseInt(f,10);!isNaN(_)&&_>20&&(e.largura=`${_}px`,i.style.width=`${_}px`,a!=null&&a.children[o]&&(a.children[o].style.width=`${_}px`))}d.close(),d.remove(),n(e.largura?String(e.largura):"auto")};h.addEventListener("click",b=>{b.stopPropagation(),x()}),m.addEventListener("click",b=>{b.stopPropagation(),d.close(),d.remove()}),s.addEventListener("keydown",b=>{b.key==="Enter"?(b.preventDefault(),x()):b.key==="Escape"&&(b.preventDefault(),d.close(),d.remove())}),setTimeout(()=>s.focus(),10)}function W(t,r,e,o,i,a){return j({evento:t,coluna:r,colIndex:e,thElement:o,resizer:i,colgroupElement:a.colgroupElement,onResizeStart:()=>a.onSetIsResizing(!0),onResizeEnd:l=>{setTimeout(()=>a.onSetIsResizing(!1),50),a.host.dispatchEvent(new CustomEvent("ui-column-resize",{detail:{idColuna:r.id,largura:l},bubbles:!0,composed:!0}))}})}function U(t,r,e,o,i){t.preventDefault(),t.stopPropagation(),$({evento:t,coluna:r,colIndex:e,thElement:o,colgroupElement:i.colgroupElement,shadow:i.shadow,onResizeEnd:a=>{i.host.dispatchEvent(new CustomEvent("ui-column-resize",{detail:{idColuna:r.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:L,getAlignmentClass:M,getTextAlign:B,onHeaderClick:r=>t.onHeaderClick(r),onHeaderContextMenu:(r,e,o,i)=>{U(r,e,o,i,{host:t.host,colgroupElement:t.colgroupElement,shadow:t.shadow,onSetIsResizing:t.onSetIsResizing})},onInitColumnResize:(r,e,o,i,a)=>{const l=W(r,e,o,i,a,{host:t.host,colgroupElement:t.colgroupElement,shadow:t.shadow,onSetIsResizing:t.onSetIsResizing});t.onActiveResizeCleanup(l)},onColumnAutoFit:(r,e,o)=>{r.largura=void 0,e.style.width="",o.style.width="",t.host.dispatchEvent(new CustomEvent("ui-column-resize",{bubbles:!0,composed:!0,detail:{idColuna:r.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,indiceAtivo:t.indiceAtivo,isItemSelecionado:(r,e)=>t.selecaoController.isItemSelecionado(r,e),onLinhaClique:(r,e)=>{t.selecaoController.setItemSelecionado(r),t.host.dispatchEvent(new CustomEvent("ui-linha-clique",{bubbles:!0,composed:!0,detail:{item:r,indice:e}}))},formatWidth:L,getAlignmentClass:M,getTextAlign:B})}function G(t,r){let e=!1;const o=()=>{e||(window.requestAnimationFrame(()=>{r(),e=!1}),e=!0)};return t.addEventListener("scroll",o),o}function K(t,r,e,o){return O(t,r,e,o)}function T(t){const r=t.host.getAttribute("texto-vazio")||t.host.getAttribute("empty-text");r&&t.onTextoVazioAlterado(r);const e=t.host.getAttribute("virtualizar")||t.host.getAttribute("virtualize");e!==null&&t.onVirtualizarAlterado(e!=="false");const o=t.host.getAttribute("src");o&&t.host.isConnected&&t.onCarregarSrc(o);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,r,e){if(T(e),t==="max-height"&&e.containerElement){e.containerElement.style.maxHeight=r||"";return}if((t==="texto-vazio"||t==="empty-text")&&e.emptyElement){const o=e.emptyElement.querySelector(".ui-tabela__empty-text");o&&r&&(o.textContent=r),e.onRenderBody();return}if(t==="carregando"||t==="loading"){e.loadingElement&&(e.loadingElement.style.display=r!==null?"flex":"none");return}if(t==="densidade"||t==="density"){e.onRenderBody();return}e.onRenderTotal()}class Z extends A.SafeHTMLElement{constructor(){super();g(this,"shadow");g(this,"_colunas",[]);g(this,"_textoVazio","Nenhum registro encontrado");g(this,"_virtualizar",!0);g(this,"_isResizing",!1);g(this,"_carregando",!1);g(this,"_src",null);g(this,"_containerElement",null);g(this,"_tableElement",null);g(this,"_theadElement",null);g(this,"_tbodyElement",null);g(this,"_colgroupElement",null);g(this,"_emptyElement",null);g(this,"_loadingElement",null);g(this,"_scrollHandler",null);g(this,"_activeResizeCleanup",null);g(this,"_headerListeners",new k.ListenerBag);g(this,"_corpoListeners",new k.ListenerBag);g(this,"_indiceAtivo",null);g(this,"remotaController");g(this,"selecaoController");g(this,"dadosController",new H);g(this,"handleFocoLinha",e=>{const o=e.target;o.parentElement!==this._tbodyElement||!o.hasAttribute("data-index")||(this._indiceAtivo=Number(o.getAttribute("data-index")),this._tbodyElement.querySelectorAll('tr[tabindex="0"]').forEach(i=>{i!==o&&(i.tabIndex=-1)}),o.tabIndex=0)});g(this,"handleTecladoCorpo",e=>{const o=e.target;if(o.parentElement!==this._tbodyElement||!o.hasAttribute("data-index"))return;const i=Number(o.getAttribute("data-index")),a=this.dadosController.getDadosExibicao().length-1;let l;switch(e.key){case"ArrowDown":l=Math.min(a,i+1);break;case"ArrowUp":l=Math.max(0,i-1);break;case"Home":l=0;break;case"End":l=a;break;case"PageDown":l=Math.min(a,i+this.linhasPorPagina());break;case"PageUp":l=Math.max(0,i-this.linhasPorPagina());break;case"Enter":case" ":e.preventDefault(),o.click();return;default:return}e.preventDefault(),this.focarLinha(l)});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 z({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","aria-label"]}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,o,i){Q(e,i,this.obterContextoAtributos()),this.sincronizarAria()}sincronizarAria(){if(!this._tableElement)return;const e=this.getAttribute("aria-label");e?this._tableElement.setAttribute("aria-label",e):this._tableElement.removeAttribute("aria-label"),this._tableElement.setAttribute("aria-busy",String(this._carregando))}syncAttributes(){T(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"),this.sincronizarAria()}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(),this._corpoListeners.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 o=this.dadosController.alternarOrdenacaoColuna(e);o&&(this.atualizarContextoSelecao(),this.renderHeader(),this.renderBody(),this.dispatchEvent(new CustomEvent("ui-sort",{detail:o,bubbles:!0,composed:!0})))}getRowHeight(){return F(this.densidade)}atualizarContextoSelecao(){var o;const e=((o=this.selecaoController)==null?void 0:o.getItemSelecionado())??null;this.selecaoController=new z({host:this,tbodyElement:this._tbodyElement,containerElement:this._containerElement,dadosExibicao:this.dadosController.getDadosExibicao(),chaveId:this.chaveId,getRowHeight:()=>this.getRowHeight(),onRenderBody:()=>this.renderBody()}),e&&this.selecaoController.restaurarSelecao(e),this._indiceAtivo=this.selecaoController.getIndiceSelecionado()}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())),this._tbodyElement&&this._corpoListeners.size===0&&(this._corpoListeners.add(this._tbodyElement,"keydown",this.handleTecladoCorpo),this._corpoListeners.add(this._tbodyElement,"focusin",this.handleFocoLinha)),this.sincronizarAria()}}linhasPorPagina(){var o,i;const e=(((o=this._containerElement)==null?void 0:o.clientHeight)??0)-(((i=this._theadElement)==null?void 0:i.offsetHeight)??0);return Math.max(1,Math.floor(e/this.getRowHeight()))}focarLinha(e){var s;const o=this._containerElement,i=this._tbodyElement;if(!o||!i)return;this._indiceAtivo=e;const a=`tr[data-index="${e}"]`;let l=i.querySelector(a);if(l||(o.scrollTop=Math.max(0,e*this.getRowHeight()-o.clientHeight/2),this.renderBody(),l=i.querySelector(a)),!l)return;l.focus({preventScroll:!0});const n=o.getBoundingClientRect(),d=l.getBoundingClientRect(),p=n.top+(((s=this._theadElement)==null?void 0:s.offsetHeight)??0);d.top<p?o.scrollTop-=p-d.top:d.bottom>n.bottom&&(o.scrollTop+=d.bottom-n.bottom)}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(),indiceAtivo:this._indiceAtivo,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,o){return this.selecaoController.rolarPara(e,o)}}A.definirCustomElement("ui-tabela",Z);function J(t){if(!t||typeof t!="string")return null;let r=t.trim();if(!r)return null;r=r.replace(/(\d),(\d)/g,"$1.$2").replace(/,/g,"."),r=r.replace(/\bpi\b/gi,String(Math.PI)),r=r.replace(/\be\b/gi,String(Math.E));let e=0;function o(){return r[e]||""}function i(){return r[e++]||""}function a(){for(;e<r.length&&/\s/.test(r[e]);)e++}function l(){a();let s=n();for(a();e<r.length;){const c=o();if(c==="+"||c==="-"){i(),a();const u=e,h=n();a(),r.slice(u,e).includes("%")?s=c==="+"?s+s*h:s-s*h:s=c==="+"?s+h:s-h}else break}return s}function n(){a();let s=d();for(a();e<r.length;){const c=o();if(c==="*"||c==="/"||c==="x"||c==="X"){i(),a();const u=d();if(c==="/"&&u===0)throw new Error("Divisão por zero");s=c==="/"?s/u:s*u,a()}else break}return s}function d(){a();let s=p();if(a(),o()==="^"){i();const c=d();s=Math.pow(s,c)}else if(r.slice(e,e+2)==="**"){e+=2;const c=d();s=Math.pow(s,c)}return s}function p(){a();const s=o();if(s==="+"||s==="-"){i();const h=p();return s==="-"?-h:h}if(s==="("){i();const h=l();return a(),o()===")"&&i(),a(),o()==="%"?(i(),h/100):h}const c=r.slice(e).match(/^([a-zA-Z_]\w*)\s*\(/);if(c){const h=c[1].toLowerCase();e+=c[0].length;const m=l();a(),o()===")"&&i();let x=m;switch(h){case"sqrt":x=Math.sqrt(m);break;case"abs":x=Math.abs(m);break;case"round":x=Math.round(m);break;case"floor":x=Math.floor(m);break;case"ceil":x=Math.ceil(m);break;case"sin":x=Math.sin(m);break;case"cos":x=Math.cos(m);break;case"tan":x=Math.tan(m);break}return a(),o()==="%"?(i(),x/100):x}const u=r.slice(e).match(/^([0-9]+(?:\.[0-9]+)?|\.[0-9]+)/);if(u){e+=u[0].length;let h=parseFloat(u[0]);return a(),o()==="%"&&(i(),h=h/100),h}throw new Error("Caractere inválido: "+s)}try{const s=l();return a(),e<r.length?null:isFinite(s)?s:null}catch{return null}}function ee(t){const r=document.createElement("span"),e=typeof t=="number"||typeof t=="string"&&/^-?\d+(\.\d+)?$/.test(t.trim());return r.className=`ui-prop__valor-readonly ${e?"ui-prop__valor-readonly--numero":""}`.trim(),r.textContent=t!=null?String(t):"—",r}function te(t,r,e,o){const i=document.createElement("label");i.className="ui-prop__editor-booleano";const a=!!e,l=document.createElement("div");l.className=`ui-prop__checkbox-custom ${a?"ui-prop__checkbox-custom--marcado":""}`,l.textContent=a?"✓":"";const n=document.createElement("span");return n.className="ui-prop__booleano-rotulo",n.textContent=a?"Sim":"Não",i.appendChild(l),i.appendChild(n),i.addEventListener("click",d=>{d.preventDefault();const p=!o.obterValorAtual(r.id);o.registrarAlteracao(t,r.id,p),l.classList.toggle("ui-prop__checkbox-custom--marcado",p),l.textContent=p?"✓":"",n.textContent=p?"Sim":"Não"}),i}function re(t,r,e,o){const i=document.createElement("select");return i.className="ui-prop__editor-select",(r.opcoes||[]).forEach(a=>{const l=document.createElement("option");l.value=String(a.id),l.textContent=a.rotulo,String(a.id)===String(e)&&(l.selected=!0),i.appendChild(l)}),i.addEventListener("change",()=>{o.registrarAlteracao(t,r.id,i.value)}),i.addEventListener("keydown",a=>{a.key==="Enter"&&o.focarProximoEditor(i)}),i}function oe(t,r,e){const o=document.createElement("button");return o.type="button",o.className="ui-prop__btn-acao-inline",o.textContent=r.rotuloAcao||"Editar...",o.addEventListener("click",()=>{typeof r.onClickAcao=="function"&&r.onClickAcao(r),e.despacharEventoAcao(r,t)}),o.addEventListener("keydown",i=>{i.key==="Enter"&&o.click()}),o}function ie(t,r,e,o){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",r.placeholder&&(i.placeholder=r.placeholder);const a=n=>{if(n==null||n==="")return"";const d=Number(n);return isNaN(d)?String(n):r.casasDecimais!==void 0?d.toFixed(r.casasDecimais):String(d)};i.value=a(e),i.addEventListener("focus",()=>{i.select()}),i.addEventListener("input",()=>{const n=i.value,d=/[\+\-\*\/\^\%\(\)]/.test(n)&&!/^[+-]?[0-9]*\.?[0-9]*$/.test(n.trim());i.classList.toggle("ui-prop__editor-input--calculando",d)});const l=()=>{i.classList.remove("ui-prop__editor-input--calculando");const n=i.value.trim();if(n===""){o.registrarAlteracao(t,r.id,null);return}const d=J(n);if(d!==null&&!isNaN(d)){let p=d;r.casasDecimais!==void 0&&(p=Number(d.toFixed(r.casasDecimais))),i.value=a(p),p!==o.obterValorAtual(r.id)&&o.registrarAlteracao(t,r.id,p)}else i.value=a(o.obterValorAtual(r.id))};return i.addEventListener("change",l),i.addEventListener("blur",l),i.addEventListener("keydown",n=>{if(n.key==="Enter")l(),o.focarProximoEditor(i);else if(n.key==="Escape")i.classList.remove("ui-prop__editor-input--calculando"),i.value=a(o.obterValorAtual(r.id)),i.blur();else if(n.key==="ArrowUp"||n.key==="ArrowDown"){n.preventDefault();const d=parseFloat(i.value)||0;let p=r.casasDecimais!==void 0?Math.pow(10,-r.casasDecimais):1;n.shiftKey?p*=10:n.altKey&&(p*=.1);let s=n.key==="ArrowUp"?d+p:d-p;r.casasDecimais!==void 0?s=Number(s.toFixed(r.casasDecimais)):s=Math.round(s*100)/100,i.value=a(s),o.registrarAlteracao(t,r.id,s)}}),i}function ae(t,r,e,o){const i=document.createElement("input");i.type="text",i.className="ui-prop__editor-input",r.placeholder&&(i.placeholder=r.placeholder),i.value=e!=null?String(e):"",i.addEventListener("focus",()=>{i.select()});const a=()=>{i.value!==o.obterValorAtual(r.id)&&o.registrarAlteracao(t,r.id,i.value)};return i.addEventListener("change",a),i.addEventListener("keydown",l=>{l.key==="Enter"?(a(),o.focarProximoEditor(i)):l.key==="Escape"&&(i.value=String(o.obterValorAtual(r.id)??""),i.blur())}),i}function ne(t,r,e,o){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 l=document.createElementNS("http://www.w3.org/2000/svg","line");l.setAttribute("x1","0"),l.setAttribute("y1","6"),l.setAttribute("x2","44"),l.setAttribute("y2","6");const n=s=>{const c=String(s||"").toLowerCase();c.includes("dash")||c.includes("tracej")||c.includes("hidden")?l.setAttribute("stroke-dasharray","6,3"):c.includes("dot")||c.includes("ponto")||c.includes("pontilh")?l.setAttribute("stroke-dasharray","2,3"):c.includes("center")||c.includes("eixo")?l.setAttribute("stroke-dasharray","8,3,2,3"):l.setAttribute("stroke-dasharray","none")};n(e),a.appendChild(l);const d=document.createElement("select");return d.className="ui-prop__linha-select",(r.opcoes&&r.opcoes.length>0?r.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(s=>{const c=document.createElement("option");c.value=String(s.id),c.textContent=s.rotulo,String(s.id).toLowerCase()===String(e).toLowerCase()&&(c.selected=!0),d.appendChild(c)}),d.addEventListener("change",()=>{n(d.value),o.registrarAlteracao(t,r.id,d.value)}),d.addEventListener("keydown",s=>{s.key==="Enter"&&o.focarProximoEditor(d)}),i.appendChild(a),i.appendChild(d),i}function se(t,r,e,o){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 l=document.createElementNS("http://www.w3.org/2000/svg","line");l.setAttribute("x1","0"),l.setAttribute("y1","6"),l.setAttribute("x2","38"),l.setAttribute("y2","6");const n=s=>{const c=parseFloat(String(s).replace(/[^0-9.]/g,""));return isNaN(c)||c<=0?1.5:Math.min(8,Math.max(1,c*8))};l.setAttribute("stroke-width",String(n(e))),a.appendChild(l);const d=document.createElement("select");return d.className="ui-prop__espessura-select",(r.opcoes&&r.opcoes.length>0?r.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(s=>{const c=document.createElement("option");c.value=String(s.id),c.textContent=s.rotulo,String(s.id).toLowerCase()===String(e).toLowerCase()&&(c.selected=!0),d.appendChild(c)}),d.addEventListener("change",()=>{l.setAttribute("stroke-width",String(n(d.value))),o.registrarAlteracao(t,r.id,d.value)}),d.addEventListener("keydown",s=>{s.key==="Enter"&&o.focarProximoEditor(d)}),i.appendChild(a),i.appendChild(d),i}function le(t,r,e,o){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 l=s=>{const c=String(s).toLowerCase();return c==="red"||c==="1"?"#ff0000":c==="yellow"||c==="2"?"#ffff00":c==="green"||c==="3"?"#00ff00":c==="cyan"||c==="4"?"#00ffff":c==="blue"||c==="5"?"#0000ff":c==="magenta"||c==="6"?"#ff00ff":c==="white"||c==="7"||c==="bylayer"||c==="byblock"?"#ffffff":c.startsWith("#")?c:"#ffffff"};a.style.backgroundColor=l(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(s=>{const c=document.createElement("option");c.value=s.id,c.textContent=s.rotulo,String(s.id).toLowerCase()===String(e).toLowerCase()&&(c.selected=!0),n.appendChild(c)});const p=document.createElement("input");return p.type="color",p.className="ui-prop__cor-picker-oculto",p.addEventListener("input",()=>{const s=p.value;a.style.backgroundColor=s,o.registrarAlteracao(t,r.id,s)}),n.addEventListener("change",()=>{n.value==="custom"?p.click():(a.style.backgroundColor=l(n.value),o.registrarAlteracao(t,r.id,n.value))}),n.addEventListener("keydown",s=>{s.key==="Enter"&&o.focarProximoEditor(n)}),i.appendChild(a),i.appendChild(n),i.appendChild(p),i}function de(t,r,e,o){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 l=document.createElement("span");l.className="ui-prop__cor-texto",l.textContent=r.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 d=n.value;a.style.backgroundColor=d,l.textContent=d,o.registrarAlteracao(t,r.id,d)}),i.addEventListener("click",()=>{n.click()}),i.appendChild(a),i.appendChild(l),i.appendChild(n),i}function ce(t,r,e,o){return r.somenteLeitura||r.tipo==="readonly"?ee(e):r.tipo==="booleano"?te(t,r,e,o):r.tipo==="linha"||r.tipo==="linetype"?ne(t,r,e,o):r.tipo==="espessura"||r.tipo==="lineweight"?se(t,r,e,o):r.tipo==="cor-cad"?le(t,r,e,o):r.tipo==="selecao"?re(t,r,e,o):r.tipo==="cor"?de(t,r,e,o):r.tipo==="acao"?oe(t,r,o):r.tipo==="numero"?ie(t,r,e,o):ae(t,r,e,o)}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 r=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 o=document.createElement("div");o.className="ui-prop__tipo-miniatura",r.iconeSvg?o.innerHTML=r.iconeSvg:o.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=r.rotulo;const l=document.createElement("div");l.className="ui-prop__tipo-subtexto",l.textContent=r.subtipo||"Tipo de Família",i.appendChild(a),i.appendChild(l),e.appendChild(o),e.appendChild(i);const n=document.createElement("div");n.className="ui-prop__tipo-revit-subbarra";const d=document.createElement("select");d.className="ui-prop__tipo-select",t.tipos.forEach(s=>{const c=document.createElement("option");c.value=s.id,c.textContent=`${s.rotulo}${s.subtipo?` : ${s.subtipo}`:""}`,String(s.id)===String(t.tipoSelecionadoId)&&(c.selected=!0),d.appendChild(c)}),d.addEventListener("change",()=>{t.onSelecionarTipo(d.value)});const p=document.createElement("button");p.type="button",p.className="ui-prop__btn-editar-tipo",p.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
|
-
`,p.addEventListener("click",()=>{t.onEditarTipo(r)}),n.appendChild(d),n.appendChild(p),t.tipoContainerElement.appendChild(e),t.tipoContainerElement.appendChild(n)}else{const e=document.createElement("div");e.className="ui-prop__tipo-autocad-bar";const o=document.createElement("select");o.className="ui-prop__tipo-select",t.tipos.forEach(d=>{const p=document.createElement("option");p.value=d.id,p.textContent=d.rotulo,String(d.id)===String(t.tipoSelecionadoId)&&(p.selected=!0),o.appendChild(p)}),o.addEventListener("change",()=>{t.onSelecionarTipo(o.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(r)});const l=document.createElement("button");l.type="button",l.className="ui-prop__btn-autocad",l.title="Selecionar objetos",l.setAttribute("aria-label","Selecionar objetos"),l.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
|
-
`,l.addEventListener("click",()=>{t.onSelectObjects(r)});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(r)}),i.appendChild(a),i.appendChild(l),i.appendChild(n),e.appendChild(o),e.appendChild(i),t.tipoContainerElement.appendChild(e)}}function pe(t){let r=45;function e(i){const a=Math.max(20,Math.min(65,i));return r=a,t.hostElement.style.setProperty("--ui-prop-rotulo-largura",`${a}%`),t.splitterElement&&(t.splitterElement.style.left=`calc(${a}% - 4px)`),a}function o(){if(!t.splitterElement||!t.corpoElement)return;t.splitterListeners.cleanup();let i=!1;const a=l=>{if(l.button!==0)return;l.preventDefault(),l.stopPropagation(),i=!0,t.splitterElement.classList.add("ui-prop__splitter--ativo");try{t.splitterElement.setPointerCapture(l.pointerId)}catch{}const n=t.corpoElement.getBoundingClientRect(),d=s=>{if(!i)return;const c=n.width;if(c<=0)return;const u=s.clientX-n.left;let b=Math.max(80,Math.min(c-130,u))/c*100;b=Math.max(20,Math.min(65,b)),e(b)},p=s=>{if(i){i=!1,t.splitterElement.classList.remove("ui-prop__splitter--ativo");try{t.splitterElement.hasPointerCapture(s.pointerId)&&t.splitterElement.releasePointerCapture(s.pointerId)}catch{}t.splitterElement.removeEventListener("pointermove",d),t.splitterElement.removeEventListener("pointerup",p),t.splitterElement.removeEventListener("pointercancel",p),t.onLarguraAlterada(r),t.hostElement.dispatchEvent(new CustomEvent("ui-splitter-resize",{bubbles:!0,composed:!0,detail:{larguraPorcentagem:r}}))}};t.splitterElement.addEventListener("pointermove",d),t.splitterElement.addEventListener("pointerup",p),t.splitterElement.addEventListener("pointercancel",p)};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:o,definirLarguraRotulo:e}}const Le=`:host{display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--ui-fonte-base, "Inter", 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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 5%,transparent);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:var(--ui-sombra-lg, 0 16px 48px rgba(0, 0, 0, .75)),0 0 0 1px color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 14%,transparent),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%,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 25%,transparent) 50%,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 25%,transparent) 65%,transparent 65%,transparent 80%,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 25%,transparent) 80%);pointer-events:auto}.ui-prop__btn-icone--ativo{background-color:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 18%,transparent)!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:var(--ui-raio-sm, 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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 5%,transparent);color:#fff}.ui-prop__tipo-select:focus{background-color:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 8%,transparent);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:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 15%,transparent)}.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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent) 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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-radius:var(--ui-raio-sm, 4px)}.ui-prop__corpo::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 30%,transparent)}.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:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 8%,transparent)}.ui-prop__linha:focus-within .ui-prop__col-rotulo{color:var(--ui-cor-texto, #ffffff);font-weight:500}.ui-prop__linha--modificada{background-color:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 5%,transparent)}.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:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 5%,transparent)}.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 color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 50%,transparent)}.ui-prop__splitter--ativo{background-color:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 8%,transparent)}.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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 3%,transparent)}.ui-prop__editor-input--numero{text-align:right;font-family:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, 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:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 8%,transparent)!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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 3%,transparent)}.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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 4%,transparent)}.ui-prop__cor-amostra{width:13px;height:13px;border-radius:2px;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 30%,transparent);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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 3%,transparent)}.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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 3%,transparent)}.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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 3%,transparent)}.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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 3%,transparent)}.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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 4%,transparent);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:var(--ui-fonte-codigo, ui-monospace, SFMono-Regular, Menlo, 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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 30%,transparent);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 Me(){return`
|
|
48
|
-
<style>${Le}</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:r,categorias:e,termoBusca:o,onToggleCategoria:i,linhaCtx:a}=t;if(r.innerHTML="",!e||e.length===0){const n=document.createElement("div");n.className="ui-prop__vazio",n.textContent="Nenhuma propriedade disponível.",r.appendChild(n);return}const l=document.createDocumentFragment();e.forEach(n=>{const d=(n.propriedades||[]).filter(f=>o?f.rotulo.toLowerCase().includes(o)||String(f.id).toLowerCase().includes(o):!0);if(o&&d.length===0)return;const p=n.aberto!==!1,s=document.createElement("div");s.className=`ui-prop__categoria ${p?"ui-prop__categoria--aberta":""}`,s.setAttribute("data-cat-id",n.id);const c=document.createElement("div");c.className="ui-prop__categoria-header";const u=document.createElement("div");u.className="ui-prop__categoria-titulo-bloco";const h=document.createElement("span");h.className="ui-prop__categoria-seta",h.textContent="▶";const m=document.createElement("span");m.textContent=n.titulo,u.appendChild(h),u.appendChild(m);const x=document.createElement("span");x.className="ui-prop__categoria-contador",x.textContent=String(d.length),c.appendChild(u),c.appendChild(x),c.addEventListener("click",()=>i(n.id)),c.addEventListener("dblclick",()=>i(n.id));const b=document.createElement("div");b.className="ui-prop__categoria-conteudo",d.forEach(f=>{const _=me(n.id,f,a);b.appendChild(_)}),s.appendChild(c),s.appendChild(b),l.appendChild(s)}),r.appendChild(l)}function me(t,r,e){const o=document.createElement("div");o.className="ui-prop__linha",o.setAttribute("data-prop-id",r.id);const i=e.valoresAtuais[r.id]!==void 0?e.valoresAtuais[r.id]:r.valor,a=e.valoresOriginais[r.id];e.isDirty&&i!==a&&o.classList.add("ui-prop__linha--modificada"),o.addEventListener("dblclick",()=>{const s=o.querySelector('input:not([type="color"]):not(.ui-prop__cor-picker-oculto), select, .ui-prop__btn-acao-inline');s&&(s.focus(),s instanceof HTMLInputElement&&s.select())});const l=document.createElement("div");l.className="ui-prop__col-rotulo",l.title=r.rotulo;const n=document.createElement("span");n.textContent=r.rotulo,l.appendChild(n),r.tipo==="numero"&&!r.somenteLeitura&&Be(l,t,r,e);const d=document.createElement("div");d.className="ui-prop__col-valor";const p=ce(t,r,i,e.editorCtx);if(d.appendChild(p),r.unidade){const s=document.createElement("span");s.className="ui-prop__unidade-sufixo",s.textContent=r.unidade,d.appendChild(s)}return o.appendChild(l),o.appendChild(d),o}function Be(t,r,e,o){t.classList.add("ui-prop__col-rotulo--scrub"),t.title=`${e.rotulo} (Arraste para ajustar, duplo-clique para editar)`;let i=0,a=0,l=!1;t.addEventListener("pointerdown",n=>{if(n.button!==0)return;i=n.clientX;const d=o.valoresAtuais[e.id];a=typeof d=="number"?d:parseFloat(String(d||0))||0,l=!1;try{t.setPointerCapture(n.pointerId)}catch{}t.classList.add("ui-prop__col-rotulo--arrastando");const p=c=>{const u=c.clientX-i;if(Math.abs(u)>2&&(l=!0),l){let h=1;c.shiftKey?h=.1:(c.ctrlKey||c.metaKey)&&(h=10);const m=e.casasDecimais!==void 0?e.casasDecimais:2,x=Math.pow(10,-Math.min(m,2));let b=a+u*x*h;e.casasDecimais!==void 0?b=Number(b.toFixed(e.casasDecimais)):b=Math.round(b*100)/100,o.editorCtx.registrarAlteracao(r,e.id,b),o.onAtualizarCampoVisual(e.id,b)}},s=c=>{t.classList.remove("ui-prop__col-rotulo--arrastando");try{t.hasPointerCapture(c.pointerId)&&t.releasePointerCapture(c.pointerId)}catch{}t.removeEventListener("pointermove",p),t.removeEventListener("pointerup",s),t.removeEventListener("pointercancel",s)};t.addEventListener("pointermove",p),t.addEventListener("pointerup",s),t.addEventListener("pointercancel",s)})}const N=300,Te=480;function ge(t){const r=t.hasAttribute("flutuante");if(r)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=`${Te}px`}return!r}function be(t,r,e){const o=r.getElementById("header");if(o){let a=null,l=0,n=0,d=0,p=0;const s=u=>{if(a===null)return;const h=u.clientX-l,m=u.clientY-n;let x=d+h,b=p+m;const f=Math.max(0,(typeof window<"u"?window.innerWidth:1024)-t.offsetWidth),_=Math.max(0,(typeof window<"u"?window.innerHeight:768)-30);x=Math.max(0,Math.min(f,x)),b=Math.max(0,Math.min(_,b)),t.style.left=`${x}px`,t.style.top=`${b}px`,t.style.right="auto",t.style.bottom="auto"},c=u=>{if(a!==null){try{o.releasePointerCapture(u.pointerId)}catch{}o.removeEventListener("pointermove",s),o.removeEventListener("pointerup",c),o.removeEventListener("pointercancel",c),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(o,"pointerdown",u=>{if(!t.hasAttribute("flutuante")||u.target.closest("button, input, select, a")||u.button!==0)return;u.preventDefault(),a=u.pointerId,l=u.clientX,n=u.clientY;const m=t.getBoundingClientRect();d=m.left,p=m.top,t.classList.add("arrastando");try{o.setPointerCapture(u.pointerId)}catch{}o.addEventListener("pointermove",s),o.addEventListener("pointerup",c),o.addEventListener("pointercancel",c)})}const i=r.getElementById("resizer-canto");if(i){let a=null,l=0,n=0,d=0,p=0;const s=u=>{if(a===null)return;const h=Math.max(200,l+(u.clientX-d)),m=Math.max(180,n+(u.clientY-p));t.style.width=`${h}px`,t.style.height=`${m}px`},c=u=>{if(a!==null){try{i.releasePointerCapture(u.pointerId)}catch{}i.removeEventListener("pointermove",s),i.removeEventListener("pointerup",c),i.removeEventListener("pointercancel",c),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",u=>{if(!t.hasAttribute("flutuante")||u.button!==0)return;u.preventDefault(),u.stopPropagation(),a=u.pointerId,d=u.clientX,p=u.clientY;const h=t.getBoundingClientRect();l=h.width,n=h.height;try{i.setPointerCapture(u.pointerId)}catch{}i.addEventListener("pointermove",s),i.addEventListener("pointerup",c),i.addEventListener("pointercancel",c)})}}function fe(t){return t==="compacta"?"ultracompacta":t==="ultracompacta"?"padrao":"compacta"}class xe{constructor(r){g(this,"valoresOriginais",{});g(this,"valoresAtuais",{});g(this,"dirty",!1);this.ctx=r}inicializarCategorias(r){this.valoresOriginais={},this.valoresAtuais={},this.dirty=!1,r.forEach(e=>{(e.propriedades||[]).forEach(o=>{this.valoresOriginais[o.id]=o.valor,this.valoresAtuais[o.id]=o.valor})}),this.ctx.onAtualizarBotoesFooter(this.dirty)}get isDirty(){return this.dirty}getValores(){return{...this.valoresAtuais}}setValores(r){!r||typeof r!="object"||(Object.keys(r).forEach(e=>{this.valoresAtuais[e]=r[e],this.valoresOriginais[e]=r[e]}),this.dirty=!1,this.ctx.onAtualizarBotoesFooter(this.dirty))}obterValor(r){return this.valoresAtuais[r]}definirValor(r,e,o=!0){var a;const i=this.valoresAtuais[r];if(this.valoresAtuais[r]=e,this.dirty=!0,this.ctx.onAtualizarBotoesFooter(this.dirty),this.ctx.onAtualizarCampoVisual(r,e),o){let l="";for(const n of this.ctx.getCategorias())if((a=n.propriedades)!=null&&a.some(d=>d.id===r)){l=n.id;break}this.emitirAlteracao(r,e,i,l)}}registrarAlteracao(r,e,o){var l;const i=this.valoresAtuais[e];this.valoresAtuais[e]=o,this.dirty=!0,this.ctx.onAtualizarBotoesFooter(this.dirty);const a=(l=this.ctx.hostElement.shadowRoot)==null?void 0:l.querySelector(`[data-prop-id="${e}"]`);a&&a.classList.add("ui-prop__linha--modificada"),this.ctx.isModoManual()||this.emitirAlteracao(e,o,i,r)}aplicar(){var e;if(!this.dirty)return;this.valoresOriginais={...this.valoresAtuais},this.dirty=!1,this.ctx.onAtualizarBotoesFooter(this.dirty);const r=(e=this.ctx.hostElement.shadowRoot)==null?void 0:e.querySelectorAll(".ui-prop__linha--modificada");r==null||r.forEach(o=>o.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(r,e,o,i=""){this.ctx.hostElement.dispatchEvent(new CustomEvent("ui-propriedade-alterada",{bubbles:!0,composed:!0,detail:{id:r,categoriaId:i,valor:e,valorAnterior:o,todosValores:{...this.valoresAtuais}}}))}}function ve(t){const{shadow:r,listeners:e,host:o,onToggleExpandirTodas:i,onFiltrar:a,onAplicar:l,onDesfazer:n,onAlternarDensidade:d,onAlternarFlutuante:p,onAlternarColapsoHorizontal:s}=t,c=r.getElementById("btn-flutuante");c&&p&&e.add(c,"click",p);const u=r.getElementById("btn-colapsar-horizontal");u&&s&&e.add(u,"click",s);const h=r.getElementById("faixa-estreita");h&&s&&e.add(h,"click",s);const m=r.getElementById("btn-expandir-faixa");m&&s&&e.add(m,"click",w=>{w.stopPropagation(),s()});const x=r.getElementById("btn-densidade");x&&d&&e.add(x,"click",d);const b=r.getElementById("btn-expandir-tudo");b&&e.add(b,"click",i);const f=r.getElementById("btn-fechar");f&&e.add(f,"click",()=>{o.dispatchEvent(new CustomEvent("ui-fechar",{bubbles:!0,composed:!0}))});const _=r.getElementById("filtro-input");_&&e.add(_,"input",()=>{const w=(_.value||"").trim().toLowerCase();a(w)});const E=r.getElementById("btn-aplicar");E&&e.add(E,"click",l);const y=r.getElementById("btn-desfazer");y&&e.add(y,"click",n);const v=r.getElementById("link-ajuda");v&&e.add(v,"click",()=>{o.dispatchEvent(new CustomEvent("ui-ajuda",{bubbles:!0,composed:!0}))})}function C(t,r){const e=t.getElementById("header-titulo-texto");e&&(e.textContent=r.getAttribute("titulo")||"Propriedades");const o=t.getElementById("btn-fechar");o&&(o.style.display=r.hasAttribute("fechavel")?"inline-flex":"none");const i=t.getElementById("btn-flutuante");if(i){const p=r.hasAttribute("flutuante");i.title=p?"Acoplar painel (Dock)":"Desacoplar / Modo flutuante (CAD)",i.classList.toggle("ui-prop__btn-icone--ativo",p)}const a=t.getElementById("btn-colapsar-horizontal");if(a){const p=r.hasAttribute("colapsado");a.title=p?"Expandir painel":"Recolher para coluna estreita",a.classList.toggle("ui-prop__btn-icone--ativo",p)}const l=t.getElementById("btn-densidade");if(l){const p=r.getAttribute("densidade")||"padrão";l.title=`Compressão vertical: ${p} (clique para alternar)`}const n=t.getElementById("filtro-container");n&&(n.style.display=r.hasAttribute("filtro")?"flex":"none");const d=t.getElementById("footer");d&&(d.style.display=r.getAttribute("modo-aplicar")==="manual"?"flex":"none")}function _e(t,r){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])')),o=e.indexOf(r);if(o!==-1&&o+1<e.length){const i=e[o+1];i.focus(),i instanceof HTMLInputElement&&i.select()}}function S(t,r,e){const o=t.querySelector(`[data-prop-id="${r}"]`);if(!o)return;const i=o.querySelector('input:not([type="color"]):not(.ui-prop__cor-picker-oculto)');i&&(i.value=String(e??""))}function Ee(t,r){r.forEach(o=>o.aberto=!0),t.querySelectorAll(".ui-prop__categoria").forEach(o=>o.classList.add("ui-prop__categoria--aberta"))}function ye(t,r){r.forEach(o=>o.aberto=!1),t.querySelectorAll(".ui-prop__categoria").forEach(o=>o.classList.remove("ui-prop__categoria--aberta"))}function we(t,r,e,o){const i=e.find(a=>a.id===o);if(i){i.aberto=i.aberto===!1;const a=t.querySelector(`[data-cat-id="${o}"]`);a&&a.classList.toggle("ui-prop__categoria--aberta",!!i.aberto),r.dispatchEvent(new CustomEvent("ui-categoria-toggle",{bubbles:!0,composed:!0,detail:{id:o,aberto:i.aberto}}))}}class Ce extends A.SafeHTMLElement{constructor(){super();g(this,"shadow");g(this,"listeners",new k.ListenerBag);g(this,"splitterListeners",new k.ListenerBag);g(this,"controladorSplitter");g(this,"gerenciadorValores");g(this,"_categorias",[]);g(this,"_tipos",[]);g(this,"_tipoSelecionadoId","");g(this,"_termoBusca","");g(this,"_larguraRotuloPorcentagem",45);g(this,"tipoContainerElement");g(this,"corpoElement");g(this,"btnAplicarElement");g(this,"btnDesfazerElement");g(this,"splitterElement");this.shadow=this.attachShadow({mode:"open"}),this.shadow.innerHTML=Me(),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,o)=>S(this.shadow,e,o),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()}),be(this,this.shadow,this.listeners),this.controladorSplitter.init(),this.syncState()}disconnectedCallback(){this.listeners.cleanup(),this.splitterListeners.cleanup()}attributeChangedCallback(e,o,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,o,i=!0){this.gerenciadorValores.definirValor(e,o,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=fe(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}})),C(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=ge(this);return C(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 o=!e;return C(this.shadow,this),this.dispatchEvent(new CustomEvent("ui-colapso-horizontal",{bubbles:!0,composed:!0,detail:{colapsado:o}})),o}syncState(){C(this.shadow,this);const e=this.getAttribute("largura-rotulo");if(e){const o=parseFloat(e);isNaN(o)||(this._larguraRotuloPorcentagem=this.controladorSplitter.definirLarguraRotulo(o))}this.renderSeletorTipos(),this.renderCategorias()}toggleExpandirTodas(){this._categorias.some(o=>o.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 o=this._tipos.find(i=>String(i.id)===String(e));this.dispatchEvent(new CustomEvent("ui-tipo-alterado",{bubbles:!0,composed:!0,detail:{id:e,tipo:o}}))},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:o=>this.toggleCategoria(o),linhaCtx:{valoresAtuais:this.gerenciadorValores.getValores(),valoresOriginais:{},isDirty:this.gerenciadorValores.isDirty,onAtualizarCampoVisual:(o,i)=>S(this.shadow,o,i),editorCtx:{obterValorAtual:o=>this.gerenciadorValores.obterValor(o),registrarAlteracao:(o,i,a)=>{this.gerenciadorValores.registrarAlteracao(o,i,a)},focarProximoEditor:o=>_e(this.shadow,o),despacharEventoAcao:(o,i)=>{this.dispatchEvent(new CustomEvent("ui-acao-clique",{bubbles:!0,composed:!0,detail:{id:o.id,categoriaId:i,propriedade:o}}))}}}})}}A.definirCustomElement("ui-tabela-propriedades",Ce);exports.GerenciadorValoresPropriedades=xe;exports.TabelaOrquestradorDados=H;exports.TabelaRemotaController=D;exports.TabelaSelecaoController=z;exports.UITabela=Z;exports.UITabelaPropriedades=Ce;exports.abrirPopoverRedimensionamento=U;exports.alternarCategoria=we;exports.alternarDirecaoOrdenacao=I;exports.alternarPosicionamentoFlutuante=ge;exports.aplicarOrdenacaoTabela=P;exports.atualizarCampoVisual=S;exports.avaliarExpressaoMatematica=J;exports.colapsarTodasCategorias=ye;exports.conectarArrastoFlutuante=be;exports.conectarPainelControles=ve;exports.criarControladorSplitter=pe;exports.criarEditorAcao=oe;exports.criarEditorBooleano=te;exports.criarEditorCorCad=le;exports.criarEditorCorSwatch=de;exports.criarEditorLinetype=ne;exports.criarEditorLineweight=se;exports.criarEditorNumero=ie;exports.criarEditorReadonly=ee;exports.criarEditorSelecao=re;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=L;exports.getAlignmentClass=M;exports.getRowHeight=F;exports.getTextAlign=B;exports.inicializarScrollVirtualizacao=G;exports.iniciarRedimensionamentoColuna=j;exports.localizarIndiceItem=R;exports.montarEstruturaDOM=O;exports.orquestrarEstruturaInicial=K;exports.proximaDensidade=fe;exports.renderizarCategoriasETree=he;exports.renderizarCorpoTabela=q;exports.renderizarHeaderTabela=V;exports.renderizarSeletorTipos=ue;exports.sincronizarAtributosTabela=T;exports.sincronizarPainelControles=C;exports.tratarMudancaAtributoTabela=Q;
|