parseComponent static method

BaseFormComponent<dynamic, BaseComponentData> parseComponent(
  1. JsonMap data, {
  2. required AbstractDynamicFormParser formParser,
})

Implementation

static BaseFormComponent parseComponent(
  JsonMap data, {
  required AbstractDynamicFormParser formParser,
}) {
  final type = formParser.fieldType.call(data);
  final formFieldSettings = formParser.formFieldSettings(data);
  // final dependentComponents = formParser.dependentComponents?.call(data);
  final parentComponents = formParser.parentComponents?.call(data);

  switch (type) {
    case ComponentType.input:
      return InputComponent(
        componentData: formParser.textFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.multiCheckbox:
      return CheckboxComponent(
        componentData: formParser.checkBoxFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );

    case ComponentType.checkbox:
      return SingleCheckboxComponent(
        componentData:
            formParser.singleCheckBoxFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.dropdown:
      return DropdownComponent(
        componentData: formParser.dropdownFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.asyncDropdown:
      return AsyncDropdownComponent(
        componentData: formParser.dynamicAPIFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.radio:
      return RadioComponent(
        componentData: formParser.radioFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.slider:
      return SliderComponent(
        componentData: formParser.sliderFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.dateTimePicker:
      return DateTimePickerComponent(
        componentData:
            formParser.dateTimePickerFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.unknown:
      return UnknownComponent(
        componentData: formParser.unknownFieldParser.componentData(data),
        formFieldSettings: formFieldSettings,
        parentComponents: parentComponents,
      );
    case ComponentType.text:
      return TextComponent(
          componentData: formParser.textParser.componentData(data),
          formFieldSettings: formFieldSettings,
          parentComponents: parentComponents);
  }
}