UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

1 lines 6.04 kB
{"version":3,"file":"symbol.cjs","sources":["../../../components/tree/symbol.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\n// import type { BITree } from '@vexip-ui/utils'\n\nexport type Key = string | number | symbol\nexport type Data = any\nexport type TreeNodeDropType = 'before' | 'inner' | 'after'\nexport type TreeLinkLine = 'dashed' | 'solid' | 'dotted' | 'none'\n\nexport interface TreeNodeKeyConfig {\n id?: string,\n parent?: string,\n label?: string,\n children?: string,\n visible?: string,\n selected?: string,\n expanded?: string,\n disabled?: string,\n checked?: string,\n loading?: string,\n loaded?: string,\n loadFail?: string,\n readonly?: string,\n arrow?: string,\n checkbox?: string,\n selectDisabled?: string,\n expandDisabled?: string,\n checkDisabled?: string,\n isLeaf?: string,\n}\n\nexport const enum DropType {\n BEFORE = 'before',\n INNER = 'inner',\n AFTER = 'after',\n}\n\nexport type TreeNodeProps<D = Data> = {\n id: Key,\n parent?: Key,\n children: TreeNodeProps[],\n visible: boolean,\n selected: boolean,\n expanded: boolean,\n disabled: boolean,\n checked: boolean,\n loading: boolean,\n loaded: boolean,\n loadFail: boolean,\n readonly: boolean,\n arrow: boolean | 'auto',\n checkbox: boolean,\n selectDisabled: boolean,\n expandDisabled: boolean,\n checkDisabled: boolean,\n isLeaf: boolean | 'auto',\n data: D,\n /** @internal */\n partial: boolean,\n /** @internal */\n matched: boolean,\n /** @internal */\n childMatched: boolean,\n /** @internal */\n upperMatched: boolean,\n /** @internal */\n depth: number,\n /** @internal */\n last: boolean,\n /** @internal */\n upstreamLast: boolean[],\n /** @internal */\n lineIndexes: number[],\n}\n\nexport type TreeNodePostCreate<D = Data> = (node: TreeNodeProps<D>) => void\nexport type TreeNodeRenderFn<D = Data> = (params: { data: D, node: TreeNodeProps<D> }) => any\nexport type AsyncLoadFn<D = Data> = (\n data: D,\n node: Readonly<TreeNodeProps<D>>,\n) => void | boolean | Promise<any>\nexport type FilterFn<D = Data> = (data: D, node: TreeNodeProps<D>) => boolean\nexport type NodePropsFn<D = Data> = (data: D, node: TreeNodeProps<D>) => Data\n\nexport interface TreeCommonSlotParams {\n data: Data,\n node: TreeNodeProps,\n depth: number,\n focused: boolean,\n}\n\nexport interface TreeNodeSlotParams extends TreeCommonSlotParams {\n /** @deprecated */\n lineCount: number,\n lineIndexes: number[],\n toggleCheck: (checked?: boolean) => void,\n toggleExpand: (expanded?: boolean) => Promise<void>,\n toggleSelect: (able?: boolean) => Promise<void>,\n}\n\nexport interface TreeNodeInstance {\n el?: HTMLElement | null,\n arrow?: HTMLElement | null,\n node: TreeNodeProps,\n}\n\nexport interface TreeNodeState {\n el?: HTMLElement | null,\n depth: number,\n disabled: boolean,\n readonly: boolean,\n}\n\nexport interface TreeCollapseProps {\n id: symbol,\n placeholder: true,\n type: 'expand' | 'reduce',\n height: number,\n nodes: TreeNodeProps[],\n}\n\nexport interface TreeState {\n arrow: boolean | 'auto',\n checkbox: boolean,\n suffixCheckbox: boolean,\n noCascaded: boolean,\n linkLine: false | TreeLinkLine,\n virtual: boolean,\n labelKey: string,\n draggable: boolean,\n floorSelect: boolean,\n renderer: TreeNodeRenderFn,\n prefixRenderer: TreeNodeRenderFn,\n suffixRenderer: TreeNodeRenderFn,\n arrowIcon: Record<string, any>,\n blockEffect: boolean,\n dragging: boolean,\n boundAsyncLoad: boolean,\n nodeStates: Map<Key, TreeNodeState>,\n expanding: boolean,\n keepSelected: boolean,\n multiple: boolean,\n getParentNode(node: TreeNodeProps): TreeNodeProps | null,\n updateVisibleNodeEls(): void,\n computeCheckedState(originNode: TreeNodeProps, able: boolean): void,\n handleNodeClick(node: TreeNodeProps): void,\n handleNodeSelect(node: TreeNodeProps): void,\n handleNodeCancel(node: TreeNodeProps): void,\n handleNodeExpand(node: TreeNodeProps): void,\n handleNodeReduce(node: TreeNodeProps): void,\n handleNodeContextmenu(event: MouseEvent, node: TreeNodeProps): void,\n handleAsyncLoad(node: TreeNodeProps): Promise<boolean>,\n handleNodeDragStart(nodeInstance: TreeNodeInstance): void,\n handleNodeDragOver(nodeInstance: TreeNodeInstance, event: DragEvent): void,\n handleNodeDrop(nodeInstance: TreeNodeInstance): void,\n handleNodeDragEnd(nodeInstance: TreeNodeInstance): void,\n handleHittingChange(type: 'up' | 'down'): void,\n handleNodeHitting(nodeEl?: HTMLElement | null): void,\n handleLabelClick(node: TreeNodeProps): void,\n}\n\nexport interface TreeSlots {\n node?: (params: TreeNodeSlotParams) => any,\n arrow?: (params: TreeCommonSlotParams) => any,\n label?: (params: TreeCommonSlotParams) => any,\n prefix?: (params: TreeCommonSlotParams) => any,\n suffix?: (params: TreeCommonSlotParams) => any,\n empty?: () => any,\n}\n\nexport const TREE_STATE = '__VXP_TREE_STATE' as unknown as InjectionKey<TreeState>\nexport const TREE_NODE_STATE = '__VXP_TREE_NODE_STATE' as unknown as InjectionKey<TreeNodeState>\n\nexport const defaultKeyConfig: Required<TreeNodeKeyConfig> = {\n id: 'id',\n parent: 'parent',\n label: 'label',\n children: 'children',\n visible: 'visible',\n selected: 'selected',\n expanded: 'expanded',\n disabled: 'disabled',\n checked: 'checked',\n loading: 'loading',\n loaded: 'loaded',\n loadFail: 'loadFail',\n readonly: 'readonly',\n arrow: 'arrow',\n checkbox: 'checkbox',\n selectDisabled: 'selectDisabled',\n expandDisabled: 'expandDisabled',\n checkDisabled: 'checkDisabled',\n isLeaf: 'isLeaf',\n}\n"],"names":["DropType","TREE_STATE","TREE_NODE_STATE","defaultKeyConfig"],"mappings":"gFA8BkB,IAAAA,GAAAA,IAChBA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QAHQA,IAAAA,GAAA,CAAA,CAAA,EA2IX,MAAMC,EAAa,mBACbC,EAAkB,wBAElBC,EAAgD,CAC3D,GAAI,KACJ,OAAQ,SACR,MAAO,QACP,SAAU,WACV,QAAS,UACT,SAAU,WACV,SAAU,WACV,SAAU,WACV,QAAS,UACT,QAAS,UACT,OAAQ,SACR,SAAU,WACV,SAAU,WACV,MAAO,QACP,SAAU,WACV,eAAgB,iBAChB,eAAgB,iBAChB,cAAe,gBACf,OAAQ,QACV"}