import Form from './lib/Form';
import FormRow from './lib/Form.Row';
import Label from './lib/Form.Label';

import Decorator from './lib/decorator';

import Input from '../input/index';
import Radio, { RadioGroup } from '../radio/index';
import Checkbox, { CheckGroup } from '../checkbox/index';
import Datepicker from '../datepicker/index';
import Dropdown from '../dropdown/index';

Form.FormRow = FormRow;
Form.Label = Label;

Form.decorate = Decorator;

Form.Input = Form.decorate(Input, {
  initialValue: ''
});
Form.Radio = Radio; // RadioGroup需要Radio为直接子元素，在这里不包。不作单独使用以配合Form
Form.RadioGroup = Form.decorate(RadioGroup);
Form.Checkbox = Form.decorate(Checkbox, {
  valuePropName: 'checked'
});
Form.CheckGroup = Form.decorate(CheckGroup);
Form.Datepicker = Form.decorate(Datepicker);
Form.Dropdown = Form.decorate(Dropdown);

export default Form;
export {
  Form,
  FormRow,
  Label
};
