LCOV - code coverage report
Current view: top level - src/models/organizers - expandable_organizer.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 10 12 83.3 %
Date: 2021-10-03 15:54:23 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:collection/collection.dart';
       2             : 
       3             : import 'package:widgetbook/src/models/organizers/organizer.dart';
       4             : import 'package:widgetbook/src/models/organizers/organizers.dart';
       5             : 
       6             : /// ExpandableOrganizer is an abstract model which can host
       7             : /// WidgetElements and/or Folders
       8             : abstract class ExpandableOrganizer extends Organizer {
       9             :   /// Used to implement collapsing and expanding of the folder tree.
      10             :   bool isExpanded;
      11             : 
      12             :   /// The folders of one level in the folder tree.
      13             :   /// Folders will be shown above widgets.
      14             :   final List<Folder> folders;
      15             : 
      16             :   /// The widgets of one level in the folder tree.
      17             :   /// Widgets will be shown below folders;
      18             :   final List<WidgetElement> widgets;
      19             : 
      20             :   /// Abstract class for organizer panel in the left.
      21           1 :   ExpandableOrganizer({
      22             :     required String name,
      23             :     this.isExpanded = false,
      24             :     List<Folder>? folders,
      25             :     List<WidgetElement>? widgets,
      26           1 :   })  : folders = folders ?? List<Folder>.empty(),
      27           1 :         widgets = widgets ?? List<WidgetElement>.empty(),
      28           1 :         super(
      29             :           name,
      30             :         );
      31             : 
      32           1 :   @override
      33             :   bool operator ==(Object other) {
      34             :     if (identical(this, other)) return true;
      35           1 :     final listEquals = const DeepCollectionEquality().equals;
      36             : 
      37           1 :     return other is ExpandableOrganizer &&
      38           3 :         other.isExpanded == isExpanded &&
      39           2 :         listEquals(other.folders, folders) &&
      40           2 :         listEquals(other.widgets, widgets);
      41             :   }
      42             : 
      43           0 :   @override
      44           0 :   int get hashCode => isExpanded.hashCode ^ folders.hashCode ^ widgets.hashCode;
      45             : }

Generated by: LCOV version 1.15