127 lines
9.2 KiB
TypeScript
127 lines
9.2 KiB
TypeScript
import React from 'react';
|
|
import { Aspect, CheckerType, EntityDict, OpRecord } from 'oak-domain/lib/types';
|
|
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|
import { BasicFeatures } from './features';
|
|
import { NamedFilterItem, NamedSorterItem } from './types/NamedCondition';
|
|
import { Feature } from './types/Feature';
|
|
import { DataOption, ComponentData, ComponentProps, OakComponentOption, OakNavigateToParameters } from './types/Page';
|
|
import { MessageProps } from './types/Message';
|
|
import { NotificationProps } from './types/Notification';
|
|
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
|
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
|
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, AsyncContext<ED>>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED> & FD): {
|
|
new (props: ComponentProps<ED, T, TProperty>): {
|
|
features: BasicFeatures<ED> & FD;
|
|
oakOption: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>;
|
|
oakLifetime: string;
|
|
isReachBottom: boolean;
|
|
methodProps: Record<string, Function>;
|
|
defaultProperties: Record<string, any>;
|
|
iAmThePage(): boolean;
|
|
isMobile(): boolean;
|
|
supportPullDownRefresh(): boolean;
|
|
componentDidMount(): Promise<void>;
|
|
componentWillUnmount(): void;
|
|
componentDidUpdate(prevProps: Record<string, any>, prevState: Record<string, any>): Promise<void>;
|
|
render(): React.ReactNode;
|
|
oakFullpath: string;
|
|
featuresSubscribed: Array<{
|
|
name: string;
|
|
callback: (args?: any) => void;
|
|
unsubHandler?: () => void;
|
|
}>;
|
|
addFeatureSub(name: string, callback: (args?: any) => void): void;
|
|
removeFeatureSub(name: string, callback: (args?: any) => void): void;
|
|
unsubscribeAll(): void;
|
|
subscribeAll(): void;
|
|
save(key: string, item: any): Promise<void>;
|
|
load(key: string): Promise<any>;
|
|
clear(key?: string): Promise<void>;
|
|
setNotification(data: NotificationProps): void;
|
|
consumeNotification(): NotificationProps | undefined;
|
|
setMessage(data: MessageProps): Promise<void>;
|
|
consumeMessage(): MessageProps | undefined;
|
|
reRender(extra?: Record<string, any>): void;
|
|
navigateTo<T2 extends keyof ED>(options: {
|
|
url: string;
|
|
} & OakNavigateToParameters<ED, T2>, state?: Record<string, any>, disableNamespace?: boolean): Promise<void>;
|
|
navigateBack(delta?: number): Promise<void>;
|
|
redirectTo<T2 extends keyof ED>(options: {
|
|
url: string;
|
|
} & OakNavigateToParameters<ED, T2>, state?: Record<string, any>, disableNamespace?: boolean): Promise<void>;
|
|
addItem<T_1 extends keyof ED>(data: Omit<ED[T_1]["CreateSingle"]["data"], "id"> & {
|
|
id?: string;
|
|
}, path?: string): string;
|
|
addItems<T_1 extends keyof ED>(data: (Omit<ED[T_1]["CreateSingle"]["data"], "id"> & {
|
|
id?: string;
|
|
})[], path?: string): string[];
|
|
removeItem(id: string, path?: string): void;
|
|
removeItems(ids: string[], path?: string): void;
|
|
updateItem<T_1 extends keyof ED>(data: ED[T_1]["Update"]["data"], id: string, action?: ED[T_1]["Action"] | undefined, path?: string): void;
|
|
updateItems<T_1 extends keyof ED>(data: ED[T_1]["Update"]["data"], ids: string[], action?: ED[T_1]["Action"] | undefined, path?: string): void;
|
|
recoverItem(id: string, path?: string): void;
|
|
recoverItems(ids: string[], path?: string): void;
|
|
resetItem(id: string, path?: string): void;
|
|
update<T_1 extends keyof ED>(data: ED[T_1]["Update"]["data"], action?: ED[T_1]["Action"] | undefined, path?: string): void;
|
|
create<T_1 extends keyof ED>(data: Omit<ED[T_1]["CreateSingle"]["data"], "id">, path?: string): void;
|
|
remove(path?: string): void;
|
|
isCreation(path?: string): boolean;
|
|
clean(lsn?: number, dontPublish?: true, path?: string): void;
|
|
savePoint(): number;
|
|
t(key: string, params?: object): string;
|
|
execute(action?: ED[T]["Action"] | undefined, messageProps?: boolean | MessageProps, path?: string, opers?: {
|
|
entity: T;
|
|
operation: ED[T]["Operation"];
|
|
}[] | undefined): Promise<void>;
|
|
isDirty(path?: string): boolean;
|
|
getFreshValue(path?: string): Partial<import("oak-domain/lib/types").GeneralEntityShape> | Partial<import("oak-domain/lib/types").GeneralEntityShape>[] | undefined;
|
|
select<T2 extends keyof ED>(entity: T2, selection: ED[T2]["Selection"]): Partial<import("oak-domain/lib/types").GeneralEntityShape>[];
|
|
checkOperation<T2 extends keyof ED>(entity: T2, operation: Omit<ED[T2]["Operation"], "id">, checkerTypes?: CheckerType[], cacheInsensative?: true): boolean | { [A in ED[T2]["Action"]]: boolean | import("oak-domain/lib/types").OakUserException<ED>; }[ED[T2]["Action"]];
|
|
tryExecute(path?: string, action?: string): boolean | { [A in ED[keyof ED]["Action"]]: boolean | import("oak-domain/lib/types").OakUserException<ED>; }[ED[keyof ED]["Action"]];
|
|
getOperations<T_1 extends keyof ED>(path?: string): {
|
|
entity: keyof ED;
|
|
operation: ED[keyof ED]["Operation"];
|
|
}[] | undefined;
|
|
refresh(pageNumber?: number, resetTotal?: boolean): Promise<void>;
|
|
loadMore(): Promise<void>;
|
|
setId(id: string, path?: string): void;
|
|
unsetId(): void;
|
|
getId(path?: string): string | undefined;
|
|
setFilters(filters: NamedFilterItem<ED, T>[], path?: string): void;
|
|
setNamedFilters(filters: NamedFilterItem<ED, T>[], refresh?: boolean, path?: string): void;
|
|
getFilters(path?: string): any[] | undefined;
|
|
getFilterByName(name: string, path?: string): any;
|
|
addNamedFilter(namedFilter: NamedFilterItem<ED, T>, refresh?: boolean, path?: string): void;
|
|
removeNamedFilter(namedFilter: NamedFilterItem<ED, T>, refresh?: boolean, path?: string): void;
|
|
removeNamedFilterByName(name: string, refresh?: boolean, path?: string): void;
|
|
setNamedSorters(namedSorters: NamedSorterItem<ED, T>[], refresh?: boolean, path?: string): void;
|
|
getSorters(path?: string): ED[T]["Sorter"][] | undefined;
|
|
getSorterByName(name: string, path?: string): any;
|
|
addNamedSorter(namedSorter: NamedSorterItem<ED, T>, refresh?: boolean, path?: string): void;
|
|
removeNamedSorter(namedSorter: NamedSorterItem<ED, T>, refresh?: boolean, path?: string): void;
|
|
removeNamedSorterByName(name: string, refresh?: boolean, path?: string): void;
|
|
getPagination(path?: string): import(".").Pagination | undefined;
|
|
setPageSize(pageSize: number, path?: string): void;
|
|
setCurrentPage(currentPage: number, path?: string): void;
|
|
subDataEvents(events: string[], callback: (event: string, opRecords: OpRecord<ED>[]) => void): Promise<() => void>;
|
|
context: unknown;
|
|
setState<K extends keyof TData | keyof FormedData | keyof import("./types/Page").OakComponentData<ED, T>>(state: ComponentData<ED, T, FormedData, TData> | ((prevState: Readonly<ComponentData<ED, T, FormedData, TData>>, props: Readonly<ComponentProps<ED, T, TProperty>>) => ComponentData<ED, T, FormedData, TData> | Pick<ComponentData<ED, T, FormedData, TData>, K> | null) | Pick<ComponentData<ED, T, FormedData, TData>, K> | null, callback?: (() => void) | undefined): void;
|
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
readonly props: Readonly<ComponentProps<ED, T, TProperty>>;
|
|
state: Readonly<ComponentData<ED, T, FormedData, TData>>;
|
|
refs: {
|
|
[key: string]: React.ReactInstance;
|
|
};
|
|
shouldComponentUpdate?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextState: Readonly<ComponentData<ED, T, FormedData, TData>>, nextContext: any): boolean;
|
|
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
getSnapshotBeforeUpdate?(prevProps: Readonly<ComponentProps<ED, T, TProperty>>, prevState: Readonly<ComponentData<ED, T, FormedData, TData>>): any;
|
|
componentWillMount?(): void;
|
|
UNSAFE_componentWillMount?(): void;
|
|
componentWillReceiveProps?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextContext: any): void;
|
|
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextContext: any): void;
|
|
componentWillUpdate?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextState: Readonly<ComponentData<ED, T, FormedData, TData>>, nextContext: any): void;
|
|
UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextState: Readonly<ComponentData<ED, T, FormedData, TData>>, nextContext: any): void;
|
|
};
|
|
contextType?: React.Context<any> | undefined;
|
|
};
|