ViewRegistrationInfo
@@ -129,56 +135,15 @@
-ReactiveLists
provides a React-like API for UITableView
and UICollectionView
that makes it easy to write stateless code that generates user interfaces.
+ReactiveLists
provides a React-like API for UITableView
and UICollectionView
that makes it easy to write stateless code that generates user interfaces.
-Instead of spreading the definition of your content over various data source methods, you can define the content as concisely as in the real-world example below.
+In our experience this can make UI code significantly easier to read and maintain. Instead of spreading the definition of your content over various data source methods, you can define the content concisely. The table or collection content and layout are immediately obvious by scanning over the source code.
Features
- React-like declarative API for
UITableView
and UICollectionView
- Automatic UI updates, whenever your models change
-Real-world example
-// Describes how model data maps to a `TableViewModel`
-func tableViewModelForState(_ state: AnnotationFilterState) -> TableViewModel {
- let shareStatusSection = TableViewSectionViewModel(
- headerTitle: "Share Status",
- headerHeight: 28,
- cellViewModels: cellViewModelsForGroup(state.shareStatusFilters)
- )
-
- let issueFilterSection = TableViewSectionViewModel(
- headerTitle: "Issue Filters",
- headerHeight: 28,
- cellViewModels: cellViewModelsForGroup(state.issueFilters)
- )
-
- return TableViewModel(sectionModels: [
- shareStatusSection,
- issueFilterSection
- ])
-}
-
-/// Describes how individual models map to cells
-static func cellViewModelsForGroup(
- _ group: [RepresentableAnnotationFilter]
-) -> [TableViewCellViewModel] {
- return group.flatMap { filter in
- if let filter = filter as? AnnotationTypeFilter {
- return AnnotationTypeFilterCellViewModel(filter: filter)
- } else if let filter = filter as? AnnotationFilterType {
- return AnnotationFilterCellViewModel(filter: filter)
- } else if let filterGroup = filter as? AnnotationFilterGroupType {
- return AnnotationFilterGroupCellViewModel(filterGroup:filterGroup)
- }
- return nil
- }
-}
-
-
-In our experience this can make UI code significantly easier to read and maintain. The table content & layout becomes obvious just by scanning over the source code.
-
-For long-term goals and direction, please see VISION.md
.
Project Status
An early version of the UITableView
support has been shipping in the PlanGrid app since late 2015 and is now used accross wide parts of the app. The support for UICollectionView
is less mature as we only use UICollectionView
in very few places.
@@ -198,6 +163,9 @@ Project Status
⚠️ Experimental |
+Vision
+
+For long-term goals and direction, please see VISION.md
.
Getting Started
Read our Getting Started Guide to learn how to use ReactiveLists
.
@@ -205,7 +173,7 @@ Documentation
Read our documentation here. Generated with jazzy. Hosted by GitHub Pages.
Generating docs
-$ ./scripts/gen_docs.sh
+$ ./scripts/gen_docs.sh
Requirements
@@ -238,8 +206,8 @@ License
diff --git a/docs/search.json b/docs/search.json
index 4ef54a8..19cfcd0 100644
--- a/docs/search.json
+++ b/docs/search.json
@@ -1 +1 @@
-{"Typealiases.html#/s:13ReactiveLists10DiffingKeya":{"name":"DiffingKey","abstract":"Unique identifier for a DiffableView
"},"Structs/CollectionViewSectionViewModel.html#/s:13ReactiveLists021CollectionViewSectionD5ModelV10diffingKeySSSgv":{"name":"diffingKey","abstract":"The key used by the diffing algorithm to uniquely identify this section.","parent_name":"CollectionViewSectionViewModel"},"Structs/CollectionViewSectionViewModel.html#/s:13ReactiveLists021CollectionViewSectionD5ModelVACSayAA0cd4CelldF0_pG04cellD6Models_AA0cd13SupplementarydF0_pSg06headerdF0AH06footerdF0SSSg10diffingKeytcfc":{"name":"init(cellViewModels:headerViewModel:footerViewModel:diffingKey:)","abstract":"
Initializes a collection view section view model.
","parent_name":"CollectionViewSectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelV13sectionModelsSayAA0cd7SectiondE0VGv":{"name":"sectionModels","abstract":"The section view models for this collection view.
","parent_name":"CollectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelVACSayAA0cd7SectiondE0VG13sectionModels_tcfc":{"name":"init(sectionModels:)","abstract":"Initializes a collection view model with the sections provided.
","parent_name":"CollectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelV9subscriptAA0cd7SectiondE0VSgSici":{"name":"subscript(_:)","abstract":"Returns the section model at the specified index or nil
if no such section exists.
","parent_name":"CollectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelV9subscriptAA0cd4CelldE0_pSg10Foundation9IndexPathVci":{"name":"subscript(_:)","abstract":"Returns the cell view model at the specified index path or nil
if no such cell exists.
","parent_name":"CollectionViewModel"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoV18registrationMethodAA0d12RegistrationG0Ov":{"name":"registrationMethod","abstract":"Stores how the view was registered (as a class or via a nib file)
","parent_name":"SupplementaryViewInfo"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoV15reuseIdentifierSSv":{"name":"reuseIdentifier","abstract":"The reuse identifier for this supplementary view
","parent_name":"SupplementaryViewInfo"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoV4kindAA0cD4KindOv":{"name":"kind","abstract":"The kind of supplementary view (e.g. header
or footer
)
","parent_name":"SupplementaryViewInfo"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoV19accessibilityFormatAA0c13AccessibilityG0Vv":{"name":"accessibilityFormat","abstract":"TableViewDataSource
and CollectionViewDataSource
will automatically apply","parent_name":"SupplementaryViewInfo"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoVAcA0D18RegistrationMethodO012registrationG0_SS15reuseIdentifierAA0cD4KindO4kindAA0C19AccessibilityFormatV013accessibilityN0tcfc":{"name":"init(registrationMethod:reuseIdentifier:kind:accessibilityFormat:)","abstract":"
Initializes the metadata for a supplementary view.
","parent_name":"SupplementaryViewInfo"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV18sectionIndexTitlesSaySSGSgv":{"name":"sectionIndexTitles","abstract":"The section index titles for this table view.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV13sectionModelsSayAA0cd7SectiondE0VGv":{"name":"sectionModels","abstract":"The section view models for this table view.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV7isEmptySbv":{"name":"isEmpty","abstract":"Returns true
if this table has no sections or has a single empty section.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelVACSayAA0cd4CelldE0_pG04cellD6Models_tcfc":{"name":"init(cellViewModels:)","abstract":"Initializes a table view model with one section and the cell models provided","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelVACSayAA0cd7SectiondE0VG13sectionModels_SaySSGSg0G11IndexTitlestcfc":{"name":"init(sectionModels:sectionIndexTitles:)","abstract":"
Initializes a table view model with the sections provided.","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV9subscriptAA0cd7SectiondE0VSgSici":{"name":"subscript(_:)","abstract":"
Returns the section model at the specified index or nil
if no such section exists.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV9subscriptAA0cd4CelldE0_pSg10Foundation9IndexPathVci":{"name":"subscript(_:)","abstract":"Returns the cell view model at the specified index path or nil
if no such cell exists.
","parent_name":"TableViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelV04cellD6ModelsSayAA0cd4CelldF0_pGv":{"name":"cellViewModels","abstract":"Cells to be shown in this section.
","parent_name":"TableViewSectionViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelV06headerdF0AA0cde12HeaderFooterdF0_pSgv":{"name":"headerViewModel","abstract":"View model for the header of this section.
","parent_name":"TableViewSectionViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelV06footerdF0AA0cde12HeaderFooterdF0_pSgv":{"name":"footerViewModel","abstract":"View model for the footer of this section.
","parent_name":"TableViewSectionViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelV9collapsedSbv":{"name":"collapsed","abstract":"Indicates whether or not this section is collapsed.
","parent_name":"TableViewSectionViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelV10diffingKeySSSgv":{"name":"diffingKey","abstract":"The key used by the diffing algorithm to uniquely identify this section.","parent_name":"TableViewSectionViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelV7isEmptySbv":{"name":"isEmpty","abstract":"
Returns true
is the section is empty, false
otherwise.
","parent_name":"TableViewSectionViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelVACSayAA0cd4CelldF0_pG04cellD6Models_AA0cde12HeaderFooterdF0_pSg06headerdF0AH06footerdF0Sb9collapsedSSSg10diffingKeytcfc":{"name":"init(cellViewModels:headerViewModel:footerViewModel:collapsed:diffingKey:)","abstract":"Initializes a TableViewSectionViewModel
.
","parent_name":"TableViewSectionViewModel"},"Structs/TableViewSectionViewModel.html#/s:13ReactiveLists016TableViewSectionD5ModelVACSSSg11headerTitle_12CoreGraphics7CGFloatVSg0G6HeightSayAA0cd4CelldF0_pG04cellD6ModelsAD06footerH0AI0pL0AD10diffingKeytcfc":{"name":"init(headerTitle:headerHeight:cellViewModels:footerTitle:footerHeight:diffingKey:)","abstract":"Initializes a TableViewSectionViewModel
.
","parent_name":"TableViewSectionViewModel"},"Structs/ViewRegistrationInfo.html#/s:13ReactiveLists20ViewRegistrationInfoVACyXlXp9classType_tcfc":{"name":"init(classType:)","abstract":"Undocumented
","parent_name":"ViewRegistrationInfo"},"Structs/ViewRegistrationInfo.html#/s:13ReactiveLists20ViewRegistrationInfoVACyXlXp9classType_SS7nibNameSo6BundleCSg6bundletcfc":{"name":"init(classType:nibName:bundle:)","abstract":"Undocumented
","parent_name":"ViewRegistrationInfo"},"Structs/ViewRegistrationInfo.html":{"name":"ViewRegistrationInfo","abstract":"Undocumented
"},"Structs/TableViewSectionViewModel.html":{"name":"TableViewSectionViewModel","abstract":"View model for a table view section.
"},"Structs/TableViewModel.html":{"name":"TableViewModel","abstract":"The view model that describes a UITableView
.
"},"Structs/SupplementaryViewInfo.html":{"name":"SupplementaryViewInfo","abstract":"Metadata thats required for setting up a supplementary view.
"},"Structs/CollectionViewModel.html":{"name":"CollectionViewModel","abstract":"The view model that describes a UICollectionView
.
"},"Structs/CollectionViewSectionViewModel.html":{"name":"CollectionViewSectionViewModel","abstract":"View model for a collection view section.
"},"Protocols/CollectionViewSupplementaryViewModel.html#/s:13ReactiveLists027CollectionViewSupplementaryD5ModelP8viewInfoAA0edH0VSgv":{"name":"viewInfo","abstract":"Metadata for this supplementary view.
","parent_name":"CollectionViewSupplementaryViewModel"},"Protocols/CollectionViewSupplementaryViewModel.html#/s:13ReactiveLists027CollectionViewSupplementaryD5ModelP6height12CoreGraphics7CGFloatVSgv":{"name":"height","abstract":"Height of this supplementary view.
","parent_name":"CollectionViewSupplementaryViewModel"},"Protocols/CollectionViewSupplementaryViewModel.html#/s:13ReactiveLists027CollectionViewSupplementaryD5ModelP05applydf2ToD0ySo020UICollectionReusableD0CF":{"name":"applyViewModelToView(_:)","abstract":"Asks the supplementary view model to update the UICollectionReusableView
with the content","parent_name":"CollectionViewSupplementaryViewModel"},"Protocols/CollectionViewCellViewModel.html#/s:13ReactiveLists018CollectionViewCellD5ModelP19accessibilityFormatAA0e13AccessibilityH0Vv":{"name":"accessibilityFormat","abstract":"
CollectionViewDriver
will automatically apply an accessibilityIdentifier
to the cell based on this format
","parent_name":"CollectionViewCellViewModel"},"Protocols/CollectionViewCellViewModel.html#/s:13ReactiveLists018CollectionViewCellD5ModelP14cellIdentifierSSv":{"name":"cellIdentifier","abstract":"The reuse identifier for this cell.
","parent_name":"CollectionViewCellViewModel"},"Protocols/CollectionViewCellViewModel.html#/s:13ReactiveLists018CollectionViewCellD5ModelP15shouldHighlightSbv":{"name":"shouldHighlight","abstract":"Whether or not this cell should be highlighted.
","parent_name":"CollectionViewCellViewModel"},"Protocols/CollectionViewCellViewModel.html#/s:13ReactiveLists018CollectionViewCellD5ModelP9didSelectyycSgv":{"name":"didSelect","abstract":"Invoked when a cell has been selected.
","parent_name":"CollectionViewCellViewModel"},"Protocols/CollectionViewCellViewModel.html#/s:13ReactiveLists018CollectionViewCellD5ModelP11didDeselectyycSgv":{"name":"didDeselect","abstract":"Invoked when an accessory button is tapped.
","parent_name":"CollectionViewCellViewModel"},"Protocols/CollectionViewCellViewModel.html#/s:13ReactiveLists018CollectionViewCellD5ModelP05applydf2ToE0ySo012UICollectiondE0CF":{"name":"applyViewModelToCell(_:)","abstract":"Asks the cell model to update the UICollectionViewCell
with the content","parent_name":"CollectionViewCellViewModel"},"Protocols/TableViewSectionHeaderFooterViewModel.html#/s:13ReactiveLists028TableViewSectionHeaderFooterD5ModelP5titleSSSgv":{"name":"title","abstract":"
The title of the header
","parent_name":"TableViewSectionHeaderFooterViewModel"},"Protocols/TableViewSectionHeaderFooterViewModel.html#/s:13ReactiveLists028TableViewSectionHeaderFooterD5ModelP6height12CoreGraphics7CGFloatVSgv":{"name":"height","abstract":"The height of the header
","parent_name":"TableViewSectionHeaderFooterViewModel"},"Protocols/TableViewSectionHeaderFooterViewModel.html#/s:13ReactiveLists028TableViewSectionHeaderFooterD5ModelP8viewInfoAA013SupplementarydJ0VSgv":{"name":"viewInfo","abstract":"Metadata about the custom view type
","parent_name":"TableViewSectionHeaderFooterViewModel"},"Protocols/TableViewSectionHeaderFooterViewModel.html#/s:13ReactiveLists028TableViewSectionHeaderFooterD5ModelP05applydh2ToD0ySo6UIViewCF":{"name":"applyViewModelToView(_:)","abstract":"Asks the view model to update the header/footer","parent_name":"TableViewSectionHeaderFooterViewModel"},"Protocols/TableViewCellModelEditActions.html#/s:13ReactiveLists29TableViewCellModelEditActionsP04editH0SaySo07UITableD9RowActionCGv":{"name":"editActions","abstract":"
Undocumented
","parent_name":"TableViewCellModelEditActions"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP19accessibilityFormatAA0e13AccessibilityH0Vv":{"name":"accessibilityFormat","abstract":"TableViewDriver
will automatically apply an accessibilityIdentifier
to the cell based on this format.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP16registrationInfoAA0d12RegistrationH0Vv":{"name":"registrationInfo","abstract":"The registration info for the cell.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP9rowHeight12CoreGraphics7CGFloatVv":{"name":"rowHeight","abstract":"The height of this cell.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP12editingStyleSC07UITablede7EditingH0Ov":{"name":"editingStyle","abstract":"The editing style for this cell.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP15shouldHighlightSbv":{"name":"shouldHighlight","abstract":"Whether or not this cell should be highlighted.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP24shouldIndentWhileEditingSbv":{"name":"shouldIndentWhileEditing","abstract":"Whether or not this cell should be indented while editing.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP16willBeginEditingyycSgv":{"name":"willBeginEditing","abstract":"Invoked when a cell will begin being edited.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP13didEndEditingyycSgv":{"name":"didEndEditing","abstract":"Invoked when cell editing has ended.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP18commitEditingStyleySC07UITabledehI0OcSgv":{"name":"commitEditingStyle","abstract":"Asks the cell to commit the insertion/deletion.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP9didSelectyycSgv":{"name":"didSelect","abstract":"Invoked when a cell has been selected.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP21accessoryButtonTappedyycSgv":{"name":"accessoryButtonTapped","abstract":"Invoked when an accessory button is tapped.
","parent_name":"TableViewCellViewModel"},"Protocols/TableViewCellViewModel.html#/s:13ReactiveLists013TableViewCellD5ModelP05applydf2ToE0ySo07UITabledE0CF":{"name":"applyViewModelToCell(_:)","abstract":"Asks the cell model to update the UITableViewCell
with the content","parent_name":"TableViewCellViewModel"},"Protocols/DiffableViewModel.html#/s:13ReactiveLists17DiffableViewModelP10diffingKeySSv":{"name":"diffingKey","abstract":"
The key used by the diffing algorithm to uniquely identify an element.","parent_name":"DiffableViewModel"},"Protocols/DiffableViewModel.html":{"name":"DiffableViewModel","abstract":"
A view model that can participate in an automatic diffing algorithm.
"},"Protocols/TableViewCellViewModel.html":{"name":"TableViewCellViewModel","abstract":"View model for the individual cells of a TableViewModel
.
"},"Protocols/TableViewCellModelEditActions.html":{"name":"TableViewCellModelEditActions","abstract":"Protocol that needs to be implemented by table view cell view models"},"Protocols/TableViewSectionHeaderFooterViewModel.html":{"name":"TableViewSectionHeaderFooterViewModel","abstract":"
Protocol that needs to be implemented by custom header"},"Protocols/CollectionViewCellViewModel.html":{"name":"CollectionViewCellViewModel","abstract":"
View model for the individual cells of a UICollectionView
.
"},"Protocols/CollectionViewSupplementaryViewModel.html":{"name":"CollectionViewSupplementaryViewModel","abstract":"View model for supplementary views in collection views.
"},"Enums/SupplementaryViewKind.html#/s:13ReactiveLists21SupplementaryViewKindO6headerA2CmF":{"name":"header","abstract":"Undocumented
","parent_name":"SupplementaryViewKind"},"Enums/SupplementaryViewKind.html#/s:13ReactiveLists21SupplementaryViewKindO6footerA2CmF":{"name":"footer","abstract":"Undocumented
","parent_name":"SupplementaryViewKind"},"Enums/ViewRegistrationMethod.html#/s:13ReactiveLists22ViewRegistrationMethodO9fromClassACyXlXpcACmF":{"name":"fromClass","abstract":"Class-based views
","parent_name":"ViewRegistrationMethod"},"Enums/ViewRegistrationMethod.html#/s:13ReactiveLists22ViewRegistrationMethodO7fromNibACSS4name_So6BundleCSg6bundletcACmF":{"name":"fromNib","abstract":"Nib-based views
","parent_name":"ViewRegistrationMethod"},"Enums/ViewRegistrationMethod.html#/s:s9EquatableP2eeoiSbx_xtFZ":{"name":"==(_:_:)","parent_name":"ViewRegistrationMethod"},"Enums/ViewRegistrationMethod.html":{"name":"ViewRegistrationMethod","abstract":"The method for registering cells and supplementary views
"},"Enums/SupplementaryViewKind.html":{"name":"SupplementaryViewKind","abstract":"Defines the kind of a supplementary view.
"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC010collectionD0So012UICollectionD0Cv":{"name":"collectionView","abstract":"The collection view to which the CollectionViewModel
is rendered.
","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC010collectionD5ModelAA0cdG0VSgv":{"name":"collectionViewModel","abstract":"Describes the current UI state of the collection view.
","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC23automaticDiffingEnabledSbv":{"name":"automaticDiffingEnabled","abstract":"If this property is set to true
, updating the collectionViewModel
will always","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverCACSo012UICollectionD0C010collectionD0_AA0cD5ModelVSg0gdH0Sb27shouldDeselectUponSelectionSb23automaticDiffingEnabledtcfc":{"name":"init(collectionView:collectionViewModel:shouldDeselectUponSelection:automaticDiffingEnabled:)","abstract":"
Initializes a data source that drives a UICollectionView
based on a CollectionViewModel
.
","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC12refreshViewsyyF":{"name":"refreshViews()","abstract":"Updates all currently visible cells and sections, such that they reflect the latest","parent_name":"CollectionViewDriver"},"Classes/TableViewDriver/TableRefreshContext.html#/s:13ReactiveLists15TableViewDriverC0C14RefreshContextO7unknownA2EmF":{"name":"unknown","abstract":"
Undocumented
","parent_name":"TableRefreshContext"},"Classes/TableViewDriver/TableRefreshContext.html#/s:13ReactiveLists15TableViewDriverC0C14RefreshContextO11contentOnlyA2EmF":{"name":"contentOnly","abstract":"Undocumented
","parent_name":"TableRefreshContext"},"Classes/TableViewDriver/TableRefreshContext.html#/s:13ReactiveLists15TableViewDriverC0C14RefreshContextO12rowsModifiedA2EmF":{"name":"rowsModified","abstract":"Undocumented
","parent_name":"TableRefreshContext"},"Classes/TableViewDriver/TableRefreshContext.html":{"name":"TableRefreshContext","abstract":"Communicates information useful for refreshing the table view
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverC05tableD0So07UITableD0Cv":{"name":"tableView","abstract":"The table view to which the TableViewModel
is rendered.
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverC05tableD5ModelAA0cdG0VSgv":{"name":"tableViewModel","abstract":"Describes the current UI state of the table view.
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverCACSo07UITableD0C05tableD0_AA0cD5ModelVSg0gdH0Sb27shouldDeselectUponSelectionSb23automaticDiffingEnabledtcfc":{"name":"init(tableView:tableViewModel:shouldDeselectUponSelection:automaticDiffingEnabled:)","abstract":"Initializes a data source that drives a UITableView
based on a TableViewModel
.
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverC12refreshViewsyAC0C14RefreshContextO0fI0_tF":{"name":"refreshViews(refreshContext:)","abstract":"Updates all currently visible cells and sections, such that they reflect the latest","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html":{"name":"TableViewDriver","abstract":"
A data source that drives the table views appereance and behavior based on an underlying"},"Classes/CollectionViewDriver.html":{"name":"CollectionViewDriver","abstract":"
A data source that drives the collection views appereance and behavior based on an underlying"},"getting-started.html":{"name":"Getting Started"},"vision.html":{"name":"VISION"},"Guides.html":{"name":"Guides","abstract":"
The following guides are available globally.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
+{"Typealiases.html#/s:13ReactiveLists10DiffingKeya":{"name":"DiffingKey","abstract":"Unique identifier for a DiffableView
"},"Structs/CollectionSectionViewModel.html#/s:13ReactiveLists26CollectionSectionViewModelV10diffingKeySSSgv":{"name":"diffingKey","abstract":"The key used by the diffing algorithm to uniquely identify this section.","parent_name":"CollectionSectionViewModel"},"Structs/CollectionSectionViewModel.html#/s:13ReactiveLists26CollectionSectionViewModelVACSayAA0c4CelleF0_pG04cellE6Models_AA0c13SupplementaryeF0_pSg06headereF0AH06footereF0SSSg10diffingKeytcfc":{"name":"init(cellViewModels:headerViewModel:footerViewModel:diffingKey:)","abstract":"
Initializes a collection view section view model.
","parent_name":"CollectionSectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelV13sectionModelsSayAA0c7SectiondE0VGv":{"name":"sectionModels","abstract":"The section view models for this collection view.
","parent_name":"CollectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelVACSayAA0c7SectiondE0VG13sectionModels_tcfc":{"name":"init(sectionModels:)","abstract":"Initializes a collection view model with the sections provided.
","parent_name":"CollectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelV9subscriptAA0c7SectiondE0VSgSici":{"name":"subscript(_:)","abstract":"Returns the section model at the specified index or nil
if no such section exists.
","parent_name":"CollectionViewModel"},"Structs/CollectionViewModel.html#/s:13ReactiveLists19CollectionViewModelV9subscriptAA0c4CelldE0_pSg10Foundation9IndexPathVci":{"name":"subscript(_:)","abstract":"Returns the cell view model at the specified index path or nil
if no such cell exists.
","parent_name":"CollectionViewModel"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoV012registrationE0AA0d12RegistrationE0Vv":{"name":"registrationInfo","abstract":"The registration info for the supplementary view.
","parent_name":"SupplementaryViewInfo"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoV4kindAA0cD4KindOv":{"name":"kind","abstract":"The kind of supplementary view (e.g. header
or footer
)
","parent_name":"SupplementaryViewInfo"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoV19accessibilityFormatAA0c13AccessibilityG0Vv":{"name":"accessibilityFormat","abstract":"TableViewDataSource
and CollectionViewDataSource
will automatically apply","parent_name":"SupplementaryViewInfo"},"Structs/SupplementaryViewInfo.html#/s:13ReactiveLists21SupplementaryViewInfoVAcA0d12RegistrationE0V012registrationE0_AA0cD4KindO4kindAA0C19AccessibilityFormatV013accessibilityK0tcfc":{"name":"init(registrationInfo:kind:accessibilityFormat:)","abstract":"
Initializes the metadata for a supplementary view.
","parent_name":"SupplementaryViewInfo"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV18sectionIndexTitlesSaySSGSgv":{"name":"sectionIndexTitles","abstract":"The section index titles for this table view.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV13sectionModelsSayAA0c7SectiondE0VGv":{"name":"sectionModels","abstract":"The section view models for this table view.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV7isEmptySbv":{"name":"isEmpty","abstract":"Returns true
if this table has no sections or has a single empty section.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelVACSayAA0c4CelldE0_pG04cellD6Models_tcfc":{"name":"init(cellViewModels:)","abstract":"Initializes a table view model with one section and the cell models provided","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelVACSayAA0c7SectiondE0VG13sectionModels_SaySSGSg0G11IndexTitlestcfc":{"name":"init(sectionModels:sectionIndexTitles:)","abstract":"
Initializes a table view model with the sections provided.","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV9subscriptAA0c7SectiondE0VSgSici":{"name":"subscript(_:)","abstract":"
Returns the section model at the specified index or nil
if no such section exists.
","parent_name":"TableViewModel"},"Structs/TableViewModel.html#/s:13ReactiveLists14TableViewModelV9subscriptAA0c4CelldE0_pSg10Foundation9IndexPathVci":{"name":"subscript(_:)","abstract":"Returns the cell view model at the specified index path or nil
if no such cell exists.
","parent_name":"TableViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelV04cellE6ModelsSayAA0c4CelleF0_pGv":{"name":"cellViewModels","abstract":"Cells to be shown in this section.
","parent_name":"TableSectionViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelV06headereF0AA0cd12HeaderFootereF0_pSgv":{"name":"headerViewModel","abstract":"View model for the header of this section.
","parent_name":"TableSectionViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelV06footereF0AA0cd12HeaderFootereF0_pSgv":{"name":"footerViewModel","abstract":"View model for the footer of this section.
","parent_name":"TableSectionViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelV9collapsedSbv":{"name":"collapsed","abstract":"Indicates whether or not this section is collapsed.
","parent_name":"TableSectionViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelV10diffingKeySSSgv":{"name":"diffingKey","abstract":"The key used by the diffing algorithm to uniquely identify this section.","parent_name":"TableSectionViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelV7isEmptySbv":{"name":"isEmpty","abstract":"
Returns true
is the section is empty, false
otherwise.
","parent_name":"TableSectionViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelVACSayAA0c4CelleF0_pG04cellE6Models_AA0cd12HeaderFootereF0_pSg06headereF0AH06footereF0Sb9collapsedSSSg10diffingKeytcfc":{"name":"init(cellViewModels:headerViewModel:footerViewModel:collapsed:diffingKey:)","abstract":"Initializes a TableViewSectionViewModel
.
","parent_name":"TableSectionViewModel"},"Structs/TableSectionViewModel.html#/s:13ReactiveLists21TableSectionViewModelVACSSSg11headerTitle_12CoreGraphics7CGFloatVSg0G6HeightSayAA0c4CelleF0_pG04cellE6ModelsAD06footerH0AI0pL0AD10diffingKeytcfc":{"name":"init(headerTitle:headerHeight:cellViewModels:footerTitle:footerHeight:diffingKey:)","abstract":"Initializes a TableViewSectionViewModel
.
","parent_name":"TableSectionViewModel"},"Structs/ViewRegistrationInfo.html#/s:13ReactiveLists20ViewRegistrationInfoVACyXlXp9classType_tcfc":{"name":"init(classType:)","abstract":"Initializes a new ViewRegistrationInfo
for the provided classType
.
","parent_name":"ViewRegistrationInfo"},"Structs/ViewRegistrationInfo.html#/s:13ReactiveLists20ViewRegistrationInfoVACyXlXp9classType_SS7nibNameSo6BundleCSg6bundletcfc":{"name":"init(classType:nibName:bundle:)","abstract":"Initializes a new ViewRegistrationInfo
for the provided classType
, nibName
, and bundle
.
","parent_name":"ViewRegistrationInfo"},"Structs/ViewRegistrationInfo.html":{"name":"ViewRegistrationInfo","abstract":"Describes the registration information for a cell or supplementary view.
"},"Structs/TableSectionViewModel.html":{"name":"TableSectionViewModel","abstract":"View model for a table view section.
"},"Structs/TableViewModel.html":{"name":"TableViewModel","abstract":"The view model that describes a UITableView
.
"},"Structs/SupplementaryViewInfo.html":{"name":"SupplementaryViewInfo","abstract":"Metadata thats required for setting up a supplementary view.
"},"Structs/CollectionViewModel.html":{"name":"CollectionViewModel","abstract":"The view model that describes a UICollectionView
.
"},"Structs/CollectionSectionViewModel.html":{"name":"CollectionSectionViewModel","abstract":"View model for a collection view section.
"},"Protocols/CollectionSupplementaryViewModel.html#/s:13ReactiveLists32CollectionSupplementaryViewModelP8viewInfoAA0deH0VSgv":{"name":"viewInfo","abstract":"Metadata for this supplementary view.
","parent_name":"CollectionSupplementaryViewModel"},"Protocols/CollectionSupplementaryViewModel.html#/s:13ReactiveLists32CollectionSupplementaryViewModelP6height12CoreGraphics7CGFloatVSgv":{"name":"height","abstract":"Height of this supplementary view.
","parent_name":"CollectionSupplementaryViewModel"},"Protocols/CollectionSupplementaryViewModel.html#/s:13ReactiveLists32CollectionSupplementaryViewModelP05applyef2ToE0ySo020UICollectionReusableE0CF":{"name":"applyViewModelToView(_:)","abstract":"Asks the supplementary view model to update the UICollectionReusableView
with the content","parent_name":"CollectionSupplementaryViewModel"},"Protocols/CollectionCellViewModel.html#/s:13ReactiveLists23CollectionCellViewModelP19accessibilityFormatAA0d13AccessibilityH0Vv":{"name":"accessibilityFormat","abstract":"
CollectionViewDriver
will automatically apply an accessibilityIdentifier
to the cell based on this format
","parent_name":"CollectionCellViewModel"},"Protocols/CollectionCellViewModel.html#/s:13ReactiveLists23CollectionCellViewModelP15shouldHighlightSbv":{"name":"shouldHighlight","abstract":"Whether or not this cell should be highlighted.
","parent_name":"CollectionCellViewModel"},"Protocols/CollectionCellViewModel.html#/s:13ReactiveLists23CollectionCellViewModelP9didSelectyycSgv":{"name":"didSelect","abstract":"Invoked when a cell has been selected.
","parent_name":"CollectionCellViewModel"},"Protocols/CollectionCellViewModel.html#/s:13ReactiveLists23CollectionCellViewModelP11didDeselectyycSgv":{"name":"didDeselect","abstract":"Invoked when an accessory button is tapped.
","parent_name":"CollectionCellViewModel"},"Protocols/CollectionCellViewModel.html#/s:13ReactiveLists23CollectionCellViewModelP05applyef2ToD0ySo012UICollectioneD0CF":{"name":"applyViewModelToCell(_:)","abstract":"Asks the cell model to update the UICollectionViewCell
with the content","parent_name":"CollectionCellViewModel"},"Protocols/ReusableSupplementaryViewModelProtocol.html#/s:13ReactiveLists38ReusableSupplementaryViewModelProtocolP8viewInfoAA0deI0VSgv":{"name":"viewInfo","abstract":"
The registration info for the supplementary view.
","parent_name":"ReusableSupplementaryViewModelProtocol"},"Protocols/ReusableCellViewModelProtocol.html#/s:13ReactiveLists29ReusableCellViewModelProtocolP16registrationInfoAA0e12RegistrationI0Vv":{"name":"registrationInfo","abstract":"The registration info for the cell.
","parent_name":"ReusableCellViewModelProtocol"},"Protocols/TableSectionHeaderFooterViewModel.html#/s:13ReactiveLists33TableSectionHeaderFooterViewModelP5titleSSSgv":{"name":"title","abstract":"The title of the header
","parent_name":"TableSectionHeaderFooterViewModel"},"Protocols/TableSectionHeaderFooterViewModel.html#/s:13ReactiveLists33TableSectionHeaderFooterViewModelP6height12CoreGraphics7CGFloatVSgv":{"name":"height","abstract":"The height of the header
","parent_name":"TableSectionHeaderFooterViewModel"},"Protocols/TableSectionHeaderFooterViewModel.html#/s:13ReactiveLists33TableSectionHeaderFooterViewModelP05applygh2ToG0ySo6UIViewCF":{"name":"applyViewModelToView(_:)","abstract":"Asks the view model to update the header/footer","parent_name":"TableSectionHeaderFooterViewModel"},"Protocols/TableViewCellModelEditActions.html#/s:13ReactiveLists29TableViewCellModelEditActionsP04editH0SaySo07UITableD9RowActionCGv":{"name":"editActions","abstract":"
The row edit actions for the cell.
","parent_name":"TableViewCellModelEditActions"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP19accessibilityFormatAA0d13AccessibilityH0Vv":{"name":"accessibilityFormat","abstract":"TableViewDriver
will automatically apply an accessibilityIdentifier
to the cell based on this format.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP9rowHeight12CoreGraphics7CGFloatVv":{"name":"rowHeight","abstract":"The height of this cell.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP12editingStyleSC07UITableed7EditingH0Ov":{"name":"editingStyle","abstract":"The editing style for this cell.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP15shouldHighlightSbv":{"name":"shouldHighlight","abstract":"Whether or not this cell should be highlighted.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP24shouldIndentWhileEditingSbv":{"name":"shouldIndentWhileEditing","abstract":"Whether or not this cell should be indented while editing.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP16willBeginEditingyycSgv":{"name":"willBeginEditing","abstract":"Invoked when a cell will begin being edited.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP13didEndEditingyycSgv":{"name":"didEndEditing","abstract":"Invoked when cell editing has ended.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP18commitEditingStyleySC07UITableedhI0OcSgv":{"name":"commitEditingStyle","abstract":"Asks the cell to commit the insertion/deletion.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP9didSelectyycSgv":{"name":"didSelect","abstract":"Invoked when a cell has been selected.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP21accessoryButtonTappedyycSgv":{"name":"accessoryButtonTapped","abstract":"Invoked when an accessory button is tapped.
","parent_name":"TableCellViewModel"},"Protocols/TableCellViewModel.html#/s:13ReactiveLists18TableCellViewModelP05applyef2ToD0ySo07UITableeD0CF":{"name":"applyViewModelToCell(_:)","abstract":"Asks the cell model to update the UITableViewCell
with the content","parent_name":"TableCellViewModel"},"Protocols/DiffableViewModel.html#/s:13ReactiveLists17DiffableViewModelP10diffingKeySSv":{"name":"diffingKey","abstract":"
The key used by the diffing algorithm to uniquely identify an element.","parent_name":"DiffableViewModel"},"Protocols/DiffableViewModel.html":{"name":"DiffableViewModel","abstract":"
A view model that can participate in an automatic diffing algorithm.
"},"Protocols/TableCellViewModel.html":{"name":"TableCellViewModel","abstract":"View model for the individual cells of a TableViewModel
.
"},"Protocols/TableViewCellModelEditActions.html":{"name":"TableViewCellModelEditActions","abstract":"Protocol that needs to be implemented by table view cell view models"},"Protocols/TableSectionHeaderFooterViewModel.html":{"name":"TableSectionHeaderFooterViewModel","abstract":"
Protocol that needs to be implemented by custom header"},"Protocols/ReusableCellViewModelProtocol.html":{"name":"ReusableCellViewModelProtocol","abstract":"
Describes a cell view model."},"Protocols/ReusableSupplementaryViewModelProtocol.html":{"name":"ReusableSupplementaryViewModelProtocol","abstract":"
Describes a supplementary view model."},"Protocols/CollectionCellViewModel.html":{"name":"CollectionCellViewModel","abstract":"
View model for the individual cells of a UICollectionView
.
"},"Protocols/CollectionSupplementaryViewModel.html":{"name":"CollectionSupplementaryViewModel","abstract":"View model for supplementary views in collection views.
"},"Enums/SupplementaryViewKind.html#/s:13ReactiveLists21SupplementaryViewKindO6headerA2CmF":{"name":"header","abstract":"A header view.
","parent_name":"SupplementaryViewKind"},"Enums/SupplementaryViewKind.html#/s:13ReactiveLists21SupplementaryViewKindO6footerA2CmF":{"name":"footer","abstract":"A footer view.
","parent_name":"SupplementaryViewKind"},"Enums/ViewRegistrationMethod.html#/s:13ReactiveLists22ViewRegistrationMethodO9fromClassACyXlXpcACmF":{"name":"fromClass","abstract":"Class-based views
","parent_name":"ViewRegistrationMethod"},"Enums/ViewRegistrationMethod.html#/s:13ReactiveLists22ViewRegistrationMethodO7fromNibACSS4name_So6BundleCSg6bundletcACmF":{"name":"fromNib","abstract":"Nib-based views
","parent_name":"ViewRegistrationMethod"},"Enums/ViewRegistrationMethod.html#/s:s9EquatableP2eeoiSbx_xtFZ":{"name":"==(_:_:)","parent_name":"ViewRegistrationMethod"},"Enums/ViewRegistrationMethod.html":{"name":"ViewRegistrationMethod","abstract":"The method for registering cells and supplementary views
"},"Enums/SupplementaryViewKind.html":{"name":"SupplementaryViewKind","abstract":"Defines the kind of a supplementary view.
"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC010collectionD0So012UICollectionD0Cv":{"name":"collectionView","abstract":"The collection view to which the CollectionViewModel
is rendered.
","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC010collectionD5ModelAA0cdG0VSgv":{"name":"collectionViewModel","abstract":"Describes the current UI state of the collection view.
","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC23automaticDiffingEnabledSbv":{"name":"automaticDiffingEnabled","abstract":"If this property is set to true
, updating the collectionViewModel
will always","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverCACSo012UICollectionD0C010collectionD0_AA0cD5ModelVSg0gdH0Sb27shouldDeselectUponSelectionSb23automaticDiffingEnabledtcfc":{"name":"init(collectionView:collectionViewModel:shouldDeselectUponSelection:automaticDiffingEnabled:)","abstract":"
Initializes a data source that drives a UICollectionView
based on a CollectionViewModel
.
","parent_name":"CollectionViewDriver"},"Classes/CollectionViewDriver.html#/s:13ReactiveLists20CollectionViewDriverC12refreshViewsyyF":{"name":"refreshViews()","abstract":"Updates all currently visible cells and sections, such that they reflect the latest","parent_name":"CollectionViewDriver"},"Classes/TableViewDriver/TableRefreshContext.html#/s:13ReactiveLists15TableViewDriverC0C14RefreshContextO7unknownA2EmF":{"name":"unknown","abstract":"
A refresh was requested, but we don’t know if rows/sections are being added/removed
","parent_name":"TableRefreshContext"},"Classes/TableViewDriver/TableRefreshContext.html#/s:13ReactiveLists15TableViewDriverC0C14RefreshContextO11contentOnlyA2EmF":{"name":"contentOnly","abstract":"Only the content of cells is being refreshed. No rows/sections will be added/deleted.
","parent_name":"TableRefreshContext"},"Classes/TableViewDriver/TableRefreshContext.html#/s:13ReactiveLists15TableViewDriverC0C14RefreshContextO12rowsModifiedA2EmF":{"name":"rowsModified","abstract":"Rows/sections are being added/deleted
","parent_name":"TableRefreshContext"},"Classes/TableViewDriver/TableRefreshContext.html":{"name":"TableRefreshContext","abstract":"Communicates information for refreshing the table view.
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverC05tableD0So07UITableD0Cv":{"name":"tableView","abstract":"The table view to which the TableViewModel
is rendered.
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverC05tableD5ModelAA0cdG0VSgv":{"name":"tableViewModel","abstract":"Describes the current UI state of the table view.
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverCACSo07UITableD0C05tableD0_AA0cD5ModelVSg0gdH0Sb27shouldDeselectUponSelectionSb23automaticDiffingEnabledtcfc":{"name":"init(tableView:tableViewModel:shouldDeselectUponSelection:automaticDiffingEnabled:)","abstract":"Initializes a data source that drives a UITableView
based on a TableViewModel
.
","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html#/s:13ReactiveLists15TableViewDriverC12refreshViewsyAC0C14RefreshContextO0fI0_tF":{"name":"refreshViews(refreshContext:)","abstract":"Updates all currently visible cells and sections, such that they reflect the latest","parent_name":"TableViewDriver"},"Classes/TableViewDriver.html":{"name":"TableViewDriver","abstract":"
A data source that drives the table views appereance and behavior based on an underlying"},"Classes/CollectionViewDriver.html":{"name":"CollectionViewDriver","abstract":"
A data source that drives the collection views appereance and behavior based on an underlying"},"getting-started.html":{"name":"Getting Started"},"vision.html":{"name":"VISION"},"Guides.html":{"name":"Guides","abstract":"
The following guides are available globally.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
diff --git a/docs/undocumented.json b/docs/undocumented.json
index 2cc5f86..c4b8b30 100644
--- a/docs/undocumented.json
+++ b/docs/undocumented.json
@@ -1,173 +1,6 @@
{
"warnings": [
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/CollectionViewModel.swift",
- "line": 46,
- "symbol": "CollectionViewCellViewModel.shouldHighlight",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/CollectionViewModel.swift",
- "line": 47,
- "symbol": "CollectionViewCellViewModel.didSelect",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/CollectionViewModel.swift",
- "line": 48,
- "symbol": "CollectionViewCellViewModel.didDeselect",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/CollectionViewModel.swift",
- "line": 66,
- "symbol": "CollectionViewSupplementaryViewModel.viewInfo",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/CollectionViewModel.swift",
- "line": 67,
- "symbol": "CollectionViewSupplementaryViewModel.height",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/Diffing.swift",
- "line": 37,
- "symbol": "DiffableViewModel.diffingKey",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/SupplementaryViewInfo.swift",
- "line": 59,
- "symbol": "SupplementaryViewKind.header",
- "symbol_kind": "source.lang.swift.decl.enumelement",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/SupplementaryViewInfo.swift",
- "line": 60,
- "symbol": "SupplementaryViewKind.footer",
- "symbol_kind": "source.lang.swift.decl.enumelement",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewDriver.swift",
- "line": 32,
- "symbol": "TableViewDriver.TableRefreshContext.unknown",
- "symbol_kind": "source.lang.swift.decl.enumelement",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewDriver.swift",
- "line": 33,
- "symbol": "TableViewDriver.TableRefreshContext.contentOnly",
- "symbol_kind": "source.lang.swift.decl.enumelement",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewDriver.swift",
- "line": 34,
- "symbol": "TableViewDriver.TableRefreshContext.rowsModified",
- "symbol_kind": "source.lang.swift.decl.enumelement",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 64,
- "symbol": "TableViewCellViewModel.rowHeight",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 68,
- "symbol": "TableViewCellViewModel.editingStyle",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 69,
- "symbol": "TableViewCellViewModel.shouldHighlight",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 70,
- "symbol": "TableViewCellViewModel.shouldIndentWhileEditing",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 71,
- "symbol": "TableViewCellViewModel.willBeginEditing",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 72,
- "symbol": "TableViewCellViewModel.didEndEditing",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 73,
- "symbol": "TableViewCellViewModel.commitEditingStyle",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 74,
- "symbol": "TableViewCellViewModel.didSelect",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 75,
- "symbol": "TableViewCellViewModel.accessoryButtonTapped",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/TableViewModel.swift",
- "line": 81,
- "symbol": "TableViewCellModelEditActions.editActions",
- "symbol_kind": "source.lang.swift.decl.var.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/ViewRegistrationInfo.swift",
- "line": 20,
- "symbol": "ViewRegistrationInfo",
- "symbol_kind": "source.lang.swift.decl.struct",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/ViewRegistrationInfo.swift",
- "line": 24,
- "symbol": "ViewRegistrationInfo.init(classType:)",
- "symbol_kind": "source.lang.swift.decl.function.method.instance",
- "warning": "undocumented"
- },
- {
- "file": "/Users/jesse/GitHub/ReactiveLists/Sources/ViewRegistrationInfo.swift",
- "line": 29,
- "symbol": "ViewRegistrationInfo.init(classType:nibName:bundle:)",
- "symbol_kind": "source.lang.swift.decl.function.method.instance",
- "warning": "undocumented"
- }
+
],
- "source_directory": "/Users/jesse/GitHub/ReactiveLists"
+ "source_directory": "/Users/jsquires/Develop/ReactiveLists"
}
\ No newline at end of file
diff --git a/docs/vision.html b/docs/vision.html
index b703499..c3fd42c 100644
--- a/docs/vision.html
+++ b/docs/vision.html
@@ -13,7 +13,7 @@
@@ -67,22 +67,28 @@
Protocols
@@ -90,19 +96,19 @@