var ht = Object.defineProperty; var Ge = Object.getOwnPropertySymbols; var pt = Object.prototype.hasOwnProperty, mt = Object.prototype.propertyIsEnumerable; var Je = (e, n, l) => n in e ? ht(e, n, { enumerable: !0, configurable: !0, writable: !0, value: l }) : e[n] = l, Qe = (e, n) => { for (var l in n || (n = {})) pt.call(n, l) && Je(e, l, n[l]); if (Ge) for (var l of Ge(n)) mt.call(n, l) && Je(e, l, n[l]); return e; }; import { ref as $, watch as ve, inject as gt, provide as yt, defineComponent as Xe, computed as S, nextTick as bt, shallowRef as M, toRaw as ae, createVNode as z, watchEffect as we, toRef as re, toRefs as Ct, onMounted as St, openBlock as ye, createElementBlock as be, unref as Ze, isRef as wt, withCtx as xt, Fragment as _e, renderList as Vt, toDisplayString as et, createTextVNode as kt } from "vue"; import { K as de, a as Y, _ as y, $ as Tt, w as _, aU as It, b as ut, o as xe, P as fe, g as Nt, I as it, d as Re, j as Et, k as Lt, l as Dt, q as Pt, m as tt, a8 as At, A as $e, D as Kt, F as Ot, e as Ft, C as Be } from "./index2.js"; import { T as Ht, g as _t, r as Rt } from "./index8.js"; import { u as $t, d as Bt, a as Mt, e as jt, t as lt, B as Wt, b as Ut, c as zt, g as Xt } from "./index3.js"; import { c as Yt, a as je, u as qt, g as Gt } from "./index4.js"; import { u as at } from "./useMergedState.js"; import { u as Jt, F as Qt } from "./FormItemContext.js"; import { g as Zt, a as el } from "./statusUtils.js"; function tl(e, n, l) { const t = $(e()); return ve(n, (a, o) => { l ? l(a, o) && (t.value = e()) : t.value = e(); }), t; } function ct(e) { return Array.isArray(e) ? e : e !== void 0 ? [e] : []; } function ll(e) { const { label: n, value: l, children: t } = e || {}, a = l || "value"; return { _title: n ? [n] : ["title", "label"], value: a, key: a, children: t || "children" }; } function We(e) { return e.disabled || e.disableCheckbox || e.checkable === !1; } function al(e, n) { const l = []; function t(a) { a.forEach((o) => { l.push(o[n.value]); const s = o[n.children]; s && t(s); }); } return t(e), l; } function Ue(e) { return e == null; } const dt = Symbol("TreeSelectContextPropsKey"); function nl(e) { return yt(dt, e); } function ol() { return gt(dt, {}); } const rl = { width: 0, height: 0, display: "flex", overflow: "hidden", opacity: 0, border: 0, padding: 0, margin: 0 }, sl = Xe({ compatConfig: { MODE: 3 }, name: "OptionList", inheritAttrs: !1, setup(e, n) { let { slots: l, expose: t } = n; const a = $t(), o = Bt(), s = ol(), u = $(), c = tl(() => s.treeData, [() => a.open, () => s.treeData], (f) => f[0]), r = S(() => { const { checkable: f, halfCheckedKeys: k, checkedKeys: K } = o; return f ? { checked: K, halfChecked: k } : null; }); ve(() => a.open, () => { bt(() => { var f; a.open && !a.multiple && o.checkedKeys.length && ((f = u.value) === null || f === void 0 || f.scrollTo({ key: o.checkedKeys[0] })); }); }, { immediate: !0, flush: "post" }); const d = S(() => String(a.searchValue).toLowerCase()), m = (f) => d.value ? String(f[o.treeNodeFilterProp]).toLowerCase().includes(d.value) : !1, N = M(o.treeDefaultExpandedKeys), x = M(null); ve(() => a.searchValue, () => { a.searchValue && (x.value = al(ae(s.treeData), ae(s.fieldNames))); }, { immediate: !0 }); const T = S(() => o.treeExpandedKeys ? o.treeExpandedKeys.slice() : a.searchValue ? x.value : N.value), w = (f) => { var k; N.value = f, x.value = f, (k = o.onTreeExpand) === null || k === void 0 || k.call(o, f); }, v = (f) => { f.preventDefault(); }, b = (f, k) => { let { node: K } = k; var H, P; const { checkable: X, checkedKeys: q } = o; X && We(K) || ((H = s.onSelect) === null || H === void 0 || H.call(s, K.key, { selected: !q.includes(K.key) }), a.multiple || (P = a.toggleOpen) === null || P === void 0 || P.call(a, !1)); }, V = $(null), g = S(() => o.keyEntities[V.value]), D = (f) => { V.value = f; }; return t({ scrollTo: function() { for (var f, k, K = arguments.length, H = new Array(K), P = 0; P < K; P++) H[P] = arguments[P]; return (k = (f = u.value) === null || f === void 0 ? void 0 : f.scrollTo) === null || k === void 0 ? void 0 : k.call(f, ...H); }, onKeydown: (f) => { var k; const { which: K } = f; switch (K) { case de.UP: case de.DOWN: case de.LEFT: case de.RIGHT: (k = u.value) === null || k === void 0 || k.onKeydown(f); break; case de.ENTER: { if (g.value) { const { selectable: H, value: P } = g.value.node || {}; H !== !1 && b(null, { node: { key: V.value }, selected: !o.checkedKeys.includes(P) }); } break; } case de.ESC: a.toggleOpen(!1); } }, onKeyup: () => { } }), () => { var f; const { prefixCls: k, multiple: K, searchValue: H, open: P, notFoundContent: X = (f = l.notFoundContent) === null || f === void 0 ? void 0 : f.call(l) } = a, { listHeight: q, listItemHeight: j, virtual: ne, dropdownMatchSelectWidth: G, treeExpandAction: se } = s, { checkable: ue, treeDefaultExpandAll: ie, treeIcon: oe, showTreeIcon: J, switcherIcon: pe, treeLine: me, loadData: ge, treeLoadedKeys: ce, treeMotion: C, onTreeLoad: O, checkedKeys: R } = o; if (c.value.length === 0) return z("div", { role: "listbox", class: `${k}-empty`, onMousedown: v }, [X]); const Q = { fieldNames: s.fieldNames }; return ce && (Q.loadedKeys = ce), T.value && (Q.expandedKeys = T.value), z("div", { onMousedown: v }, [g.value && P && z("span", { style: rl, "aria-live": "assertive" }, [g.value.node.value]), z(Ht, Y(Y({ ref: u, focusable: !1, prefixCls: `${k}-tree`, treeData: c.value, height: q, itemHeight: j, virtual: ne !== !1 && G !== !1, multiple: K, icon: oe, showIcon: J, switcherIcon: pe, showLine: me, loadData: H ? null : ge, motion: C, activeKey: V.value, checkable: ue, checkStrictly: !0, checkedKeys: r.value, selectedKeys: ue ? [] : R, defaultExpandAll: ie }, Q), {}, { onActiveChange: D, onSelect: b, onCheck: b, onExpand: w, onLoad: O, filterTreeNode: m, expandAction: se }), y(y({}, l), { checkable: o.customSlots.treeCheckable }))]); }; } }), ul = "SHOW_ALL", ft = "SHOW_PARENT", Ye = "SHOW_CHILD"; function nt(e, n, l, t) { const a = new Set(e); return n === Ye ? e.filter((o) => { const s = l[o]; return !(s && s.children && s.children.some((u) => { let { node: c } = u; return a.has(c[t.value]); }) && s.children.every((u) => { let { node: c } = u; return We(c) || a.has(c[t.value]); })); }) : n === ft ? e.filter((o) => { const s = l[o], u = s ? s.parent : null; return !(u && !We(u.node) && a.has(u.key)); }) : e; } const he = () => null; he.inheritAttrs = !1; he.displayName = "ATreeSelectNode"; he.isTreeSelectNode = !0; var il = function(e, n) { var l = {}; for (var t in e) Object.prototype.hasOwnProperty.call(e, t) && n.indexOf(t) < 0 && (l[t] = e[t]); if (e != null && typeof Object.getOwnPropertySymbols == "function") for (var a = 0, t = Object.getOwnPropertySymbols(e); a < t.length; a++) n.indexOf(t[a]) < 0 && Object.prototype.propertyIsEnumerable.call(e, t[a]) && (l[t[a]] = e[t[a]]); return l; }; function cl(e) { return e && e.type && e.type.isTreeSelectNode; } function dl(e) { function n() { let l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; return Tt(l).map((t) => { var a, o, s; if (!cl(t)) return _(!t, "TreeSelect/TreeSelectNode can only accept TreeSelectNode as children."), null; const u = t.children || {}, c = t.key, r = {}; for (const [K, H] of Object.entries(t.props)) r[It(K)] = H; const { isLeaf: d, checkable: m, selectable: N, disabled: x, disableCheckbox: T } = r, w = { isLeaf: d || d === "" || void 0, checkable: m || m === "" || void 0, selectable: N || N === "" || void 0, disabled: x || x === "" || void 0, disableCheckbox: T || T === "" || void 0 }, v = y(y({}, r), w), { title: b = (a = u.title) === null || a === void 0 ? void 0 : a.call(u, v), switcherIcon: V = (o = u.switcherIcon) === null || o === void 0 ? void 0 : o.call(u, v) } = r, g = il(r, ["title", "switcherIcon"]), D = (s = u.default) === null || s === void 0 ? void 0 : s.call(u), f = y(y(y({}, g), { title: b, switcherIcon: V, key: c, isLeaf: d }), w), k = n(D); return k.length && (f.children = k), f; }); } return n(e); } function ze(e) { if (!e) return e; const n = y({}, e); return "props" in n || Object.defineProperty(n, "props", { get() { return _(!1, "New `vc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access."), n; } }), n; } function fl(e, n, l, t, a, o) { let s = null, u = null; function c() { function r(d) { let m = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "0", N = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1; return d.map((x, T) => { const w = `${m}-${T}`, v = x[o.value], b = l.includes(v), V = r(x[o.children] || [], w, b), g = z(he, x, { default: () => [V.map((D) => D.node)] }); if (n === v && (s = g), b) { const D = { pos: w, node: g, children: V }; return N || u.push(D), D; } return null; }).filter((x) => x); } u || (u = [], r(t), u.sort((d, m) => { let { node: { props: { value: N } } } = d, { node: { props: { value: x } } } = m; const T = l.indexOf(N), w = l.indexOf(x); return T - w; })); } Object.defineProperty(e, "triggerNode", { get() { return _(!1, "`triggerNode` is deprecated. Please consider decoupling data with node."), c(), s; } }), Object.defineProperty(e, "allCheckedNodes", { get() { return _(!1, "`allCheckedNodes` is deprecated. Please consider decoupling data with node."), c(), a ? u : u.map((r) => { let { node: d } = r; return d; }); } }); } function vl(e, n) { let { id: l, pId: t, rootPId: a } = n; const o = {}, s = []; return e.map((c) => { const r = y({}, c), d = r[l]; return o[d] = r, r.key = r.key || d, r; }).forEach((c) => { const r = c[t], d = o[r]; d && (d.children = d.children || [], d.children.push(c)), (r === a || !d && a === null) && s.push(c); }), s; } function hl(e, n, l) { const t = M(); return ve([l, e, n], () => { const a = l.value; e.value ? t.value = l.value ? vl(ae(e.value), y({ id: "id", pId: "pId", rootPId: null }, a !== !0 ? a : {})) : ae(e.value).slice() : t.value = dl(ae(n.value)); }, { immediate: !0, deep: !0 }), t; } const pl = (e) => { const n = M({ valueLabels: /* @__PURE__ */ new Map() }), l = M(); return ve(e, () => { l.value = ae(e.value); }, { immediate: !0 }), [S(() => { const { valueLabels: a } = n.value, o = /* @__PURE__ */ new Map(), s = l.value.map((u) => { var c; const { value: r } = u, d = (c = u.label) !== null && c !== void 0 ? c : a.get(r); return o.set(r, d), y(y({}, u), { label: d }); }); return n.value.valueLabels = o, s; })]; }, ml = (e, n) => { const l = M(/* @__PURE__ */ new Map()), t = M({}); return we(() => { const a = n.value, o = Yt(e.value, { fieldNames: a, initWrapper: (s) => y(y({}, s), { valueEntities: /* @__PURE__ */ new Map() }), processEntity: (s, u) => { const c = s.node[a.value]; if (process.env.NODE_ENV !== "production") { const r = s.node.key; _(!Ue(c), "TreeNode `value` is invalidate: undefined"), _(!u.valueEntities.has(c), `Same \`value\` exist in the tree: ${c}`), _(!r || String(r) === String(c), `\`key\` or \`value\` with TreeNode must be the same or you can remove one of them. key: ${r}, value: ${c}.`); } u.valueEntities.set(c, s); } }); l.value = o.valueEntities, t.value = o.keyEntities; }), { valueEntities: l, keyEntities: t }; }, gl = (e, n, l, t, a, o) => { const s = M([]), u = M([]); return we(() => { let c = e.value.map((m) => { let { value: N } = m; return N; }), r = n.value.map((m) => { let { value: N } = m; return N; }); const d = c.filter((m) => !t.value[m]); l.value && ({ checkedKeys: c, halfCheckedKeys: r } = je(c, !0, t.value, a.value, o.value)), s.value = Array.from(/* @__PURE__ */ new Set([...d, ...c])), u.value = r; }), [s, u]; }, yl = (e, n, l) => { let { treeNodeFilterProp: t, filterTreeNode: a, fieldNames: o } = l; return S(() => { const { children: s } = o.value, u = n.value, c = t == null ? void 0 : t.value; if (!u || a.value === !1) return e.value; let r; if (typeof a.value == "function") r = a.value; else { const m = u.toUpperCase(); r = (N, x) => { const T = x[c]; return String(T).toUpperCase().includes(m); }; } function d(m) { let N = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1; const x = []; for (let T = 0, w = m.length; T < w; T++) { const v = m[T], b = v[s], V = N || r(u, ze(v)), g = d(b || [], V); (V || g.length) && x.push(y(y({}, v), { [s]: g })); } return x; } return d(e.value); }); }; function bl(e) { const { searchPlaceholder: n, treeCheckStrictly: l, treeCheckable: t, labelInValue: a, value: o, multiple: s } = e; _(!n, "`searchPlaceholder` has been removed, please use `placeholder` instead"), l && a === !1 && _(!1, "`treeCheckStrictly` will force set `labelInValue` to `true`."), (a || l) && _(ct(o).every((u) => u && typeof u == "object" && "value" in u), "Invalid prop `value` supplied to `TreeSelect`. You should use { label: string, value: string | number } or [{ label: string, value: string | number }] instead."), l || s || t ? _(!o || Array.isArray(o), "`value` should be an array when `TreeSelect` is checkable or multiple.") : _(!Array.isArray(o), "`value` should not be array when `TreeSelect` is single mode."); } function vt() { return y(y({}, xe(Ut(), ["mode"])), { prefixCls: String, id: String, value: { type: [String, Number, Object, Array] }, defaultValue: { type: [String, Number, Object, Array] }, onChange: { type: Function }, searchValue: String, /** @deprecated Use `searchValue` instead */ inputValue: String, onSearch: { type: Function }, autoClearSearchValue: { type: Boolean, default: void 0 }, filterTreeNode: { type: [Boolean, Function], default: void 0 }, treeNodeFilterProp: String, // >>> Select onSelect: Function, onDeselect: Function, showCheckedStrategy: { type: String }, treeNodeLabelProp: String, fieldNames: { type: Object }, // >>> Mode multiple: { type: Boolean, default: void 0 }, treeCheckable: { type: Boolean, default: void 0 }, treeCheckStrictly: { type: Boolean, default: void 0 }, labelInValue: { type: Boolean, default: void 0 }, // >>> Data treeData: { type: Array }, treeDataSimpleMode: { type: [Boolean, Object], default: void 0 }, loadData: { type: Function }, treeLoadedKeys: { type: Array }, onTreeLoad: { type: Function }, // >>> Expanded treeDefaultExpandAll: { type: Boolean, default: void 0 }, treeExpandedKeys: { type: Array }, treeDefaultExpandedKeys: { type: Array }, onTreeExpand: { type: Function }, // >>> Options virtual: { type: Boolean, default: void 0 }, listHeight: Number, listItemHeight: Number, onDropdownVisibleChange: { type: Function }, // >>> Tree treeLine: { type: [Boolean, Object], default: void 0 }, treeIcon: fe.any, showTreeIcon: { type: Boolean, default: void 0 }, switcherIcon: fe.any, treeMotion: fe.any, children: Array, treeExpandAction: String, showArrow: { type: Boolean, default: void 0 }, showSearch: { type: Boolean, default: void 0 }, open: { type: Boolean, default: void 0 }, defaultOpen: { type: Boolean, default: void 0 }, disabled: { type: Boolean, default: void 0 }, placeholder: fe.any, maxTagPlaceholder: { type: Function }, dropdownPopupAlign: fe.any, customSlots: Object }); } function Cl(e) { return !e || typeof e != "object"; } const Sl = Xe({ compatConfig: { MODE: 3 }, name: "TreeSelect", inheritAttrs: !1, props: ut(vt(), { treeNodeFilterProp: "value", autoClearSearchValue: !0, showCheckedStrategy: Ye, listHeight: 200, listItemHeight: 20, prefixCls: "vc-tree-select" }), setup(e, n) { let { attrs: l, expose: t, slots: a } = n; const o = Mt(re(e, "id")), s = S(() => e.treeCheckable && !e.treeCheckStrictly), u = S(() => e.treeCheckable || e.treeCheckStrictly), c = S(() => e.treeCheckStrictly || e.labelInValue), r = S(() => u.value || e.multiple); process.env.NODE_ENV !== "production" && we(() => { bl(e); }); const d = S(() => ll(e.fieldNames)), [m, N] = at("", { value: S(() => e.searchValue !== void 0 ? e.searchValue : e.inputValue), postState: (i) => i || "" }), x = (i) => { var h; N(i), (h = e.onSearch) === null || h === void 0 || h.call(e, i); }, T = hl(re(e, "treeData"), re(e, "children"), re(e, "treeDataSimpleMode")), { keyEntities: w, valueEntities: v } = ml(T, d), b = (i) => { const h = [], p = []; return i.forEach((E) => { v.value.has(E) ? p.push(E) : h.push(E); }), { missingRawValues: h, existRawValues: p }; }, V = yl(T, m, { fieldNames: d, treeNodeFilterProp: re(e, "treeNodeFilterProp"), filterTreeNode: re(e, "filterTreeNode") }), g = (i) => { if (i) { if (e.treeNodeLabelProp) return i[e.treeNodeLabelProp]; const { _title: h } = d.value; for (let p = 0; p < h.length; p += 1) { const E = i[h[p]]; if (E !== void 0) return E; } } }, D = (i) => ct(i).map((p) => Cl(p) ? { value: p } : p), f = (i) => D(i).map((p) => { let { label: E } = p; const { value: F, halfChecked: A } = p; let I; const L = v.value.get(F); return L && (E = E != null ? E : g(L.node), I = L.node.disabled), { label: E, value: F, halfChecked: A, disabled: I }; }), [k, K] = at(e.defaultValue, { value: re(e, "value") }), H = S(() => D(k.value)), P = M([]), X = M([]); we(() => { const i = [], h = []; H.value.forEach((p) => { p.halfChecked ? h.push(p) : i.push(p); }), P.value = i, X.value = h; }); const q = S(() => P.value.map((i) => i.value)), { maxLevel: j, levelEntities: ne } = qt(w), [G, se] = gl(P, X, s, w, j, ne), ue = S(() => { const p = nt(G.value, e.showCheckedStrategy, w.value, d.value).map((A) => { var I, L, B; return (B = (L = (I = w.value[A]) === null || I === void 0 ? void 0 : I.node) === null || L === void 0 ? void 0 : L[d.value.value]) !== null && B !== void 0 ? B : A; }).map((A) => { const I = P.value.find((L) => L.value === A); return { value: A, label: I == null ? void 0 : I.label }; }), E = f(p), F = E[0]; return !r.value && F && Ue(F.value) && Ue(F.label) ? [] : E.map((A) => { var I; return y(y({}, A), { label: (I = A.label) !== null && I !== void 0 ? I : A.value }); }); }), [ie] = pl(ue), oe = (i, h, p) => { const E = f(i); if (K(E), e.autoClearSearchValue && N(""), e.onChange) { let F = i; s.value && (F = nt(i, e.showCheckedStrategy, w.value, d.value).map((le) => { const Se = v.value.get(le); return Se ? Se.node[d.value.value] : le; })); const { triggerValue: A, selected: I } = h || { triggerValue: void 0, selected: void 0 }; let L = F; if (e.treeCheckStrictly) { const U = X.value.filter((le) => !F.includes(le.value)); L = [...L, ...U]; } const B = f(L), ee = { // [Legacy] Always return as array contains label & value preValue: P.value, triggerValue: A }; let te = !0; (e.treeCheckStrictly || p === "selection" && !I) && (te = !1), fl(ee, A, i, T.value, te, d.value), u.value ? ee.checked = I : ee.selected = I; const W = c.value ? B : B.map((U) => U.value); e.onChange(r.value ? W : W[0], c.value ? null : B.map((U) => U.label), ee); } }, J = (i, h) => { let { selected: p, source: E } = h; var F, A, I; const L = ae(w.value), B = ae(v.value), ee = L[i], te = ee == null ? void 0 : ee.node, W = (F = te == null ? void 0 : te[d.value.value]) !== null && F !== void 0 ? F : i; if (!r.value) oe([W], { selected: !0, triggerValue: W }, "option"); else { let U = p ? [...q.value, W] : G.value.filter((le) => le !== W); if (s.value) { const { missingRawValues: le, existRawValues: Se } = b(U), qe = Se.map((He) => B.get(He).key); let Fe; p ? { checkedKeys: Fe } = je(qe, !0, L, j.value, ne.value) : { checkedKeys: Fe } = je(qe, { checked: !1, halfCheckedKeys: se.value }, L, j.value, ne.value), U = [...le, ...Fe.map((He) => L[He].node[d.value.value])]; } oe(U, { selected: p, triggerValue: W }, E || "option"); } p || !r.value ? (A = e.onSelect) === null || A === void 0 || A.call(e, W, ze(te)) : (I = e.onDeselect) === null || I === void 0 || I.call(e, W, ze(te)); }, pe = (i) => { if (e.onDropdownVisibleChange) { const h = {}; Object.defineProperty(h, "documentClickClose", { get() { return _(!1, "Second param of `onDropdownVisibleChange` has been removed."), !1; } }), e.onDropdownVisibleChange(i, h); } }, me = (i, h) => { const p = i.map((E) => E.value); if (h.type === "clear") { oe(p, {}, "selection"); return; } h.values.length && J(h.values[0].value, { selected: !1, source: "selection" }); }, { treeNodeFilterProp: ge, // Data loadData: ce, treeLoadedKeys: C, onTreeLoad: O, // Expanded treeDefaultExpandAll: R, treeExpandedKeys: Q, treeDefaultExpandedKeys: Ve, onTreeExpand: ke, // Options virtual: Te, listHeight: Ie, listItemHeight: Ne, // Tree treeLine: Ee, treeIcon: Ce, showTreeIcon: Le, switcherIcon: De, treeMotion: Pe, customSlots: Ae, dropdownMatchSelectWidth: Ke, treeExpandAction: Oe } = Ct(e); jt(lt({ checkable: u, loadData: ce, treeLoadedKeys: C, onTreeLoad: O, checkedKeys: G, halfCheckedKeys: se, treeDefaultExpandAll: R, treeExpandedKeys: Q, treeDefaultExpandedKeys: Ve, onTreeExpand: ke, treeIcon: Ce, treeMotion: Pe, showTreeIcon: Le, switcherIcon: De, treeLine: Ee, treeNodeFilterProp: ge, keyEntities: w, customSlots: Ae })), nl(lt({ virtual: Te, listHeight: Ie, listItemHeight: Ne, treeData: V, fieldNames: d, onSelect: J, dropdownMatchSelectWidth: Ke, treeExpandAction: Oe })); const Z = $(); return t({ focus() { var i; (i = Z.value) === null || i === void 0 || i.focus(); }, blur() { var i; (i = Z.value) === null || i === void 0 || i.blur(); }, scrollTo(i) { var h; (h = Z.value) === null || h === void 0 || h.scrollTo(i); } }), () => { var i; const h = xe(e, [ "id", "prefixCls", "customSlots", // Value "value", "defaultValue", "onChange", "onSelect", "onDeselect", // Search "searchValue", "inputValue", "onSearch", "autoClearSearchValue", "filterTreeNode", "treeNodeFilterProp", // Selector "showCheckedStrategy", "treeNodeLabelProp", // Mode "multiple", "treeCheckable", "treeCheckStrictly", "labelInValue", // FieldNames "fieldNames", // Data "treeDataSimpleMode", "treeData", "children", "loadData", "treeLoadedKeys", "onTreeLoad", // Expanded "treeDefaultExpandAll", "treeExpandedKeys", "treeDefaultExpandedKeys", "onTreeExpand", // Options "virtual", "listHeight", "listItemHeight", "onDropdownVisibleChange", // Tree "treeLine", "treeIcon", "showTreeIcon", "switcherIcon", "treeMotion" ]); return z(Wt, Y(Y(Y({ ref: Z }, l), h), {}, { id: o, prefixCls: e.prefixCls, mode: r.value ? "multiple" : void 0, displayValues: ie.value, onDisplayValuesChange: me, searchValue: m.value, onSearch: x, OptionList: sl, emptyOptions: !T.value.length, onDropdownVisibleChange: pe, tagRender: e.tagRender || a.tagRender, dropdownMatchSelectWidth: (i = e.dropdownMatchSelectWidth) !== null && i !== void 0 ? i : !0 }), a); }; } }), wl = (e) => { const { componentCls: n, treePrefixCls: l, colorBgElevated: t } = e, a = `.${l}`; return [ // ====================================================== // == Dropdown == // ====================================================== { [`${n}-dropdown`]: [ { padding: `${e.paddingXS}px ${e.paddingXS / 2}px` }, // ====================== Tree ====================== _t(l, it(e, { colorBgContainer: t })), { [a]: { borderRadius: 0, "&-list-holder-inner": { alignItems: "stretch", [`${a}-treenode`]: { [`${a}-node-content-wrapper`]: { flex: "auto" } } } } }, // ==================== Checkbox ==================== Gt(`${l}-checkbox`, e), // ====================== RTL ======================= { "&-rtl": { direction: "rtl", [`${a}-switcher${a}-switcher_close`]: { [`${a}-switcher-icon svg`]: { transform: "rotate(90deg)" } } } } ] } ]; }; function xl(e, n) { return Nt("TreeSelect", (l) => { const t = it(l, { treePrefixCls: n.value }); return [wl(t)]; })(e); } const ot = (e, n, l) => l !== void 0 ? l : `${e}-${n}`; function Vl() { return y(y({}, xe(vt(), ["showTreeIcon", "treeMotion", "inputIcon", "getInputElement", "treeLine", "customSlots"])), { suffixIcon: fe.any, size: $e(), bordered: Kt(), treeLine: Ot([Boolean, Object]), replaceFields: Ft(), placement: $e(), status: $e(), popupClassName: String, /** @deprecated Please use `popupClassName` instead */ dropdownClassName: String, "onUpdate:value": Be(), "onUpdate:treeExpandedKeys": Be(), "onUpdate:searchValue": Be() }); } const Me = Xe({ compatConfig: { MODE: 3 }, name: "ATreeSelect", inheritAttrs: !1, props: ut(Vl(), { choiceTransitionName: "", listHeight: 256, treeIcon: !1, listItemHeight: 26, bordered: !0 }), slots: Object, setup(e, n) { let { attrs: l, slots: t, expose: a, emit: o } = n; _(!(e.treeData === void 0 && t.default), "`children` of TreeSelect is deprecated. Please use `treeData` instead."), Re(e.multiple !== !1 || !e.treeCheckable, "TreeSelect", "`multiple` will always be `true` when `treeCheckable` is true"), Re(e.replaceFields === void 0, "TreeSelect", "`replaceFields` is deprecated, please use fieldNames instead"), Re(!e.dropdownClassName, "TreeSelect", "`dropdownClassName` is deprecated. Please use `popupClassName` instead."); const s = Jt(), u = Qt.useInject(), c = S(() => Zt(u.status, e.status)), { prefixCls: r, renderEmpty: d, direction: m, virtual: N, dropdownMatchSelectWidth: x, size: T, getPopupContainer: w, getPrefixCls: v, disabled: b } = Et("select", e), { compactSize: V, compactItemClassnames: g } = Lt(r, m), D = S(() => V.value || T.value), f = Dt(), k = S(() => { var C; return (C = b.value) !== null && C !== void 0 ? C : f.value; }), K = S(() => v()), H = S(() => e.placement !== void 0 ? e.placement : m.value === "rtl" ? "bottomRight" : "bottomLeft"), P = S(() => ot(K.value, Pt(H.value), e.transitionName)), X = S(() => ot(K.value, "", e.choiceTransitionName)), q = S(() => v("select-tree", e.prefixCls)), j = S(() => v("tree-select", e.prefixCls)), [ne, G] = zt(r), [se] = xl(j, q), ue = S(() => tt(e.popupClassName || e.dropdownClassName, `${j.value}-dropdown`, { [`${j.value}-dropdown-rtl`]: m.value === "rtl" }, G.value)), ie = S(() => !!(e.treeCheckable || e.multiple)), oe = S(() => e.showArrow !== void 0 ? e.showArrow : e.loading || !ie.value), J = $(); a({ focus() { var C, O; (O = (C = J.value).focus) === null || O === void 0 || O.call(C); }, blur() { var C, O; (O = (C = J.value).blur) === null || O === void 0 || O.call(C); } }); const pe = function() { for (var C = arguments.length, O = new Array(C), R = 0; R < C; R++) O[R] = arguments[R]; o("update:value", O[0]), o("change", ...O), s.onFieldChange(); }, me = (C) => { o("update:treeExpandedKeys", C), o("treeExpand", C); }, ge = (C) => { o("update:searchValue", C), o("search", C); }, ce = (C) => { o("blur", C), s.onFieldBlur(); }; return () => { var C, O, R; const { notFoundContent: Q = (C = t.notFoundContent) === null || C === void 0 ? void 0 : C.call(t), prefixCls: Ve, bordered: ke, listHeight: Te, listItemHeight: Ie, multiple: Ne, treeIcon: Ee, treeLine: Ce, showArrow: Le, switcherIcon: De = (O = t.switcherIcon) === null || O === void 0 ? void 0 : O.call(t), fieldNames: Pe = e.replaceFields, id: Ae = s.id.value, placeholder: Ke = (R = t.placeholder) === null || R === void 0 ? void 0 : R.call(t) } = e, { isFormItemInput: Oe, hasFeedback: Z, feedbackIcon: i } = u, { suffixIcon: h, removeIcon: p, clearIcon: E } = Xt(y(y({}, e), { multiple: ie.value, showArrow: oe.value, hasFeedback: Z, feedbackIcon: i, prefixCls: r.value }), t); let F; Q !== void 0 ? F = Q : F = d("Select"); const A = xe(e, ["suffixIcon", "itemIcon", "removeIcon", "clearIcon", "switcherIcon", "bordered", "status", "onUpdate:value", "onUpdate:treeExpandedKeys", "onUpdate:searchValue"]), I = tt(!Ve && j.value, { [`${r.value}-lg`]: D.value === "large", [`${r.value}-sm`]: D.value === "small", [`${r.value}-rtl`]: m.value === "rtl", [`${r.value}-borderless`]: !ke, [`${r.value}-in-form-item`]: Oe }, el(r.value, c.value, Z), g.value, l.class, G.value), L = {}; return e.treeData === void 0 && t.default && (L.children = At(t.default())), ne(se(z(Sl, Y(Y(Y(Y({}, l), A), {}, { disabled: k.value, virtual: N.value, dropdownMatchSelectWidth: x.value, id: Ae, fieldNames: Pe, ref: J, prefixCls: r.value, class: I, listHeight: Te, listItemHeight: Ie, treeLine: !!Ce, inputIcon: h, multiple: Ne, removeIcon: p, clearIcon: E, switcherIcon: (B) => Rt(q.value, De, B, t.leafIcon, Ce), showTreeIcon: Ee, notFoundContent: F, getPopupContainer: w == null ? void 0 : w.value, treeMotion: null, dropdownClassName: ue.value, choiceTransitionName: X.value, onChange: pe, onBlur: ce, onSearch: ge, onTreeExpand: me }, L), {}, { transitionName: P.value, customSlots: y(y({}, t), { treeCheckable: () => z("span", { class: `${r.value}-tree-checkbox-inner` }, null) }), maxTagPlaceholder: e.maxTagPlaceholder || t.maxTagPlaceholder, placement: H.value, showArrow: Z || Le, placeholder: Ke }), y(y({}, t), { treeCheckable: () => z("span", { class: `${r.value}-tree-checkbox-inner` }, null) })))); }; } }), rt = he, st = y(Me, { TreeNode: he, SHOW_ALL: ul, SHOW_PARENT: ft, SHOW_CHILD: Ye, install: (e) => (e.component(Me.name, Me), e.component(rt.displayName, rt), e) }), kl = { class: "s-tree-select-common" }, Ol = { __name: "STreeSelect", props: { // 过滤字段 - search为tree 时生效 filterField: { type: String, default: "name" }, // 树节点属性 props: { type: Object, default: () => ({ children: "children", label: "name", value: "value" }) }, // 是否支持查询 search: { type: Boolean, default: !0 }, // 是否支持清空 clear: { type: Boolean, default: !0 }, // 是否展开所有节点 expandAll: { type: Boolean, default: !1 }, // 占位符 - 文案提示 placeholder: { type: String, default: "请选择" }, // 默认值 - 默认选中项 // 默认为空字符串,表示不选中任何项,也可以是字符串数组,表示选中项的 value 值 // 默认选中项,支持 v-model 双向绑定 modelValue: { type: [String, Array], default() { return ""; } }, // 获取数据 recursionChildren: { type: Function, default: () => [] }, // 是否添加全选节点 appendRootNodeAll: { type: Boolean, default: !1 }, // 多选 multiple: { type: Boolean, default: !1 }, // 显示数量 maxTagCount: { type: Number, default: 1 }, // listHeight: { type: Number, default: 256 } }, emits: ["update:modelValue"], setup(e, { emit: n }) { const l = n, t = e, a = $(""), o = $([]), s = $([]), u = t.multiple ? $([]) : $(null), c = $([]), r = $(""); ve(() => t.modelValue, (v) => { v && (u.value = v); }, { immediate: !0 }); const d = () => { l("update:modelValue", u.value); }, m = (v) => { v.value = v; }, N = () => { s.value = [], t.recursionChildren("", a.value).then((v) => { o.value = x(v), o.value && o.value.length > 0 && (t.modelValue ? s.value = [t.modelValue] : s.value = [o.value[0].id]); }); }, x = (v) => { if (t.appendRootNodeAll) { const b = { id: "all", key: "all", value: "all", label: "全选", name: "全选", title: "全选", type: "1", typeLabel: "组织", parent: { id: "0" }, children: null, isLeaf: !0 }; w(v, c.value, "children"), c.value && c.value.length && (c.value = c.value.map((V) => V.id)), v.unshift(b); } return v; }, T = (v, b) => b.name.toLowerCase().indexOf(v.toLowerCase()) >= 0, w = (v, b = [], V = "children") => { v && v.length > 0 && v.forEach((g) => { const D = Qe({}, g); b.push(D), g[V] instanceof Array && g[V].length > 0 && w(g[V], b, V); }); }; return St(() => { N(); }), (v, b) => { const V = st; return ye(), be("div", kl, [ z(V, { style: { width: "100%" }, multiple: e.multiple, "allow-clear": e.clear, "field-names": t, "show-search": e.search, "tree-data": o.value, listHeight: e.listHeight, maxTagCount: e.maxTagCount, placeholder: e.placeholder, value: Ze(u), "onUpdate:value": b[0] || (b[0] = (g) => wt(u) ? u.value = g : null), showCheckedStrategy: Ze(st).SHOW_ALL, searchValue: r.value, "onUpdate:searchValue": b[1] || (b[1] = (g) => r.value = g), "tree-node-filter-prop": e.filterField, "tree-default-expand-all": e.expandAll, treeExpandedKeys: s.value, "onUpdate:treeExpandedKeys": b[2] || (b[2] = (g) => s.value = g), filterTreeNode: T, onTreeExpand: m, onSelect: d }, { title: xt(({ name: g }) => [ (ye(!0), be(_e, null, Vt(g.toString().split(new RegExp(`(?<=${r.value})|(?=${r.value})`, "i")), (D, f) => (ye(), be(_e, null, [ D.toLowerCase() === r.value.toLowerCase() ? (ye(), be("span", { key: f, style: { color: "#1677FF" } }, et(D), 1)) : (ye(), be(_e, { key: 1 }, [ kt(et(D), 1) ], 64)) ], 64))), 256)) ]), _: 1 }, 8, ["multiple", "allow-clear", "field-names", "show-search", "tree-data", "listHeight", "maxTagCount", "placeholder", "value", "showCheckedStrategy", "searchValue", "tree-node-filter-prop", "tree-default-expand-all", "treeExpandedKeys"]) ]); }; } }; export { Ol as default };