gitextract_na4i75rs/ ├── .github/ │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── RELEASE_CHECKLIST.md │ └── workflows/ │ └── CI.yml ├── .gitignore ├── .slather.yml ├── .swiftlint.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── Dangerfile ├── Examples/ │ ├── Examples-iOS/ │ │ ├── IGListKitExamples/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── DelegateProtocols/ │ │ │ │ └── PostSectionControllerDelegate.swift │ │ │ ├── Extensions/ │ │ │ │ ├── UIActivityIndicatorView+Extension.swift │ │ │ │ └── UIColor+Extension.swift │ │ │ ├── IGListKitExamples.entitlements │ │ │ ├── Info.plist │ │ │ ├── Models/ │ │ │ │ ├── APIService.swift │ │ │ │ ├── ActivityItem.swift │ │ │ │ ├── FeedItem.swift │ │ │ │ ├── GridItem.swift │ │ │ │ ├── HorizontalCardsSection.swift │ │ │ │ ├── LoadingCellModel.swift │ │ │ │ ├── Month.swift │ │ │ │ ├── Post.h │ │ │ │ ├── Post.m │ │ │ │ ├── PostModel.swift │ │ │ │ ├── RemodelGeneratedModels/ │ │ │ │ │ ├── PersonModel.h │ │ │ │ │ ├── PersonModel.m │ │ │ │ │ └── PersonModel.value │ │ │ │ ├── SelectionModel.swift │ │ │ │ ├── SwipeActionSection.swift │ │ │ │ ├── User.swift │ │ │ │ └── ViewModels/ │ │ │ │ ├── DayViewModel.swift │ │ │ │ └── MonthTitleViewModel.swift │ │ │ ├── SectionControllers/ │ │ │ │ ├── DemoSectionController.swift │ │ │ │ ├── DisplaySectionController.swift │ │ │ │ ├── EmbeddedSectionController.swift │ │ │ │ ├── ExpandableSectionController.swift │ │ │ │ ├── FeedItemSectionController.swift │ │ │ │ ├── GridSectionController.swift │ │ │ │ ├── HorizontalSectionController.swift │ │ │ │ ├── LabelSectionController.swift │ │ │ │ ├── ListeningSectionController.swift │ │ │ │ ├── LoadingSectionController.swift │ │ │ │ ├── MonthSectionController.swift │ │ │ │ ├── PersonSectionController.h │ │ │ │ ├── PersonSectionController.m │ │ │ │ ├── PostSectionController.h │ │ │ │ ├── PostSectionController.m │ │ │ │ ├── PostSectionController.swift │ │ │ │ ├── RemoveSectionController.swift │ │ │ │ ├── ReorderableSectionController.swift │ │ │ │ ├── SearchSectionController.swift │ │ │ │ ├── SelfSizingSectionController.swift │ │ │ │ ├── StoryboardLabelSectionController.swift │ │ │ │ ├── UserSectionController.swift │ │ │ │ ├── With Composable Layout/ │ │ │ │ │ ├── ActivityComposableSectionController.swift │ │ │ │ │ ├── ExpandableComposableSectionController.swift │ │ │ │ │ ├── GridComposableSectionController.swift │ │ │ │ │ ├── HorizontalComposableSectionController.swift │ │ │ │ │ ├── SelectionComposableSectionController.swift │ │ │ │ │ ├── SwipeActionComposabelSectionController.swift │ │ │ │ │ └── UserComposableSectionController.swift │ │ │ │ └── WorkingRangeSectionController.swift │ │ │ ├── Storyboard/ │ │ │ │ └── Demo.storyboard │ │ │ ├── Systems/ │ │ │ │ └── IncrementAnnouncer.swift │ │ │ ├── ViewControllers/ │ │ │ │ ├── AnnouncingDepsViewController.swift │ │ │ │ ├── CalendarViewController.swift │ │ │ │ ├── CompositionLayoutViewController.swift │ │ │ │ ├── DemosViewController.swift │ │ │ │ ├── DiffTableViewController.swift │ │ │ │ ├── DisplayViewController.swift │ │ │ │ ├── EmptyViewController.swift │ │ │ │ ├── FeedViewController.swift │ │ │ │ ├── IGListKitExamples-Bridging-Header.h │ │ │ │ ├── LoadMoreViewController.swift │ │ │ │ ├── MixedDataViewController.swift │ │ │ │ ├── NestedAdapterViewController.swift │ │ │ │ ├── ObjcDemoViewController.h │ │ │ │ ├── ObjcDemoViewController.m │ │ │ │ ├── ObjcGeneratedModelDemoViewController.h │ │ │ │ ├── ObjcGeneratedModelDemoViewController.m │ │ │ │ ├── ReorderableViewController.swift │ │ │ │ ├── SearchViewController.swift │ │ │ │ ├── SelfSizingCellsViewController.swift │ │ │ │ ├── SingleSectionStoryboardViewController.swift │ │ │ │ ├── SingleSectionViewController.swift │ │ │ │ ├── StoryboardViewController.swift │ │ │ │ ├── SupplementaryViewController.swift │ │ │ │ └── WorkingRangeViewController.swift │ │ │ └── Views/ │ │ │ ├── CalendarDayCell.swift │ │ │ ├── CenterLabelCell.swift │ │ │ ├── CommentCell.h │ │ │ ├── CommentCell.m │ │ │ ├── CompositionLayoutCell.swift │ │ │ ├── DetailLabelCell.swift │ │ │ ├── EmbeddedCollectionViewCell.swift │ │ │ ├── FullWidthSelfSizingCell.swift │ │ │ ├── ImageCell.swift │ │ │ ├── InteractiveCell.h │ │ │ ├── InteractiveCell.m │ │ │ ├── LabelCell.swift │ │ │ ├── LoadingCell.swift │ │ │ ├── ManuallySelfSizingCell.swift │ │ │ ├── MonthTitleCell.swift │ │ │ ├── NibCell.swift │ │ │ ├── NibCell.xib │ │ │ ├── NibSelfSizingCell.swift │ │ │ ├── NibSelfSizingCell.xib │ │ │ ├── PersonCell.h │ │ │ ├── PersonCell.m │ │ │ ├── PhotoCell.h │ │ │ ├── PhotoCell.m │ │ │ ├── PostCell.swift │ │ │ ├── RemoveCell.swift │ │ │ ├── SearchCell.swift │ │ │ ├── SpinnerCell.swift │ │ │ ├── StoryboardCell.swift │ │ │ ├── UserFooterView.swift │ │ │ ├── UserFooterView.xib │ │ │ ├── UserHeaderView.swift │ │ │ ├── UserHeaderView.xib │ │ │ ├── UserInfoCell.h │ │ │ └── UserInfoCell.m │ │ ├── IGListKitExamples-UITests/ │ │ │ ├── DemosViewControllerUITests.swift │ │ │ ├── FeedViewController.swift │ │ │ ├── Info.plist │ │ │ ├── LoadMoreViewControllerUITests.swift │ │ │ ├── MixedDataViewControllerUITests.swift │ │ │ ├── SearchViewControllerUITests.swift │ │ │ └── UITestCase.swift │ │ ├── IGListKitExamples.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ ├── IGListKitExamples.xcscheme │ │ │ ├── IGListKitMessageExample.xcscheme │ │ │ └── IGListKitTodayExample.xcscheme │ │ ├── IGListKitMessageExample/ │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── Contents.json │ │ │ │ └── iMessage App Icon.stickersiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── MessagesViewController.swift │ │ ├── IGListKitTodayExample/ │ │ │ ├── Info.plist │ │ │ └── TodayViewController.swift │ │ └── LICENSE-examples.md │ ├── Examples-macOS/ │ │ ├── IGListKitExamples/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ └── Main.storyboard │ │ │ ├── Data/ │ │ │ │ └── users.json │ │ │ ├── Helpers/ │ │ │ │ ├── IndexSet+Extensions.swift │ │ │ │ ├── Shuffle.swift │ │ │ │ └── UsersProvider.swift │ │ │ ├── Info.plist │ │ │ ├── Models/ │ │ │ │ └── User.swift │ │ │ ├── View/ │ │ │ │ ├── UserCollectionViewCell.swift │ │ │ │ └── UserCollectionViewCell.xib │ │ │ └── ViewControllers/ │ │ │ └── UsersViewController.swift │ │ ├── IGListKitExamples.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ └── IGListKitExamples.xcscheme │ │ └── LICENSE-examples.md │ └── Examples-tvOS/ │ ├── IGListKitExamples/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── App Icon & Top Shelf Image.brandassets/ │ │ │ │ ├── App Icon - Large.imagestack/ │ │ │ │ │ ├── Back.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer/ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── App Icon - Small.imagestack/ │ │ │ │ │ ├── Back.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer/ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Top Shelf Image Wide.imageset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Top Shelf Image.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── LaunchImage.launchimage/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Models/ │ │ │ └── NSObject+IGListDiffable.swift │ │ ├── SectionControllers/ │ │ │ ├── CarouselSectionController.swift │ │ │ ├── DemoSectionController.swift │ │ │ ├── HorizontalSectionController.swift │ │ │ └── LabelSectionController.swift │ │ ├── ViewControllers/ │ │ │ ├── DemosViewController.swift │ │ │ └── NestedAdapterViewController.swift │ │ └── Views/ │ │ ├── CarouselCell.swift │ │ ├── CarouselCell.xib │ │ ├── DemoCell.swift │ │ ├── EmbeddedCollectionViewCell.swift │ │ └── LabelCell.swift │ ├── IGListKitExamples.xcodeproj/ │ │ ├── project.pbxproj │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── IGListKitExamples.xcscheme │ └── LICENSE-examples.md ├── Gemfile ├── Guides/ │ ├── Best Practices and FAQ.md │ ├── Generating your models using remodel.md │ ├── Getting Started.md │ ├── IGListDiffable and Equality.md │ ├── Installation.md │ ├── Migration.md │ ├── Modeling and Binding.md │ ├── VISION.md │ ├── Working with Core Data.md │ └── Working with UICollectionView.md ├── IGListDiffKit.podspec ├── IGListKit.podspec ├── IGListKit.xcodeproj/ │ ├── project.pbxproj │ └── xcshareddata/ │ └── xcschemes/ │ ├── IGListKit-macOS.xcscheme │ ├── IGListKit-tvOS.xcscheme │ └── IGListKit.xcscheme ├── IGListSwiftKit.podspec ├── LICENSE.md ├── Package.swift ├── README.md ├── README.zh.md ├── Source/ │ ├── IGListDiffKit/ │ │ ├── IGListAssert.h │ │ ├── IGListBatchUpdateData.h │ │ ├── IGListBatchUpdateData.mm │ │ ├── IGListCompatibility.h │ │ ├── IGListDiff.h │ │ ├── IGListDiff.mm │ │ ├── IGListDiffKit.h │ │ ├── IGListDiffable.h │ │ ├── IGListExperiments.h │ │ ├── IGListIndexPathResult.h │ │ ├── IGListIndexPathResult.m │ │ ├── IGListIndexSetResult.h │ │ ├── IGListIndexSetResult.m │ │ ├── IGListMacros.h │ │ ├── IGListMoveIndex.h │ │ ├── IGListMoveIndex.m │ │ ├── IGListMoveIndexPath.h │ │ ├── IGListMoveIndexPath.m │ │ ├── Internal/ │ │ │ ├── IGListIndexPathResultInternal.h │ │ │ ├── IGListIndexSetResultInternal.h │ │ │ ├── IGListMoveIndexInternal.h │ │ │ └── IGListMoveIndexPathInternal.h │ │ ├── NSNumber+IGListDiffable.h │ │ ├── NSNumber+IGListDiffable.m │ │ ├── NSString+IGListDiffable.h │ │ └── NSString+IGListDiffable.m │ ├── IGListKit/ │ │ ├── IGListAdapter.h │ │ ├── IGListAdapter.m │ │ ├── IGListAdapterDataSource.h │ │ ├── IGListAdapterDelegate.h │ │ ├── IGListAdapterDelegateAnnouncer.h │ │ ├── IGListAdapterDelegateAnnouncer.m │ │ ├── IGListAdapterMoveDelegate.h │ │ ├── IGListAdapterPerformanceDelegate.h │ │ ├── IGListAdapterUpdateListener.h │ │ ├── IGListAdapterUpdater.h │ │ ├── IGListAdapterUpdater.m │ │ ├── IGListAdapterUpdaterDelegate.h │ │ ├── IGListBatchContext.h │ │ ├── IGListBindable.h │ │ ├── IGListBindingSectionController.h │ │ ├── IGListBindingSectionController.m │ │ ├── IGListBindingSectionControllerDataSource.h │ │ ├── IGListBindingSectionControllerSelectionDelegate.h │ │ ├── IGListBindingSingleSectionController.h │ │ ├── IGListBindingSingleSectionController.m │ │ ├── IGListCollectionContext.h │ │ ├── IGListCollectionScrollingTraits.h │ │ ├── IGListCollectionView.h │ │ ├── IGListCollectionView.m │ │ ├── IGListCollectionViewDelegateLayout.h │ │ ├── IGListCollectionViewLayout.h │ │ ├── IGListCollectionViewLayout.mm │ │ ├── IGListCollectionViewLayoutCompatible.h │ │ ├── IGListCollectionViewLayoutInvalidationContext.h │ │ ├── IGListCollectionViewLayoutInvalidationContext.m │ │ ├── IGListDisplayDelegate.h │ │ ├── IGListGenericSectionController.h │ │ ├── IGListGenericSectionController.m │ │ ├── IGListKit.h │ │ ├── IGListReloadDataUpdater.h │ │ ├── IGListReloadDataUpdater.m │ │ ├── IGListScrollDelegate.h │ │ ├── IGListSectionController.h │ │ ├── IGListSectionController.m │ │ ├── IGListSingleSectionController.h │ │ ├── IGListSingleSectionController.m │ │ ├── IGListSupplementaryViewSource.h │ │ ├── IGListTransitionData.h │ │ ├── IGListTransitionData.m │ │ ├── IGListTransitionDelegate.h │ │ ├── IGListUpdatingDelegate.h │ │ ├── IGListWorkingRangeDelegate.h │ │ ├── Internal/ │ │ │ ├── IGListAdapter+DebugDescription.h │ │ │ ├── IGListAdapter+DebugDescription.m │ │ │ ├── IGListAdapter+UICollectionView.h │ │ │ ├── IGListAdapter+UICollectionView.m │ │ │ ├── IGListAdapterDelegateAnnouncerInternal.h │ │ │ ├── IGListAdapterInternal.h │ │ │ ├── IGListAdapterProxy.h │ │ │ ├── IGListAdapterProxy.m │ │ │ ├── IGListAdapterUpdater+DebugDescription.h │ │ │ ├── IGListAdapterUpdater+DebugDescription.m │ │ │ ├── IGListAdapterUpdaterHelpers.h │ │ │ ├── IGListAdapterUpdaterHelpers.m │ │ │ ├── IGListAdapterUpdaterInternal.h │ │ │ ├── IGListArrayUtilsInternal.h │ │ │ ├── IGListArrayUtilsInternal.m │ │ │ ├── IGListBatchUpdateData+DebugDescription.h │ │ │ ├── IGListBatchUpdateData+DebugDescription.m │ │ │ ├── IGListBatchUpdateState.h │ │ │ ├── IGListBatchUpdateTransaction.h │ │ │ ├── IGListBatchUpdateTransaction.m │ │ │ ├── IGListBindingSectionController+DebugDescription.h │ │ │ ├── IGListBindingSectionController+DebugDescription.m │ │ │ ├── IGListCollectionViewLayoutInternal.h │ │ │ ├── IGListDataSourceChangeTransaction.h │ │ │ ├── IGListDataSourceChangeTransaction.m │ │ │ ├── IGListDebugger.h │ │ │ ├── IGListDebugger.m │ │ │ ├── IGListDebuggingUtilities.h │ │ │ ├── IGListDebuggingUtilities.m │ │ │ ├── IGListDefaultExperiments.h │ │ │ ├── IGListDisplayHandler.h │ │ │ ├── IGListDisplayHandler.m │ │ │ ├── IGListItemUpdatesCollector.h │ │ │ ├── IGListItemUpdatesCollector.m │ │ │ ├── IGListPerformDiff.h │ │ │ ├── IGListPerformDiff.m │ │ │ ├── IGListReloadIndexPath.h │ │ │ ├── IGListReloadIndexPath.m │ │ │ ├── IGListReloadTransaction.h │ │ │ ├── IGListReloadTransaction.m │ │ │ ├── IGListSectionControllerInternal.h │ │ │ ├── IGListSectionMap+DebugDescription.h │ │ │ ├── IGListSectionMap+DebugDescription.m │ │ │ ├── IGListSectionMap.h │ │ │ ├── IGListSectionMap.m │ │ │ ├── IGListUpdateCoalescer.h │ │ │ ├── IGListUpdateCoalescer.m │ │ │ ├── IGListUpdateTransactable.h │ │ │ ├── IGListUpdateTransactionBuilder.h │ │ │ ├── IGListUpdateTransactionBuilder.m │ │ │ ├── IGListViewVisibilityTracker.h │ │ │ ├── IGListViewVisibilityTracker.m │ │ │ ├── IGListViewVisibilityTrackerInternal.h │ │ │ ├── IGListWorkingRangeHandler.h │ │ │ ├── IGListWorkingRangeHandler.mm │ │ │ ├── UICollectionView+DebugDescription.h │ │ │ ├── UICollectionView+DebugDescription.m │ │ │ ├── UICollectionView+IGListBatchUpdateData.h │ │ │ ├── UICollectionView+IGListBatchUpdateData.m │ │ │ ├── UICollectionViewLayout+InteractiveReordering.h │ │ │ ├── UICollectionViewLayout+InteractiveReordering.m │ │ │ ├── UIScrollView+IGListKit.h │ │ │ ├── UIScrollView+IGListKit.m │ │ │ └── UIViewController+IGListAdapterInternal.h │ │ ├── UIViewController+IGListAdapter.h │ │ └── UIViewController+IGListAdapter.m │ ├── IGListSwiftKit/ │ │ ├── IGListAdapter+Async.swift │ │ ├── IGListCollectionContext+Refinements.swift │ │ ├── IGListSingleSectionController+Refinements.swift │ │ ├── IGListSwiftKit.h │ │ ├── ListIdentifiable.swift │ │ └── ListValueSectionController.swift │ └── Info.plist ├── Tests/ │ ├── Assets/ │ │ ├── IGTestNibCell.xib │ │ ├── IGTestNibSupplementaryView.xib │ │ └── IGTestStoryboard.storyboard │ ├── IGListAdapterDelegateAnnouncerTests.m │ ├── IGListAdapterE2ETests.m │ ├── IGListAdapterProxyTests.m │ ├── IGListAdapterStoryboardTests.m │ ├── IGListAdapterTests.m │ ├── IGListAdapterUpdaterTests.m │ ├── IGListBatchUpdateDataTests.m │ ├── IGListBindingSectionControllerTests.m │ ├── IGListBindingSingleSectionControllerTests.m │ ├── IGListCollectionScrollingTraitsTests.m │ ├── IGListCollectionViewLayoutTests.m │ ├── IGListCollectionViewTests.m │ ├── IGListContentInsetTests.m │ ├── IGListDebugDescriptionTests.m │ ├── IGListDebuggerTests.m │ ├── IGListDiffDescriptionStringTests.m │ ├── IGListDiffResultTests.m │ ├── IGListDiffSwiftTests.swift │ ├── IGListDiffTests.h │ ├── IGListDiffTests.m │ ├── IGListDisplayHandlerTests.m │ ├── IGListGenericSectionControllerTests.m │ ├── IGListInteractiveMovingTests.m │ ├── IGListItemUpdatesCollectorTests.m │ ├── IGListKitTests-Bridging-Header.h │ ├── IGListPerformDiffTests.m │ ├── IGListReloadDataUpdaterTests.m │ ├── IGListSectionControllerTests.m │ ├── IGListSectionMapTests.m │ ├── IGListSingleNibItemControllerTests.m │ ├── IGListSingleSectionControllerTests.m │ ├── IGListSingleStoryboardItemControllerTests.m │ ├── IGListTestCase.h │ ├── IGListTestCase.m │ ├── IGListTestHelpers.h │ ├── IGListTransactionTests.m │ ├── IGListUpdateCoalescerTests.m │ ├── IGListViewVisibilityTrackerTests.m │ ├── IGListWorkingRangeHandlerTests.m │ ├── Info.plist │ ├── Objects/ │ │ ├── IGLayoutTestDataSource.h │ │ ├── IGLayoutTestDataSource.m │ │ ├── IGLayoutTestItem.h │ │ ├── IGLayoutTestItem.m │ │ ├── IGLayoutTestSection.h │ │ ├── IGLayoutTestSection.m │ │ ├── IGListAdapterUpdateTester.h │ │ ├── IGListAdapterUpdateTester.m │ │ ├── IGListTestAdapterDataSource.h │ │ ├── IGListTestAdapterDataSource.m │ │ ├── IGListTestAdapterHorizontalDataSource.h │ │ ├── IGListTestAdapterHorizontalDataSource.m │ │ ├── IGListTestAdapterReorderingDataSource.h │ │ ├── IGListTestAdapterReorderingDataSource.m │ │ ├── IGListTestAdapterStoryboardDataSource.h │ │ ├── IGListTestAdapterStoryboardDataSource.m │ │ ├── IGListTestCollectionViewLayout.h │ │ ├── IGListTestCollectionViewLayout.m │ │ ├── IGListTestContainerSizeSection.h │ │ ├── IGListTestContainerSizeSection.m │ │ ├── IGListTestHorizontalSection.h │ │ ├── IGListTestHorizontalSection.m │ │ ├── IGListTestOffsettingLayout.h │ │ ├── IGListTestOffsettingLayout.m │ │ ├── IGListTestSection.h │ │ ├── IGListTestSection.m │ │ ├── IGListTestStoryboardSection.h │ │ ├── IGListTestStoryboardSection.m │ │ ├── IGListTestUICollectionViewDataSource.h │ │ ├── IGListTestUICollectionViewDataSource.m │ │ ├── IGTestBindingSingleItemDataSource.h │ │ ├── IGTestBindingSingleItemDataSource.m │ │ ├── IGTestBindingWithoutDeselectionDelegate.h │ │ ├── IGTestBindingWithoutDeselectionDelegate.m │ │ ├── IGTestCell.h │ │ ├── IGTestCell.m │ │ ├── IGTestDelegateController.h │ │ ├── IGTestDelegateController.m │ │ ├── IGTestDelegateDataSource.h │ │ ├── IGTestDelegateDataSource.m │ │ ├── IGTestDiffingDataSource.h │ │ ├── IGTestDiffingDataSource.m │ │ ├── IGTestDiffingObject.h │ │ ├── IGTestDiffingObject.m │ │ ├── IGTestDiffingSectionController.h │ │ ├── IGTestDiffingSectionController.m │ │ ├── IGTestInvalidateLayoutDataSource.h │ │ ├── IGTestInvalidateLayoutDataSource.m │ │ ├── IGTestInvalidateLayoutObject.h │ │ ├── IGTestInvalidateLayoutObject.m │ │ ├── IGTestInvalidateLayoutSectionController.h │ │ ├── IGTestInvalidateLayoutSectionController.m │ │ ├── IGTestNibSupplementaryView.h │ │ ├── IGTestNibSupplementaryView.m │ │ ├── IGTestNumberBindableCell.h │ │ ├── IGTestNumberBindableCell.m │ │ ├── IGTestObject.h │ │ ├── IGTestObject.m │ │ ├── IGTestReorderableSection.h │ │ ├── IGTestReorderableSection.m │ │ ├── IGTestSingleItemDataSource.h │ │ ├── IGTestSingleItemDataSource.m │ │ ├── IGTestSingleNibItemDataSource.h │ │ ├── IGTestSingleNibItemDataSource.m │ │ ├── IGTestSingleStoryboardItemDataSource.h │ │ ├── IGTestSingleStoryboardItemDataSource.m │ │ ├── IGTestSingleWithoutDeselectionDelegate.h │ │ ├── IGTestSingleWithoutDeselectionDelegate.m │ │ ├── IGTestStoryboardCell.h │ │ ├── IGTestStoryboardCell.m │ │ ├── IGTestStoryboardSupplementarySource.h │ │ ├── IGTestStoryboardSupplementarySource.m │ │ ├── IGTestStoryboardSupplementaryView.h │ │ ├── IGTestStoryboardSupplementaryView.m │ │ ├── IGTestStoryboardViewController.h │ │ ├── IGTestStoryboardViewController.m │ │ ├── IGTestStringBindableCell.h │ │ ├── IGTestStringBindableCell.m │ │ ├── IGTestSupplementarySource.h │ │ └── IGTestSupplementarySource.m │ └── UIViewControllerIGListAdapterTests.m ├── docs/ │ ├── Categories/ │ │ └── UIViewController(IGListAdapter).html │ ├── Categories.html │ ├── Classes/ │ │ ├── IGListAdapter.html │ │ ├── IGListAdapterDelegateAnnouncer.html │ │ ├── IGListAdapterUpdater.html │ │ ├── IGListBatchUpdateData.html │ │ ├── IGListBindingSectionController.html │ │ ├── IGListBindingSingleSectionController.html │ │ ├── IGListCollectionView.html │ │ ├── IGListCollectionViewLayout.html │ │ ├── IGListCollectionViewLayoutInvalidationContext.html │ │ ├── IGListGenericSectionController.html │ │ ├── IGListIndexPathResult.html │ │ ├── IGListIndexSetResult.html │ │ ├── IGListMoveIndex.html │ │ ├── IGListMoveIndexPath.html │ │ ├── IGListSectionController.html │ │ ├── IGListSingleSectionController.html │ │ └── IGListTransitionData.html │ ├── Classes.html │ ├── Constants.html │ ├── Enums/ │ │ ├── IGListAdapterUpdateType.html │ │ ├── IGListDiffOption.html │ │ └── IGListExperiment.html │ ├── Enums.html │ ├── Functions.html │ ├── Guides.html │ ├── Protocols/ │ │ ├── IGListAdapterDataSource.html │ │ ├── IGListAdapterDelegate.html │ │ ├── IGListAdapterMoveDelegate.html │ │ ├── IGListAdapterPerformanceDelegate.html │ │ ├── IGListAdapterUpdateListener.html │ │ ├── IGListAdapterUpdaterDelegate.html │ │ ├── IGListBatchContext.html │ │ ├── IGListBindable.html │ │ ├── IGListBindingSectionControllerDataSource.html │ │ ├── IGListBindingSectionControllerSelectionDelegate.html │ │ ├── IGListCollectionContext.html │ │ ├── IGListCollectionViewDelegateLayout.html │ │ ├── IGListCollectionViewLayoutCompatible.html │ │ ├── IGListDiffable.html │ │ ├── IGListDisplayDelegate.html │ │ ├── IGListScrollDelegate.html │ │ ├── IGListSingleSectionControllerDelegate.html │ │ ├── IGListSupplementaryViewSource.html │ │ ├── IGListTransitionDelegate.html │ │ ├── IGListUpdatingDelegate.html │ │ └── IGListWorkingRangeDelegate.html │ ├── Protocols.html │ ├── Structs/ │ │ ├── IGListAdaptiveCoalescingExperimentConfig.html │ │ ├── IGListAdaptiveDiffingExperimentConfig.html │ │ └── IGListCollectionScrollingTraits.html │ ├── Structs.html │ ├── Type Definitions/ │ │ ├── IGListAdaptiveCoalescingExperimentConfig/ │ │ │ └── IGListAdaptiveCoalescingExperimentConfig.html │ │ ├── IGListAdaptiveCoalescingExperimentConfig.html │ │ ├── IGListAdaptiveDiffingExperimentConfig/ │ │ │ └── IGListAdaptiveDiffingExperimentConfig.html │ │ ├── IGListAdaptiveDiffingExperimentConfig.html │ │ ├── IGListCollectionScrollingTraits/ │ │ │ └── IGListCollectionScrollingTraits.html │ │ └── IGListCollectionScrollingTraits.html │ ├── Type Definitions.html │ ├── best-practices-and-faq.html │ ├── css/ │ │ ├── highlight.css │ │ └── jazzy.css │ ├── generating-your-models-using-remodel.html │ ├── getting-started.html │ ├── iglistdiffable-and-equality.html │ ├── index.html │ ├── installation.html │ ├── js/ │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ └── typeahead.jquery.js │ ├── migration.html │ ├── modeling-and-binding.html │ ├── search.json │ ├── undocumented.json │ ├── vision.html │ ├── working-with-core-data.html │ └── working-with-uicollectionview.html ├── remodel-plugin/ │ ├── features/ │ │ └── iglistdiffable.feature │ └── src/ │ ├── __tests__/ │ │ └── plugins/ │ │ └── iglistdiffable-test.ts │ └── plugins/ │ ├── iglistdiffable-utils.ts │ └── iglistdiffable.ts └── scripts/ ├── build_docs.sh ├── generate_spm_sources_layout.sh ├── lint.sh └── version.sh