@rdkmaster/jigsaw-labs
Version:
Jigsaw, the next generation component set for RDK
81 lines (80 loc) • 3.13 kB
TypeScript
import { HttpClient } from "@angular/common/http";
import "rxjs/add/operator/map";
import { Subscription } from "rxjs/Subscription";
import { ComponentDataHelper, DataReviser, HttpClientOptions, IAjaxComponentData, IEmittable } from "./component-data";
import { CallbackRemoval } from "../utils/common-utils";
/**
* 关于Jigsaw数据体系详细介绍,请参考`IComponentData`的说明
*/
export declare abstract class AbstractGeneralCollection<T = any> implements IAjaxComponentData, IEmittable {
/**
* 将一个任意类型的数据转为一个当前类型的数据对象。
*
* $demo = tree/basic
*
* @param {T} data 原始数据
* @returns {AbstractGeneralCollection<T>} 返回持有输入的原始数据的当前数据对象
*/
abstract fromObject(data: T): AbstractGeneralCollection<T>;
/**
* 调用在`onAjaxSuccess`里注册的所有回调函数。
*
* @param {any} data 服务端返回的数据
*/
protected abstract ajaxSuccessHandler(data: any): void;
/**
* 用于发起网络请求,在调用`fromAjax()`之前必须设置好此值。
*/
http: HttpClient;
dataReviser: DataReviser;
/**
* 与`busy`具有相同功能
*/
protected _busy: boolean;
readonly busy: boolean;
/**
* 安全地调用`dataReviser`函数。
*
* @param originData
* @return {any}
*/
protected reviseData(originData: any): any;
fromAjax(url?: string): void;
fromAjax(options?: HttpClientOptions): void;
protected componentDataHelper: ComponentDataHelper;
refresh(): void;
onRefresh(callback: (thisData: AbstractGeneralCollection<T>) => void, context?: any): CallbackRemoval;
onAjaxStart(callback: (data: T) => void, context?: any): CallbackRemoval;
onAjaxSuccess(callback: (data: T) => void, context?: any): CallbackRemoval;
onAjaxError(callback: (error: Response) => void, context?: any): CallbackRemoval;
onAjaxComplete(callback: () => void, context?: any): CallbackRemoval;
/**
* 调用在`onAjaxStart`里注册的所有回调函数。
*/
protected ajaxStartHandler(): void;
/**
* 调用在`onAjaxError`里注册的所有回调函数。
*/
protected ajaxErrorHandler(error: Response): void;
/**
* 调用在`onAjaxComplete`里注册的所有回调函数。
*/
protected ajaxCompleteHandler(): void;
destroy(): void;
private _emitter;
emit(value?: any): void;
subscribe(callback?: (value: any) => void): Subscription;
unsubscribe(): void;
}
/**
* 这是Jigsaw数据体系中两大分支之一:通用的key-value(即JSON对象)的集合类型的基类。
*
* 关于Jigsaw数据体系详细介绍,请参考`IComponentData`的说明
*/
export declare class GeneralCollection<T> extends AbstractGeneralCollection<T> {
[index: string]: any;
protected ajaxSuccessHandler(data: T): void;
protected propList: string[];
fromObject(data: T): GeneralCollection<T>;
destroy(): void;
}