hongluan-ui
Version:
Hongluan Component Library for Vue 3
151 lines (146 loc) • 4.88 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../hooks/index.js');
require('../../../tokens/index.js');
require('../../virtual-list/index.js');
var useTree = require('./composables/useTree.js');
var treeNode = require('./tree-node.js');
var virtualTree = require('./virtual-tree.js');
var index = require('../../../hooks/use-namespace/index.js');
var form = require('../../../tokens/form.js');
var index$1 = require('../../../hooks/use-locale/index.js');
var fixedSizeList = require('../../virtual-list/src/components/fixed-size-list.js');
const __default__ = vue.defineComponent({
name: "TreeV2"
});
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: virtualTree.treeProps,
emits: virtualTree.treeEmits,
setup(__props, { expose, emit }) {
const props = __props;
const slots = vue.useSlots();
const { namespace } = index.useNamespace("tree");
vue.provide(virtualTree.ROOT_TREE_INJECTION_KEY, {
ctx: {
emit,
slots
},
props,
instance: vue.getCurrentInstance()
});
vue.provide(form.formItemContextKey, void 0);
const { t } = index$1.useLocale();
const {
flattenTree,
isNotEmpty,
listRef,
toggleExpand,
isExpanded,
isIndeterminate,
isChecked,
isDisabled,
isCurrent,
isForceHiddenExpandIcon,
toggleCheckbox,
handleNodeClick,
handleNodeCheck,
getCurrentNode,
getCurrentKey,
setCurrentKey,
getCheckedKeys,
getCheckedNodes,
getHalfCheckedKeys,
getHalfCheckedNodes,
setChecked,
setCheckedKeys,
filter,
setData,
getNode,
expandNode,
collapseNode,
setExpandedKeys,
scrollToNode,
scrollTo
} = useTree.useTree(props, emit);
expose({
getCurrentNode,
getCurrentKey,
setCurrentKey,
getCheckedKeys,
getCheckedNodes,
getHalfCheckedKeys,
getHalfCheckedNodes,
setChecked,
setCheckedKeys,
filter,
setData,
getNode,
expandNode,
collapseNode,
setExpandedKeys,
scrollToNode,
scrollTo
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass({
[vue.unref(namespace)]: true,
"highlight-current": _ctx.highlightCurrent
}),
role: "tree"
}, [
vue.unref(isNotEmpty) ? (vue.openBlock(), vue.createBlock(vue.unref(fixedSizeList["default"]), {
key: 0,
ref_key: "listRef",
ref: listRef,
"class-name": "tree-virtual-list",
data: vue.unref(flattenTree),
total: vue.unref(flattenTree).length,
height: _ctx.height,
"item-size": _ctx.itemSize,
"perf-mode": _ctx.perfMode
}, {
default: vue.withCtx(({ data, index, style }) => [
(vue.openBlock(), vue.createBlock(treeNode["default"], {
key: data[index].key,
style: vue.normalizeStyle(style),
node: data[index],
expanded: vue.unref(isExpanded)(data[index]),
"show-checkbox": _ctx.showCheckbox,
checked: vue.unref(isChecked)(data[index]),
indeterminate: vue.unref(isIndeterminate)(data[index]),
disabled: vue.unref(isDisabled)(data[index]),
current: vue.unref(isCurrent)(data[index]),
"hidden-expand-icon": vue.unref(isForceHiddenExpandIcon)(data[index]),
onClick: vue.unref(handleNodeClick),
onToggle: vue.unref(toggleExpand),
onCheck: vue.unref(handleNodeCheck)
}, vue.createSlots({ _: 2 }, [
_ctx.$slots.icon ? {
name: "icon",
fn: vue.withCtx((params) => [
vue.renderSlot(_ctx.$slots, "icon", vue.normalizeProps(vue.guardReactiveProps(params)))
])
} : void 0
]), 1032, ["style", "node", "expanded", "show-checkbox", "checked", "indeterminate", "disabled", "current", "hidden-expand-icon", "onClick", "onToggle", "onCheck"]))
]),
_: 3
}, 8, ["data", "total", "height", "item-size", "perf-mode"])) : (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: "tree-empty-block"
}, [
vue.renderSlot(_ctx.$slots, "empty", {}, () => {
var _a;
return [
vue.createElementVNode("span", { class: "tree-empty-text" }, vue.toDisplayString((_a = _ctx.emptyText) != null ? _a : vue.unref(t)("hl.tree.emptyText")), 1)
];
})
]))
], 2);
};
}
});
exports["default"] = _sfc_main;
//# sourceMappingURL=tree.js.map