@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1,507 lines (1,506 loc) • 59.3 kB
JavaScript
import { ref as k, computed as H, createVNode as p, Fragment as W, watch as U, withModifiers as Be, withDirectives as Ee, vModelText as Ne, defineComponent as ne, onMounted as de, inject as Ae, createTextVNode as ie } from "vue";
import Le from "../tree-view/index.esm.js";
import { cloneDeep as ee, isPlainObject as se } from "lodash-es";
import { getCustomClass as te, getCustomStyle as ce, withInstall as He } from "../common/index.esm.js";
import { useFilter as $e, useIdentify as _e, useHierarchy as ze, useGroupData as Ge, useDataView as qe, useSelection as xe, usePagination as We, useRow as Ue, useEdit as Xe, useVisualDataBound as Ye, useVisualDataCell as Je, useVisualDataRow as Qe, useVisualGroupRow as Ze, useVisualSummaryRow as Ke, useVisualData as et, useSidebar as tt, useColumn as nt, useVirtualScroll as ot, getPagination as rt } from "../data-view/index.esm.js";
import { useI18n as ve } from "vue-i18n";
import { FCheckbox as oe } from "../checkbox/index.esm.js";
import { getSchemaByTypeForDesigner as lt } from "../dynamic-resolver/index.esm.js";
function me(e, t) {
let n;
function u(a) {
const { properties: r, title: f, ignore: s } = a, o = s && Array.isArray(s), d = Object.keys(r).reduce((F, M) => ((!o || !s.find((B) => B === M)) && (F[M] = r[M].type === "object" && r[M].properties ? u(r[M]) : ee(r[M].default)), F), {});
if (f && (!o || !s.find((F) => F === "id"))) {
const F = f.toLowerCase().replace(/-/g, "_");
d.id = `${F}_${Math.random().toString().slice(2, 6)}`;
}
return d;
}
function R(a) {
const { properties: r, title: f, required: s } = a;
if (s && Array.isArray(s)) {
const o = s.reduce((d, F) => (d[F] = r[F].type === "object" && r[F].properties ? u(r[F]) : ee(r[F].default), d), {});
if (f && s.find((d) => d === "id")) {
const d = f.toLowerCase().replace(/-/g, "_");
o.id = `${d}_${Math.random().toString().slice(2, 6)}`;
}
return o;
}
return {
type: f
};
}
function w(a, r = {}, f) {
const s = e[a];
if (s) {
let o = R(s);
const d = t[a];
return o = d ? d({ getSchemaByType: w }, o, r, f) : o, n != null && n.appendIdentifyForNewControl && n.appendIdentifyForNewControl(o), o;
}
return null;
}
function h(a, r) {
const f = u(r);
return Object.keys(f).reduce((s, o) => (Object.prototype.hasOwnProperty.call(a, o) && (s[o] && se(s[o]) && se(a[o] || !a[o]) ? Object.assign(s[o], a[o] || {}) : s[o] = a[o]), s), f), f;
}
function D(a, r) {
return Object.keys(a).filter((s) => a[s] != null).reduce((s, o) => {
if (r.has(o)) {
const d = r.get(o);
if (typeof d == "string")
s[d] = a[o];
else {
const F = d(o, a[o], a);
Object.assign(s, F);
}
} else
s[o] = a[o];
return s;
}, {});
}
function V(a, r, f = /* @__PURE__ */ new Map()) {
const s = h(a, r);
return D(s, f);
}
function c(a) {
var f;
const r = a.type;
if (r) {
const s = e[r];
if (!s)
return a;
const o = h(a, s), d = ((f = a.editor) == null ? void 0 : f.type) || "";
if (d) {
const F = e[d], M = h(a.editor, F);
o.editor = M;
}
return o;
}
return a;
}
function C(a) {
n = a;
}
return { getSchemaByType: w, resolveSchemaWithDefaultValue: c, resolveSchemaToProps: V, mappingSchemaToProps: D, setDesignerContext: C };
}
const pe = {}, ge = {}, { getSchemaByType: Sn, resolveSchemaWithDefaultValue: at, resolveSchemaToProps: it, mappingSchemaToProps: st, setDesignerContext: wn } = me(pe, ge);
function ct(e = {}) {
function t(c, C, a, r) {
if (typeof a == "number")
return r[c].length === a;
if (typeof a == "object") {
const f = Object.keys(a)[0], s = a[f];
if (f === "not")
return Number(r[c].length) !== Number(s);
if (f === "moreThan")
return Number(r[c].length) >= Number(s);
if (f === "lessThan")
return Number(r[c].length) <= Number(s);
}
return !1;
}
function n(c, C, a, r) {
return r[c] && r[c].propertyValue && String(r[c].propertyValue.value) === String(a);
}
const u = /* @__PURE__ */ new Map([
["length", t],
["getProperty", n]
]);
Object.keys(e).reduce((c, C) => (c.set(C, e[C]), c), u);
function R(c, C) {
const a = c;
return typeof C == "number" ? [{ target: a, operator: "length", param: null, value: Number(C) }] : typeof C == "boolean" ? [{ target: a, operator: "getProperty", param: c, value: !!C }] : typeof C == "object" ? Object.keys(C).map((r) => {
if (r === "length")
return { target: a, operator: "length", param: null, value: C[r] };
const f = r, s = C[r];
return { target: a, operator: "getProperty", param: f, value: s };
}) : [];
}
function w(c) {
return Object.keys(c).reduce((a, r) => {
const f = R(r, c[r]);
return a.push(...f), a;
}, []);
}
function h(c, C) {
if (u.has(c.operator)) {
const a = u.get(c.operator);
return a && a(c.target, c.param, c.value, C) || !1;
}
return !1;
}
function D(c, C) {
return w(c).reduce((f, s) => f && h(s, C), !0);
}
function V(c, C) {
const a = Object.keys(c), r = a.includes("allOf"), f = a.includes("anyOf"), s = r || f, F = (s ? c[s ? r ? "allOf" : "anyOf" : "allOf"] : [c]).map((B) => D(B, C));
return r ? !F.includes(!1) : F.includes(!0);
}
return { parseValueSchema: V };
}
const ut = {
convertTo: (e, t, n, u) => {
e.appearance || (e.appearance = {}), e.appearance[t] = n;
},
convertFrom: (e, t, n) => e.appearance ? e.appearance[t] : e[t]
}, ft = {
convertFrom: (e, t, n) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无"
}, dt = {
convertTo: (e, t, n, u) => {
e.editor && (e.editor[t] = n);
},
convertFrom: (e, t, n) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, t) ? e.editor[t] : e[t]
}, he = {
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: "多语输入框" }
}, vt = {
convertFrom: (e, t, n) => {
var R;
const u = e.editor && e.editor[t] ? e.editor[t] : e[t];
return ((R = he[u]) == null ? void 0 : R.name) || u;
}
}, mt = {
convertTo: (e, t, n, u) => {
e[t] = e[t];
},
convertFrom: (e, t, n) => e.editor ? n.getRealEditorType(e.editor.type) : ""
}, pt = {
convertTo: (e, t, n, u) => {
(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";
}
}, gt = {
convertTo: (e, t, n, u) => {
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 : ""
}, ht = {
convertTo: (e, t, n, u) => {
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 "";
}
}, yt = {
convertTo: (e, t, n, u) => {
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 : ""
}, bt = {
convertTo: (e, t, n, u) => {
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;
}
}
}, St = {
convertFrom: (e, t) => e.binding ? e.binding.path : "",
convertTo: (e, t, n) => {
if (n && n.length > 0) {
const u = n[0];
e.binding || (e.binding = {}), e.binding.type = "Form", e.binding.path = u.bindingField, e.binding.field = u.id, e.binding.fullPath = u.path, e.path = u.bindingPath;
}
}
}, wt = {
convertTo: (e, t, n, u) => {
e.pagination || (e.pagination = {}), e.pagination[t] = n;
},
convertFrom: (e, t, n) => e.pagination ? e.pagination[t] : e[t]
}, Ct = {
convertTo: (e, t, n, u) => {
e.rowNumber || (e.rowNumber = {}), e.rowNumber[t] = n;
},
convertFrom: (e, t, n) => e.rowNumber ? e.rowNumber[t] : e[t]
}, Ft = {
convertTo: (e, t, n, u) => {
e.selection || (e.selection = {}), e.selection[t] = n;
},
convertFrom: (e, t, n) => e.selection ? e.selection[t] : e[t]
}, Tt = {
convertFrom: (e, t, n) => e[t] && e[t].length ? `共 ${e[t].length} 项` : ""
}, kt = {
convertFrom: (e, t) => e[t] || "",
convertTo: (e, t, n) => {
e[t] = n;
}
}, Mt = {
convertTo: (e, t, n, u) => {
e.size || (e.size = {}), e.size[t] = n;
},
convertFrom: (e, t, n) => e.size ? e.size[t] : e[t]
}, Dt = {
convertFrom: (e, t, n) => {
var u, R;
return (u = e.formatter) != null && u.data && t === "formatterEnumData" && !e.formatterEnumData ? (R = e.formatter) == null ? void 0 : R.data : e.formatterEnumData;
}
}, Ot = {
convertTo: (e, t, n, u) => {
e.sort || (e.sort = {}), e.sort[t] = n;
},
convertFrom: (e, t, n) => {
var u, R;
if (t === "mode")
return ((u = e.sort) == null ? void 0 : u.mode) || "client";
if (t === "multiSort")
return !!((R = e.sort) != null && R.multiSort);
}
}, It = {
convertTo: (e, t, n, u) => {
e.filter || (e.filter = {}), e.filter[t] = n;
},
convertFrom: (e, t, n) => {
var u;
if (t === "mode")
return ((u = e.filter) == null ? void 0 : u.mode) || "client";
}
}, Rt = {
convertTo: (e, t, n, u) => {
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 ye(e, t, n) {
const u = /* @__PURE__ */ new Map([
["/converter/appearance.converter", ut],
["/converter/buttons.converter", ft],
["/converter/property-editor.converter", dt],
["/converter/items-count.converter", Tt],
["/converter/type.converter", vt],
["/converter/change-editor.converter", mt],
["/converter/change-formatter.converter", pt],
["/converter/column-command.converter", gt],
["/converter/column-option.converter", ht],
["/converter/summary.converter", yt],
["/converter/group.converter", bt],
["/converter/form-group-label.converter", kt],
["/converter/field-selector.converter", St],
["/converter/pagination.converter", wt],
["/converter/row-number.converter", Ct],
["/converter/grid-selection.converter", Ft],
["/converter/size.converter", Mt],
["/converter/change-formatter-enum.converter", Dt],
["/converter/grid-sort.converter", Ot],
["/converter/grid-filter.converter", It],
["/converter/row-option.converter", Rt]
]), R = /* @__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 }]
]), w = ct();
function h(s, o) {
return () => w.parseValueSchema(s, o);
}
function D(s, o, d) {
return s.includes("visible") && o.visible !== void 0 ? typeof o.visible == "boolean" ? () => !!o.visible : o.visible === void 0 ? !0 : h(o.visible, d) : () => !0;
}
function V(s, o, d) {
return s.includes("readonly") && o.readonly !== void 0 ? typeof o.readonly == "boolean" ? () => !!o.readonly : h(o.readonly, d) : () => !1;
}
function c(s, o) {
const d = s.$converter || o;
return typeof d == "string" && d && u.has(d) ? u.get(d) || null : d || null;
}
function C(s, o, d, F, M, B = "", E = "") {
return Object.keys(s).map((S) => {
const b = k(1), m = S, i = s[S], I = Object.keys(i), P = i.title, y = i.type, T = R.get(y) || { type: "input-group", enableClear: !1 }, g = i.editor ? Object.assign({}, T, i.editor) : Object.assign({}, T), l = D(I, i, o), v = V(I, i, o);
g.readonly = g.readonly === void 0 ? v() : g.readonly;
const j = i.type === "cascade" ? C(i.properties, o, d, F, M, B, E) : [], O = !0;
let L = c(i, E);
const $ = H({
get() {
if (b.value) {
if (["class", "style"].find((Z) => Z === m) && !L && (L = u.get("/converter/appearance.converter") || null), L && L.convertFrom)
return L.convertFrom(d, S, M, B);
const _ = d[S];
return Object.prototype.hasOwnProperty.call(i, "defaultValue") && (_ === void 0 || typeof _ == "string" && _ === "") ? i.type === "boolean" ? i.defaultValue : i.defaultValue || "" : _;
}
return null;
},
set(_) {
b.value += 1, L && L.convertTo ? (L.convertTo(F, S, _, M, B), L.convertTo(d, S, _, M, B)) : (F[S] = _, d[S] = _);
}
}), { refreshPanelAfterChanged: z, description: J, isExpand: Q, parentPropertyID: q } = i, x = { propertyID: m, propertyName: P, propertyType: y, propertyValue: $, editor: g, visible: l, readonly: v, cascadeConfig: j, hideCascadeTitle: O, refreshPanelAfterChanged: z, description: J, isExpand: Q, parentPropertyID: q };
return o[m] = x, x;
});
}
function a(s, o, d = {}) {
const F = {}, M = e[s];
return M && M.categories ? Object.keys(M.categories).map((E) => {
const N = M.categories[E], S = N == null ? void 0 : N.title, b = C(N.properties || {}, F, {}, d, o);
return { categoryId: E, categoryName: S, properties: b };
}) : [];
}
function r(s, o, d, F, M = "") {
const B = o.$ref.schema, E = o.$ref.converter, N = d[B], S = N.type, b = n(N), m = {}, i = e[S];
if (i && i.categories) {
const I = i.categories[s], P = I == null ? void 0 : I.title;
E && Object.keys(I.properties).forEach((g) => {
I.properties[g].$converter = E;
});
const y = (I == null ? void 0 : I.properties) || {}, T = C(y, m, b, N, F, M);
return { categoryId: s, categoryName: P, properties: T };
}
return { categoryId: s, categoryName: "", properties: [] };
}
function f(s, o, d, F, M) {
const B = s.type, E = n(s), N = {};
let S = M || e[B];
if (S && Object.keys(S).length === 0 && d && d.getPropConfig && (S = d.getPropConfig(F)), S && S.categories) {
const b = [];
return Object.keys(S.categories).map((m) => {
const i = S.categories[m];
if (i.$ref) {
b.push(r(m, i, s, o, F));
return;
}
const I = i == null ? void 0 : i.title, P = i == null ? void 0 : i.tabId, y = i == null ? void 0 : i.tabName, T = i == null ? void 0 : i.hide, g = i == null ? void 0 : i.hideTitle, l = C(i.properties || {}, N, E, s, o, F, i.$converter), { setPropertyRelates: v } = i, j = i == null ? void 0 : i.parentPropertyID;
b.push({ categoryId: m, categoryName: I, tabId: P, tabName: y, hide: T, properties: l, hideTitle: g, setPropertyRelates: v, parentPropertyID: j });
}), b;
}
return [];
}
return {
getPropertyConfigBySchema: f,
getPropertyConfigByType: a,
propertyConverterMap: u
};
}
const be = {}, Se = {};
ye(be, Se, at);
const we = {}, Ce = {}, { getSchemaByType: Cn, resolveSchemaWithDefaultValue: Vt, resolveSchemaToProps: Fn, mappingSchemaToProps: Tn, setDesignerContext: kn } = me(we, Ce), Fe = {}, Te = {};
ye(Fe, Te, Vt);
function Pt(e, t, n = /* @__PURE__ */ new Map(), u = (h, D, V, c) => D, R = {}, w = (h) => h) {
return pe[t.title] = t, ge[t.title] = u, be[t.title] = R, Se[t.title] = w, we[t.title] = t, Ce[t.title] = u, Fe[t.title] = R, Te[t.title] = w, (h = {}, D = !0) => {
if (!D)
return st(h, n);
const V = it(h, t, n), c = Object.keys(e).reduce((C, a) => (C[a] = e[a].default, C), {});
return Object.assign(c, V);
};
}
function jt(e, t) {
return { customClass: t.class, customStyle: t.style };
}
const Bt = /* @__PURE__ */ new Map([
["appearance", jt]
]);
function Et(e, t, n) {
return t;
}
const Nt = "transfer", At = "A Farris Component", Lt = "object", Ht = {
basic: {
description: "Basic Infomation",
title: "基本信息",
properties: {
id: {
description: "组件标识",
title: "标识",
type: "string",
readonly: !0
},
type: {
description: "组件类型",
title: "控件类型",
type: "select",
editor: {
type: "waiting for modification",
enum: []
}
}
}
}
}, $t = {
title: Nt,
description: At,
type: Lt,
categories: Ht
}, _t = "https://json-schema.org/draft/2020-12/schema", zt = "https://farris-design.gitee.io/transfer.schema.json", Gt = "transfer", qt = "A Farris Component", xt = "object", Wt = {
id: {
description: "The unique identifier for transfer",
type: "string"
},
type: {
description: "The type string of transfer",
type: "string",
default: "transfer"
},
appearance: {
description: "",
type: "object",
properties: {
class: {
type: "string"
},
style: {
type: "string"
}
},
default: {}
},
binding: {
description: "",
type: "object",
default: {}
},
disable: {
type: "string",
default: !1
},
editable: {
description: "",
type: "boolean",
default: !0
},
placeholder: {
description: "",
type: "string",
default: ""
},
readonly: {
description: "",
type: "boolean",
default: !1
},
require: {
description: "",
type: "boolean",
default: !1
},
tabindex: {
description: "",
type: "number",
default: -1
},
visible: {
description: "",
type: "boolean",
default: !0
}
}, Ut = [
"id",
"type"
], Xt = {
$schema: _t,
$id: zt,
title: Gt,
description: qt,
type: xt,
properties: Wt,
required: Ut
}, re = {
dataSource: {
type: Array,
default: []
},
displayType: { type: String, default: "List" },
enableSearch: { type: Boolean, default: !0 },
identifyField: { type: String, default: "id" },
textField: { type: String, default: "name" },
placeholder: { type: String, default: "" },
selections: { type: Array, default: [] },
selectionValues: { type: Array, default: [] },
virtualized: { type: Boolean, default: !1 },
rowOption: { type: Object },
columns: {
type: Array,
default: [
{ field: "name", title: "", dataType: "string", width: "100%" }
]
},
/** 删除右侧已选数据前的检查方法,返回值为true时可以删除当前数据 */
checkBeforeRemoveItem: { type: Function, default: null },
/** 已选项的样式*/
selectedItemClass: {
Type: [String, Function],
default: "draggable-item--text-truncate",
validator: (e) => typeof e == "string" || typeof e == "function"
}
}, ke = Pt(re, Xt, Bt, Et, $t), Yt = {
/** 列集合 */
columns: {
type: Array,
default: [
{ field: "name", title: "", dataType: "string" }
]
},
customClass: { type: String, default: "" },
data: { type: Array, default: [] },
draggable: { type: Boolean, default: !1 },
multiSelect: { type: Boolean, default: !1 },
multiSelectMode: { type: String, default: "OnCheck" },
idField: { type: String, default: "id" },
valueField: { type: String, default: "id" },
textField: { type: String, default: "name" },
titleField: { type: String, default: "name" },
view: { type: String, default: "ContentView" },
size: { type: String, default: "default" },
placeholder: { type: String, default: "" },
header: { type: String, default: "ContentHeader" },
headerClass: { type: String, default: "" },
/** 可能根据数据每各项的样式不同 */
itemClass: {
type: [String, Function],
default: "",
validator: (e) => typeof e == "string" || typeof e == "function"
},
itemStyle: {
type: [String, Function],
default: "",
validator: (e) => typeof e == "string" || typeof e == "function"
},
itemContentClass: { type: String, default: "" },
selectionValues: { type: Array, default: [] },
/** 分组配置 */
group: { type: Object },
/** 选择配置 */
selection: {
type: Object,
default: {
enableSelectRow: !0,
multiSelect: !1,
multiSelectMode: "DependOnCheck",
showCheckbox: !1,
showSelectAll: !1,
showSelection: !0
}
},
keepOrder: { type: Boolean, default: !1 },
disableField: { type: String, default: "disabled" },
// 搜索启用高亮
enableHighlightSearch: { type: Boolean, default: !0 },
/** 虚拟化渲染数据 */
virtualized: { type: Boolean, default: !0 },
/** 删除数据前的检查方法,返回值为true时可以删除当前数据 */
checkBeforeRemoveItem: { type: Function, default: null },
/** 头部模板 */
headerTemplate: { type: Object },
/** 内容模板 */
contentTemplate: { type: Object },
/** 底部模板 */
footerTemplate: { type: Object },
/** 空数据模板 */
emptyTemplate: { type: Object },
/** 分页 */
pagination: { type: Object, default: { enable: !1, size: 20 } }
};
function Jt(e, t) {
function n(w) {
const h = [];
let D = w.nextNode();
for (; D; )
h.push(D), D = w.nextNode();
return h;
}
function u(w, h) {
const D = document.createTreeWalker(w, NodeFilter.SHOW_TEXT);
return n(D).map((a) => ({ textNode: a, text: (a.textContent || "").toLocaleLowerCase() })).map(({ textNode: a, text: r }) => {
const f = [];
let s = 0;
for (; s < r.length; ) {
const o = r.indexOf(h, s);
if (o === -1)
break;
f.push(o), s = o + h.length;
}
return f.map((o) => {
const d = new Range();
return d.setStart(a, o), d.setEnd(a, o + h.length), d;
});
}).flat();
}
function R(w) {
if (!CSS.highlights || (CSS.highlights.clear(), !w || !t))
return;
const h = u(t.value, w.toLocaleLowerCase()), D = new Highlight(...h);
CSS.highlights.set("search-result", D);
}
return { search: R };
}
function ue(e, t, n, u, R, w, h, D, V, c) {
const C = k(e.size), a = k(e.textField), r = k(e.titleField), f = k(e.disableField), s = H(() => {
var m, i;
return ((m = e.selection) == null ? void 0 : m.multiSelect) && ((i = e.selection) == null ? void 0 : i.showCheckbox);
}), {
onMouseenterItem: o,
onMouseoverItem: d,
onMouseoutItem: F
} = w, {
getKey: M,
listViewItemClass: B,
onCheckItem: E,
onClickItem: N
} = h, S = H(() => {
const m = {
"text-overflow": "ellipsis",
overflow: "hidden",
"white-space": "nowrap"
};
return e.itemClass ? m : {
margin: C.value === "small" ? "0.25rem 0" : "8px 0",
...m
};
});
function b(m, i, I) {
return m.checked = D.findIndexInSelectedItems(m) > -1, p("li", {
class: B(m, i),
id: M(m, i),
key: M(m, i),
onClick: (P) => N(m, i, P),
onMouseenter: (P) => o(P, m, i),
onMouseover: (P) => d(P, m, i),
onMouseout: (P) => F(P, m, i)
}, [s.value && p("div", {
class: "f-list-select",
onClick: (P) => P.stopPropagation()
}, [p(oe, {
id: "list-" + M(m, i),
customClass: "listview-checkbox float-left",
disabled: m[f.value],
checked: m.checked,
"onUpdate:checked": (P) => m.checked = P,
onChange: (P) => {
E(m, i, !P.checked);
}
}, null)]), p("div", {
class: "f-list-content"
}, [p("div", {
class: e.itemContentClass,
style: S.value,
title: m.raw[r.value] || m.raw[a.value]
}, [m.raw[a.value]])])]);
}
return {
renderItem: b
};
}
function Qt(e, t, n, u, R, w, h, D, V, c) {
const C = k(e.multiSelect), a = k(e.disableField), r = k(e.textField), {
onMouseenterItem: f,
onMouseoverItem: s,
onMouseoutItem: o
} = w, {
getKey: d,
listViewItemClass: F,
listViewItemStyle: M,
onCheckItem: B,
onClickItem: E
} = h;
function N(b, m, i) {
return e.contentTemplate ? p(W, null, [e.contentTemplate({
item: b.raw,
index: m,
selectedItem: i
})]) : t.slots.content ? p(W, null, [t.slots.content && t.slots.content({
item: b.raw,
index: m,
selectedItem: i
})]) : p("div", {
style: "margin: 10px 0;"
}, [b.raw[r.value || "name"]]);
}
function S(b, m, i) {
return p("li", {
class: F(b, m),
id: d(b, m),
key: d(b, m),
style: M(b, m),
onClick: (I) => E(b, m, I),
onMouseenter: (I) => f(I, b, m),
onMouseover: (I) => s(I, b, m),
onMouseout: (I) => o(I, b, m)
}, [C.value && p("div", {
class: "f-list-select",
onClick: (I) => I.stopPropagation()
}, [p(oe, {
id: "list-" + d(b, m),
customClass: "listview-checkbox",
disabled: b[a.value] || !b.checked,
checked: b.checked,
"onUpdate:checked": (I) => b.checked = I,
onChange: (I) => B(b, m, !I.checked)
}, null)]), p("div", {
class: "f-list-content"
}, [N(b, m, i)])]);
}
return {
renderItem: S
};
}
function Zt(e, t, n, u, R, w, h, D, V, c) {
const C = k(e.multiSelect), a = k(e.disableField), r = k(e.textField), {
onMouseenterItem: f,
onMouseoverItem: s,
onMouseoutItem: o
} = w, {
getKey: d,
listViewItemClass: F,
onCheckItem: M,
onClickItem: B
} = h, {
dragstart: E,
dragenter: N,
dragover: S,
dragend: b
} = u, {
removeItem: m
} = V, i = H(() => ({
margin: C.value ? "10px 0" : "10px 0px 10px 14px"
}));
function I(l, v = "") {
const j = l.target;
j.title = j.scrollWidth > j.clientWidth ? v : "";
}
function P(l) {
return p("div", {
style: i.value,
onMouseenter: (v) => I(v, l.raw[r.value || "name"])
}, [l.raw[r.value || "name"]]);
}
function y() {
return t.slots.itemContent ? t.slots.itemContent : P;
}
const T = y();
function g(l, v, j) {
return p("li", {
class: F(l, v),
id: d(l, v),
key: d(l, v),
onClick: (O) => B(l, v, O),
onMouseenter: (O) => f(O, l, v),
onMouseover: (O) => s(O, l, v),
onMouseout: (O) => o(O, l, v),
draggable: "true",
onDragstart: (O) => E(O, l, v),
onDragenter: (O) => N(O, v),
onDragend: (O) => b(O, l),
onDragover: (O) => S(O)
}, [C.value && p("div", {
class: "f-list-select",
onClick: (O) => O.stopPropagation()
}, [p(oe, {
id: "list-" + d(l, v),
customClass: "listview-checkbox",
disabled: l[a.value] || !l.checked,
checked: l.checked,
"onUpdate:checked": (O) => l.checked = O,
onChange: (O) => M(l, v, !O.checked)
}, null)]), p("div", {
class: "f-list-content"
}, [T(l)]), p("div", {
class: "f-list-remove",
onClick: (O) => m(v)
}, [p("div", {
class: "f-list-remove-icon"
}, [p("i", {
class: "f-icon f-icon-remove_face"
}, null)])]), p("div", {
class: "f-list-handle"
}, [p("div", null, [p("i", {
class: "f-icon f-icon-drag-vertical"
}, null)])])]);
}
return {
renderItem: g
};
}
function Kt(e, t, n, u, R, w, h, D, V, c) {
var d;
const C = k(((d = e.group) == null ? void 0 : d.groupFields) || []), {
collpaseGroupIconClass: a
} = R, {
toggleGroupRow: r
} = c;
function f(F, M) {
M.collapse = !M.collapse, n.value = r(M.collapse ? "collapse" : "expand", M, n.value);
}
function s(F, M, B) {
return t.slots.group ? p(W, null, [t.slots.content && t.slots.group({
item: F.raw,
index: M,
selectedItem: B
})]) : p("div", {
class: "f-navlookup-recentHeader",
onClick: (E) => f(E, F)
}, [p("div", {
class: "fv-grid-group-row-icon"
}, [p("span", {
class: a(F)
}, null)]), p("div", {
class: "f-navlookup-recommandLabel"
}, [F.raw[C.value[F.layer]]])]);
}
function o(F, M, B) {
return F.layer > -1 && s(F, M, B);
}
return {
renderItem: o
};
}
function en(e, t, n, u) {
const { dataView: R } = n, { updateSelectedItems: w } = u;
function h(D) {
if (D > -1 && D < R.value.length) {
if (e != null && e.checkBeforeRemoveItem && !e.checkBeforeRemoveItem(R.value[D]))
return;
const V = R.value.splice(D, 1);
w(), t.emit("removeItem", V[0]);
}
}
return { removeItem: h };
}
function tn(e, t, n, u, R, w, h, D, V, c) {
const {
t: C
} = ve(), a = k(e.view), r = k(e.view === "CardView"), f = k({}), s = k(C("listView.emptyMessage")), o = en(e, t, u, V), d = H(() => ({
"f-list-view-group": !0,
"f-list-view-group-multiselect": e.multiSelect,
"d-flex": r.value,
"flex-wrap": r.value
})), F = H(() => !!n.value && n.value.length > 0), M = H(() => n.value.length === 0);
H(() => M.value && !t.slots.empty);
function B() {
return a.value === "SingleView" ? ue : a.value === "DraggableView" ? Zt : (a.value === "ContentView" || a.value === "CardView") && (e.contentTemplate || t.slots.content) ? Qt : ue;
}
const E = B(), {
renderItem: N
} = E(e, t, n, c, R, w, V, h, o, D), {
renderItem: S
} = Kt(e, t, n, c, R, w, V, h, o, D), b = [N, S];
function m() {
return n.value.filter((P) => P.visible !== !1).map((P, y) => b[P.type](P, y, f));
}
function i() {
return p("div", {
class: "f-list-view-emptydata",
style: "margin: 0 auto;"
}, [p("p", {
class: "f-empty-title"
}, [e.emptyTemplate ? e.emptyTemplate() : t.slots.empty ? t.slots.empty() : s.value])]);
}
function I() {
return p("ul", {
class: d.value,
style: "list-style: none;"
}, [F.value && m(), M.value && i()]);
}
return {
renderListArea: I
};
}
function nn(e, t, n) {
function u() {
return t.slots.header && p("div", {
class: "f-list-view-header"
}, [t.slots.header()]);
}
return {
renderHeader: u
};
}
function fe(e, t, n) {
const u = k(e.headerClass), R = k(e.placeholder), w = k(""), h = H(() => !w.value), D = H(() => !!w.value);
function V(r) {
w.value = "";
}
U(w, (r) => {
e.enableHighlightSearch && n.search(r), t.emit("afterSearch", r);
});
const c = H(() => {
const r = {
"form-group": !0,
"farris-form-group": !0
};
return u.value && u.value.split(" ").reduce((s, o) => (s[o] = !0, s), r), r;
});
function C(r) {
}
function a() {
return p("div", {
class: "f-list-view-header",
onClick: Be(() => C, ["prevent", "stop"])
}, [p("div", {
class: c.value
}, [p("div", {
class: "farris-input-wrap"
}, [p("div", {
class: "f-cmp-inputgroup"
}, [p("div", {
class: "input-group f-state-editable"
}, [Ee(p("input", {
class: "form-control f-utils-fill text-left",
"onUpdate:modelValue": (r) => w.value = r,
name: "input-group-value",
type: "text",
placeholder: R.value,
autocomplete: "off"
}, null), [[Ne, w.value]]), p("div", {
class: "input-group-append"
}, [D.value && p("span", {
class: "input-group-text input-group-clear",
onClick: (r) => V()
}, [p("i", {
class: "f-icon f-icon-close-circle"
}, null)]), h.value && p("span", {
class: "input-group-text"
}, [p("span", {
class: "f-icon f-icon-search"
}, null)])])])])])])]);
}
return {
renderHeader: a
};
}
function on() {
const e = k(""), t = k(-1), n = k(""), u = k(-1), R = k(!1);
function w(a, r, f) {
u.value = f;
}
function h(a, r, f) {
R.value || (u.value = f);
}
function D(a, r, f) {
u.value = -1;
}
function V() {
R.value = !0;
}
function c() {
R.value = !1;
}
function C() {
t.value = -1, e.value = "";
}
return {
activeIndex: t,
focusedItemId: n,
hoverIndex: u,
clearActiveItem: C,
onMouseenterItem: w,
onMouseoverItem: h,
onMouseoutItem: D,
resumeHover: c,
suspendHover: V
};
}
function rn(e, t, n, u) {
const R = k(e.idField), { dataView: w } = n, h = k(-1), D = k(!1), { activeIndex: V, focusedItemId: c, hoverIndex: C, resumeHover: a, suspendHover: r } = u;
let f, s = 0, o = 0;
function d(S, b) {
const m = S - s, i = b - o;
f.style.left = parseInt(f.style.left) + m + "px", f.style.top = parseInt(f.style.top) + i + "px", s = S, o = b;
}
function F(S) {
const { left: b, top: m } = S.getBoundingClientRect(), i = S.cloneNode(!0);
return i.style.cssText = `
position:absolute;
left:${b}px;
top:${document.documentElement.scrollTop ? m + document.documentElement.scrollTop : m}px;
z-index: 999999;
border: 1px solid #e2e3e5;
pointer-events: none;
background-color: #edf5ff;
border-radius: 10px;
margin: 4px 2px;
display: flex;
align-items: center;
float: none;
text-align: initial;
width:${getComputedStyle(S).width};
height:${getComputedStyle(S).height};
`, i.children[0].style.cssText = "overflow: hidden;flex: 1 1 auto;width: 100%;", i.children[0].children[0].style.cssText = `
margin: 10px 0px 10px 14px;
overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
`, i.children[1].style.cssText = "width: 30px;color: #f4625f;padding: 0 14px 0 0", i.children[2].style.cssText = "padding: 0 14px 0 0;", document.body.appendChild(i), i;
}
function M(S, b, m) {
if (S.stopPropagation(), r(), b) {
if (f = F(S.target), S.dataTransfer) {
const i = new Image();
i.src = "", S.dataTransfer.setDragImage(i, 0, 0);
}
s = S.pageX, o = S.pageY, setTimeout(() => {
h.value = m, D.value = !0, b.moving = !0;
});
}
}
function B(S, b) {
if (S.preventDefault(), h.value !== b) {
const m = w.value[h.value], i = w.value;
i.splice(h.value, 1), i.splice(b, 0, m), h.value = b, d(S.pageX, S.pageY);
}
}
function E(S) {
S.preventDefault(), S.dataTransfer && (S.dataTransfer.dropEffect = "move"), d(S.pageX, S.pageY);
}
function N(S, b) {
b && (b.moving = !1, f && (document.body.removeChild(f), f = null)), w.value.forEach((m, i) => {
m.__fv_index__ = i;
}), D.value = !1, a(), C.value = b.raw.__fv_index__, V.value = b.raw.__fv_index__, c.value = b.raw[R.value], t.emit("change", w.value), t.emit("activeChange", [b.raw]);
}
return {
dragstart: M,
dragenter: B,
dragover: E,
dragend: N,
isDragging: D
};
}
function ln(e, t, n, u, R, w) {
const h = k(e.idField), D = k(e.disableField), V = k(e.draggable);
k(e.itemClass);
const c = k(e.selection.multiSelect ?? !1), C = k(e.selection.multiSelectMode), { isDragging: a } = u, { activeIndex: r, focusedItemId: f, hoverIndex: s } = R, { clearSelection: o, getSelectedItems: d, toggleSelectItem: F, currentSelectedDataId: M } = w, B = k(d()), E = (g) => B.value.length === 0 ? !1 : B.value.some((l) => {
let v = "";
return l.data ? v = l.data[h.value] : v = l[h.value], v === g;
});
function N() {
B.value = d();
}
function S(g, l) {
return g.raw[h.value] != null ? g.raw[h.value] : "";
}
function b(g, l) {
const v = {
"f-list-view-group-item": !0,
"f-list-view-draggable-item": V.value,
"f-un-click": !g.checked,
"f-un-select": !!g.raw[D.value],
"f-listview-active": (
// 多选
c.value && E(S(g)) || // 单选
!c.value && g.raw[h.value] === M.value
),
"f-listview-hover": !a.value && l === s.value,
moving: !!g.moving
};
if (typeof e.itemClass == "string")
return te(v, e.itemClass);
if (typeof e.itemClass == "function") {
const j = e.itemClass(g);
return te(v, j);
}
return v;
}
function m(g, l) {
const v = (
// 多选
c.value && E(S(g)) || // 单选
!c.value && g.raw[h.value] === M.value
), j = {};
if (v && (j.backgroundColor = "#dae9ff"), typeof e.itemStyle == "string")
return ce(j, e.itemStyle);
if (typeof e.itemStyle == "function") {
const O = e.itemStyle(g);
return ce(j, O);
}
return j;
}
const i = H(() => !c.value);
function I(g, l, v) {
g.checked = v, !g.raw[D.value] && (i.value && (f.value = g.raw[h.value]), F(g));
}
const P = H(() => c.value && C.value === "OnCheckClearByClick"), y = H(() => !c.value || c.value && (C.value === "OnCheckAndClick" || C.value === "OnClick"));
function T(g, l, v) {
if (g.raw[D.value]) {
v == null || v.preventDefault(), v == null || v.stopPropagation();
return;
}
f.value = g.raw[h.value], r.value = l, P.value && o(), y.value && (F(g), N()), t.emit("clickItem", { data: B.value, index: l, dataItem: g.raw }), t.emit("activeChange", B.value);
}
return {
getKey: S,
selectedItems: B,
listViewItemClass: b,
listViewItemStyle: m,
updateSelectedItems: N,
onCheckItem: I,
onClickItem: T
};
}
const X = /* @__PURE__ */ ne({
name: "FListView",
props: Yt,
emits: ["afterSearch", "checkValuesChange", "clickItem", "selectItem", "unSelectItem", "selectionChange", "removeItem", "change", "activeChange", "pageIndexChanged", "pageSizeChanged", "changed"],
setup(e, t) {
const n = k(), u = k(!0), R = k(!1), w = k([]), h = 0, D = k(e.columns), V = $e(e, t), c = _e(e), C = ze(e), a = Ge(e, c), r = qe(e, /* @__PURE__ */ new Map(), V, C, c), f = xe(e, r, c, w, t), s = Jt(e, n), o = We(e, r), d = H(() => r.dataView.value.length), F = Ue(e, t, f, c), M = Xe(e, t, c, F, w), B = Ye(e), E = Je(e, {}, B), N = Qe(e, r, M, C, c, B, E), S = Ze(e, c, E, N), b = Ke(e, c, E, N), m = et(e, D, r, d, h, N, S, b), {
getVisualData: i
} = m;
w.value = i(0, d.value + h - 1);
const I = H(() => {
const A = {
"f-list-view": !0,
"f-list-view-multiple": e.multiSelect
};
return e.size !== "default" && (A[`${e.size}-item`] = !0), te(A, e.customClass);
}), P = H(() => !!t.slots.footer || u.value);
function y() {
return e.header === "SearchBar" ? fe : e.header === "ContentHeader" ? nn : fe;
}
const T = y(), {
renderHeader: g
} = T(e, t, s), l = on(), v = rn(e, t, r, l), j = ln(e, t, w, v, l, f), {
renderListArea: O
} = tn(e, t, w, r, a, l, f, m, j, v);
function L(A) {
s.search(A);
}
function $(A) {
A && (r.load(A), w.value = i(0, d.value + h - 1));
}
function z() {
f.clearSelection(), l.clearActiveItem();
}
function J() {
return j.selectedItems.value;
}
function Q() {
return j.selectedItems.value.map((A) => A[c.idField.value]);
}
function q(A) {
f.selectedValues.value = A, j.updateSelectedItems();
}
function x() {
return f.currentSelectedDataId.value;
}
function _(A) {
F.activeRowById(A);
}
function Z(A) {
const G = c.idField.value, le = w.value.find((K) => K.raw[G] === A), ae = w.value.findIndex((K) => K.raw[G] === A);
le && ae > -1 && j.onClickItem(le, ae);
}
function Me(A) {
o.updatePagination(A);
}
function De(A) {
return w.value.filter((G) => A.includes(G.raw[e.idField]));
}
t.expose({
search: L,
updateDataSource: $,
clearSelection: z,
getSelections: J,
updateSelectionByIds: q,
getSelectionIds: Q,
activeRowById: _,
getCurrentRowId: x,
clickRowItemById: Z,
updatePagination: Me,
getVisibleDataByIds: De
});
function Oe(A) {
e.multiSelect && (A.preventDefault(), A.stopPropagation());
}
U(() => e.selectionValues, (A, G) => {
A !== G && q(A);
});
const Ie = tt(e, f), {
sidebarWidth: Re,
showSidebarCheckBox: cn
} = Ie, Ve = nt(e, t), {
applyColumnSorter: un,
columnContext: Pe,
updateColumnRenderContext: fn
} = Ve, je = ot(e, r, w, Pe, m, d, h, Re, M);
return rt(e, t, r, je, o, f), () => p("div", {
class: I.value,
onClick: Oe
}, [g(), p("div", {
ref: n,
class: "f-list-view-content",
onMouseover: () => {
R.value = !0;
},
onMouseleave: () => {
R.value = !1;
}
}, [O()]), P.value && p("div", {
class: "f-list-view-footer"
}, [e.footerTemplate ? e.footerTemplate() : t.slots.footer && t.slots.footer()])]);
}
}), Y = /* @__PURE__ */ ne({
name: "FTransfer",
props: re,
emits: ["change", "activeChange", "selectItem", "unSelecteItem", "removeItem"],
setup(e, t) {
const {
t: n
} = ve(), u = k(e.identifyField), R = {
selectedStart: n("transfer.selectedStart"),
selectedEnd: n("transfer.selectedEnd")
}, w = k(e.displayType), h = k(!1), D = k(e.dataSource), V = k(e.textField), c = k(e.selections || []), C = H(() => c.value.map((l) => l[u.value])), a = /* @__PURE__ */ new Map(), r = k(), f = k(), s = k();
let o;
function d() {
const l = /* @__PURE__ */ new Map(), v = e.selectionValues || [];
v.length && v.reduce((O, L) => (O.set(L, !0), O), l);
const j = e.selections || [];
j.length && (l.clear(), j.reduce((O, L) => (O.set(L[u.value], !0), O), l)), c.value.length || (c.value = D.value.filter((O) => l.has(O[u.value])).map((O) => Object.assign({}, O))), D.value.forEach((O) => {
const L = O[u.value], $ = l.has(L);
O.checked = $, $ && a.set(L, O);
});
}
d(), U(() => e.selections, (l) => {
c.value = l, d();
});
const F = H(() => w.value === "List"), M = H(() => w.value === "Tree");
function B(l) {
const v = ee(c.value);
c.value = l.map((j) => Object.assign({}, j)), t.emit("change", c.value, v);
}
function E(l) {
t.emit("selectItem", l);
}
function N(l) {
t.emit("unSelectItem", l);
}
function S() {
return p(X, {
class: "f-utils-fill",
data: D.value,
multiSelect: !0,
itemClass: "f-transfer-list-item",
textField: V.value,
selection: {
enableSelectRow: !0,
multiSelect: !0,
multiSelectMode: "OnCheckAndClick",
showCheckbox: !0,
showSelectAll: !1,
showSelection: !0
},
draggable: !1,
header: "Search",
headerClass: "transfer-search-box",
selectionValues: C.value,
onSelectionChange: B
}, null);
}
function b() {
return p(Le, {
ref: s,
data: D.value,
columns: e.columns,
virtualized: e.virtualized,
rowOption: e.rowOption,
textField: V.value,
selection: {
enableSelectRow: !0,
multiSelect: !0,
multiSelectMode: "OnCheckAndClick",
showCheckbox: !0,
showSelectAll: !1,
showSelection: !0
},
selectionValues: C.value,
onSelectionChange: B,
onSelectItem: E,
onUnSelectItem: N
}, null);
}
function m() {
return p("div", {
class: "f-utils-fill option-pane d-flex flex-column"
}, [p("div", {
class: "f-utils-flex-column option-pane-content f-utils-fill"
}, [p("div", {
class: "container columns-box d-flex f-utils-fill"
}, [F.value && S(), M.value && b()])])]);
}
function i(l) {
const v = l[u.value];
if (v !== null || v !== void 0) {
c.value = c.value.filter((O) => O[u.value] !== v);
const j = a.get(v);
j && (j.checked = !1, a.delete(v)), t.emit("change", c.value), t.emit("removeItem", l);
}
}
U(c, (l) => {
r.value.updateDataSource(l);
const v = o == null ? void 0 : o[u.value], j = l.find((O) => v === O[u.value]);
j ? r.value.activeRowById(j[u.value]) : (o = null, r.value.activeRowById(""));
});
function I(l) {
const v = /* @__PURE__ */ new Map();
c.value.reduce((j, O) => (j.set(O[u.value], O), j), v), c.value = l.map((j) => v.get(j[u.value])), t.emit("change", c.value);
}
function P(l) {
o = l[0], t.emit("activeChange", l);
}
function y() {
var l;
return p(X, {
ref: r,
columns: e.columns,
style: "flex:1",
data: c.value,
draggable: !0,
view: "DraggableView",
"keep-order": !0,
textField: V.value,
itemClass: e.selectedItemClass,
onChange: I,
onRemoveItem: i,
onActiveChange: P,
checkBeforeRemoveItem: e.checkBeforeRemoveItem
}, {
itemContent: (l = t.slots) != null && l.text ? (v) => {
var j;
return ((j = t.slots) == null ? void 0 : j.text) && t.slots.text(v);
} : null
});
}
function T() {
return p("div", {
class: "f-utils-fill selection-pane d-flex flex-column"
}, [p("div", {
class: "f-utils-flex-column selection-pane-content f-utils-fill"
}, [p("div", {
class: "selection-pane-title"
}, [p("span", {
class: "selection-title"
}, [R.selectedStart]), p("span", {
class: "selection-count"
}, [c.value && c.value.length]), p("span", {
class: "selection-item-title"
}, [R.selectedEnd])]), p("div", {
class: "container columns-box f-utils-fill d-flex"
}, [y()])])]);
}
const g = H(() => ({
"f-transfer": !0,
row: !0,