Line data Source code
1 : import 'package:widgetbook/widgetbook.dart'; 2 : 3 : /// helper to obtain all WidgetElements in the navigation tree. 4 : class WidgetHelper { 5 1 : static List<WidgetElement> getAllWidgetElementsFromCategories( 6 : List<Category> categories) { 7 1 : List<WidgetElement> widgets = []; 8 2 : for (Category category in categories) { 9 1 : widgets.addAll( 10 1 : getAllWidgetElementsFromCategory(category), 11 : ); 12 : } 13 : return widgets; 14 : } 15 : 16 1 : static List<WidgetElement> getAllWidgetElementsFromCategory( 17 : Category category) { 18 1 : List<WidgetElement> widgetList = List<WidgetElement>.from( 19 1 : category.widgets, 20 : ); 21 1 : widgetList.addAll( 22 2 : getAllWidgetElementsFromFolders(category.folders), 23 : ); 24 : return widgetList; 25 : } 26 : 27 1 : static List<WidgetElement> getAllWidgetElementsFromFolders( 28 : List<Folder> folders) { 29 1 : List<WidgetElement> widgetList = []; 30 2 : for (Folder folder in folders) { 31 1 : widgetList.addAll( 32 1 : getAllWidgetElementsFromFolder(folder), 33 : ); 34 : } 35 : return widgetList; 36 : } 37 : 38 1 : static List<WidgetElement> getAllWidgetElementsFromFolder(Folder folder) { 39 2 : List<WidgetElement> widgetList = List<WidgetElement>.from(folder.widgets); 40 1 : widgetList.addAll( 41 2 : getAllWidgetElementsFromFolders(folder.folders), 42 : ); 43 : return widgetList; 44 : } 45 : }