@oiij/naive-ui
Version:
Som Composable Functions And Components for Vue 3
55 lines (54 loc) • 2.2 kB
TypeScript
import { BadgeProps, ButtonProps, DataTableColumns, ModalProps } from 'naive-ui';
import { TableSelectionColumn } from 'naive-ui/es/data-table/src/interface';
import { Ref } from 'vue';
import { ClassStyle } from '../data-table-plus';
import { RObject } from '../remote-request/index';
export { default as NPresetPicker } from './PresetPicker.vue';
export type PresetPickerValue = string | number | (string | number)[] | null;
export type PresetPickerExposeRefs<R extends RObject = RObject> = {
showModalFlag: Ref<boolean, boolean>;
checkedRowKeys: Ref<(string | number)[], (string | number)[]>;
checkedRows: Ref<R[], R[]>;
columns: DataTableColumns<any>;
};
export type PresetPickerExposeActions<R extends RObject = RObject> = {
showModal: () => void;
updateCheckedRowKeysEffect: (keys: (string | number)[], rows: (R | undefined)[], meta: {
row: R | undefined;
action: 'check' | 'uncheck' | 'checkAll' | 'uncheckAll';
}, currentData: R[]) => void;
clickRowEffect: (row: R) => void;
clearValue: () => void;
setCheckedRowKeys: (keys: (string | number)[]) => void;
setCheckedRows: (rows: R[]) => void;
};
export type PresetPickerProps<V extends PresetPickerValue, R extends RObject = RObject> = {
value?: V;
fallbackLabel?: string | ((val: string | number) => string);
multiple?: boolean;
disabled?: boolean;
clearable?: boolean;
placeholder?: string;
type?: ButtonProps['type'];
columns?: DataTableColumns<R>;
selectionOptions?: TableSelectionColumn;
fields?: {
label?: string;
value?: string;
};
buttonProps?: ButtonProps & ClassStyle;
clearButtonProps?: ButtonProps & ClassStyle;
badgeProps?: BadgeProps & ClassStyle;
modalProps?: ModalProps & ClassStyle;
};
export type PresetPickerEmits<V extends PresetPickerValue, R extends RObject = RObject> = {
(e: 'update:value', val: V | null, raw: R | R[] | null): void;
(e: 'afterEnter'): void;
(e: 'afterLeave'): void;
(e: 'esc'): void;
(e: 'maskClick'): void;
(e: 'update:show', value: boolean): void;
(e: 'close'): void;
(e: 'negativeClick'): void;
(e: 'positiveClick'): void;
};