UNPKG

@qww0302/use-bitable

Version:

The vue-based PluginBuilder of Bitable.

391 lines (358 loc) 8.93 kB
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 { }