UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

881 lines (880 loc) 28.9 kB
import { defineComponent as q, ref as E, inject as V, onMounted as A, createVNode as S, computed as H, toRefs as oe, watch as z } from "vue"; import { useDesignerComponent as ie } from "../designer-canvas/index.esm.js"; import { InputBaseProperty as ae } from "../property-panel/index.esm.js"; import se from "../button-edit/index.esm.js"; import { createPropsResolver as le } from "../dynamic-resolver/index.esm.js"; import { cloneDeep as W, isPlainObject as _ } from "lodash-es"; import { FInputGroup as ue } from "../input-group/index.esm.js"; import { useI18n as ce } from "vue-i18n"; class pe extends ae { constructor(t, n) { super(t, n); } getEditorProperties(t) { return this.getComponentConfig(t, { type: "language-textbox" }, { maxLength: { description: "文本字数最大长度", title: "最大长度", type: "number", editor: { nullable: !0, min: 0, useThousands: !1, max: t.editor.maxLength } } }); } } function de(e, t) { function n(s, v) { const y = e.schema; return new pe(s, t).getPropertyConfig(y, v); } return { getPropsConfig: n }; } const fe = /* @__PURE__ */ q({ name: "FLanguageTextboxDesign", props: { placeholder: { type: String, default: "" } }, setup(e, t) { const n = E(), s = V("design-item-context"), v = V("designer-host-service"), y = de(s, v), c = ie(n, s, y); return A(() => { n.value.componentInstance = c; }), t.expose(c.value), () => S("div", { class: "f-button-edit f-cmp-inputgroup f-button-edit-nowrap", ref: n }, [S("div", { class: "input-group" }, [S("input", { autocomplete: "off", class: "text-left form-control f-utils-fill", readonly: "true", type: "text", placeholder: e.placeholder }, null), S("div", { class: "input-group-append" }, [S("span", { class: "input-group-text input-group-append-button" }, [S("i", { class: "f-icon f-icon-yxs_earth" }, null)])])])]); } }); function U(e, t) { let n; function s(a) { const { properties: l, title: f, ignore: o } = a, i = o && Array.isArray(o), r = Object.keys(l).reduce((p, g) => ((!i || !o.find((x) => x === g)) && (p[g] = l[g].type === "object" && l[g].properties ? s(l[g]) : W(l[g].default)), p), {}); if (f && (!i || !o.find((p) => p === "id"))) { const p = f.toLowerCase().replace(/-/g, "_"); r.id = `${p}_${Math.random().toString().slice(2, 6)}`; } return r; } function v(a) { const { properties: l, title: f, required: o } = a; if (o && Array.isArray(o)) { const i = o.reduce((r, p) => (r[p] = l[p].type === "object" && l[p].properties ? s(l[p]) : W(l[p].default), r), {}); if (f && o.find((r) => r === "id")) { const r = f.toLowerCase().replace(/-/g, "_"); i.id = `${r}_${Math.random().toString().slice(2, 6)}`; } return i; } return { type: f }; } function y(a, l = {}, f) { const o = e[a]; if (o) { let i = v(o); const r = t[a]; return i = r ? r({ getSchemaByType: y }, i, l, f) : i, n != null && n.appendIdentifyForNewControl && n.appendIdentifyForNewControl(i), i; } return null; } function c(a, l) { const f = s(l); return Object.keys(f).reduce((o, i) => (Object.prototype.hasOwnProperty.call(a, i) && (o[i] && _(o[i]) && _(a[i] || !a[i]) ? Object.assign(o[i], a[i] || {}) : o[i] = a[i]), o), f), f; } function F(a, l) { return Object.keys(a).filter((o) => a[o] != null).reduce((o, i) => { if (l.has(i)) { const r = l.get(i); if (typeof r == "string") o[r] = a[i]; else { const p = r(i, a[i], a); Object.assign(o, p); } } else o[i] = a[i]; return o; }, {}); } function j(a, l, f = /* @__PURE__ */ new Map()) { const o = c(a, l); return F(o, f); } function d(a) { var f; const l = a.type; if (l) { const o = e[l]; if (!o) return a; const i = c(a, o), r = ((f = a.editor) == null ? void 0 : f.type) || ""; if (r) { const p = e[r], g = c(a.editor, p); i.editor = g; } return i; } return a; } function m(a) { n = a; } return { getSchemaByType: y, resolveSchemaWithDefaultValue: d, resolveSchemaToProps: j, mappingSchemaToProps: F, setDesignerContext: m }; } const me = {}, ge = {}, { getSchemaByType: mt, resolveSchemaWithDefaultValue: ve, resolveSchemaToProps: gt, mappingSchemaToProps: vt, setDesignerContext: bt } = U(me, ge); function be(e = {}) { function t(d, m, a, l) { if (typeof a == "number") return l[d].length === a; if (typeof a == "object") { const f = Object.keys(a)[0], o = a[f]; if (f === "not") return Number(l[d].length) !== Number(o); if (f === "moreThan") return Number(l[d].length) >= Number(o); if (f === "lessThan") return Number(l[d].length) <= Number(o); } return !1; } function n(d, m, a, l) { return l[d] && l[d].propertyValue && String(l[d].propertyValue.value) === String(a); } const s = /* @__PURE__ */ new Map([ ["length", t], ["getProperty", n] ]); Object.keys(e).reduce((d, m) => (d.set(m, e[m]), d), s); function v(d, m) { const a = d; return typeof m == "number" ? [{ target: a, operator: "length", param: null, value: Number(m) }] : typeof m == "boolean" ? [{ target: a, operator: "getProperty", param: d, value: !!m }] : typeof m == "object" ? Object.keys(m).map((l) => { if (l === "length") return { target: a, operator: "length", param: null, value: m[l] }; const f = l, o = m[l]; return { target: a, operator: "getProperty", param: f, value: o }; }) : []; } function y(d) { return Object.keys(d).reduce((a, l) => { const f = v(l, d[l]); return a.push(...f), a; }, []); } function c(d, m) { if (s.has(d.operator)) { const a = s.get(d.operator); return a && a(d.target, d.param, d.value, m) || !1; } return !1; } function F(d, m) { return y(d).reduce((f, o) => f && c(o, m), !0); } function j(d, m) { const a = Object.keys(d), l = a.includes("allOf"), f = a.includes("anyOf"), o = l || f, p = (o ? d[o ? l ? "allOf" : "anyOf" : "allOf"] : [d]).map((x) => F(x, m)); return l ? !p.includes(!1) : p.includes(!0); } return { parseValueSchema: j }; } const ye = { convertTo: (e, t, n, s) => { e.appearance || (e.appearance = {}), e.appearance[t] = n; }, convertFrom: (e, t, n) => e.appearance ? e.appearance[t] : e[t] }, xe = { convertFrom: (e, t, n) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无" }, Se = { convertTo: (e, t, n, s) => { e.editor && (e.editor[t] = n); }, convertFrom: (e, t, n) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, t) ? e.editor[t] : e[t] }, Te = { button: { type: "button", name: "按钮" }, "response-toolbar": { type: "response-toolbar", name: "工具栏" }, "response-toolbar-item": { type: "response-toolbar-item", name: "按钮" }, "content-container": { type: "content-container", name: "容器" }, "input-group": { type: "input-group", name: "文本" }, textarea: { type: "textarea", name: "多行文本" }, lookup: { type: "lookup", name: "帮助" }, "number-spinner": { type: "number-spinner", name: "数值" }, "date-picker": { type: "date-picker", name: "日期" }, switch: { type: "switch", name: "开关" }, "radio-group": { type: "radio-group", name: "单选组" }, "check-box": { type: "check-box", name: "复选框" }, "check-group": { type: "check-group", name: "复选框组" }, "combo-list": { type: "combo-list", name: "下拉列表" }, "response-form": { type: "response-form", name: "卡片面板" }, "response-layout": { type: "response-layout", name: "布局容器", icon: "response-layout-3" }, "response-layout-item": { type: "response-layout-item", name: "布局", icon: "response-layout-1" }, "tree-grid": { type: "tree-grid", name: "树表格" }, "tree-grid-column": { type: "tree-grid-column", name: "树表格列" }, "data-grid": { type: "data-grid", name: "表格" }, "data-grid-column": { type: "data-grid-column", name: "表格列" }, module: { type: "Module", name: "模块" }, component: { type: "component", name: "组件" }, tabs: { type: "tabs", name: "标签页" }, "tab-page": { type: "tab-page", name: "标签页项", dependentParentControl: "Tab" }, "tab-toolbar-item": { type: "tab-toolbar-item", name: "标签页工具栏按钮" }, "html-template": { type: "html-template", name: "模板容器" }, "time-picker": { type: "time-picker", name: "时间选择" }, section: { type: "section", name: "分组面板" }, "section-toolbar": { type: "section-toolbar", name: "分组面板工具栏" }, "section-toolbar-item": { type: "section-toolbar-item", name: "分组面板按钮" }, splitter: { type: "splitter", name: "分栏面板" }, "splitter-pane": { type: "splitter-pane", name: "分栏面板项", dependentParentControl: "Splitter" }, "component-ref": { type: "component-ref", name: "组件引用节点" }, uploader: { type: "uploader", name: "附件上传" }, "page-header": { type: "page-header", name: "页头" }, "page-footer": { type: "page-footer", name: "页脚" }, "tab-toolbar": { type: "tab-toolbar", name: "标签页工具栏" }, fieldset: { type: "fieldset", name: "分组" }, "query-solution": { type: "query-solution", name: "筛选方案" }, drawer: { type: "drawer", name: "抽屉" }, "external-container": { type: "external-container", name: "外部容器", icon: "content-container" }, "list-nav": { type: "list-nav", name: "列表导航" }, "list-view": { type: "list-view", name: "列表" }, "filter-bar": { type: "filter-bar", name: "筛选条" }, "language-textbox": { type: "language-textbox", name: "多语输入框" } }, he = { convertFrom: (e, t, n) => { var v; const s = e.editor && e.editor[t] ? e.editor[t] : e[t]; return ((v = Te[s]) == null ? void 0 : v.name) || s; } }, Ce = { convertTo: (e, t, n, s) => { e[t] = e[t]; }, convertFrom: (e, t, n) => e.editor ? n.getRealEditorType(e.editor.type) : "" }, Fe = { convertTo: (e, t, n, s) => { (e.type === "data-grid-column" || e.type === "tree-grid-column") && (e.formatter ? e.formatter[t] = n : e.formatter = { [t]: n }); }, convertFrom: (e, t, n) => { if (e.formatter) { if (t === "trueText") return e.formatter.trueText; if (t === "falseText") return e.formatter.falseText; if (t === "prefix") return e.formatter.prefix; if (t === "suffix") return e.formatter.suffix; if (t === "precision") return e.formatter.precision; if (t === "decimal") return e.formatter.decimal; if (t === "thousand") return e.formatter.thousand; if (t === "tempDateFormat") return e.formatter.dateFormat === "yyyy年MM月dd日" ? "yearMonthDay" : e.formatter.dateFormat === "yyyy-MM-dd HH:mm:ss" ? "yyyy-MM-ddTHH:mm:ss" : e.formatter.dateFormat === "yyyy/MM/dd HH:mm:ss" ? "yyyy/MM/ddTHH:mm:ss" : e.formatter.dateFormat === "yyyy年MM月dd日 HH时mm分ss秒" ? "yearMonthDayHourMinuteSecond" : e.formatter.tempDateFormat || e.formatter.dateFormat || "yyyy-MM-dd"; if (t === "customFormat") return e.formatter.customFormat; if (t === "type") return e.formatter.type || "none"; } return "none"; } }, Oe = { convertTo: (e, t, n, s) => { e.command ? e.command[t] = n : e.command = { [t]: n }, t === "enable" && n && (e.command.commands || (e.command.commands = [ { text: "编辑", type: "primary", command: "edit" }, { text: "删除", type: "danger", command: "remove" } ])); }, convertFrom: (e, t, n) => e.command && t === "enable" ? e.command.enable : "" }, Pe = { convertTo: (e, t, n, s) => { e.column ? e.column[t] = n : e.column = { [t]: n }, t === "fitColumns" && n && (e.column.fitMode || (e.column.fitMode = "average")); }, convertFrom: (e, t, n) => { if (e.column) { if (t === "fitColumns") return e.column.fitColumns; if (t === "fitMode") return e.column.fitMode; } return ""; } }, Me = { convertTo: (e, t, n, s) => { e.summary ? e.summary[t] = n : e.summary = { [t]: n }, t === "enable" && n && (e.summary ? e.summary.groupFields || (e.summary.groupFields = []) : e.summary = { enable: n, groupFields: [] }); }, convertFrom: (e, t, n) => e.summary && t === "enable" ? e.summary.enable : e.type === "data-grid-column" ? e.enableSummary === void 0 ? !1 : e.enableSummary : "" }, we = { convertTo: (e, t, n, s) => { e.group ? e.group[t] = n : e.group = { [t]: n }, t === "enable" && n && (e.group ? e.group.groupFields || (e.group.groupFields = []) : e.group = { enable: n, groupFields: [], showSummary: !1 }); }, convertFrom: (e, t, n) => { if (e.group) { if (t === "enable") return e.group.enable; if (t === "showSummary") return e.group.showSummary; } } }, je = { convertFrom: (e, t) => e.binding ? e.binding.path : "", convertTo: (e, t, n) => { if (n && n.length > 0) { const s = n[0]; e.binding || (e.binding = {}), e.binding.type = "Form", e.binding.path = s.bindingField, e.binding.field = s.id, e.binding.fullPath = s.path, e.path = s.bindingPath; } } }, De = { convertTo: (e, t, n, s) => { e.pagination || (e.pagination = {}), e.pagination[t] = n; }, convertFrom: (e, t, n) => e.pagination ? e.pagination[t] : e[t] }, Ee = { convertTo: (e, t, n, s) => { e.rowNumber || (e.rowNumber = {}), e.rowNumber[t] = n; }, convertFrom: (e, t, n) => e.rowNumber ? e.rowNumber[t] : e[t] }, Le = { convertTo: (e, t, n, s) => { e.selection || (e.selection = {}), e.selection[t] = n; }, convertFrom: (e, t, n) => e.selection ? e.selection[t] : e[t] }, Re = { convertFrom: (e, t, n) => e[t] && e[t].length ? `共 ${e[t].length} 项` : "" }, Ne = { convertFrom: (e, t) => e[t] || "", convertTo: (e, t, n) => { e[t] = n; } }, ke = { convertTo: (e, t, n, s) => { e.size || (e.size = {}), e.size[t] = n; }, convertFrom: (e, t, n) => e.size ? e.size[t] : e[t] }, Be = { convertFrom: (e, t, n) => { var s, v; return (s = e.formatter) != null && s.data && t === "formatterEnumData" && !e.formatterEnumData ? (v = e.formatter) == null ? void 0 : v.data : e.formatterEnumData; } }, $e = { convertTo: (e, t, n, s) => { e.sort || (e.sort = {}), e.sort[t] = n; }, convertFrom: (e, t, n) => { var s, v; if (t === "mode") return ((s = e.sort) == null ? void 0 : s.mode) || "client"; if (t === "multiSort") return !!((v = e.sort) != null && v.multiSort); } }, Ie = { convertTo: (e, t, n, s) => { e.filter || (e.filter = {}), e.filter[t] = n; }, convertFrom: (e, t, n) => { var s; if (t === "mode") return ((s = e.filter) == null ? void 0 : s.mode) || "client"; } }, He = { convertTo: (e, t, n, s) => { e.rowOption ? e.rowOption[t] = n : e.rowOption = { [t]: n }; }, convertFrom: (e, t, n) => { if (e.rowOption) { if (t === "customRowStyle") return e.rowOption.customRowStyle; if (t === "customCellStyle") return e.rowOption.customCellStyle; } return ""; } }; function J(e, t, n) { const s = /* @__PURE__ */ new Map([ ["/converter/appearance.converter", ye], ["/converter/buttons.converter", xe], ["/converter/property-editor.converter", Se], ["/converter/items-count.converter", Re], ["/converter/type.converter", he], ["/converter/change-editor.converter", Ce], ["/converter/change-formatter.converter", Fe], ["/converter/column-command.converter", Oe], ["/converter/column-option.converter", Pe], ["/converter/summary.converter", Me], ["/converter/group.converter", we], ["/converter/form-group-label.converter", Ne], ["/converter/field-selector.converter", je], ["/converter/pagination.converter", De], ["/converter/row-number.converter", Ee], ["/converter/grid-selection.converter", Le], ["/converter/size.converter", ke], ["/converter/change-formatter-enum.converter", Be], ["/converter/grid-sort.converter", $e], ["/converter/grid-filter.converter", Ie], ["/converter/row-option.converter", He] ]), v = /* @__PURE__ */ new Map([ ["string", { type: "input-group", enableClear: !1 }], ["boolean", { type: "combo-list", textField: "name", valueField: "value", idField: "value", enableClear: !1, editable: !1, data: [ { value: !0, name: "是" }, { value: !1, name: "否" } ] }], ["enum", { type: "combo-list", maxHeight: 128, enableClear: !1, editable: !1 }], ["array", { type: "button-edit" }], ["number", { type: "number-spinner", placeholder: "" }], ["events-editor", { type: "events-editor", hide: !0 }] ]), y = be(); function c(o, i) { return () => y.parseValueSchema(o, i); } function F(o, i, r) { return o.includes("visible") && i.visible !== void 0 ? typeof i.visible == "boolean" ? () => !!i.visible : i.visible === void 0 ? !0 : c(i.visible, r) : () => !0; } function j(o, i, r) { return o.includes("readonly") && i.readonly !== void 0 ? typeof i.readonly == "boolean" ? () => !!i.readonly : c(i.readonly, r) : () => !1; } function d(o, i) { const r = o.$converter || i; return typeof r == "string" && r && s.has(r) ? s.get(r) || null : r || null; } function m(o, i, r, p, g, x = "", C = "") { return Object.keys(o).map((b) => { const O = E(1), P = b, u = o[b], h = Object.keys(u), k = u.title, L = u.type, R = v.get(L) || { type: "input-group", enableClear: !1 }, D = u.editor ? Object.assign({}, R, u.editor) : Object.assign({}, R), $ = F(h, u, i), B = j(h, u, i); D.readonly = D.readonly === void 0 ? B() : D.readonly; const I = u.type === "cascade" ? m(u.properties, i, r, p, g, x, C) : [], Y = !0; let M = d(u, C); const Z = H({ get() { if (O.value) { if (["class", "style"].find((re) => re === P) && !M && (M = s.get("/converter/appearance.converter") || null), M && M.convertFrom) return M.convertFrom(r, b, g, x); const w = r[b]; return Object.prototype.hasOwnProperty.call(u, "defaultValue") && (w === void 0 || typeof w == "string" && w === "") ? u.type === "boolean" ? u.defaultValue : u.defaultValue || "" : w; } return null; }, set(w) { O.value += 1, M && M.convertTo ? (M.convertTo(p, b, w, g, x), M.convertTo(r, b, w, g, x)) : (p[b] = w, r[b] = w); } }), { refreshPanelAfterChanged: K, description: ee, isExpand: te, parentPropertyID: ne } = u, G = { propertyID: P, propertyName: k, propertyType: L, propertyValue: Z, editor: D, visible: $, readonly: B, cascadeConfig: I, hideCascadeTitle: Y, refreshPanelAfterChanged: K, description: ee, isExpand: te, parentPropertyID: ne }; return i[P] = G, G; }); } function a(o, i, r = {}) { const p = {}, g = e[o]; return g && g.categories ? Object.keys(g.categories).map((C) => { const T = g.categories[C], b = T == null ? void 0 : T.title, O = m(T.properties || {}, p, {}, r, i); return { categoryId: C, categoryName: b, properties: O }; }) : []; } function l(o, i, r, p, g = "") { const x = i.$ref.schema, C = i.$ref.converter, T = r[x], b = T.type, O = n(T), P = {}, u = e[b]; if (u && u.categories) { const h = u.categories[o], k = h == null ? void 0 : h.title; C && Object.keys(h.properties).forEach((D) => { h.properties[D].$converter = C; }); const L = (h == null ? void 0 : h.properties) || {}, R = m(L, P, O, T, p, g); return { categoryId: o, categoryName: k, properties: R }; } return { categoryId: o, categoryName: "", properties: [] }; } function f(o, i, r, p, g) { const x = o.type, C = n(o), T = {}; let b = g || e[x]; if (b && Object.keys(b).length === 0 && r && r.getPropConfig && (b = r.getPropConfig(p)), b && b.categories) { const O = []; return Object.keys(b.categories).map((P) => { const u = b.categories[P]; if (u.$ref) { O.push(l(P, u, o, i, p)); return; } const h = u == null ? void 0 : u.title, k = u == null ? void 0 : u.tabId, L = u == null ? void 0 : u.tabName, R = u == null ? void 0 : u.hide, D = u == null ? void 0 : u.hideTitle, $ = m(u.properties || {}, T, C, o, i, p, u.$converter), { setPropertyRelates: B } = u, I = u == null ? void 0 : u.parentPropertyID; O.push({ categoryId: P, categoryName: h, tabId: k, tabName: L, hide: R, properties: $, hideTitle: D, setPropertyRelates: B, parentPropertyID: I }); }), O; } return []; } return { getPropertyConfigBySchema: f, getPropertyConfigByType: a, propertyConverterMap: s }; } const qe = {}, Ae = {}; J(qe, Ae, ve); const Ge = {}, Ve = {}, { getSchemaByType: yt, resolveSchemaWithDefaultValue: ze, resolveSchemaToProps: xt, mappingSchemaToProps: St, setDesignerContext: Tt } = U(Ge, Ve), We = {}, _e = {}; J(We, _e, ze); function Ue(e, t) { return { customClass: t.class, customStyle: t.style }; } const Je = /* @__PURE__ */ new Map([ ["appearance", Ue] ]), Qe = "https://json-schema.org/draft/2020-12/schema", Xe = "https://farris-design.gitee.io/input-group.schema.json", Ye = "language-textbox", Ze = "A Farris Input Component", Ke = "object", et = { id: { description: "The unique identifier for a Input Group", type: "string" }, type: { description: "The type string of Input Group component", type: "string", default: "language-textbox" }, appearance: { description: "", type: "object", properties: { class: { type: "string" }, style: { type: "string" } }, default: {} }, binding: { description: "", type: "object", default: {} }, formatValidation: { description: "", type: "object", default: {} }, editable: { description: "", type: "boolean", default: !0 }, enableLinkLabel: { description: "", type: "boolean", default: !1 }, label: { description: "", type: "string", default: "" }, labelWidth: { description: "", type: "number" }, placeholder: { description: "", type: "string", default: "" }, readonly: { description: "", type: "boolean", default: !1 }, disabled: { description: "", type: "boolean", default: !1 }, required: { description: "", type: "boolean", default: !1 }, tabIndex: { description: "", type: "number", default: -1 }, maxLength: { description: "", type: "number", default: "" }, visible: { description: "", type: "boolean", default: !0 }, onBlur: { description: "", type: "string", default: "" }, onClickLinkLabel: { description: "", type: "sting", default: "" }, languages: { description: "语种列表", type: "array", default: [] }, modelValue: { description: "绑定值", type: "object", default: {} }, maxWords: { description: "各语种最大字符数", type: "object", default: null } }, tt = [ "type" ], nt = [ "id", "appearance", "binding", "visible" ], rt = { $schema: Qe, $id: Xe, title: Ye, description: Ze, type: Ke, properties: et, required: tt, ignore: nt }; function ot(e, t, n) { return t; } const Q = { id: { type: String, required: !0 }, languages: { type: Array, default: [] }, disabled: { type: Boolean, default: !1 }, editable: { type: Boolean, default: !1 }, readonly: { type: Boolean, default: !1 }, placeholder: { type: String, default: "" }, maxWords: { type: Object, default: null }, modelValue: { type: Object, default: null }, dropDownIcon: { type: String, default: '<span class="f-icon f-icon-yxs_earth"></span>' }, tabIndex: { type: Number, default: -1 }, enableTitle: { type: Boolean, default: !0 }, maxLength: { type: Number, default: null } }, X = le(Q, rt, Je, ot), it = /* @__PURE__ */ q({ name: "LanguageContents", props: { languages: { type: Array, default: [] }, modelValue: { type: Object, default: null }, id: { type: String, default: "" }, maxLength: { type: Number, default: void 0 } }, emits: ["update:modelValue"], setup(e, t) { const n = E(e.languages), s = E(e.modelValue || {}), v = E(); return A(() => { setTimeout(() => { var y, c; (c = (y = v.value) == null ? void 0 : y.querySelector("input")) == null || c.focus(); }, 130); }), () => { var y; return S("ul", { class: "list-group", style: "background: white;", ref: v }, [(y = n.value) == null ? void 0 : y.map((c) => S("li", { class: "list-group-item border-0 p-2 px-2" }, [S("div", { class: "farris-group-wrap form-inline farris-form-inline" }, [S("div", { class: "form-group farris-form-group" }, [S("label", { for: "hpinput01", class: "col-form-label" }, [S("span", { class: "farris-label-text", title: c.name }, [c.name])]), S("div", { class: "farris-input-wrap" }, [S(ue, { id: e.id + "_" + c.code, modelValue: s.value[c.code], "onUpdate:modelValue": (F) => { s.value[c.code] = F, t.emit("update:modelValue", s.value); }, updateOn: "change", maxLength: e.maxLength }, null)])])])]))]); }; } }), N = /* @__PURE__ */ q({ name: "FLanguageTextbox", props: Q, emits: ["update:modelValue"], setup(e, t) { const { locale: n } = ce(), { disabled: s, readonly: v, editable: y, modelValue: c } = oe(e), F = H(() => { var r; return (r = c.value) == null ? void 0 : r[n.value]; }), j = E(); z(() => e.modelValue, (r) => { c.value = r; }); const d = (r) => { if ((r == null ? void 0 : r.length) <= 1) return; let p = -1; const g = r.find((x, C) => { const T = x.code === n.value; return T && (p = C), T; }); if (g) { const x = Object.assign({}, g); r.splice(p, 1), r.unshift(x); } return r; }, m = E(); z(() => e.languages, (r) => { m.value = d(r) || []; }); function a(r) { c.value = c.value || {}, c.value[n.value] !== r && (c.value[n.value] = r, t.emit("update:modelValue", c.value)); } const l = H(() => { var p; const r = (p = j.value) == null ? void 0 : p.popoverRef; return r && m.value.length > 1 ? r.shown : !1; }); A(() => { m.value = d(e.languages) || []; }); const f = (r) => { c.value = r, t.emit("update:modelValue", c.value); }, o = () => { var r; return !(((r = m.value) == null ? void 0 : r.length) <= 1); }, i = () => { c.value = c.value || {}, c.value[n.value] && (c.value[n.value] = "", t.emit("update:modelValue", c.value)); }; return () => S(se, { ref: j, id: e.id, forcePlaceholder: !1, disable: s.value, readonly: v.value, editable: y.value, buttonContent: e.dropDownIcon, placeholder: e.placeholder, enableClear: !0, tabIndex: e.tabIndex, enableTitle: e.enableTitle, multiSelect: !1, inputType: "text", popupOnClick: !0, modelValue: F.value, "onUpdate:modelValue": (r) => F.value = r, onChange: a, placement: "auto", popupMinWidth: 365, maxLength: e.maxLength, beforeOpen: o, onClear: i }, { default: () => [l.value && S(it, { id: e.id, languages: m.value, modelValue: c.value, maxLength: e.maxLength, "onUpdate:modelValue": f }, null)] }); } }); N.install = (e) => { e.component(N.name, N); }; N.register = (e, t, n, s) => { e["language-textbox"] = N, t["language-textbox"] = X; }; N.registerDesigner = (e, t, n) => { e["language-textbox"] = fe, t["language-textbox"] = X; }; export { N as FLanguageTextbox, N as default, Q as languageTextBoxProps, X as propsResolver };