parse static method

Slide parse(
  1. Map<String, dynamic> map
)

Implementation

static Slide parse(Map<String, dynamic> map) {
  final layout = map['layout'] ??= LayoutType.simple;

  try {
    switch (layout) {
      case LayoutType.simple:
      case null:
        SimpleSlide.schema.validateOrThrow(map);
        return SimpleSlide.fromMap(map);
      case LayoutType.image:
        ImageSlide.schema.validateOrThrow(map);
        return ImageSlide.fromMap(map);
      case LayoutType.widget:
        WidgetSlide.schema.validateOrThrow(map);
        return WidgetSlide.fromMap(map);
      case LayoutType.twoColumn:
        TwoColumnSlide.schema.validateOrThrow(map);
        return TwoColumnSlide.fromMap(map);
      case LayoutType.twoColumnHeader:
        TwoColumnHeaderSlide.schema.validateOrThrow(map);
        return TwoColumnHeaderSlide.fromMap(map);
      default:
        return InvalidSlide.invalidTemplate(layout);
    }
  } on SchemaValidationException catch (e) {
    return InvalidSlide.schemaError(e.result);
  } on Exception catch (e) {
    return InvalidSlide.exception(e);
  } catch (e) {
    return InvalidSlide.message('# Unknown Error \n $e');
  }
}