UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 8.45 kB
{"version":3,"file":"virtual-tree.mjs","sources":["../../../../../../packages/components/tree-v2/src/virtual-tree.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n iconPropType,\n isBoolean,\n mutable,\n} from '@element-plus/utils'\n\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\nimport type { InjectionKey } from 'vue'\nimport type { TreeNodeData } from '@element-plus/components/tree/src/tree.type'\nimport type {\n CheckedInfo,\n FilterMethod,\n TreeContext,\n TreeData,\n TreeKey,\n TreeNode,\n TreeOptionProps,\n} from './types'\n\n// constants\nexport const ROOT_TREE_INJECTION_KEY: InjectionKey<TreeContext> = Symbol()\nexport const EMPTY_NODE = {\n key: -1,\n level: -1,\n data: {},\n} as const\n\n// enums\nexport enum TreeOptionsEnum {\n KEY = 'id',\n LABEL = 'label',\n CHILDREN = 'children',\n DISABLED = 'disabled',\n CLASS = '',\n}\n\nexport const enum SetOperationEnum {\n ADD = 'add',\n DELETE = 'delete',\n}\n\nconst itemSize = {\n type: Number,\n default: 26,\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `TreeProps` instead.\n */\nexport const treeProps = buildProps({\n data: {\n type: definePropType<TreeData>(Array),\n default: () => mutable([] as const),\n },\n emptyText: {\n type: String,\n },\n height: {\n type: Number,\n default: 200,\n },\n props: {\n type: definePropType<TreeOptionProps>(Object),\n default: () =>\n mutable({\n children: TreeOptionsEnum.CHILDREN,\n label: TreeOptionsEnum.LABEL,\n disabled: TreeOptionsEnum.DISABLED,\n value: TreeOptionsEnum.KEY,\n class: TreeOptionsEnum.CLASS,\n } as const),\n },\n highlightCurrent: Boolean,\n showCheckbox: Boolean,\n defaultCheckedKeys: {\n type: definePropType<TreeKey[]>(Array),\n default: () => mutable([] as const),\n },\n // Whether checked state of a node not affects its father and\n // child nodes when show-checkbox is true\n checkStrictly: Boolean,\n defaultExpandedKeys: {\n type: definePropType<TreeKey[]>(Array),\n default: () => mutable([] as const),\n },\n indent: {\n type: Number,\n default: 16,\n },\n itemSize,\n icon: {\n type: iconPropType,\n },\n expandOnClickNode: {\n type: Boolean,\n default: true,\n },\n checkOnClickNode: Boolean,\n checkOnClickLeaf: {\n type: Boolean,\n default: true,\n },\n currentNodeKey: {\n type: definePropType<TreeKey>([String, Number]),\n },\n // TODO need to optimization\n accordion: Boolean,\n filterMethod: {\n type: definePropType<FilterMethod>(Function),\n },\n // Performance mode will increase memory usage, but scrolling will be smoother\n perfMode: {\n type: Boolean,\n default: true,\n },\n /**\n * @description always show scrollbar\n */\n scrollbarAlwaysOn: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `TreeNodeProps` instead.\n */\nexport const treeNodeProps = buildProps({\n node: {\n type: definePropType<TreeNode>(Object),\n default: () => mutable(EMPTY_NODE),\n },\n expanded: Boolean,\n checked: Boolean,\n indeterminate: Boolean,\n showCheckbox: Boolean,\n disabled: Boolean,\n current: Boolean,\n hiddenExpandIcon: Boolean,\n itemSize,\n} as const)\n\nexport const treeNodeContentProps = buildProps({\n node: {\n type: definePropType<TreeNode>(Object),\n required: true,\n },\n} as const)\n\n// emits\nexport const NODE_CLICK = 'node-click'\nexport const NODE_DROP = 'node-drop'\nexport const NODE_EXPAND = 'node-expand'\nexport const NODE_COLLAPSE = 'node-collapse'\nexport const CURRENT_CHANGE = 'current-change'\nexport const NODE_CHECK = 'check'\nexport const NODE_CHECK_CHANGE = 'check-change'\nexport const NODE_CONTEXTMENU = 'node-contextmenu'\n\nexport const treeEmits = {\n [NODE_CLICK]: (data: TreeNodeData, node: TreeNode, e: MouseEvent) =>\n data && node && e,\n [NODE_DROP]: (data: TreeNodeData, node: TreeNode, e: DragEvent) =>\n data && node && e,\n [NODE_EXPAND]: (data: TreeNodeData, node: TreeNode) => data && node,\n [NODE_COLLAPSE]: (data: TreeNodeData, node: TreeNode) => data && node,\n [CURRENT_CHANGE]: (data: TreeNodeData, node: TreeNode) => data && node,\n [NODE_CHECK]: (data: TreeNodeData, checkedInfo: CheckedInfo) =>\n data && checkedInfo,\n [NODE_CHECK_CHANGE]: (data: TreeNodeData, checked: boolean) =>\n data && isBoolean(checked),\n [NODE_CONTEXTMENU]: (evt: Event, data: TreeNodeData, node: TreeNode) =>\n evt && data && node,\n}\n\nexport const treeNodeEmits = {\n click: (node: TreeNode, e: MouseEvent) => !!(node && e),\n drop: (node: TreeNode, e: DragEvent) => !!(node && e),\n toggle: (node: TreeNode) => !!node,\n check: (node: TreeNode, checked: CheckboxValueType) =>\n node && isBoolean(checked),\n}\n"],"names":["TreeOptionsEnum","SetOperationEnum"],"mappings":"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"}