@qww0302/use-bitable
Version:
The vue-based PluginBuilder of Bitable.
391 lines (358 loc) • 8.93 kB
TypeScript
import { ComputedRef } from 'vue';
import { GetBitableUrlOptions } from '@lark-base-open/js-sdk';
import { IEventCbCtx } from '@lark-base-open/js-sdk';
import { ITable } from '@lark-base-open/js-sdk';
import type { IView } from '@lark-base-open/js-sdk';
import { MaybeRefOrGetter } from 'vue';
import { Product } from '@lark-base-open/js-sdk';
import { Ref } from 'vue';
import { Selection as Selection_2 } from '@lark-base-open/js-sdk';
import { ShallowRef } from 'vue';
import { ThemeModeType } from '@lark-base-open/js-sdk';
/**
* FileReader options
*/
export declare interface fileReaderOptions<T> {
/**
* Progress event handler
*
* 进度事件处理程序
*
* @param ev
* @returns
*/
onProgress?: (ev: ProgressEvent<FileReader>) => void;
/**
* Error event handler
*
* 错误事件处理程序
*
* @param ev
* @returns
*/
onError?: (ev: ProgressEvent<FileReader>) => void;
/**
* Load event handler
*
* 加载事件处理程序
*
* @param data
* @param resolve
* @returns
*/
load?: (data: ArrayBuffer, resolve: (value: T) => void) => void;
/**
* Is data a shallowRef
*
* data 是否为 shallowRef
*/
shallow?: boolean;
}
/**
* Listen to field add event
*
* 监听字段增加事件
*
* @param table
* @param callback
* @returns
*/
export declare function onFieldAdd(table: MaybeRefOrGetter<ITable | string | null>, callback: (ev: IEventCbCtx<unknown>) => void): {
off: () => void;
pending: Ref<boolean>;
};
/**
* Listen to field delete event
*
* 监听字段删除事件
*
* @param table
* @param callback
* @returns
*/
export declare function onFieldDelete(table: MaybeRefOrGetter<ITable | string | null>, callback: (ev: IEventCbCtx<unknown>) => void): {
off: () => void;
pending: Ref<boolean>;
};
/**
* Listen to field modify event
*
* 监听字段修改事件
*
* @param table
* @param callback
* @returns
*/
export declare function onFieldModify(table: MaybeRefOrGetter<ITable | string | null>, callback: (ev: IEventCbCtx<unknown>) => void): {
off: () => void;
pending: Ref<boolean>;
};
/**
* Listen to record add event
*
* 监听记录添加事件
*
* @param table
* @param callback
* @returns
*/
export declare function onRecordAdd(table: MaybeRefOrGetter<ITable | string | null>, callback: (ev: IEventCbCtx<[recordId: string]>) => void): {
off: () => void;
pending: Ref<boolean>;
};
/**
* Listen to record delete event
*
* 监听记录删除事件
*
* @param table
* @param callback
* @returns
*/
export declare function onRecordDelete(table: MaybeRefOrGetter<ITable | string | null>, callback: (ev: IEventCbCtx<[recordId: string]>) => void): {
off: () => void;
pending: Ref<boolean>;
};
/**
* Listen to record modify event
*
* 监听记录修改事件
*
* @param table
* @param callback
* @returns
*/
export declare function onRecordModify(table: MaybeRefOrGetter<ITable | string | null>, callback: (ev: IEventCbCtx<{
recordId: string;
fieldIds: string[];
}>) => void): {
off: () => void;
pending: Ref<boolean>;
};
/**
* Listen to selection change
*
* 监听选中项变化
*
* @param callback
* @returns
*/
export declare function onSelectionChange(callback: (e: Selection_2) => void): () => void;
/**
* Listen to table add event
*
* 监听表格添加事件
*
* @param callback
* @returns
*/
export declare function onTableAdd(callback: (ev: IEventCbCtx) => void): () => void;
/**
* Listen to table delete event
*
* 监听表格删除事件
*
* @param callback
* @returns
*/
export declare function onTableDelete(callback: (ev: IEventCbCtx) => void): () => void;
/**
* Listen to theme change
*
* 监听主题变化
*
* @param callback
* @returns
*/
export declare function onThemeChange(callback: (theme: ThemeModeType) => void): () => void;
export declare interface SelectHistory {
select: Selection_2;
time: TimeStamp;
}
export declare interface Serializer<T = unknown, R = unknown> {
read: (raw: R) => T;
write: (data: T) => R;
}
export declare type TimeStamp = number;
/**
* Reactive Bitable Url
*
* 响应式 Bitable Url
*
* @param table
* @param view
* @param field
* @param record
*/
export declare function useBitableUrl(table: MaybeRefOrGetter<GetBitableUrlOptions["tableId"]>, view: MaybeRefOrGetter<GetBitableUrlOptions["viewId"]>, field?: MaybeRefOrGetter<GetBitableUrlOptions["fieldId"]>, record?: MaybeRefOrGetter<GetBitableUrlOptions["recordId"]>, options?: useBitableUrlOptions): Ref<string>;
export declare interface useBitableUrlOptions {
/**
* The params will be append to the url
*
* 附加参数
*/
params?: Record<string, string> | (() => Record<string, string>);
/**
* If true, the url will be override by the params when same param key exists
*
* 如果为true,url将会被params覆盖,当存在相同的key时
*
* @default false
*/
override?: boolean;
}
/**
* Reactive Bitable data
*
* 响应式的 Bitable 数据
*
* @param options
* @returns
*/
export declare function useData<T = unknown, R = T>(key: MaybeRefOrGetter<string>, defaults?: T, options?: useDataOptions<T, R>): {
data: Ref<T>;
pending: Ref<boolean>;
};
/**
* useData options
*
* useData 配置项
*/
declare interface useDataOptions<T = unknown, R = unknown> {
/**
* Serialization
*
* 序列化
*/
serializer?: Serializer<T, R>;
/**
* Whether to shallowly watch for changes
*
* 是否浅层监听变化
*
* @default false
*/
shallow?: boolean;
}
/**
* Get current environment
*
* 获取当前环境
*
* @returns
*/
export declare function useEnv(): Ref<Product | null>;
/**
* Use `FileReader`
*
* 使用 `FileReader` API
*
* @see https://use-bitable.vercel.app/zh/references/composables/useFileReader/
* @relation https://developer.mozilla.org/en-US/docs/Web/API/FileReader
* @param file
* @param options
* @returns
*/
export declare function useFileReader<T = string>(file: MaybeRefOrGetter<File | null>, options?: fileReaderOptions<T>): {
data: Ref<T | null | undefined>;
pending: Ref<boolean>;
name: Ref<string>;
};
/**
* Get personalBase token
*
* 获取 personalBase token
*
* @returns
*/
export declare function usePersonalBaseToken(): Ref<string | null>;
/**
* Reactive bitable selection history
*
* 响应式的 `bitable` 选中项历史记录
*
* @param options
* @returns
*/
export declare function useSelectHistory(options?: useSelectHistoryOptions): Ref<{
select: {
baseId: string | null;
tableId: string | null;
viewId: string | null;
fieldId: string | null;
recordId: string | null;
};
time: number;
}[]>;
export declare interface useSelectHistoryOptions {
/**
* Max history length
*
* 最大历史记录长度
*
* @default Infinity
*/
max?: number;
}
/**
* Reactive bitable selection
*
* 响应式的bitable当前选中项
*
* @param options
*/
export declare function useSelection(options?: useSelectionOptions): {
baseId: Ref<string | null>;
recordId: Ref<string | null>;
fieldId: Ref<string | null>;
viewId: Ref<string | null>;
tableId: Ref<string | null>;
};
declare interface useSelectionOptions {
onChanged?: (selection: Selection_2) => void;
}
/**
* Reactive table
*
* 响应式表格
*
* @param tableIdOrName
* @returns
*/
export declare function useTable(tableIdOrName: MaybeRefOrGetter<string | null>): {
table: ShallowRef<ITable | null>;
pending: Ref<boolean>;
};
/**
* Get current tenant ID
*
* 获取当前租户 ID
*
* @returns
*/
export declare function useTenantKey(): Ref<string | null>;
/**
* Reactive bitable theme mode
*
* 响应式的bitable主题模式
*
* @param options
* @returns
*/
export declare function useTheme(options?: useThemeOptions): ComputedRef<ThemeModeType>;
export declare interface useThemeOptions {
onChanged?: (theme: ThemeModeType) => void;
}
/**
* Get current user ID
*
* 获取当前用户 ID
*
* @returns
*/
export declare function useUserId(): Ref<string | null>;
export declare function useView(table: MaybeRefOrGetter<ITable | string | null>, viewId: MaybeRefOrGetter<string | null>): {
view: ShallowRef<IView | null>;
pending: Ref<boolean>;
};
export { }