Peter 9bc996374f Add 'submodules/AsyncDisplayKit/' from commit '02bedc12816e251ad71777f9d2578329b6d2bef6'
git-subtree-dir: submodules/AsyncDisplayKit
git-subtree-mainline: d06f423e0ed3df1fed9bd10d79ee312a9179b632
git-subtree-split: 02bedc12816e251ad71777f9d2578329b6d2bef6
2019-06-11 18:42:43 +01:00

67 lines
2.0 KiB
Objective-C

//
// ASMutableElementMap.h
// Texture
//
// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
// Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved.
// Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
//
#ifndef MINIMAL_ASDK
#import <Foundation/Foundation.h>
#import <AsyncDisplayKit/ASBaseDefines.h>
#import <AsyncDisplayKit/ASElementMap.h>
#import <AsyncDisplayKit/ASIntegerMap.h>
NS_ASSUME_NONNULL_BEGIN
@class ASSection, ASCollectionElement, _ASHierarchyChangeSet;
/**
* This mutable version will be removed in the future. It's only here now to keep the diff small
* as we port data controller to use ASElementMap.
*/
AS_SUBCLASSING_RESTRICTED
@interface ASMutableElementMap : NSObject <NSCopying>
- (instancetype)init __unavailable;
- (instancetype)initWithSections:(NSArray<ASSection *> *)sections items:(ASCollectionElementTwoDimensionalArray *)items supplementaryElements:(ASSupplementaryElementDictionary *)supplementaryElements;
- (void)insertSection:(ASSection *)section atIndex:(NSInteger)index;
- (void)removeAllSections;
/// Only modifies the array of ASSection * objects
- (void)removeSectionsAtIndexes:(NSIndexSet *)indexes;
- (void)removeAllElements;
- (void)removeItemsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths;
- (void)removeSectionsOfItems:(NSIndexSet *)itemSections;
- (void)removeSupplementaryElementsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths kind:(NSString *)kind;
- (void)insertEmptySectionsOfItemsAtIndexes:(NSIndexSet *)sections;
- (void)insertElement:(ASCollectionElement *)element atIndexPath:(NSIndexPath *)indexPath;
/**
* Update the index paths for all supplementary elements to account for section-level
* deletes, moves, inserts. This must be called before adding new supplementary elements.
*
* This also deletes any supplementary elements in deleted sections.
*/
- (void)migrateSupplementaryElementsWithSectionMapping:(ASIntegerMap *)mapping;
@end
@interface ASElementMap (MutableCopying) <NSMutableCopying>
@end
NS_ASSUME_NONNULL_END
#endif