{"version":3,"file":"symbol.mjs","sources":["../../../components/tree/symbol.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\r\n// import type { BITree } from '@vexip-ui/utils'\r\n\r\nexport type Key = string | number | symbol\r\nexport type Data = any\r\nexport type TreeNodeDropType = 'before' | 'inner' | 'after'\r\nexport type TreeLinkLine = 'dashed' | 'solid' | 'dotted' | 'none'\r\n\r\nexport interface TreeNodeKeyConfig {\r\n  id?: string,\r\n  parent?: string,\r\n  label?: string,\r\n  children?: string,\r\n  visible?: string,\r\n  selected?: string,\r\n  expanded?: string,\r\n  disabled?: string,\r\n  checked?: string,\r\n  loading?: string,\r\n  loaded?: string,\r\n  loadFail?: string,\r\n  readonly?: string,\r\n  arrow?: string,\r\n  checkbox?: string,\r\n  selectDisabled?: string,\r\n  expandDisabled?: string,\r\n  checkDisabled?: string,\r\n  isLeaf?: string,\r\n}\r\n\r\nexport const enum DropType {\r\n  BEFORE = 'before',\r\n  INNER = 'inner',\r\n  AFTER = 'after',\r\n}\r\n\r\nexport type TreeNodeProps<D = Data> = {\r\n  id: Key,\r\n  parent?: Key,\r\n  children: TreeNodeProps[],\r\n  visible: boolean,\r\n  selected: boolean,\r\n  expanded: boolean,\r\n  disabled: boolean,\r\n  checked: boolean,\r\n  loading: boolean,\r\n  loaded: boolean,\r\n  loadFail: boolean,\r\n  readonly: boolean,\r\n  arrow: boolean | 'auto',\r\n  checkbox: boolean,\r\n  selectDisabled: boolean,\r\n  expandDisabled: boolean,\r\n  checkDisabled: boolean,\r\n  isLeaf: boolean | 'auto',\r\n  data: D,\r\n  /** @internal */\r\n  partial: boolean,\r\n  /** @internal */\r\n  matched: boolean,\r\n  /** @internal */\r\n  childMatched: boolean,\r\n  /** @internal */\r\n  upperMatched: boolean,\r\n  /** @internal */\r\n  depth: number,\r\n  /** @internal */\r\n  last: boolean,\r\n  /** @internal */\r\n  upstreamLast: boolean[],\r\n  /** @internal */\r\n  lineIndexes: number[],\r\n}\r\n\r\nexport type TreeNodePostCreate<D = Data> = (node: TreeNodeProps<D>) => void\r\nexport type TreeNodeRenderFn<D = Data> = (params: { data: D, node: TreeNodeProps<D> }) => any\r\nexport type AsyncLoadFn<D = Data> = (\r\n  data: D,\r\n  node: Readonly<TreeNodeProps<D>>,\r\n) => void | boolean | Promise<any>\r\nexport type FilterFn<D = Data> = (data: D, node: TreeNodeProps<D>) => boolean\r\nexport type NodePropsFn<D = Data> = (data: D, node: TreeNodeProps<D>) => Data\r\n\r\nexport interface TreeCommonSlotParams {\r\n  data: Data,\r\n  node: TreeNodeProps,\r\n  depth: number,\r\n  focused: boolean,\r\n}\r\n\r\nexport interface TreeNodeSlotParams extends TreeCommonSlotParams {\r\n  /** @deprecated */\r\n  lineCount: number,\r\n  lineIndexes: number[],\r\n  toggleCheck: (checked?: boolean) => void,\r\n  toggleExpand: (expanded?: boolean) => Promise<void>,\r\n  toggleSelect: (able?: boolean) => Promise<void>,\r\n}\r\n\r\nexport interface TreeNodeInstance {\r\n  el?: HTMLElement | null,\r\n  arrow?: HTMLElement | null,\r\n  node: TreeNodeProps,\r\n}\r\n\r\nexport interface TreeNodeState {\r\n  el?: HTMLElement | null,\r\n  depth: number,\r\n  disabled: boolean,\r\n  readonly: boolean,\r\n}\r\n\r\nexport interface TreeCollapseProps {\r\n  id: symbol,\r\n  placeholder: true,\r\n  type: 'expand' | 'reduce',\r\n  height: number,\r\n  nodes: TreeNodeProps[],\r\n}\r\n\r\nexport interface TreeState {\r\n  arrow: boolean | 'auto',\r\n  checkbox: boolean,\r\n  suffixCheckbox: boolean,\r\n  noCascaded: boolean,\r\n  linkLine: false | TreeLinkLine,\r\n  virtual: boolean,\r\n  labelKey: string,\r\n  draggable: boolean,\r\n  floorSelect: boolean,\r\n  renderer: TreeNodeRenderFn,\r\n  prefixRenderer: TreeNodeRenderFn,\r\n  suffixRenderer: TreeNodeRenderFn,\r\n  arrowIcon: Record<string, any>,\r\n  blockEffect: boolean,\r\n  dragging: boolean,\r\n  boundAsyncLoad: boolean,\r\n  nodeStates: Map<Key, TreeNodeState>,\r\n  expanding: boolean,\r\n  keepSelected: boolean,\r\n  multiple: boolean,\r\n  getParentNode(node: TreeNodeProps): TreeNodeProps | null,\r\n  updateVisibleNodeEls(): void,\r\n  computeCheckedState(originNode: TreeNodeProps, able: boolean): void,\r\n  handleNodeClick(node: TreeNodeProps): void,\r\n  handleNodeSelect(node: TreeNodeProps): void,\r\n  handleNodeCancel(node: TreeNodeProps): void,\r\n  handleNodeExpand(node: TreeNodeProps): void,\r\n  handleNodeReduce(node: TreeNodeProps): void,\r\n  handleNodeContextmenu(event: MouseEvent, node: TreeNodeProps): void,\r\n  handleAsyncLoad(node: TreeNodeProps): Promise<boolean>,\r\n  handleNodeDragStart(nodeInstance: TreeNodeInstance): void,\r\n  handleNodeDragOver(nodeInstance: TreeNodeInstance, event: DragEvent): void,\r\n  handleNodeDrop(nodeInstance: TreeNodeInstance): void,\r\n  handleNodeDragEnd(nodeInstance: TreeNodeInstance): void,\r\n  handleHittingChange(type: 'up' | 'down'): void,\r\n  handleNodeHitting(nodeEl?: HTMLElement | null): void,\r\n  handleLabelClick(node: TreeNodeProps): void,\r\n}\r\n\r\nexport interface TreeSlots {\r\n  node?: (params: TreeNodeSlotParams) => any,\r\n  arrow?: (params: TreeCommonSlotParams) => any,\r\n  label?: (params: TreeCommonSlotParams) => any,\r\n  prefix?: (params: TreeCommonSlotParams) => any,\r\n  suffix?: (params: TreeCommonSlotParams) => any,\r\n  empty?: () => any,\r\n}\r\n\r\nexport const TREE_STATE = '__VXP_TREE_STATE' as unknown as InjectionKey<TreeState>\r\nexport const TREE_NODE_STATE = '__VXP_TREE_NODE_STATE' as unknown as InjectionKey<TreeNodeState>\r\n\r\nexport const defaultKeyConfig: Required<TreeNodeKeyConfig> = {\r\n  id: 'id',\r\n  parent: 'parent',\r\n  label: 'label',\r\n  children: 'children',\r\n  visible: 'visible',\r\n  selected: 'selected',\r\n  expanded: 'expanded',\r\n  disabled: 'disabled',\r\n  checked: 'checked',\r\n  loading: 'loading',\r\n  loaded: 'loaded',\r\n  loadFail: 'loadFail',\r\n  readonly: 'readonly',\r\n  arrow: 'arrow',\r\n  checkbox: 'checkbox',\r\n  selectDisabled: 'selectDisabled',\r\n  expandDisabled: 'expandDisabled',\r\n  checkDisabled: 'checkDisabled',\r\n  isLeaf: 'isLeaf',\r\n}\r\n"],"names":["DropType","TREE_STATE","TREE_NODE_STATE","defaultKeyConfig"],"mappings":"AA8BkB,IAAAA,sBAAAA,OAChBA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SAHQA,IAAAA,KAAA,CAAA,CAAA;AA2IX,MAAMC,IAAa,oBACbC,IAAkB,yBAElBC,IAAgD;AAAA,EAC3D,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,QAAQ;AACV;"}