yhui-yuanhuan
Version:
A Component Library for Vue 3 based on element-plus
61 lines (60 loc) • 1.97 kB
TypeScript
import { type Ref, VNode } from 'vue';
export declare const actionsColumnProp = "_@_actions";
type VNodeWithSeenChildren = VNode & {
_seenChildren?: VNode[];
};
type Column = {
type: string;
prop: string;
label: string;
checked: boolean;
disabled: boolean;
children?: Column[];
};
type SettingDataConstructorParam = Partial<SettingData> & Pick<SettingData, 'slotItems'>;
/**
* 表格设置
*
* 有两个`map`:一个在`static`中,`new`时使用;一个在`storage`中,`retrieve`时使用
*
*/
export declare class SettingData {
columns: Column[];
slotItems: VNode[];
purifiedSlotItems: VNode[];
propEnum: string[];
id: string;
static key: string;
/**
* see getInstance
*/
private constructor();
static getInstance(param: SettingDataConstructorParam): SettingData;
private validateProp;
purifySlotItems(slotItems: VNode[]): VNodeWithSeenChildren[];
generateColumns(purifiedSlotItems: VNode[]): {
type: any;
prop: any;
label: any;
checked: boolean;
disabled: boolean;
}[];
setColumns(): void;
clear(): void;
watch(theRef?: Ref<SettingData>): void;
store(): void;
static clear(): void;
/**
* 获取表格设置
* @param option
* @returns 无id,返回所有设置,需要自行 new SettingData(item)
* @returns 有id,返回对应设置
* @returns 有id和columns,返回合并的设置 columns:[...{...columnInOption,...columnInStorage}]
* columns 由 option.columns.map 合并 storage 中的设置
*/
static unstore(): Record<string, object> | null;
static unstore(option: Pick<SettingData, 'id' | 'slotItems'>): SettingData | null;
static unstore(option: Pick<SettingData, 'id' | 'slotItems' | 'columns'>): SettingData | null;
static unstore(option: SettingDataConstructorParam): SettingData | Record<string, Partial<SettingData>> | null;
}
export {};