@highcharts/dashboards
Version:
Highcharts Dashboards framework
86 lines (85 loc) • 1.73 kB
JavaScript
/* *
*
* (c) 2009-2026 Highsoft AS
*
* Integration of this software requires a license.
* - For commercial use, see www.highcharts.com/license
* - For non-commercial, see www.highcharts.com/license-eula
*
*
* Authors:
* - Sophie Bremer
*
* */
;
import DataTable from '../../Data/DataTable.js';
import Serializable from '../Serializable.js';
/* *
*
* Functions
*
* */
/**
* Converts the given JSON to a class instance.
*
* @param {JSON} json
* JSON to deserialize as a class instance or object.
*
* @return {DataTable}
* Returns the class instance or object, or throws an exception.
*/
function fromJSON(json) {
return new DataTable({ columns: json.columns, id: json.id });
}
/**
* Validates the given class instance for JSON support.
*
* @param {AnyRecord} obj
* Class instance or object to validate.
*
* @return {boolean}
* Returns true, if the function set can convert the given object, otherwise
* false.
*/
function jsonSupportFor(obj) {
return obj instanceof DataTable;
}
/**
* Converts the given class instance to JSON.
*
* @param {DataTable} obj
* Class instance or object to serialize as JSON.
*
* @return {JSON}
* Returns the JSON of the class instance or object.
*/
function toJSON(obj) {
const json = {
$class: 'Data.DataTable',
columns: obj.getColumns(void 0, false, true)
};
// Custom ID
if (!obj.autoId) {
json.id = obj.id;
}
// Done
return json;
}
/* *
*
* Registry
*
* */
const DataTableHelper = {
$class: 'Data.DataTable',
fromJSON,
jsonSupportFor,
toJSON
};
Serializable.registerHelper(DataTableHelper);
/* *
*
* Default Export
*
* */
export default DataTableHelper;