1909 lines
62 KiB
JavaScript
1909 lines
62 KiB
JavaScript
import { defineComponent as F, createBlock as I, openBlock as c, mergeProps as re, withCtx as L, renderSlot as de, computed as V, ref as B, createElementBlock as $, createCommentVNode as R, createSlots as He, createVNode as M, createTextVNode as pe, toDisplayString as H, Fragment as X, renderList as oe, resolveComponent as G, createElementVNode as P, h as Ve, watch as se, withDirectives as Fe, withKeys as qe, vModelText as Re, normalizeClass as ue, resolveDynamicComponent as he, onMounted as We, onBeforeUnmount as Je, normalizeStyle as ke, withModifiers as Se } from "vue";
|
|
import { VBtn as Ze } from "vuetify/components/VBtn";
|
|
import { VBadge as Xe } from "vuetify/components/VBadge";
|
|
import { VCheckbox as Ge } from "vuetify/components/VCheckbox";
|
|
import { VIcon as Ke } from "vuetify/components/VIcon";
|
|
import { VRadio as Qe } from "vuetify/components/VRadio";
|
|
import { VRadioGroup as xe } from "vuetify/components/VRadioGroup";
|
|
import { VSelect as ea } from "vuetify/components/VSelect";
|
|
import { VTextField as Te } from "vuetify/components/VTextField";
|
|
import { VTextarea as aa } from "vuetify/components/VTextarea";
|
|
import { VCard as Oe, VCardTitle as Ie, VCardText as Ue, VCardActions as Le } from "vuetify/components/VCard";
|
|
import { VContainer as ta } from "vuetify/components/VGrid";
|
|
const oa = F({
|
|
name: "EliBotao",
|
|
inheritAttrs: !1,
|
|
props: {
|
|
color: {
|
|
type: String,
|
|
default: "primary"
|
|
},
|
|
variant: {
|
|
type: String,
|
|
default: "elevated"
|
|
},
|
|
size: {
|
|
type: String,
|
|
default: "default"
|
|
},
|
|
disabled: {
|
|
type: Boolean,
|
|
default: !1
|
|
},
|
|
loading: {
|
|
type: Boolean,
|
|
default: !1
|
|
}
|
|
}
|
|
}), q = (e, a) => {
|
|
const s = e.__vccOpts || e;
|
|
for (const [m, v] of a)
|
|
s[m] = v;
|
|
return s;
|
|
};
|
|
function ra(e, a, s, m, v, y) {
|
|
return c(), I(Ze, re({
|
|
color: e.color,
|
|
variant: e.variant,
|
|
size: e.size,
|
|
disabled: e.disabled,
|
|
loading: e.loading
|
|
}, e.$attrs, { class: "text-none pt-1" }), {
|
|
default: L(() => [
|
|
de(e.$slots, "default")
|
|
]),
|
|
_: 3
|
|
}, 16, ["color", "variant", "size", "disabled", "loading"]);
|
|
}
|
|
const Ne = /* @__PURE__ */ q(oa, [["render", ra]]), _e = {
|
|
suave: "4px",
|
|
pill: "10px"
|
|
}, la = F({
|
|
name: "EliBadge",
|
|
inheritAttrs: !1,
|
|
props: {
|
|
color: {
|
|
type: String,
|
|
default: "primary"
|
|
},
|
|
location: {
|
|
type: String,
|
|
default: "top right"
|
|
},
|
|
offsetX: {
|
|
type: String,
|
|
default: "0"
|
|
},
|
|
offsetY: {
|
|
type: String,
|
|
default: "0"
|
|
},
|
|
dot: {
|
|
type: Boolean,
|
|
default: !1
|
|
},
|
|
visible: {
|
|
type: Boolean,
|
|
default: !0
|
|
},
|
|
badge: {
|
|
type: [String, Number],
|
|
default: void 0
|
|
},
|
|
/** 🔥 NOVO: controla só o radius */
|
|
radius: {
|
|
type: String,
|
|
default: "suave"
|
|
}
|
|
},
|
|
setup(e) {
|
|
const a = V(() => e.radius in _e ? _e[e.radius] : e.radius), s = V(() => e.dot || e.badge !== void 0 ? e.visible : !1), m = V(() => ({
|
|
"--eli-badge-radius": a.value
|
|
}));
|
|
return { showBadge: s, badgeStyle: m };
|
|
}
|
|
});
|
|
function na(e, a, s, m, v, y) {
|
|
return e.showBadge ? (c(), I(Xe, re({
|
|
key: 0,
|
|
color: e.color
|
|
}, e.$attrs, {
|
|
location: e.location,
|
|
"offset-x": e.offsetX,
|
|
"offset-y": e.offsetY,
|
|
dot: e.dot,
|
|
content: e.badge,
|
|
style: e.badgeStyle
|
|
}), {
|
|
default: L(() => [
|
|
de(e.$slots, "default", {}, void 0, !0)
|
|
]),
|
|
_: 3
|
|
}, 16, ["color", "location", "offset-x", "offset-y", "dot", "content", "style"])) : de(e.$slots, "default", { key: 1 }, void 0, !0);
|
|
}
|
|
const we = /* @__PURE__ */ q(la, [["render", na], ["__scopeId", "data-v-de2fbf2f"]]);
|
|
function ia(e) {
|
|
return e.replace(/\D+/g, "");
|
|
}
|
|
function sa(e) {
|
|
const a = ia(e);
|
|
return a.length <= 11 ? a.replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d{1,2})$/, "$1-$2").slice(0, 14) : a.replace(/^(\d{2})(\d)/, "$1.$2").replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3").replace(/\.(\d{3})(\d)/, ".$1/$2").replace(/(\d{4})(\d)/, "$1-$2").slice(0, 18);
|
|
}
|
|
function ua(e) {
|
|
return e.replace(/\D+/g, "");
|
|
}
|
|
function da(e) {
|
|
const a = ua(e);
|
|
return a ? a.length <= 10 ? a.replace(/^(\d{2})(\d)/, "($1) $2").replace(/(\d{4})(\d)/, "$1-$2").slice(0, 14) : a.replace(/^(\d{2})(\d)/, "($1) $2").replace(/(\d{5})(\d)/, "$1-$2").slice(0, 15) : "";
|
|
}
|
|
function Ce(e) {
|
|
return e.replace(/\D+/g, "");
|
|
}
|
|
function je(e) {
|
|
const a = e.replace(/[^\d,]/g, ""), s = a.split(",");
|
|
return s.length > 2 ? s[0] + "," + s.slice(1).join("") : a;
|
|
}
|
|
function ca(e) {
|
|
return je(e.replace(/%/g, ""));
|
|
}
|
|
function ma(e) {
|
|
const a = Ce(e);
|
|
return a ? (parseInt(a, 10) / 100).toFixed(2).replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, ".") : "";
|
|
}
|
|
function fa(e) {
|
|
const a = Ce(e).slice(0, 8);
|
|
return a.length <= 5 ? a : a.replace(/^(\d{5})(\d{1,3})$/, "$1-$2");
|
|
}
|
|
const pa = F({
|
|
name: "EliInput",
|
|
inheritAttrs: !1,
|
|
props: {
|
|
/**
|
|
* Aceita valor simples (text-like) ou lista de valores (checkbox/select multiple).
|
|
* O componente não converte tipos automaticamente: mantém o que receber.
|
|
*/
|
|
modelValue: {
|
|
type: [String, Number, Boolean, Array],
|
|
default: ""
|
|
},
|
|
type: { type: String, default: "text" },
|
|
label: String,
|
|
placeholder: String,
|
|
disabled: Boolean,
|
|
error: Boolean,
|
|
errorMessages: {
|
|
type: [String, Array],
|
|
default: () => []
|
|
},
|
|
hint: String,
|
|
persistentHint: Boolean,
|
|
rows: { type: Number, default: 4 },
|
|
/**
|
|
* Para select/radio/checkbox.
|
|
* Aceita lista já normalizada ({ label, value }) ou valores primitivos.
|
|
*/
|
|
options: {
|
|
type: Array,
|
|
default: () => []
|
|
},
|
|
clearable: Boolean,
|
|
variant: { type: String, default: "outlined" },
|
|
density: { type: String, default: "comfortable" },
|
|
color: { type: String, default: "primary" },
|
|
row: Boolean,
|
|
showPasswordToggle: Boolean,
|
|
multiple: Boolean,
|
|
chips: Boolean
|
|
},
|
|
emits: ["update:modelValue", "change", "focus", "blur"],
|
|
setup(e, { emit: a, attrs: s }) {
|
|
const m = B(!1), v = B(!1), y = V({
|
|
get: () => e.modelValue,
|
|
set: (p) => {
|
|
a("update:modelValue", p), a("change", p);
|
|
}
|
|
}), n = V(
|
|
() => [
|
|
"text",
|
|
"password",
|
|
"email",
|
|
"search",
|
|
"url",
|
|
"telefone",
|
|
"cpfCnpj",
|
|
"numericoInteiro",
|
|
"numericoDecimal",
|
|
"numericoMoeda",
|
|
"porcentagem",
|
|
"cep"
|
|
].includes(e.type)
|
|
), f = V(
|
|
() => e.type === "password" ? v.value ? "text" : "password" : "text"
|
|
), k = V(() => {
|
|
if (e.type === "telefone") return "tel";
|
|
if (e.type === "porcentagem") return "decimal";
|
|
if (e.type.startsWith("numerico")) return "numeric";
|
|
}), r = V(
|
|
() => e.error ? "error" : m.value ? e.color : void 0
|
|
);
|
|
function _(p) {
|
|
const T = p.target;
|
|
let C = T.value;
|
|
switch (e.type) {
|
|
case "numericoInteiro":
|
|
C = Ce(C);
|
|
break;
|
|
case "numericoDecimal":
|
|
C = je(C);
|
|
break;
|
|
case "numericoMoeda":
|
|
C = ma(C);
|
|
break;
|
|
case "porcentagem":
|
|
C = ca(C);
|
|
break;
|
|
case "telefone":
|
|
C = da(C);
|
|
break;
|
|
case "cpfCnpj":
|
|
C = sa(C);
|
|
break;
|
|
case "cep":
|
|
C = fa(C);
|
|
break;
|
|
}
|
|
T.value = C, a("update:modelValue", C), a("change", C);
|
|
}
|
|
function b() {
|
|
v.value = !v.value;
|
|
}
|
|
const g = V(() => (e.options || []).map((p) => {
|
|
if (p && typeof p == "object" && "value" in p) {
|
|
const C = p.value;
|
|
return {
|
|
label: p.label ?? String(C),
|
|
value: C,
|
|
disabled: p.disabled
|
|
};
|
|
}
|
|
const T = p;
|
|
return { label: String(T), value: T };
|
|
}));
|
|
return {
|
|
attrs: s,
|
|
value: y,
|
|
isTextLike: n,
|
|
inputHtmlType: f,
|
|
inputMode: k,
|
|
internalColor: r,
|
|
showPassword: v,
|
|
togglePassword: b,
|
|
onInput: _,
|
|
onFocus: () => a("focus"),
|
|
onBlur: () => a("blur"),
|
|
computedItems: g
|
|
};
|
|
}
|
|
}), ba = { class: "eli-input" }, va = {
|
|
key: 4,
|
|
class: "checkbox-group"
|
|
};
|
|
function ha(e, a, s, m, v, y) {
|
|
return c(), $("div", ba, [
|
|
e.isTextLike ? (c(), I(Te, re({
|
|
key: 0,
|
|
modelValue: e.value,
|
|
"onUpdate:modelValue": a[0] || (a[0] = (n) => e.value = n),
|
|
type: e.inputHtmlType,
|
|
label: e.label,
|
|
placeholder: e.placeholder,
|
|
disabled: e.disabled,
|
|
clearable: e.clearable && e.type !== "password",
|
|
error: e.error,
|
|
"error-messages": e.errorMessages,
|
|
hint: e.hint,
|
|
"persistent-hint": e.persistentHint,
|
|
density: e.density,
|
|
variant: e.variant,
|
|
color: e.internalColor,
|
|
inputmode: e.inputMode,
|
|
suffix: e.type === "porcentagem" ? "%" : void 0
|
|
}, e.attrs, {
|
|
onFocus: e.onFocus,
|
|
onBlur: e.onBlur,
|
|
onInput: e.onInput
|
|
}), He({ _: 2 }, [
|
|
e.type === "password" && e.showPasswordToggle ? {
|
|
name: "append-inner",
|
|
fn: L(() => [
|
|
M(Ke, {
|
|
class: "cursor-pointer",
|
|
onClick: e.togglePassword
|
|
}, {
|
|
default: L(() => [
|
|
pe(H(e.showPassword ? "mdi-eye-off" : "mdi-eye"), 1)
|
|
]),
|
|
_: 1
|
|
}, 8, ["onClick"])
|
|
]),
|
|
key: "0"
|
|
} : void 0
|
|
]), 1040, ["modelValue", "type", "label", "placeholder", "disabled", "clearable", "error", "error-messages", "hint", "persistent-hint", "density", "variant", "color", "inputmode", "suffix", "onFocus", "onBlur", "onInput"])) : e.type === "textarea" ? (c(), I(aa, re({
|
|
key: 1,
|
|
modelValue: e.value,
|
|
"onUpdate:modelValue": a[1] || (a[1] = (n) => e.value = n),
|
|
label: e.label,
|
|
rows: e.rows,
|
|
density: e.density,
|
|
variant: e.variant
|
|
}, e.attrs), null, 16, ["modelValue", "label", "rows", "density", "variant"])) : e.type === "select" ? (c(), I(ea, re({
|
|
key: 2,
|
|
modelValue: e.value,
|
|
"onUpdate:modelValue": a[2] || (a[2] = (n) => e.value = n),
|
|
items: e.computedItems,
|
|
label: e.label,
|
|
placeholder: e.placeholder,
|
|
multiple: e.multiple,
|
|
chips: e.chips,
|
|
clearable: e.clearable,
|
|
disabled: e.disabled,
|
|
density: e.density,
|
|
variant: e.variant,
|
|
"item-title": "label",
|
|
"item-value": "value",
|
|
error: e.error,
|
|
"error-messages": e.errorMessages
|
|
}, e.attrs, {
|
|
onFocus: e.onFocus,
|
|
onBlur: e.onBlur
|
|
}), null, 16, ["modelValue", "items", "label", "placeholder", "multiple", "chips", "clearable", "disabled", "density", "variant", "error", "error-messages", "onFocus", "onBlur"])) : e.type === "radio" ? (c(), I(xe, {
|
|
key: 3,
|
|
modelValue: e.value,
|
|
"onUpdate:modelValue": a[3] || (a[3] = (n) => e.value = n),
|
|
row: e.row
|
|
}, {
|
|
default: L(() => [
|
|
(c(!0), $(X, null, oe(e.computedItems, (n) => (c(), I(Qe, {
|
|
key: String(n.value),
|
|
label: n.label,
|
|
value: n.value
|
|
}, null, 8, ["label", "value"]))), 128))
|
|
]),
|
|
_: 1
|
|
}, 8, ["modelValue", "row"])) : e.type === "checkbox" ? (c(), $("div", va, [
|
|
(c(!0), $(X, null, oe(e.computedItems, (n) => (c(), I(Ge, {
|
|
key: String(n.value),
|
|
modelValue: e.value,
|
|
"onUpdate:modelValue": a[4] || (a[4] = (f) => e.value = f),
|
|
label: n.label,
|
|
value: n.value,
|
|
density: e.density
|
|
}, null, 8, ["modelValue", "label", "value", "density"]))), 128))
|
|
])) : R("", !0)
|
|
]);
|
|
}
|
|
const ze = /* @__PURE__ */ q(pa, [["render", ha], ["__scopeId", "data-v-756cb549"]]), ga = F({
|
|
name: "EliOlaMundo",
|
|
components: {
|
|
EliBotao: Ne,
|
|
EliBadge: we,
|
|
EliInput: ze
|
|
},
|
|
setup() {
|
|
const e = B(""), a = B([]), s = B(""), m = B(""), v = B(""), y = B(""), n = B(""), f = B(""), k = B(""), r = B(""), _ = B(""), b = B(null), g = B([]);
|
|
return {
|
|
nome: e,
|
|
email: f,
|
|
documento: _,
|
|
estado: a,
|
|
telefone: m,
|
|
mensagem: k,
|
|
senha: r,
|
|
cor: b,
|
|
habilidades: g,
|
|
idade: v,
|
|
altura: y,
|
|
cep: s,
|
|
valor: n
|
|
};
|
|
}
|
|
}), ya = { class: "grid-example" };
|
|
function $a(e, a, s, m, v, y) {
|
|
const n = G("EliBadge"), f = G("EliInput"), k = G("EliBotao");
|
|
return c(), I(ta, null, {
|
|
default: L(() => [
|
|
M(Oe, {
|
|
class: "mx-auto",
|
|
max_width: "400"
|
|
}, {
|
|
default: L(() => [
|
|
M(Ie, null, {
|
|
default: L(() => [
|
|
M(n, {
|
|
badge: "Novo",
|
|
"offset-x": "-15",
|
|
location: "right center"
|
|
}, {
|
|
default: L(() => [...a[14] || (a[14] = [
|
|
pe(" Olá Mundo! ", -1)
|
|
])]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
}),
|
|
M(Ue, null, {
|
|
default: L(() => [
|
|
a[15] || (a[15] = pe(" Este é um componente de exemplo integrado com Vuetify. ", -1)),
|
|
P("div", ya, [
|
|
M(f, {
|
|
modelValue: e.nome,
|
|
"onUpdate:modelValue": a[0] || (a[0] = (r) => e.nome = r),
|
|
label: "Nome",
|
|
placeholder: "Digite o nome",
|
|
density: "compact"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.idade,
|
|
"onUpdate:modelValue": a[1] || (a[1] = (r) => e.idade = r),
|
|
type: "numericoInteiro",
|
|
label: "Idade",
|
|
density: "default"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.altura,
|
|
"onUpdate:modelValue": a[2] || (a[2] = (r) => e.altura = r),
|
|
type: "numericoDecimal",
|
|
label: "Altura",
|
|
density: "comfortable"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.valor,
|
|
"onUpdate:modelValue": a[3] || (a[3] = (r) => e.valor = r),
|
|
type: "numericoMoeda",
|
|
label: "Valor"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.telefone,
|
|
"onUpdate:modelValue": a[4] || (a[4] = (r) => e.telefone = r),
|
|
type: "telefone",
|
|
label: "Telefone"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.cep,
|
|
"onUpdate:modelValue": a[5] || (a[5] = (r) => e.cep = r),
|
|
type: "cep",
|
|
label: "CEP",
|
|
placeholder: "00000-000"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
type: "select",
|
|
label: "Estado",
|
|
options: [
|
|
{ label: "São Paulo", value: "SP" },
|
|
{ label: "Rio de Janeiro", value: "RJ" }
|
|
],
|
|
modelValue: e.estado,
|
|
"onUpdate:modelValue": a[6] || (a[6] = (r) => e.estado = r),
|
|
multiple: ""
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.documento,
|
|
"onUpdate:modelValue": a[7] || (a[7] = (r) => e.documento = r),
|
|
type: "cpfCnpj",
|
|
label: "CPF / CNPJ"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.email,
|
|
"onUpdate:modelValue": a[8] || (a[8] = (r) => e.email = r),
|
|
label: "Email",
|
|
placeholder: "email@exemplo.com"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.senha,
|
|
"onUpdate:modelValue": a[9] || (a[9] = (r) => e.senha = r),
|
|
label: "Senha",
|
|
type: "password",
|
|
showPasswordToggle: !0,
|
|
placeholder: "Digite sua senha"
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
type: "textarea",
|
|
modelValue: e.mensagem,
|
|
"onUpdate:modelValue": a[10] || (a[10] = (r) => e.mensagem = r),
|
|
label: "Mensagem",
|
|
rows: 5
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
type: "radio",
|
|
modelValue: e.cor,
|
|
"onUpdate:modelValue": a[11] || (a[11] = (r) => e.cor = r),
|
|
label: "Cor favorita",
|
|
options: [
|
|
{ label: "Azul", value: "azul" },
|
|
{ label: "Verde", value: "verde" }
|
|
]
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
type: "checkbox",
|
|
modelValue: e.habilidades,
|
|
"onUpdate:modelValue": a[12] || (a[12] = (r) => e.habilidades = r),
|
|
options: [
|
|
{ label: "Vue", value: "vue" },
|
|
{ label: "React", value: "react" }
|
|
]
|
|
}, null, 8, ["modelValue"]),
|
|
M(f, {
|
|
modelValue: e.nome,
|
|
"onUpdate:modelValue": a[13] || (a[13] = (r) => e.nome = r),
|
|
label: "Nome",
|
|
error: !0,
|
|
"error-messages": ["Obrigatório"]
|
|
}, null, 8, ["modelValue"])
|
|
])
|
|
]),
|
|
_: 1
|
|
}),
|
|
M(Le, null, {
|
|
default: L(() => [
|
|
M(k, {
|
|
color: "primary",
|
|
variant: "elevated",
|
|
block: ""
|
|
}, {
|
|
default: L(() => [...a[16] || (a[16] = [
|
|
pe(" Botão Vuetify ", -1)
|
|
])]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
});
|
|
}
|
|
const ka = /* @__PURE__ */ q(ga, [["render", $a]]), Va = F({
|
|
name: "EliCartao",
|
|
components: { EliBadge: we },
|
|
inheritAttrs: !1,
|
|
props: {
|
|
/** Título de fallback caso o slot `titulo` não seja usado. */
|
|
titulo: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
/**
|
|
* Status semântico do cartão.
|
|
* Usado para cor/label e para permitir filtros por status.
|
|
*/
|
|
status: {
|
|
type: String,
|
|
required: !0
|
|
},
|
|
/** Variante visual do v-card (Vuetify). */
|
|
variant: {
|
|
type: String,
|
|
default: "outlined"
|
|
}
|
|
},
|
|
emits: {
|
|
/** Emit opcional para padronizar clique no cartão. */
|
|
clicar: (e) => !0
|
|
},
|
|
setup(e, { emit: a }) {
|
|
const s = V(() => e.status), m = V(() => {
|
|
switch (e.status) {
|
|
case "novo":
|
|
return "primary";
|
|
case "rascunho":
|
|
return "secondary";
|
|
case "vendido":
|
|
return "success";
|
|
case "cancelado":
|
|
return "error";
|
|
}
|
|
}), v = V(() => `eli-cartao--${e.status}`);
|
|
function y() {
|
|
a("clicar", e.status);
|
|
}
|
|
return {
|
|
rotuloStatus: s,
|
|
corStatus: m,
|
|
classeStatus: v,
|
|
onClick: y
|
|
};
|
|
}
|
|
}), wa = { class: "eli-cartao__titulo-texto" }, Ca = { class: "eli-cartao__status" };
|
|
function Sa(e, a, s, m, v, y) {
|
|
const n = G("EliBadge");
|
|
return c(), I(Oe, re({
|
|
class: ["eli-cartao", e.classeStatus],
|
|
variant: e.variant
|
|
}, e.$attrs), {
|
|
default: L(() => [
|
|
M(Ie, { class: "eli-cartao__titulo" }, {
|
|
default: L(() => [
|
|
P("div", wa, [
|
|
de(e.$slots, "titulo", {}, () => [
|
|
pe(H(e.titulo), 1)
|
|
], !0)
|
|
]),
|
|
P("div", Ca, [
|
|
M(n, {
|
|
badge: e.rotuloStatus,
|
|
radius: "pill",
|
|
color: e.corStatus
|
|
}, {
|
|
default: L(() => [...a[0] || (a[0] = [
|
|
P("span", null, null, -1)
|
|
])]),
|
|
_: 1
|
|
}, 8, ["badge", "color"])
|
|
])
|
|
]),
|
|
_: 3
|
|
}),
|
|
M(Ue, { class: "eli-cartao__conteudo" }, {
|
|
default: L(() => [
|
|
de(e.$slots, "default", {}, void 0, !0)
|
|
]),
|
|
_: 3
|
|
}),
|
|
e.$slots.acoes ? (c(), I(Le, {
|
|
key: 0,
|
|
class: "eli-cartao__acoes"
|
|
}, {
|
|
default: L(() => [
|
|
de(e.$slots, "acoes", {}, void 0, !0)
|
|
]),
|
|
_: 3
|
|
})) : R("", !0)
|
|
]),
|
|
_: 3
|
|
}, 16, ["variant", "class"]);
|
|
}
|
|
const _a = /* @__PURE__ */ q(Va, [["render", Sa], ["__scopeId", "data-v-6c492bd9"]]);
|
|
function Ma(e) {
|
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
}
|
|
var ge = { exports: {} }, Da = ge.exports, Me;
|
|
function Ba() {
|
|
return Me || (Me = 1, (function(e, a) {
|
|
(function(s, m) {
|
|
e.exports = m();
|
|
})(Da, (function() {
|
|
var s = 1e3, m = 6e4, v = 36e5, y = "millisecond", n = "second", f = "minute", k = "hour", r = "day", _ = "week", b = "month", g = "quarter", p = "year", T = "date", C = "Invalid Date", Y = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, W = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, j = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(h) {
|
|
var i = ["th", "st", "nd", "rd"], l = h % 100;
|
|
return "[" + h + (i[(l - 20) % 10] || i[l] || i[0]) + "]";
|
|
} }, K = function(h, i, l) {
|
|
var t = String(h);
|
|
return !t || t.length >= i ? h : "" + Array(i + 1 - t.length).join(l) + h;
|
|
}, $e = { s: K, z: function(h) {
|
|
var i = -h.utcOffset(), l = Math.abs(i), t = Math.floor(l / 60), o = l % 60;
|
|
return (i <= 0 ? "+" : "-") + K(t, 2, "0") + ":" + K(o, 2, "0");
|
|
}, m: function h(i, l) {
|
|
if (i.date() < l.date()) return -h(l, i);
|
|
var t = 12 * (l.year() - i.year()) + (l.month() - i.month()), o = i.clone().add(t, b), u = l - o < 0, d = i.clone().add(t + (u ? -1 : 1), b);
|
|
return +(-(t + (l - o) / (u ? o - d : d - o)) || 0);
|
|
}, a: function(h) {
|
|
return h < 0 ? Math.ceil(h) || 0 : Math.floor(h);
|
|
}, p: function(h) {
|
|
return { M: b, y: p, w: _, d: r, D: T, h: k, m: f, s: n, ms: y, Q: g }[h] || String(h || "").toLowerCase().replace(/s$/, "");
|
|
}, u: function(h) {
|
|
return h === void 0;
|
|
} }, te = "en", Q = {};
|
|
Q[te] = j;
|
|
var be = "$isDayjsObject", ce = function(h) {
|
|
return h instanceof ne || !(!h || !h[be]);
|
|
}, le = function h(i, l, t) {
|
|
var o;
|
|
if (!i) return te;
|
|
if (typeof i == "string") {
|
|
var u = i.toLowerCase();
|
|
Q[u] && (o = u), l && (Q[u] = l, o = u);
|
|
var d = i.split("-");
|
|
if (!o && d.length > 1) return h(d[0]);
|
|
} else {
|
|
var w = i.name;
|
|
Q[w] = i, o = w;
|
|
}
|
|
return !t && o && (te = o), o || !t && te;
|
|
}, O = function(h, i) {
|
|
if (ce(h)) return h.clone();
|
|
var l = typeof i == "object" ? i : {};
|
|
return l.date = h, l.args = arguments, new ne(l);
|
|
}, S = $e;
|
|
S.l = le, S.i = ce, S.w = function(h, i) {
|
|
return O(h, { locale: i.$L, utc: i.$u, x: i.$x, $offset: i.$offset });
|
|
};
|
|
var ne = (function() {
|
|
function h(l) {
|
|
this.$L = le(l.locale, null, !0), this.parse(l), this.$x = this.$x || l.x || {}, this[be] = !0;
|
|
}
|
|
var i = h.prototype;
|
|
return i.parse = function(l) {
|
|
this.$d = (function(t) {
|
|
var o = t.date, u = t.utc;
|
|
if (o === null) return /* @__PURE__ */ new Date(NaN);
|
|
if (S.u(o)) return /* @__PURE__ */ new Date();
|
|
if (o instanceof Date) return new Date(o);
|
|
if (typeof o == "string" && !/Z$/i.test(o)) {
|
|
var d = o.match(Y);
|
|
if (d) {
|
|
var w = d[2] - 1 || 0, D = (d[7] || "0").substring(0, 3);
|
|
return u ? new Date(Date.UTC(d[1], w, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, D)) : new Date(d[1], w, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, D);
|
|
}
|
|
}
|
|
return new Date(o);
|
|
})(l), this.init();
|
|
}, i.init = function() {
|
|
var l = this.$d;
|
|
this.$y = l.getFullYear(), this.$M = l.getMonth(), this.$D = l.getDate(), this.$W = l.getDay(), this.$H = l.getHours(), this.$m = l.getMinutes(), this.$s = l.getSeconds(), this.$ms = l.getMilliseconds();
|
|
}, i.$utils = function() {
|
|
return S;
|
|
}, i.isValid = function() {
|
|
return this.$d.toString() !== C;
|
|
}, i.isSame = function(l, t) {
|
|
var o = O(l);
|
|
return this.startOf(t) <= o && o <= this.endOf(t);
|
|
}, i.isAfter = function(l, t) {
|
|
return O(l) < this.startOf(t);
|
|
}, i.isBefore = function(l, t) {
|
|
return this.endOf(t) < O(l);
|
|
}, i.$g = function(l, t, o) {
|
|
return S.u(l) ? this[t] : this.set(o, l);
|
|
}, i.unix = function() {
|
|
return Math.floor(this.valueOf() / 1e3);
|
|
}, i.valueOf = function() {
|
|
return this.$d.getTime();
|
|
}, i.startOf = function(l, t) {
|
|
var o = this, u = !!S.u(t) || t, d = S.p(l), w = function(ae, N) {
|
|
var z = S.w(o.$u ? Date.UTC(o.$y, N, ae) : new Date(o.$y, N, ae), o);
|
|
return u ? z : z.endOf(r);
|
|
}, D = function(ae, N) {
|
|
return S.w(o.toDate()[ae].apply(o.toDate("s"), (u ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(N)), o);
|
|
}, E = this.$W, A = this.$M, U = this.$D, x = "set" + (this.$u ? "UTC" : "");
|
|
switch (d) {
|
|
case p:
|
|
return u ? w(1, 0) : w(31, 11);
|
|
case b:
|
|
return u ? w(1, A) : w(0, A + 1);
|
|
case _:
|
|
var J = this.$locale().weekStart || 0, ee = (E < J ? E + 7 : E) - J;
|
|
return w(u ? U - ee : U + (6 - ee), A);
|
|
case r:
|
|
case T:
|
|
return D(x + "Hours", 0);
|
|
case k:
|
|
return D(x + "Minutes", 1);
|
|
case f:
|
|
return D(x + "Seconds", 2);
|
|
case n:
|
|
return D(x + "Milliseconds", 3);
|
|
default:
|
|
return this.clone();
|
|
}
|
|
}, i.endOf = function(l) {
|
|
return this.startOf(l, !1);
|
|
}, i.$set = function(l, t) {
|
|
var o, u = S.p(l), d = "set" + (this.$u ? "UTC" : ""), w = (o = {}, o[r] = d + "Date", o[T] = d + "Date", o[b] = d + "Month", o[p] = d + "FullYear", o[k] = d + "Hours", o[f] = d + "Minutes", o[n] = d + "Seconds", o[y] = d + "Milliseconds", o)[u], D = u === r ? this.$D + (t - this.$W) : t;
|
|
if (u === b || u === p) {
|
|
var E = this.clone().set(T, 1);
|
|
E.$d[w](D), E.init(), this.$d = E.set(T, Math.min(this.$D, E.daysInMonth())).$d;
|
|
} else w && this.$d[w](D);
|
|
return this.init(), this;
|
|
}, i.set = function(l, t) {
|
|
return this.clone().$set(l, t);
|
|
}, i.get = function(l) {
|
|
return this[S.p(l)]();
|
|
}, i.add = function(l, t) {
|
|
var o, u = this;
|
|
l = Number(l);
|
|
var d = S.p(t), w = function(A) {
|
|
var U = O(u);
|
|
return S.w(U.date(U.date() + Math.round(A * l)), u);
|
|
};
|
|
if (d === b) return this.set(b, this.$M + l);
|
|
if (d === p) return this.set(p, this.$y + l);
|
|
if (d === r) return w(1);
|
|
if (d === _) return w(7);
|
|
var D = (o = {}, o[f] = m, o[k] = v, o[n] = s, o)[d] || 1, E = this.$d.getTime() + l * D;
|
|
return S.w(E, this);
|
|
}, i.subtract = function(l, t) {
|
|
return this.add(-1 * l, t);
|
|
}, i.format = function(l) {
|
|
var t = this, o = this.$locale();
|
|
if (!this.isValid()) return o.invalidDate || C;
|
|
var u = l || "YYYY-MM-DDTHH:mm:ssZ", d = S.z(this), w = this.$H, D = this.$m, E = this.$M, A = o.weekdays, U = o.months, x = o.meridiem, J = function(N, z, Z, ie) {
|
|
return N && (N[z] || N(t, u)) || Z[z].slice(0, ie);
|
|
}, ee = function(N) {
|
|
return S.s(w % 12 || 12, N, "0");
|
|
}, ae = x || function(N, z, Z) {
|
|
var ie = N < 12 ? "AM" : "PM";
|
|
return Z ? ie.toLowerCase() : ie;
|
|
};
|
|
return u.replace(W, (function(N, z) {
|
|
return z || (function(Z) {
|
|
switch (Z) {
|
|
case "YY":
|
|
return String(t.$y).slice(-2);
|
|
case "YYYY":
|
|
return S.s(t.$y, 4, "0");
|
|
case "M":
|
|
return E + 1;
|
|
case "MM":
|
|
return S.s(E + 1, 2, "0");
|
|
case "MMM":
|
|
return J(o.monthsShort, E, U, 3);
|
|
case "MMMM":
|
|
return J(U, E);
|
|
case "D":
|
|
return t.$D;
|
|
case "DD":
|
|
return S.s(t.$D, 2, "0");
|
|
case "d":
|
|
return String(t.$W);
|
|
case "dd":
|
|
return J(o.weekdaysMin, t.$W, A, 2);
|
|
case "ddd":
|
|
return J(o.weekdaysShort, t.$W, A, 3);
|
|
case "dddd":
|
|
return A[t.$W];
|
|
case "H":
|
|
return String(w);
|
|
case "HH":
|
|
return S.s(w, 2, "0");
|
|
case "h":
|
|
return ee(1);
|
|
case "hh":
|
|
return ee(2);
|
|
case "a":
|
|
return ae(w, D, !0);
|
|
case "A":
|
|
return ae(w, D, !1);
|
|
case "m":
|
|
return String(D);
|
|
case "mm":
|
|
return S.s(D, 2, "0");
|
|
case "s":
|
|
return String(t.$s);
|
|
case "ss":
|
|
return S.s(t.$s, 2, "0");
|
|
case "SSS":
|
|
return S.s(t.$ms, 3, "0");
|
|
case "Z":
|
|
return d;
|
|
}
|
|
return null;
|
|
})(N) || d.replace(":", "");
|
|
}));
|
|
}, i.utcOffset = function() {
|
|
return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
|
|
}, i.diff = function(l, t, o) {
|
|
var u, d = this, w = S.p(t), D = O(l), E = (D.utcOffset() - this.utcOffset()) * m, A = this - D, U = function() {
|
|
return S.m(d, D);
|
|
};
|
|
switch (w) {
|
|
case p:
|
|
u = U() / 12;
|
|
break;
|
|
case b:
|
|
u = U();
|
|
break;
|
|
case g:
|
|
u = U() / 3;
|
|
break;
|
|
case _:
|
|
u = (A - E) / 6048e5;
|
|
break;
|
|
case r:
|
|
u = (A - E) / 864e5;
|
|
break;
|
|
case k:
|
|
u = A / v;
|
|
break;
|
|
case f:
|
|
u = A / m;
|
|
break;
|
|
case n:
|
|
u = A / s;
|
|
break;
|
|
default:
|
|
u = A;
|
|
}
|
|
return o ? u : S.a(u);
|
|
}, i.daysInMonth = function() {
|
|
return this.endOf(b).$D;
|
|
}, i.$locale = function() {
|
|
return Q[this.$L];
|
|
}, i.locale = function(l, t) {
|
|
if (!l) return this.$L;
|
|
var o = this.clone(), u = le(l, t, !0);
|
|
return u && (o.$L = u), o;
|
|
}, i.clone = function() {
|
|
return S.w(this.$d, this);
|
|
}, i.toDate = function() {
|
|
return new Date(this.valueOf());
|
|
}, i.toJSON = function() {
|
|
return this.isValid() ? this.toISOString() : null;
|
|
}, i.toISOString = function() {
|
|
return this.$d.toISOString();
|
|
}, i.toString = function() {
|
|
return this.$d.toUTCString();
|
|
}, h;
|
|
})(), me = ne.prototype;
|
|
return O.prototype = me, [["$ms", y], ["$s", n], ["$m", f], ["$H", k], ["$W", r], ["$M", b], ["$y", p], ["$D", T]].forEach((function(h) {
|
|
me[h[1]] = function(i) {
|
|
return this.$g(i, h[0], h[1]);
|
|
};
|
|
})), O.extend = function(h, i) {
|
|
return h.$i || (h(i, ne, O), h.$i = !0), O;
|
|
}, O.locale = le, O.isDayjs = ce, O.unix = function(h) {
|
|
return O(1e3 * h);
|
|
}, O.en = Q[te], O.Ls = Q, O.p = {}, O;
|
|
}));
|
|
})(ge)), ge.exports;
|
|
}
|
|
var Ea = Ba();
|
|
const ve = /* @__PURE__ */ Ma(Ea), Aa = F({
|
|
name: "EliDataHora",
|
|
inheritAttrs: !1,
|
|
props: {
|
|
/**
|
|
* Valor em ISO 8601:
|
|
* - com offset (ex.: `2026-01-09T13:15:00-03:00`)
|
|
* - ou UTC absoluto (ex.: `2026-01-09T16:15:00Z`)
|
|
*/
|
|
modelValue: {
|
|
type: String,
|
|
default: null
|
|
},
|
|
/**
|
|
* Define o tipo de entrada.
|
|
* - `dataHora`: usa `datetime-local`
|
|
* - `data`: usa `date`
|
|
*/
|
|
modo: {
|
|
type: String,
|
|
default: "dataHora"
|
|
},
|
|
/** Rótulo exibido no v-text-field (Vuetify). */
|
|
rotulo: {
|
|
type: String,
|
|
default: "Data e hora"
|
|
},
|
|
/** Placeholder do input. */
|
|
placeholder: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
/** Desabilita a interação. */
|
|
desabilitado: {
|
|
type: Boolean,
|
|
default: !1
|
|
},
|
|
/** Se true, mostra ícone para limpar o valor (Vuetify clearable). */
|
|
limpavel: {
|
|
type: Boolean,
|
|
default: !1
|
|
},
|
|
/** Estado de erro (visual). */
|
|
erro: {
|
|
type: Boolean,
|
|
default: !1
|
|
},
|
|
/** Mensagens de erro. */
|
|
mensagensErro: {
|
|
type: [String, Array],
|
|
default: () => []
|
|
},
|
|
/** Texto de apoio. */
|
|
dica: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
/** Mantém a dica sempre visível. */
|
|
dicaPersistente: {
|
|
type: Boolean,
|
|
default: !1
|
|
},
|
|
/** Densidade do campo (Vuetify). */
|
|
densidade: {
|
|
type: String,
|
|
default: "comfortable"
|
|
},
|
|
/** Variante do v-text-field (Vuetify). */
|
|
variante: {
|
|
type: String,
|
|
default: "outlined"
|
|
},
|
|
/**
|
|
* Valor mínimo permitido.
|
|
* ISO 8601 (offset ou `Z`).
|
|
*/
|
|
min: {
|
|
// ISO 8601 (offset ou Z)
|
|
type: String,
|
|
default: void 0
|
|
},
|
|
/**
|
|
* Valor máximo permitido.
|
|
* ISO 8601 (offset ou `Z`).
|
|
*/
|
|
max: {
|
|
// ISO 8601 (offset ou Z)
|
|
type: String,
|
|
default: void 0
|
|
}
|
|
},
|
|
emits: {
|
|
/** v-model padrão. */
|
|
"update:modelValue": (e) => !0,
|
|
/** Alias para consumidores que querem um evento semântico. */
|
|
alterar: (e) => !0,
|
|
foco: () => !0,
|
|
desfoco: () => !0
|
|
},
|
|
setup(e, { emit: a, attrs: s }) {
|
|
const m = V(
|
|
() => e.modo === "data" ? "date" : "datetime-local"
|
|
);
|
|
function v(r) {
|
|
return e.modo === "data" ? ve(r).format("YYYY-MM-DD") : ve(r).format("YYYY-MM-DDTHH:mm");
|
|
}
|
|
function y(r) {
|
|
return e.modo === "data" ? ve(`${r}T00:00`).format() : ve(r).format();
|
|
}
|
|
const n = V({
|
|
get: () => e.modelValue ? v(e.modelValue) : "",
|
|
set: (r) => {
|
|
const _ = r && r.length > 0 ? r : null;
|
|
if (!_) {
|
|
a("update:modelValue", null), a("alterar", null);
|
|
return;
|
|
}
|
|
const b = y(_);
|
|
a("update:modelValue", b), a("alterar", b);
|
|
}
|
|
}), f = V(() => {
|
|
if (e.min)
|
|
return v(e.min);
|
|
}), k = V(() => {
|
|
if (e.max)
|
|
return v(e.max);
|
|
});
|
|
return { attrs: s, valor: n, emit: a, minLocal: f, maxLocal: k, tipoInput: m };
|
|
}
|
|
}), Pa = { class: "eli-data-hora" };
|
|
function Ta(e, a, s, m, v, y) {
|
|
return c(), $("div", Pa, [
|
|
M(Te, re({
|
|
modelValue: e.valor,
|
|
"onUpdate:modelValue": a[0] || (a[0] = (n) => e.valor = n),
|
|
type: e.tipoInput,
|
|
label: e.rotulo,
|
|
placeholder: e.placeholder,
|
|
disabled: e.desabilitado,
|
|
clearable: e.limpavel,
|
|
error: e.erro,
|
|
"error-messages": e.mensagensErro,
|
|
hint: e.dica,
|
|
"persistent-hint": e.dicaPersistente,
|
|
density: e.densidade,
|
|
variant: e.variante,
|
|
min: e.minLocal,
|
|
max: e.maxLocal
|
|
}, e.attrs, {
|
|
onFocus: a[1] || (a[1] = (n) => e.emit("foco")),
|
|
onBlur: a[2] || (a[2] = (n) => e.emit("desfoco"))
|
|
}), null, 16, ["modelValue", "type", "label", "placeholder", "disabled", "clearable", "error", "error-messages", "hint", "persistent-hint", "density", "variant", "min", "max"])
|
|
]);
|
|
}
|
|
const Oa = /* @__PURE__ */ q(Aa, [["render", Ta], ["__scopeId", "data-v-71afabb6"]]);
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const Ia = (e) => {
|
|
for (const a in e)
|
|
if (a.startsWith("aria-") || a === "role" || a === "title")
|
|
return !0;
|
|
return !1;
|
|
};
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const De = (e) => e === "";
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const Ua = (...e) => e.filter((a, s, m) => !!a && a.trim() !== "" && m.indexOf(a) === s).join(" ").trim();
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const Be = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const La = (e) => e.replace(
|
|
/^([A-Z])|[\s-_]+(\w)/g,
|
|
(a, s, m) => m ? m.toUpperCase() : s.toLowerCase()
|
|
);
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const Na = (e) => {
|
|
const a = La(e);
|
|
return a.charAt(0).toUpperCase() + a.slice(1);
|
|
};
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
var fe = {
|
|
xmlns: "http://www.w3.org/2000/svg",
|
|
width: 24,
|
|
height: 24,
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
"stroke-width": 2,
|
|
"stroke-linecap": "round",
|
|
"stroke-linejoin": "round"
|
|
};
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const ja = ({
|
|
name: e,
|
|
iconNode: a,
|
|
absoluteStrokeWidth: s,
|
|
"absolute-stroke-width": m,
|
|
strokeWidth: v,
|
|
"stroke-width": y,
|
|
size: n = fe.width,
|
|
color: f = fe.stroke,
|
|
...k
|
|
}, { slots: r }) => Ve(
|
|
"svg",
|
|
{
|
|
...fe,
|
|
...k,
|
|
width: n,
|
|
height: n,
|
|
stroke: f,
|
|
"stroke-width": De(s) || De(m) || s === !0 || m === !0 ? Number(v || y || fe["stroke-width"]) * 24 / Number(n) : v || y || fe["stroke-width"],
|
|
class: Ua(
|
|
"lucide",
|
|
k.class,
|
|
...e ? [`lucide-${Be(Na(e))}-icon`, `lucide-${Be(e)}`] : ["lucide-icon"]
|
|
),
|
|
...!r.default && !Ia(k) && { "aria-hidden": "true" }
|
|
},
|
|
[...a.map((_) => Ve(..._)), ...r.default ? [r.default()] : []]
|
|
);
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const ye = (e, a) => (s, { slots: m, attrs: v }) => Ve(
|
|
ja,
|
|
{
|
|
...v,
|
|
...s,
|
|
iconNode: a,
|
|
name: e
|
|
},
|
|
m
|
|
);
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const Ee = ye("arrow-down", [
|
|
["path", { d: "M12 5v14", key: "s699le" }],
|
|
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
]);
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const Ae = ye("arrow-up", [
|
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
]);
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const Pe = ye("ellipsis-vertical", [
|
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
|
|
["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
|
|
]);
|
|
/**
|
|
* @license lucide-vue-next v0.563.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const za = ye("search", [
|
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
]);
|
|
var Ye = ((e) => (e[e.sucesso = 200] = "sucesso", e[e.erroConhecido = 400] = "erroConhecido", e[e.erroPermissao = 401] = "erroPermissao", e[e.erroNaoEncontrado = 404] = "erroNaoEncontrado", e[e.erroDesconhecido = 500] = "erroDesconhecido", e[e.tempoEsgotado = 504] = "tempoEsgotado", e))(Ye || {});
|
|
const Ya = F({
|
|
name: "EliTabelaCaixaDeBusca",
|
|
components: { Search: za },
|
|
props: {
|
|
modelo: {
|
|
type: String,
|
|
required: !1,
|
|
default: ""
|
|
}
|
|
},
|
|
emits: {
|
|
buscar(e) {
|
|
return typeof e == "string";
|
|
}
|
|
},
|
|
setup(e, { emit: a }) {
|
|
const s = B(e.modelo ?? "");
|
|
se(
|
|
() => e.modelo,
|
|
(v) => {
|
|
v !== void 0 && v !== s.value && (s.value = v);
|
|
}
|
|
);
|
|
function m() {
|
|
a("buscar", s.value.trim());
|
|
}
|
|
return { texto: s, emitirBusca: m };
|
|
}
|
|
}), Ha = { class: "eli-tabela__busca" }, Fa = { class: "eli-tabela__busca-input-wrapper" };
|
|
function qa(e, a, s, m, v, y) {
|
|
const n = G("Search");
|
|
return c(), $("div", Ha, [
|
|
P("div", Fa, [
|
|
Fe(P("input", {
|
|
id: "eli-tabela-busca",
|
|
"onUpdate:modelValue": a[0] || (a[0] = (f) => e.texto = f),
|
|
type: "search",
|
|
class: "eli-tabela__busca-input",
|
|
placeholder: "Digite termos para filtrar",
|
|
onKeyup: a[1] || (a[1] = qe((...f) => e.emitirBusca && e.emitirBusca(...f), ["enter"]))
|
|
}, null, 544), [
|
|
[Re, e.texto]
|
|
]),
|
|
P("button", {
|
|
type: "button",
|
|
class: "eli-tabela__busca-botao",
|
|
"aria-label": "Buscar",
|
|
title: "Buscar",
|
|
onClick: a[2] || (a[2] = (...f) => e.emitirBusca && e.emitirBusca(...f))
|
|
}, [
|
|
M(n, {
|
|
class: "eli-tabela__busca-botao-icone",
|
|
size: 16,
|
|
"stroke-width": 2,
|
|
"aria-hidden": "true"
|
|
})
|
|
])
|
|
])
|
|
]);
|
|
}
|
|
const Ra = /* @__PURE__ */ q(Ya, [["render", qa], ["__scopeId", "data-v-0fd1ad15"]]), Wa = F({
|
|
name: "EliTabelaPaginacao",
|
|
props: {
|
|
pagina: {
|
|
type: Number,
|
|
required: !0
|
|
},
|
|
totalPaginas: {
|
|
type: Number,
|
|
required: !0
|
|
},
|
|
maximoBotoes: {
|
|
type: Number,
|
|
required: !1
|
|
}
|
|
},
|
|
emits: {
|
|
alterar(e) {
|
|
return Number.isFinite(e);
|
|
}
|
|
},
|
|
setup(e, { emit: a }) {
|
|
const s = V(() => {
|
|
const r = e.maximoBotoes;
|
|
return typeof r == "number" && r >= 5 ? Math.floor(r) : 7;
|
|
}), m = V(() => {
|
|
const r = e.totalPaginas, _ = e.pagina, b = s.value, g = [], p = (j) => {
|
|
g.push({
|
|
label: String(j),
|
|
pagina: j,
|
|
ativo: j === _
|
|
});
|
|
}, T = () => {
|
|
g.push({ label: "…", ehEllipsis: !0 });
|
|
};
|
|
if (r <= b) {
|
|
for (let j = 1; j <= r; j += 1)
|
|
p(j);
|
|
return g;
|
|
}
|
|
const C = Math.max(3, b - 2);
|
|
let Y = Math.max(2, _ - Math.floor(C / 2)), W = Y + C - 1;
|
|
W >= r && (W = r - 1, Y = W - C + 1), p(1), Y > 2 && T();
|
|
for (let j = Y; j <= W; j += 1)
|
|
p(j);
|
|
return W < r - 1 && T(), p(r), g;
|
|
});
|
|
function v(r) {
|
|
if (!r)
|
|
return;
|
|
const _ = Math.min(Math.max(1, r), e.totalPaginas);
|
|
_ !== e.pagina && a("alterar", _);
|
|
}
|
|
const y = V(() => e.pagina <= 1), n = V(() => e.pagina >= e.totalPaginas), f = V(() => e.pagina), k = V(() => e.totalPaginas);
|
|
return {
|
|
botoes: m,
|
|
irParaPagina: v,
|
|
anteriorDesabilitado: y,
|
|
proximaDesabilitada: n,
|
|
paginaAtual: f,
|
|
totalPaginasExibidas: k
|
|
};
|
|
}
|
|
}), Ja = {
|
|
key: 0,
|
|
class: "eli-tabela__paginacao",
|
|
role: "navigation",
|
|
"aria-label": "Paginação de resultados"
|
|
}, Za = ["disabled"], Xa = {
|
|
key: 0,
|
|
class: "eli-tabela__pagina-ellipsis",
|
|
"aria-hidden": "true"
|
|
}, Ga = ["disabled", "aria-current", "aria-label", "onClick"], Ka = ["disabled"];
|
|
function Qa(e, a, s, m, v, y) {
|
|
return e.totalPaginasExibidas > 1 ? (c(), $("nav", Ja, [
|
|
P("button", {
|
|
type: "button",
|
|
class: "eli-tabela__pagina-botao",
|
|
disabled: e.anteriorDesabilitado,
|
|
"aria-label": "Página anterior",
|
|
onClick: a[0] || (a[0] = (n) => e.irParaPagina(e.paginaAtual - 1))
|
|
}, " << ", 8, Za),
|
|
(c(!0), $(X, null, oe(e.botoes, (n, f) => (c(), $(X, {
|
|
key: `${n.label}-${f}`
|
|
}, [
|
|
n.ehEllipsis ? (c(), $("span", Xa, H(n.label), 1)) : (c(), $("button", {
|
|
key: 1,
|
|
type: "button",
|
|
class: ue(["eli-tabela__pagina-botao", n.ativo ? "eli-tabela__pagina-botao--ativo" : void 0]),
|
|
disabled: n.ativo,
|
|
"aria-current": n.ativo ? "page" : void 0,
|
|
"aria-label": `Ir para página ${n.label}`,
|
|
onClick: (k) => e.irParaPagina(n.pagina)
|
|
}, H(n.label), 11, Ga))
|
|
], 64))), 128)),
|
|
P("button", {
|
|
type: "button",
|
|
class: "eli-tabela__pagina-botao",
|
|
disabled: e.proximaDesabilitada,
|
|
"aria-label": "Próxima página",
|
|
onClick: a[1] || (a[1] = (n) => e.irParaPagina(e.paginaAtual + 1))
|
|
}, " >> ", 8, Ka)
|
|
])) : R("", !0);
|
|
}
|
|
const xa = /* @__PURE__ */ q(Wa, [["render", Qa], ["__scopeId", "data-v-59d12455"]]), et = F({
|
|
name: "EliTabelaCelulaTextoSimples",
|
|
components: {},
|
|
props: {
|
|
dados: {
|
|
type: Object
|
|
}
|
|
},
|
|
data() {
|
|
return {};
|
|
},
|
|
methods: {},
|
|
setup({ dados: e }) {
|
|
return { dados: e };
|
|
}
|
|
});
|
|
function at(e, a, s, m, v, y) {
|
|
var n;
|
|
return H((n = e.dados) == null ? void 0 : n.texto);
|
|
}
|
|
const tt = /* @__PURE__ */ q(et, [["render", at]]), ot = F({
|
|
name: "EliTabelaCelulaNumero",
|
|
components: {},
|
|
props: {
|
|
dados: {
|
|
type: Object
|
|
}
|
|
},
|
|
data() {
|
|
return {};
|
|
},
|
|
methods: {},
|
|
setup({ dados: e }) {
|
|
return { dados: e };
|
|
}
|
|
});
|
|
function rt(e, a, s, m, v, y) {
|
|
var n;
|
|
return H(String((n = e.dados) == null ? void 0 : n.numero).replace(".", ","));
|
|
}
|
|
const lt = /* @__PURE__ */ q(ot, [["render", rt]]), nt = {
|
|
textoSimples: tt,
|
|
numero: lt
|
|
}, it = F({
|
|
name: "EliTabelaCelula",
|
|
props: {
|
|
celula: {
|
|
// `ComponenteCelula` é uma tupla `readonly [tipo, dados]`.
|
|
type: Array,
|
|
required: !0
|
|
}
|
|
},
|
|
setup(e) {
|
|
const a = V(() => e.celula[0]), s = V(() => e.celula[1]), m = V(() => nt[a.value]), v = V(() => s.value);
|
|
return { Componente: m, dadosParaComponente: v };
|
|
}
|
|
});
|
|
function st(e, a, s, m, v, y) {
|
|
return c(), I(he(e.Componente), { dados: e.dadosParaComponente }, null, 8, ["dados"]);
|
|
}
|
|
const ut = /* @__PURE__ */ q(it, [["render", st]]), dt = F({
|
|
name: "EliTabela",
|
|
inheritAttrs: !1,
|
|
components: {
|
|
EliTabelaCaixaDeBusca: Ra,
|
|
EliTabelaPaginacao: xa,
|
|
EliTabelaCelula: ut,
|
|
ArrowUp: Ae,
|
|
ArrowDown: Ee,
|
|
MoreVertical: Pe
|
|
},
|
|
props: {
|
|
tabela: {
|
|
type: Object,
|
|
required: !0
|
|
}
|
|
},
|
|
setup(e) {
|
|
const a = B(!1), s = B(null), m = B([]), v = B(0), y = B([]), n = B(null), f = /* @__PURE__ */ new Map(), k = B(""), r = B(1), _ = B(null), b = B("asc"), g = V(() => e.tabela), p = V(() => !!e.tabela.mostrarCaixaDeBusca), T = V(() => e.tabela.acoesTabela ?? []), C = V(() => T.value.length > 0), Y = V(() => {
|
|
const t = e.tabela.registros_por_consulta;
|
|
return typeof t == "number" && t > 0 ? Math.floor(t) : 10;
|
|
}), W = V(() => {
|
|
const t = Y.value;
|
|
if (!t || t <= 0) return 1;
|
|
const o = v.value;
|
|
return o ? Math.max(1, Math.ceil(o / t)) : 1;
|
|
}), j = V(() => (e.tabela.acoesLinha ?? []).length > 0);
|
|
let K = 0;
|
|
function $e(t, o) {
|
|
o ? f.set(t, o) : f.delete(t);
|
|
}
|
|
function te(t) {
|
|
if (n.value === null) return;
|
|
const o = f.get(n.value);
|
|
o && o.contains(t.target) || (n.value = null);
|
|
}
|
|
function Q(t) {
|
|
return (t == null ? void 0 : t.coluna_ordem) !== void 0 && (t == null ? void 0 : t.coluna_ordem) !== null;
|
|
}
|
|
function be(t) {
|
|
if (t) {
|
|
if (_.value === t) {
|
|
b.value = b.value === "asc" ? "desc" : "asc", l();
|
|
return;
|
|
}
|
|
_.value = t, b.value = "asc", r.value !== 1 ? r.value = 1 : l();
|
|
}
|
|
}
|
|
function ce(t) {
|
|
k.value !== t && (k.value = t, r.value !== 1 ? r.value = 1 : l());
|
|
}
|
|
function le(t) {
|
|
const o = Math.min(Math.max(1, t), W.value);
|
|
o !== r.value && (r.value = o);
|
|
}
|
|
function O(t) {
|
|
return t === "direita" ? "eli-tabela__celula--direita" : t === "centro" ? "eli-tabela__celula--centro" : "eli-tabela__celula--esquerda";
|
|
}
|
|
function S(t) {
|
|
if (t != null)
|
|
return typeof t == "number" ? `${t}px` : String(t);
|
|
}
|
|
function ne(t) {
|
|
if (!Array.isArray(t)) return;
|
|
const o = t[0], u = t[1];
|
|
if (o === "textoSimples")
|
|
return typeof (u == null ? void 0 : u.texto) == "string" ? u.texto : void 0;
|
|
if (o === "numero")
|
|
return typeof (u == null ? void 0 : u.numero) == "number" ? String(u.numero) : void 0;
|
|
}
|
|
function me(t) {
|
|
const o = e.tabela.acoesLinha ?? [], u = y.value[t] ?? [];
|
|
return o.map((d, w) => {
|
|
const D = d.exibir === void 0 ? !0 : typeof d.exibir == "boolean" ? d.exibir : !1;
|
|
return {
|
|
acao: d,
|
|
indice: w,
|
|
visivel: u[w] ?? D
|
|
};
|
|
}).filter((d) => d.visivel);
|
|
}
|
|
function h(t) {
|
|
return me(t).length > 0;
|
|
}
|
|
function i(t) {
|
|
h(t) && (n.value = n.value === t ? null : t);
|
|
}
|
|
async function l() {
|
|
var w, D;
|
|
const t = ++K;
|
|
a.value = !0, s.value = null, y.value = [], n.value = null, f.clear();
|
|
const o = Math.max(1, Y.value), d = {
|
|
offSet: (r.value - 1) * o,
|
|
limit: o
|
|
};
|
|
k.value && (d.texto_busca = k.value), _.value && (d.coluna_ordem = _.value, d.direcao_ordem = b.value);
|
|
try {
|
|
const E = e.tabela, A = await E.consulta(d);
|
|
if (t !== K) return;
|
|
if (A.cod !== Ye.sucesso) {
|
|
m.value = [], v.value = 0, s.value = A.mensagem;
|
|
return;
|
|
}
|
|
const U = ((w = A.valor) == null ? void 0 : w.valores) ?? [], x = ((D = A.valor) == null ? void 0 : D.quantidade) ?? U.length;
|
|
m.value = U, v.value = x;
|
|
const J = Math.max(1, Math.ceil((x || 0) / o));
|
|
if (r.value > J) {
|
|
r.value = J;
|
|
return;
|
|
}
|
|
const ee = E.acoesLinha ?? [];
|
|
if (!ee.length) {
|
|
y.value = [];
|
|
return;
|
|
}
|
|
const ae = U.map(
|
|
() => ee.map((z) => z.exibir === void 0 ? !0 : typeof z.exibir == "boolean" ? z.exibir : !1)
|
|
);
|
|
y.value = ae;
|
|
const N = await Promise.all(
|
|
U.map(
|
|
async (z) => Promise.all(
|
|
ee.map(async (Z) => {
|
|
if (Z.exibir === void 0) return !0;
|
|
if (typeof Z.exibir == "boolean") return Z.exibir;
|
|
try {
|
|
const ie = Z.exibir(z);
|
|
return !!await Promise.resolve(ie);
|
|
} catch {
|
|
return !1;
|
|
}
|
|
})
|
|
)
|
|
)
|
|
);
|
|
t === K && (y.value = N);
|
|
} catch (E) {
|
|
if (t !== K) return;
|
|
m.value = [], v.value = 0, s.value = E instanceof Error ? E.message : "Erro ao carregar dados.";
|
|
} finally {
|
|
t === K && (a.value = !1);
|
|
}
|
|
}
|
|
return We(() => {
|
|
document.addEventListener("click", te), l();
|
|
}), Je(() => {
|
|
document.removeEventListener("click", te), f.clear();
|
|
}), se(
|
|
() => e.tabela.mostrarCaixaDeBusca,
|
|
(t) => {
|
|
!t && k.value && (k.value = "", r.value !== 1 ? r.value = 1 : l());
|
|
}
|
|
), se(r, (t, o) => {
|
|
t !== o && l();
|
|
}), se(
|
|
() => e.tabela,
|
|
() => {
|
|
n.value = null, f.clear(), _.value = null, b.value = "asc", k.value = "", r.value !== 1 ? r.value = 1 : l();
|
|
}
|
|
), se(
|
|
() => e.tabela.registros_por_consulta,
|
|
() => {
|
|
r.value !== 1 ? r.value = 1 : l();
|
|
}
|
|
), se(m, () => {
|
|
n.value = null, f.clear();
|
|
}), {
|
|
// state
|
|
tabela: g,
|
|
carregando: a,
|
|
erro: s,
|
|
linhas: m,
|
|
quantidade: v,
|
|
menuAberto: n,
|
|
valorBusca: k,
|
|
paginaAtual: r,
|
|
colunaOrdenacao: _,
|
|
direcaoOrdenacao: b,
|
|
totalPaginas: W,
|
|
// computed
|
|
exibirBusca: p,
|
|
acoesCabecalho: T,
|
|
temAcoesCabecalho: C,
|
|
temAcoes: j,
|
|
// icons
|
|
ArrowUp: Ae,
|
|
ArrowDown: Ee,
|
|
MoreVertical: Pe,
|
|
// helpers
|
|
isOrdenavel: Q,
|
|
obterClasseAlinhamento: O,
|
|
obterMaxWidth: S,
|
|
obterTooltipCelula: ne,
|
|
// actions
|
|
alternarOrdenacao: be,
|
|
atualizarBusca: ce,
|
|
irParaPagina: le,
|
|
registrarMenuElemento: $e,
|
|
acoesDisponiveisPorLinha: me,
|
|
possuiAcoes: h,
|
|
toggleMenu: i
|
|
};
|
|
}
|
|
}), ct = { class: "eli-tabela" }, mt = {
|
|
key: 0,
|
|
class: "eli-tabela eli-tabela--carregando",
|
|
"aria-busy": "true"
|
|
}, ft = {
|
|
key: 1,
|
|
class: "eli-tabela eli-tabela--erro",
|
|
role: "alert"
|
|
}, pt = { class: "eli-tabela__erro-mensagem" }, bt = {
|
|
key: 2,
|
|
class: "eli-tabela eli-tabela--vazio"
|
|
}, vt = {
|
|
key: 0,
|
|
class: "eli-tabela__cabecalho"
|
|
}, ht = {
|
|
key: 1,
|
|
class: "eli-tabela__acoes-cabecalho"
|
|
}, gt = ["onClick"], yt = { class: "eli-tabela__acoes-cabecalho-rotulo" }, $t = { class: "eli-tabela__table" }, kt = { class: "eli-tabela__thead" }, Vt = { class: "eli-tabela__tr eli-tabela__tr--header" }, wt = ["onClick"], Ct = { class: "eli-tabela__th-texto" }, St = {
|
|
key: 1,
|
|
class: "eli-tabela__th-label"
|
|
}, _t = {
|
|
key: 0,
|
|
class: "eli-tabela__th eli-tabela__th--acoes",
|
|
scope: "col"
|
|
}, Mt = { class: "eli-tabela__tbody" }, Dt = ["onClick"], Bt = ["title"], Et = ["id", "disabled", "aria-expanded", "aria-controls", "aria-label", "title", "onClick"], At = ["id", "aria-labelledby"], Pt = ["aria-label", "title", "onClick"], Tt = { class: "eli-tabela__acoes-item-texto" };
|
|
function Ot(e, a, s, m, v, y) {
|
|
const n = G("EliTabelaCaixaDeBusca"), f = G("ArrowUp"), k = G("EliTabelaCelula"), r = G("MoreVertical"), _ = G("EliTabelaPaginacao");
|
|
return c(), $("div", ct, [
|
|
e.carregando ? (c(), $("div", mt, " Carregando... ")) : e.erro ? (c(), $("div", ft, [
|
|
a[0] || (a[0] = P("div", { class: "eli-tabela__erro-titulo" }, "Erro", -1)),
|
|
P("div", pt, H(e.erro), 1)
|
|
])) : e.linhas.length ? (c(), $(X, { key: 3 }, [
|
|
e.exibirBusca || e.temAcoesCabecalho ? (c(), $("div", vt, [
|
|
e.exibirBusca ? (c(), I(n, {
|
|
key: 0,
|
|
modelo: e.valorBusca,
|
|
onBuscar: e.atualizarBusca
|
|
}, null, 8, ["modelo", "onBuscar"])) : R("", !0),
|
|
e.temAcoesCabecalho ? (c(), $("div", ht, [
|
|
(c(!0), $(X, null, oe(e.acoesCabecalho, (b, g) => (c(), $("button", {
|
|
key: `${b.rotulo}-${g}`,
|
|
type: "button",
|
|
class: "eli-tabela__acoes-cabecalho-botao",
|
|
style: ke(b.cor ? { backgroundColor: b.cor, color: "#fff" } : void 0),
|
|
onClick: b.acao
|
|
}, [
|
|
b.icone ? (c(), I(he(b.icone), {
|
|
key: 0,
|
|
class: "eli-tabela__acoes-cabecalho-icone",
|
|
size: 16,
|
|
"stroke-width": 2
|
|
})) : R("", !0),
|
|
P("span", yt, H(b.rotulo), 1)
|
|
], 12, gt))), 128))
|
|
])) : R("", !0)
|
|
])) : R("", !0),
|
|
P("table", $t, [
|
|
P("thead", kt, [
|
|
P("tr", Vt, [
|
|
(c(!0), $(X, null, oe(e.tabela.colunas, (b, g) => (c(), $("th", {
|
|
key: `th-${g}`,
|
|
class: ue(["eli-tabela__th", [
|
|
e.isOrdenavel(b) ? "eli-tabela__th--ordenavel" : void 0,
|
|
e.obterClasseAlinhamento(b.alinhamento)
|
|
]]),
|
|
scope: "col"
|
|
}, [
|
|
e.isOrdenavel(b) ? (c(), $("button", {
|
|
key: 0,
|
|
type: "button",
|
|
class: ue(["eli-tabela__th-botao", [
|
|
e.colunaOrdenacao === String(b.coluna_ordem) ? "eli-tabela__th-botao--ativo" : void 0
|
|
]]),
|
|
onClick: (p) => e.alternarOrdenacao(String(b.coluna_ordem))
|
|
}, [
|
|
P("span", Ct, H(b.rotulo), 1),
|
|
e.colunaOrdenacao === String(b.coluna_ordem) ? (c(), I(he(e.direcaoOrdenacao === "asc" ? e.ArrowUp : e.ArrowDown), {
|
|
key: 0,
|
|
class: "eli-tabela__th-icone",
|
|
size: 16,
|
|
"stroke-width": 2,
|
|
"aria-hidden": "true"
|
|
})) : (c(), I(f, {
|
|
key: 1,
|
|
class: "eli-tabela__th-icone eli-tabela__th-icone--oculto",
|
|
size: 16,
|
|
"stroke-width": 2,
|
|
"aria-hidden": "true"
|
|
}))
|
|
], 10, wt)) : (c(), $("span", St, H(b.rotulo), 1))
|
|
], 2))), 128)),
|
|
e.temAcoes ? (c(), $("th", _t, " Ações ")) : R("", !0)
|
|
])
|
|
]),
|
|
P("tbody", Mt, [
|
|
(c(!0), $(X, null, oe(e.linhas, (b, g) => (c(), $("tr", {
|
|
key: `tr-${g}`,
|
|
class: ue(["eli-tabela__tr", [g % 2 === 1 ? "eli-tabela__tr--zebra" : void 0]])
|
|
}, [
|
|
(c(!0), $(X, null, oe(e.tabela.colunas, (p, T) => (c(), $("td", {
|
|
key: `td-${g}-${T}`,
|
|
class: ue(["eli-tabela__td", [
|
|
p.acao ? "eli-tabela__td--clicavel" : void 0,
|
|
e.obterClasseAlinhamento(p.alinhamento)
|
|
]]),
|
|
onClick: (C) => p.acao ? () => {
|
|
var Y;
|
|
return (Y = p.acao) == null ? void 0 : Y.call(p);
|
|
} : void 0
|
|
}, [
|
|
p.truncar ? (c(), $("span", {
|
|
key: 0,
|
|
class: "eli-tabela__celula-conteudo",
|
|
style: ke(p.largura_maxima ? { maxWidth: e.obterMaxWidth(p.largura_maxima) } : void 0),
|
|
title: e.obterTooltipCelula(p.celula(b))
|
|
}, [
|
|
M(k, {
|
|
celula: p.celula(b)
|
|
}, null, 8, ["celula"])
|
|
], 12, Bt)) : (c(), I(k, {
|
|
key: 1,
|
|
celula: p.celula(b)
|
|
}, null, 8, ["celula"]))
|
|
], 10, Dt))), 128)),
|
|
e.temAcoes ? (c(), $("td", {
|
|
class: "eli-tabela__td eli-tabela__td--acoes",
|
|
key: `td-${g}-acoes`
|
|
}, [
|
|
P("div", {
|
|
class: ue(["eli-tabela__acoes-container", [e.menuAberto === g ? "eli-tabela__acoes-container--aberto" : void 0]])
|
|
}, [
|
|
P("button", {
|
|
class: "eli-tabela__acoes-toggle",
|
|
type: "button",
|
|
id: `eli-tabela-acoes-toggle-${g}`,
|
|
disabled: !e.possuiAcoes(g),
|
|
"aria-haspopup": "menu",
|
|
"aria-expanded": e.menuAberto === g ? "true" : "false",
|
|
"aria-controls": e.possuiAcoes(g) ? `eli-tabela-acoes-menu-${g}` : void 0,
|
|
"aria-label": e.possuiAcoes(g) ? "Ações da linha" : "Nenhuma ação disponível",
|
|
title: e.possuiAcoes(g) ? "Ações" : "Nenhuma ação disponível",
|
|
onClick: Se((p) => e.toggleMenu(g), ["stop"])
|
|
}, [
|
|
M(r, {
|
|
class: "eli-tabela__acoes-toggle-icone",
|
|
size: 18,
|
|
"stroke-width": 2
|
|
})
|
|
], 8, Et),
|
|
e.menuAberto === g && e.possuiAcoes(g) ? (c(), $("ul", {
|
|
key: 0,
|
|
id: `eli-tabela-acoes-menu-${g}`,
|
|
class: "eli-tabela__acoes-menu",
|
|
role: "menu",
|
|
"aria-labelledby": `eli-tabela-acoes-toggle-${g}`
|
|
}, [
|
|
(c(!0), $(X, null, oe(e.acoesDisponiveisPorLinha(g), (p) => (c(), $("li", {
|
|
key: `acao-${g}-${p.indice}`,
|
|
class: "eli-tabela__acoes-item",
|
|
role: "none"
|
|
}, [
|
|
P("button", {
|
|
type: "button",
|
|
class: "eli-tabela__acoes-item-botao",
|
|
style: ke({ color: p.acao.cor }),
|
|
role: "menuitem",
|
|
"aria-label": p.acao.rotulo,
|
|
title: p.acao.rotulo,
|
|
onClick: Se(
|
|
() => {
|
|
e.menuAberto = null, p.acao.acao(b);
|
|
},
|
|
["stop"]
|
|
)
|
|
}, [
|
|
(c(), I(he(p.acao.icone), {
|
|
class: "eli-tabela__acoes-item-icone",
|
|
size: 16,
|
|
"stroke-width": 2
|
|
})),
|
|
P("span", Tt, H(p.acao.rotulo), 1)
|
|
], 12, Pt)
|
|
]))), 128))
|
|
], 8, At)) : R("", !0)
|
|
], 2)
|
|
])) : R("", !0)
|
|
], 2))), 128))
|
|
])
|
|
]),
|
|
e.totalPaginas > 1 && e.quantidade > 0 ? (c(), I(_, {
|
|
key: 1,
|
|
pagina: e.paginaAtual,
|
|
totalPaginas: e.totalPaginas,
|
|
maximoBotoes: e.tabela.maximo_botoes_paginacao,
|
|
onAlterar: e.irParaPagina
|
|
}, null, 8, ["pagina", "totalPaginas", "maximoBotoes", "onAlterar"])) : R("", !0)
|
|
], 64)) : (c(), $("div", bt, H(e.tabela.mensagemVazio ?? "Nenhum registro encontrado."), 1))
|
|
]);
|
|
}
|
|
const It = /* @__PURE__ */ q(dt, [["render", Ot], ["__scopeId", "data-v-e714deaf"]]), Zt = {
|
|
install(e) {
|
|
e.component("EliOlaMundo", ka), e.component("EliBotao", Ne), e.component("EliBadge", we), e.component("EliInput", ze), e.component("EliCartao", _a), e.component("EliDataHora", Oa), e.component("EliTabela", It);
|
|
}
|
|
};
|
|
export {
|
|
we as EliBadge,
|
|
Ne as EliBotao,
|
|
_a as EliCartao,
|
|
Oa as EliDataHora,
|
|
ze as EliInput,
|
|
ka as EliOlaMundo,
|
|
It as EliTabela,
|
|
Zt as default
|
|
};
|