@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
881 lines (880 loc) • 28.9 kB
JavaScript
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
};