2019-09-09 09:08:54 +00:00
|
|
|
import { normalize, schema, denormalize } from "normalizr";
|
2021-09-09 15:10:22 +00:00
|
|
|
import { DSLWidget } from "widgets/constants";
|
2019-03-21 17:42:23 +00:00
|
|
|
|
2019-09-09 09:08:54 +00:00
|
|
|
export const widgetSchema = new schema.Entity(
|
|
|
|
|
"canvasWidgets",
|
|
|
|
|
{},
|
|
|
|
|
{ idAttribute: "widgetId" },
|
|
|
|
|
);
|
2019-08-26 12:41:21 +00:00
|
|
|
widgetSchema.define({ children: [widgetSchema] });
|
2019-03-21 17:42:23 +00:00
|
|
|
|
|
|
|
|
class CanvasWidgetsNormalizer {
|
2021-09-09 15:10:22 +00:00
|
|
|
static normalize(dsl: Partial<DSLWidget>): { entities: any; result: any } {
|
2019-09-18 10:48:56 +00:00
|
|
|
return normalize(dsl, widgetSchema);
|
2019-09-09 09:08:54 +00:00
|
|
|
}
|
2019-03-21 17:42:23 +00:00
|
|
|
|
2021-09-09 15:10:22 +00:00
|
|
|
static denormalize(pageWidgetId: string, entities: any): DSLWidget {
|
2019-09-09 09:08:54 +00:00
|
|
|
return denormalize(pageWidgetId, widgetSchema, entities);
|
|
|
|
|
}
|
2019-03-21 17:42:23 +00:00
|
|
|
}
|
|
|
|
|
|
2019-09-09 09:08:54 +00:00
|
|
|
export default CanvasWidgetsNormalizer;
|