///
declare namespace Api {
interface Pagination {
rnum: number;
info: {
current: number;
total: number;
};
format: {
limit: number;
offset: number;
};
}
interface Paging {
loadType: 'init' | 'loadMore';
pagination: Pagination;
}
interface ReqData {
url: string;
params?: any;
alert?: boolean;
}
interface Response {
data: {
message: string;
list: any[];
manager: any[];
};
status: number;
}
interface Fullfilled {
response: Api.Response;
reqData: Api.ReqData;
}
interface InfiFullfilled {
response: Api.Response;
reqData: Api.ReqData;
paging: Api.Paging;
}
}
export declare namespace M_Auto {
type Data = {
title: string;
value: T & {
rnum: number;
};
selected: boolean;
};
interface State {
choice: {
isAllCheck: number;
include: Data[];
exclude: Data[];
};
data: Data[];
loading: boolean;
searchText: string;
pagination: Api.Pagination;
}
type Choice = {
isAllCheck: number;
include: Data[];
exclude: Data[];
};
type Patch = {
choice: Choice;
searchText: string;
data: Data[];
};
type Config = {
choice: Choice;
onChange: (payload: Patch) => void;
searchText: string;
};
type Select = {
data: Data[];
item: Data;
check: number;
};
type Check = {
data: Data[];
item: Data;
choice: Choice;
check: number;
};
interface Context {
data: Data[];
config: Config;
disabled: boolean;
target: React.RefObject | null;
allCheck?: boolean;
focus: boolean;
loading?: boolean;
clickInside?: boolean;
setFocus: (focus: boolean) => void;
}
type Actions = {
type: 'choice';
value: Choice;
} | {
type: 'searchText';
value: string;
} | {
type: 'data';
value: Data[];
} | {
type: 'patch';
value: Patch;
} | {
type: 'init';
value: {
loadType: 'init' | 'loadMore';
searchText?: string;
};
} | {
type: 'paging';
value: {
data: T[];
pagination: Api.Pagination;
};
};
}
export {};