<commit_before>//
//  MCChildrenNavigationController.h
//  MCChildrenNavigationController
//
//  Created by <NAME> on 23/11/13.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "MCChildrenCollection.h"
#import "MCChildrenViewControllerDelegate.h"
#import "MCTableHeaderViewButton.h"

typedef NS_ENUM(NSInteger, MCChildrenNavigationControllerSelectionMode) {
    MCChildrenNavigationControllerSelectionModeAll,
    MCChildrenNavigationControllerSelectionModeNoRoot,
    MCChildrenNavigationControllerSelectionModeLeafs,
    MCChildrenNavigationControllerSelectionModeNone
};

typedef NS_ENUM(NSInteger, MCChildrenNavigationControllerMaximumLevel) {
    MCChildrenNavigationControllerMaximumLevelNone = -1
};

typedef void (^selectedNodeBlock)(id<MCChildrenCollection> node, NSIndexPath *indexPath);
typedef void (^configureChildrenViewControllerBlock)(UIViewController *childrenViewController);
typedef void (^configureEmptyViewControllerBlock)(UIViewController *emptyViewController);
typedef void (^configureTableViewBlock)(UITableView *tableView, id<MCChildrenCollection> node);
typedef void (^configureTableViewCellBlock)(UITableViewCell *cell);
typedef void (^configureTableHeaderViewBlock)(MCTableHeaderViewButton *button, BOOL isSelected);

@interface MCChildrenNavigationController : UINavigationController <MCChildrenViewControllerDelegate>

@property (nonatomic, strong) id<MCChildrenCollection> rootNode;
@property (nonatomic, strong) NSIndexPath *selectedNodeIndexPath;
@property (nonatomic, assign) MCChildrenNavigationControllerSelectionMode selectionMode;
@property (nonatomic, assign) NSInteger maximumLevel;

@property (nonatomic, copy) selectedNodeBlock selectedNodeBlock;
@property (nonatomic, copy) configureChildrenViewControllerBlock configureChildrenViewControllerBlock;
@property (nonatomic, copy) configureEmptyViewControllerBlock configureEmptyViewControllerBlock;
@property (nonatomic, copy) configureTableViewBlock configureTableViewBlock;
@property (nonatomic, copy) configureTableViewCellBlock configureTableViewCellBlock;
@property (nonatomic, copy) configureTableHeaderViewBlock configureTableHeaderViewBlock;<commit_msg>Add enableSpecialRootFeature flag to MCChildrenNavigationController<commit_after>//
//  MCChildrenNavigationController.h
//  MCChildrenNavigationController
//
//  Created by <NAME> on 23/11/13.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "MCChildrenCollection.h"
#import "MCChildrenViewControllerDelegate.h"
#import "MCTableHeaderViewButton.h"

typedef NS_ENUM(NSInteger, MCChildrenNavigationControllerSelectionMode) {
    MCChildrenNavigationControllerSelectionModeAll,
    MCChildrenNavigationControllerSelectionModeNoRoot,
    MCChildrenNavigationControllerSelectionModeLeafs,
    MCChildrenNavigationControllerSelectionModeNone
};

typedef NS_ENUM(NSInteger, MCChildrenNavigationControllerMaximumLevel) {
    MCChildrenNavigationControllerMaximumLevelNone = -1
};

typedef void (^selectedNodeBlock)(id<MCChildrenCollection> node, NSIndexPath *indexPath);
typedef void (^configureChildrenViewControllerBlock)(UIViewController *childrenViewController);
typedef void (^configureEmptyViewControllerBlock)(UIViewController *emptyViewController);
typedef void (^configureTableViewBlock)(UITableView *tableView, id<MCChildrenCollection> node);
typedef void (^configureTableViewCellBlock)(UITableViewCell *cell);
typedef void (^configureTableHeaderViewBlock)(MCTableHeaderViewButton *button, BOOL isSelected);

@interface MCChildrenNavigationController : UINavigationController <MCChildrenViewControllerDelegate>

@property (nonatomic, strong) id<MCChildrenCollection> rootNode;
@property (nonatomic, strong) NSIndexPath *selectedNodeIndexPath;
@property (nonatomic, assign) MCChildrenNavigationControllerSelectionMode selectionMode;
@property (nonatomic, assign) NSInteger maximumLevel;
@property (nonatomic, assign) BOOL enableSpecialRootFeature;

@property (nonatomic, copy) selectedNodeBlock selectedNodeBlock;
@property (nonatomic, copy) configureChildrenViewControllerBlock configureChildrenViewControllerBlock;
@property (nonatomic, copy) configureEmptyViewControllerBlock configureEmptyViewControllerBlock;
@property (nonatomic, copy) configureTableViewBlock configureTableViewBlock;
@property (nonatomic, copy) configureTableViewCellBlock configureTableViewCellBlock;
@property (nonatomic, copy) configureTableHeaderViewBlock configureTableHeaderViewBlock;
{'fraction_non_alphanumeric': 0.07630700778642936, 'fraction_numerical': 0.00489432703003337, 'mean_word_length': 10.708333333333334, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6614957', 'n_tokens_mistral': 1157, 'n_tokens_neox': 1051, 'n_words': 246}