import { _ as w, b5 as en, m as ue, a8 as tn, b6 as be, b7 as Ce, P as Ee, a as re, w as Ue, b8 as he, Y as nn, o as on, b as ln, K as Oe, n as an, aQ as sn, b9 as rn, ba as cn, bb as dn, i as un, g as fn, a5 as vn, I as hn, J as gn, bc as dt, M as yn } from "./index2.js"; import { createVNode as C, cloneVNode as Et, defineComponent as Ne, reactive as _e, ref as We, watch as ie, onUnmounted as Dt, onMounted as qe, onBeforeUnmount as rt, computed as E, shallowRef as L, toRaw as it, nextTick as Ae, onUpdated as Tt, watchEffect as Pe, provide as $t, inject as Nt, getCurrentInstance as pn, Transition as mn, withDirectives as bn, vShow as Sn, Fragment as xn } from "vue"; import { e as ut, h as Ge, i as Xe, j as Mt, b as Kn, f as kn, c as wn, d as ft, k as Cn, l as vt, u as En, p as lt, a as at, m as me, n as Dn, o as ht, q as we, r as Tn, g as $n } from "./index4.js"; import { p as Ot } from "./pickAttrs.js"; const Je = (e, t) => { let { height: n, offset: o, prefixCls: l, onInnerResize: c } = e, { slots: i } = t; var v; let S = {}, f = { display: "flex", flexDirection: "column" }; return o !== void 0 && (S = { height: `${n}px`, position: "relative", overflow: "hidden" }, f = w(w({}, f), { transform: `translateY(${o}px)`, position: "absolute", left: 0, right: 0, top: 0 })), C("div", { style: S }, [C(en, { onResize: (K) => { let { offsetHeight: x } = K; x && c && c(); } }, { default: () => [C("div", { style: f, class: ue({ [`${l}-holder-inner`]: l }) }, [(v = i.default) === null || v === void 0 ? void 0 : v.call(i)])] })]); }; Je.displayName = "Filter"; Je.inheritAttrs = !1; Je.props = { prefixCls: String, /** Virtual filler height. Should be `count * itemMinHeight` */ height: Number, /** Set offset of visible items. Should be the top of start item position */ offset: Number, onInnerResize: Function }; const Pt = (e, t) => { let { setRef: n } = e, { slots: o } = t; var l; const c = tn((l = o.default) === null || l === void 0 ? void 0 : l.call(o)); return c && c.length ? Et(c[0], { ref: n }) : c; }; Pt.props = { setRef: { type: Function, default: () => { } } }; const Nn = 20; function gt(e) { return "touches" in e ? e.touches[0].pageY : e.pageY; } const Mn = Ne({ compatConfig: { MODE: 3 }, name: "ScrollBar", inheritAttrs: !1, props: { prefixCls: String, scrollTop: Number, scrollHeight: Number, height: Number, count: Number, onScroll: { type: Function }, onStartMove: { type: Function }, onStopMove: { type: Function } }, setup() { return { moveRaf: null, scrollbarRef: ut(), thumbRef: ut(), visibleTimeout: null, state: _e({ dragging: !1, pageY: null, startTop: null, visible: !1 }) }; }, watch: { scrollTop: { handler() { this.delayHidden(); }, flush: "post" } }, mounted() { var e, t; (e = this.scrollbarRef.current) === null || e === void 0 || e.addEventListener("touchstart", this.onScrollbarTouchStart, Ce ? { passive: !1 } : !1), (t = this.thumbRef.current) === null || t === void 0 || t.addEventListener("touchstart", this.onMouseDown, Ce ? { passive: !1 } : !1); }, beforeUnmount() { this.removeEvents(), clearTimeout(this.visibleTimeout); }, methods: { delayHidden() { clearTimeout(this.visibleTimeout), this.state.visible = !0, this.visibleTimeout = setTimeout(() => { this.state.visible = !1; }, 2e3); }, onScrollbarTouchStart(e) { e.preventDefault(); }, onContainerMouseDown(e) { e.stopPropagation(), e.preventDefault(); }, // ======================= Clean ======================= patchEvents() { window.addEventListener("mousemove", this.onMouseMove), window.addEventListener("mouseup", this.onMouseUp), this.thumbRef.current.addEventListener("touchmove", this.onMouseMove, Ce ? { passive: !1 } : !1), this.thumbRef.current.addEventListener("touchend", this.onMouseUp); }, removeEvents() { window.removeEventListener("mousemove", this.onMouseMove), window.removeEventListener("mouseup", this.onMouseUp), this.scrollbarRef.current.removeEventListener("touchstart", this.onScrollbarTouchStart, Ce ? { passive: !1 } : !1), this.thumbRef.current && (this.thumbRef.current.removeEventListener("touchstart", this.onMouseDown, Ce ? { passive: !1 } : !1), this.thumbRef.current.removeEventListener("touchmove", this.onMouseMove, Ce ? { passive: !1 } : !1), this.thumbRef.current.removeEventListener("touchend", this.onMouseUp)), be.cancel(this.moveRaf); }, // ======================= Thumb ======================= onMouseDown(e) { const { onStartMove: t } = this.$props; w(this.state, { dragging: !0, pageY: gt(e), startTop: this.getTop() }), t(), this.patchEvents(), e.stopPropagation(), e.preventDefault(); }, onMouseMove(e) { const { dragging: t, pageY: n, startTop: o } = this.state, { onScroll: l } = this.$props; if (be.cancel(this.moveRaf), t) { const c = gt(e) - n, i = o + c, v = this.getEnableScrollRange(), S = this.getEnableHeightRange(), f = S ? i / S : 0, K = Math.ceil(f * v); this.moveRaf = be(() => { l(K); }); } }, onMouseUp() { const { onStopMove: e } = this.$props; this.state.dragging = !1, e(), this.removeEvents(); }, // ===================== Calculate ===================== getSpinHeight() { const { height: e, scrollHeight: t } = this.$props; let n = e / t * 100; return n = Math.max(n, Nn), n = Math.min(n, e / 2), Math.floor(n); }, getEnableScrollRange() { const { scrollHeight: e, height: t } = this.$props; return e - t || 0; }, getEnableHeightRange() { const { height: e } = this.$props, t = this.getSpinHeight(); return e - t || 0; }, getTop() { const { scrollTop: e } = this.$props, t = this.getEnableScrollRange(), n = this.getEnableHeightRange(); return e === 0 || t === 0 ? 0 : e / t * n; }, // Not show scrollbar when height is large than scrollHeight showScroll() { const { height: e, scrollHeight: t } = this.$props; return t > e; } }, render() { const { dragging: e, visible: t } = this.state, { prefixCls: n } = this.$props, o = this.getSpinHeight() + "px", l = this.getTop() + "px", c = this.showScroll(), i = c && t; return C("div", { ref: this.scrollbarRef, class: ue(`${n}-scrollbar`, { [`${n}-scrollbar-show`]: c }), style: { width: "8px", top: 0, bottom: 0, right: 0, position: "absolute", display: i ? void 0 : "none" }, onMousedown: this.onContainerMouseDown, onMousemove: this.delayHidden }, [C("div", { ref: this.thumbRef, class: ue(`${n}-scrollbar-thumb`, { [`${n}-scrollbar-thumb-moving`]: e }), style: { width: "100%", height: o, top: l, left: 0, position: "absolute", background: "rgba(0, 0, 0, 0.5)", borderRadius: "99px", cursor: "pointer", userSelect: "none" }, onMousedown: this.onMouseDown }, null)]); } }); function On(e, t, n, o) { const l = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), i = We(Symbol("update")); ie(e, () => { i.value = Symbol("update"); }); let v; function S() { be.cancel(v); } function f() { S(), v = be(() => { l.forEach((x, m) => { if (x && x.offsetParent) { const { offsetHeight: D } = x; c.get(m) !== D && (i.value = Symbol("update"), c.set(m, x.offsetHeight)); } }); }); } function K(x, m) { const D = t(x); l.get(D), m ? (l.set(D, m.$el || m), f()) : l.delete(D); } return Dt(() => { S(); }), [K, f, c, i]; } function Pn(e, t, n, o, l, c, i, v) { let S; return (f) => { if (f == null) { v(); return; } be.cancel(S); const K = t.value, x = o.itemHeight; if (typeof f == "number") i(f); else if (f && typeof f == "object") { let m; const { align: D } = f; "index" in f ? { index: m } = f : m = K.findIndex((N) => l(N) === f.key); const { offset: j = 0 } = f, y = (N, O) => { if (N < 0 || !e.value) return; const V = e.value.clientHeight; let T = !1, Y = O; if (V) { const B = O || D; let Q = 0, q = 0, A = 0; const G = Math.min(K.length, m); for (let U = 0; U <= G; U += 1) { const ee = l(K[U]); q = Q; const le = n.get(ee); A = q + (le === void 0 ? x : le), Q = A, U === m && le === void 0 && (T = !0); } const Z = e.value.scrollTop; let z = null; switch (B) { case "top": z = q - j; break; case "bottom": z = A - V + j; break; default: { const U = Z + V; q < Z ? Y = "top" : A > U && (Y = "bottom"); } } z !== null && z !== Z && i(z); } S = be(() => { T && c(), y(N - 1, Y); }, 2); }; y(5); } }; } const In = typeof navigator == "object" && /Firefox/i.test(navigator.userAgent), It = (e, t) => { let n = !1, o = null; function l() { clearTimeout(o), n = !0, o = setTimeout(() => { n = !1; }, 50); } return function(c) { let i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1; const v = ( // Pass origin wheel when on the top c < 0 && e.value || // Pass origin wheel when on the bottom c > 0 && t.value ); return i && v ? (clearTimeout(o), n = !1) : (!v || n) && l(), !n && v; }; }; function Ln(e, t, n, o) { let l = 0, c = null, i = null, v = !1; const S = It(t, n); function f(x) { if (!e.value) return; be.cancel(c); const { deltaY: m } = x; l += m, i = m, !S(m) && (In || x.preventDefault(), c = be(() => { o(l * (v ? 10 : 1)), l = 0; })); } function K(x) { e.value && (v = x.detail === i); } return [f, K]; } const Hn = 14 / 15; function Rn(e, t, n) { let o = !1, l = 0, c = null, i = null; const v = () => { c && (c.removeEventListener("touchmove", S), c.removeEventListener("touchend", f)); }, S = (m) => { if (o) { const D = Math.ceil(m.touches[0].pageY); let j = l - D; l = D, n(j) && m.preventDefault(), clearInterval(i), i = setInterval(() => { j *= Hn, (!n(j, !0) || Math.abs(j) <= 0.1) && clearInterval(i); }, 16); } }, f = () => { o = !1, v(); }, K = (m) => { v(), m.touches.length === 1 && !o && (o = !0, l = Math.ceil(m.touches[0].pageY), c = m.target, c.addEventListener("touchmove", S, { passive: !1 }), c.addEventListener("touchend", f)); }, x = () => { }; qe(() => { document.addEventListener("touchmove", x, { passive: !1 }), ie(e, (m) => { t.value.removeEventListener("touchstart", K), v(), clearInterval(i), m && t.value.addEventListener("touchstart", K, { passive: !1 }); }, { immediate: !0 }); }), rt(() => { document.removeEventListener("touchmove", x); }); } var Fn = function(e, t) { var n = {}; for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]); if (e != null && typeof Object.getOwnPropertySymbols == "function") for (var l = 0, o = Object.getOwnPropertySymbols(e); l < o.length; l++) t.indexOf(o[l]) < 0 && Object.prototype.propertyIsEnumerable.call(e, o[l]) && (n[o[l]] = e[o[l]]); return n; }; const An = [], _n = { overflowY: "auto", overflowAnchor: "none" }; function Bn(e, t, n, o, l, c) { let { getKey: i } = c; return e.slice(t, n + 1).map((v, S) => { const f = t + S, K = l(v, f, { // style: status === 'MEASURE_START' ? { visibility: 'hidden' } : {}, }), x = i(v); return C(Pt, { key: x, setRef: (m) => o(v, m) }, { default: () => [K] }); }); } const jn = Ne({ compatConfig: { MODE: 3 }, name: "List", inheritAttrs: !1, props: { prefixCls: String, data: Ee.array, height: Number, itemHeight: Number, /** If not match virtual scroll condition, Set List still use height of container. */ fullHeight: { type: Boolean, default: void 0 }, itemKey: { type: [String, Number, Function], required: !0 }, component: { type: [String, Object] }, /** Set `false` will always use real scroll instead of virtual one */ virtual: { type: Boolean, default: void 0 }, children: Function, onScroll: Function, onMousedown: Function, onMouseenter: Function, onVisibleChange: Function }, setup(e, t) { let { expose: n } = t; const o = E(() => { const { height: h, itemHeight: b, virtual: H } = e; return !!(H !== !1 && h && b); }), l = E(() => { const { height: h, itemHeight: b, data: H } = e; return o.value && H && b * H.length > h; }), c = _e({ scrollTop: 0, scrollMoving: !1 }), i = E(() => e.data || An), v = L([]); ie(i, () => { v.value = it(i.value).slice(); }, { immediate: !0 }); const S = L((h) => { }); ie(() => e.itemKey, (h) => { typeof h == "function" ? S.value = h : S.value = (b) => b == null ? void 0 : b[h]; }, { immediate: !0 }); const f = L(), K = L(), x = L(), m = (h) => S.value(h), D = { getKey: m }; function j(h) { let b; typeof h == "function" ? b = h(c.scrollTop) : b = h; const H = Q(b); f.value && (f.value.scrollTop = H), c.scrollTop = H; } const [y, N, O, V] = On(v, m), T = _e({ scrollHeight: void 0, start: 0, end: 0, offset: void 0 }), Y = L(0); qe(() => { Ae(() => { var h; Y.value = ((h = K.value) === null || h === void 0 ? void 0 : h.offsetHeight) || 0; }); }), Tt(() => { Ae(() => { var h; Y.value = ((h = K.value) === null || h === void 0 ? void 0 : h.offsetHeight) || 0; }); }), ie([o, v], () => { o.value || w(T, { scrollHeight: void 0, start: 0, end: v.value.length - 1, offset: void 0 }); }, { immediate: !0 }), ie([o, v, Y, l], () => { o.value && !l.value && w(T, { scrollHeight: Y.value, start: 0, end: v.value.length - 1, offset: void 0 }), f.value && (c.scrollTop = f.value.scrollTop); }, { immediate: !0 }), ie([l, o, () => c.scrollTop, v, V, () => e.height, Y], () => { if (!o.value || !l.value) return; let h = 0, b, H, X; const de = v.value.length, ge = v.value, ye = c.scrollTop, { itemHeight: xe, height: Me } = e, Ie = ye + Me; for (let pe = 0; pe < de; pe += 1) { const Le = ge[pe], He = m(Le); let Ke = O.get(He); Ke === void 0 && (Ke = xe); const De = h + Ke; b === void 0 && De >= ye && (b = pe, H = h), X === void 0 && De > Ie && (X = pe), h = De; } b === void 0 && (b = 0, H = 0, X = Math.ceil(Me / xe)), X === void 0 && (X = de - 1), X = Math.min(X + 1, de), w(T, { scrollHeight: h, start: b, end: X, offset: H }); }, { immediate: !0 }); const B = E(() => T.scrollHeight - e.height); function Q(h) { let b = h; return Number.isNaN(B.value) || (b = Math.min(b, B.value)), b = Math.max(b, 0), b; } const q = E(() => c.scrollTop <= 0), A = E(() => c.scrollTop >= B.value), G = It(q, A); function Z(h) { j(h); } function z(h) { var b; const { scrollTop: H } = h.currentTarget; H !== c.scrollTop && j(H), (b = e.onScroll) === null || b === void 0 || b.call(e, h); } const [U, ee] = Ln(o, q, A, (h) => { j((b) => b + h); }); Rn(o, f, (h, b) => G(h, b) ? !1 : (U({ preventDefault() { }, deltaY: h }), !0)); function le(h) { o.value && h.preventDefault(); } const se = () => { f.value && (f.value.removeEventListener("wheel", U, Ce ? { passive: !1 } : !1), f.value.removeEventListener("DOMMouseScroll", ee), f.value.removeEventListener("MozMousePixelScroll", le)); }; Pe(() => { Ae(() => { f.value && (se(), f.value.addEventListener("wheel", U, Ce ? { passive: !1 } : !1), f.value.addEventListener("DOMMouseScroll", ee), f.value.addEventListener("MozMousePixelScroll", le)); }); }), rt(() => { se(); }); const Se = Pn(f, v, O, e, m, N, j, () => { var h; (h = x.value) === null || h === void 0 || h.delayHidden(); }); n({ scrollTo: Se }); const ce = E(() => { let h = null; return e.height && (h = w({ [e.fullHeight ? "height" : "maxHeight"]: e.height + "px" }, _n), o.value && (h.overflowY = "hidden", c.scrollMoving && (h.pointerEvents = "none"))), h; }); return ie([() => T.start, () => T.end, v], () => { if (e.onVisibleChange) { const h = v.value.slice(T.start, T.end + 1); e.onVisibleChange(h, v.value); } }, { flush: "post" }), { state: c, mergedData: v, componentStyle: ce, onFallbackScroll: z, onScrollBar: Z, componentRef: f, useVirtual: o, calRes: T, collectHeight: N, setInstance: y, sharedConfig: D, scrollBarRef: x, fillerInnerRef: K, delayHideScrollBar: () => { var h; (h = x.value) === null || h === void 0 || h.delayHidden(); } }; }, render() { const e = w(w({}, this.$props), this.$attrs), { prefixCls: t = "rc-virtual-list", height: n, itemHeight: o, // eslint-disable-next-line no-unused-vars fullHeight: l, data: c, itemKey: i, virtual: v, component: S = "div", onScroll: f, children: K = this.$slots.default, style: x, class: m } = e, D = Fn(e, ["prefixCls", "height", "itemHeight", "fullHeight", "data", "itemKey", "virtual", "component", "onScroll", "children", "style", "class"]), j = ue(t, m), { scrollTop: y } = this.state, { scrollHeight: N, offset: O, start: V, end: T } = this.calRes, { componentStyle: Y, onFallbackScroll: B, onScrollBar: Q, useVirtual: q, collectHeight: A, sharedConfig: G, setInstance: Z, mergedData: z, delayHideScrollBar: U } = this; return C("div", re({ style: w(w({}, x), { position: "relative" }), class: j }, D), [C(S, { class: `${t}-holder`, style: Y, ref: "componentRef", onScroll: B, onMouseenter: U }, { default: () => [C(Je, { prefixCls: t, height: N, offset: O, onInnerResize: A, ref: "fillerInnerRef" }, { default: () => Bn(z, V, T, Z, K, G) })] }), q && C(Mn, { ref: "scrollBarRef", prefixCls: t, scrollTop: y, height: n, scrollHeight: N, count: z.length, onScroll: Q, onStartMove: () => { this.state.scrollMoving = !0; }, onStopMove: () => { this.state.scrollMoving = !1; } }, null)]); } }), Lt = Symbol("TreeContextKey"), Yn = Ne({ compatConfig: { MODE: 3 }, name: "TreeContext", props: { value: { type: Object } }, setup(e, t) { let { slots: n } = t; return $t(Lt, E(() => e.value)), () => { var o; return (o = n.default) === null || o === void 0 ? void 0 : o.call(n); }; } }), ct = () => Nt(Lt, E(() => ({}))), Ht = Symbol("KeysStateKey"), zn = (e) => { $t(Ht, e); }, Rt = () => Nt(Ht, { expandedKeys: L([]), selectedKeys: L([]), loadedKeys: L([]), loadingKeys: L([]), checkedKeys: L([]), halfCheckedKeys: L([]), expandedKeysSet: E(() => /* @__PURE__ */ new Set()), selectedKeysSet: E(() => /* @__PURE__ */ new Set()), loadedKeysSet: E(() => /* @__PURE__ */ new Set()), loadingKeysSet: E(() => /* @__PURE__ */ new Set()), checkedKeysSet: E(() => /* @__PURE__ */ new Set()), halfCheckedKeysSet: E(() => /* @__PURE__ */ new Set()), flattenNodes: L([]) }), Vn = (e) => { let { prefixCls: t, level: n, isStart: o, isEnd: l } = e; const c = `${t}-indent-unit`, i = []; for (let v = 0; v < n; v += 1) i.push(C("span", { key: v, class: { [c]: !0, [`${c}-start`]: o[v], [`${c}-end`]: l[v] } }, null)); return C("span", { "aria-hidden": "true", class: `${t}-indent` }, [i]); }, Ft = { eventKey: [String, Number], prefixCls: String, // By parent // expanded: { type: Boolean, default: undefined }, // selected: { type: Boolean, default: undefined }, // checked: { type: Boolean, default: undefined }, // loaded: { type: Boolean, default: undefined }, // loading: { type: Boolean, default: undefined }, // halfChecked: { type: Boolean, default: undefined }, // dragOver: { type: Boolean, default: undefined }, // dragOverGapTop: { type: Boolean, default: undefined }, // dragOverGapBottom: { type: Boolean, default: undefined }, // pos: String, title: Ee.any, /** New added in Tree for easy data access */ data: { type: Object, default: void 0 }, parent: { type: Object, default: void 0 }, isStart: { type: Array }, isEnd: { type: Array }, active: { type: Boolean, default: void 0 }, onMousemove: { type: Function }, // By user isLeaf: { type: Boolean, default: void 0 }, checkable: { type: Boolean, default: void 0 }, selectable: { type: Boolean, default: void 0 }, disabled: { type: Boolean, default: void 0 }, disableCheckbox: { type: Boolean, default: void 0 }, icon: Ee.any, switcherIcon: Ee.any, domRef: { type: Function } }, Un = { prefixCls: { type: String }, // data: { type: Array as PropType }, motion: { type: Object }, focusable: { type: Boolean }, activeItem: { type: Object }, focused: { type: Boolean }, tabindex: { type: Number }, checkable: { type: Boolean }, selectable: { type: Boolean }, disabled: { type: Boolean }, // expandedKeys: { type: Array as PropType }, // selectedKeys: { type: Array as PropType }, // checkedKeys: { type: Array as PropType }, // loadedKeys: { type: Array as PropType }, // loadingKeys: { type: Array as PropType }, // halfCheckedKeys: { type: Array as PropType }, // keyEntities: { type: Object as PropType>> }, // dragging: { type: Boolean as PropType }, // dragOverNodeKey: { type: [String, Number] as PropType }, // dropPosition: { type: Number as PropType }, // Virtual list height: { type: Number }, itemHeight: { type: Number }, virtual: { type: Boolean }, onScroll: { type: Function }, onKeydown: { type: Function }, onFocus: { type: Function }, onBlur: { type: Function }, onActiveChange: { type: Function }, onContextmenu: { type: Function }, onListChangeStart: { type: Function }, onListChangeEnd: { type: Function } }, Wn = () => ({ prefixCls: String, focusable: { type: Boolean, default: void 0 }, activeKey: [Number, String], tabindex: Number, children: Ee.any, treeData: { type: Array }, fieldNames: { type: Object }, showLine: { type: [Boolean, Object], default: void 0 }, showIcon: { type: Boolean, default: void 0 }, icon: Ee.any, selectable: { type: Boolean, default: void 0 }, expandAction: [String, Boolean], disabled: { type: Boolean, default: void 0 }, multiple: { type: Boolean, default: void 0 }, checkable: { type: Boolean, default: void 0 }, checkStrictly: { type: Boolean, default: void 0 }, draggable: { type: [Function, Boolean] }, defaultExpandParent: { type: Boolean, default: void 0 }, autoExpandParent: { type: Boolean, default: void 0 }, defaultExpandAll: { type: Boolean, default: void 0 }, defaultExpandedKeys: { type: Array }, expandedKeys: { type: Array }, defaultCheckedKeys: { type: Array }, checkedKeys: { type: [Object, Array] }, defaultSelectedKeys: { type: Array }, selectedKeys: { type: Array }, allowDrop: { type: Function }, dropIndicatorRender: { type: Function }, onFocus: { type: Function }, onBlur: { type: Function }, onKeydown: { type: Function }, onContextmenu: { type: Function }, onClick: { type: Function }, onDblclick: { type: Function }, onScroll: { type: Function }, onExpand: { type: Function }, onCheck: { type: Function }, onSelect: { type: Function }, onLoad: { type: Function }, loadData: { type: Function }, loadedKeys: { type: Array }, onMouseenter: { type: Function }, onMouseleave: { type: Function }, onRightClick: { type: Function }, onDragstart: { type: Function }, onDragenter: { type: Function }, onDragover: { type: Function }, onDragleave: { type: Function }, onDragend: { type: Function }, onDrop: { type: Function }, /** * Used for `rc-tree-select` only. * Do not use in your production code directly since this will be refactor. */ onActiveChange: { type: Function }, filterTreeNode: { type: Function }, motion: Ee.any, switcherIcon: Ee.any, // Virtual List height: Number, itemHeight: Number, virtual: { type: Boolean, default: void 0 }, // direction for drag logic direction: { type: String }, rootClassName: String, rootStyle: Object }); var Gn = function(e, t) { var n = {}; for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]); if (e != null && typeof Object.getOwnPropertySymbols == "function") for (var l = 0, o = Object.getOwnPropertySymbols(e); l < o.length; l++) t.indexOf(o[l]) < 0 && Object.prototype.propertyIsEnumerable.call(e, o[l]) && (n[o[l]] = e[o[l]]); return n; }; const yt = "open", pt = "close", Xn = "---", mt = Ne({ compatConfig: { MODE: 3 }, name: "ATreeNode", inheritAttrs: !1, props: Ft, isTreeNode: 1, setup(e, t) { let { attrs: n, slots: o, expose: l } = t; Ue(!("slots" in e.data), `treeData slots is deprecated, please use ${Object.keys(e.data.slots || {}).map((a) => "`v-slot:" + a + "` ")}instead`); const c = L(!1), i = ct(), { expandedKeysSet: v, selectedKeysSet: S, loadedKeysSet: f, loadingKeysSet: K, checkedKeysSet: x, halfCheckedKeysSet: m } = Rt(), { dragOverNodeKey: D, dropPosition: j, keyEntities: y } = i.value, N = E(() => Ge(e.eventKey, { expandedKeysSet: v.value, selectedKeysSet: S.value, loadedKeysSet: f.value, loadingKeysSet: K.value, checkedKeysSet: x.value, halfCheckedKeysSet: m.value, dragOverNodeKey: D, dropPosition: j, keyEntities: y })), O = he(() => N.value.expanded), V = he(() => N.value.selected), T = he(() => N.value.checked), Y = he(() => N.value.loaded), B = he(() => N.value.loading), Q = he(() => N.value.halfChecked), q = he(() => N.value.dragOver), A = he(() => N.value.dragOverGapTop), G = he(() => N.value.dragOverGapBottom), Z = he(() => N.value.pos), z = L(), U = E(() => { const { eventKey: a } = e, { keyEntities: d } = i.value, { children: R } = d[a] || {}; return !!(R || []).length; }), ee = E(() => { const { isLeaf: a } = e, { loadData: d } = i.value, R = U.value; return a === !1 ? !1 : a || !d && !R || d && Y.value && !R; }), le = E(() => ee.value ? null : O.value ? yt : pt), se = E(() => { const { disabled: a } = e, { disabled: d } = i.value; return !!(d || a); }), Se = E(() => { const { checkable: a } = e, { checkable: d } = i.value; return !d || a === !1 ? !1 : d; }), ce = E(() => { const { selectable: a } = e, { selectable: d } = i.value; return typeof a == "boolean" ? a : d; }), W = E(() => { const { data: a, active: d, checkable: R, disableCheckbox: J, disabled: te, selectable: ne } = e; return w(w({ active: d, checkable: R, disableCheckbox: J, disabled: te, selectable: ne }, a), { dataRef: a, data: a, isLeaf: ee.value, checked: T.value, expanded: O.value, loading: B.value, selected: V.value, halfChecked: Q.value }); }), h = pn(), b = E(() => { const { eventKey: a } = e, { keyEntities: d } = i.value, { parent: R } = d[a] || {}; return w(w({}, Xe(w({}, e, N.value))), { parent: R }); }), H = _e({ eventData: b, eventKey: E(() => e.eventKey), selectHandle: z, pos: Z, key: h.vnode.key }); l(H); const X = (a) => { const { onNodeDoubleClick: d } = i.value; d(a, b.value); }, de = (a) => { if (se.value) return; const { onNodeSelect: d } = i.value; a.preventDefault(), d(a, b.value); }, ge = (a) => { if (se.value) return; const { disableCheckbox: d } = e, { onNodeCheck: R } = i.value; if (!Se.value || d) return; a.preventDefault(); const J = !T.value; R(a, b.value, J); }, ye = (a) => { const { onNodeClick: d } = i.value; d(a, b.value), ce.value ? de(a) : ge(a); }, xe = (a) => { const { onNodeMouseEnter: d } = i.value; d(a, b.value); }, Me = (a) => { const { onNodeMouseLeave: d } = i.value; d(a, b.value); }, Ie = (a) => { const { onNodeContextMenu: d } = i.value; d(a, b.value); }, pe = (a) => { const { onNodeDragStart: d } = i.value; a.stopPropagation(), c.value = !0, d(a, H); try { a.dataTransfer.setData("text/plain", ""); } catch (R) { } }, Le = (a) => { const { onNodeDragEnter: d } = i.value; a.preventDefault(), a.stopPropagation(), d(a, H); }, He = (a) => { const { onNodeDragOver: d } = i.value; a.preventDefault(), a.stopPropagation(), d(a, H); }, Ke = (a) => { const { onNodeDragLeave: d } = i.value; a.stopPropagation(), d(a, H); }, De = (a) => { const { onNodeDragEnd: d } = i.value; a.stopPropagation(), c.value = !1, d(a, H); }, Qe = (a) => { const { onNodeDrop: d } = i.value; a.preventDefault(), a.stopPropagation(), c.value = !1, d(a, H); }, Be = (a) => { const { onNodeExpand: d } = i.value; B.value || d(a, b.value); }, je = () => { const { data: a } = e, { draggable: d } = i.value; return !!(d && (!d.nodeDraggable || d.nodeDraggable(a))); }, Ye = () => { const { draggable: a, prefixCls: d } = i.value; return a && (a != null && a.icon) ? C("span", { class: `${d}-draggable-icon` }, [a.icon]) : null; }, Ze = () => { var a, d, R; const { switcherIcon: J = o.switcherIcon || ((a = i.value.slots) === null || a === void 0 ? void 0 : a[(R = (d = e.data) === null || d === void 0 ? void 0 : d.slots) === null || R === void 0 ? void 0 : R.switcherIcon]) } = e, { switcherIcon: te } = i.value, ne = J || te; return typeof ne == "function" ? ne(W.value) : ne; }, ze = () => { const { loadData: a, onNodeLoad: d } = i.value; B.value || a && O.value && !ee.value && !U.value && !Y.value && d(b.value); }; qe(() => { ze(); }), Tt(() => { ze(); }); const et = () => { const { prefixCls: a } = i.value, d = Ze(); if (ee.value) return d !== !1 ? C("span", { class: ue(`${a}-switcher`, `${a}-switcher-noop`) }, [d]) : null; const R = ue(`${a}-switcher`, `${a}-switcher_${O.value ? yt : pt}`); return d !== !1 ? C("span", { onClick: Be, class: R }, [d]) : null; }, tt = () => { var a, d; const { disableCheckbox: R } = e, { prefixCls: J } = i.value, te = se.value; return Se.value ? C("span", { class: ue(`${J}-checkbox`, T.value && `${J}-checkbox-checked`, !T.value && Q.value && `${J}-checkbox-indeterminate`, (te || R) && `${J}-checkbox-disabled`), onClick: ge }, [(d = (a = i.value).customCheckable) === null || d === void 0 ? void 0 : d.call(a)]) : null; }, Ve = () => { const { prefixCls: a } = i.value; return C("span", { class: ue(`${a}-iconEle`, `${a}-icon__${le.value || "docu"}`, B.value && `${a}-icon_loading`) }, null); }, Te = () => { const { disabled: a, eventKey: d } = e, { draggable: R, dropLevelOffset: J, dropPosition: te, prefixCls: ne, indent: s, dropIndicatorRender: r, dragOverNodeKey: u, direction: p } = i.value; return !a && R !== !1 && u === d ? r({ dropPosition: te, dropLevelOffset: J, indent: s, prefixCls: ne, direction: p }) : null; }, nt = () => { var a, d, R, J, te, ne; const { // title = slots.title || // context.value.slots?.[props.data?.slots?.title] || // context.value.slots?.title, // selected, icon: s = o.icon, // loading, data: r } = e, u = o.title || ((a = i.value.slots) === null || a === void 0 ? void 0 : a[(R = (d = e.data) === null || d === void 0 ? void 0 : d.slots) === null || R === void 0 ? void 0 : R.title]) || ((J = i.value.slots) === null || J === void 0 ? void 0 : J.title) || e.title, { prefixCls: p, showIcon: $, icon: k, loadData: g // slots: contextSlots, } = i.value, I = se.value, _ = `${p}-node-content-wrapper`; let M; if ($) { const oe = s || ((te = i.value.slots) === null || te === void 0 ? void 0 : te[(ne = r == null ? void 0 : r.slots) === null || ne === void 0 ? void 0 : ne.icon]) || k; M = oe ? C("span", { class: ue(`${p}-iconEle`, `${p}-icon__customize`) }, [typeof oe == "function" ? oe(W.value) : oe]) : Ve(); } else g && B.value && (M = Ve()); let P; typeof u == "function" ? P = u(W.value) : P = u, P = P === void 0 ? Xn : P; const F = C("span", { class: `${p}-title` }, [P]); return C("span", { ref: z, title: typeof u == "string" ? u : "", class: ue(`${_}`, `${_}-${le.value || "normal"}`, !I && (V.value || c.value) && `${p}-node-selected`), onMouseenter: xe, onMouseleave: Me, onContextmenu: Ie, onClick: ye, onDblclick: X }, [M, F, Te()]); }; return () => { const a = w(w({}, e), n), { eventKey: d, isLeaf: R, isStart: J, isEnd: te, domRef: ne, active: s, data: r, onMousemove: u, selectable: p } = a, $ = Gn(a, ["eventKey", "isLeaf", "isStart", "isEnd", "domRef", "active", "data", "onMousemove", "selectable"]), { prefixCls: k, filterTreeNode: g, keyEntities: I, dropContainerKey: _, dropTargetKey: M, draggingNodeKey: P } = i.value, F = se.value, oe = Ot($, { aria: !0, data: !0 }), { level: fe } = I[d] || {}, ve = te[te.length - 1], ae = je(), ke = !F && ae, Re = P === d, ot = p !== void 0 ? { "aria-selected": !!p } : void 0; return C("div", re(re({ ref: ne, class: ue(n.class, `${k}-treenode`, { [`${k}-treenode-disabled`]: F, [`${k}-treenode-switcher-${O.value ? "open" : "close"}`]: !R, [`${k}-treenode-checkbox-checked`]: T.value, [`${k}-treenode-checkbox-indeterminate`]: Q.value, [`${k}-treenode-selected`]: V.value, [`${k}-treenode-loading`]: B.value, [`${k}-treenode-active`]: s, [`${k}-treenode-leaf-last`]: ve, [`${k}-treenode-draggable`]: ke, dragging: Re, "drop-target": M === d, "drop-container": _ === d, "drag-over": !F && q.value, "drag-over-gap-top": !F && A.value, "drag-over-gap-bottom": !F && G.value, "filter-node": g && g(b.value) }), style: n.style, draggable: ke, "aria-grabbed": Re, onDragstart: ke ? pe : void 0, onDragenter: ae ? Le : void 0, onDragover: ae ? He : void 0, onDragleave: ae ? Ke : void 0, onDrop: ae ? Qe : void 0, onDragend: ae ? De : void 0, onMousemove: u }, ot), oe), [C(Vn, { prefixCls: k, level: fe, isStart: J, isEnd: te }, null), Ye(), et(), tt(), nt()]); }; } }); var bt = function(e, t) { var n = {}; for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]); if (e != null && typeof Object.getOwnPropertySymbols == "function") for (var l = 0, o = Object.getOwnPropertySymbols(e); l < o.length; l++) t.indexOf(o[l]) < 0 && Object.prototype.propertyIsEnumerable.call(e, o[l]) && (n[o[l]] = e[o[l]]); return n; }; const qn = Ne({ compatConfig: { MODE: 3 }, name: "MotionTreeNode", inheritAttrs: !1, props: w(w({}, Ft), { active: Boolean, motion: Object, motionNodes: { type: Array }, onMotionStart: Function, onMotionEnd: Function, motionType: String }), setup(e, t) { let { attrs: n, slots: o } = t; const l = L(!0), c = ct(), i = L(!1), v = E(() => e.motion ? e.motion : nn()), S = (f, K) => { var x, m, D, j; K === "appear" ? (m = (x = v.value) === null || x === void 0 ? void 0 : x.onAfterEnter) === null || m === void 0 || m.call(x, f) : K === "leave" && ((j = (D = v.value) === null || D === void 0 ? void 0 : D.onAfterLeave) === null || j === void 0 || j.call(D, f)), i.value || e.onMotionEnd(), i.value = !0; }; return ie(() => e.motionNodes, () => { e.motionNodes && e.motionType === "hide" && l.value && Ae(() => { l.value = !1; }); }, { immediate: !0, flush: "post" }), qe(() => { e.motionNodes && e.onMotionStart(); }), rt(() => { e.motionNodes && S(); }), () => { const { motion: f, motionNodes: K, motionType: x, active: m, eventKey: D } = e, j = bt(e, ["motion", "motionNodes", "motionType", "active", "eventKey"]); return K ? C(mn, re(re({}, v.value), {}, { appear: x === "show", onAfterAppear: (y) => S(y, "appear"), onAfterLeave: (y) => S(y, "leave") }), { default: () => [bn(C("div", { class: `${c.value.prefixCls}-treenode-motion` }, [K.map((y) => { const N = bt(y.data, []), { title: O, key: V, isStart: T, isEnd: Y } = y; return delete N.children, C(mt, re(re({}, N), {}, { title: O, active: m, data: y.data, key: V, eventKey: V, isStart: T, isEnd: Y }), o); })]), [[Sn, l.value]])] }) : C(mt, re(re({ class: n.class, style: n.style }, j), {}, { active: m, eventKey: D }), o); }; } }); function Jn() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : []; const n = e.length, o = t.length; if (Math.abs(n - o) !== 1) return { add: !1, key: null }; function l(c, i) { const v = /* @__PURE__ */ new Map(); c.forEach((f) => { v.set(f, !0); }); const S = i.filter((f) => !v.has(f)); return S.length === 1 ? S[0] : null; } return n < o ? { add: !0, key: l(e, t) } : { add: !1, key: l(t, e) }; } function St(e, t, n) { const o = e.findIndex((i) => i.key === n), l = e[o + 1], c = t.findIndex((i) => i.key === n); if (l) { const i = t.findIndex((v) => v.key === l.key); return t.slice(c + 1, i); } return t.slice(c + 1); } var xt = function(e, t) { var n = {}; for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]); if (e != null && typeof Object.getOwnPropertySymbols == "function") for (var l = 0, o = Object.getOwnPropertySymbols(e); l < o.length; l++) t.indexOf(o[l]) < 0 && Object.prototype.propertyIsEnumerable.call(e, o[l]) && (n[o[l]] = e[o[l]]); return n; }; const Kt = { width: 0, height: 0, display: "flex", overflow: "hidden", opacity: 0, border: 0, padding: 0, margin: 0 }, Qn = () => { }, $e = `RC_TREE_MOTION_${Math.random()}`, st = { key: $e }, At = { key: $e, level: 0, index: 0, pos: "0", node: st, nodes: [st] }, kt = { parent: null, children: [], pos: At.pos, data: st, title: null, key: $e, /** Hold empty list here since we do not use it */ isStart: [], isEnd: [] }; function wt(e, t, n, o) { return t === !1 || !n ? e : e.slice(0, Math.ceil(n / o) + 1); } function Ct(e) { const { key: t, pos: n } = e; return Mt(t, n); } function Zn(e) { let t = String(e.key), n = e; for (; n.parent; ) n = n.parent, t = `${n.key} > ${t}`; return t; } const eo = Ne({ compatConfig: { MODE: 3 }, name: "NodeList", inheritAttrs: !1, props: Un, setup(e, t) { let { expose: n, attrs: o } = t; const l = We(), c = We(), { expandedKeys: i, flattenNodes: v } = Rt(); n({ scrollTo: (y) => { l.value.scrollTo(y); }, getIndentWidth: () => c.value.offsetWidth }); const S = L(v.value), f = L([]), K = We(null); function x() { S.value = v.value, f.value = [], K.value = null, e.onListChangeEnd(); } const m = ct(); ie([() => i.value.slice(), v], (y, N) => { let [O, V] = y, [T, Y] = N; const B = Jn(T, O); if (B.key !== null) { const { virtual: Q, height: q, itemHeight: A } = e; if (B.add) { const G = Y.findIndex((U) => { let { key: ee } = U; return ee === B.key; }), Z = wt(St(Y, V, B.key), Q, q, A), z = Y.slice(); z.splice(G + 1, 0, kt), S.value = z, f.value = Z, K.value = "show"; } else { const G = V.findIndex((U) => { let { key: ee } = U; return ee === B.key; }), Z = wt(St(V, Y, B.key), Q, q, A), z = V.slice(); z.splice(G + 1, 0, kt), S.value = z, f.value = Z, K.value = "hide"; } } else Y !== V && (S.value = V); }), ie(() => m.value.dragging, (y) => { y || x(); }); const D = E(() => e.motion === void 0 ? S.value : v.value), j = () => { e.onActiveChange(null); }; return () => { const y = w(w({}, e), o), { prefixCls: N, selectable: O, checkable: V, disabled: T, motion: Y, height: B, itemHeight: Q, virtual: q, focusable: A, activeItem: G, focused: Z, tabindex: z, onKeydown: U, onFocus: ee, onBlur: le, onListChangeStart: se, onListChangeEnd: Se } = y, ce = xt(y, ["prefixCls", "selectable", "checkable", "disabled", "motion", "height", "itemHeight", "virtual", "focusable", "activeItem", "focused", "tabindex", "onKeydown", "onFocus", "onBlur", "onListChangeStart", "onListChangeEnd"]); return C(xn, null, [Z && G && C("span", { style: Kt, "aria-live": "assertive" }, [Zn(G)]), C("div", null, [C("input", { style: Kt, disabled: A === !1 || T, tabindex: A !== !1 ? z : null, onKeydown: U, onFocus: ee, onBlur: le, value: "", onChange: Qn, "aria-label": "for screen reader" }, null)]), C("div", { class: `${N}-treenode`, "aria-hidden": !0, style: { position: "absolute", pointerEvents: "none", visibility: "hidden", height: 0, overflow: "hidden" } }, [C("div", { class: `${N}-indent` }, [C("div", { ref: c, class: `${N}-indent-unit` }, null)])]), C(jn, re(re({}, on(ce, ["onActiveChange"])), {}, { data: D.value, itemKey: Ct, height: B, fullHeight: !1, virtual: q, itemHeight: Q, prefixCls: `${N}-list`, ref: l, onVisibleChange: (W, h) => { const b = new Set(W); h.filter((X) => !b.has(X)).some((X) => Ct(X) === $e) && x(); } }), { default: (W) => { const { pos: h } = W, b = xt(W.data, []), { title: H, key: X, isStart: de, isEnd: ge } = W, ye = Mt(X, h); return delete b.key, delete b.children, C(qn, re(re({}, b), {}, { eventKey: ye, title: H, active: !!G && X === G.key, data: W.data, isStart: de, isEnd: ge, motion: Y, motionNodes: X === $e ? f.value : null, motionType: K.value, onMotionStart: se, onMotionEnd: x, onMousemove: j }), null); } })]); }; } }); function to(e) { let { dropPosition: t, dropLevelOffset: n, indent: o } = e; const l = { pointerEvents: "none", position: "absolute", right: 0, backgroundColor: "red", height: "2px" }; switch (t) { case -1: l.top = 0, l.left = `${-n * o}px`; break; case 1: l.bottom = 0, l.left = `${-n * o}px`; break; case 0: l.bottom = 0, l.left = `${o}`; break; } return C("div", { style: l }, null); } const no = 10, ho = Ne({ compatConfig: { MODE: 3 }, name: "Tree", inheritAttrs: !1, props: ln(Wn(), { prefixCls: "vc-tree", showLine: !1, showIcon: !0, selectable: !0, multiple: !1, checkable: !1, disabled: !1, checkStrictly: !1, draggable: !1, expandAction: !1, defaultExpandParent: !0, autoExpandParent: !1, defaultExpandAll: !1, defaultExpandedKeys: [], defaultCheckedKeys: [], defaultSelectedKeys: [], dropIndicatorRender: to, allowDrop: () => !0 }), setup(e, t) { let { attrs: n, slots: o, expose: l } = t; const c = L(!1); let i = {}; const v = L(), S = L([]), f = L([]), K = L([]), x = L([]), m = L([]), D = L([]), j = {}, y = _e({ draggingNodeKey: null, dragChildrenKeys: [], // dropTargetKey is the key of abstract-drop-node // the abstract-drop-node is the real drop node when drag and drop // not the DOM drag over node dropTargetKey: null, dropPosition: null, dropContainerKey: null, dropLevelOffset: null, dropTargetPos: null, dropAllowed: !0, // the abstract-drag-over-node // if mouse is on the bottom of top dom node or no the top of the bottom dom node // abstract-drag-over-node is the top node dragOverNodeKey: null }), N = L([]); ie([() => e.treeData, () => e.children], () => { N.value = e.treeData !== void 0 ? e.treeData.slice() : Kn(it(e.children)); }, { immediate: !0, deep: !0 }); const O = L({}), V = L(!1), T = L(null), Y = L(!1), B = E(() => kn(e.fieldNames)), Q = L(); let q = null, A = null, G = null; const Z = E(() => ({ expandedKeysSet: z.value, selectedKeysSet: U.value, loadedKeysSet: ee.value, loadingKeysSet: le.value, checkedKeysSet: se.value, halfCheckedKeysSet: Se.value, dragOverNodeKey: y.dragOverNodeKey, dropPosition: y.dropPosition, keyEntities: O.value })), z = E(() => new Set(D.value)), U = E(() => new Set(S.value)), ee = E(() => new Set(x.value)), le = E(() => new Set(m.value)), se = E(() => new Set(f.value)), Se = E(() => new Set(K.value)); Pe(() => { if (N.value) { const s = wn(N.value, { fieldNames: B.value }); O.value = w({ [$e]: At }, s.keyEntities); } }); let ce = !1; ie( [() => e.expandedKeys, () => e.autoExpandParent, O], // eslint-disable-next-line @typescript-eslint/no-unused-vars (s, r) => { let [u, p] = s, [$, k] = r, g = D.value; if (e.expandedKeys !== void 0 || ce && p !== k) g = e.autoExpandParent || !ce && e.defaultExpandParent ? ft(e.expandedKeys, O.value) : e.expandedKeys; else if (!ce && e.defaultExpandAll) { const I = w({}, O.value); delete I[$e], g = Object.keys(I).map((_) => I[_].key); } else !ce && e.defaultExpandedKeys && (g = e.autoExpandParent || e.defaultExpandParent ? ft(e.defaultExpandedKeys, O.value) : e.defaultExpandedKeys); g && (D.value = g), ce = !0; }, { immediate: !0 } ); const W = L([]); Pe(() => { W.value = Cn(N.value, D.value, B.value); }), Pe(() => { e.selectable && (e.selectedKeys !== void 0 ? S.value = vt(e.selectedKeys, e) : !ce && e.defaultSelectedKeys && (S.value = vt(e.defaultSelectedKeys, e))); }); const { maxLevel: h, levelEntities: b } = En(O); Pe(() => { if (e.checkable) { let s; if (e.checkedKeys !== void 0 ? s = lt(e.checkedKeys) || {} : !ce && e.defaultCheckedKeys ? s = lt(e.defaultCheckedKeys) || {} : N.value && (s = lt(e.checkedKeys) || { checkedKeys: f.value, halfCheckedKeys: K.value }), s) { let { checkedKeys: r = [], halfCheckedKeys: u = [] } = s; e.checkStrictly || ({ checkedKeys: r, halfCheckedKeys: u } = at(r, !0, O.value, h.value, b.value)), f.value = r, K.value = u; } } }), Pe(() => { e.loadedKeys && (x.value = e.loadedKeys); }); const H = () => { w(y, { dragOverNodeKey: null, dropPosition: null, dropLevelOffset: null, dropTargetKey: null, dropContainerKey: null, dropTargetPos: null, dropAllowed: !1 }); }, X = (s) => { Q.value.scrollTo(s); }; ie(() => e.activeKey, () => { e.activeKey !== void 0 && (T.value = e.activeKey); }, { immediate: !0 }), ie(T, (s) => { Ae(() => { s !== null && X({ key: s }); }); }, { immediate: !0, flush: "post" }); const de = (s) => { e.expandedKeys === void 0 && (D.value = s); }, ge = () => { y.draggingNodeKey !== null && w(y, { draggingNodeKey: null, dropPosition: null, dropContainerKey: null, dropTargetKey: null, dropLevelOffset: null, dropAllowed: !0, dragOverNodeKey: null }), q = null, G = null; }, ye = (s, r) => { const { onDragend: u } = e; y.dragOverNodeKey = null, ge(), u == null || u({ event: s, node: r.eventData }), A = null; }, xe = (s) => { ye(s, null), window.removeEventListener("dragend", xe); }, Me = (s, r) => { const { onDragstart: u } = e, { eventKey: p, eventData: $ } = r; A = r, q = { x: s.clientX, y: s.clientY }; const k = me(D.value, p); y.draggingNodeKey = p, y.dragChildrenKeys = Dn(p, O.value), v.value = Q.value.getIndentWidth(), de(k), window.addEventListener("dragend", xe), u && u({ event: s, node: $ }); }, Ie = (s, r) => { const { onDragenter: u, onExpand: p, allowDrop: $, direction: k } = e, { pos: g, eventKey: I } = r; if (G !== I && (G = I), !A) { H(); return; } const { dropPosition: _, dropLevelOffset: M, dropTargetKey: P, dropContainerKey: F, dropTargetPos: oe, dropAllowed: fe, dragOverNodeKey: ve } = ht(s, A, r, v.value, q, $, W.value, O.value, z.value, k); if ( // don't allow drop inside its children y.dragChildrenKeys.indexOf(P) !== -1 || // don't allow drop when drop is not allowed caculated by calcDropPosition !fe ) { H(); return; } if (i || (i = {}), Object.keys(i).forEach((ae) => { clearTimeout(i[ae]); }), A.eventKey !== r.eventKey && (i[g] = window.setTimeout(() => { if (y.draggingNodeKey === null) return; let ae = D.value.slice(); const ke = O.value[r.eventKey]; ke && (ke.children || []).length && (ae = we(D.value, r.eventKey)), de(ae), p && p(ae, { node: r.eventData, expanded: !0, nativeEvent: s }); }, 800)), A.eventKey === P && M === 0) { H(); return; } w(y, { dragOverNodeKey: ve, dropPosition: _, dropLevelOffset: M, dropTargetKey: P, dropContainerKey: F, dropTargetPos: oe, dropAllowed: fe }), u && u({ event: s, node: r.eventData, expandedKeys: D.value }); }, pe = (s, r) => { const { onDragover: u, allowDrop: p, direction: $ } = e; if (!A) return; const { dropPosition: k, dropLevelOffset: g, dropTargetKey: I, dropContainerKey: _, dropAllowed: M, dropTargetPos: P, dragOverNodeKey: F } = ht(s, A, r, v.value, q, p, W.value, O.value, z.value, $); y.dragChildrenKeys.indexOf(I) !== -1 || !M || (A.eventKey === I && g === 0 ? y.dropPosition === null && y.dropLevelOffset === null && y.dropTargetKey === null && y.dropContainerKey === null && y.dropTargetPos === null && y.dropAllowed === !1 && y.dragOverNodeKey === null || H() : k === y.dropPosition && g === y.dropLevelOffset && I === y.dropTargetKey && _ === y.dropContainerKey && P === y.dropTargetPos && M === y.dropAllowed && F === y.dragOverNodeKey || w(y, { dropPosition: k, dropLevelOffset: g, dropTargetKey: I, dropContainerKey: _, dropTargetPos: P, dropAllowed: M, dragOverNodeKey: F }), u && u({ event: s, node: r.eventData })); }, Le = (s, r) => { G === r.eventKey && !s.currentTarget.contains(s.relatedTarget) && (H(), G = null); const { onDragleave: u } = e; u && u({ event: s, node: r.eventData }); }, He = function(s, r) { let u = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1; var p; const { dragChildrenKeys: $, dropPosition: k, dropTargetKey: g, dropTargetPos: I, dropAllowed: _ } = y; if (!_) return; const { onDrop: M } = e; if (y.dragOverNodeKey = null, ge(), g === null) return; const P = w(w({}, Ge(g, it(Z.value))), { active: ((p = R.value) === null || p === void 0 ? void 0 : p.key) === g, data: O.value[g].node }), F = $.indexOf(g) !== -1; Ue(!F, "Can not drop to dragNode's children node. Maybe this is a bug of ant-design-vue. Please report an issue."); const oe = Tn(I), fe = { event: s, node: Xe(P), dragNode: A ? A.eventData : null, dragNodesKeys: [A.eventKey].concat($), dropToGap: k !== 0, dropPosition: k + Number(oe[oe.length - 1]) }; u || M == null || M(fe), A = null; }, Ke = (s, r) => { const { expanded: u, key: p } = r, $ = W.value.filter((g) => g.key === p)[0], k = Xe(w(w({}, Ge(p, Z.value)), { data: $.data })); de(u ? me(D.value, p) : we(D.value, p)), Te(s, k); }, De = (s, r) => { const { onClick: u, expandAction: p } = e; p === "click" && Ke(s, r), u && u(s, r); }, Qe = (s, r) => { const { onDblclick: u, expandAction: p } = e; (p === "doubleclick" || p === "dblclick") && Ke(s, r), u && u(s, r); }, Be = (s, r) => { let u = S.value; const { onSelect: p, multiple: $ } = e, { selected: k } = r, g = r[B.value.key], I = !k; I ? $ ? u = we(u, g) : u = [g] : u = me(u, g); const _ = O.value, M = u.map((P) => { const F = _[P]; return F ? F.node : null; }).filter((P) => P); e.selectedKeys === void 0 && (S.value = u), p && p(u, { event: "select", selected: I, node: r, selectedNodes: M, nativeEvent: s }); }, je = (s, r, u) => { const { checkStrictly: p, onCheck: $ } = e, k = r[B.value.key]; let g; const I = { event: "check", node: r, checked: u, nativeEvent: s }, _ = O.value; if (p) { const M = u ? we(f.value, k) : me(f.value, k), P = me(K.value, k); g = { checked: M, halfChecked: P }, I.checkedNodes = M.map((F) => _[F]).filter((F) => F).map((F) => F.node), e.checkedKeys === void 0 && (f.value = M); } else { let { checkedKeys: M, halfCheckedKeys: P } = at([...f.value, k], !0, _, h.value, b.value); if (!u) { const F = new Set(M); F.delete(k), { checkedKeys: M, halfCheckedKeys: P } = at(Array.from(F), { checked: !1, halfCheckedKeys: P }, _, h.value, b.value); } g = M, I.checkedNodes = [], I.checkedNodesPositions = [], I.halfCheckedKeys = P, M.forEach((F) => { const oe = _[F]; if (!oe) return; const { node: fe, pos: ve } = oe; I.checkedNodes.push(fe), I.checkedNodesPositions.push({ node: fe, pos: ve }); }), e.checkedKeys === void 0 && (f.value = M, K.value = P); } $ && $(g, I); }, Ye = (s) => { const r = s[B.value.key], u = new Promise((p, $) => { const { loadData: k, onLoad: g } = e; if (!k || ee.value.has(r) || le.value.has(r)) return null; k(s).then(() => { const _ = we(x.value, r), M = me(m.value, r); g && g(_, { event: "load", node: s }), e.loadedKeys === void 0 && (x.value = _), m.value = M, p(); }).catch((_) => { const M = me(m.value, r); if (m.value = M, j[r] = (j[r] || 0) + 1, j[r] >= no) { Ue(!1, "Retry for `loadData` many times but still failed. No more retry."); const P = we(x.value, r); e.loadedKeys === void 0 && (x.value = P), p(); } $(_); }), m.value = we(m.value, r); }); return u.catch(() => { }), u; }, Ze = (s, r) => { const { onMouseenter: u } = e; u && u({ event: s, node: r }); }, ze = (s, r) => { const { onMouseleave: u } = e; u && u({ event: s, node: r }); }, et = (s, r) => { const { onRightClick: u } = e; u && (s.preventDefault(), u({ event: s, node: r })); }, tt = (s) => { const { onFocus: r } = e; V.value = !0, r && r(s); }, Ve = (s) => { const { onBlur: r } = e; V.value = !1, d(null), r && r(s); }, Te = (s, r) => { let u = D.value; const { onExpand: p, loadData: $ } = e, { expanded: k } = r, g = r[B.value.key]; if (Y.value) return; const I = u.indexOf(g), _ = !k; if (Ue(k && I !== -1 || !k && I === -1, "Expand state not sync with index check"), _ ? u = we(u, g) : u = me(u, g), de(u), p && p(u, { node: r, expanded: _, nativeEvent: s }), _ && $) { const M = Ye(r); M && M.then(() => { }).catch((P) => { const F = me(D.value, g); de(F), Promise.reject(P); }); } }, nt = () => { Y.value = !0; }, a = () => { setTimeout(() => { Y.value = !1; }); }, d = (s) => { const { onActiveChange: r } = e; T.value !== s && (e.activeKey !== void 0 && (T.value = s), s !== null && X({ key: s }), r && r(s)); }, R = E(() => T.value === null ? null : W.value.find((s) => { let { key: r } = s; return r === T.value; }) || null), J = (s) => { let r = W.value.findIndex((p) => { let { key: $ } = p; return $ === T.value; }); r === -1 && s < 0 && (r = W.value.length), r = (r + s + W.value.length) % W.value.length; const u = W.value[r]; if (u) { const { key: p } = u; d(p); } else d(null); }, te = E(() => Xe(w(w({}, Ge(T.value, Z.value)), { data: R.value.data, active: !0 }))), ne = (s) => { const { onKeydown: r, checkable: u, selectable: p } = e; switch (s.which) { case Oe.UP: { J(-1), s.preventDefault(); break; } case Oe.DOWN: { J(1), s.preventDefault(); break; } } const $ = R.value; if ($ && $.data) { const k = $.data.isLeaf === !1 || !!($.data.children || []).length, g = te.value; switch (s.which) { case Oe.LEFT: { k && z.value.has(T.value) ? Te({}, g) : $.parent && d($.parent.key), s.preventDefault(); break; } case Oe.RIGHT: { k && !z.value.has(T.value) ? Te({}, g) : $.children && $.children.length && d($.children[0].key), s.preventDefault(); break; } case Oe.ENTER: case Oe.SPACE: { u && !g.disabled && g.checkable !== !1 && !g.disableCheckbox ? je({}, g, !se.value.has(T.value)) : !u && p && !g.disabled && g.selectable !== !1 && Be({}, g); break; } } } r && r(s); }; return l({ onNodeExpand: Te, scrollTo: X, onKeydown: ne, selectedKeys: E(() => S.value), checkedKeys: E(() => f.value), halfCheckedKeys: E(() => K.value), loadedKeys: E(() => x.value), loadingKeys: E(() => m.value), expandedKeys: E(() => D.value) }), Dt(() => { window.removeEventListener("dragend", xe), c.value = !0; }), zn({ expandedKeys: D, selectedKeys: S, loadedKeys: x, loadingKeys: m, checkedKeys: f, halfCheckedKeys: K, expandedKeysSet: z, selectedKeysSet: U, loadedKeysSet: ee, loadingKeysSet: le, checkedKeysSet: se, halfCheckedKeysSet: Se, flattenNodes: W }), () => { const { // focused, // flattenNodes, // keyEntities, draggingNodeKey: s, // activeKey, dropLevelOffset: r, dropContainerKey: u, dropTargetKey: p, dropPosition: $, dragOverNodeKey: k // indent, } = y, { prefixCls: g, showLine: I, focusable: _, tabindex: M = 0, selectable: P, showIcon: F, icon: oe = o.icon, switcherIcon: fe, draggable: ve, checkable: ae, checkStrictly: ke, disabled: Re, motion: ot, loadData: _t, filterTreeNode: Bt, height: jt, itemHeight: Yt, virtual: zt, dropIndicatorRender: Vt, onContextmenu: Ut, onScroll: Wt, direction: Gt, rootClassName: Xt, rootStyle: qt } = e, { class: Jt, style: Qt } = n, Zt = Ot(w(w({}, e), n), { aria: !0, data: !0 }); let Fe; return ve ? typeof ve == "object" ? Fe = ve : typeof ve == "function" ? Fe = { nodeDraggable: ve } : Fe = {} : Fe = !1, C(Yn, { value: { prefixCls: g, selectable: P, showIcon: F, icon: oe, switcherIcon: fe, draggable: Fe, draggingNodeKey: s, checkable: ae, customCheckable: o.checkable, checkStrictly: ke, disabled: Re, keyEntities: O.value, dropLevelOffset: r, dropContainerKey: u, dropTargetKey: p, dropPosition: $, dragOverNodeKey: k, dragging: s !== null, indent: v.value, direction: Gt, dropIndicatorRender: Vt, loadData: _t, filterTreeNode: Bt, onNodeClick: De, onNodeDoubleClick: Qe, onNodeExpand: Te, onNodeSelect: Be, onNodeCheck: je, onNodeLoad: Ye, onNodeMouseEnter: Ze, onNodeMouseLeave: ze, onNodeContextMenu: et, onNodeDragStart: Me, onNodeDragEnter: Ie, onNodeDragOver: pe, onNodeDragLeave: Le, onNodeDragEnd: ye, onNodeDrop: He, slots: o } }, { default: () => [C("div", { role: "tree", class: ue(g, Jt, Xt, { [`${g}-show-line`]: I, [`${g}-focused`]: V.value, [`${g}-active-focused`]: T.value !== null }), style: qt }, [C(eo, re({ ref: Q, prefixCls: g, style: Qt, disabled: Re, selectable: P, checkable: !!ae, motion: ot, height: jt, itemHeight: Yt, virtual: zt, focusable: _, focused: V.value, tabindex: M, activeItem: R.value, onFocus: tt, onBlur: Ve, onKeydown: ne, onActiveChange: d, onListChangeStart: nt, onListChangeEnd: a, onContextmenu: Ut, onScroll: Wt }, Zt), null)])] }); }; } }); function go(e, t, n, o, l) { const { isLeaf: c, expanded: i, loading: v } = n; let S = t; if (v) return C(an, { class: `${e}-switcher-loading-icon` }, null); let f; l && typeof l == "object" && (f = l.showLeafIcon); let K = null; const x = `${e}-switcher-icon`; return c ? l ? f && o ? o(n) : (typeof l == "object" && !f ? K = C("span", { class: `${e}-switcher-leaf-line` }, null) : K = C(sn, { class: `${e}-switcher-line-icon` }, null), K) : null : (K = C(rn, { class: x }, null), l && (K = i ? C(cn, { class: `${e}-switcher-line-icon` }, null) : C(dn, { class: `${e}-switcher-line-icon` }, null)), typeof t == "function" ? S = t(w(w({}, n), { defaultIcon: K, switcherCls: x })) : un(S) && (S = Et(S, { class: x })), S || K); } const oo = new yn("ant-tree-node-fx-do-not-use", { "0%": { opacity: 0 }, "100%": { opacity: 1 } }), lo = (e, t) => ({ [`.${e}-switcher-icon`]: { display: "inline-block", fontSize: 10, verticalAlign: "baseline", svg: { transition: `transform ${t.motionDurationSlow}` } } }), ao = (e, t) => ({ [`.${e}-drop-indicator`]: { position: "absolute", // it should displayed over the following node zIndex: 1, height: 2, backgroundColor: t.colorPrimary, borderRadius: 1, pointerEvents: "none", "&:after": { position: "absolute", top: -3, insetInlineStart: -6, width: 8, height: 8, backgroundColor: "transparent", border: `${t.lineWidthBold}px solid ${t.colorPrimary}`, borderRadius: "50%", content: '""' } } }), io = (e, t) => { const { treeCls: n, treeNodeCls: o, treeNodePadding: l, treeTitleHeight: c } = t, i = (c - t.fontSizeLG) / 2, v = t.paddingXS; return { [n]: w(w({}, gn(t)), { background: t.colorBgContainer, borderRadius: t.borderRadius, transition: `background-color ${t.motionDurationSlow}`, [`&${n}-rtl`]: { // >>> Switcher [`${n}-switcher`]: { "&_close": { [`${n}-switcher-icon`]: { svg: { transform: "rotate(90deg)" } } } } }, [`&-focused:not(:hover):not(${n}-active-focused)`]: w({}, dt(t)), // =================== Virtual List =================== [`${n}-list-holder-inner`]: { alignItems: "flex-start" }, [`&${n}-block-node`]: { [`${n}-list-holder-inner`]: { alignItems: "stretch", // >>> Title [`${n}-node-content-wrapper`]: { flex: "auto" }, // >>> Drag [`${o}.dragging`]: { position: "relative", "&:after": { position: "absolute", top: 0, insetInlineEnd: 0, bottom: l, insetInlineStart: 0, border: `1px solid ${t.colorPrimary}`, opacity: 0, animationName: oo, animationDuration: t.motionDurationSlow, animationPlayState: "running", animationFillMode: "forwards", content: '""', pointerEvents: "none" } } } }, // ===================== TreeNode ===================== [`${o}`]: { display: "flex", alignItems: "flex-start", padding: `0 0 ${l}px 0`, outline: "none", "&-rtl": { direction: "rtl" }, // Disabled "&-disabled": { // >>> Title [`${n}-node-content-wrapper`]: { color: t.colorTextDisabled, cursor: "not-allowed", "&:hover": { background: "transparent" } } }, [`&-active ${n}-node-content-wrapper`]: w({}, dt(t)), [`&:not(${o}-disabled).filter-node ${n}-title`]: { color: "inherit", fontWeight: 500 }, "&-draggable": { [`${n}-draggable-icon`]: { width: c, lineHeight: `${c}px`, textAlign: "center", visibility: "visible", opacity: 0.2, transition: `opacity ${t.motionDurationSlow}`, [`${o}:hover &`]: { opacity: 0.45 } }, [`&${o}-disabled`]: { [`${n}-draggable-icon`]: { visibility: "hidden" } } } }, // >>> Indent [`${n}-indent`]: { alignSelf: "stretch", whiteSpace: "nowrap", userSelect: "none", "&-unit": { display: "inline-block", width: c } }, // >>> Drag Handler [`${n}-draggable-icon`]: { visibility: "hidden" }, // >>> Switcher [`${n}-switcher`]: w(w({}, lo(e, t)), { position: "relative", flex: "none", alignSelf: "stretch", width: c, margin: 0, lineHeight: `${c}px`, textAlign: "center", cursor: "pointer", userSelect: "none", "&-noop": { cursor: "default" }, "&_close": { [`${n}-switcher-icon`]: { svg: { transform: "rotate(-90deg)" } } }, "&-loading-icon": { color: t.colorPrimary }, "&-leaf-line": { position: "relative", zIndex: 1, display: "inline-block", width: "100%", height: "100%", // https://github.com/ant-design/ant-design/issues/31884 "&:before": { position: "absolute", top: 0, insetInlineEnd: c / 2, bottom: -l, marginInlineStart: -1, borderInlineEnd: `1px solid ${t.colorBorder}`, content: '""' }, "&:after": { position: "absolute", width: c / 2 * 0.8, height: c / 2, borderBottom: `1px solid ${t.colorBorder}`, content: '""' } } }), // >>> Checkbox [`${n}-checkbox`]: { top: "initial", marginInlineEnd: v, marginBlockStart: i }, // >>> Title // add `${treeCls}-checkbox + span` to cover checkbox `${checkboxCls} + span` [`${n}-node-content-wrapper, ${n}-checkbox + span`]: { position: "relative", zIndex: "auto", minHeight: c, margin: 0, padding: `0 ${t.paddingXS / 2}px`, color: "inherit", lineHeight: `${c}px`, background: "transparent", borderRadius: t.borderRadius, cursor: "pointer", transition: `all ${t.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`, "&:hover": { backgroundColor: t.controlItemBgHover }, [`&${n}-node-selected`]: { backgroundColor: t.controlItemBgActive }, // Icon [`${n}-iconEle`]: { display: "inline-block", width: c, height: c, lineHeight: `${c}px`, textAlign: "center", verticalAlign: "top", "&:empty": { display: "none" } } }, // https://github.com/ant-design/ant-design/issues/28217 [`${n}-unselectable ${n}-node-content-wrapper:hover`]: { backgroundColor: "transparent" }, // ==================== Draggable ===================== [`${n}-node-content-wrapper`]: w({ lineHeight: `${c}px`, userSelect: "none" }, ao(e, t)), [`${o}.drop-container`]: { "> [draggable]": { boxShadow: `0 0 0 2px ${t.colorPrimary}` } }, // ==================== Show Line ===================== "&-show-line": { // ================ Indent lines ================ [`${n}-indent`]: { "&-unit": { position: "relative", height: "100%", "&:before": { position: "absolute", top: 0, insetInlineEnd: c / 2, bottom: -l, borderInlineEnd: `1px solid ${t.colorBorder}`, content: '""' }, "&-end": { "&:before": { display: "none" } } } }, // ============== Cover Background ============== [`${n}-switcher`]: { background: "transparent", "&-line-icon": { // https://github.com/ant-design/ant-design/issues/32813 verticalAlign: "-0.15em" } } }, [`${o}-leaf-last`]: { [`${n}-switcher`]: { "&-leaf-line": { "&:before": { top: "auto !important", bottom: "auto !important", height: `${c / 2}px !important` } } } } }) }; }, so = (e) => { const { treeCls: t, treeNodeCls: n, treeNodePadding: o } = e; return { [`${t}${t}-directory`]: { // ================== TreeNode ================== [n]: { position: "relative", // Hover color "&:before": { position: "absolute", top: 0, insetInlineEnd: 0, bottom: o, insetInlineStart: 0, transition: `background-color ${e.motionDurationMid}`, content: '""', pointerEvents: "none" }, "&:hover": { "&:before": { background: e.controlItemBgHover } }, // Elements "> *": { zIndex: 1 }, // >>> Switcher [`${t}-switcher`]: { transition: `color ${e.motionDurationMid}` }, // >>> Title [`${t}-node-content-wrapper`]: { borderRadius: 0, userSelect: "none", "&:hover": { background: "transparent" }, [`&${t}-node-selected`]: { color: e.colorTextLightSolid, background: "transparent" } }, // ============= Selected ============= "&-selected": { "\n &:hover::before,\n &::before\n ": { background: e.colorPrimary }, // >>> Switcher [`${t}-switcher`]: { color: e.colorTextLightSolid }, // >>> Title [`${t}-node-content-wrapper`]: { color: e.colorTextLightSolid, background: "transparent" } } } } }; }, ro = (e, t) => { const n = `.${e}`, o = `${n}-treenode`, l = t.paddingXS / 2, c = t.controlHeightSM, i = hn(t, { treeCls: n, treeNodeCls: o, treeNodePadding: l, treeTitleHeight: c }); return [ // Basic io(e, i), // Directory so(i) ]; }, yo = fn("Tree", (e, t) => { let { prefixCls: n } = t; return [{ [e.componentCls]: $n(`${n}-checkbox`, e) }, ro(n, e), vn(e)]; }); export { ho as T, mt as V, ro as g, go as r, Wn as t, yo as u };