UNPKG

@rdkmaster/jigsaw-labs

Version:

Jigsaw, the next generation component set for RDK

81 lines (80 loc) 3.13 kB
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; }