Line data Source code
1 : import 'package:widgetbook_generator/code_generators/instances/instance.dart'; 2 : import 'package:widgetbook_generator/code_generators/instances/list_instance.dart'; 3 : import 'package:widgetbook_generator/code_generators/instances/widget_element_instance.dart'; 4 : import 'package:widgetbook_generator/code_generators/properties/property.dart'; 5 : import 'package:widgetbook_generator/services/tree_service.dart'; 6 : 7 : /// Defines an instance to create code for a [Folder] 8 : class FolderInstance extends Instance { 9 : /// Creates a new instance of [FolderInstance] 10 2 : FolderInstance({required Folder folder}) 11 2 : : super( 12 : name: 'Folder', 13 2 : properties: [ 14 4 : Property.string(key: 'name', value: folder.name), 15 2 : Property( 16 : key: 'widgets', 17 2 : instance: ListInstance<WidgetElementInstance>( 18 4 : instances: folder.widgets.values 19 2 : .map( 20 2 : (widget) => WidgetElementInstance( 21 1 : name: widget.name, 22 1 : stories: widget.stories, 23 : ), 24 : ) 25 2 : .toList(), 26 : ), 27 : ), 28 2 : Property( 29 : key: 'folders', 30 2 : instance: ListInstance<FolderInstance>( 31 4 : instances: folder.subFolders.values 32 4 : .map((folder) => FolderInstance(folder: folder)) 33 2 : .toList(), 34 : ), 35 : ), 36 : ], 37 : ); 38 : }