{"version":3,"file":"tree.mjs","sources":["../../../../../../packages/components/tree-v2/src/tree.vue"],"sourcesContent":["<template>\n  <div\n    :class=\"[ns.b(), { [ns.m('highlight-current')]: highlightCurrent }]\"\n    role=\"tree\"\n    data-test-name=\"tree-v2\"\n    data-test-variant=\"\"\n    data-test-state=\"\"\n  >\n    <fixed-size-list\n      v-if=\"isNotEmpty\"\n      :class-name=\"ns.b('virtual-list')\"\n      :data=\"flattenTree\"\n      :total=\"flattenTree.length\"\n      :height=\"height\"\n      :item-size=\"itemSize\"\n      :perf-mode=\"perfMode\"\n    >\n      <template #default=\"{ data, index, style }\">\n        <b-tree-node\n          :key=\"data[index].key\"\n          :style=\"style\"\n          :node=\"data[index]\"\n          :expanded=\"isExpanded(data[index])\"\n          :show-checkbox=\"showCheckbox\"\n          :checked=\"isChecked(data[index])\"\n          :indeterminate=\"isIndeterminate(data[index])\"\n          :disabled=\"isDisabled(data[index])\"\n          :current=\"isCurrent(data[index])\"\n          :hidden-expand-icon=\"isForceHiddenExpandIcon(data[index])\"\n          @click=\"handleNodeClick\"\n          @toggle=\"toggleExpand\"\n          @check=\"handleNodeCheck\"\n        />\n      </template>\n    </fixed-size-list>\n    <div v-else :class=\"ns.e('empty-block')\">\n      <span :class=\"ns.e('empty-text')\">{{\n        emptyText ?? t('b.tree.emptyText')\n      }}</span>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, getCurrentInstance, provide } from 'vue'\nimport { useLocale, useNamespace } from '@bigin/hooks'\nimport { formItemContextKey } from '@bigin/tokens'\nimport { FixedSizeList } from '@bigin/components/virtual-list'\nimport { useTree } from './composables/useTree'\nimport BTreeNode from './tree-node.vue'\nimport { ROOT_TREE_INJECTION_KEY, treeEmits, treeProps } from './virtual-tree'\nimport type { TreeProps } from './types'\n\nexport default defineComponent({\n  name: 'BTreeV2',\n  components: {\n    BTreeNode,\n    FixedSizeList,\n  },\n  props: treeProps,\n  emits: treeEmits,\n  setup(props: TreeProps, ctx) {\n    provide(ROOT_TREE_INJECTION_KEY, {\n      ctx,\n      props,\n      instance: getCurrentInstance(),\n    })\n    provide(formItemContextKey, undefined)\n    const { t } = useLocale()\n    const ns = useNamespace('tree')\n    const {\n      flattenTree,\n      isNotEmpty,\n      toggleExpand,\n      isExpanded,\n      isIndeterminate,\n      isChecked,\n      isDisabled,\n      isCurrent,\n      isForceHiddenExpandIcon,\n      toggleCheckbox,\n      handleNodeClick,\n      handleNodeCheck,\n      // expose\n      getCurrentNode,\n      getCurrentKey,\n      setCurrentKey,\n      getCheckedKeys,\n      getCheckedNodes,\n      getHalfCheckedKeys,\n      getHalfCheckedNodes,\n      setChecked,\n      setCheckedKeys,\n      filter,\n      setData,\n      getNode,\n      expandNode,\n      collapseNode,\n      setExpandedKeys,\n    } = useTree(props, ctx.emit)\n\n    ctx.expose({\n      getCurrentNode,\n      getCurrentKey,\n      setCurrentKey,\n      getCheckedKeys,\n      getCheckedNodes,\n      getHalfCheckedKeys,\n      getHalfCheckedNodes,\n      setChecked,\n      setCheckedKeys,\n      filter,\n      setData,\n      getNode,\n      expandNode,\n      collapseNode,\n      setExpandedKeys,\n    })\n\n    return {\n      t,\n      ns,\n      flattenTree,\n      itemSize: 26,\n      isNotEmpty,\n      toggleExpand,\n      toggleCheckbox,\n      isExpanded,\n      isIndeterminate,\n      isChecked,\n      isDisabled,\n      isCurrent,\n      isForceHiddenExpandIcon,\n      handleNodeClick,\n      handleNodeCheck,\n    }\n  },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_openBlock","_createBlock","_withCtx","_normalizeStyle","_createElementVNode","_toDisplayString"],"mappings":"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"}