@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 6.52 kB
Source Map (JSON)
{"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;"}