import JDInput from './formType/input'
import LinkText from './formType/linkText/LinkText'
import JDRadio from './formType/radio'
import JDCheckBox from './formType/checkbox'
import JDImageWH from './formType/imageWH/imageWH'
import JDNumPerLineRadio from './formType/numPerLineRadio'
import CustomEdit from './dataType/customEdit'
import JDDateTime from './formType/dateTime/dateTime'
import JDDateRange from './dataType/dateRange/dateRange'
import JDSelect from './formType/select/select'
import JDTextArea from './formType/textarea'
import JDColor from './formType/color'
import JDSwitch from './formType/switch'
import LinkImage from './formType/linkImage/LinkImage'
import TipText from './dataType/tipText'
import SingleSelect from './dataType/singleSelect'
const FormModules = {
	INPUT: JDInput,
	CHECKBOX: JDCheckBox,
	COLOR: JDColor,
	DATERANGE: JDDateRange,
	DATETIME: JDDateTime,
	HTML: CustomEdit,
	IMAGEWH: JDImageWH,
	NUMPERLINERADIO: JDNumPerLineRadio,
	RADIO: JDRadio,
	SELECT: JDSelect,
	SWITCH: JDSwitch,
	TEXTAREA: JDTextArea,
	J_LINK_TEXT: LinkText,
	J_LINK_IMAGE: LinkImage,
  TIPTEXT: TipText,
  SINGLESELECT: SingleSelect,
}
export const assignFormModules = function (modules) {
  Object.assign(FormModules, modules)
}
export const registerModule = function (key, val) {
  FormModules[key] = val
}
export const getModule = function (key) {
  return FormModules[key]
}
export const delModule = function (key) {
  delete FormModules[key]
}
export default FormModules