phaser3-rex-plugins
Version:
400 lines (366 loc) • 10.7 kB
TypeScript
export default CsvToHashTable;
declare namespace CsvToHashTable {
/**
* Callback used to convert a CSV string cell value.
*/
type ConverCallbackType = (
/**
* Original cell value as a string.
*/
value: string,
/**
* Row key of the current cell.
*/
rowKey: string | number,
/**
* Column key of the current cell.
*/
colKey: string | number
) => any;
/**
* Callback used to provide initial data when appending rows or columns.
*/
type AppendDataCallbackType = (
/**
* Current table instance.
*/
table: CsvToHashTable,
/**
* Row key of the cell to initialize.
*/
rowKey: string | number,
/**
* Column key of the cell to initialize.
*/
colKey: string | number
) => any;
/**
* Built-in sort mode values.
*/
type SortModeType = 0 | 1 | 2 | 3 | 'ascending' | 'descending' | 'logical ascending' | 'logical descending';
/**
* Callback used to compare two keys for sorting.
*/
type SortCallbackType = (
/**
* First key to compare.
*/
key0: string,
/**
* Second key to compare.
*/
key1: string
) => number;
/**
* Callback used while iterating table data.
*/
type EachCallbackType = (
/**
* Current table instance.
*/
table: CsvToHashTable,
/**
* Row key of the current cell.
*/
rowKey: string | number,
/**
* Column key of the current cell.
*/
colKey: string | number,
/**
* Value stored in the current cell.
*/
value: any
) => void;
/**
* Options for loading CSV text into a table.
*/
interface ILoadConfig {
/**
* Delimiter character used to split columns.
*/
delimiter?: string,
/**
* Enable default conversion or provide a custom conversion callback.
*/
convert?: boolean | ConverCallbackType,
/**
* Scope used when invoking the conversion callback.
*/
convertScope?: object
}
}
/**
* 2D data table keyed by row and column keys with CSV import helpers.
*/
declare class CsvToHashTable {
/**
* Create an empty table instance.
*/
constructor();
/**
* Destroy this table instance.
*
* @returns No return value.
*/
destroy(): void;
/**
* Load CSV text into this table.
*
* @param csvString - CSV text to parse and store.
* @param config - Optional CSV parsing and conversion options.
* @returns This table instance.
*/
loadCSV(
csvString: string,
config?: CsvToHashTable.ILoadConfig
): this;
/**
* Convert values in a column.
*
* @param colKey - Target column key.
* @param convertCallback - Conversion mode or custom conversion callback.
* @param convertCallbackScope - Scope used when invoking the conversion callback.
* @returns This table instance.
*/
convertCol(
colKey: string | number,
convertCallback?: boolean | CsvToHashTable.ConverCallbackType,
convertCallbackScope?: object
): this;
/**
* Convert values in a row.
*
* @param rowKey - Target row key.
* @param convertCallback - Conversion mode or custom conversion callback.
* @param convertCallbackScope - Scope used when invoking the conversion callback.
* @returns This table instance.
*/
convertRow(
rowKey: string | number,
convertCallback?: boolean | CsvToHashTable.ConverCallbackType,
convertCallbackScope?: object
): this;
/**
* Get the value at a row and column key.
*
* @param rowKey - Row key of the target cell.
* @param colKey - Column key of the target cell.
* @returns Value stored at the target cell.
*/
get(
rowKey: string | number,
colKey: string | number
): any;
/**
* Set the value at a row and column key.
*
* @param rowKey - Row key of the target cell.
* @param colKey - Column key of the target cell.
* @param value - Value to store.
* @returns This table instance.
*/
set(
rowKey: string | number,
colKey: string | number,
value: any
): this;
/**
* Add a numeric value to an existing cell value.
*
* @param rowKey - Row key of the target cell.
* @param colKey - Column key of the target cell.
* @param value - Numeric value to add.
* @returns This table instance.
*/
add(
rowKey: string | number,
colKey: string | number,
value: number
): this;
/**
* Check whether a row key exists.
*
* @param rowKey - Row key to check.
* @returns True if the row key exists.
*/
hasRowKey(rowKey: string | number): boolean;
/**
* Check whether a column key exists.
*
* @param colKey - Column key to check.
* @returns True if the column key exists.
*/
hasColKey(colKey: string | number): boolean;
/**
* Check whether a cell key pair exists.
*
* @param rowKey - Row key to check.
* @param colKey - Column key to check.
* @returns True if the target cell exists.
*/
hasKey(
rowKey: string | number,
colKey: string | number
): boolean;
/**
* Check whether a row contains a value.
*
* @param rowKey - Row key to inspect.
* @param data - Value to search for.
* @returns True if the value is found in the row.
*/
isValueInRol(
rowKey: string | number,
data: any
): boolean;
/**
* Check whether a column contains a value.
*
* @param colKey - Column key to inspect.
* @param data - Value to search for.
* @returns True if the value is found in the column.
*/
isValueInCol(
colKey: string | number,
data: any
): boolean;
/**
* Clear all rows and columns.
*
* @returns This table instance.
*/
clear(): this;
/**
* Append a column with a constant initial value.
*
* @param colKey - Key of the column to append.
* @param initValue - Initial value for all cells in the new column.
* @returns This table instance.
*/
appendCol(
colKey: string | number,
initValue: any
): this;
/**
* Append a column with callback-generated initial values.
*
* @param colKey - Key of the column to append.
* @param callback - Callback that generates each cell value.
* @param scope - Optional callback execution scope.
* @returns This table instance.
*/
appendCol(
colKey: string | number,
callback: CsvToHashTable.AppendDataCallbackType,
scope?: object
): this;
/**
* Append a row with a constant initial value.
*
* @param rowKey - Key of the row to append.
* @param initValue - Initial value for all cells in the new row.
* @returns This table instance.
*/
appendRow(
rowKey: string | number,
initValue: any
): this;
/**
* Append a row with callback-generated initial values.
*
* @param rowKey - Key of the row to append.
* @param callback - Callback that generates each cell value.
* @param scope - Optional callback execution scope.
* @returns This table instance.
*/
appendRow(
rowKey: string | number,
callback: CsvToHashTable.AppendDataCallbackType,
scope?: object
): this;
/**
* Remove a column by key.
*
* @param colKey - Column key to remove.
* @returns This table instance.
*/
removeCol(colKey: string | number): this;
/**
* Remove a row by key.
*
* @param rowKey - Row key to remove.
* @returns This table instance.
*/
removeRol(rowKey: string | number): this;
/**
* Sort rows by values in a target column.
*
* @param colKey - Column key used for sorting.
* @param mode - Built-in sort mode.
* @returns This table instance.
*/
sortCol(
colKey: string | number,
mode: CsvToHashTable.SortModeType
): this;
/**
* Sort rows with a custom key comparison callback.
*
* @param callback - Callback used to compare row keys.
* @param scope - Optional callback execution scope.
* @returns This table instance.
*/
sortCol(
callback: CsvToHashTable.SortCallbackType,
scope?: object
): this;
/**
* Sort columns by values in a target row.
*
* @param rowKey - Row key used for sorting.
* @param mode - Built-in sort mode.
* @returns This table instance.
*/
sortRow(
rowKey: string | number,
mode: CsvToHashTable.SortModeType
): this;
/**
* Sort columns with a custom key comparison callback.
*
* @param callback - Callback used to compare column keys.
* @param scope - Optional callback execution scope.
* @returns This table instance.
*/
sortRow(
callback: CsvToHashTable.SortCallbackType,
scope?: object
): this;
/**
* Iterate each column value in a row.
*
* @param rowKey - Row key to iterate.
* @param callback - Callback invoked for each cell in the row.
* @param scope - Optional callback execution scope.
* @returns This table instance.
*/
eachCol(
rowKey: string | number,
callback: CsvToHashTable.EachCallbackType,
scope?: object
): this;
/**
* Iterate each row value in a column.
*
* @param colKey - Column key to iterate.
* @param callback - Callback invoked for each cell in the column.
* @param scope - Optional callback execution scope.
* @returns This table instance.
*/
eachRow(
colKey: string | number,
callback: CsvToHashTable.EachCallbackType,
scope?: object
): this;
}