@tomino/dynamic-form-semantic-ui
Version:
Semantic UI form renderer based on dynamic form generation
42 lines • 1.94 kB
JavaScript
import * as React from 'react';
import { Group } from './group';
import { Input } from './input';
import { Select } from './select';
import { TextArea } from './textbox';
import { Checkbox } from './checkbox';
import { Map } from './map';
import { Value } from './value';
import { TableView } from './table';
import { Tuple } from './tuple';
import { CodeEditor } from './code';
import { Binding } from './binding';
export function renderControl(props, filter) {
if (props.formElement.bound) {
return React.createElement(Binding, Object.assign({ key: props.uid }, props));
}
switch (props.formElement.control) {
case 'Input':
return React.createElement(Input, Object.assign({ key: props.uid }, props));
case 'Code':
return React.createElement(CodeEditor, Object.assign({ key: props.uid }, props));
case 'Table':
return React.createElement(TableView, Object.assign({ key: props.uid }, props));
case 'Value':
return React.createElement(Value, Object.assign({ key: props.uid }, props));
case 'Group':
return React.createElement(Group, Object.assign({ key: props.uid }, props, { filter: filter }));
case 'Select':
return React.createElement(Select, Object.assign({ key: props.uid }, props));
case 'Tuple':
return React.createElement(Tuple, Object.assign({ key: props.uid }, props));
case 'Textarea':
return React.createElement(TextArea, Object.assign({ key: props.uid }, props));
case 'Checkbox':
return React.createElement(Checkbox, Object.assign({ key: props.uid }, props));
case 'Map':
return React.createElement(Map, Object.assign({ key: props.uid }, props));
default:
return React.createElement(Input, Object.assign({ key: props.uid }, props));
}
}
//# sourceMappingURL=control_factory.js.map