2019-11-25 05:07:27 +00:00
|
|
|
import { WidgetProps } from "widgets/BaseWidget";
|
|
|
|
|
import ContainerWidget, { ContainerWidgetProps } from "widgets/ContainerWidget";
|
|
|
|
|
import TextWidget, { TextWidgetProps } from "widgets/TextWidget";
|
|
|
|
|
import InputWidget, { InputWidgetProps } from "widgets/InputWidget";
|
|
|
|
|
import SpinnerWidget, { SpinnerWidgetProps } from "widgets/SpinnerWidget";
|
|
|
|
|
import CheckboxWidget, { CheckboxWidgetProps } from "widgets/CheckboxWidget";
|
2019-03-21 12:10:32 +00:00
|
|
|
import RadioGroupWidget, {
|
2019-09-09 09:08:54 +00:00
|
|
|
RadioGroupWidgetProps,
|
2019-11-25 05:07:27 +00:00
|
|
|
} from "widgets/RadioGroupWidget";
|
2019-09-09 09:08:54 +00:00
|
|
|
import WidgetFactory from "./WidgetFactory";
|
|
|
|
|
import React from "react";
|
2019-11-25 05:07:27 +00:00
|
|
|
import ButtonWidget, { ButtonWidgetProps } from "widgets/ButtonWidget";
|
|
|
|
|
import DropdownWidget, { DropdownWidgetProps } from "widgets/DropdownWidget";
|
|
|
|
|
import ImageWidget, { ImageWidgetProps } from "widgets/ImageWidget";
|
|
|
|
|
import TableWidget, { TableWidgetProps } from "widgets/TableWidget";
|
2019-11-04 14:22:50 +00:00
|
|
|
import FilePickerWidget, {
|
|
|
|
|
FilePickerWidgetProps,
|
2019-11-25 05:07:27 +00:00
|
|
|
} from "widgets/FilepickerWidget";
|
2019-11-06 12:12:41 +00:00
|
|
|
import DatePickerWidget, {
|
|
|
|
|
DatePickerWidgetProps,
|
2019-11-25 05:07:27 +00:00
|
|
|
} from "widgets/DatePickerWidget";
|
2019-02-10 13:21:19 +00:00
|
|
|
class WidgetBuilderRegistry {
|
|
|
|
|
static registerWidgetBuilders() {
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"CONTAINER_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(
|
|
|
|
|
widgetData: ContainerWidgetProps<WidgetProps>,
|
|
|
|
|
): JSX.Element {
|
|
|
|
|
return <ContainerWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-09-09 09:08:54 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
ContainerWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-02-10 14:14:58 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"TEXT_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: TextWidgetProps): JSX.Element {
|
|
|
|
|
return <TextWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-09-09 09:08:54 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
TextWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-03-18 13:50:24 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"BUTTON_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: ButtonWidgetProps): JSX.Element {
|
|
|
|
|
return <ButtonWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-09-09 09:08:54 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
ButtonWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-03-18 15:10:30 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"SPINNER_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: SpinnerWidgetProps): JSX.Element {
|
|
|
|
|
return <SpinnerWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-09-09 09:08:54 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
SpinnerWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-03-16 13:08:45 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"INPUT_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: InputWidgetProps): JSX.Element {
|
|
|
|
|
return <InputWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-09-09 09:08:54 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
InputWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-03-21 12:10:32 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"CHECKBOX_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: CheckboxWidgetProps): JSX.Element {
|
|
|
|
|
return <CheckboxWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-09-09 09:08:54 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
CheckboxWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-03-21 12:10:32 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"DROP_DOWN_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: DropdownWidgetProps): JSX.Element {
|
|
|
|
|
return <DropdownWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-10-31 05:28:11 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
DropdownWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-10-31 05:28:11 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"RADIO_GROUP_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: RadioGroupWidgetProps): JSX.Element {
|
|
|
|
|
return <RadioGroupWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-09-09 09:08:54 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
RadioGroupWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-10-31 08:36:04 +00:00
|
|
|
|
2019-11-19 12:44:58 +00:00
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"IMAGE_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: ImageWidgetProps): JSX.Element {
|
|
|
|
|
return <ImageWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-10-31 08:36:04 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
ImageWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
|
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"TABLE_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: TableWidgetProps): JSX.Element {
|
|
|
|
|
return <TableWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-10-31 10:10:57 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
TableWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
|
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"FILE_PICKER_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: FilePickerWidgetProps): JSX.Element {
|
|
|
|
|
return <FilePickerWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-11-04 14:22:50 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
FilePickerWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
|
|
|
|
WidgetFactory.registerWidgetBuilder(
|
|
|
|
|
"DATE_PICKER_WIDGET",
|
|
|
|
|
{
|
|
|
|
|
buildWidget(widgetData: DatePickerWidgetProps): JSX.Element {
|
|
|
|
|
return <DatePickerWidget {...widgetData} />;
|
|
|
|
|
},
|
2019-11-06 12:12:41 +00:00
|
|
|
},
|
2019-11-19 12:44:58 +00:00
|
|
|
DatePickerWidget.getPropertyValidationMap(),
|
|
|
|
|
);
|
2019-02-10 13:06:05 +00:00
|
|
|
}
|
2019-02-10 13:21:19 +00:00
|
|
|
}
|
|
|
|
|
|
2019-09-09 09:08:54 +00:00
|
|
|
export default WidgetBuilderRegistry;
|