Browse Source

Up data_sources docs

add-css-mount-events
Artur Arseniev 8 months ago
parent
commit
fff877aefa
  1. 2
      packages/core/src/css_composer/index.ts
  2. 24
      packages/core/src/data_sources/index.ts
  3. 44
      packages/core/src/data_sources/types.ts

2
packages/core/src/css_composer/index.ts

@ -94,7 +94,7 @@ export default class CssComposer extends ItemManagerModule<CssComposerConfig & {
* @private
*/
constructor(em: EditorModel) {
super(em, 'CssComposer', null, {}, defConfig());
super(em, 'CssComposer', null, CssEvents, defConfig());
const { config } = this;
const ppfx = config.pStylePrefix;

24
packages/core/src/data_sources/index.ts

@ -1,38 +1,22 @@
/**
* This module manages data sources within the editor.
* You can initialize the module with the editor by passing an instance of `EditorModel`.
*
* ```js
* const editor = new EditorModel();
* const dsm = new DataSourceManager(editor);
* ```
*
* Once the editor is instantiated, you can use the following API to manage data sources:
*
* ```js
* const editor = grapesjs.init({ ... });
* const dsm = editor.DataSources;
* ```
*
* {REPLACE_EVENTS}
*
* ## Methods
* * [add](#add) - Add a new data source.
* * [get](#get) - Retrieve a data source by its ID.
* * [getAll](#getall) - Retrieve all data sources.
* * [remove](#remove) - Remove a data source by its ID.
* * [clear](#clear) - Remove all data sources.
*
* Example of adding a data source:
*
* ```js
* const ds = dsm.add({
* id: 'my_data_source_id',
* records: [
* { id: 'id1', name: 'value1' },
* { id: 'id2', name: 'value2' }
* ]
* });
* ```
*
* @module DataSources
* @param {EditorModel} em - Editor model.
*/
import { ItemManagerModule, ModuleConfig } from '../abstract/Module';

44
packages/core/src/data_sources/types.ts

@ -58,6 +58,28 @@ export interface DataSourceTransformers {
onRecordSetValue?: (args: { id: string | number; key: string; value: any }) => any;
}
type DotSeparatedKeys<T> = T extends object
? {
[K in keyof T]: K extends string
? T[K] extends object
? `${K}` | `${K}.${DotSeparatedKeys<T[K]>}`
: `${K}`
: never;
}[keyof T]
: never;
export type DeepPartialDot<T> = {
[P in DotSeparatedKeys<T>]?: P extends `${infer K}.${infer Rest}`
? K extends keyof T
? Rest extends DotSeparatedKeys<T[K]>
? DeepPartialDot<T[K]>[Rest]
: never
: never
: P extends keyof T
? T[P]
: never;
};
/**{START_EVENTS}*/
export enum DataSourcesEvents {
/**
@ -108,24 +130,6 @@ export enum DataSourcesEvents {
all = 'data',
}
/**{END_EVENTS}*/
type DotSeparatedKeys<T> = T extends object
? {
[K in keyof T]: K extends string
? T[K] extends object
? `${K}` | `${K}.${DotSeparatedKeys<T[K]>}`
: `${K}`
: never;
}[keyof T]
: never;
export type DeepPartialDot<T> = {
[P in DotSeparatedKeys<T>]?: P extends `${infer K}.${infer Rest}`
? K extends keyof T
? Rest extends DotSeparatedKeys<T[K]>
? DeepPartialDot<T[K]>[Rest]
: never
: never
: P extends keyof T
? T[P]
: never;
};
// need this to avoid the TS documentation generator to break
export default DataSourcesEvents;

Loading…
Cancel
Save