@oiij/naive-ui
Version:
Some Composable Functions And Components for Vue 3
48 lines (47 loc) • 2.6 kB
TypeScript
import { DataObject, DataRequestFields, UseDataRequestReturns } from "../../composables/useDataRequest.js";
import { RemoteRequestEmits, RemoteRequestProps } from "../remote-request/index.js";
import { ClassStyle } from "../data-table-plus/index.js";
import { _default } from "./PresetSelect.vue.js";
import { ShallowRef } from "vue";
import { PaginationProps, SelectGroupOption, SelectInst, SelectOption, SelectProps } from "naive-ui";
import { ComponentExposed } from "vue-component-type-helpers";
//#region src/components/preset-select/index.d.ts
type ArrayAwareType<V, T> = V extends null ? null : (V extends any[] ? T[] : T) | null;
type OptionFormat<R extends DataObject = DataObject> = (row: R) => SelectOption | SelectGroupOption | false | undefined | null;
type PresetSelectValue = string | number | (string | number)[] | null;
type PresetSelectFields = DataRequestFields & {
label?: string;
value?: string;
rowKey?: string;
search?: string;
children?: string;
};
type PresetSelectExpose<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = UseDataRequestReturns<P, D, R> & {
selectRef: Readonly<ShallowRef<SelectInst | null>>;
};
type PresetSelectProps<V extends PresetSelectValue, P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = RemoteRequestProps<P, D> & {
value?: V;
fallbackLabel?: string | ((val: string | number) => SelectOption);
multiple?: boolean;
disabled?: boolean;
clearable?: boolean;
debounce?: boolean | number;
optionFormat?: OptionFormat<R>;
fields?: PresetSelectFields;
selectProps?: SelectProps & ClassStyle;
pagination?: Omit<PaginationProps, 'page' | 'pageSize'> & ClassStyle | boolean;
};
type PresetSelectEmits<V extends PresetSelectValue, P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = RemoteRequestEmits<P, D> & {
(e: 'blur', ev: FocusEvent): void;
(e: 'clear'): void;
(e: 'create', label: string): SelectOption;
(e: 'focus', ev: FocusEvent): void;
(e: 'scroll', ev: Event): void;
(e: 'search', value: string): void;
(e: 'update:value', val: V | null, option: SelectOption | SelectOption[] | null, raw: R | R[] | null): void;
(e: 'update:page', page: number): void;
(e: 'update:pageSize', pageSize: number): void;
};
type PresetSelectInst = ComponentExposed<typeof _default>;
//#endregion
export { ArrayAwareType, OptionFormat, PresetSelectEmits, PresetSelectExpose, PresetSelectFields, PresetSelectInst, PresetSelectProps, PresetSelectValue };