diff --git a/Carbon.xcodeproj/project.pbxproj b/Carbon.xcodeproj/project.pbxproj index 897bdff..53918ea 100644 --- a/Carbon.xcodeproj/project.pbxproj +++ b/Carbon.xcodeproj/project.pbxproj @@ -56,6 +56,7 @@ 6B7ADEF421FDB12B003803BE /* UITableViewComponentHeaderFooterViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7ADEF021FDB12A003803BE /* UITableViewComponentHeaderFooterViewTests.swift */; }; 6B7EED9E224CA5DD00060872 /* UIScrollViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7EED9D224CA5DD00060872 /* UIScrollViewExtensions.swift */; }; 6B7EEDA0224CE4E100060872 /* UIScrollViewExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7EED9F224CE4E000060872 /* UIScrollViewExtensionsTests.swift */; }; + 6BAEA3DA2289C5D10026F81E /* Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BAEA3D92289C5D10026F81E /* Deprecated.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -122,6 +123,7 @@ 6B7ADEF021FDB12A003803BE /* UITableViewComponentHeaderFooterViewTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITableViewComponentHeaderFooterViewTests.swift; sourceTree = ""; }; 6B7EED9D224CA5DD00060872 /* UIScrollViewExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIScrollViewExtensions.swift; sourceTree = ""; }; 6B7EED9F224CE4E000060872 /* UIScrollViewExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIScrollViewExtensionsTests.swift; sourceTree = ""; }; + 6BAEA3D92289C5D10026F81E /* Deprecated.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Deprecated.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -175,6 +177,7 @@ 6B65949021E2532100291AAF /* Section.swift */, 6B6594A321E2532100291AAF /* Renderer.swift */, 6B5304522201EDB200A3E21E /* DataChangeset.swift */, + 6BAEA3D92289C5D10026F81E /* Deprecated.swift */, 6B65948921E2532100291AAF /* Adapters */, 6B65949221E2532100291AAF /* Updaters */, 6B65949D21E2532100291AAF /* Interfaces */, @@ -439,6 +442,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6BAEA3DA2289C5D10026F81E /* Deprecated.swift in Sources */, 6B6594BB21E2532100291AAF /* UITableViewComponentHeaderFooterView.swift in Sources */, 6B7EED9E224CA5DD00060872 /* UIScrollViewExtensions.swift in Sources */, 6B6594AC21E2532100291AAF /* Section.swift in Sources */, diff --git a/Examples/Example-iOS/Sources/Emoji/EmojiViewController.swift b/Examples/Example-iOS/Sources/Emoji/EmojiViewController.swift index 3bdbb57..477d14d 100644 --- a/Examples/Example-iOS/Sources/Emoji/EmojiViewController.swift +++ b/Examples/Example-iOS/Sources/Emoji/EmojiViewController.swift @@ -9,8 +9,7 @@ final class EmojiViewController: UIViewController { @IBOutlet var collectionView: UICollectionView! @IBOutlet var toolBar: UIToolbar! - private lazy var renderer = Renderer( - target: collectionView, + private let renderer = Renderer( adapter: UICollectionViewFlowLayoutAdapter(), updater: UICollectionViewUpdater() ) @@ -25,6 +24,8 @@ final class EmojiViewController: UIViewController { title = "Shuffle Emoji" toolBar.isTranslucent = false collectionView.contentInset.bottom = 44 + + renderer.target = collectionView renderer.updater.alwaysRenderVisibleComponents = true refresh() diff --git a/Examples/Example-iOS/Sources/Form/FormViewController.swift b/Examples/Example-iOS/Sources/Form/FormViewController.swift index 6586a5b..34c185a 100644 --- a/Examples/Example-iOS/Sources/Form/FormViewController.swift +++ b/Examples/Example-iOS/Sources/Form/FormViewController.swift @@ -36,8 +36,7 @@ final class FormViewController: UIViewController { didSet { render() } } - private lazy var renderer = Renderer( - target: tableView, + private let renderer = Renderer( adapter: UITableViewAdapter(), updater: UITableViewUpdater() ) @@ -50,6 +49,7 @@ final class FormViewController: UIViewController { tableView.estimatedRowHeight = UITableView.automaticDimension NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChangeFrame), name: UIResponder.keyboardWillChangeFrameNotification, object: nil) + renderer.target = tableView renderer.updater.deleteRowsAnimation = .middle renderer.updater.insertRowsAnimation = .middle renderer.updater.insertSectionsAnimation = .top diff --git a/Examples/Example-iOS/Sources/Hello/HelloViewController.swift b/Examples/Example-iOS/Sources/Hello/HelloViewController.swift index b5b96e8..f149bcc 100644 --- a/Examples/Example-iOS/Sources/Hello/HelloViewController.swift +++ b/Examples/Example-iOS/Sources/Hello/HelloViewController.swift @@ -12,8 +12,7 @@ final class HelloViewController: UIViewController { didSet { render() } } - private lazy var renderer = Renderer( - target: tableView, + private let renderer = Renderer( adapter: UITableViewAdapter(), updater: UITableViewUpdater() ) @@ -23,6 +22,7 @@ final class HelloViewController: UIViewController { title = "Hello" tableView.contentInset.top = 44 + renderer.target = tableView render() } diff --git a/Examples/Example-iOS/Sources/Kyoto/KyotoViewController.swift b/Examples/Example-iOS/Sources/Kyoto/KyotoViewController.swift index 7243990..0e6833f 100644 --- a/Examples/Example-iOS/Sources/Kyoto/KyotoViewController.swift +++ b/Examples/Example-iOS/Sources/Kyoto/KyotoViewController.swift @@ -9,8 +9,7 @@ final class KyotoViewController: UIViewController { @IBOutlet var collectionView: UICollectionView! - private lazy var renderer = Renderer( - target: collectionView, + private let renderer = Renderer( adapter: UICollectionViewFlowLayoutAdapter(), updater: UICollectionViewUpdater() ) @@ -21,6 +20,7 @@ final class KyotoViewController: UIViewController { title = "Kyoto" collectionView.contentInset.bottom = 24 + renderer.target = collectionView renderer.render( Section( id: ID.top, diff --git a/Examples/Example-iOS/Sources/Pangram/PangramViewController.swift b/Examples/Example-iOS/Sources/Pangram/PangramViewController.swift index faa1ed5..49eeed0 100644 --- a/Examples/Example-iOS/Sources/Pangram/PangramViewController.swift +++ b/Examples/Example-iOS/Sources/Pangram/PangramViewController.swift @@ -5,8 +5,7 @@ final class PangramViewController: UIViewController { @IBOutlet var collectionView: UICollectionView! @IBOutlet var toolBar: UIToolbar! - private lazy var renderer = Renderer( - target: collectionView, + private let renderer = Renderer( adapter: UICollectionViewFlowLayoutAdapter(), updater: UICollectionViewUpdater() ) @@ -21,6 +20,7 @@ final class PangramViewController: UIViewController { title = "Pangram" toolBar.isTranslucent = false collectionView.contentInset.top = 44 + renderer.target = collectionView render() } diff --git a/Examples/Example-iOS/Sources/Todo/TodoViewController.swift b/Examples/Example-iOS/Sources/Todo/TodoViewController.swift index d891a43..a0a7b07 100644 --- a/Examples/Example-iOS/Sources/Todo/TodoViewController.swift +++ b/Examples/Example-iOS/Sources/Todo/TodoViewController.swift @@ -23,8 +23,7 @@ final class TodoViewController: UIViewController, UITextViewDelegate { didSet { render() } } - private lazy var renderer = Renderer( - target: tableView, + private let renderer = Renderer( adapter: TodoTableViewAdapter(), updater: UITableViewUpdater() ) @@ -42,6 +41,8 @@ final class TodoViewController: UIViewController, UITextViewDelegate { tableView.rowHeight = UITableView.automaticDimension tableView.estimatedRowHeight = UITableView.automaticDimension tableView.contentInset.bottom = view.bounds.height - addButton.frame.minY + + renderer.target = tableView renderer.updater.skipReloadComponents = true renderer.updater.alwaysRenderVisibleComponents = true diff --git a/Examples/Example-iOS/Sources/Top/HomeViewController.swift b/Examples/Example-iOS/Sources/Top/HomeViewController.swift index f72c7b9..c0b44ba 100644 --- a/Examples/Example-iOS/Sources/Top/HomeViewController.swift +++ b/Examples/Example-iOS/Sources/Top/HomeViewController.swift @@ -17,8 +17,7 @@ final class HomeViewController: UIViewController { @IBOutlet var tableView: UITableView! - private lazy var renderer = Renderer( - target: tableView, + private let renderer = Renderer( adapter: UITableViewAdapter(), updater: UITableViewUpdater() ) @@ -28,6 +27,7 @@ final class HomeViewController: UIViewController { title = "Home" + renderer.target = tableView renderer.render( Section( id: ID.examples, diff --git a/README.md b/README.md index 5b08c65..3b99af6 100644 --- a/README.md +++ b/README.md @@ -195,21 +195,31 @@ Since there are several style syntaxes for passing group of sections, please che ```swift @IBOutlet var tableView: UITableView! -lazy var renderer = Renderer( - target: tableView, +let renderer = Renderer( adapter: UITableViewAdapter(), updater: UITableViewUpdater() ) + +override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + renderer.target = tableView +} ``` ```swift @IBOutlet var collectionView: UICollectionView! -lazy var renderer = Renderer( - target: collectionView, +let renderer = Renderer( adapter: UICollectionViewFlowLayoutAdapter(), updater: UICollectionViewUpdater() ) + +override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + renderer.target = collectionView +} ``` ```swift @@ -397,6 +407,10 @@ Below are some of the default provided settings of `updater`. Indicating whether enables animation for diffing updates, setting `false` will perform it using `UIView.performWithoutAnimation`. Default is `true`. +- **isAnimationEnabledWhileScrolling** +Indicating whether enables animation for diffing updates while target is scrolling, setting `false` will perform it using `UIView.performWithoutAnimation`. +Default is `true`. + - **animatableChangeCount** The max number of changes to perform diffing updates. It falls back to `reloadData` if it exceeded. Default is `300`. diff --git a/Sources/Deprecated.swift b/Sources/Deprecated.swift new file mode 100644 index 0000000..35c95c0 --- /dev/null +++ b/Sources/Deprecated.swift @@ -0,0 +1,10 @@ +public extension Renderer { + /// Create a new instance with given target, adapter and updater. + /// Immediately the `prepare` of updater is called. + @available(*, deprecated, message:"Use the `Renderer.init` that accepts only `adapter` and `updater` parameters, and set `target` at arbitrary timing.") + convenience init(target: Updater.Target, adapter: Updater.Adapter, updater: Updater) { + self.init(adapter: adapter, updater: updater) + self.target = target + updater.prepare(target: target, adapter: adapter) + } +} diff --git a/Sources/Renderer.swift b/Sources/Renderer.swift index d7c67cb..2e77a4b 100644 --- a/Sources/Renderer.swift +++ b/Sources/Renderer.swift @@ -8,12 +8,14 @@ import UIKit /// /// Example for render a section containing simple nodes. /// +/// let tableView: UITableView = ... /// let renderer = Renderer( -/// target: tableView, /// adapter: UITableViewAdapter(), /// updater: UITableViewUpdater() /// ) /// +/// renderer.target = tableView +/// /// renderer.render( /// Section( /// id: "section", @@ -27,15 +29,21 @@ import UIKit /// ) /// ) open class Renderer { - /// An instance of target that weakly referenced. - public private(set) weak var target: Updater.Target? - /// An instance of adapter that specified at initialized. public let adapter: Updater.Adapter /// An instance of updater that specified at initialized. public let updater: Updater + /// An instance of target that weakly referenced. + /// It will be passed to the `prepare` method of updater at didSet. + open weak var target: Updater.Target? { + didSet { + guard let target = target else { return } + updater.prepare(target: target, adapter: adapter) + } + } + /// Returns a current data held in adapter. /// When data is set, it renders to the target immediately. open var data: [Section] { @@ -43,14 +51,10 @@ open class Renderer { set(data) { render(data) } } - /// Create a new instance with given target, adapter and updater. - /// Immediately the `prepare` of updater is called. - public init(target: Updater.Target, adapter: Updater.Adapter, updater: Updater) { - self.target = target + /// Create a new instance with given adapter and updater. + public init(adapter: Updater.Adapter, updater: Updater) { self.adapter = adapter self.updater = updater - - updater.prepare(target: target, adapter: adapter) } /// Render given collection of sections, immediately. @@ -59,12 +63,15 @@ open class Renderer { /// - data: A collection of sections to be rendered. /// - completion: A completion handler to be called after rendered. open func render(_ data: C, completion: (() -> Void)? = nil) where C.Element == Section { + let data = Array(data) + guard let target = target else { + adapter.data = data completion?() return } - updater.performUpdates(target: target, adapter: adapter, data: Array(data), completion: completion) + updater.performUpdates(target: target, adapter: adapter, data: data, completion: completion) } /// Render given collection of sections after removes contained nil, immediately. diff --git a/Tests/RendererTests.swift b/Tests/RendererTests.swift index 582ec9e..b20834e 100644 --- a/Tests/RendererTests.swift +++ b/Tests/RendererTests.swift @@ -5,10 +5,10 @@ final class RendererTests: XCTestCase { func testTargetWeakCapture() { var target: MockTarget? = MockTarget() let renderer = Renderer( - target: target!, adapter: MockAdapter(), updater: MockUpdater() ) + renderer.target = target target = nil XCTAssertNil(renderer.target) @@ -18,24 +18,39 @@ final class RendererTests: XCTestCase { let target = MockTarget() let adapter = MockAdapter() let renderer = Renderer( - target: target, adapter: adapter, updater: MockUpdater() ) + renderer.target = target XCTAssertEqual(renderer.updater.targetCapturedOnPrepare, target) XCTAssertEqual(renderer.updater.adapterCapturedOnPrepare, adapter) } + func testRenderBeforeTargetIsSet() { + let adapter = MockAdapter() + let renderer = Renderer( + adapter: adapter, + updater: MockUpdater() + ) + + renderer.render( + Section(id: TestID.a), + Section(id: TestID.b) + ) + + XCTAssertEqual(renderer.adapter.data.count, 2) + } + func testDataSetter() { let target = MockTarget() let adapter = MockAdapter() let renderer = Renderer( - target: target, adapter: adapter, updater: MockUpdater() ) + renderer.target = target renderer.data = [ Section(id: TestID.a), Section(id: TestID.b), @@ -51,10 +66,10 @@ final class RendererTests: XCTestCase { let target = MockTarget() let adapter = MockAdapter() let renderer = Renderer( - target: target, adapter: adapter, updater: MockUpdater() ) + renderer.target = target var completed = false let data = [ @@ -77,10 +92,10 @@ final class RendererTests: XCTestCase { let target = MockTarget() let adapter = MockAdapter() let renderer = Renderer( - target: target, adapter: adapter, updater: MockUpdater() ) + renderer.target = target var completed = false let data = [ @@ -105,10 +120,10 @@ final class RendererTests: XCTestCase { let target = MockTarget() let adapter = MockAdapter() let renderer = Renderer( - target: target, adapter: adapter, updater: MockUpdater() ) + renderer.target = target var completed = false @@ -131,10 +146,10 @@ final class RendererTests: XCTestCase { let target = MockTarget() let adapter = MockAdapter() let renderer = Renderer( - target: target, adapter: adapter, updater: MockUpdater() ) + renderer.target = target var completed = false diff --git a/docs/Adapters.html b/docs/Adapters.html index cd60eee..d1cf5bb 100644 --- a/docs/Adapters.html +++ b/docs/Adapters.html @@ -346,7 +346,7 @@

Declaration

diff --git a/docs/Changesets.html b/docs/Changesets.html index 5dacc11..62da706 100644 --- a/docs/Changesets.html +++ b/docs/Changesets.html @@ -263,7 +263,7 @@

Declaration

diff --git a/docs/Classes/Renderer.html b/docs/Classes/Renderer.html index 3150850..d43b336 100644 --- a/docs/Classes/Renderer.html +++ b/docs/Classes/Renderer.html @@ -205,12 +205,14 @@

Renderer

updater, or by customizing it.

Example for render a section containing simple nodes.

-
let renderer = Renderer(
-    target: tableView,
+
let tableView: UITableView = ...
+let renderer = Renderer(
     adapter: UITableViewAdapter(),
     updater: UITableViewUpdater()
 )
 
+renderer.target = tableView
+
 renderer.render(
     Section(
         id: "section",
@@ -235,9 +237,9 @@ 

Renderer

  • - - - target + + + adapter
    @@ -245,14 +247,14 @@

    Renderer

    -

    An instance of target that weakly referenced.

    +

    An instance of adapter that specified at initialized.

    Declaration

    Swift

    -
    public private(set) weak var target: Updater.Target?
    +
    public let adapter: Updater.Adapter
    @@ -262,9 +264,9 @@

    Declaration

  • - - - adapter + + + updater
    @@ -272,14 +274,14 @@

    Declaration

    -

    An instance of adapter that specified at initialized.

    +

    An instance of updater that specified at initialized.

    Declaration

    Swift

    -
    public let adapter: Updater.Adapter
    +
    public let updater: Updater
    @@ -289,9 +291,9 @@

    Declaration

  • - - - updater + + + target
    @@ -299,14 +301,15 @@

    Declaration

    -

    An instance of updater that specified at initialized.

    +

    An instance of target that weakly referenced. +It will be passed to the prepare method of updater at didSet.

    Declaration

    Swift

    -
    public let updater: Updater
    +
    open weak var target: Updater.Target? { get set }
    @@ -344,9 +347,9 @@

    Declaration

  • @@ -354,15 +357,14 @@

    Declaration

    -

    Create a new instance with given target, adapter and updater. -Immediately the prepare of updater is called.

    +

    Create a new instance with given adapter and updater.

    Declaration

    Swift

    -
    public init(target: Updater.Target, adapter: Updater.Adapter, updater: Updater)
    +
    public init(adapter: Updater.Adapter, updater: Updater)
    @@ -389,7 +391,7 @@

    Declaration

    Declaration

    Swift

    -
    open func render<C: Collection>(_ data: C, completion: (() -> Void)? = nil) where C.Element == Section
    +
    open func render<C>(_ data: C, completion: (() -> Void)? = nil) where C : Collection, C.Element == Section
    @@ -452,7 +454,7 @@

    Parameters

    Declaration

    Swift

    -
    open func render<C: Collection>(_ data: C, completion: (() -> Void)? = nil) where C.Element == Section?
    +
    open func render<C>(_ data: C, completion: (() -> Void)? = nil) where C : Collection, C.Element == Section?
  • @@ -608,13 +610,46 @@

    Parameters

  • +
    +
      +
    • + +
      +
      +
      +
      +
      +

      Create a new instance with given target, adapter and updater. +Immediately the prepare of updater is called.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      @available(*, deprecated, message: "Use the `Renderer.init` that accepts only `adapter` and `updater` parameters, and set `target` at arbitrary timing.")
      +convenience init(target: Updater.Target, adapter: Updater.Adapter, updater: Updater)
      + +
      +
      +
      +
      +
    • +
    +
  • diff --git a/docs/Classes/UICollectionComponentReusableView.html b/docs/Classes/UICollectionComponentReusableView.html index a1d9a3e..97f2348 100644 --- a/docs/Classes/UICollectionComponentReusableView.html +++ b/docs/Classes/UICollectionComponentReusableView.html @@ -227,7 +227,9 @@

    UICollectionComponentReusableView

    Declaration

    Swift

    -
    open internal(set) var renderedContent: Any?
    +
    open internal(set) var renderedContent: Any? {
    +  get
    +  }
    @@ -254,7 +256,9 @@

    Declaration

    Declaration

    Swift

    -
    open internal(set) var renderedComponent: AnyComponent?
    +
    open internal(set) var renderedComponent: AnyComponent? {
    +  get
    +  }
    @@ -377,7 +381,7 @@

    Declaration

    diff --git a/docs/Classes/UICollectionViewAdapter.html b/docs/Classes/UICollectionViewAdapter.html index d32c96e..145c02b 100644 --- a/docs/Classes/UICollectionViewAdapter.html +++ b/docs/Classes/UICollectionViewAdapter.html @@ -676,7 +676,7 @@

    Declaration

    diff --git a/docs/Classes/UICollectionViewAdapter/Config.html b/docs/Classes/UICollectionViewAdapter/Config.html index 0f23639..d9ec4b7 100644 --- a/docs/Classes/UICollectionViewAdapter/Config.html +++ b/docs/Classes/UICollectionViewAdapter/Config.html @@ -397,7 +397,7 @@

    Parameters

    diff --git a/docs/Classes/UICollectionViewAdapter/SelectionContext.html b/docs/Classes/UICollectionViewAdapter/SelectionContext.html index f0e51f7..670d266 100644 --- a/docs/Classes/UICollectionViewAdapter/SelectionContext.html +++ b/docs/Classes/UICollectionViewAdapter/SelectionContext.html @@ -296,7 +296,7 @@

    Declaration

    diff --git a/docs/Classes/UICollectionViewComponentCell.html b/docs/Classes/UICollectionViewComponentCell.html index a91ba27..7a5a487 100644 --- a/docs/Classes/UICollectionViewComponentCell.html +++ b/docs/Classes/UICollectionViewComponentCell.html @@ -227,7 +227,9 @@

    UICollectionViewComponentCell

    Declaration

    Swift

    -
    open internal(set) var renderedContent: Any?
    +
    open internal(set) var renderedContent: Any? {
    +  get
    +  }
    @@ -254,7 +256,9 @@

    Declaration

    Declaration

    Swift

    -
    open internal(set) var renderedComponent: AnyComponent?
    +
    open internal(set) var renderedComponent: AnyComponent? {
    +  get
    +  }
    @@ -431,7 +435,7 @@

    Declaration

    diff --git a/docs/Classes/UICollectionViewFlowLayoutAdapter.html b/docs/Classes/UICollectionViewFlowLayoutAdapter.html index 4363600..d7aafd7 100644 --- a/docs/Classes/UICollectionViewFlowLayoutAdapter.html +++ b/docs/Classes/UICollectionViewFlowLayoutAdapter.html @@ -296,7 +296,7 @@

    Declaration

    diff --git a/docs/Classes/UICollectionViewReloadDataUpdater.html b/docs/Classes/UICollectionViewReloadDataUpdater.html index 1cebe86..467155b 100644 --- a/docs/Classes/UICollectionViewReloadDataUpdater.html +++ b/docs/Classes/UICollectionViewReloadDataUpdater.html @@ -383,7 +383,7 @@

    Parameters

    diff --git a/docs/Classes/UICollectionViewUpdater.html b/docs/Classes/UICollectionViewUpdater.html index 0c59c81..c9952ca 100644 --- a/docs/Classes/UICollectionViewUpdater.html +++ b/docs/Classes/UICollectionViewUpdater.html @@ -220,7 +220,7 @@

    UICollectionViewUpdater

    -

    A Bool value indicating whether that enable diffing animations. Default is true.

    +

    A Bool value indicating whether that enable diffing animation. Default is true.

    @@ -234,6 +234,34 @@

    Declaration

  • +
  • + +
    +
    +
    +
    +
    +

    A Bool value indicating whether that enable diffing animation while target is +scrolling. Default is false.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open var isAnimationEnabledWhileScrolling: Bool
    + +
    +
    +
    +
    +
  • @@ -672,7 +700,7 @@

    Parameters

    diff --git a/docs/Classes/UITableViewAdapter.html b/docs/Classes/UITableViewAdapter.html index 64ebe3f..57dfb2d 100644 --- a/docs/Classes/UITableViewAdapter.html +++ b/docs/Classes/UITableViewAdapter.html @@ -919,7 +919,7 @@

    Declaration

    diff --git a/docs/Classes/UITableViewAdapter/Config.html b/docs/Classes/UITableViewAdapter/Config.html index 012f97d..eb51ca0 100644 --- a/docs/Classes/UITableViewAdapter/Config.html +++ b/docs/Classes/UITableViewAdapter/Config.html @@ -397,7 +397,7 @@

    Parameters

    diff --git a/docs/Classes/UITableViewAdapter/SelectionContext.html b/docs/Classes/UITableViewAdapter/SelectionContext.html index 6c8f2a2..5572597 100644 --- a/docs/Classes/UITableViewAdapter/SelectionContext.html +++ b/docs/Classes/UITableViewAdapter/SelectionContext.html @@ -296,7 +296,7 @@

    Declaration

    diff --git a/docs/Classes/UITableViewComponentCell.html b/docs/Classes/UITableViewComponentCell.html index 0d8fb76..e92a828 100644 --- a/docs/Classes/UITableViewComponentCell.html +++ b/docs/Classes/UITableViewComponentCell.html @@ -227,7 +227,9 @@

    UITableViewComponentCell

    Declaration

    Swift

    -
    open internal(set) var renderedContent: Any?
    +
    open internal(set) var renderedContent: Any? {
    +  get
    +  }
    @@ -254,7 +256,9 @@

    Declaration

    Declaration

    Swift

    -
    open internal(set) var renderedComponent: AnyComponent?
    +
    open internal(set) var renderedComponent: AnyComponent? {
    +  get
    +  }
    @@ -458,7 +462,7 @@

    Declaration

    diff --git a/docs/Classes/UITableViewComponentHeaderFooterView.html b/docs/Classes/UITableViewComponentHeaderFooterView.html index 769b1ee..999d588 100644 --- a/docs/Classes/UITableViewComponentHeaderFooterView.html +++ b/docs/Classes/UITableViewComponentHeaderFooterView.html @@ -227,7 +227,9 @@

    UITableViewComponentHeaderFooterView

    Declaration

    Swift

    -
    open internal(set) var renderedContent: Any?
    +
    open internal(set) var renderedContent: Any? {
    +  get
    +  }
    @@ -254,7 +256,9 @@

    Declaration

    Declaration

    Swift

    -
    open internal(set) var renderedComponent: AnyComponent?
    +
    open internal(set) var renderedComponent: AnyComponent? {
    +  get
    +  }
    @@ -377,7 +381,7 @@

    Declaration

    diff --git a/docs/Classes/UITableViewReloadDataUpdater.html b/docs/Classes/UITableViewReloadDataUpdater.html index 0dd00d7..816dd95 100644 --- a/docs/Classes/UITableViewReloadDataUpdater.html +++ b/docs/Classes/UITableViewReloadDataUpdater.html @@ -383,7 +383,7 @@

    Parameters

    diff --git a/docs/Classes/UITableViewUpdater.html b/docs/Classes/UITableViewUpdater.html index d696c38..09e8959 100644 --- a/docs/Classes/UITableViewUpdater.html +++ b/docs/Classes/UITableViewUpdater.html @@ -382,7 +382,7 @@

    Declaration

    -

    A Bool value indicating whether that enable diffing animations. Default is true.

    +

    A Bool value indicating whether that enable diffing animation. Default is true.

    @@ -396,6 +396,34 @@

    Declaration

  • +
  • + +
    +
    +
    +
    +
    +

    A Bool value indicating whether that enable diffing animation while target is +scrolling. Default is false.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open var isAnimationEnabledWhileScrolling: Bool
    + +
    +
    +
    +
    +
  • @@ -861,7 +889,7 @@

    Parameters

    diff --git a/docs/Components.html b/docs/Components.html index c0beb76..e6410c5 100644 --- a/docs/Components.html +++ b/docs/Components.html @@ -353,7 +353,7 @@

    Declaration

    diff --git a/docs/Content Protocols.html b/docs/Content Protocols.html index d654df6..72eec97 100644 --- a/docs/Content Protocols.html +++ b/docs/Content Protocols.html @@ -348,7 +348,7 @@

    Declaration

    diff --git a/docs/Interfaces.html b/docs/Interfaces.html index d10a0ef..e3bc2d3 100644 --- a/docs/Interfaces.html +++ b/docs/Interfaces.html @@ -332,7 +332,7 @@

    Declaration

    diff --git a/docs/Nodes.html b/docs/Nodes.html index b120bfe..f8de291 100644 --- a/docs/Nodes.html +++ b/docs/Nodes.html @@ -272,7 +272,7 @@

    Declaration

    diff --git a/docs/Protocols/Adapter.html b/docs/Protocols/Adapter.html index 05e17b4..944afe8 100644 --- a/docs/Protocols/Adapter.html +++ b/docs/Protocols/Adapter.html @@ -382,7 +382,7 @@

    Return Value

    diff --git a/docs/Protocols/Component.html b/docs/Protocols/Component.html index c97f9ac..e86c3c5 100644 --- a/docs/Protocols/Component.html +++ b/docs/Protocols/Component.html @@ -691,7 +691,7 @@

    Declaration

    diff --git a/docs/Protocols/IdentifiableComponent.html b/docs/Protocols/IdentifiableComponent.html index bd37fe6..9dc9860 100644 --- a/docs/Protocols/IdentifiableComponent.html +++ b/docs/Protocols/IdentifiableComponent.html @@ -304,7 +304,7 @@

    Declaration

    diff --git a/docs/Protocols/UICollectionReusableViewContent.html b/docs/Protocols/UICollectionReusableViewContent.html index 9d25c31..11152b5 100644 --- a/docs/Protocols/UICollectionReusableViewContent.html +++ b/docs/Protocols/UICollectionReusableViewContent.html @@ -324,7 +324,7 @@

    Declaration

    diff --git a/docs/Protocols/UICollectionViewCellContent.html b/docs/Protocols/UICollectionViewCellContent.html index 0e6a1f4..ea685ac 100644 --- a/docs/Protocols/UICollectionViewCellContent.html +++ b/docs/Protocols/UICollectionViewCellContent.html @@ -456,7 +456,7 @@

    Parameters

    diff --git a/docs/Protocols/UITableViewCellContent.html b/docs/Protocols/UITableViewCellContent.html index 95608ca..c6712fb 100644 --- a/docs/Protocols/UITableViewCellContent.html +++ b/docs/Protocols/UITableViewCellContent.html @@ -558,7 +558,7 @@

    Parameters

    diff --git a/docs/Protocols/UITableViewHeaderFooterViewContent.html b/docs/Protocols/UITableViewHeaderFooterViewContent.html index 2e2fb23..f7eeb36 100644 --- a/docs/Protocols/UITableViewHeaderFooterViewContent.html +++ b/docs/Protocols/UITableViewHeaderFooterViewContent.html @@ -324,7 +324,7 @@

    Declaration

    diff --git a/docs/Protocols/Updater.html b/docs/Protocols/Updater.html index e0bd35e..32a06a0 100644 --- a/docs/Protocols/Updater.html +++ b/docs/Protocols/Updater.html @@ -411,7 +411,7 @@

    Parameters

    diff --git a/docs/Renderer.html b/docs/Renderer.html index 69c522b..fdf264e 100644 --- a/docs/Renderer.html +++ b/docs/Renderer.html @@ -220,12 +220,14 @@

    Renderer

    updater, or by customizing it.

    Example for render a section containing simple nodes.

    -
    let renderer = Renderer(
    -    target: tableView,
    +
    let tableView: UITableView = ...
    +let renderer = Renderer(
         adapter: UITableViewAdapter(),
         updater: UITableViewUpdater()
     )
     
    +renderer.target = tableView
    +
     renderer.render(
         Section(
             id: "section",
    @@ -261,7 +263,7 @@ 

    Declaration

    diff --git a/docs/Section.html b/docs/Section.html index fc94fe3..465ce9d 100644 --- a/docs/Section.html +++ b/docs/Section.html @@ -238,7 +238,7 @@

    Declaration

    diff --git a/docs/Structs/AnyComponent.html b/docs/Structs/AnyComponent.html index 2a697ba..8f646ba 100644 --- a/docs/Structs/AnyComponent.html +++ b/docs/Structs/AnyComponent.html @@ -670,7 +670,7 @@

    Declaration

    diff --git a/docs/Structs/CellNode.html b/docs/Structs/CellNode.html index fa5075b..3930fbf 100644 --- a/docs/Structs/CellNode.html +++ b/docs/Structs/CellNode.html @@ -484,7 +484,7 @@

    Declaration

    diff --git a/docs/Structs/Section.html b/docs/Structs/Section.html index 916ad9b..172e61f 100644 --- a/docs/Structs/Section.html +++ b/docs/Structs/Section.html @@ -339,7 +339,7 @@

    Declaration

    Swift

    @inlinable
    -public init<I: Hashable, C: Swift.Collection>(id: I, header: ViewNode? = nil, cells: C, footer: ViewNode? = nil) where C.Element == CellNode
    +public init<I, C>(id: I, header: ViewNode? = nil, cells: C, footer: ViewNode? = nil) where I : Hashable, C : Collection, C.Element == CellNode
    @@ -427,7 +427,7 @@

    Declaration

    Swift

    @inlinable
    -public init<I: Hashable, C: Swift.Collection>(id: I, header: ViewNode? = nil, cells: C, footer: ViewNode? = nil) where C.Element == CellNode?
    +public init<I, C>(id: I, header: ViewNode? = nil, cells: C, footer: ViewNode? = nil) where I : Hashable, C : Collection, C.Element == CellNode?
    @@ -510,7 +510,7 @@

    Declaration

    Swift

    @inlinable
    -public init<I: Hashable>(id: I, header: ViewNode? = nil, footer: ViewNode? = nil)
    +public init<I>(id: I, header: ViewNode? = nil, footer: ViewNode? = nil) where I : Hashable
  • @@ -685,7 +685,7 @@

    Declaration

    diff --git a/docs/Structs/ViewNode.html b/docs/Structs/ViewNode.html index 0c72824..e256bcd 100644 --- a/docs/Structs/ViewNode.html +++ b/docs/Structs/ViewNode.html @@ -369,7 +369,7 @@

    Declaration

    diff --git a/docs/Updaters.html b/docs/Updaters.html index b76283f..7baf12b 100644 --- a/docs/Updaters.html +++ b/docs/Updaters.html @@ -364,7 +364,7 @@

    Declaration

    diff --git a/docs/index.html b/docs/index.html index 701d01d..31668a7 100644 --- a/docs/index.html +++ b/docs/index.html @@ -206,7 +206,7 @@

    CocoaPods Carthage
    -Build Status +Build Status Platform Lincense

    @@ -388,19 +388,29 @@

    Renderer

    Since there are several style syntaxes for passing group of sections, please check the API docs.

    @IBOutlet var tableView: UITableView!
     
    -lazy var renderer = Renderer(
    -    target: tableView,
    +let renderer = Renderer(
         adapter: UITableViewAdapter(),
         updater: UITableViewUpdater()
     )
    +
    +override func viewDidAppear(_ animated: Bool) {
    +    super.viewDidAppear(animated)
    +
    +    renderer.target = tableView
    +}
     
    @IBOutlet var collectionView: UICollectionView!
     
    -lazy var renderer = Renderer(
    -    target: collectionView,
    +let renderer = Renderer(
         adapter: UICollectionViewFlowLayoutAdapter(),
         updater: UICollectionViewUpdater()
     )
    +
    +override func viewDidAppear(_ animated: Bool) {
    +    super.viewDidAppear(animated)
    +
    +    renderer.target = collectionView
    +}
     
    let hidesBottomSection: Bool = ...
     
    @@ -568,6 +578,9 @@ 

    Updater Customization

  • isAnimationEnabled
    Indicating whether enables animation for diffing updates, setting false will perform it using UIView.performWithoutAnimation.
    Default is true.

  • +
  • isAnimationEnabledWhileScrolling
    +Indicating whether enables animation for diffing updates while target is scrolling, setting false will perform it using UIView.performWithoutAnimation.
    +Default is true.

  • animatableChangeCount
    The max number of changes to perform diffing updates. It falls back to reloadData if it exceeded.
    Default is 300.

  • @@ -666,7 +679,7 @@

    License

    diff --git a/docs/search.json b/docs/search.json index 3357f47..5ed046d 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Changesets.html#/s:6Carbon13DataChangeseta":{"name":"DataChangeset","abstract":"

    A set of changes in the collection of sections.

    "},"Changesets.html#/s:6Carbon19StagedDataChangeseta":{"name":"StagedDataChangeset","abstract":"

    An ordered collection of DataChangeset as staged set of changes"},"Protocols/UICollectionReusableViewContent.html#/s:6Carbon31UICollectionReusableViewContentP9didRender2inySo0bcD0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified view.

    ","parent_name":"UICollectionReusableViewContent"},"Protocols/UICollectionReusableViewContent.html#/s:6Carbon31UICollectionReusableViewContentP18didRenderComponent2inySo0bcD0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified view.

    ","parent_name":"UICollectionReusableViewContent"},"Protocols/UICollectionReusableViewContent.html#/s:6Carbon31UICollectionReusableViewContentP22viewDidPrepareForReuseyySo0bcD0CF":{"name":"viewDidPrepareForReuse(_:)","abstract":"

    Called just before the view is dequeued.

    ","parent_name":"UICollectionReusableViewContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP9didRender2inySo0bcD0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified cell.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP18didRenderComponent2inySo0bcD0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified cell.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP22cellDidPrepareForReuseyySo0bcD0CF":{"name":"cellDidPrepareForReuse(_:)","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP21cellDidSetHighlighted_02isI0ySo0bcD0C_SbtF":{"name":"cellDidSetHighlighted(_:isHighlighted:)","abstract":"

    Called when the cell is highlighted.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP18cellDidSetSelected_02isI0ySo0bcD0C_SbtF":{"name":"cellDidSetSelected(_:isSelected:)","abstract":"

    Called when the cell is selected.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UITableViewHeaderFooterViewContent.html#/s:6Carbon023UITableViewHeaderFooterC7ContentP9didRender2inySo0bcdeC0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified view.

    ","parent_name":"UITableViewHeaderFooterViewContent"},"Protocols/UITableViewHeaderFooterViewContent.html#/s:6Carbon023UITableViewHeaderFooterC7ContentP18didRenderComponent2inySo0bcdeC0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified view.

    ","parent_name":"UITableViewHeaderFooterViewContent"},"Protocols/UITableViewHeaderFooterViewContent.html#/s:6Carbon023UITableViewHeaderFooterC7ContentP21viwDidPrepareForReuseyySo0bcdeC0CF":{"name":"viwDidPrepareForReuse(_:)","abstract":"

    Called just before the view is dequeued.

    ","parent_name":"UITableViewHeaderFooterViewContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP9didRender2inySo0bcD0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified cell.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP18didRenderComponent2inySo0bcD0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified cell.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP22cellDidPrepareForReuseyySo0bcD0CF":{"name":"cellDidPrepareForReuse(_:)","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP21cellDidSetHighlighted_02isI08animatedySo0bcD0C_S2btF":{"name":"cellDidSetHighlighted(_:isHighlighted:animated:)","abstract":"

    Called when the cell is highlighted.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP18cellDidSetSelected_02isI08animatedySo0bcD0C_S2btF":{"name":"cellDidSetSelected(_:isSelected:animated:)","abstract":"

    Called when the cell is selected.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP17cellDidSetEditing_02isI08animatedySo0bcD0C_S2btF":{"name":"cellDidSetEditing(_:isEditing:animated:)","abstract":"

    Called when the cell become editing.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html":{"name":"UITableViewCellContent","abstract":"

    Represents the content of the UITableViewCell."},"Protocols/UITableViewHeaderFooterViewContent.html":{"name":"UITableViewHeaderFooterViewContent","abstract":"

    Represents the content of the UITableViewHeaderFooterView."},"Protocols/UICollectionViewCellContent.html":{"name":"UICollectionViewCellContent","abstract":"

    Represents the content of the UICollectionViewCell."},"Protocols/UICollectionReusableViewContent.html":{"name":"UICollectionReusableViewContent","abstract":"

    Represents the content of the UICollectionReusableView."},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC08renderedC0AA03AnyC0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/c:@M@Carbon@objc(cs)UICollectionComponentReusableView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Create a new view with identifier for reuse.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/c:@M@Carbon@objc(cs)UICollectionComponentReusableView(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC09didRenderC0yyAA03AnyC0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC08renderedD0AA03AnyD0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(py)highlighted":{"name":"isHighlighted","abstract":"

    A Bool value indicating whether cell is highlighted.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(py)selected":{"name":"isSelected","abstract":"

    A Bool value indicating whether cell is selected.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Create a new cell with the frame.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC09didRenderD0yyAA03AnyD0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C08renderedD0AA03AnyD0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/c:@M@Carbon@objc(cs)UITableViewComponentHeaderFooterView(im)initWithReuseIdentifier:":{"name":"init(reuseIdentifier:)","abstract":"

    Create a new view with identifier for reuse.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/c:@M@Carbon@objc(cs)UITableViewComponentHeaderFooterView(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C09didRenderD0yyAA03AnyD0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC08renderedD0AA03AnyD0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)initWithStyle:reuseIdentifier:":{"name":"init(style:reuseIdentifier:)","abstract":"

    Create a new cell with style and identifier for reuse.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)setHighlighted:animated:":{"name":"setHighlighted(_:animated:)","abstract":"

    Called when the cell is highlighted.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)setSelected:animated:":{"name":"setSelected(_:animated:)","abstract":"

    Called when the cell is selected.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)setEditing:animated:":{"name":"setEditing(_:animated:)","abstract":"

    Called when the cell become editing.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC09didRenderD0yyAA03AnyD0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html":{"name":"UITableViewComponentCell","abstract":"

    The cell as the container that renders the component.

    "},"Classes/UITableViewComponentHeaderFooterView.html":{"name":"UITableViewComponentHeaderFooterView","abstract":"

    The header or footer view as the container that renders the component.

    "},"Classes/UICollectionViewComponentCell.html":{"name":"UICollectionViewComponentCell","abstract":"

    The cell as the container that renders the component.

    "},"Classes/UICollectionComponentReusableView.html":{"name":"UICollectionComponentReusableView","abstract":"

    The header or footer view as the container that renders the component.

    "},"Classes/UICollectionViewReloadDataUpdater.html#/s:6Carbon33UICollectionViewReloadDataUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UICollectionViewReloadDataUpdater"},"Classes/UICollectionViewReloadDataUpdater.html#/s:6Carbon33UICollectionViewReloadDataUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given collection view, then reload data and invalidate layout.

    ","parent_name":"UICollectionViewReloadDataUpdater"},"Classes/UICollectionViewReloadDataUpdater.html#/s:6Carbon33UICollectionViewReloadDataUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Perform reload data to render given data to the target.","parent_name":"UICollectionViewReloadDataUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC18isAnimationEnabledSbvp":{"name":"isAnimationEnabled","abstract":"

    A Bool value indicating whether that enable diffing animations. Default is true.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC20skipReloadComponentsSbvp":{"name":"skipReloadComponents","abstract":"

    A Bool value indicating whether that skips reload components. Default is false.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC29alwaysRenderVisibleComponentsSbvp":{"name":"alwaysRenderVisibleComponents","abstract":"

    A Bool value indicating whether that to always render visible components","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC18keepsContentOffsetSbvp":{"name":"keepsContentOffset","abstract":"

    A Bool value indicating whether that to reset content offset after","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC21animatableChangeCountSivp":{"name":"animatableChangeCount","abstract":"

    Max number of changes that can be animated for diffing updates. Default is 300.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given collection view, then reload data and invalidate layout.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Calculates a set of changes to perform diffing updates.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC26performDifferentialUpdates6target7adapter4data15stagedChangeset10completionySo0bC0C_xSayAA7SectionVG13DifferenceKit06StagedL0VyANGyycSgtF":{"name":"performDifferentialUpdates(target:adapter:data:stagedChangeset:completion:)","abstract":"

    Perform diffing updates to render given data to the target.","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC23renderVisibleComponents2in7adapterySo0bC0C_xtF":{"name":"renderVisibleComponents(in:adapter:)","abstract":"

    Renders components displayed in visible area again.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UITableViewReloadDataUpdater.html#/s:6Carbon28UITableViewReloadDataUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UITableViewReloadDataUpdater"},"Classes/UITableViewReloadDataUpdater.html#/s:6Carbon28UITableViewReloadDataUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given table view, then reload data.

    ","parent_name":"UITableViewReloadDataUpdater"},"Classes/UITableViewReloadDataUpdater.html#/s:6Carbon28UITableViewReloadDataUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Perform reload data to render given data to the target.","parent_name":"UITableViewReloadDataUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23deleteSectionsAnimationSo0bc3RowG0Vvp":{"name":"deleteSectionsAnimation","abstract":"

    An animation for section deletions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23insertSectionsAnimationSo0bc3RowG0Vvp":{"name":"insertSectionsAnimation","abstract":"

    An animation for section insertions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23reloadSectionsAnimationSo0bc3RowG0Vvp":{"name":"reloadSectionsAnimation","abstract":"

    An animation for section reloads. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC19deleteRowsAnimationSo0bc3RowG0Vvp":{"name":"deleteRowsAnimation","abstract":"

    An animation for row deletions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC19insertRowsAnimationSo0bc3RowG0Vvp":{"name":"insertRowsAnimation","abstract":"

    An animation for row insertions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC19reloadRowsAnimationSo0bc3RowG0Vvp":{"name":"reloadRowsAnimation","abstract":"

    An animation for row reloads. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC18isAnimationEnabledSbvp":{"name":"isAnimationEnabled","abstract":"

    A Bool value indicating whether that enable diffing animations. Default is true.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC20skipReloadComponentsSbvp":{"name":"skipReloadComponents","abstract":"

    A Bool value indicating whether that skips reload components. Default is false.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC29alwaysRenderVisibleComponentsSbvp":{"name":"alwaysRenderVisibleComponents","abstract":"

    A Bool value indicating whether that to always render visible components","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC18keepsContentOffsetSbvp":{"name":"keepsContentOffset","abstract":"

    A Bool value indicating whether that to reset content offset after","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC21animatableChangeCountSivp":{"name":"animatableChangeCount","abstract":"

    Max number of changes that can be animated for diffing updates. Default is 300.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC3set12allAnimationySo0bc3RowG0V_tF":{"name":"set(allAnimation:)","abstract":"

    Set given animation to all kind of diffing updates.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given table view, then reload data.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Calculates a set of changes to perform diffing updates.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC26performDifferentialUpdates6target7adapter4data15stagedChangeset10completionySo0bC0C_xSayAA7SectionVG13DifferenceKit06StagedL0VyANGyycSgtF":{"name":"performDifferentialUpdates(target:adapter:data:stagedChangeset:completion:)","abstract":"

    Perform diffing updates to render given data to the target.","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23renderVisibleComponents2in7adapterySo0bC0C_xtF":{"name":"renderVisibleComponents(in:adapter:)","abstract":"

    Renders components displayed in visible area again.

    ","parent_name":"UITableViewUpdater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP6TargetQa":{"name":"Target","abstract":"

    A type that represents a target to be updated for render given data.

    ","parent_name":"Updater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP7AdapterQa":{"name":"Adapter","abstract":"

    A type that represents an adapter holding the data to be rendered.

    ","parent_name":"Updater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP7prepare6target7adaptery6TargetQz_7AdapterQztF":{"name":"prepare(target:adapter:)","abstract":"

    Prepares given target and adapter.

    ","parent_name":"Updater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP14performUpdates6target7adapter4data10completiony6TargetQz_7AdapterQzSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Perform updates to render given data to the target.","parent_name":"Updater"},"Protocols/Updater.html":{"name":"Updater","abstract":"

    Represents an updater that manages the updation for target.

    "},"Classes/UITableViewUpdater.html":{"name":"UITableViewUpdater","abstract":"

    An updater for managing diffing updates to render data to the UITableView.

    "},"Classes/UITableViewReloadDataUpdater.html":{"name":"UITableViewReloadDataUpdater","abstract":"

    An updater for managing to perform reload data to render data to the UITableView.

    "},"Classes/UICollectionViewUpdater.html":{"name":"UICollectionViewUpdater","abstract":"

    An updater for managing diffing updates to render data to the UICollectionView.

    "},"Classes/UICollectionViewReloadDataUpdater.html":{"name":"UICollectionViewReloadDataUpdater","abstract":"

    An updater for managing to perform reload data to render data to the UICollectionView.

    "},"Classes/UICollectionViewFlowLayoutAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewFlowLayoutAdapter(im)collectionView:layout:sizeForItemAtIndexPath:":{"name":"collectionView(_:layout:sizeForItemAt:)","abstract":"

    Returns the size for item at specified index path.

    ","parent_name":"UICollectionViewFlowLayoutAdapter"},"Classes/UICollectionViewFlowLayoutAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewFlowLayoutAdapter(im)collectionView:layout:referenceSizeForHeaderInSection:":{"name":"collectionView(_:layout:referenceSizeForHeaderInSection:)","abstract":"

    Returns the size for header in specified section.

    ","parent_name":"UICollectionViewFlowLayoutAdapter"},"Classes/UICollectionViewFlowLayoutAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewFlowLayoutAdapter(im)collectionView:layout:referenceSizeForFooterInSection:":{"name":"collectionView(_:layout:referenceSizeForFooterInSection:)","abstract":"

    Returns the size for footer in specified section.

    ","parent_name":"UICollectionViewFlowLayoutAdapter"},"Classes/UICollectionViewAdapter/SelectionContext.html#/s:6Carbon23UICollectionViewAdapterC16SelectionContextV010collectionC0So0bC0Cvp":{"name":"collectionView","abstract":"

    A collection view of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UICollectionViewAdapter/SelectionContext.html#/s:6Carbon23UICollectionViewAdapterC16SelectionContextV4nodeAA8CellNodeVvp":{"name":"node","abstract":"

    A node corresponding to the selected cell position.

    ","parent_name":"SelectionContext"},"Classes/UICollectionViewAdapter/SelectionContext.html#/s:6Carbon23UICollectionViewAdapterC16SelectionContextV9indexPath10Foundation05IndexH0Vvp":{"name":"indexPath","abstract":"

    The index path of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV7defaultAEvpZ":{"name":"default","abstract":"

    The default configuration.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV9cellClassAA0bC13ComponentCellCmvp":{"name":"cellClass","abstract":"

    The class of the cell.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV06headerC5ClassAA0b17ComponentReusableC0Cmvp":{"name":"headerViewClass","abstract":"

    The class of the header view.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV06footerC5ClassAA0b17ComponentReusableC0Cmvp":{"name":"footerViewClass","abstract":"

    The class of the footer view.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV9cellClass06headercG006footercG0AeA0bC13ComponentCellCm_AA0bj8ReusableC0CmALmtcfc":{"name":"init(cellClass:headerViewClass:footerViewClass:)","abstract":"

    Create a render configuration with the classes of elements.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    The data to be rendered in the list UI.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC6configAC6ConfigVvp":{"name":"config","abstract":"

    A configuration that determines the classes of the elements to render.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC9didSelectyAC16SelectionContextVcSgvp":{"name":"didSelect","abstract":"

    A closure that to handle selection events of cell.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC4data6configACSayAA7SectionVG_AC6ConfigVtcfc":{"name":"init(data:config:)","abstract":"

    Create an adapter with initial data and rendering config.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter/Config.html":{"name":"Config","abstract":"

    The configuration for the classes of elements in UICollectionView.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter/SelectionContext.html":{"name":"SelectionContext","abstract":"

    Context when cell is selected.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)numberOfSectionsInCollectionView:":{"name":"numberOfSections(in:)","abstract":"

    Return the number of sections.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

    Return the number of items in specified section.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

    Resister and dequeue the cell at specified index path.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:viewForSupplementaryElementOfKind:atIndexPath:":{"name":"collectionView(_:viewForSupplementaryElementOfKind:at:)","abstract":"

    Resister and dequeue the header or footer in specified section.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

    Callback the selected event of cell to the didSelect closure.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:willDisplayCell:forItemAtIndexPath:":{"name":"collectionView(_:willDisplay:forItemAt:)","abstract":"

    The event that the cell will display in the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:didEndDisplayingCell:forItemAtIndexPath:":{"name":"collectionView(_:didEndDisplaying:forItemAt:)","abstract":"

    The event that the cell did left from the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:willDisplaySupplementaryView:forElementKind:atIndexPath:":{"name":"collectionView(_:willDisplaySupplementaryView:forElementKind:at:)","abstract":"

    The event that the header or footer will display in the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:didEndDisplayingSupplementaryView:forElementOfKind:atIndexPath:":{"name":"collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)","abstract":"

    The event that the header or footer did left from the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UITableViewAdapter/SelectionContext.html#/s:6Carbon18UITableViewAdapterC16SelectionContextV05tableC0So0bC0Cvp":{"name":"tableView","abstract":"

    A table view of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UITableViewAdapter/SelectionContext.html#/s:6Carbon18UITableViewAdapterC16SelectionContextV4nodeAA8CellNodeVvp":{"name":"node","abstract":"

    A node corresponding to the selected cell position.

    ","parent_name":"SelectionContext"},"Classes/UITableViewAdapter/SelectionContext.html#/s:6Carbon18UITableViewAdapterC16SelectionContextV9indexPath10Foundation05IndexH0Vvp":{"name":"indexPath","abstract":"

    The index path of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV7defaultAEvpZ":{"name":"default","abstract":"

    The default configuration.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV9cellClassAA0bC13ComponentCellCmvp":{"name":"cellClass","abstract":"

    The class of the cell.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV06headerC5ClassAA0bc21ComponentHeaderFooterC0Cmvp":{"name":"headerViewClass","abstract":"

    The class of the header view.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV06footerC5ClassAA0bc21ComponentHeaderFooterC0Cmvp":{"name":"footerViewClass","abstract":"

    The class of the footer view.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV9cellClass06headercG006footercG0AeA0bC13ComponentCellCm_AA0bcj12HeaderFooterC0CmALmtcfc":{"name":"init(cellClass:headerViewClass:footerViewClass:)","abstract":"

    Create a render configuration with the classes of elements.

    ","parent_name":"Config"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    The data to be rendered in the list UI.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC6configAC6ConfigVvp":{"name":"config","abstract":"

    A configuration that determines the classes of the elements to render.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC9didSelectyAC16SelectionContextVcSgvp":{"name":"didSelect","abstract":"

    A closure that to handle selection events of cell.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC4data6configACSayAA7SectionVG_AC6ConfigVtcfc":{"name":"init(data:config:)","abstract":"

    Create an adapter with initial data and rendering config.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter/Config.html":{"name":"Config","abstract":"

    The configuration for the classes of elements in UITableView.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter/SelectionContext.html":{"name":"SelectionContext","abstract":"

    Context when cell is selected.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)numberOfSectionsInTableView:":{"name":"numberOfSections(in:)","abstract":"

    Return the number of sections.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:numberOfRowsInSection:":{"name":"tableView(_:numberOfRowsInSection:)","abstract":"

    Return the number of rows in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:cellForRowAtIndexPath:":{"name":"tableView(_:cellForRowAt:)","abstract":"

    Resister and dequeue the cell at specified index path.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:viewForHeaderInSection:":{"name":"tableView(_:viewForHeaderInSection:)","abstract":"

    Resister and dequeue the header in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:viewForFooterInSection:":{"name":"tableView(_:viewForFooterInSection:)","abstract":"

    Resister and dequeue the footer in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:heightForRowAtIndexPath:":{"name":"tableView(_:heightForRowAt:)","abstract":"

    Returns the height for row at specified index path.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:estimatedHeightForRowAtIndexPath:":{"name":"tableView(_:estimatedHeightForRowAt:)","abstract":"

    Returns the estimated height for row at specified index path.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:heightForHeaderInSection:":{"name":"tableView(_:heightForHeaderInSection:)","abstract":"

    Returns the height for header in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:estimatedHeightForHeaderInSection:":{"name":"tableView(_:estimatedHeightForHeaderInSection:)","abstract":"

    Returns the estimated height for header in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:heightForFooterInSection:":{"name":"tableView(_:heightForFooterInSection:)","abstract":"

    Returns the height for footer in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:estimatedHeightForFooterInSection:":{"name":"tableView(_:estimatedHeightForFooterInSection:)","abstract":"

    Returns the estimated height for footer in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didSelectRowAtIndexPath:":{"name":"tableView(_:didSelectRowAt:)","abstract":"

    Callback the selected event of cell to the didSelect closure.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:willDisplayCell:forRowAtIndexPath:":{"name":"tableView(_:willDisplay:forRowAt:)","abstract":"

    The event that the cell will display in the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didEndDisplayingCell:forRowAtIndexPath:":{"name":"tableView(_:didEndDisplaying:forRowAt:)","abstract":"

    The event that the cell did left from the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:willDisplayHeaderView:forSection:":{"name":"tableView(_:willDisplayHeaderView:forSection:)","abstract":"

    The event that the header will display in the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didEndDisplayingHeaderView:forSection:":{"name":"tableView(_:didEndDisplayingHeaderView:forSection:)","abstract":"

    The event that the header did left from the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:willDisplayFooterView:forSection:":{"name":"tableView(_:willDisplayFooterView:forSection:)","abstract":"

    The event that the footer will display in the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didEndDisplayingFooterView:forSection:":{"name":"tableView(_:didEndDisplayingFooterView:forSection:)","abstract":"

    The event that the footer did left from the visible rect.

    ","parent_name":"UITableViewAdapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterP4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    The data to be rendered.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE9cellNodes2inSayAA8CellNodeVGSi_tF":{"name":"cellNodes(in:)","abstract":"

    Returns a collection of cell nodes in the specified section.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE8cellNode2atAA04CellD0V10Foundation9IndexPathV_tF":{"name":"cellNode(at:)","abstract":"

    Returns a node of cell at the specified index path.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE10headerNode2inAA04ViewD0VSgSi_tF":{"name":"headerNode(in:)","abstract":"

    Returns a node of header in the specified section.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE10footerNode2inAA04ViewD0VSgSi_tF":{"name":"footerNode(in:)","abstract":"

    Returns a node of footer in the specified section.

    ","parent_name":"Adapter"},"Protocols/Adapter.html":{"name":"Adapter","abstract":"

    Represents an adapter that holds data to be rendered.

    "},"Classes/UITableViewAdapter.html":{"name":"UITableViewAdapter","abstract":"

    An adapter for UITableView."},"Classes/UICollectionViewAdapter.html":{"name":"UICollectionViewAdapter","abstract":"

    An adapter for UICollectionView."},"Classes/UICollectionViewFlowLayoutAdapter.html":{"name":"UICollectionViewFlowLayoutAdapter","abstract":"

    An adapter for UICollectionView with UICollectionViewFlowLayout inherited from UICollectionViewAdapter.

    "},"Classes/Renderer.html#/s:6Carbon8RendererC6target6TargetQzSgXwvp":{"name":"target","abstract":"

    An instance of target that weakly referenced.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC7adapter7AdapterQzvp":{"name":"adapter","abstract":"

    An instance of adapter that specified at initialized.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC7updaterxvp":{"name":"updater","abstract":"

    An instance of updater that specified at initialized.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    Returns a current data held in adapter.","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6target7adapter7updaterACyxG6TargetQz_7AdapterQzxtcfc":{"name":"init(target:adapter:updater:)","abstract":"

    Create a new instance with given target, adapter and updater.","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyqd___yycSgtSlRd__AA7SectionV7ElementRtd__lF":{"name":"render(_:completion:)","abstract":"

    Render given collection of sections, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyqd___yycSgtSlRd__AA7SectionVSg7ElementRtd__lF":{"name":"render(_:completion:)","abstract":"

    Render given collection of sections after removes contained nil, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyAA7SectionVd_yycSgtF":{"name":"render(_:completion:)","abstract":"

    Render a given variadic number of sections, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyAA7SectionVSgd_yycSgtF":{"name":"render(_:completion:)","abstract":"

    Render a given variadic number of sections after removes contained nil, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html":{"name":"Renderer","abstract":"

    Renderer is a controller to render passed data to target"},"Structs/Section.html#/s:6Carbon7SectionV2ids11AnyHashableVvp":{"name":"id","abstract":"

    A type-erased identifier that can be used to uniquely","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV6headerAA8ViewNodeVSgvp":{"name":"header","abstract":"

    A node representing header view.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV5cellsSayAA8CellNodeVGvp":{"name":"cells","abstract":"

    A collection of nodes representing cells.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV6footerAA8ViewNodeVSgvp":{"name":"footer","abstract":"

    A node representing footer view.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV2id6header5cells6footerACx_AA8ViewNodeVSgq_AJtcSHRzSlR_AA04CellH0V7ElementRt_r0_lufc":{"name":"init(id:header:cells:footer:)","abstract":"

    Create a section wrapping id, header node, footer node and cell nodes.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV2id6header5cells6footerACx_AA8ViewNodeVSgq_AJtcSHRzSlR_AA04CellH0VSg7ElementRt_r0_lufc":{"name":"init(id:header:cells:footer:)","abstract":"

    Create a section wrapping id, header node, footer node and cell nodes.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV2id6header6footerACx_AA8ViewNodeVSgAItcSHRzlufc":{"name":"init(id:header:footer:)","abstract":"

    Create a section wrapping id, header node, footer node.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV20differenceIdentifiers11AnyHashableVvp":{"name":"differenceIdentifier","abstract":"

    An identifier value for difference calculation.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV8elementsSayAA8CellNodeVGvp":{"name":"elements","abstract":"

    The collection of element in the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV14isContentEqual2toSbAC_tF":{"name":"isContentEqual(to:)","abstract":"

    Indicate whether the content of self is equals to the content of","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV6source8elementsA2C_xtcSlRzAA8CellNodeV7ElementRtzlufc":{"name":"init(source:elements:)","abstract":"

    Creates a new section reproducing the given source section with replacing the elements.

    ","parent_name":"Section"},"Structs/Section.html":{"name":"Section","abstract":"

    Represents a section of list UI, containing header node, footer node"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV9componentAA12AnyComponentVvp":{"name":"component","abstract":"

    A type-erased component which wrapped in self.

    ","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeVyACxcAA9ComponentRzlufc":{"name":"init(_:)","abstract":"

    Create a node wrapping given component.

    ","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV9component2asxSgxm_tlF":{"name":"component(as:)","abstract":"

    Returns a base instance of component casted as given type if possible.

    ","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV14isContentEqual2toSbAC_tF":{"name":"isContentEqual(to:)","abstract":"

    Indicate whether the content of self is equals to the content of","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    A textual representation of this instance, suitable for debugging.

    ","parent_name":"ViewNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV2ids11AnyHashableVvp":{"name":"id","abstract":"

    A type-erased identifier that can be used to uniquely","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV9componentAA12AnyComponentVvp":{"name":"component","abstract":"

    A type-erased component which wrapped in self.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV2id_ACx_q_tcSHRzAA9ComponentR_r0_lufc":{"name":"init(id:_:)","abstract":"

    Create a node wrapping given id and component.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeVyACxcAA21IdentifiableComponentRzlufc":{"name":"init(_:)","abstract":"

    Create a node wrapping given component and its id.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV9component2asxSgxm_tlF":{"name":"component(as:)","abstract":"

    Returns a base instance of component casted as given type if possible.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV20differenceIdentifiers11AnyHashableVvp":{"name":"differenceIdentifier","abstract":"

    An identifier value for difference calculation.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV14isContentEqual2toSbAC_tF":{"name":"isContentEqual(to:)","abstract":"

    Indicate whether the content of self is equals to the content of","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    A textual representation of this instance, suitable for debugging.

    ","parent_name":"CellNode"},"Structs/CellNode.html":{"name":"CellNode","abstract":"

    The node for cell that can be uniquely identified."},"Structs/ViewNode.html":{"name":"ViewNode","abstract":"

    The node for view which need not be uniquely identified like header or footer."},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    A string used to identify a element that is reusable. Default is the type name of Content.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentVyACxcAA0C0Rzlufc":{"name":"init(_:)","abstract":"

    Create a type-erased component that wraps the given instance.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV13renderContentypyF":{"name":"renderContent()","abstract":"

    Returns a new instance of Content.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV6render2inyyp_tF":{"name":"render(in:)","abstract":"

    Render properties into the content on the element of list UI.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV13referenceSize2inSo6CGSizeVSgSo6CGRectV_tF":{"name":"referenceSize(in:)","abstract":"

    Returns the referencing size of content to render on the list UI.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV19shouldContentUpdate4withSbAC_tF":{"name":"shouldContentUpdate(with:)","abstract":"

    Returns a Bool value indicating whether the content should be reloaded.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV12shouldRender4next2inSbAC_yptF":{"name":"shouldRender(next:in:)","abstract":"

    Returns a Bool value indicating whether component should be render again.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV6layout7content2inyyp_So6UIViewCtF":{"name":"layout(content:in:)","abstract":"

    Layout the content on top of element of the list UI.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV18contentWillDisplayyyypF":{"name":"contentWillDisplay(_:)","abstract":"

    Invoked every time of before a component got into visible area.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV20contentDidEndDisplayyyypF":{"name":"contentDidEndDisplay(_:)","abstract":"

    Invoked every time of after a component went out from visible area.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV2asyxSgxmlF":{"name":"as(_:)","abstract":"

    Returns a base instance casted as given type if possible.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    A textual representation of this instance, suitable for debugging.

    ","parent_name":"AnyComponent"},"Protocols/IdentifiableComponent.html#/s:6Carbon21IdentifiableComponentP2IDQa":{"name":"ID","abstract":"

    A type that represents an id that used to uniquely identify the component.

    ","parent_name":"IdentifiableComponent"},"Protocols/IdentifiableComponent.html#/s:6Carbon21IdentifiableComponentP2id2IDQzvp":{"name":"id","abstract":"

    An identifier that used to uniquely identify the component.

    ","parent_name":"IdentifiableComponent"},"Protocols/Component.html#/s:6Carbon9ComponentP7ContentQa":{"name":"Content","abstract":"

    A type that represents a content to be render on the element of list UI.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP13renderContent0D0QzyF":{"name":"renderContent()","abstract":"

    Returns a new instance of Content.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP6render2iny7ContentQz_tF":{"name":"render(in:)","abstract":"

    Render properties into the content.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP13referenceSize2inSo6CGSizeVSgSo6CGRectV_tF":{"name":"referenceSize(in:)","abstract":"

    Returns the referencing size of content to render on the list UI.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP19shouldContentUpdate4withSbx_tF":{"name":"shouldContentUpdate(with:)","abstract":"

    Returns a Bool value indicating whether the content should be reloaded.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    A string used to identify a element that is reusable. Default is the type name of Content.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP12shouldRender4next2inSbx_7ContentQztF":{"name":"shouldRender(next:in:)","abstract":"

    Returns a Bool value indicating whether component should be render again.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP6layout7content2iny7ContentQz_So6UIViewCtF":{"name":"layout(content:in:)","abstract":"

    Layout the content on top of element of the list UI.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP18contentWillDisplayyy7ContentQzF":{"name":"contentWillDisplay(_:)","abstract":"

    Invoked every time of before a component got into visible area.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP20contentDidEndDisplayyy7ContentQzF":{"name":"contentDidEndDisplay(_:)","abstract":"

    Invoked every time of after a component went out from visible area.

    ","parent_name":"Component"},"Protocols/Component.html":{"name":"Component","abstract":"

    Represents a component of a list UI such as UITableView or UICollectionView.

    "},"Protocols/IdentifiableComponent.html":{"name":"IdentifiableComponent","abstract":"

    Represents a component that can be uniquely identify.

    "},"Structs/AnyComponent.html":{"name":"AnyComponent","abstract":"

    A type-erased component.

    "},"Components.html":{"name":"Components"},"Nodes.html":{"name":"Nodes"},"Section.html":{"name":"Section"},"Renderer.html":{"name":"Renderer"},"Adapters.html":{"name":"Adapters"},"Updaters.html":{"name":"Updaters"},"Interfaces.html":{"name":"Interfaces"},"Content Protocols.html":{"name":"Content Protocols"},"Changesets.html":{"name":"Changesets"}} \ No newline at end of file +{"Changesets.html#/s:6Carbon13DataChangeseta":{"name":"DataChangeset","abstract":"

    A set of changes in the collection of sections.

    "},"Changesets.html#/s:6Carbon19StagedDataChangeseta":{"name":"StagedDataChangeset","abstract":"

    An ordered collection of DataChangeset as staged set of changes"},"Protocols/UICollectionReusableViewContent.html#/s:6Carbon31UICollectionReusableViewContentP9didRender2inySo0bcD0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified view.

    ","parent_name":"UICollectionReusableViewContent"},"Protocols/UICollectionReusableViewContent.html#/s:6Carbon31UICollectionReusableViewContentP18didRenderComponent2inySo0bcD0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified view.

    ","parent_name":"UICollectionReusableViewContent"},"Protocols/UICollectionReusableViewContent.html#/s:6Carbon31UICollectionReusableViewContentP22viewDidPrepareForReuseyySo0bcD0CF":{"name":"viewDidPrepareForReuse(_:)","abstract":"

    Called just before the view is dequeued.

    ","parent_name":"UICollectionReusableViewContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP9didRender2inySo0bcD0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified cell.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP18didRenderComponent2inySo0bcD0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified cell.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP22cellDidPrepareForReuseyySo0bcD0CF":{"name":"cellDidPrepareForReuse(_:)","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP21cellDidSetHighlighted_02isI0ySo0bcD0C_SbtF":{"name":"cellDidSetHighlighted(_:isHighlighted:)","abstract":"

    Called when the cell is highlighted.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UICollectionViewCellContent.html#/s:6Carbon27UICollectionViewCellContentP18cellDidSetSelected_02isI0ySo0bcD0C_SbtF":{"name":"cellDidSetSelected(_:isSelected:)","abstract":"

    Called when the cell is selected.

    ","parent_name":"UICollectionViewCellContent"},"Protocols/UITableViewHeaderFooterViewContent.html#/s:6Carbon023UITableViewHeaderFooterC7ContentP9didRender2inySo0bcdeC0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified view.

    ","parent_name":"UITableViewHeaderFooterViewContent"},"Protocols/UITableViewHeaderFooterViewContent.html#/s:6Carbon023UITableViewHeaderFooterC7ContentP18didRenderComponent2inySo0bcdeC0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified view.

    ","parent_name":"UITableViewHeaderFooterViewContent"},"Protocols/UITableViewHeaderFooterViewContent.html#/s:6Carbon023UITableViewHeaderFooterC7ContentP21viwDidPrepareForReuseyySo0bcdeC0CF":{"name":"viwDidPrepareForReuse(_:)","abstract":"

    Called just before the view is dequeued.

    ","parent_name":"UITableViewHeaderFooterViewContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP9didRender2inySo0bcD0C_tF":{"name":"didRender(in:)","abstract":"

    Called after the self is rendered on specified cell.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP18didRenderComponent2inySo0bcD0C_tF":{"name":"didRenderComponent(in:)","abstract":"

    Called after the component is rendered in self on the specified cell.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP22cellDidPrepareForReuseyySo0bcD0CF":{"name":"cellDidPrepareForReuse(_:)","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP21cellDidSetHighlighted_02isI08animatedySo0bcD0C_S2btF":{"name":"cellDidSetHighlighted(_:isHighlighted:animated:)","abstract":"

    Called when the cell is highlighted.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP18cellDidSetSelected_02isI08animatedySo0bcD0C_S2btF":{"name":"cellDidSetSelected(_:isSelected:animated:)","abstract":"

    Called when the cell is selected.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html#/s:6Carbon22UITableViewCellContentP17cellDidSetEditing_02isI08animatedySo0bcD0C_S2btF":{"name":"cellDidSetEditing(_:isEditing:animated:)","abstract":"

    Called when the cell become editing.

    ","parent_name":"UITableViewCellContent"},"Protocols/UITableViewCellContent.html":{"name":"UITableViewCellContent","abstract":"

    Represents the content of the UITableViewCell."},"Protocols/UITableViewHeaderFooterViewContent.html":{"name":"UITableViewHeaderFooterViewContent","abstract":"

    Represents the content of the UITableViewHeaderFooterView."},"Protocols/UICollectionViewCellContent.html":{"name":"UICollectionViewCellContent","abstract":"

    Represents the content of the UICollectionViewCell."},"Protocols/UICollectionReusableViewContent.html":{"name":"UICollectionReusableViewContent","abstract":"

    Represents the content of the UICollectionReusableView."},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC08renderedC0AA03AnyC0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/c:@M@Carbon@objc(cs)UICollectionComponentReusableView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Create a new view with identifier for reuse.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/c:@M@Carbon@objc(cs)UICollectionComponentReusableView(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionComponentReusableView.html#/s:6Carbon33UICollectionComponentReusableViewC09didRenderC0yyAA03AnyC0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UICollectionComponentReusableView"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC08renderedD0AA03AnyD0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(py)highlighted":{"name":"isHighlighted","abstract":"

    A Bool value indicating whether cell is highlighted.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(py)selected":{"name":"isSelected","abstract":"

    A Bool value indicating whether cell is selected.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Create a new cell with the frame.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/c:@M@Carbon@objc(cs)UICollectionViewComponentCell(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UICollectionViewComponentCell.html#/s:6Carbon29UICollectionViewComponentCellC09didRenderD0yyAA03AnyD0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UICollectionViewComponentCell"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C08renderedD0AA03AnyD0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/c:@M@Carbon@objc(cs)UITableViewComponentHeaderFooterView(im)initWithReuseIdentifier:":{"name":"init(reuseIdentifier:)","abstract":"

    Create a new view with identifier for reuse.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/c:@M@Carbon@objc(cs)UITableViewComponentHeaderFooterView(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentHeaderFooterView.html#/s:6Carbon032UITableViewComponentHeaderFooterC0C09didRenderD0yyAA03AnyD0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UITableViewComponentHeaderFooterView"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC15renderedContentypSgvp":{"name":"renderedContent","abstract":"

    A content that rendered on the cell.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC08renderedD0AA03AnyD0VSgvp":{"name":"renderedComponent","abstract":"

    A component that latest rendered in the content.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)initWithStyle:reuseIdentifier:":{"name":"init(style:reuseIdentifier:)","abstract":"

    Create a new cell with style and identifier for reuse.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)prepareForReuse":{"name":"prepareForReuse()","abstract":"

    Called just before the cell is dequeued.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)setHighlighted:animated:":{"name":"setHighlighted(_:animated:)","abstract":"

    Called when the cell is highlighted.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)setSelected:animated:":{"name":"setSelected(_:animated:)","abstract":"

    Called when the cell is selected.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/c:@M@Carbon@objc(cs)UITableViewComponentCell(im)setEditing:animated:":{"name":"setEditing(_:animated:)","abstract":"

    Called when the cell become editing.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC16didRenderContentyyypF":{"name":"didRenderContent(_:)","abstract":"

    Called after the content is rendered on self.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html#/s:6Carbon24UITableViewComponentCellC09didRenderD0yyAA03AnyD0VF":{"name":"didRenderComponent(_:)","abstract":"

    Called after the component is rendered in the content.

    ","parent_name":"UITableViewComponentCell"},"Classes/UITableViewComponentCell.html":{"name":"UITableViewComponentCell","abstract":"

    The cell as the container that renders the component.

    "},"Classes/UITableViewComponentHeaderFooterView.html":{"name":"UITableViewComponentHeaderFooterView","abstract":"

    The header or footer view as the container that renders the component.

    "},"Classes/UICollectionViewComponentCell.html":{"name":"UICollectionViewComponentCell","abstract":"

    The cell as the container that renders the component.

    "},"Classes/UICollectionComponentReusableView.html":{"name":"UICollectionComponentReusableView","abstract":"

    The header or footer view as the container that renders the component.

    "},"Classes/UICollectionViewReloadDataUpdater.html#/s:6Carbon33UICollectionViewReloadDataUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UICollectionViewReloadDataUpdater"},"Classes/UICollectionViewReloadDataUpdater.html#/s:6Carbon33UICollectionViewReloadDataUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given collection view, then reload data and invalidate layout.

    ","parent_name":"UICollectionViewReloadDataUpdater"},"Classes/UICollectionViewReloadDataUpdater.html#/s:6Carbon33UICollectionViewReloadDataUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Perform reload data to render given data to the target.","parent_name":"UICollectionViewReloadDataUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC18isAnimationEnabledSbvp":{"name":"isAnimationEnabled","abstract":"

    A Bool value indicating whether that enable diffing animation. Default is true.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC32isAnimationEnabledWhileScrollingSbvp":{"name":"isAnimationEnabledWhileScrolling","abstract":"

    A Bool value indicating whether that enable diffing animation while target is","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC20skipReloadComponentsSbvp":{"name":"skipReloadComponents","abstract":"

    A Bool value indicating whether that skips reload components. Default is false.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC29alwaysRenderVisibleComponentsSbvp":{"name":"alwaysRenderVisibleComponents","abstract":"

    A Bool value indicating whether that to always render visible components","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC18keepsContentOffsetSbvp":{"name":"keepsContentOffset","abstract":"

    A Bool value indicating whether that to reset content offset after","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC21animatableChangeCountSivp":{"name":"animatableChangeCount","abstract":"

    Max number of changes that can be animated for diffing updates. Default is 300.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given collection view, then reload data and invalidate layout.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Calculates a set of changes to perform diffing updates.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC26performDifferentialUpdates6target7adapter4data15stagedChangeset10completionySo0bC0C_xSayAA7SectionVG13DifferenceKit06StagedL0VyANGyycSgtF":{"name":"performDifferentialUpdates(target:adapter:data:stagedChangeset:completion:)","abstract":"

    Perform diffing updates to render given data to the target.","parent_name":"UICollectionViewUpdater"},"Classes/UICollectionViewUpdater.html#/s:6Carbon23UICollectionViewUpdaterC23renderVisibleComponents2in7adapterySo0bC0C_xtF":{"name":"renderVisibleComponents(in:adapter:)","abstract":"

    Renders components displayed in visible area again.

    ","parent_name":"UICollectionViewUpdater"},"Classes/UITableViewReloadDataUpdater.html#/s:6Carbon28UITableViewReloadDataUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UITableViewReloadDataUpdater"},"Classes/UITableViewReloadDataUpdater.html#/s:6Carbon28UITableViewReloadDataUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given table view, then reload data.

    ","parent_name":"UITableViewReloadDataUpdater"},"Classes/UITableViewReloadDataUpdater.html#/s:6Carbon28UITableViewReloadDataUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Perform reload data to render given data to the target.","parent_name":"UITableViewReloadDataUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23deleteSectionsAnimationSo0bc3RowG0Vvp":{"name":"deleteSectionsAnimation","abstract":"

    An animation for section deletions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23insertSectionsAnimationSo0bc3RowG0Vvp":{"name":"insertSectionsAnimation","abstract":"

    An animation for section insertions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23reloadSectionsAnimationSo0bc3RowG0Vvp":{"name":"reloadSectionsAnimation","abstract":"

    An animation for section reloads. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC19deleteRowsAnimationSo0bc3RowG0Vvp":{"name":"deleteRowsAnimation","abstract":"

    An animation for row deletions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC19insertRowsAnimationSo0bc3RowG0Vvp":{"name":"insertRowsAnimation","abstract":"

    An animation for row insertions. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC19reloadRowsAnimationSo0bc3RowG0Vvp":{"name":"reloadRowsAnimation","abstract":"

    An animation for row reloads. Default is fade.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC18isAnimationEnabledSbvp":{"name":"isAnimationEnabled","abstract":"

    A Bool value indicating whether that enable diffing animation. Default is true.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC32isAnimationEnabledWhileScrollingSbvp":{"name":"isAnimationEnabledWhileScrolling","abstract":"

    A Bool value indicating whether that enable diffing animation while target is","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC20skipReloadComponentsSbvp":{"name":"skipReloadComponents","abstract":"

    A Bool value indicating whether that skips reload components. Default is false.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC29alwaysRenderVisibleComponentsSbvp":{"name":"alwaysRenderVisibleComponents","abstract":"

    A Bool value indicating whether that to always render visible components","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC18keepsContentOffsetSbvp":{"name":"keepsContentOffset","abstract":"

    A Bool value indicating whether that to reset content offset after","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC21animatableChangeCountSivp":{"name":"animatableChangeCount","abstract":"

    Max number of changes that can be animated for diffing updates. Default is 300.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterCACyxGycfc":{"name":"init()","abstract":"

    Create a new updater.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC3set12allAnimationySo0bc3RowG0V_tF":{"name":"set(allAnimation:)","abstract":"

    Set given animation to all kind of diffing updates.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC7prepare6target7adapterySo0bC0C_xtF":{"name":"prepare(target:adapter:)","abstract":"

    Set the delegate and dataSource of given table view, then reload data.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC14performUpdates6target7adapter4data10completionySo0bC0C_xSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Calculates a set of changes to perform diffing updates.

    ","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC26performDifferentialUpdates6target7adapter4data15stagedChangeset10completionySo0bC0C_xSayAA7SectionVG13DifferenceKit06StagedL0VyANGyycSgtF":{"name":"performDifferentialUpdates(target:adapter:data:stagedChangeset:completion:)","abstract":"

    Perform diffing updates to render given data to the target.","parent_name":"UITableViewUpdater"},"Classes/UITableViewUpdater.html#/s:6Carbon18UITableViewUpdaterC23renderVisibleComponents2in7adapterySo0bC0C_xtF":{"name":"renderVisibleComponents(in:adapter:)","abstract":"

    Renders components displayed in visible area again.

    ","parent_name":"UITableViewUpdater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP6TargetQa":{"name":"Target","abstract":"

    A type that represents a target to be updated for render given data.

    ","parent_name":"Updater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP7AdapterQa":{"name":"Adapter","abstract":"

    A type that represents an adapter holding the data to be rendered.

    ","parent_name":"Updater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP7prepare6target7adaptery6TargetQz_7AdapterQztF":{"name":"prepare(target:adapter:)","abstract":"

    Prepares given target and adapter.

    ","parent_name":"Updater"},"Protocols/Updater.html#/s:6Carbon7UpdaterP14performUpdates6target7adapter4data10completiony6TargetQz_7AdapterQzSayAA7SectionVGyycSgtF":{"name":"performUpdates(target:adapter:data:completion:)","abstract":"

    Perform updates to render given data to the target.","parent_name":"Updater"},"Protocols/Updater.html":{"name":"Updater","abstract":"

    Represents an updater that manages the updation for target.

    "},"Classes/UITableViewUpdater.html":{"name":"UITableViewUpdater","abstract":"

    An updater for managing diffing updates to render data to the UITableView.

    "},"Classes/UITableViewReloadDataUpdater.html":{"name":"UITableViewReloadDataUpdater","abstract":"

    An updater for managing to perform reload data to render data to the UITableView.

    "},"Classes/UICollectionViewUpdater.html":{"name":"UICollectionViewUpdater","abstract":"

    An updater for managing diffing updates to render data to the UICollectionView.

    "},"Classes/UICollectionViewReloadDataUpdater.html":{"name":"UICollectionViewReloadDataUpdater","abstract":"

    An updater for managing to perform reload data to render data to the UICollectionView.

    "},"Classes/UICollectionViewFlowLayoutAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewFlowLayoutAdapter(im)collectionView:layout:sizeForItemAtIndexPath:":{"name":"collectionView(_:layout:sizeForItemAt:)","abstract":"

    Returns the size for item at specified index path.

    ","parent_name":"UICollectionViewFlowLayoutAdapter"},"Classes/UICollectionViewFlowLayoutAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewFlowLayoutAdapter(im)collectionView:layout:referenceSizeForHeaderInSection:":{"name":"collectionView(_:layout:referenceSizeForHeaderInSection:)","abstract":"

    Returns the size for header in specified section.

    ","parent_name":"UICollectionViewFlowLayoutAdapter"},"Classes/UICollectionViewFlowLayoutAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewFlowLayoutAdapter(im)collectionView:layout:referenceSizeForFooterInSection:":{"name":"collectionView(_:layout:referenceSizeForFooterInSection:)","abstract":"

    Returns the size for footer in specified section.

    ","parent_name":"UICollectionViewFlowLayoutAdapter"},"Classes/UICollectionViewAdapter/SelectionContext.html#/s:6Carbon23UICollectionViewAdapterC16SelectionContextV010collectionC0So0bC0Cvp":{"name":"collectionView","abstract":"

    A collection view of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UICollectionViewAdapter/SelectionContext.html#/s:6Carbon23UICollectionViewAdapterC16SelectionContextV4nodeAA8CellNodeVvp":{"name":"node","abstract":"

    A node corresponding to the selected cell position.

    ","parent_name":"SelectionContext"},"Classes/UICollectionViewAdapter/SelectionContext.html#/s:6Carbon23UICollectionViewAdapterC16SelectionContextV9indexPath10Foundation05IndexH0Vvp":{"name":"indexPath","abstract":"

    The index path of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV7defaultAEvpZ":{"name":"default","abstract":"

    The default configuration.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV9cellClassAA0bC13ComponentCellCmvp":{"name":"cellClass","abstract":"

    The class of the cell.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV06headerC5ClassAA0b17ComponentReusableC0Cmvp":{"name":"headerViewClass","abstract":"

    The class of the header view.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV06footerC5ClassAA0b17ComponentReusableC0Cmvp":{"name":"footerViewClass","abstract":"

    The class of the footer view.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter/Config.html#/s:6Carbon23UICollectionViewAdapterC6ConfigV9cellClass06headercG006footercG0AeA0bC13ComponentCellCm_AA0bj8ReusableC0CmALmtcfc":{"name":"init(cellClass:headerViewClass:footerViewClass:)","abstract":"

    Create a render configuration with the classes of elements.

    ","parent_name":"Config"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    The data to be rendered in the list UI.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC6configAC6ConfigVvp":{"name":"config","abstract":"

    A configuration that determines the classes of the elements to render.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC9didSelectyAC16SelectionContextVcSgvp":{"name":"didSelect","abstract":"

    A closure that to handle selection events of cell.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/s:6Carbon23UICollectionViewAdapterC4data6configACSayAA7SectionVG_AC6ConfigVtcfc":{"name":"init(data:config:)","abstract":"

    Create an adapter with initial data and rendering config.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter/Config.html":{"name":"Config","abstract":"

    The configuration for the classes of elements in UICollectionView.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter/SelectionContext.html":{"name":"SelectionContext","abstract":"

    Context when cell is selected.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)numberOfSectionsInCollectionView:":{"name":"numberOfSections(in:)","abstract":"

    Return the number of sections.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

    Return the number of items in specified section.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

    Resister and dequeue the cell at specified index path.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:viewForSupplementaryElementOfKind:atIndexPath:":{"name":"collectionView(_:viewForSupplementaryElementOfKind:at:)","abstract":"

    Resister and dequeue the header or footer in specified section.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

    Callback the selected event of cell to the didSelect closure.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:willDisplayCell:forItemAtIndexPath:":{"name":"collectionView(_:willDisplay:forItemAt:)","abstract":"

    The event that the cell will display in the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:didEndDisplayingCell:forItemAtIndexPath:":{"name":"collectionView(_:didEndDisplaying:forItemAt:)","abstract":"

    The event that the cell did left from the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:willDisplaySupplementaryView:forElementKind:atIndexPath:":{"name":"collectionView(_:willDisplaySupplementaryView:forElementKind:at:)","abstract":"

    The event that the header or footer will display in the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UICollectionViewAdapter.html#/c:@CM@Carbon@objc(cs)UICollectionViewAdapter(im)collectionView:didEndDisplayingSupplementaryView:forElementOfKind:atIndexPath:":{"name":"collectionView(_:didEndDisplayingSupplementaryView:forElementOfKind:at:)","abstract":"

    The event that the header or footer did left from the visible rect.

    ","parent_name":"UICollectionViewAdapter"},"Classes/UITableViewAdapter/SelectionContext.html#/s:6Carbon18UITableViewAdapterC16SelectionContextV05tableC0So0bC0Cvp":{"name":"tableView","abstract":"

    A table view of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UITableViewAdapter/SelectionContext.html#/s:6Carbon18UITableViewAdapterC16SelectionContextV4nodeAA8CellNodeVvp":{"name":"node","abstract":"

    A node corresponding to the selected cell position.

    ","parent_name":"SelectionContext"},"Classes/UITableViewAdapter/SelectionContext.html#/s:6Carbon18UITableViewAdapterC16SelectionContextV9indexPath10Foundation05IndexH0Vvp":{"name":"indexPath","abstract":"

    The index path of the selected cell.

    ","parent_name":"SelectionContext"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV7defaultAEvpZ":{"name":"default","abstract":"

    The default configuration.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV9cellClassAA0bC13ComponentCellCmvp":{"name":"cellClass","abstract":"

    The class of the cell.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV06headerC5ClassAA0bc21ComponentHeaderFooterC0Cmvp":{"name":"headerViewClass","abstract":"

    The class of the header view.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV06footerC5ClassAA0bc21ComponentHeaderFooterC0Cmvp":{"name":"footerViewClass","abstract":"

    The class of the footer view.

    ","parent_name":"Config"},"Classes/UITableViewAdapter/Config.html#/s:6Carbon18UITableViewAdapterC6ConfigV9cellClass06headercG006footercG0AeA0bC13ComponentCellCm_AA0bcj12HeaderFooterC0CmALmtcfc":{"name":"init(cellClass:headerViewClass:footerViewClass:)","abstract":"

    Create a render configuration with the classes of elements.

    ","parent_name":"Config"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    The data to be rendered in the list UI.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC6configAC6ConfigVvp":{"name":"config","abstract":"

    A configuration that determines the classes of the elements to render.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC9didSelectyAC16SelectionContextVcSgvp":{"name":"didSelect","abstract":"

    A closure that to handle selection events of cell.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/s:6Carbon18UITableViewAdapterC4data6configACSayAA7SectionVG_AC6ConfigVtcfc":{"name":"init(data:config:)","abstract":"

    Create an adapter with initial data and rendering config.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter/Config.html":{"name":"Config","abstract":"

    The configuration for the classes of elements in UITableView.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter/SelectionContext.html":{"name":"SelectionContext","abstract":"

    Context when cell is selected.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)numberOfSectionsInTableView:":{"name":"numberOfSections(in:)","abstract":"

    Return the number of sections.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:numberOfRowsInSection:":{"name":"tableView(_:numberOfRowsInSection:)","abstract":"

    Return the number of rows in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:cellForRowAtIndexPath:":{"name":"tableView(_:cellForRowAt:)","abstract":"

    Resister and dequeue the cell at specified index path.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:viewForHeaderInSection:":{"name":"tableView(_:viewForHeaderInSection:)","abstract":"

    Resister and dequeue the header in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:viewForFooterInSection:":{"name":"tableView(_:viewForFooterInSection:)","abstract":"

    Resister and dequeue the footer in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:heightForRowAtIndexPath:":{"name":"tableView(_:heightForRowAt:)","abstract":"

    Returns the height for row at specified index path.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:estimatedHeightForRowAtIndexPath:":{"name":"tableView(_:estimatedHeightForRowAt:)","abstract":"

    Returns the estimated height for row at specified index path.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:heightForHeaderInSection:":{"name":"tableView(_:heightForHeaderInSection:)","abstract":"

    Returns the height for header in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:estimatedHeightForHeaderInSection:":{"name":"tableView(_:estimatedHeightForHeaderInSection:)","abstract":"

    Returns the estimated height for header in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:heightForFooterInSection:":{"name":"tableView(_:heightForFooterInSection:)","abstract":"

    Returns the height for footer in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:estimatedHeightForFooterInSection:":{"name":"tableView(_:estimatedHeightForFooterInSection:)","abstract":"

    Returns the estimated height for footer in specified section.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didSelectRowAtIndexPath:":{"name":"tableView(_:didSelectRowAt:)","abstract":"

    Callback the selected event of cell to the didSelect closure.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:willDisplayCell:forRowAtIndexPath:":{"name":"tableView(_:willDisplay:forRowAt:)","abstract":"

    The event that the cell will display in the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didEndDisplayingCell:forRowAtIndexPath:":{"name":"tableView(_:didEndDisplaying:forRowAt:)","abstract":"

    The event that the cell did left from the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:willDisplayHeaderView:forSection:":{"name":"tableView(_:willDisplayHeaderView:forSection:)","abstract":"

    The event that the header will display in the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didEndDisplayingHeaderView:forSection:":{"name":"tableView(_:didEndDisplayingHeaderView:forSection:)","abstract":"

    The event that the header did left from the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:willDisplayFooterView:forSection:":{"name":"tableView(_:willDisplayFooterView:forSection:)","abstract":"

    The event that the footer will display in the visible rect.

    ","parent_name":"UITableViewAdapter"},"Classes/UITableViewAdapter.html#/c:@CM@Carbon@objc(cs)UITableViewAdapter(im)tableView:didEndDisplayingFooterView:forSection:":{"name":"tableView(_:didEndDisplayingFooterView:forSection:)","abstract":"

    The event that the footer did left from the visible rect.

    ","parent_name":"UITableViewAdapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterP4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    The data to be rendered.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE9cellNodes2inSayAA8CellNodeVGSi_tF":{"name":"cellNodes(in:)","abstract":"

    Returns a collection of cell nodes in the specified section.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE8cellNode2atAA04CellD0V10Foundation9IndexPathV_tF":{"name":"cellNode(at:)","abstract":"

    Returns a node of cell at the specified index path.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE10headerNode2inAA04ViewD0VSgSi_tF":{"name":"headerNode(in:)","abstract":"

    Returns a node of header in the specified section.

    ","parent_name":"Adapter"},"Protocols/Adapter.html#/s:6Carbon7AdapterPAAE10footerNode2inAA04ViewD0VSgSi_tF":{"name":"footerNode(in:)","abstract":"

    Returns a node of footer in the specified section.

    ","parent_name":"Adapter"},"Protocols/Adapter.html":{"name":"Adapter","abstract":"

    Represents an adapter that holds data to be rendered.

    "},"Classes/UITableViewAdapter.html":{"name":"UITableViewAdapter","abstract":"

    An adapter for UITableView."},"Classes/UICollectionViewAdapter.html":{"name":"UICollectionViewAdapter","abstract":"

    An adapter for UICollectionView."},"Classes/UICollectionViewFlowLayoutAdapter.html":{"name":"UICollectionViewFlowLayoutAdapter","abstract":"

    An adapter for UICollectionView with UICollectionViewFlowLayout inherited from UICollectionViewAdapter.

    "},"Classes/Renderer.html#/s:6Carbon8RendererC7adapter7AdapterQzvp":{"name":"adapter","abstract":"

    An instance of adapter that specified at initialized.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC7updaterxvp":{"name":"updater","abstract":"

    An instance of updater that specified at initialized.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6target6TargetQzSgvp":{"name":"target","abstract":"

    An instance of target that weakly referenced.","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC4dataSayAA7SectionVGvp":{"name":"data","abstract":"

    Returns a current data held in adapter.","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC7adapter7updaterACyxG7AdapterQz_xtcfc":{"name":"init(adapter:updater:)","abstract":"

    Create a new instance with given adapter and updater.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyqd___yycSgtSlRd__AA7SectionV7ElementRtd__lF":{"name":"render(_:completion:)","abstract":"

    Render given collection of sections, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyqd___yycSgtSlRd__AA7SectionVSg7ElementRtd__lF":{"name":"render(_:completion:)","abstract":"

    Render given collection of sections after removes contained nil, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyAA7SectionVd_yycSgtF":{"name":"render(_:completion:)","abstract":"

    Render a given variadic number of sections, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6render_10completionyAA7SectionVSgd_yycSgtF":{"name":"render(_:completion:)","abstract":"

    Render a given variadic number of sections after removes contained nil, immediately.

    ","parent_name":"Renderer"},"Classes/Renderer.html#/s:6Carbon8RendererC6target7adapter7updaterACyxG6TargetQz_7AdapterQzxtcfc":{"name":"init(target:adapter:updater:)","abstract":"

    Create a new instance with given target, adapter and updater.","parent_name":"Renderer"},"Classes/Renderer.html":{"name":"Renderer","abstract":"

    Renderer is a controller to render passed data to target"},"Structs/Section.html#/s:6Carbon7SectionV2ids11AnyHashableVvp":{"name":"id","abstract":"

    A type-erased identifier that can be used to uniquely","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV6headerAA8ViewNodeVSgvp":{"name":"header","abstract":"

    A node representing header view.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV5cellsSayAA8CellNodeVGvp":{"name":"cells","abstract":"

    A collection of nodes representing cells.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV6footerAA8ViewNodeVSgvp":{"name":"footer","abstract":"

    A node representing footer view.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV2id6header5cells6footerACx_AA8ViewNodeVSgq_AJtcSHRzSlR_AA04CellH0V7ElementRt_r0_lufc":{"name":"init(id:header:cells:footer:)","abstract":"

    Create a section wrapping id, header node, footer node and cell nodes.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV2id6header5cells6footerACx_AA8ViewNodeVSgq_AJtcSHRzSlR_AA04CellH0VSg7ElementRt_r0_lufc":{"name":"init(id:header:cells:footer:)","abstract":"

    Create a section wrapping id, header node, footer node and cell nodes.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV2id6header6footerACx_AA8ViewNodeVSgAItcSHRzlufc":{"name":"init(id:header:footer:)","abstract":"

    Create a section wrapping id, header node, footer node.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV20differenceIdentifiers11AnyHashableVvp":{"name":"differenceIdentifier","abstract":"

    An identifier value for difference calculation.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV8elementsSayAA8CellNodeVGvp":{"name":"elements","abstract":"

    The collection of element in the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV14isContentEqual2toSbAC_tF":{"name":"isContentEqual(to:)","abstract":"

    Indicate whether the content of self is equals to the content of","parent_name":"Section"},"Structs/Section.html#/s:6Carbon7SectionV6source8elementsA2C_xtcSlRzAA8CellNodeV7ElementRtzlufc":{"name":"init(source:elements:)","abstract":"

    Creates a new section reproducing the given source section with replacing the elements.

    ","parent_name":"Section"},"Structs/Section.html":{"name":"Section","abstract":"

    Represents a section of list UI, containing header node, footer node"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV9componentAA12AnyComponentVvp":{"name":"component","abstract":"

    A type-erased component which wrapped in self.

    ","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeVyACxcAA9ComponentRzlufc":{"name":"init(_:)","abstract":"

    Create a node wrapping given component.

    ","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV9component2asxSgxm_tlF":{"name":"component(as:)","abstract":"

    Returns a base instance of component casted as given type if possible.

    ","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV14isContentEqual2toSbAC_tF":{"name":"isContentEqual(to:)","abstract":"

    Indicate whether the content of self is equals to the content of","parent_name":"ViewNode"},"Structs/ViewNode.html#/s:6Carbon8ViewNodeV16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    A textual representation of this instance, suitable for debugging.

    ","parent_name":"ViewNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV2ids11AnyHashableVvp":{"name":"id","abstract":"

    A type-erased identifier that can be used to uniquely","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV9componentAA12AnyComponentVvp":{"name":"component","abstract":"

    A type-erased component which wrapped in self.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV2id_ACx_q_tcSHRzAA9ComponentR_r0_lufc":{"name":"init(id:_:)","abstract":"

    Create a node wrapping given id and component.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeVyACxcAA21IdentifiableComponentRzlufc":{"name":"init(_:)","abstract":"

    Create a node wrapping given component and its id.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV9component2asxSgxm_tlF":{"name":"component(as:)","abstract":"

    Returns a base instance of component casted as given type if possible.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV20differenceIdentifiers11AnyHashableVvp":{"name":"differenceIdentifier","abstract":"

    An identifier value for difference calculation.

    ","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV14isContentEqual2toSbAC_tF":{"name":"isContentEqual(to:)","abstract":"

    Indicate whether the content of self is equals to the content of","parent_name":"CellNode"},"Structs/CellNode.html#/s:6Carbon8CellNodeV16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    A textual representation of this instance, suitable for debugging.

    ","parent_name":"CellNode"},"Structs/CellNode.html":{"name":"CellNode","abstract":"

    The node for cell that can be uniquely identified."},"Structs/ViewNode.html":{"name":"ViewNode","abstract":"

    The node for view which need not be uniquely identified like header or footer."},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    A string used to identify a element that is reusable. Default is the type name of Content.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentVyACxcAA0C0Rzlufc":{"name":"init(_:)","abstract":"

    Create a type-erased component that wraps the given instance.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV13renderContentypyF":{"name":"renderContent()","abstract":"

    Returns a new instance of Content.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV6render2inyyp_tF":{"name":"render(in:)","abstract":"

    Render properties into the content on the element of list UI.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV13referenceSize2inSo6CGSizeVSgSo6CGRectV_tF":{"name":"referenceSize(in:)","abstract":"

    Returns the referencing size of content to render on the list UI.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV19shouldContentUpdate4withSbAC_tF":{"name":"shouldContentUpdate(with:)","abstract":"

    Returns a Bool value indicating whether the content should be reloaded.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV12shouldRender4next2inSbAC_yptF":{"name":"shouldRender(next:in:)","abstract":"

    Returns a Bool value indicating whether component should be render again.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV6layout7content2inyyp_So6UIViewCtF":{"name":"layout(content:in:)","abstract":"

    Layout the content on top of element of the list UI.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV18contentWillDisplayyyypF":{"name":"contentWillDisplay(_:)","abstract":"

    Invoked every time of before a component got into visible area.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV20contentDidEndDisplayyyypF":{"name":"contentDidEndDisplay(_:)","abstract":"

    Invoked every time of after a component went out from visible area.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV2asyxSgxmlF":{"name":"as(_:)","abstract":"

    Returns a base instance casted as given type if possible.

    ","parent_name":"AnyComponent"},"Structs/AnyComponent.html#/s:6Carbon12AnyComponentV16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    A textual representation of this instance, suitable for debugging.

    ","parent_name":"AnyComponent"},"Protocols/IdentifiableComponent.html#/s:6Carbon21IdentifiableComponentP2IDQa":{"name":"ID","abstract":"

    A type that represents an id that used to uniquely identify the component.

    ","parent_name":"IdentifiableComponent"},"Protocols/IdentifiableComponent.html#/s:6Carbon21IdentifiableComponentP2id2IDQzvp":{"name":"id","abstract":"

    An identifier that used to uniquely identify the component.

    ","parent_name":"IdentifiableComponent"},"Protocols/Component.html#/s:6Carbon9ComponentP7ContentQa":{"name":"Content","abstract":"

    A type that represents a content to be render on the element of list UI.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP13renderContent0D0QzyF":{"name":"renderContent()","abstract":"

    Returns a new instance of Content.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP6render2iny7ContentQz_tF":{"name":"render(in:)","abstract":"

    Render properties into the content.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP13referenceSize2inSo6CGSizeVSgSo6CGRectV_tF":{"name":"referenceSize(in:)","abstract":"

    Returns the referencing size of content to render on the list UI.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP19shouldContentUpdate4withSbx_tF":{"name":"shouldContentUpdate(with:)","abstract":"

    Returns a Bool value indicating whether the content should be reloaded.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    A string used to identify a element that is reusable. Default is the type name of Content.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP12shouldRender4next2inSbx_7ContentQztF":{"name":"shouldRender(next:in:)","abstract":"

    Returns a Bool value indicating whether component should be render again.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP6layout7content2iny7ContentQz_So6UIViewCtF":{"name":"layout(content:in:)","abstract":"

    Layout the content on top of element of the list UI.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP18contentWillDisplayyy7ContentQzF":{"name":"contentWillDisplay(_:)","abstract":"

    Invoked every time of before a component got into visible area.

    ","parent_name":"Component"},"Protocols/Component.html#/s:6Carbon9ComponentP20contentDidEndDisplayyy7ContentQzF":{"name":"contentDidEndDisplay(_:)","abstract":"

    Invoked every time of after a component went out from visible area.

    ","parent_name":"Component"},"Protocols/Component.html":{"name":"Component","abstract":"

    Represents a component of a list UI such as UITableView or UICollectionView.

    "},"Protocols/IdentifiableComponent.html":{"name":"IdentifiableComponent","abstract":"

    Represents a component that can be uniquely identify.

    "},"Structs/AnyComponent.html":{"name":"AnyComponent","abstract":"

    A type-erased component.

    "},"Components.html":{"name":"Components"},"Nodes.html":{"name":"Nodes"},"Section.html":{"name":"Section"},"Renderer.html":{"name":"Renderer"},"Adapters.html":{"name":"Adapters"},"Updaters.html":{"name":"Updaters"},"Interfaces.html":{"name":"Interfaces"},"Content Protocols.html":{"name":"Content Protocols"},"Changesets.html":{"name":"Changesets"}} \ No newline at end of file