2021-04-27 07:16:54 +00:00
|
|
|
import { makeFactory } from "factory.ts";
|
|
|
|
|
import { WidgetProps } from "widgets/BaseWidget";
|
2021-09-09 15:10:22 +00:00
|
|
|
import { DSLWidget } from "widgets/constants";
|
2022-04-12 10:50:01 +00:00
|
|
|
import defaultTemplate from "templates/default";
|
2021-04-27 07:16:54 +00:00
|
|
|
import { WidgetTypeFactories } from "./Widgets/WidgetTypeFactories";
|
2021-09-09 15:10:22 +00:00
|
|
|
const defaultMainContainer: DSLWidget = {
|
2021-04-27 07:16:54 +00:00
|
|
|
...(defaultTemplate as any),
|
2021-08-12 05:45:38 +00:00
|
|
|
canExtend: true,
|
2021-04-27 07:16:54 +00:00
|
|
|
renderMode: "PAGE",
|
|
|
|
|
version: 1,
|
|
|
|
|
isLoading: false,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const mainContainerFactory = makeFactory({ ...defaultMainContainer });
|
|
|
|
|
export const widgetCanvasFactory = makeFactory(mainContainerFactory.build());
|
|
|
|
|
const buildChild = (child: Partial<WidgetProps>): WidgetProps => {
|
|
|
|
|
return WidgetTypeFactories[child.type || "CANVAS_WIDGET"].build({
|
|
|
|
|
...child,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
export const buildChildren = (children: Partial<WidgetProps>[]) => {
|
|
|
|
|
try {
|
|
|
|
|
return children.map((child) => {
|
|
|
|
|
return buildChild(child);
|
|
|
|
|
});
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error("Check if child widget data provided");
|
|
|
|
|
}
|
|
|
|
|
};
|
2021-05-18 18:29:39 +00:00
|
|
|
|
|
|
|
|
export const buildDslWithChildren = (childData: Partial<WidgetProps>[]) => {
|
|
|
|
|
const children: any = buildChildren(childData);
|
|
|
|
|
return widgetCanvasFactory.build({
|
|
|
|
|
children,
|
|
|
|
|
});
|
|
|
|
|
};
|