vite-uni-dev-tool
Version:
vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试
126 lines (114 loc) • 3.24 kB
text/typescript
import type { CSSProperties } from 'vue';
export type JsonPrettyNodeProps = {
data: any;
rootPath: string;
indent: number;
showLength: boolean;
showDoubleQuotes: boolean;
renderNodeKey: any;
renderNodeValue: any;
};
export interface NodeDataType extends JSONFlattenReturnType {
id: number;
}
export interface JSONFlattenOptions {
key?: string;
index?: number;
showComma: boolean;
length: number;
type:
| 'content'
| 'objectStart'
| 'objectEnd'
| 'objectCollapsed'
| 'arrayStart'
| 'arrayEnd'
| 'arrayCollapsed';
}
export type JSONDataType =
| string
| number
| boolean
| unknown[]
| Record<string, unknown>
| null;
export interface JSONFlattenReturnType extends JSONFlattenOptions {
content: string | number | null | boolean;
level: number;
path: string;
}
export type StyleValue =
| false
| null
| undefined
| string
| CSSProperties
| Array<StyleValue>;
// 定义 Props 类型
type SelectableType = 'single' | 'multiple' | null;
export type TreeNodeProps = Partial<{
data: any;
indent: number;
showLength: boolean;
showDoubleQuotes: boolean;
selectableType: SelectableType;
showSelectController: boolean;
showLine: boolean;
showLineNumber: boolean;
showNodeActions: boolean;
selectOnClickNode: boolean;
highlightSelectedNode: boolean;
showIcon: boolean;
theme: string;
showKeyValueSpace: boolean;
editable: boolean;
editableTrigger: string;
node: NodeDataType;
checked: boolean;
collapsed: boolean;
style: CSSProperties;
fontSize: string;
onNodeClick: (node: NodeDataType) => void;
onNodeMouseover: (node: NodeDataType) => void;
onBracketsClick: (collapsed: boolean, node: NodeDataType) => void;
onIconClick: (collapsed: boolean, node: NodeDataType) => void;
onValueChange: (value: boolean, path: string) => void;
onSelectedChange: (node: NodeDataType) => void;
}> &
TreeNodeRequiredProps;
export type TreeNodeRequiredProps = {
node: NodeDataType;
rootPath: string;
nodeSelectable: (node: NodeDataType) => boolean;
};
export type TreeRequired = TreeNodeRequiredProps & {};
export type Tree = Partial<TreeNodeProps> &
Partial<
{
deep: number;
collapsedNodeLength: number;
virtual: boolean;
itemHeight: number;
height: number;
selectedValue: string | Array<any>;
collapsedOnClickBrackets: boolean;
style: CSSProperties;
pathCollapsible: (node: NodeDataType) => boolean;
/** 超过行数将会自动启用虚拟列表 */
autoVirtualRow: number;
} & TreeRequired
>;
export interface ScrollEvent {
detail: {
scrollLeft: number; // 横向滚动距离
scrollTop: number; // 纵向滚动距离
scrollHeight: number; // 可滚动区域的高度
scrollWidth: number; // 可滚动区域的宽度
deltaX: number; // 横向滚动增量
deltaY: number; // 纵向滚动增量
};
target: EventTarget; // 事件源组件
currentTarget: EventTarget; // 当前组件
timeStamp: number; // 事件触发时间戳
type: string; // 事件类型,这里是 'scroll'
}