UNPKG

@rdkmaster/jigsaw-labs

Version:

Jigsaw, the next generation component set for RDK

252 lines (251 loc) 9.87 kB
import { TemplateRef, Type } from "@angular/core"; import { RawTableData, TableData } from "../../core/data/table-data"; import { SortAs, SortOrder } from "../../core/data/component-data"; import { TableCellRendererBase } from "./table-renderer"; export declare type TableColumnTarget = number | string | (number | string)[]; export declare type ColumnDefineGenerator = (field: string, index: number) => ColumnDefine; export declare type TableCellDataGenerator = (tableData: TableData, row: number, column: number, additionalData: AdditionalTableData) => any; export declare class TableValueGenerators { static rowIndexGenerator(tableData: TableData, row: number): any; static originCellDataGenerator(tableData: TableData, row: number, column: number): any; } export declare class ColumnDefine { target?: TableColumnTarget; visible?: boolean; width?: string | number; header?: TableHeader; cell?: TableCell; group?: boolean; } export declare class AdditionalColumnDefine { pos?: number; visible?: boolean; width?: string | number; header?: TableHeader; cell?: TableCell; group?: boolean; } export declare class TableDataChangeEvent { field: string | number; row: number | number[]; column: number; cellData: string | number; oldCellData: string | number; } export declare type TableAsyncRenderer = () => TemplateRef<any>; export declare type TableSyncRenderer = Type<TableCellRendererBase> | TemplateRef<any>; export declare type TableRenderer = TableSyncRenderer | TableAsyncRenderer | string; export declare class TableHeader { text?: string; renderer?: TableRenderer; clazz?: string; sortable?: boolean; sortAs?: SortAs; defaultSortOrder?: SortOrder; } export declare class TableCell { renderer?: TableRenderer; rendererInitData?: any; clazz?: string; editable?: boolean; editorRenderer?: TableRenderer; editorRendererInitData?: any; data?: any | TableCellDataGenerator; tooltip?: any; innerHtmlContext?: any; } export declare class TableHeadSetting { cellData: string | number; width: string | number; visible: boolean; renderer: Type<TableCellRendererBase> | TemplateRef<any>; clazz: string; sortable: boolean; sortAs: SortAs; defaultSortOrder: SortOrder; field: string; } export declare class TableCellSetting { cellData: any; width: string | number; visible: boolean; renderer: Type<TableCellRendererBase> | TemplateRef<any>; rendererInitData: any; clazz: string; editable: boolean; editorRenderer: Type<TableCellRendererBase> | TemplateRef<any>; editorRendererInitData: any; group: boolean; field: string; rowSpan: number; tooltip: any; innerHtmlContext: any; } export declare class SortChangeEvent { sortAs: SortAs; order: SortOrder; field: string; } /** * @internal */ export declare function _getColumnIndex(data: TableData, additionalData: TableData, field: string): [number, TableData]; /** * 用户在界面上,通过渲染器“摸”了表格的附加列之后,表格会将用户当时“摸过”列的相关信息, * 以此类型保存在内存中备用。这些数据是渲染器在判定哪些列被“摸过”时的关键数据, * 应用也可以通过`AdditionalTableData`的各个api更新这些数据。 * * $since = v1.1.4 */ export declare class TouchedValue { key: any | any[]; value: any; data: any[]; } export declare class AdditionalTableData extends TableData { /** * 这个属性的值与`JigsawTable.trackRowBy`的值是相等的,关于这个属性的作用, * 请访问[这个链接]($demo=table/checkbox-column#open-desc=true)。 */ trackRowBy: string; originData: RawTableData; private _touchedValues; private _trackRowByFields; private _fixTrackRowFields(); private _toFieldString(field); /** * $deprecatedFrom = v1.1.4 * $replacement = clearTouchedValues() * * @deprecated */ clearCachedValues(): void; /** * 清空所有数据 * * $since = v1.1.4 */ clearTouchedValues(): void; reset(): void; private _getKeysByRow(field, row); /** * $deprecatedFrom = v1.1.4 * $replacement = touchValueByRow() * * @deprecated * * @param {string | number} field * @param {number} row * @param value */ cacheValue(field: string | number, row: number, value: any): void; /** * 更新用户“摸过”的单元格的值。 * * $since = v1.1.4 * * @param {string | number} field 需要更新的列名或者列索引 * @param {number} row 当前页行索引,只支持更新表格的当前页数据,如果需要更新其他页的数据,请使用`touchValue()`方法 * @param value 将此变量替代缓存里的数据,如果缓存里不存在对应的数据,则会新建一个对应的数据 */ touchValueByRow(field: string | number, row: number, value: any): void; /** * 更新用户“摸过”的单元格的值。如果需要更新的是当前页,则通过`touchValueByRow()`方法更新会更方便些。 * * $since = v1.1.4 * * @param {string | number} field 需要更新的列名或者列索引 * @param {any | any[]} key 通过此值来确定更新缓存中的哪一行或者哪些行的数据, * 一般需要配合[`trackRowBy`属性]($demo=table/checkbox-column#open-desc=true)一起使用。 * @param value 将此变量替代缓存里的数据,如果缓存里不存在对应的数据,则会新建一个对应的数据 * @param {any[]} data 可选,表格内置渲染器会自动将该行对应的数据存放在这个属性上, * 方便应用在需要时使用该行的其他数据。 */ touchValue(field: string | number, key: any | any[], value: any, data?: any[]): void; /** * 获取用户“摸过”的单元格的数据 * - 如果需要获取缓存的详细信息,请使用`getTouchedInfoByRow()` * - 如果需要获取其他页的信息,请使用`getTouchedValue()`或者`getTouchedInfo()` * * $since = v1.1.4 * * @param {string | number} field 需要获取的列名或者列索引 * @param {number} row 当前页行索引,支持获取表格的当前页数据,如果需要获取其他页的数据,请使用`getTouchedValue()`方法 * @return {any} 用户“摸过”之后改单元格的新值。 */ getTouchedValueByRow(field: string | number, row: number): any; /** * 获取用户“摸过”的单元格的详细信息,可以直接更新得到的值,调用`JigsawTable.update()`方法可以刷新界面。 * * 只能返回当前页的数据,如果需要获取其他页的数据,请使用`getTouchedInfo()`。 * * $since = v1.1.4 * * @param {string | number} field 需要获取的列名或者列索引 * @param {number} row 当前页行索引,支持获取表格的当前页数据,如果需要获取其他页的数据,请使用`getTouchedValue()`方法 * @return {TouchedValue} 用户“摸过”之后该单元格对应缓存数据对象。 */ getTouchedInfoByRow(field: string | number, row: number): TouchedValue; /** * 获取用户“摸过”的单元格的值,可获取任意页的缓存数据。 * * $since = v1.1.4 * * @param {string | number} field 需要获取的列名或者列索引 * @param {any | any[]} key * @return {any} */ getTouchedValue(field: string | number, key: any | any[]): any; /** * @deprecated * * @param {string | number} field * @param {number} row 按行索引取值的重载**已经被废弃**,请使用`getTouchedValueByRow()`替代。 * @returns {any} */ getTouchedValue(field: string | number, row: number): any; /** * 获取用户“摸过”的单元格的详细信息,可以直接更新得到的值,调用`JigsawTable.update()`方法可以刷新界面。 * * 通过此方法可获取任意页的缓存数据。 * * $since = v1.1.4 * * @param {string | number} field 需要获取的列名或者列索引 * @param {any | any[]} key 通过此值来确定更新缓存中的哪一行或者哪些行的数据, * 一般需要配合[`trackRowBy`属性]($demo=table/checkbox-column#open-desc=true)一起使用。 * @return {TouchedValue} */ getTouchedInfo(field: string | number, key: any | any[]): TouchedValue; /** * 当表格单元格的值是对象而非简单类型的时候,对key的比较需要采用严格模式 * * $since = v1.1.4 * * @param key1 * @param key2 * @return {boolean} * @private */ private _isKeyEquals(key1, key2); private _getObjectValue(obj); /** * $deprecatedFrom = v1.1.4 * $replacement = getAllTouched() * * @deprecated * * @param {string | number} field * @returns {TouchedValue[]} */ getTouchedValues(field: string | number): TouchedValue[]; /** * 获取用户在表格上“摸过”的所有行的详细信息,对这些信息做修改后调用`JigsawTable.update()`方法可以刷新界面 * * $since = v1.1.4 * * @param {string | number} field 需要获取的列名或者列索引 * @returns {TouchedValue[]} 返回所有行的详细信息 */ getAllTouched(field: string | number): TouchedValue[]; }