{"version":3,"file":"props.cjs","sources":["../../../../../../packages/vue-components/vc-tree/src/props.ts"],"sourcesContent":["import type { EventHandler, Key } from '@antdv/types';\nimport type { CSSProperties, ExtractPropTypes, PropType } from 'vue';\nimport type { NodeDragEventParams, NodeMouseEventHandler, NodeMouseEventParams } from './contextTypes';\nimport type {\n  BasicDataNode,\n  DataNode,\n  Direction,\n  EventDataNode,\n  FieldNames,\n  FlattenNode,\n} from './interface';\nimport type { DraggableConfig } from './Tree';\nimport { PropTypes } from '@antdv/utils';\n\nexport interface CheckInfo {\n  event: 'check';\n  node: EventDataNode;\n  checked: boolean;\n  nativeEvent: MouseEvent;\n  checkedNodes: DataNode[];\n  checkedNodesPositions?: Array<{ node: DataNode; pos: string }>;\n  halfCheckedKeys?: Key[];\n}\n\nexport const treeNodeProps = {\n  eventKey: [String, Number], // Pass by parent `cloneElement`\n  prefixCls: String,\n\n  // By parent\n  // expanded: { type: Boolean, default: undefined },\n  // selected: { type: Boolean, default: undefined },\n  // checked: { type: Boolean, default: undefined },\n  // loaded: { type: Boolean, default: undefined },\n  // loading: { type: Boolean, default: undefined },\n  // halfChecked: { type: Boolean, default: undefined },\n  // dragOver: { type: Boolean, default: undefined },\n  // dragOverGapTop: { type: Boolean, default: undefined },\n  // dragOverGapBottom: { type: Boolean, default: undefined },\n  // pos: String,\n\n  title: PropTypes.any,\n  /** New added in Tree for easy data access */\n  data: { type: Object as PropType<DataNode>, default: undefined as DataNode },\n  parent: { type: Object as PropType<DataNode>, default: undefined as DataNode },\n\n  isStart: { type: Array as PropType<boolean[]> },\n  isEnd: { type: Array as PropType<boolean[]> },\n  active: { type: Boolean, default: undefined },\n  onMousemove: { type: Function as PropType<EventHandler> },\n\n  // By user\n  isLeaf: { type: Boolean, default: undefined },\n  checkable: { type: Boolean, default: undefined },\n  selectable: { type: Boolean, default: undefined },\n  disabled: { type: Boolean, default: undefined },\n  disableCheckbox: { type: Boolean, default: undefined },\n  icon: PropTypes.any,\n  switcherIcon: PropTypes.any,\n  domRef: { type: Function as PropType<(arg: any) => void> },\n};\n\nexport type TreeNodeProps = Partial<ExtractPropTypes<typeof treeNodeProps>>;\n\nexport const nodeListProps = {\n  prefixCls: { type: String as PropType<string> },\n  // data: { type: Array as PropType<FlattenNode[]> },\n  motion: { type: Object as PropType<any> },\n  focusable: { type: Boolean as PropType<boolean> },\n  activeItem: { type: Object as PropType<FlattenNode> },\n  focused: { type: Boolean as PropType<boolean> },\n  tabindex: { type: Number as PropType<number> },\n  checkable: { type: Boolean as PropType<boolean> },\n  selectable: { type: Boolean as PropType<boolean> },\n  disabled: { type: Boolean as PropType<boolean> },\n\n  // expandedKeys: { type: Array as PropType<Key[]> },\n  // selectedKeys: { type: Array as PropType<Key[]> },\n  // checkedKeys: { type: Array as PropType<Key[]> },\n  // loadedKeys: { type: Array as PropType<Key[]> },\n  // loadingKeys: { type: Array as PropType<Key[]> },\n  // halfCheckedKeys: { type: Array as PropType<Key[]> },\n  // keyEntities: { type: Object as PropType<Record<Key, DataEntity<DataNode>>> },\n\n  // dragging: { type: Boolean as PropType<boolean> },\n  // dragOverNodeKey: { type: [String, Number] as PropType<Key> },\n  // dropPosition: { type: Number as PropType<number> },\n\n  // Virtual list\n  height: { type: Number as PropType<number> },\n  itemHeight: { type: Number as PropType<number> },\n  virtual: { type: Boolean as PropType<boolean> },\n\n  onScroll: { type: Function as PropType<EventHandler> },\n  onKeydown: { type: Function as PropType<EventHandler> },\n  onFocus: { type: Function as PropType<(e: FocusEvent) => void> },\n  onBlur: { type: Function as PropType<(e: FocusEvent) => void> },\n  onActiveChange: { type: Function as PropType<(key: Key) => void> },\n  onContextmenu: { type: Function as PropType<EventHandler> },\n\n  onListChangeStart: { type: Function as PropType<() => void> },\n  onListChangeEnd: { type: Function as PropType<() => void> },\n};\n\nexport type NodeListProps = Partial<ExtractPropTypes<typeof nodeListProps>>;\n\nexport interface AllowDropOptions<TreeDataType extends BasicDataNode = DataNode> {\n  dragNode: EventDataNode;\n  dropNode: TreeDataType;\n  dropPosition: -1 | 0 | 1;\n}\nexport type AllowDrop<TreeDataType extends BasicDataNode = DataNode> = (\n  options: AllowDropOptions<TreeDataType>,\n) => boolean;\n\nexport type DraggableFn = (node: DataNode) => boolean;\nexport type ExpandAction = false | 'click' | 'doubleclick' | 'dblclick';\nexport function treeProps() {\n  return {\n    prefixCls: String,\n    focusable: { type: Boolean, default: undefined },\n    activeKey: [Number, String] as PropType<Key>,\n    tabindex: Number,\n    children: PropTypes.any,\n    treeData: { type: Array as PropType<DataNode[]> }, // Generate treeNode by children\n    fieldNames: { type: Object as PropType<FieldNames> },\n    showLine: {\n      type: [Boolean, Object] as PropType<boolean | { showLeafIcon: boolean }>,\n      default: undefined,\n    },\n    showIcon: { type: Boolean, default: undefined },\n    icon: PropTypes.any,\n    selectable: { type: Boolean, default: undefined },\n    expandAction: [String, Boolean] as PropType<ExpandAction>,\n    disabled: { type: Boolean, default: undefined },\n    multiple: { type: Boolean, default: undefined },\n    checkable: { type: Boolean, default: undefined },\n    checkStrictly: { type: Boolean, default: undefined },\n    draggable: { type: [Function, Boolean, Object] as PropType<DraggableFn | boolean | DraggableConfig> },\n    defaultExpandParent: { type: Boolean, default: undefined },\n    autoExpandParent: { type: Boolean, default: undefined },\n    defaultExpandAll: { type: Boolean, default: undefined },\n    defaultExpandedKeys: { type: Array as PropType<Key[]> },\n    expandedKeys: { type: Array as PropType<Key[]> },\n    defaultCheckedKeys: { type: Array as PropType<Key[]> },\n    checkedKeys: {\n      type: [Object, Array] as PropType<Key[] | { checked: Key[]; halfChecked: Key[] }>,\n    },\n    defaultSelectedKeys: { type: Array as PropType<Key[]> },\n    selectedKeys: { type: Array as PropType<Key[]> },\n    allowDrop: { type: Function as PropType<AllowDrop> },\n\n    dropIndicatorRender: {\n      type: Function as PropType<\n        (props: {\n          dropPosition: -1 | 0 | 1;\n          dropLevelOffset: number;\n          indent: number;\n          prefixCls: string;\n          direction: Direction;\n        }) => any\n      >,\n    },\n    onFocus: { type: Function as PropType<(e: FocusEvent) => void> },\n    onBlur: { type: Function as PropType<(e: FocusEvent) => void> },\n    onKeydown: { type: Function as PropType<EventHandler> },\n    onContextmenu: { type: Function as PropType<EventHandler> },\n    onClick: { type: Function as PropType<NodeMouseEventHandler> },\n    onDblclick: { type: Function as PropType<NodeMouseEventHandler> },\n    onScroll: { type: Function as PropType<EventHandler> },\n    onExpand: {\n      type: Function as PropType<\n        (\n          expandedKeys: Key[],\n          info: {\n            node: EventDataNode;\n            expanded: boolean;\n            nativeEvent: MouseEvent;\n          },\n        ) => void\n      >,\n    },\n    onCheck: {\n      type: Function as PropType<\n        (checked: { checked: Key[]; halfChecked: Key[] } | Key[], info: CheckInfo) => void\n      >,\n    },\n    onSelect: {\n      type: Function as PropType<\n        (\n          selectedKeys: Key[],\n          info: {\n            event: 'select';\n            selected: boolean;\n            node: EventDataNode;\n            selectedNodes: DataNode[];\n            nativeEvent: MouseEvent;\n          },\n        ) => void\n      >,\n    },\n    onLoad: {\n      type: Function as PropType<\n        (\n          loadedKeys: Key[],\n          info: {\n            event: 'load';\n            node: EventDataNode;\n          },\n        ) => void\n      >,\n    },\n    loadData: { type: Function as PropType<(treeNode: EventDataNode) => Promise<any>> },\n    loadedKeys: { type: Array as PropType<Key[]> },\n    onMouseenter: { type: Function as PropType<(info: NodeMouseEventParams) => void> },\n    onMouseleave: { type: Function as PropType<(info: NodeMouseEventParams) => void> },\n    onRightClick: {\n      type: Function as PropType<(info: { event: MouseEvent; node: EventDataNode }) => void>,\n    },\n    onDragstart: { type: Function as PropType<(info: NodeDragEventParams) => void> },\n    onDragenter: {\n      type: Function as PropType<(info: NodeDragEventParams & { expandedKeys: Key[] }) => void>,\n    },\n    onDragover: { type: Function as PropType<(info: NodeDragEventParams) => void> },\n    onDragleave: { type: Function as PropType<(info: NodeDragEventParams) => void> },\n    onDragend: { type: Function as PropType<(info: NodeDragEventParams) => void> },\n    onDrop: {\n      type: Function as PropType<\n        (\n          info: NodeDragEventParams & {\n            dragNode: EventDataNode;\n            dragNodesKeys: Key[];\n            dropPosition: number;\n            dropToGap: boolean;\n          },\n        ) => void\n      >,\n    },\n    /**\n     * Used for `rc-tree-select` only.\n     * Do not use in your production code directly since this will be refactor.\n     */\n    onActiveChange: { type: Function as PropType<(key: Key) => void> },\n    filterTreeNode: { type: Function as PropType<(treeNode: EventDataNode) => boolean> },\n    motion: PropTypes.any,\n    switcherIcon: PropTypes.any,\n\n    // Virtual List\n    height: Number,\n    itemHeight: Number,\n    virtual: { type: Boolean, default: undefined },\n\n    // direction for drag logic\n    direction: { type: String as PropType<Direction> },\n\n    rootClassName: String,\n    rootStyle: Object as PropType<CSSProperties>,\n  };\n}\n\nexport type TreeProps = Partial<ExtractPropTypes<ReturnType<typeof treeProps>>>;\n"],"names":["PropTypes"],"mappings":"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"}