UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1,507 lines (1,506 loc) 59.3 kB
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,