@vue-interface/textarea-field
Version:
A Vue textarea field component.
125 lines (124 loc) • 3.78 kB
JavaScript
import { ActivityIndicator as w } from "@vue-interface/activity-indicator";
import { Autogrow as A } from "@vue-interface/autogrow";
import { FormControl as z } from "@vue-interface/form-control";
import { defineComponent as E, resolveComponent as m, resolveDirective as c, openBlock as s, createElementBlock as a, normalizeClass as v, renderSlot as r, toDisplayString as l, createCommentVNode as n, createElementVNode as i, withDirectives as N, mergeProps as V, vModelText as B, createVNode as b, Transition as S, withCtx as f, createBlock as k, normalizeProps as y, guardReactiveProps as $, createTextVNode as D } from "vue";
const I = E({
name: "TextareaField",
directives: {
Autogrow: A
},
components: {
ActivityIndicator: w
},
extends: z,
props: {
/**
* The autogrow attribute
*
* @property Boolean
*/
autogrow: {
type: [Number, String, Boolean],
default: !1
}
}
});
const P = (e, t) => {
const d = e.__vccOpts || e;
for (const [u, p] of t)
d[u] = p;
return d;
}, G = ["for"], M = { class: "form-group-inner" }, O = {
invalid: "",
class: "invalid-feedback"
}, R = /* @__PURE__ */ i("br", null, null, -1), U = {
valid: "",
class: "valid-feedback"
};
function j(e, t, d, u, p, q) {
const g = m("ActivityIndicator"), C = m("FormControlErrors"), F = m("FormControlFeedback"), h = c("autogrow"), T = c("bind-events");
return s(), a("div", {
class: v(e.formGroupClasses)
}, [
r(e.$slots, "label", {}, () => [
e.label ? (s(), a("label", {
key: 0,
ref: "label",
for: e.id,
class: v(e.labelClass)
}, l(e.label), 11, G)) : n("", !0)
]),
i("div", M, [
r(e.$slots, "control", {
bindEvents: e.bindEvents,
controlAttributes: e.controlAttributes,
focus: e.focus
}, () => [
e.$slots.icon ? (s(), a("div", {
key: 0,
class: "form-group-inner-icon",
onClick: t[0] || (t[0] = (...o) => e.focus && e.focus(...o))
}, [
r(e.$slots, "icon")
])) : n("", !0),
N(i("textarea", V({
ref: "field",
"onUpdate:modelValue": t[1] || (t[1] = (o) => e.model = o)
}, e.controlAttributes), null, 16), [
[B, e.model],
[h, e.autogrow],
[T]
])
]),
r(e.$slots, "activity", {}, () => [
b(S, { name: "textarea-field-fade" }, {
default: f(() => [
e.activity ? (s(), k(g, {
key: "activity",
ref: "activity",
type: e.indicator,
size: e.indicatorSize || e.size
}, null, 8, ["type", "size"])) : n("", !0)
]),
_: 1
})
])
]),
r(e.$slots, "errors", y($({ error: e.error, errors: e.errors, id: e.$attrs.id, name: e.$attrs.name })), () => [
e.error || e.errors ? (s(), k(C, {
key: 0,
id: e.$attrs.id,
name: e.$attrs.name,
error: e.error,
errors: e.errors
}, {
default: f(({ error: o }) => [
i("div", O, [
D(l(o), 1),
R
])
]),
_: 1
}, 8, ["id", "name", "error", "errors"])) : n("", !0)
]),
r(e.$slots, "feedback", y($({ feedback: e.feedback })), () => [
b(F, { feedback: e.feedback }, {
default: f(({ feedback: o }) => [
i("div", U, l(o), 1)
]),
_: 1
}, 8, ["feedback"])
]),
r(e.$slots, "help", {}, () => [
e.helpText ? (s(), a("small", {
key: 0,
ref: "help"
}, l(e.helpText), 513)) : n("", !0)
])
], 2);
}
const Q = /* @__PURE__ */ P(I, [["render", j]]);
export {
Q as TextareaField
};
//# sourceMappingURL=textarea-field.js.map