docs/api/datasources.md
This module manages data sources within the editor. Once the editor is instantiated, you can use the following API to manage data sources:
const editor = grapesjs.init({ ... });
const dsm = editor.DataSources;
data:add Added new data source.editor.on('data:add', (dataSource) => { ... });
data:remove Data source removed.editor.on('data:remove', (dataSource) => { ... });
data:update Data source updated.editor.on('data:update', (dataSource, changes) => { ... });
data:path Data record path update.editor.on('data:path:SOURCE_ID.RECORD_ID.PROP_NAME', ({ dataSource, dataRecord, path }) => { ... });
editor.on('data:path', ({ dataSource, dataRecord, path }) => {
console.log('Path update in any data source')
});
data:pathSource Data record path update per source.editor.on('data:pathSource:SOURCE_ID', ({ dataSource, dataRecord, path }) => { ... });
data:provider:load Data source provider load.editor.on('data:provider:load', ({ dataSource, result }) => { ... });
data:provider:loadAll Load of all data source providers (eg. on project load).editor.on('data:provider:loadAll', () => { ... });
data Catch-all event for all the events mentioned above.editor.on('data', ({ event, model, ... }) => { ... });
Add new data source.
props Object Data source properties.opts AddOptions (optional, default {})const ds = dsm.add({
id: 'my_data_source_id',
records: [
{ id: 'id1', name: 'value1' },
{ id: 'id2', name: 'value2' }
]
});
Returns DataSource Added data source.
Get data source.
id String Data source id.const ds = dsm.get('my_data_source_id');
Returns DataSource Data source.
Return all data sources.
const ds = dsm.getAll();
Returns Array<DataSource>
Get value from data sources by path.
path String Path to value.defValue any Default value if the path is not found.opts {context: Record<string, any>?}? Returns any const value = dsm.getValue('ds_id.record_id.propName', 'defaultValue');
Set value in data sources by path.
path String Path to value in format 'dataSourceId.recordId.propName'value any Value to setdsm.setValue('ds_id.record_id.propName', 'new value');
Returns Boolean Returns true if the value was set successfully
Remove data source.
id (String | DataSource) Id of the data source.opts RemoveOptions? const removed = dsm.remove('DS_ID');
Returns DataSource Removed data source.
Retrieve a data source, data record, and optional property path based on a string path. This method parses a string path to identify and retrieve the corresponding data source and data record. If a property path is included in the input, it will also be returned. The method is useful for accessing nested data within data sources.
path String The string path in the format 'dataSourceId.recordId.property'.const [dataSource, dataRecord, propPath] = dsm.fromPath('my_data_source_id.record_id.myProp');
// e.g., [DataSource, DataRecord, 'myProp']
Returns [DataSource?, DataRecord?, String?] An array containing the data source, data record, and optional property path.
Store data sources to a JSON object.
Returns Array Stored data sources.
Load data sources from a JSON object.
data Object The data object containing data sources.Returns Object Loaded data sources.