diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ab405ac..ad520855 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ All notable changes to this project will be documented in this file. # Next +## [10.0.0-beta.1](https://github.com/DenTelezhkin/DTModelStorage/releases/tag/10.0.0-beta.1) + ### Removed * `defersDatasourceUpdates` on `MemoryStorage`. This property was deprecated in previous release and is now removed. `MemoryStorage` now always defers updates as if this property was turned on (which was the default). diff --git a/DTModelStorage.podspec b/DTModelStorage.podspec index 37d78e74..a979d37c 100644 --- a/DTModelStorage.podspec +++ b/DTModelStorage.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'DTModelStorage' - s.version = "9.1.2" + s.version = "10.0.0-beta.1" s.license = 'MIT' s.summary = 'Storage classes for datasource based controls.' s.homepage = 'https://github.com/DenTelezhkin/DTModelStorage' diff --git a/DTModelStorage.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DTModelStorage.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 88abe7c3..3f9cbf74 100644 --- a/DTModelStorage.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DTModelStorage.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -20,7 +20,7 @@ } }, { - "package": "realm-cocoa", + "package": "Realm", "repositoryURL": "https://github.com/realm/realm-cocoa", "state": { "branch": null, @@ -29,7 +29,7 @@ } }, { - "package": "realm-core", + "package": "RealmDatabase", "repositoryURL": "https://github.com/realm/realm-core", "state": { "branch": null, diff --git a/Supporting files/Framework.plist b/Supporting files/Framework.plist index 4b5fd4bb..f621d250 100644 --- a/Supporting files/Framework.plist +++ b/Supporting files/Framework.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 9.1.2 + 10.0.0-beta.1 CFBundleSignature ???? CFBundleVersion diff --git a/Supporting files/Info.plist b/Supporting files/Info.plist index 04ece579..f57cbaaa 100644 --- a/Supporting files/Info.plist +++ b/Supporting files/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 9.1.2 + 10.0.0-beta.1 CFBundleVersion $(CURRENT_PROJECT_VERSION) diff --git a/docs/Classes.html b/docs/Classes.html index 2895e52c..e1e61a0e 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -21,7 +21,7 @@

- DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

@@ -83,9 +83,6 @@ - @@ -467,34 +464,6 @@

Declaration

-
  • -
    - - - - ProxyDiffableDataSourceStorage - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class ProxyDiffableDataSourceStorage : BaseSupplementaryStorage, Storage
    - -
    -
    -
    -
    -
  • @@ -680,8 +649,8 @@

    Declaration

    diff --git a/docs/Classes/BaseSupplementaryStorage.html b/docs/Classes/BaseSupplementaryStorage.html index 1924b8b1..a3b23733 100644 --- a/docs/Classes/BaseSupplementaryStorage.html +++ b/docs/Classes/BaseSupplementaryStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -381,8 +378,8 @@

    Declaration

    diff --git a/docs/Classes/BaseUpdateDeliveringStorage.html b/docs/Classes/BaseUpdateDeliveringStorage.html index 6fb7027a..68d36f9f 100644 --- a/docs/Classes/BaseUpdateDeliveringStorage.html +++ b/docs/Classes/BaseUpdateDeliveringStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -422,8 +419,8 @@

    Declaration

    diff --git a/docs/Classes/CoreDataStorage.html b/docs/Classes/CoreDataStorage.html index b699f45e..bdf482a4 100644 --- a/docs/Classes/CoreDataStorage.html +++ b/docs/Classes/CoreDataStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -585,8 +582,8 @@

    Declaration

    diff --git a/docs/Classes/EventReaction.html b/docs/Classes/EventReaction.html index 8a6a9e1a..877b1b73 100644 --- a/docs/Classes/EventReaction.html +++ b/docs/Classes/EventReaction.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -821,8 +818,8 @@

    Declaration

    diff --git a/docs/Classes/FiveArgumentsEventReaction.html b/docs/Classes/FiveArgumentsEventReaction.html index 9fa09421..3362e205 100644 --- a/docs/Classes/FiveArgumentsEventReaction.html +++ b/docs/Classes/FiveArgumentsEventReaction.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -410,8 +407,8 @@

    Declaration

    diff --git a/docs/Classes/FourArgumentsEventReaction.html b/docs/Classes/FourArgumentsEventReaction.html index c22f41d0..86734888 100644 --- a/docs/Classes/FourArgumentsEventReaction.html +++ b/docs/Classes/FourArgumentsEventReaction.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -398,8 +395,8 @@

    Declaration

    diff --git a/docs/Classes/MemoryStorage.html b/docs/Classes/MemoryStorage.html index 9fd285be..ae3ccec3 100644 --- a/docs/Classes/MemoryStorage.html +++ b/docs/Classes/MemoryStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -249,33 +246,6 @@

    MemoryStorage

    diff --git a/docs/Classes/MemoryStorageAnomalyHandler.html b/docs/Classes/MemoryStorageAnomalyHandler.html index e5f1eb04..66f9b753 100644 --- a/docs/Classes/MemoryStorageAnomalyHandler.html +++ b/docs/Classes/MemoryStorageAnomalyHandler.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -327,8 +324,8 @@

    Declaration

    diff --git a/docs/Classes/SectionModel.html b/docs/Classes/SectionModel.html index 04acb83f..1c1f5651 100644 --- a/docs/Classes/SectionModel.html +++ b/docs/Classes/SectionModel.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -481,8 +478,8 @@

    Declaration

    diff --git a/docs/Classes/SingleSectionEquatableStorage.html b/docs/Classes/SingleSectionEquatableStorage.html index 081d7536..ed070786 100644 --- a/docs/Classes/SingleSectionEquatableStorage.html +++ b/docs/Classes/SingleSectionEquatableStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -381,8 +378,8 @@

    Return Value

    diff --git a/docs/Classes/SingleSectionHashableStorage.html b/docs/Classes/SingleSectionHashableStorage.html index 90ce505f..99c10f05 100644 --- a/docs/Classes/SingleSectionHashableStorage.html +++ b/docs/Classes/SingleSectionHashableStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -381,8 +378,8 @@

    Return Value

    diff --git a/docs/Classes/SingleSectionStorage.html b/docs/Classes/SingleSectionStorage.html index f452fc09..a9a03dc8 100644 --- a/docs/Classes/SingleSectionStorage.html +++ b/docs/Classes/SingleSectionStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -614,8 +611,8 @@

    Parameters

    diff --git a/docs/Classes/StorageUpdate.html b/docs/Classes/StorageUpdate.html index dc400e64..7925a5b4 100644 --- a/docs/Classes/StorageUpdate.html +++ b/docs/Classes/StorageUpdate.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -576,8 +573,8 @@

    Declaration

    diff --git a/docs/Classes/ViewModelMapping.html b/docs/Classes/ViewModelMapping.html index 33c9cb87..f7493c70 100644 --- a/docs/Classes/ViewModelMapping.html +++ b/docs/Classes/ViewModelMapping.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -1548,8 +1545,8 @@

    Return Value

    diff --git a/docs/Enums.html b/docs/Enums.html index e63767ea..58ccb6fc 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -447,8 +444,8 @@

    Declaration

    diff --git a/docs/Enums/ChangeType.html b/docs/Enums/ChangeType.html index 98c132d7..3c0d43ba 100644 --- a/docs/Enums/ChangeType.html +++ b/docs/Enums/ChangeType.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -354,8 +351,8 @@

    Declaration

    diff --git a/docs/Enums/MappingCondition.html b/docs/Enums/MappingCondition.html index d11e0381..4d8f0ea5 100644 --- a/docs/Enums/MappingCondition.html +++ b/docs/Enums/MappingCondition.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -327,8 +324,8 @@

    Declaration

    diff --git a/docs/Enums/MemoryStorageAnomaly.html b/docs/Enums/MemoryStorageAnomaly.html index a951d80a..2e4f88a5 100644 --- a/docs/Enums/MemoryStorageAnomaly.html +++ b/docs/Enums/MemoryStorageAnomaly.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -494,8 +491,8 @@

    Declaration

    diff --git a/docs/Enums/MemoryStorageError.html b/docs/Enums/MemoryStorageError.html index bc0f3a37..2f8f6530 100644 --- a/docs/Enums/MemoryStorageError.html +++ b/docs/Enums/MemoryStorageError.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -383,8 +380,8 @@

    Declaration

    diff --git a/docs/Enums/MemoryStorageError/InsertionReason.html b/docs/Enums/MemoryStorageError/InsertionReason.html index 7a153ca5..a71e780b 100644 --- a/docs/Enums/MemoryStorageError/InsertionReason.html +++ b/docs/Enums/MemoryStorageError/InsertionReason.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/Enums/MemoryStorageError/SearchReason.html b/docs/Enums/MemoryStorageError/SearchReason.html index 9fba71cd..7c2df777 100644 --- a/docs/Enums/MemoryStorageError/SearchReason.html +++ b/docs/Enums/MemoryStorageError/SearchReason.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/Enums/RuntimeHelper.html b/docs/Enums/RuntimeHelper.html index 62ae65df..d7459b52 100644 --- a/docs/Enums/RuntimeHelper.html +++ b/docs/Enums/RuntimeHelper.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -275,8 +272,8 @@

    Declaration

    diff --git a/docs/Enums/SingleSectionOperation.html b/docs/Enums/SingleSectionOperation.html index de0150d7..cc6b3418 100644 --- a/docs/Enums/SingleSectionOperation.html +++ b/docs/Enums/SingleSectionOperation.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -361,8 +358,8 @@

    Declaration

    diff --git a/docs/Enums/ViewType.html b/docs/Enums/ViewType.html index 13406c2c..a1a1e210 100644 --- a/docs/Enums/ViewType.html +++ b/docs/Enums/ViewType.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -363,8 +360,8 @@

    Return Value

    diff --git a/docs/Extensions.html b/docs/Extensions.html index 7178a083..884f8041 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -266,8 +263,8 @@

    Declaration

    diff --git a/docs/Extensions/UINib.html b/docs/Extensions/UINib.html index 72215cf6..4717cd42 100644 --- a/docs/Extensions/UINib.html +++ b/docs/Extensions/UINib.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/Global Variables.html b/docs/Global Variables.html index 237898ae..6dec259c 100644 --- a/docs/Global Variables.html +++ b/docs/Global Variables.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -293,8 +290,8 @@

    Declaration

    diff --git a/docs/Protocols.html b/docs/Protocols.html index b622c6a3..ef52ce90 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -618,8 +615,8 @@

    Declaration

    diff --git a/docs/Protocols/AccumulationStrategy.html b/docs/Protocols/AccumulationStrategy.html index e512d08f..86edfcce 100644 --- a/docs/Protocols/AccumulationStrategy.html +++ b/docs/Protocols/AccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -308,8 +305,8 @@

    Return Value

    diff --git a/docs/Protocols/AnomalyHandler.html b/docs/Protocols/AnomalyHandler.html index 84fd1fb4..2afc74f9 100644 --- a/docs/Protocols/AnomalyHandler.html +++ b/docs/Protocols/AnomalyHandler.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -405,8 +402,8 @@

    Declaration

    diff --git a/docs/Protocols/EntityIdentifiable.html b/docs/Protocols/EntityIdentifiable.html index 8dec41df..04683abc 100644 --- a/docs/Protocols/EntityIdentifiable.html +++ b/docs/Protocols/EntityIdentifiable.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/Protocols/EquatableDiffingAlgorithm.html b/docs/Protocols/EquatableDiffingAlgorithm.html index 8ea11c4f..f9506665 100644 --- a/docs/Protocols/EquatableDiffingAlgorithm.html +++ b/docs/Protocols/EquatableDiffingAlgorithm.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/Protocols/HashableDiffingAlgorithm.html b/docs/Protocols/HashableDiffingAlgorithm.html index 66be91ad..58c2aced 100644 --- a/docs/Protocols/HashableDiffingAlgorithm.html +++ b/docs/Protocols/HashableDiffingAlgorithm.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/Protocols/ModelTransfer.html b/docs/Protocols/ModelTransfer.html index 0d37f7bd..d55b0b2b 100644 --- a/docs/Protocols/ModelTransfer.html +++ b/docs/Protocols/ModelTransfer.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -338,8 +335,8 @@

    Declaration

    diff --git a/docs/Protocols/Section.html b/docs/Protocols/Section.html index d6e52134..ff805c11 100644 --- a/docs/Protocols/Section.html +++ b/docs/Protocols/Section.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -321,8 +318,8 @@

    Declaration

    diff --git a/docs/Protocols/SectionLocatable.html b/docs/Protocols/SectionLocatable.html index 833d2931..679a6fb5 100644 --- a/docs/Protocols/SectionLocatable.html +++ b/docs/Protocols/SectionLocatable.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -300,8 +297,8 @@

    Declaration

    diff --git a/docs/Protocols/SectionLocationIdentifyable.html b/docs/Protocols/SectionLocationIdentifyable.html index 395ce40e..33c51763 100644 --- a/docs/Protocols/SectionLocationIdentifyable.html +++ b/docs/Protocols/SectionLocationIdentifyable.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/Protocols/Storage.html b/docs/Protocols/Storage.html index c4e79620..99254a2a 100644 --- a/docs/Protocols/Storage.html +++ b/docs/Protocols/Storage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -327,8 +324,8 @@

    Declaration

    diff --git a/docs/Protocols/StorageUpdating.html b/docs/Protocols/StorageUpdating.html index bc417677..6ccd60d7 100644 --- a/docs/Protocols/StorageUpdating.html +++ b/docs/Protocols/StorageUpdating.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -302,8 +299,8 @@

    Declaration

    diff --git a/docs/Protocols/SupplementaryStorage.html b/docs/Protocols/SupplementaryStorage.html index 021a143d..132a4ca3 100644 --- a/docs/Protocols/SupplementaryStorage.html +++ b/docs/Protocols/SupplementaryStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -597,8 +594,8 @@

    Declaration

    diff --git a/docs/Protocols/ViewModelMappingProtocol.html b/docs/Protocols/ViewModelMappingProtocol.html index e4fab7c8..f1b8fa43 100644 --- a/docs/Protocols/ViewModelMappingProtocol.html +++ b/docs/Protocols/ViewModelMappingProtocol.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -705,8 +702,8 @@

    Declaration

    diff --git a/docs/Structs.html b/docs/Structs.html index f0b64f8d..b1b22b39 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -324,8 +321,8 @@

    Declaration

    diff --git a/docs/Structs/AdditiveAccumulationStrategy.html b/docs/Structs/AdditiveAccumulationStrategy.html index 0665dabd..730612ca 100644 --- a/docs/Structs/AdditiveAccumulationStrategy.html +++ b/docs/Structs/AdditiveAccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -336,8 +333,8 @@

    Return Value

    diff --git a/docs/Structs/DeleteOldValuesAccumulationStrategy.html b/docs/Structs/DeleteOldValuesAccumulationStrategy.html index 0ec88569..222b5206 100644 --- a/docs/Structs/DeleteOldValuesAccumulationStrategy.html +++ b/docs/Structs/DeleteOldValuesAccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -336,8 +333,8 @@

    Return Value

    diff --git a/docs/Structs/UpdateOldValuesAccumulationStrategy.html b/docs/Structs/UpdateOldValuesAccumulationStrategy.html index a716be6a..657af7ee 100644 --- a/docs/Structs/UpdateOldValuesAccumulationStrategy.html +++ b/docs/Structs/UpdateOldValuesAccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -336,8 +333,8 @@

    Return Value

    diff --git a/docs/css/jazzy.css b/docs/css/jazzy.css index ff59f5f8..7e2eac38 100644 --- a/docs/css/jazzy.css +++ b/docs/css/jazzy.css @@ -83,6 +83,11 @@ th, td { padding: 6px 13px; border: 1px solid #ddd; } +hr { + height: 1px; + border: none; + background-color: #ddd; } + pre { margin: 0 0 1.275em; padding: .85em 1em; diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes.html index 2895e52c..e1e61a0e 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -467,34 +464,6 @@

    Declaration

  • -
  • -
    - - - - ProxyDiffableDataSourceStorage - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class ProxyDiffableDataSourceStorage : BaseSupplementaryStorage, Storage
    - -
    -
    -
    -
    -
  • @@ -680,8 +649,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseSupplementaryStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseSupplementaryStorage.html index 1924b8b1..a3b23733 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseSupplementaryStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseSupplementaryStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -381,8 +378,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseUpdateDeliveringStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseUpdateDeliveringStorage.html index 6fb7027a..68d36f9f 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseUpdateDeliveringStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/BaseUpdateDeliveringStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -422,8 +419,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/CoreDataStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/CoreDataStorage.html index b699f45e..bdf482a4 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/CoreDataStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/CoreDataStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -585,8 +582,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/EventReaction.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/EventReaction.html index 8a6a9e1a..877b1b73 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/EventReaction.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/EventReaction.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -821,8 +818,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FiveArgumentsEventReaction.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FiveArgumentsEventReaction.html index 9fa09421..3362e205 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FiveArgumentsEventReaction.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FiveArgumentsEventReaction.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -410,8 +407,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FourArgumentsEventReaction.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FourArgumentsEventReaction.html index c22f41d0..86734888 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FourArgumentsEventReaction.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/FourArgumentsEventReaction.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -398,8 +395,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorage.html index 9fd285be..ae3ccec3 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -249,33 +246,6 @@

    MemoryStorage

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorageAnomalyHandler.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorageAnomalyHandler.html index e5f1eb04..66f9b753 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorageAnomalyHandler.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/MemoryStorageAnomalyHandler.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -327,8 +324,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SectionModel.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SectionModel.html index 04acb83f..1c1f5651 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SectionModel.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SectionModel.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -481,8 +478,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionEquatableStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionEquatableStorage.html index 081d7536..ed070786 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionEquatableStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionEquatableStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -381,8 +378,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionHashableStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionHashableStorage.html index 90ce505f..99c10f05 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionHashableStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionHashableStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -381,8 +378,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionStorage.html index f452fc09..a9a03dc8 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/SingleSectionStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -614,8 +611,8 @@

    Parameters

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/StorageUpdate.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/StorageUpdate.html index dc400e64..7925a5b4 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/StorageUpdate.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/StorageUpdate.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -576,8 +573,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/ViewModelMapping.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/ViewModelMapping.html index 33c9cb87..f7493c70 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/ViewModelMapping.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Classes/ViewModelMapping.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -1548,8 +1545,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums.html index e63767ea..58ccb6fc 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -447,8 +444,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ChangeType.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ChangeType.html index 98c132d7..3c0d43ba 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ChangeType.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ChangeType.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -354,8 +351,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MappingCondition.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MappingCondition.html index d11e0381..4d8f0ea5 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MappingCondition.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MappingCondition.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -327,8 +324,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageAnomaly.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageAnomaly.html index a951d80a..2e4f88a5 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageAnomaly.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageAnomaly.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -494,8 +491,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError.html index bc0f3a37..2f8f6530 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -383,8 +380,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/InsertionReason.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/InsertionReason.html index 7a153ca5..a71e780b 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/InsertionReason.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/InsertionReason.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/SearchReason.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/SearchReason.html index 9fba71cd..7c2df777 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/SearchReason.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/MemoryStorageError/SearchReason.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/RuntimeHelper.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/RuntimeHelper.html index 62ae65df..d7459b52 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/RuntimeHelper.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/RuntimeHelper.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -275,8 +272,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/SingleSectionOperation.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/SingleSectionOperation.html index de0150d7..cc6b3418 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/SingleSectionOperation.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/SingleSectionOperation.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -361,8 +358,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ViewType.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ViewType.html index 13406c2c..a1a1e210 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ViewType.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Enums/ViewType.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -363,8 +360,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions.html index 7178a083..884f8041 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -266,8 +263,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions/UINib.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions/UINib.html index 72215cf6..4717cd42 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions/UINib.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Extensions/UINib.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Global Variables.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Global Variables.html index 237898ae..6dec259c 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Global Variables.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Global Variables.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -293,8 +290,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols.html index b622c6a3..ef52ce90 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -618,8 +615,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AccumulationStrategy.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AccumulationStrategy.html index e512d08f..86edfcce 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AccumulationStrategy.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -308,8 +305,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AnomalyHandler.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AnomalyHandler.html index 84fd1fb4..2afc74f9 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AnomalyHandler.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/AnomalyHandler.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -405,8 +402,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EntityIdentifiable.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EntityIdentifiable.html index 8dec41df..04683abc 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EntityIdentifiable.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EntityIdentifiable.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EquatableDiffingAlgorithm.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EquatableDiffingAlgorithm.html index 8ea11c4f..f9506665 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EquatableDiffingAlgorithm.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/EquatableDiffingAlgorithm.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/HashableDiffingAlgorithm.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/HashableDiffingAlgorithm.html index 66be91ad..58c2aced 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/HashableDiffingAlgorithm.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/HashableDiffingAlgorithm.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ModelTransfer.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ModelTransfer.html index 0d37f7bd..d55b0b2b 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ModelTransfer.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ModelTransfer.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -338,8 +335,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Section.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Section.html index d6e52134..ff805c11 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Section.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Section.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -321,8 +318,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocatable.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocatable.html index 833d2931..679a6fb5 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocatable.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocatable.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -300,8 +297,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocationIdentifyable.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocationIdentifyable.html index 395ce40e..33c51763 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocationIdentifyable.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SectionLocationIdentifyable.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -273,8 +270,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Storage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Storage.html index c4e79620..99254a2a 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Storage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/Storage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -327,8 +324,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/StorageUpdating.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/StorageUpdating.html index bc417677..6ccd60d7 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/StorageUpdating.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/StorageUpdating.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -302,8 +299,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SupplementaryStorage.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SupplementaryStorage.html index 021a143d..132a4ca3 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SupplementaryStorage.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/SupplementaryStorage.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -597,8 +594,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ViewModelMappingProtocol.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ViewModelMappingProtocol.html index e4fab7c8..f1b8fa43 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ViewModelMappingProtocol.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Protocols/ViewModelMappingProtocol.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -705,8 +702,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs.html index f0b64f8d..b1b22b39 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -324,8 +321,8 @@

    Declaration

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/AdditiveAccumulationStrategy.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/AdditiveAccumulationStrategy.html index 0665dabd..730612ca 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/AdditiveAccumulationStrategy.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/AdditiveAccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -336,8 +333,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/DeleteOldValuesAccumulationStrategy.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/DeleteOldValuesAccumulationStrategy.html index 0ec88569..222b5206 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/DeleteOldValuesAccumulationStrategy.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/DeleteOldValuesAccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -336,8 +333,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/UpdateOldValuesAccumulationStrategy.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/UpdateOldValuesAccumulationStrategy.html index a716be6a..657af7ee 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/UpdateOldValuesAccumulationStrategy.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/Structs/UpdateOldValuesAccumulationStrategy.html @@ -21,7 +21,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -83,9 +83,6 @@ - @@ -336,8 +333,8 @@

    Return Value

    diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/css/jazzy.css index ff59f5f8..7e2eac38 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/css/jazzy.css +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/css/jazzy.css @@ -83,6 +83,11 @@ th, td { padding: 6px 13px; border: 1px solid #ddd; } +hr { + height: 1px; + border: none; + background-color: #ddd; } + pre { margin: 0 0 1.275em; padding: .85em 1em; diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/index.html b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/index.html index aec4ac29..55def8ef 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/index.html @@ -20,7 +20,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -82,9 +82,6 @@ - @@ -282,8 +279,8 @@

    ViewModelMapping and diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/js/jquery.min.js index b0614034..c4c6022f 100755 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/js/jquery.min.js +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/js/jquery.min.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); +!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/search.json b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/search.json index 86f2a1fb..fd4d69f4 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates strategy

    ","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by deleting old items, that have new values in newItems, from oldItems.","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates update old values accumulation strategy

    ","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by updating old items with new values, using old item positions in collection.","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates additive accumulation strategy

    ","parent_name":"AdditiveAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyV10accumulate8oldItems03newH0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by appending newItems to oldItems.

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

    Strategy, that adds new items to old items, without comparing their identifiers."},"Structs/UpdateOldValuesAccumulationStrategy.html":{"name":"UpdateOldValuesAccumulationStrategy","abstract":"

    Strategy to update old values with a new ones, using old items position.

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

    Strategy to delete old values when accumulating newItems

    "},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP7xibNameSSSgvp":{"name":"xibName","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP8viewTypeAA0cH0Ovp":{"name":"viewType","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP09modelTypeH13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectioniC0CSgSo0pC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE26configureForTableViewUsageyyF":{"name":"configureForTableViewUsage()","abstract":"

    Configures storage for using with UITableView

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE41configureForCollectionViewFlowLayoutUsageyyF":{"name":"configureForCollectionViewFlowLayoutUsage()","abstract":"

    Configures storage for using with UICollectionViewFlowLayout

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11headerModel10forSectionypSgSi_tF":{"name":"headerModel(forSection:)","abstract":"

    Returns header model from section with section index or nil, if it was not set.","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11footerModel10forSectionypSgSi_tF":{"name":"footerModel(forSection:)","abstract":"

    Returns footer model from section with section index or nil, if it was not set.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE18supplementaryModel6ofKind12forSectionAtypSgSS_10Foundation9IndexPathVtF":{"name":"supplementaryModel(ofKind:forSectionAt:)","abstract":"

    Returns supplementary model of kind for section at indexPath.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionHeaderModelsyySayqd__GlF":{"name":"setSectionHeaderModels(_:)","abstract":"

    Sets section header models, using supplementaryHeaderKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionFooterModelsyySayqd__GlF":{"name":"setSectionFooterModels(_:)","abstract":"

    Sets section footer models, using supplementaryFooterKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in section.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at concrete indexPath.

    ","parent_name":"Storage"},"Protocols/EquatableDiffingAlgorithm.html#/s:14DTModelStorage25EquatableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SQRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"EquatableDiffingAlgorithm"},"Protocols/HashableDiffingAlgorithm.html#/s:14DTModelStorage24HashableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SHRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"HashableDiffingAlgorithm"},"Protocols/EntityIdentifiable.html#/s:14DTModelStorage18EntityIdentifiableP10identifiers11AnyHashableVvp":{"name":"identifier","abstract":"

    Unique identifier of object. It must never change for this specific object.

    ","parent_name":"EntityIdentifiable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    Section index for current section

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocationIdentifyable.html#/s:14DTModelStorage27SectionLocationIdentifyableP12sectionIndex3forSiSgAA0C0_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns section index for section, or nil if section was not found.

    ","parent_name":"SectionLocationIdentifyable"},"Protocols/Section.html#/s:14DTModelStorage7SectionP4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns an item at index, if it exists in Section.

    ","parent_name":"Section"},"Protocols/Section.html#/s:14DTModelStorage7SectionP13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section.

    ","parent_name":"Section"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP0C4TypeQa":{"name":"ModelType","abstract":"

    Type of model that is being transferred

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP6update4withy0C4TypeQz_tF":{"name":"update(with:)","abstract":"

    Updates view with model.

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferPAAE14modelConditionyAA07MappingF0OSb10Foundation9IndexPathV_0C4TypeQztcFZ":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ModelTransfer"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP23storageDidPerformUpdateyyAA0bG0CF":{"name":"storageDidPerformUpdate(_:)","abstract":"

    Transfers data storage updates.

    ","parent_name":"StorageUpdating"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP21storageNeedsReloadingyyF":{"name":"storageNeedsReloading()","abstract":"

    Method is called when UI needs to be fully updated for data storage changes.

    ","parent_name":"StorageUpdating"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP0C0Qa":{"name":"Anomaly","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP13anomalyActionyy0C0Qzcvp":{"name":"anomalyAction","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP06reportC0yy0C0QzF":{"name":"reportAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP07silenceC0yy0C0QzF":{"name":"silenceAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerPAAE07silenceC014usingConditionySb0C0Qzc_tF":{"name":"silenceAnomaly(usingCondition:)","abstract":"

    Silences anomalies, based on provided condition. If this condition returns true, anomalyHandler will not be called for this anomaly.

    ","parent_name":"AnomalyHandler"},"Protocols/AccumulationStrategy.html#/s:14DTModelStorage20AccumulationStrategyP10accumulate8oldItems03newG0Sayqd__GAG_AGtAA18EntityIdentifiableRd__lF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array.

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

    Strategy to accumulate oldItems and newItems into resulting array.

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

    AnomalyHandler protocol serves as interface for various anomaly handlers.

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

    StorageUpdating protocol is used to transfer data storage updates.

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

    Protocol used to pass model data to your cell or supplementary view. Every cell or supplementary view you have should conform to this protocol.

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

    Section protocol defines an interface for sections returned by DTModelStorage object."},"Protocols/SectionLocationIdentifyable.html":{"name":"SectionLocationIdentifyable","abstract":"

    Identifies index of section in storage

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

    Allows access to supplementaries for specific section

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

    A type that can be identified by identifier.

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

    Algorithm that requires elements in collection to be Hashable

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

    Algorithm that requires elements in collection to be Equatable

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

    Storage protocol is used to define common interface for storage classes.

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

    SupplementaryStorage is used to handle header/footer and supplementary models in storage.

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

    Type-erased interface for ViewModelMapping generic class.

    "},"Extensions/UINib.html#/s:So5UINibC14DTModelStorageE9nibExists11withNibName8inBundleSbSS_So8NSBundleCtFZ":{"name":"nibExists(withNibName:inBundle:)","abstract":"

    Returns true, if nib file with nibName exists in bundle.

    ","parent_name":"UINib"},"Extensions/UINib.html":{"name":"UINib"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO7sectionyACSicACmF":{"name":"section(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO6customyACSb10Foundation9IndexPathV_yptccACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO4cellyA2CmF":{"name":"cell","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO013supplementaryC0yACSS_tcACmF":{"name":"supplementaryView(kind:)","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17supplementaryKindSSSgyF":{"name":"supplementaryKind()","abstract":"

    Returns supplementaryKind for .supplementaryView case, nil for .cell case.

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17mappingCandidates3for9withModel2atSayAA0cI15MappingProtocol_pGAI_yp10Foundation9IndexPathVtF":{"name":"mappingCandidates(for:withModel:at:)","abstract":"

    Returns mappings candidates of correct viewType, for which modelTypeCheckingBlock with model returns true.

    ","parent_name":"ViewType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6deleteyA2CmF":{"name":"delete","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO4moveyA2CmF":{"name":"move","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6insertyA2CmF":{"name":"insert","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6updateyA2CmF":{"name":"update","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6deleteyACSicACmF":{"name":"delete(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6insertyACSicACmF":{"name":"insert(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO4moveyACSi_SitcACmF":{"name":"move(from:to:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6updateyACSicACmF":{"name":"update(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/RuntimeHelper.html#/s:14DTModelStorage13RuntimeHelperO25recursivelyUnwrapAnyValueyypSgypFZ":{"name":"recursivelyUnwrapAnyValue(_:)","abstract":"

    Returns recursively unwrapped any optional.

    ","parent_name":"RuntimeHelper"},"Enums/MemoryStorageError/SearchReason.html#/s:14DTModelStorage06MemoryB5ErrorO12SearchReasonO12itemNotFoundyAEyp_tcAEmF":{"name":"itemNotFound(item:)","abstract":"

    Undocumented

    ","parent_name":"SearchReason"},"Enums/MemoryStorageError/InsertionReason.html#/s:14DTModelStorage06MemoryB5ErrorO15InsertionReasonO15indexPathTooBigyAE10Foundation05IndexH0VcAEmF":{"name":"indexPathTooBig(_:)","abstract":"

    Undocumented

    ","parent_name":"InsertionReason"},"Enums/MemoryStorageError/InsertionReason.html":{"name":"InsertionReason","abstract":"

    Errors that can happen when inserting items into memory storage - insertItem(_:to:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError/SearchReason.html":{"name":"SearchReason","abstract":"

    Errors that can happen when replacing item in memory storage - replaceItem(_:with:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO15insertionFailedyA2C15InsertionReasonO_tcACmF":{"name":"insertionFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO12searchFailedyA2C12SearchReasonO_tcACmF":{"name":"searchFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO20localizedDescriptionSSvp":{"name":"localizedDescription","abstract":"

    Description of error

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO24insertionIndexPathTooBigyAC10Foundation0fG0V_SitcACmF":{"name":"insertionIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    When inserting item to indexPath, there were only countOfElementsInSection items in section

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31batchInsertionItemCountMismatchyACSi_SitcACmF":{"name":"batchInsertionItemCountMismatch(itemsCount:indexPathsCount:)","abstract":"

    When inserting batch of items, number of items and number of indexPaths was different

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO017replaceItemFailedF8NotFoundyACSS_tcACmF":{"name":"replaceItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to replace item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO016removeItemFailedF8NotFoundyACSS_tcACmF":{"name":"removeItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to remove item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO014moveItemFailedF8NotFoundyAC10Foundation9IndexPathV_tcACmF":{"name":"moveItemFailedItemNotFound(indexPath:)","abstract":"

    Attempt to move item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO29moveItemFailedIndexPathTooBigyAC10Foundation0hI0V_SitcACmF":{"name":"moveItemFailedIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    Attempt to move item to too big indexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31moveItemFailedInvalidIndexPathsyAC10Foundation0I4PathV_AGS2itcACmF":{"name":"moveItemFailedInvalidIndexPaths(sourceIndexPath:destinationIndexPath:sourceElementsInSection:destinationElementsInSection:)","abstract":"

    Inconsistent indexPaths when moving item from sourceIndexPath to destinationIndexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Debug information for MemoryStorageAnomaly.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO11descriptionSSvp":{"name":"description","abstract":"

    Short description for MemoryStorageAnomaly. Useful for sending to analytics, which might have character limit.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html":{"name":"MemoryStorageAnomaly","abstract":"

    MemoryStorageAnomaly represents various errors and unwanted behaviors that can happen when using MemoryStorage class.

    "},"Enums/MemoryStorageError.html":{"name":"MemoryStorageError","abstract":"

    This struct contains error types that can be thrown for various MemoryStorage errors

    "},"Enums/RuntimeHelper.html":{"name":"RuntimeHelper","abstract":"

    This class is used to introspect Swift and Objective-C types, providing necessary mapping information.

    "},"Enums/SingleSectionOperation.html":{"name":"SingleSectionOperation","abstract":"

    Edit operation in single section.

    "},"Enums/ChangeType.html":{"name":"ChangeType","abstract":"

    Possible change types for objects and sections

    "},"Enums/ViewType.html":{"name":"ViewType","abstract":"

    ViewType enum allows differentiating between mappings for different kinds of views. For example, UICollectionView headers might use ViewType.supplementaryView(UICollectionElementKindSectionHeader) value.

    "},"Enums/MappingCondition.html":{"name":"MappingCondition","abstract":"

    Defines condition, under which mapping is going to be applied.

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionHeaderSSvp":{"name":"DTTableViewElementSectionHeader","abstract":"

    Suggested supplementary kind for UITableView header

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionFooterSSvp":{"name":"DTTableViewElementSectionFooter","abstract":"

    Suggested supplementary kind for UITableView footer

    "},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewTypeAA0cG0Ovp":{"name":"viewType","abstract":"

    View type for this mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    View class, that will be used for current mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC7xibNameSSSgvp":{"name":"xibName","abstract":"

    Xib name for mapping. This value will not be nil only if XIBs are used for this particular mapping.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Bundle in which resources for this mapping will be searched for. For example, DTTableViewManager uses this property to get bundle, from which xib file for UITableViewCell will be retrieved. Defaults to Bundle(for: T.self).","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Type checking block, that will verify whether passed model should be mapped to viewClass.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC09modelTypeG13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Closure, that can be used to check model type when model is not available(generic context for example, when model Type is available only).

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Type-erased update block, that will be called when ModelTransfer update(with:) method needs to be executed.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Mapping condition, under which this mapping is going to work. Defaults to .none.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Reuse identifier to be used for reusable views. Mappings for UICollectionViewCell and UICollectionReusableView on iOS 14 / tvOS 14 and higher ignore this parameter unless you are using storyboard prototyped cells or supplementary views.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    If cell is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    If supplementary view is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Event reactions, attached to current mapping instance

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC14modelConditionyAA0eG0OSb10Foundation9IndexPathV_q_tcF":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewType0F5Class7xibName12mappingBlockACyxq_GAA0cG0O_qd__mSSSgyAHcSgtcAA0D8TransferRd__lufc":{"name":"init(viewType:viewClass:xibName:mappingBlock:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzrlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzrlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration. This initializer is used, when UICollectionSupplementaryView conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration. This initializer is used when header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Update cell at indexPath with model. This can be used in scenarios where you want to update a cell, but animations are not required.","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from tableView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls headerFooterConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from collectionView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectionhC0CSgSo0oC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls supplementaryConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC13objectChangesSayAA10ChangeTypeO_Say10Foundation9IndexPathVGtGvp":{"name":"objectChanges","abstract":"

    Object changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14sectionChangesSayAA10ChangeTypeO_SaySiGtGvp":{"name":"sectionChanges","abstract":"

    Section changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14updatedObjectsSDy10Foundation9IndexPathVypGvp":{"name":"updatedObjects","abstract":"

    Objects that were updated, with initial index paths","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC33containsDeferredDatasourceUpdatesSbvp":{"name":"containsDeferredDatasourceUpdates","abstract":"

    If update contains deferred datasource updates, they need to be applied before applying any animations.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC25enqueuedDatasourceUpdatesSayyACKcGvp":{"name":"enqueuedDatasourceUpdates","abstract":"

    Enqueued datasource updates for later execution. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateCACycfc":{"name":"init()","abstract":"

    Create an empty update.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Returns true, if update is empty.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC30applyDeferredDatasourceUpdatesyyF":{"name":"applyDeferredDatasourceUpdates()","abstract":"

    Call this method to apply all deferred datasource updates.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC017enqueueDatasourceC0yyyACKcF":{"name":"enqueueDatasourceUpdate(_:)","abstract":"

    Enqueues datasource update for later execution into enqueuedDatasourceUpdates property. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

    Compare StorageUpdates

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC11descriptionSSvp":{"name":"description","abstract":"

    Description of object changes

    ","parent_name":"StorageUpdate"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in a storage

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C13numberOfItems02inD0S2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsSayxGvp":{"name":"items","abstract":"

    Array of items, that section contains.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsACyxGSayxG_tcfc":{"name":"init(items:)","abstract":"

    Creates storage with array of items. Do not call this method directly. Instead use concrete subclasses of SingleSectionStorage, such as SingleSectionEquatableStorage.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve item at given indexPath.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Abstract method to calculate diffs. Do not use this method directly. Instead, use subclassed method, for example SingleSectionEquatableStorage.calculateDiffs(to:).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8setItemsyySayxGF":{"name":"setItems(_:)","abstract":"

    Replaces items with newItems, collecting changes along the way. Changes are calculated using calculateDiffs(to:) method and delivered to StorageUpdating delegate, which can animate changes in resulting UI(for example UITableView or UICollectionView).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8addItemsyySayxG_AA20AccumulationStrategy_ptF":{"name":"addItems(_:_:)","abstract":"

    Adds newItems on top of items, using specified accumulation strategy.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Hashable.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of HashableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Equatable.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of EquatableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns item at index, if it exists, nil otherwise.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsSayypGvp":{"name":"items","abstract":"

    Items for current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    section index of current section in MemoryStorage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsACSayypG_tcfc":{"name":"init(items:)","abstract":"

    Creates section model.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC8setItemsyySayxGlF":{"name":"setItems(_:)","abstract":"

    Undocumented

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5items6ofTypeSayxGxm_tlF":{"name":"items(ofType:)","abstract":"

    Returns items of type in current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section

    ","parent_name":"SectionModel"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in section.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at concrete indexPath.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C9tableView04dataF013modelProviderACSo07UITableH0C_5UIKit0lhdeF0Cyxq_Gyp10Foundation9IndexPathV_q_tctcSHRzSHR_r0_lufc":{"name":"init(tableView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C9tableView04dataF013modelProviderACSo07UITableH0C_So0lhdeF0Cyp10Foundation9IndexPathV_yptctcfc":{"name":"init(tableView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C14collectionView04dataF013modelProviderACSo012UICollectionH0C_5UIKit0lhdeF0Cyxq_Gyp10Foundation9IndexPathV_q_tctcSHRzSHR_r0_lufc":{"name":"init(collectionView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C14collectionView04dataF013modelProviderACSo012UICollectionH0C_So0lhdeF0Cyp10Foundation9IndexPathV_yptctcfc":{"name":"init(collectionView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13defaultActionyyAA0cbD0OcvpZ":{"name":"defaultAction","abstract":"

    Default action to perform when anomaly is detected. Prints debugDescription of anomaly by default.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13anomalyActionyyAA0cbD0Ocvp":{"name":"anomalyAction","abstract":"

    Action to perform when anomaly is detected. Defaults to defaultAction.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerCACycfc":{"name":"init()","abstract":"

    Creates MemoryStorageAnomalyHandler.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C23defersDatasourceUpdatesSbvp":{"name":"defersDatasourceUpdates","abstract":"

    Undocumented

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14anomalyHandlerAA0cb7AnomalyE0Cvp":{"name":"anomalyHandler","abstract":"

    Anomaly handler, that handles reported by MemoryStorage anomalies.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8sectionsSayAA7Section_pGvp":{"name":"sections","abstract":"

    sections of MemoryStorage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C12sectionIndex3forSiSgAA7Section_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns index of section or nil, if section is now found

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C18totalNumberOfItemsSivp":{"name":"totalNumberOfItems","abstract":"

    Returns total number of items contained in all MemoryStorage sections

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at indexPath or nil, if it is not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8setItems_10forSectionySayxG_SitlF":{"name":"setItems(_:forSection:)","abstract":"

    Sets items for section at index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C22setItemsForAllSectionsyySaySayxGGlF":{"name":"setItemsForAllSections(_:)","abstract":"

    Sets items for sections in memory storage. This method creates all required sections, if necessary.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10setSection_03forE0yAA0E5ModelC_SitF":{"name":"setSection(_:forSection:)","abstract":"

    Sets section for index. This will reload UI after updating

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13insertSection_7atIndexyAA0E5ModelC_SitF":{"name":"insertSection(_:atIndex:)","abstract":"

    Inserts section at sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8addItems_9toSectionySayxG_SitlF":{"name":"addItems(_:toSection:)","abstract":"

    Adds items to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7addItem_9toSectionyx_SitlF":{"name":"addItem(_:toSection:)","abstract":"

    Adds item to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10insertItem_2toyx_10Foundation9IndexPathVtKlF":{"name":"insertItem(_:to:)","abstract":"

    Inserts item to indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2atySayxG_10Foundation9IndexPathVtKlF":{"name":"insertItems(_:at:)","abstract":"

    Inserts contents of items at indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2toySayxG_Say10Foundation9IndexPathVGtlF":{"name":"insertItems(_:to:)","abstract":"

    Inserts items to indexPaths

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10reloadItemyyxSQRzlF":{"name":"reloadItem(_:)","abstract":"

    Reloads item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11replaceItem_4withyx_yptKSQRzlF":{"name":"replaceItem(_:with:)","abstract":"

    Replace item itemToReplace with replacingItem.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10removeItemyyxKSQRzlF":{"name":"removeItem(_:)","abstract":"

    Removes item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItemsyySayxGSQRzlF":{"name":"removeItems(_:)","abstract":"

    Removes items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems2atySay10Foundation9IndexPathVG_tF":{"name":"removeItems(at:)","abstract":"

    Removes items at indexPaths.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14deleteSectionsyy10Foundation8IndexSetVF":{"name":"deleteSections(_:)","abstract":"

    Deletes indexes from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11moveSection_02toE0ySi_SitF":{"name":"moveSection(_:toSection:)","abstract":"

    Moves section from sourceSectionIndex to destinationSectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8moveItem2at2toy10Foundation9IndexPathV_AItF":{"name":"moveItem(at:to:)","abstract":"

    Moves item from source indexPath to destination indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C24moveItemWithoutAnimation4from2toy10Foundation9IndexPathV_AItF":{"name":"moveItemWithoutAnimation(from:to:)","abstract":"

    Moves item from sourceIndexPath to destinationIndexPath without animations.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14removeAllItemsyyF":{"name":"removeAllItems()","abstract":"

    Removes all items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems11fromSectionySi_tF":{"name":"removeItems(fromSection:)","abstract":"

    Remove items from section with sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C5items9inSectionSayypGSgSi_tF":{"name":"items(inSection:)","abstract":"

    Returns items in section with section index, or nil if section does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C9indexPath7forItem10Foundation05IndexE0VSgx_tSQRzlF":{"name":"indexPath(forItem:)","abstract":"

    Returns indexPath of searchableItem in MemoryStorage or nil, if it’s not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7section7atIndexAA12SectionModelCSgSi_tF":{"name":"section(atIndex:)","abstract":"

    Returns section at sectionIndex or nil, if it does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C23updateWithoutAnimationsyyyyXEF":{"name":"updateWithoutAnimations(_:)","abstract":"

    Runs block of actions without notifying self.delegate.

    ","parent_name":"MemoryStorage"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC09reaction5D0ypyp_ypypypyptcSgvp":{"name":"reaction5Arguments","abstract":"

    Type-erased reaction with 5 arguments

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC_9modelType11argumentOne0I3Two9signature_ACxm_q_mq0_mq1_mSSq2_q0__q1_xq_10Foundation9IndexPathVtctcr3_lufc":{"name":"init(_:modelType:argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates five argument event reaction for View/Cell model mapped events.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC011performWithD0yypyp_ypypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC09reaction4D0ypyp_ypypyptcSgvp":{"name":"reaction4Arguments","abstract":"

    Type-erased reaction with 4 arguments

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC_9modelType8argument9signature_ACxm_q_mq0_mSSq1_q0__xq_10Foundation9IndexPathVtctcr2_lufc":{"name":"init(_:modelType:argument:signature:_:)","abstract":"

    Creates four argument event reaction for View/Cell mapped reactions.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC011performWithD0yypyp_ypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reactionypyp_ypyptcSgvp":{"name":"reaction","abstract":"

    3 arguments reaction block with all arguments type-erased.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC15methodSignatureSSvp":{"name":"methodSignature","abstract":"

    Objective-C method signature

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8viewType05modelF09signature_ACxm_q_mSSq0_x_q_10Foundation9IndexPathVtctcr1_lufc":{"name":"init(viewType:modelType:signature:_:)","abstract":"

    Creates reaction with signature.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9modelType9signature_ACxm_SSq_x_10Foundation9IndexPathVtctcr0_lufc":{"name":"init(modelType:signature:_:)","abstract":"

    Creates reaction with signature, viewType and modelType.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9signature_ACSS_xyctclufc":{"name":"init(signature:_:)","abstract":"

    Creates no argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8argument9signature_ACxm_SSq_xctcr0_lufc":{"name":"init(argument:signature:_:)","abstract":"

    Creates a single argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC11argumentOne0E3Two9signature_ACxm_q_mSSq0_x_q_tctcr1_lufc":{"name":"init(argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC20performWithArgumentsyypyp_ypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC08unmappedD04from9signatureACSgSayACG_SStFZ":{"name":"unmappedReaction(from:signature:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_ypSgSayACG_SStFZ":{"name":"performUnmappedReaction(from:_:)","abstract":"

    Perform zero argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_8argumentypSgSayACG_SSxtlFZ":{"name":"performUnmappedReaction(from:_:argument:)","abstract":"

    Perform single argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_11argumentOne0H3TwoypSgSayACG_SSxq_tr0_lFZ":{"name":"performUnmappedReaction(from:_:argumentOne:argumentTwo:)","abstract":"

    Perform two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reaction4from9signature8forModel2at4view17supplementaryKindACSgSayAA04ViewI15MappingProtocol_pG_SSyp10Foundation9IndexPathVSo6UIViewCSgSSSgtFZ":{"name":"reaction(from:signature:forModel:at:view:supplementaryKind:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC07performD04from9signature4view5model8location17supplementaryKindypSayAA24ViewModelMappingProtocol_pG_SSypSgyp10Foundation9IndexPathVSSSgtFZ":{"name":"performReaction(from:signature:view:model:location:supplementaryKind:)","abstract":"

    Performs reaction of type, signature, with view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform4ArgumentsD04from9signature8argument4view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform4ArgumentsReaction(from:signature:argument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with argument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform5ArgumentsD04from9signature13firstArgument06secondJ04view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform5ArgumentsReaction(from:signature:firstArgument:secondArgument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with firstArgument, secondArgument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerSo09NSFetchedfG0CyxGvp":{"name":"fetchedResultsController","abstract":"

    Fetched results controller of storage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerACyxGSo09NSFetchedfG0CyxG_tcfc":{"name":"init(fetchedResultsController:)","abstract":"

    Initialize CoreDataStorage with NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve object at index path from CoreDataStorage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C27controllerWillChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerWillChangeContent(_:)","abstract":"

    NSFetchedResultsController is about to start changing content - we’ll start monitoring for updates.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange2at3for12newIndexPathySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_yp10Foundation0kL0VSgSo0mnG4TypeVAPtF":{"name":"controller(_:didChange:at:for:newIndexPath:)","abstract":"

    React to specific change in NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange14atSectionIndex3forySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_So0lmI4Info_pSiSo0lmG4TypeVtF":{"name":"controller(_:didChange:atSectionIndex:for:)","abstract":"

    Undocumented

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C26controllerDidChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerDidChangeContent(_:)","abstract":"

    Finish update from NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C07currentD0AA0bD0CSgvp":{"name":"currentUpdate","abstract":"

    Current update

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C22batchUpdatesInProgressSbvp":{"name":"batchUpdatesInProgress","abstract":"

    Batch updates are in progress. If true, update will not be finished.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C8delegateAA0B8Updating_pSgvp":{"name":"delegate","abstract":"

    Delegate for storage updates

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C14performUpdatesyyyyXEF":{"name":"performUpdates(_:)","abstract":"

    Performs update block in storage. After update is finished, delegate will be notified.","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C05startD0yyF":{"name":"startUpdate()","abstract":"

    Starts update in storage.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C06finishD0yyF":{"name":"finishUpdate()","abstract":"

    Finishes update.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil. Setter for this property is overridden to allow calling headerModelProvider and footerModelProvider closures.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

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

    BaseSupplementaryStorage is a base class, that implements common functionality for SupplementaryStorage protocol and serves as a base class for MemoryStorage, CoreDataStorage, SingleSectionStorage, RealmStorage.

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

    Base class for storage classes

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

    This class represents model storage in CoreData"},"Classes/EventReaction.html":{"name":"EventReaction","abstract":"

    Data holder for reaction

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

    Subclass of EventReaction, tuned to work with 4 arguments.

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

    Subclass of EventReaction, tuned to work with 5 arguments.

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

    Storage of models in memory.

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

    MemoryStorageAnomalyHandler handles anomalies from MemoryStorage.

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

    Undocumented

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

    Data holder for single section in MemoryStorage.

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

    SingleSectionStorage that requires all it’s elements to be Equatable.

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

    SingleSectionStorage that requires all it’s elements to be Hashable.

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

    Abstract base class that represents a single section of items. Supports supplementary items to allow representing supplementary views in section.

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

    Object representing update in storage.

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

    ViewModelMapping class serves to store mappings, and capture model and cell types.

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

    The following classes are available globally.

    "},"Global%20Variables.html":{"name":"Global Variables","abstract":"

    The following global variables are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates strategy

    ","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by deleting old items, that have new values in newItems, from oldItems.","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates update old values accumulation strategy

    ","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by updating old items with new values, using old item positions in collection.","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates additive accumulation strategy

    ","parent_name":"AdditiveAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyV10accumulate8oldItems03newH0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by appending newItems to oldItems.

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

    Strategy, that adds new items to old items, without comparing their identifiers."},"Structs/UpdateOldValuesAccumulationStrategy.html":{"name":"UpdateOldValuesAccumulationStrategy","abstract":"

    Strategy to update old values with a new ones, using old items position.

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

    Strategy to delete old values when accumulating newItems

    "},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP7xibNameSSSgvp":{"name":"xibName","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP8viewTypeAA0cH0Ovp":{"name":"viewType","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP09modelTypeH13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectioniC0CSgSo0pC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE26configureForTableViewUsageyyF":{"name":"configureForTableViewUsage()","abstract":"

    Configures storage for using with UITableView

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE41configureForCollectionViewFlowLayoutUsageyyF":{"name":"configureForCollectionViewFlowLayoutUsage()","abstract":"

    Configures storage for using with UICollectionViewFlowLayout

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11headerModel10forSectionypSgSi_tF":{"name":"headerModel(forSection:)","abstract":"

    Returns header model from section with section index or nil, if it was not set.","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11footerModel10forSectionypSgSi_tF":{"name":"footerModel(forSection:)","abstract":"

    Returns footer model from section with section index or nil, if it was not set.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE18supplementaryModel6ofKind12forSectionAtypSgSS_10Foundation9IndexPathVtF":{"name":"supplementaryModel(ofKind:forSectionAt:)","abstract":"

    Returns supplementary model of kind for section at indexPath.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionHeaderModelsyySayqd__GlF":{"name":"setSectionHeaderModels(_:)","abstract":"

    Sets section header models, using supplementaryHeaderKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionFooterModelsyySayqd__GlF":{"name":"setSectionFooterModels(_:)","abstract":"

    Sets section footer models, using supplementaryFooterKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in section.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at concrete indexPath.

    ","parent_name":"Storage"},"Protocols/EquatableDiffingAlgorithm.html#/s:14DTModelStorage25EquatableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SQRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"EquatableDiffingAlgorithm"},"Protocols/HashableDiffingAlgorithm.html#/s:14DTModelStorage24HashableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SHRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"HashableDiffingAlgorithm"},"Protocols/EntityIdentifiable.html#/s:14DTModelStorage18EntityIdentifiableP10identifiers11AnyHashableVvp":{"name":"identifier","abstract":"

    Unique identifier of object. It must never change for this specific object.

    ","parent_name":"EntityIdentifiable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    Section index for current section

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocationIdentifyable.html#/s:14DTModelStorage27SectionLocationIdentifyableP12sectionIndex3forSiSgAA0C0_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns section index for section, or nil if section was not found.

    ","parent_name":"SectionLocationIdentifyable"},"Protocols/Section.html#/s:14DTModelStorage7SectionP4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns an item at index, if it exists in Section.

    ","parent_name":"Section"},"Protocols/Section.html#/s:14DTModelStorage7SectionP13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section.

    ","parent_name":"Section"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP0C4TypeQa":{"name":"ModelType","abstract":"

    Type of model that is being transferred

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP6update4withy0C4TypeQz_tF":{"name":"update(with:)","abstract":"

    Updates view with model.

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferPAAE14modelConditionyAA07MappingF0OSb10Foundation9IndexPathV_0C4TypeQztcFZ":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ModelTransfer"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP23storageDidPerformUpdateyyAA0bG0CF":{"name":"storageDidPerformUpdate(_:)","abstract":"

    Transfers data storage updates.

    ","parent_name":"StorageUpdating"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP21storageNeedsReloadingyyF":{"name":"storageNeedsReloading()","abstract":"

    Method is called when UI needs to be fully updated for data storage changes.

    ","parent_name":"StorageUpdating"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP0C0Qa":{"name":"Anomaly","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP13anomalyActionyy0C0Qzcvp":{"name":"anomalyAction","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP06reportC0yy0C0QzF":{"name":"reportAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP07silenceC0yy0C0QzF":{"name":"silenceAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerPAAE07silenceC014usingConditionySb0C0Qzc_tF":{"name":"silenceAnomaly(usingCondition:)","abstract":"

    Silences anomalies, based on provided condition. If this condition returns true, anomalyHandler will not be called for this anomaly.

    ","parent_name":"AnomalyHandler"},"Protocols/AccumulationStrategy.html#/s:14DTModelStorage20AccumulationStrategyP10accumulate8oldItems03newG0Sayqd__GAG_AGtAA18EntityIdentifiableRd__lF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array.

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

    Strategy to accumulate oldItems and newItems into resulting array.

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

    AnomalyHandler protocol serves as interface for various anomaly handlers.

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

    StorageUpdating protocol is used to transfer data storage updates.

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

    Protocol used to pass model data to your cell or supplementary view. Every cell or supplementary view you have should conform to this protocol.

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

    Section protocol defines an interface for sections returned by DTModelStorage object."},"Protocols/SectionLocationIdentifyable.html":{"name":"SectionLocationIdentifyable","abstract":"

    Identifies index of section in storage

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

    Allows access to supplementaries for specific section

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

    A type that can be identified by identifier.

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

    Algorithm that requires elements in collection to be Hashable

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

    Algorithm that requires elements in collection to be Equatable

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

    Storage protocol is used to define common interface for storage classes.

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

    SupplementaryStorage is used to handle header/footer and supplementary models in storage.

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

    Type-erased interface for ViewModelMapping generic class.

    "},"Extensions/UINib.html#/s:So5UINibC14DTModelStorageE9nibExists11withNibName8inBundleSbSS_So8NSBundleCtFZ":{"name":"nibExists(withNibName:inBundle:)","abstract":"

    Returns true, if nib file with nibName exists in bundle.

    ","parent_name":"UINib"},"Extensions/UINib.html":{"name":"UINib"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO7sectionyACSicACmF":{"name":"section(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO6customyACSb10Foundation9IndexPathV_yptccACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO4cellyA2CmF":{"name":"cell","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO013supplementaryC0yACSS_tcACmF":{"name":"supplementaryView(kind:)","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17supplementaryKindSSSgyF":{"name":"supplementaryKind()","abstract":"

    Returns supplementaryKind for .supplementaryView case, nil for .cell case.

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17mappingCandidates3for9withModel2atSayAA0cI15MappingProtocol_pGAI_yp10Foundation9IndexPathVtF":{"name":"mappingCandidates(for:withModel:at:)","abstract":"

    Returns mappings candidates of correct viewType, for which modelTypeCheckingBlock with model returns true.

    ","parent_name":"ViewType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6deleteyA2CmF":{"name":"delete","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO4moveyA2CmF":{"name":"move","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6insertyA2CmF":{"name":"insert","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6updateyA2CmF":{"name":"update","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6deleteyACSicACmF":{"name":"delete(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6insertyACSicACmF":{"name":"insert(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO4moveyACSi_SitcACmF":{"name":"move(from:to:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6updateyACSicACmF":{"name":"update(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/RuntimeHelper.html#/s:14DTModelStorage13RuntimeHelperO25recursivelyUnwrapAnyValueyypSgypFZ":{"name":"recursivelyUnwrapAnyValue(_:)","abstract":"

    Returns recursively unwrapped any optional.

    ","parent_name":"RuntimeHelper"},"Enums/MemoryStorageError/SearchReason.html#/s:14DTModelStorage06MemoryB5ErrorO12SearchReasonO12itemNotFoundyAEyp_tcAEmF":{"name":"itemNotFound(item:)","abstract":"

    Undocumented

    ","parent_name":"SearchReason"},"Enums/MemoryStorageError/InsertionReason.html#/s:14DTModelStorage06MemoryB5ErrorO15InsertionReasonO15indexPathTooBigyAE10Foundation05IndexH0VcAEmF":{"name":"indexPathTooBig(_:)","abstract":"

    Undocumented

    ","parent_name":"InsertionReason"},"Enums/MemoryStorageError/InsertionReason.html":{"name":"InsertionReason","abstract":"

    Errors that can happen when inserting items into memory storage - insertItem(_:to:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError/SearchReason.html":{"name":"SearchReason","abstract":"

    Errors that can happen when replacing item in memory storage - replaceItem(_:with:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO15insertionFailedyA2C15InsertionReasonO_tcACmF":{"name":"insertionFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO12searchFailedyA2C12SearchReasonO_tcACmF":{"name":"searchFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO20localizedDescriptionSSvp":{"name":"localizedDescription","abstract":"

    Description of error

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO24insertionIndexPathTooBigyAC10Foundation0fG0V_SitcACmF":{"name":"insertionIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    When inserting item to indexPath, there were only countOfElementsInSection items in section

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31batchInsertionItemCountMismatchyACSi_SitcACmF":{"name":"batchInsertionItemCountMismatch(itemsCount:indexPathsCount:)","abstract":"

    When inserting batch of items, number of items and number of indexPaths was different

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO017replaceItemFailedF8NotFoundyACSS_tcACmF":{"name":"replaceItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to replace item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO016removeItemFailedF8NotFoundyACSS_tcACmF":{"name":"removeItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to remove item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO014moveItemFailedF8NotFoundyAC10Foundation9IndexPathV_tcACmF":{"name":"moveItemFailedItemNotFound(indexPath:)","abstract":"

    Attempt to move item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO29moveItemFailedIndexPathTooBigyAC10Foundation0hI0V_SitcACmF":{"name":"moveItemFailedIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    Attempt to move item to too big indexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31moveItemFailedInvalidIndexPathsyAC10Foundation0I4PathV_AGS2itcACmF":{"name":"moveItemFailedInvalidIndexPaths(sourceIndexPath:destinationIndexPath:sourceElementsInSection:destinationElementsInSection:)","abstract":"

    Inconsistent indexPaths when moving item from sourceIndexPath to destinationIndexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Debug information for MemoryStorageAnomaly.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO11descriptionSSvp":{"name":"description","abstract":"

    Short description for MemoryStorageAnomaly. Useful for sending to analytics, which might have character limit.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html":{"name":"MemoryStorageAnomaly","abstract":"

    MemoryStorageAnomaly represents various errors and unwanted behaviors that can happen when using MemoryStorage class.

    "},"Enums/MemoryStorageError.html":{"name":"MemoryStorageError","abstract":"

    This struct contains error types that can be thrown for various MemoryStorage errors

    "},"Enums/RuntimeHelper.html":{"name":"RuntimeHelper","abstract":"

    This class is used to introspect Swift and Objective-C types, providing necessary mapping information.

    "},"Enums/SingleSectionOperation.html":{"name":"SingleSectionOperation","abstract":"

    Edit operation in single section.

    "},"Enums/ChangeType.html":{"name":"ChangeType","abstract":"

    Possible change types for objects and sections

    "},"Enums/ViewType.html":{"name":"ViewType","abstract":"

    ViewType enum allows differentiating between mappings for different kinds of views. For example, UICollectionView headers might use ViewType.supplementaryView(UICollectionElementKindSectionHeader) value.

    "},"Enums/MappingCondition.html":{"name":"MappingCondition","abstract":"

    Defines condition, under which mapping is going to be applied.

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionHeaderSSvp":{"name":"DTTableViewElementSectionHeader","abstract":"

    Suggested supplementary kind for UITableView header

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionFooterSSvp":{"name":"DTTableViewElementSectionFooter","abstract":"

    Suggested supplementary kind for UITableView footer

    "},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewTypeAA0cG0Ovp":{"name":"viewType","abstract":"

    View type for this mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    View class, that will be used for current mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC7xibNameSSSgvp":{"name":"xibName","abstract":"

    Xib name for mapping. This value will not be nil only if XIBs are used for this particular mapping.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Bundle in which resources for this mapping will be searched for. For example, DTTableViewManager uses this property to get bundle, from which xib file for UITableViewCell will be retrieved. Defaults to Bundle(for: T.self).","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Type checking block, that will verify whether passed model should be mapped to viewClass.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC09modelTypeG13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Closure, that can be used to check model type when model is not available(generic context for example, when model Type is available only).

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Type-erased update block, that will be called when ModelTransfer update(with:) method needs to be executed.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Mapping condition, under which this mapping is going to work. Defaults to .none.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Reuse identifier to be used for reusable views. Mappings for UICollectionViewCell and UICollectionReusableView on iOS 14 / tvOS 14 and higher ignore this parameter unless you are using storyboard prototyped cells or supplementary views.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    If cell is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    If supplementary view is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Event reactions, attached to current mapping instance

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC14modelConditionyAA0eG0OSb10Foundation9IndexPathV_q_tcF":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewType0F5Class7xibName12mappingBlockACyxq_GAA0cG0O_qd__mSSSgyAHcSgtcAA0D8TransferRd__lufc":{"name":"init(viewType:viewClass:xibName:mappingBlock:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzrlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzrlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration. This initializer is used, when UICollectionSupplementaryView conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration. This initializer is used when header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Update cell at indexPath with model. This can be used in scenarios where you want to update a cell, but animations are not required.","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from tableView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls headerFooterConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from collectionView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectionhC0CSgSo0oC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls supplementaryConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC13objectChangesSayAA10ChangeTypeO_Say10Foundation9IndexPathVGtGvp":{"name":"objectChanges","abstract":"

    Object changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14sectionChangesSayAA10ChangeTypeO_SaySiGtGvp":{"name":"sectionChanges","abstract":"

    Section changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14updatedObjectsSDy10Foundation9IndexPathVypGvp":{"name":"updatedObjects","abstract":"

    Objects that were updated, with initial index paths","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC33containsDeferredDatasourceUpdatesSbvp":{"name":"containsDeferredDatasourceUpdates","abstract":"

    If update contains deferred datasource updates, they need to be applied before applying any animations.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC25enqueuedDatasourceUpdatesSayyACKcGvp":{"name":"enqueuedDatasourceUpdates","abstract":"

    Enqueued datasource updates for later execution. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateCACycfc":{"name":"init()","abstract":"

    Create an empty update.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Returns true, if update is empty.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC30applyDeferredDatasourceUpdatesyyF":{"name":"applyDeferredDatasourceUpdates()","abstract":"

    Call this method to apply all deferred datasource updates.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC017enqueueDatasourceC0yyyACKcF":{"name":"enqueueDatasourceUpdate(_:)","abstract":"

    Enqueues datasource update for later execution into enqueuedDatasourceUpdates property. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

    Compare StorageUpdates

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC11descriptionSSvp":{"name":"description","abstract":"

    Description of object changes

    ","parent_name":"StorageUpdate"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in a storage

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C13numberOfItems02inD0S2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsSayxGvp":{"name":"items","abstract":"

    Array of items, that section contains.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsACyxGSayxG_tcfc":{"name":"init(items:)","abstract":"

    Creates storage with array of items. Do not call this method directly. Instead use concrete subclasses of SingleSectionStorage, such as SingleSectionEquatableStorage.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve item at given indexPath.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Abstract method to calculate diffs. Do not use this method directly. Instead, use subclassed method, for example SingleSectionEquatableStorage.calculateDiffs(to:).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8setItemsyySayxGF":{"name":"setItems(_:)","abstract":"

    Replaces items with newItems, collecting changes along the way. Changes are calculated using calculateDiffs(to:) method and delivered to StorageUpdating delegate, which can animate changes in resulting UI(for example UITableView or UICollectionView).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8addItemsyySayxG_AA20AccumulationStrategy_ptF":{"name":"addItems(_:_:)","abstract":"

    Adds newItems on top of items, using specified accumulation strategy.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Hashable.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of HashableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Equatable.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of EquatableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns item at index, if it exists, nil otherwise.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsSayypGvp":{"name":"items","abstract":"

    Items for current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    section index of current section in MemoryStorage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsACSayypG_tcfc":{"name":"init(items:)","abstract":"

    Creates section model.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC8setItemsyySayxGlF":{"name":"setItems(_:)","abstract":"

    Undocumented

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5items6ofTypeSayxGxm_tlF":{"name":"items(ofType:)","abstract":"

    Returns items of type in current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section

    ","parent_name":"SectionModel"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13defaultActionyyAA0cbD0OcvpZ":{"name":"defaultAction","abstract":"

    Default action to perform when anomaly is detected. Prints debugDescription of anomaly by default.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13anomalyActionyyAA0cbD0Ocvp":{"name":"anomalyAction","abstract":"

    Action to perform when anomaly is detected. Defaults to defaultAction.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerCACycfc":{"name":"init()","abstract":"

    Creates MemoryStorageAnomalyHandler.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14anomalyHandlerAA0cb7AnomalyE0Cvp":{"name":"anomalyHandler","abstract":"

    Anomaly handler, that handles reported by MemoryStorage anomalies.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8sectionsSayAA7Section_pGvp":{"name":"sections","abstract":"

    sections of MemoryStorage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C12sectionIndex3forSiSgAA7Section_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns index of section or nil, if section is now found

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C18totalNumberOfItemsSivp":{"name":"totalNumberOfItems","abstract":"

    Returns total number of items contained in all MemoryStorage sections

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at indexPath or nil, if it is not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8setItems_10forSectionySayxG_SitlF":{"name":"setItems(_:forSection:)","abstract":"

    Sets items for section at index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C22setItemsForAllSectionsyySaySayxGGlF":{"name":"setItemsForAllSections(_:)","abstract":"

    Sets items for sections in memory storage. This method creates all required sections, if necessary.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10setSection_03forE0yAA0E5ModelC_SitF":{"name":"setSection(_:forSection:)","abstract":"

    Sets section for index. This will reload UI after updating

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13insertSection_7atIndexyAA0E5ModelC_SitF":{"name":"insertSection(_:atIndex:)","abstract":"

    Inserts section at sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8addItems_9toSectionySayxG_SitlF":{"name":"addItems(_:toSection:)","abstract":"

    Adds items to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7addItem_9toSectionyx_SitlF":{"name":"addItem(_:toSection:)","abstract":"

    Adds item to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10insertItem_2toyx_10Foundation9IndexPathVtKlF":{"name":"insertItem(_:to:)","abstract":"

    Inserts item to indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2atySayxG_10Foundation9IndexPathVtKlF":{"name":"insertItems(_:at:)","abstract":"

    Inserts contents of items at indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2toySayxG_Say10Foundation9IndexPathVGtlF":{"name":"insertItems(_:to:)","abstract":"

    Inserts items to indexPaths

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10reloadItemyyxSQRzlF":{"name":"reloadItem(_:)","abstract":"

    Reloads item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11replaceItem_4withyx_yptKSQRzlF":{"name":"replaceItem(_:with:)","abstract":"

    Replace item itemToReplace with replacingItem.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10removeItemyyxKSQRzlF":{"name":"removeItem(_:)","abstract":"

    Removes item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItemsyySayxGSQRzlF":{"name":"removeItems(_:)","abstract":"

    Removes items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems2atySay10Foundation9IndexPathVG_tF":{"name":"removeItems(at:)","abstract":"

    Removes items at indexPaths.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14deleteSectionsyy10Foundation8IndexSetVF":{"name":"deleteSections(_:)","abstract":"

    Deletes indexes from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11moveSection_02toE0ySi_SitF":{"name":"moveSection(_:toSection:)","abstract":"

    Moves section from sourceSectionIndex to destinationSectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8moveItem2at2toy10Foundation9IndexPathV_AItF":{"name":"moveItem(at:to:)","abstract":"

    Moves item from source indexPath to destination indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C24moveItemWithoutAnimation4from2toy10Foundation9IndexPathV_AItF":{"name":"moveItemWithoutAnimation(from:to:)","abstract":"

    Moves item from sourceIndexPath to destinationIndexPath without animations.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14removeAllItemsyyF":{"name":"removeAllItems()","abstract":"

    Removes all items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems11fromSectionySi_tF":{"name":"removeItems(fromSection:)","abstract":"

    Remove items from section with sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C5items9inSectionSayypGSgSi_tF":{"name":"items(inSection:)","abstract":"

    Returns items in section with section index, or nil if section does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C9indexPath7forItem10Foundation05IndexE0VSgx_tSQRzlF":{"name":"indexPath(forItem:)","abstract":"

    Returns indexPath of searchableItem in MemoryStorage or nil, if it’s not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7section7atIndexAA12SectionModelCSgSi_tF":{"name":"section(atIndex:)","abstract":"

    Returns section at sectionIndex or nil, if it does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C23updateWithoutAnimationsyyyyXEF":{"name":"updateWithoutAnimations(_:)","abstract":"

    Runs block of actions without notifying self.delegate.

    ","parent_name":"MemoryStorage"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC09reaction5D0ypyp_ypypypyptcSgvp":{"name":"reaction5Arguments","abstract":"

    Type-erased reaction with 5 arguments

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC_9modelType11argumentOne0I3Two9signature_ACxm_q_mq0_mq1_mSSq2_q0__q1_xq_10Foundation9IndexPathVtctcr3_lufc":{"name":"init(_:modelType:argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates five argument event reaction for View/Cell model mapped events.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC011performWithD0yypyp_ypypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC09reaction4D0ypyp_ypypyptcSgvp":{"name":"reaction4Arguments","abstract":"

    Type-erased reaction with 4 arguments

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC_9modelType8argument9signature_ACxm_q_mq0_mSSq1_q0__xq_10Foundation9IndexPathVtctcr2_lufc":{"name":"init(_:modelType:argument:signature:_:)","abstract":"

    Creates four argument event reaction for View/Cell mapped reactions.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC011performWithD0yypyp_ypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reactionypyp_ypyptcSgvp":{"name":"reaction","abstract":"

    3 arguments reaction block with all arguments type-erased.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC15methodSignatureSSvp":{"name":"methodSignature","abstract":"

    Objective-C method signature

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8viewType05modelF09signature_ACxm_q_mSSq0_x_q_10Foundation9IndexPathVtctcr1_lufc":{"name":"init(viewType:modelType:signature:_:)","abstract":"

    Creates reaction with signature.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9modelType9signature_ACxm_SSq_x_10Foundation9IndexPathVtctcr0_lufc":{"name":"init(modelType:signature:_:)","abstract":"

    Creates reaction with signature, viewType and modelType.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9signature_ACSS_xyctclufc":{"name":"init(signature:_:)","abstract":"

    Creates no argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8argument9signature_ACxm_SSq_xctcr0_lufc":{"name":"init(argument:signature:_:)","abstract":"

    Creates a single argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC11argumentOne0E3Two9signature_ACxm_q_mSSq0_x_q_tctcr1_lufc":{"name":"init(argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC20performWithArgumentsyypyp_ypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC08unmappedD04from9signatureACSgSayACG_SStFZ":{"name":"unmappedReaction(from:signature:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_ypSgSayACG_SStFZ":{"name":"performUnmappedReaction(from:_:)","abstract":"

    Perform zero argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_8argumentypSgSayACG_SSxtlFZ":{"name":"performUnmappedReaction(from:_:argument:)","abstract":"

    Perform single argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_11argumentOne0H3TwoypSgSayACG_SSxq_tr0_lFZ":{"name":"performUnmappedReaction(from:_:argumentOne:argumentTwo:)","abstract":"

    Perform two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reaction4from9signature8forModel2at4view17supplementaryKindACSgSayAA04ViewI15MappingProtocol_pG_SSyp10Foundation9IndexPathVSo6UIViewCSgSSSgtFZ":{"name":"reaction(from:signature:forModel:at:view:supplementaryKind:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC07performD04from9signature4view5model8location17supplementaryKindypSayAA24ViewModelMappingProtocol_pG_SSypSgyp10Foundation9IndexPathVSSSgtFZ":{"name":"performReaction(from:signature:view:model:location:supplementaryKind:)","abstract":"

    Performs reaction of type, signature, with view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform4ArgumentsD04from9signature8argument4view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform4ArgumentsReaction(from:signature:argument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with argument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform5ArgumentsD04from9signature13firstArgument06secondJ04view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform5ArgumentsReaction(from:signature:firstArgument:secondArgument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with firstArgument, secondArgument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerSo09NSFetchedfG0CyxGvp":{"name":"fetchedResultsController","abstract":"

    Fetched results controller of storage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerACyxGSo09NSFetchedfG0CyxG_tcfc":{"name":"init(fetchedResultsController:)","abstract":"

    Initialize CoreDataStorage with NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve object at index path from CoreDataStorage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C27controllerWillChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerWillChangeContent(_:)","abstract":"

    NSFetchedResultsController is about to start changing content - we’ll start monitoring for updates.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange2at3for12newIndexPathySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_yp10Foundation0kL0VSgSo0mnG4TypeVAPtF":{"name":"controller(_:didChange:at:for:newIndexPath:)","abstract":"

    React to specific change in NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange14atSectionIndex3forySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_So0lmI4Info_pSiSo0lmG4TypeVtF":{"name":"controller(_:didChange:atSectionIndex:for:)","abstract":"

    Undocumented

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C26controllerDidChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerDidChangeContent(_:)","abstract":"

    Finish update from NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C07currentD0AA0bD0CSgvp":{"name":"currentUpdate","abstract":"

    Current update

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C22batchUpdatesInProgressSbvp":{"name":"batchUpdatesInProgress","abstract":"

    Batch updates are in progress. If true, update will not be finished.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C8delegateAA0B8Updating_pSgvp":{"name":"delegate","abstract":"

    Delegate for storage updates

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C14performUpdatesyyyyXEF":{"name":"performUpdates(_:)","abstract":"

    Performs update block in storage. After update is finished, delegate will be notified.","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C05startD0yyF":{"name":"startUpdate()","abstract":"

    Starts update in storage.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C06finishD0yyF":{"name":"finishUpdate()","abstract":"

    Finishes update.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil. Setter for this property is overridden to allow calling headerModelProvider and footerModelProvider closures.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

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

    BaseSupplementaryStorage is a base class, that implements common functionality for SupplementaryStorage protocol and serves as a base class for MemoryStorage, CoreDataStorage, SingleSectionStorage, RealmStorage.

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

    Base class for storage classes

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

    This class represents model storage in CoreData"},"Classes/EventReaction.html":{"name":"EventReaction","abstract":"

    Data holder for reaction

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

    Subclass of EventReaction, tuned to work with 4 arguments.

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

    Subclass of EventReaction, tuned to work with 5 arguments.

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

    Storage of models in memory.

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

    MemoryStorageAnomalyHandler handles anomalies from MemoryStorage.

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

    Data holder for single section in MemoryStorage.

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

    SingleSectionStorage that requires all it’s elements to be Equatable.

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

    SingleSectionStorage that requires all it’s elements to be Hashable.

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

    Abstract base class that represents a single section of items. Supports supplementary items to allow representing supplementary views in section.

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

    Object representing update in storage.

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

    ViewModelMapping class serves to store mappings, and capture model and cell types.

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

    The following classes are available globally.

    "},"Global%20Variables.html":{"name":"Global Variables","abstract":"

    The following global variables are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/undocumented.json index 93cfcf8f..4c816dc3 100644 --- a/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/DTModelStorage.docset/Contents/Resources/Documents/undocumented.json @@ -79,7 +79,7 @@ }, { "file": "/Users/denystelezhkin/Projects/DTModelStorage/Sources/DTModelStorage/SectionModel.swift", - "line": 59, + "line": 61, "symbol": "SectionModel.setItems(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" diff --git a/docs/docsets/DTModelStorage.docset/Contents/Resources/docSet.dsidx b/docs/docsets/DTModelStorage.docset/Contents/Resources/docSet.dsidx index b4817b08..5be4a9cd 100644 Binary files a/docs/docsets/DTModelStorage.docset/Contents/Resources/docSet.dsidx and b/docs/docsets/DTModelStorage.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/DTModelStorage.tgz b/docs/docsets/DTModelStorage.tgz index fa3a13e7..64a50f7f 100644 Binary files a/docs/docsets/DTModelStorage.tgz and b/docs/docsets/DTModelStorage.tgz differ diff --git a/docs/docsets/DTModelStorage.xml b/docs/docsets/DTModelStorage.xml index 7accf7d8..bd3f9157 100644 --- a/docs/docsets/DTModelStorage.xml +++ b/docs/docsets/DTModelStorage.xml @@ -1 +1 @@ -9.1.2https://dentelezhkin.github.io/DTModelStorage/docsets/DTModelStorage.tgz +10.0.0-beta.1https://dentelezhkin.github.io/DTModelStorage/docsets/DTModelStorage.tgz diff --git a/docs/index.html b/docs/index.html index aec4ac29..55def8ef 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,7 +20,7 @@

    - DTModelStorage 9.1.2 Docs + DTModelStorage 10.0.0-beta.1 Docs (84% documented)

    @@ -82,9 +82,6 @@ - @@ -282,8 +279,8 @@

    ViewModelMapping and diff --git a/docs/js/jquery.min.js b/docs/js/jquery.min.js index b0614034..c4c6022f 100755 --- a/docs/js/jquery.min.js +++ b/docs/js/jquery.min.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); +!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/search.json b/docs/search.json index 86f2a1fb..fd4d69f4 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates strategy

    ","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by deleting old items, that have new values in newItems, from oldItems.","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates update old values accumulation strategy

    ","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by updating old items with new values, using old item positions in collection.","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates additive accumulation strategy

    ","parent_name":"AdditiveAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyV10accumulate8oldItems03newH0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by appending newItems to oldItems.

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

    Strategy, that adds new items to old items, without comparing their identifiers."},"Structs/UpdateOldValuesAccumulationStrategy.html":{"name":"UpdateOldValuesAccumulationStrategy","abstract":"

    Strategy to update old values with a new ones, using old items position.

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

    Strategy to delete old values when accumulating newItems

    "},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP7xibNameSSSgvp":{"name":"xibName","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP8viewTypeAA0cH0Ovp":{"name":"viewType","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP09modelTypeH13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectioniC0CSgSo0pC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE26configureForTableViewUsageyyF":{"name":"configureForTableViewUsage()","abstract":"

    Configures storage for using with UITableView

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE41configureForCollectionViewFlowLayoutUsageyyF":{"name":"configureForCollectionViewFlowLayoutUsage()","abstract":"

    Configures storage for using with UICollectionViewFlowLayout

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11headerModel10forSectionypSgSi_tF":{"name":"headerModel(forSection:)","abstract":"

    Returns header model from section with section index or nil, if it was not set.","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11footerModel10forSectionypSgSi_tF":{"name":"footerModel(forSection:)","abstract":"

    Returns footer model from section with section index or nil, if it was not set.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE18supplementaryModel6ofKind12forSectionAtypSgSS_10Foundation9IndexPathVtF":{"name":"supplementaryModel(ofKind:forSectionAt:)","abstract":"

    Returns supplementary model of kind for section at indexPath.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionHeaderModelsyySayqd__GlF":{"name":"setSectionHeaderModels(_:)","abstract":"

    Sets section header models, using supplementaryHeaderKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionFooterModelsyySayqd__GlF":{"name":"setSectionFooterModels(_:)","abstract":"

    Sets section footer models, using supplementaryFooterKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in section.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at concrete indexPath.

    ","parent_name":"Storage"},"Protocols/EquatableDiffingAlgorithm.html#/s:14DTModelStorage25EquatableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SQRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"EquatableDiffingAlgorithm"},"Protocols/HashableDiffingAlgorithm.html#/s:14DTModelStorage24HashableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SHRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"HashableDiffingAlgorithm"},"Protocols/EntityIdentifiable.html#/s:14DTModelStorage18EntityIdentifiableP10identifiers11AnyHashableVvp":{"name":"identifier","abstract":"

    Unique identifier of object. It must never change for this specific object.

    ","parent_name":"EntityIdentifiable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    Section index for current section

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocationIdentifyable.html#/s:14DTModelStorage27SectionLocationIdentifyableP12sectionIndex3forSiSgAA0C0_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns section index for section, or nil if section was not found.

    ","parent_name":"SectionLocationIdentifyable"},"Protocols/Section.html#/s:14DTModelStorage7SectionP4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns an item at index, if it exists in Section.

    ","parent_name":"Section"},"Protocols/Section.html#/s:14DTModelStorage7SectionP13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section.

    ","parent_name":"Section"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP0C4TypeQa":{"name":"ModelType","abstract":"

    Type of model that is being transferred

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP6update4withy0C4TypeQz_tF":{"name":"update(with:)","abstract":"

    Updates view with model.

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferPAAE14modelConditionyAA07MappingF0OSb10Foundation9IndexPathV_0C4TypeQztcFZ":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ModelTransfer"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP23storageDidPerformUpdateyyAA0bG0CF":{"name":"storageDidPerformUpdate(_:)","abstract":"

    Transfers data storage updates.

    ","parent_name":"StorageUpdating"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP21storageNeedsReloadingyyF":{"name":"storageNeedsReloading()","abstract":"

    Method is called when UI needs to be fully updated for data storage changes.

    ","parent_name":"StorageUpdating"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP0C0Qa":{"name":"Anomaly","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP13anomalyActionyy0C0Qzcvp":{"name":"anomalyAction","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP06reportC0yy0C0QzF":{"name":"reportAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP07silenceC0yy0C0QzF":{"name":"silenceAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerPAAE07silenceC014usingConditionySb0C0Qzc_tF":{"name":"silenceAnomaly(usingCondition:)","abstract":"

    Silences anomalies, based on provided condition. If this condition returns true, anomalyHandler will not be called for this anomaly.

    ","parent_name":"AnomalyHandler"},"Protocols/AccumulationStrategy.html#/s:14DTModelStorage20AccumulationStrategyP10accumulate8oldItems03newG0Sayqd__GAG_AGtAA18EntityIdentifiableRd__lF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array.

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

    Strategy to accumulate oldItems and newItems into resulting array.

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

    AnomalyHandler protocol serves as interface for various anomaly handlers.

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

    StorageUpdating protocol is used to transfer data storage updates.

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

    Protocol used to pass model data to your cell or supplementary view. Every cell or supplementary view you have should conform to this protocol.

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

    Section protocol defines an interface for sections returned by DTModelStorage object."},"Protocols/SectionLocationIdentifyable.html":{"name":"SectionLocationIdentifyable","abstract":"

    Identifies index of section in storage

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

    Allows access to supplementaries for specific section

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

    A type that can be identified by identifier.

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

    Algorithm that requires elements in collection to be Hashable

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

    Algorithm that requires elements in collection to be Equatable

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

    Storage protocol is used to define common interface for storage classes.

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

    SupplementaryStorage is used to handle header/footer and supplementary models in storage.

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

    Type-erased interface for ViewModelMapping generic class.

    "},"Extensions/UINib.html#/s:So5UINibC14DTModelStorageE9nibExists11withNibName8inBundleSbSS_So8NSBundleCtFZ":{"name":"nibExists(withNibName:inBundle:)","abstract":"

    Returns true, if nib file with nibName exists in bundle.

    ","parent_name":"UINib"},"Extensions/UINib.html":{"name":"UINib"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO7sectionyACSicACmF":{"name":"section(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO6customyACSb10Foundation9IndexPathV_yptccACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO4cellyA2CmF":{"name":"cell","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO013supplementaryC0yACSS_tcACmF":{"name":"supplementaryView(kind:)","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17supplementaryKindSSSgyF":{"name":"supplementaryKind()","abstract":"

    Returns supplementaryKind for .supplementaryView case, nil for .cell case.

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17mappingCandidates3for9withModel2atSayAA0cI15MappingProtocol_pGAI_yp10Foundation9IndexPathVtF":{"name":"mappingCandidates(for:withModel:at:)","abstract":"

    Returns mappings candidates of correct viewType, for which modelTypeCheckingBlock with model returns true.

    ","parent_name":"ViewType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6deleteyA2CmF":{"name":"delete","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO4moveyA2CmF":{"name":"move","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6insertyA2CmF":{"name":"insert","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6updateyA2CmF":{"name":"update","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6deleteyACSicACmF":{"name":"delete(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6insertyACSicACmF":{"name":"insert(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO4moveyACSi_SitcACmF":{"name":"move(from:to:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6updateyACSicACmF":{"name":"update(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/RuntimeHelper.html#/s:14DTModelStorage13RuntimeHelperO25recursivelyUnwrapAnyValueyypSgypFZ":{"name":"recursivelyUnwrapAnyValue(_:)","abstract":"

    Returns recursively unwrapped any optional.

    ","parent_name":"RuntimeHelper"},"Enums/MemoryStorageError/SearchReason.html#/s:14DTModelStorage06MemoryB5ErrorO12SearchReasonO12itemNotFoundyAEyp_tcAEmF":{"name":"itemNotFound(item:)","abstract":"

    Undocumented

    ","parent_name":"SearchReason"},"Enums/MemoryStorageError/InsertionReason.html#/s:14DTModelStorage06MemoryB5ErrorO15InsertionReasonO15indexPathTooBigyAE10Foundation05IndexH0VcAEmF":{"name":"indexPathTooBig(_:)","abstract":"

    Undocumented

    ","parent_name":"InsertionReason"},"Enums/MemoryStorageError/InsertionReason.html":{"name":"InsertionReason","abstract":"

    Errors that can happen when inserting items into memory storage - insertItem(_:to:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError/SearchReason.html":{"name":"SearchReason","abstract":"

    Errors that can happen when replacing item in memory storage - replaceItem(_:with:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO15insertionFailedyA2C15InsertionReasonO_tcACmF":{"name":"insertionFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO12searchFailedyA2C12SearchReasonO_tcACmF":{"name":"searchFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO20localizedDescriptionSSvp":{"name":"localizedDescription","abstract":"

    Description of error

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO24insertionIndexPathTooBigyAC10Foundation0fG0V_SitcACmF":{"name":"insertionIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    When inserting item to indexPath, there were only countOfElementsInSection items in section

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31batchInsertionItemCountMismatchyACSi_SitcACmF":{"name":"batchInsertionItemCountMismatch(itemsCount:indexPathsCount:)","abstract":"

    When inserting batch of items, number of items and number of indexPaths was different

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO017replaceItemFailedF8NotFoundyACSS_tcACmF":{"name":"replaceItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to replace item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO016removeItemFailedF8NotFoundyACSS_tcACmF":{"name":"removeItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to remove item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO014moveItemFailedF8NotFoundyAC10Foundation9IndexPathV_tcACmF":{"name":"moveItemFailedItemNotFound(indexPath:)","abstract":"

    Attempt to move item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO29moveItemFailedIndexPathTooBigyAC10Foundation0hI0V_SitcACmF":{"name":"moveItemFailedIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    Attempt to move item to too big indexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31moveItemFailedInvalidIndexPathsyAC10Foundation0I4PathV_AGS2itcACmF":{"name":"moveItemFailedInvalidIndexPaths(sourceIndexPath:destinationIndexPath:sourceElementsInSection:destinationElementsInSection:)","abstract":"

    Inconsistent indexPaths when moving item from sourceIndexPath to destinationIndexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Debug information for MemoryStorageAnomaly.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO11descriptionSSvp":{"name":"description","abstract":"

    Short description for MemoryStorageAnomaly. Useful for sending to analytics, which might have character limit.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html":{"name":"MemoryStorageAnomaly","abstract":"

    MemoryStorageAnomaly represents various errors and unwanted behaviors that can happen when using MemoryStorage class.

    "},"Enums/MemoryStorageError.html":{"name":"MemoryStorageError","abstract":"

    This struct contains error types that can be thrown for various MemoryStorage errors

    "},"Enums/RuntimeHelper.html":{"name":"RuntimeHelper","abstract":"

    This class is used to introspect Swift and Objective-C types, providing necessary mapping information.

    "},"Enums/SingleSectionOperation.html":{"name":"SingleSectionOperation","abstract":"

    Edit operation in single section.

    "},"Enums/ChangeType.html":{"name":"ChangeType","abstract":"

    Possible change types for objects and sections

    "},"Enums/ViewType.html":{"name":"ViewType","abstract":"

    ViewType enum allows differentiating between mappings for different kinds of views. For example, UICollectionView headers might use ViewType.supplementaryView(UICollectionElementKindSectionHeader) value.

    "},"Enums/MappingCondition.html":{"name":"MappingCondition","abstract":"

    Defines condition, under which mapping is going to be applied.

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionHeaderSSvp":{"name":"DTTableViewElementSectionHeader","abstract":"

    Suggested supplementary kind for UITableView header

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionFooterSSvp":{"name":"DTTableViewElementSectionFooter","abstract":"

    Suggested supplementary kind for UITableView footer

    "},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewTypeAA0cG0Ovp":{"name":"viewType","abstract":"

    View type for this mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    View class, that will be used for current mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC7xibNameSSSgvp":{"name":"xibName","abstract":"

    Xib name for mapping. This value will not be nil only if XIBs are used for this particular mapping.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Bundle in which resources for this mapping will be searched for. For example, DTTableViewManager uses this property to get bundle, from which xib file for UITableViewCell will be retrieved. Defaults to Bundle(for: T.self).","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Type checking block, that will verify whether passed model should be mapped to viewClass.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC09modelTypeG13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Closure, that can be used to check model type when model is not available(generic context for example, when model Type is available only).

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Type-erased update block, that will be called when ModelTransfer update(with:) method needs to be executed.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Mapping condition, under which this mapping is going to work. Defaults to .none.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Reuse identifier to be used for reusable views. Mappings for UICollectionViewCell and UICollectionReusableView on iOS 14 / tvOS 14 and higher ignore this parameter unless you are using storyboard prototyped cells or supplementary views.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    If cell is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    If supplementary view is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Event reactions, attached to current mapping instance

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC14modelConditionyAA0eG0OSb10Foundation9IndexPathV_q_tcF":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewType0F5Class7xibName12mappingBlockACyxq_GAA0cG0O_qd__mSSSgyAHcSgtcAA0D8TransferRd__lufc":{"name":"init(viewType:viewClass:xibName:mappingBlock:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzrlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzrlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration. This initializer is used, when UICollectionSupplementaryView conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration. This initializer is used when header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Update cell at indexPath with model. This can be used in scenarios where you want to update a cell, but animations are not required.","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from tableView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls headerFooterConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from collectionView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectionhC0CSgSo0oC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls supplementaryConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC13objectChangesSayAA10ChangeTypeO_Say10Foundation9IndexPathVGtGvp":{"name":"objectChanges","abstract":"

    Object changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14sectionChangesSayAA10ChangeTypeO_SaySiGtGvp":{"name":"sectionChanges","abstract":"

    Section changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14updatedObjectsSDy10Foundation9IndexPathVypGvp":{"name":"updatedObjects","abstract":"

    Objects that were updated, with initial index paths","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC33containsDeferredDatasourceUpdatesSbvp":{"name":"containsDeferredDatasourceUpdates","abstract":"

    If update contains deferred datasource updates, they need to be applied before applying any animations.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC25enqueuedDatasourceUpdatesSayyACKcGvp":{"name":"enqueuedDatasourceUpdates","abstract":"

    Enqueued datasource updates for later execution. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateCACycfc":{"name":"init()","abstract":"

    Create an empty update.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Returns true, if update is empty.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC30applyDeferredDatasourceUpdatesyyF":{"name":"applyDeferredDatasourceUpdates()","abstract":"

    Call this method to apply all deferred datasource updates.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC017enqueueDatasourceC0yyyACKcF":{"name":"enqueueDatasourceUpdate(_:)","abstract":"

    Enqueues datasource update for later execution into enqueuedDatasourceUpdates property. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

    Compare StorageUpdates

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC11descriptionSSvp":{"name":"description","abstract":"

    Description of object changes

    ","parent_name":"StorageUpdate"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in a storage

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C13numberOfItems02inD0S2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsSayxGvp":{"name":"items","abstract":"

    Array of items, that section contains.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsACyxGSayxG_tcfc":{"name":"init(items:)","abstract":"

    Creates storage with array of items. Do not call this method directly. Instead use concrete subclasses of SingleSectionStorage, such as SingleSectionEquatableStorage.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve item at given indexPath.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Abstract method to calculate diffs. Do not use this method directly. Instead, use subclassed method, for example SingleSectionEquatableStorage.calculateDiffs(to:).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8setItemsyySayxGF":{"name":"setItems(_:)","abstract":"

    Replaces items with newItems, collecting changes along the way. Changes are calculated using calculateDiffs(to:) method and delivered to StorageUpdating delegate, which can animate changes in resulting UI(for example UITableView or UICollectionView).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8addItemsyySayxG_AA20AccumulationStrategy_ptF":{"name":"addItems(_:_:)","abstract":"

    Adds newItems on top of items, using specified accumulation strategy.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Hashable.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of HashableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Equatable.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of EquatableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns item at index, if it exists, nil otherwise.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsSayypGvp":{"name":"items","abstract":"

    Items for current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    section index of current section in MemoryStorage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsACSayypG_tcfc":{"name":"init(items:)","abstract":"

    Creates section model.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC8setItemsyySayxGlF":{"name":"setItems(_:)","abstract":"

    Undocumented

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5items6ofTypeSayxGxm_tlF":{"name":"items(ofType:)","abstract":"

    Returns items of type in current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section

    ","parent_name":"SectionModel"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in section.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at concrete indexPath.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C9tableView04dataF013modelProviderACSo07UITableH0C_5UIKit0lhdeF0Cyxq_Gyp10Foundation9IndexPathV_q_tctcSHRzSHR_r0_lufc":{"name":"init(tableView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C9tableView04dataF013modelProviderACSo07UITableH0C_So0lhdeF0Cyp10Foundation9IndexPathV_yptctcfc":{"name":"init(tableView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C14collectionView04dataF013modelProviderACSo012UICollectionH0C_5UIKit0lhdeF0Cyxq_Gyp10Foundation9IndexPathV_q_tctcSHRzSHR_r0_lufc":{"name":"init(collectionView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/ProxyDiffableDataSourceStorage.html#/s:14DTModelStorage023ProxyDiffableDataSourceB0C14collectionView04dataF013modelProviderACSo012UICollectionH0C_So0lhdeF0Cyp10Foundation9IndexPathV_yptctcfc":{"name":"init(collectionView:dataSource:modelProvider:)","abstract":"

    Creates ProxyDiffableDataSourceStorage.

    ","parent_name":"ProxyDiffableDataSourceStorage"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13defaultActionyyAA0cbD0OcvpZ":{"name":"defaultAction","abstract":"

    Default action to perform when anomaly is detected. Prints debugDescription of anomaly by default.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13anomalyActionyyAA0cbD0Ocvp":{"name":"anomalyAction","abstract":"

    Action to perform when anomaly is detected. Defaults to defaultAction.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerCACycfc":{"name":"init()","abstract":"

    Creates MemoryStorageAnomalyHandler.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C23defersDatasourceUpdatesSbvp":{"name":"defersDatasourceUpdates","abstract":"

    Undocumented

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14anomalyHandlerAA0cb7AnomalyE0Cvp":{"name":"anomalyHandler","abstract":"

    Anomaly handler, that handles reported by MemoryStorage anomalies.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8sectionsSayAA7Section_pGvp":{"name":"sections","abstract":"

    sections of MemoryStorage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C12sectionIndex3forSiSgAA7Section_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns index of section or nil, if section is now found

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C18totalNumberOfItemsSivp":{"name":"totalNumberOfItems","abstract":"

    Returns total number of items contained in all MemoryStorage sections

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at indexPath or nil, if it is not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8setItems_10forSectionySayxG_SitlF":{"name":"setItems(_:forSection:)","abstract":"

    Sets items for section at index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C22setItemsForAllSectionsyySaySayxGGlF":{"name":"setItemsForAllSections(_:)","abstract":"

    Sets items for sections in memory storage. This method creates all required sections, if necessary.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10setSection_03forE0yAA0E5ModelC_SitF":{"name":"setSection(_:forSection:)","abstract":"

    Sets section for index. This will reload UI after updating

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13insertSection_7atIndexyAA0E5ModelC_SitF":{"name":"insertSection(_:atIndex:)","abstract":"

    Inserts section at sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8addItems_9toSectionySayxG_SitlF":{"name":"addItems(_:toSection:)","abstract":"

    Adds items to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7addItem_9toSectionyx_SitlF":{"name":"addItem(_:toSection:)","abstract":"

    Adds item to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10insertItem_2toyx_10Foundation9IndexPathVtKlF":{"name":"insertItem(_:to:)","abstract":"

    Inserts item to indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2atySayxG_10Foundation9IndexPathVtKlF":{"name":"insertItems(_:at:)","abstract":"

    Inserts contents of items at indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2toySayxG_Say10Foundation9IndexPathVGtlF":{"name":"insertItems(_:to:)","abstract":"

    Inserts items to indexPaths

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10reloadItemyyxSQRzlF":{"name":"reloadItem(_:)","abstract":"

    Reloads item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11replaceItem_4withyx_yptKSQRzlF":{"name":"replaceItem(_:with:)","abstract":"

    Replace item itemToReplace with replacingItem.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10removeItemyyxKSQRzlF":{"name":"removeItem(_:)","abstract":"

    Removes item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItemsyySayxGSQRzlF":{"name":"removeItems(_:)","abstract":"

    Removes items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems2atySay10Foundation9IndexPathVG_tF":{"name":"removeItems(at:)","abstract":"

    Removes items at indexPaths.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14deleteSectionsyy10Foundation8IndexSetVF":{"name":"deleteSections(_:)","abstract":"

    Deletes indexes from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11moveSection_02toE0ySi_SitF":{"name":"moveSection(_:toSection:)","abstract":"

    Moves section from sourceSectionIndex to destinationSectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8moveItem2at2toy10Foundation9IndexPathV_AItF":{"name":"moveItem(at:to:)","abstract":"

    Moves item from source indexPath to destination indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C24moveItemWithoutAnimation4from2toy10Foundation9IndexPathV_AItF":{"name":"moveItemWithoutAnimation(from:to:)","abstract":"

    Moves item from sourceIndexPath to destinationIndexPath without animations.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14removeAllItemsyyF":{"name":"removeAllItems()","abstract":"

    Removes all items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems11fromSectionySi_tF":{"name":"removeItems(fromSection:)","abstract":"

    Remove items from section with sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C5items9inSectionSayypGSgSi_tF":{"name":"items(inSection:)","abstract":"

    Returns items in section with section index, or nil if section does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C9indexPath7forItem10Foundation05IndexE0VSgx_tSQRzlF":{"name":"indexPath(forItem:)","abstract":"

    Returns indexPath of searchableItem in MemoryStorage or nil, if it’s not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7section7atIndexAA12SectionModelCSgSi_tF":{"name":"section(atIndex:)","abstract":"

    Returns section at sectionIndex or nil, if it does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C23updateWithoutAnimationsyyyyXEF":{"name":"updateWithoutAnimations(_:)","abstract":"

    Runs block of actions without notifying self.delegate.

    ","parent_name":"MemoryStorage"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC09reaction5D0ypyp_ypypypyptcSgvp":{"name":"reaction5Arguments","abstract":"

    Type-erased reaction with 5 arguments

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC_9modelType11argumentOne0I3Two9signature_ACxm_q_mq0_mq1_mSSq2_q0__q1_xq_10Foundation9IndexPathVtctcr3_lufc":{"name":"init(_:modelType:argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates five argument event reaction for View/Cell model mapped events.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC011performWithD0yypyp_ypypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC09reaction4D0ypyp_ypypyptcSgvp":{"name":"reaction4Arguments","abstract":"

    Type-erased reaction with 4 arguments

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC_9modelType8argument9signature_ACxm_q_mq0_mSSq1_q0__xq_10Foundation9IndexPathVtctcr2_lufc":{"name":"init(_:modelType:argument:signature:_:)","abstract":"

    Creates four argument event reaction for View/Cell mapped reactions.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC011performWithD0yypyp_ypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reactionypyp_ypyptcSgvp":{"name":"reaction","abstract":"

    3 arguments reaction block with all arguments type-erased.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC15methodSignatureSSvp":{"name":"methodSignature","abstract":"

    Objective-C method signature

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8viewType05modelF09signature_ACxm_q_mSSq0_x_q_10Foundation9IndexPathVtctcr1_lufc":{"name":"init(viewType:modelType:signature:_:)","abstract":"

    Creates reaction with signature.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9modelType9signature_ACxm_SSq_x_10Foundation9IndexPathVtctcr0_lufc":{"name":"init(modelType:signature:_:)","abstract":"

    Creates reaction with signature, viewType and modelType.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9signature_ACSS_xyctclufc":{"name":"init(signature:_:)","abstract":"

    Creates no argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8argument9signature_ACxm_SSq_xctcr0_lufc":{"name":"init(argument:signature:_:)","abstract":"

    Creates a single argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC11argumentOne0E3Two9signature_ACxm_q_mSSq0_x_q_tctcr1_lufc":{"name":"init(argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC20performWithArgumentsyypyp_ypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC08unmappedD04from9signatureACSgSayACG_SStFZ":{"name":"unmappedReaction(from:signature:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_ypSgSayACG_SStFZ":{"name":"performUnmappedReaction(from:_:)","abstract":"

    Perform zero argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_8argumentypSgSayACG_SSxtlFZ":{"name":"performUnmappedReaction(from:_:argument:)","abstract":"

    Perform single argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_11argumentOne0H3TwoypSgSayACG_SSxq_tr0_lFZ":{"name":"performUnmappedReaction(from:_:argumentOne:argumentTwo:)","abstract":"

    Perform two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reaction4from9signature8forModel2at4view17supplementaryKindACSgSayAA04ViewI15MappingProtocol_pG_SSyp10Foundation9IndexPathVSo6UIViewCSgSSSgtFZ":{"name":"reaction(from:signature:forModel:at:view:supplementaryKind:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC07performD04from9signature4view5model8location17supplementaryKindypSayAA24ViewModelMappingProtocol_pG_SSypSgyp10Foundation9IndexPathVSSSgtFZ":{"name":"performReaction(from:signature:view:model:location:supplementaryKind:)","abstract":"

    Performs reaction of type, signature, with view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform4ArgumentsD04from9signature8argument4view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform4ArgumentsReaction(from:signature:argument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with argument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform5ArgumentsD04from9signature13firstArgument06secondJ04view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform5ArgumentsReaction(from:signature:firstArgument:secondArgument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with firstArgument, secondArgument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerSo09NSFetchedfG0CyxGvp":{"name":"fetchedResultsController","abstract":"

    Fetched results controller of storage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerACyxGSo09NSFetchedfG0CyxG_tcfc":{"name":"init(fetchedResultsController:)","abstract":"

    Initialize CoreDataStorage with NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve object at index path from CoreDataStorage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C27controllerWillChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerWillChangeContent(_:)","abstract":"

    NSFetchedResultsController is about to start changing content - we’ll start monitoring for updates.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange2at3for12newIndexPathySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_yp10Foundation0kL0VSgSo0mnG4TypeVAPtF":{"name":"controller(_:didChange:at:for:newIndexPath:)","abstract":"

    React to specific change in NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange14atSectionIndex3forySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_So0lmI4Info_pSiSo0lmG4TypeVtF":{"name":"controller(_:didChange:atSectionIndex:for:)","abstract":"

    Undocumented

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C26controllerDidChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerDidChangeContent(_:)","abstract":"

    Finish update from NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C07currentD0AA0bD0CSgvp":{"name":"currentUpdate","abstract":"

    Current update

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C22batchUpdatesInProgressSbvp":{"name":"batchUpdatesInProgress","abstract":"

    Batch updates are in progress. If true, update will not be finished.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C8delegateAA0B8Updating_pSgvp":{"name":"delegate","abstract":"

    Delegate for storage updates

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C14performUpdatesyyyyXEF":{"name":"performUpdates(_:)","abstract":"

    Performs update block in storage. After update is finished, delegate will be notified.","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C05startD0yyF":{"name":"startUpdate()","abstract":"

    Starts update in storage.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C06finishD0yyF":{"name":"finishUpdate()","abstract":"

    Finishes update.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil. Setter for this property is overridden to allow calling headerModelProvider and footerModelProvider closures.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

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

    BaseSupplementaryStorage is a base class, that implements common functionality for SupplementaryStorage protocol and serves as a base class for MemoryStorage, CoreDataStorage, SingleSectionStorage, RealmStorage.

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

    Base class for storage classes

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

    This class represents model storage in CoreData"},"Classes/EventReaction.html":{"name":"EventReaction","abstract":"

    Data holder for reaction

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

    Subclass of EventReaction, tuned to work with 4 arguments.

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

    Subclass of EventReaction, tuned to work with 5 arguments.

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

    Storage of models in memory.

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

    MemoryStorageAnomalyHandler handles anomalies from MemoryStorage.

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

    Undocumented

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

    Data holder for single section in MemoryStorage.

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

    SingleSectionStorage that requires all it’s elements to be Equatable.

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

    SingleSectionStorage that requires all it’s elements to be Hashable.

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

    Abstract base class that represents a single section of items. Supports supplementary items to allow representing supplementary views in section.

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

    Object representing update in storage.

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

    ViewModelMapping class serves to store mappings, and capture model and cell types.

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

    The following classes are available globally.

    "},"Global%20Variables.html":{"name":"Global Variables","abstract":"

    The following global variables are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates strategy

    ","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/DeleteOldValuesAccumulationStrategy.html#/s:14DTModelStorage35DeleteOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by deleting old items, that have new values in newItems, from oldItems.","parent_name":"DeleteOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates update old values accumulation strategy

    ","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/UpdateOldValuesAccumulationStrategy.html#/s:14DTModelStorage35UpdateOldValuesAccumulationStrategyV10accumulate8oldItems03newJ0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by updating old items with new values, using old item positions in collection.","parent_name":"UpdateOldValuesAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyVACycfc":{"name":"init()","abstract":"

    Creates additive accumulation strategy

    ","parent_name":"AdditiveAccumulationStrategy"},"Structs/AdditiveAccumulationStrategy.html#/s:14DTModelStorage28AdditiveAccumulationStrategyV10accumulate8oldItems03newH0SayxGAG_AGtAA18EntityIdentifiableRzlF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array by appending newItems to oldItems.

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

    Strategy, that adds new items to old items, without comparing their identifiers."},"Structs/UpdateOldValuesAccumulationStrategy.html":{"name":"UpdateOldValuesAccumulationStrategy","abstract":"

    Strategy to update old values with a new ones, using old items position.

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

    Strategy to delete old values when accumulating newItems

    "},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP7xibNameSSSgvp":{"name":"xibName","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP8viewTypeAA0cH0Ovp":{"name":"viewType","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP09modelTypeH13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectioniC0CSgSo0pC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecJ0CSgSo0oC0C_yp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/ViewModelMappingProtocol.html#/s:14DTModelStorage24ViewModelMappingProtocolP038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexO0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMappingProtocol"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0P23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE26configureForTableViewUsageyyF":{"name":"configureForTableViewUsage()","abstract":"

    Configures storage for using with UITableView

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE41configureForCollectionViewFlowLayoutUsageyyF":{"name":"configureForCollectionViewFlowLayoutUsage()","abstract":"

    Configures storage for using with UICollectionViewFlowLayout

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11headerModel10forSectionypSgSi_tF":{"name":"headerModel(forSection:)","abstract":"

    Returns header model from section with section index or nil, if it was not set.","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE11footerModel10forSectionypSgSi_tF":{"name":"footerModel(forSection:)","abstract":"

    Returns footer model from section with section index or nil, if it was not set.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE18supplementaryModel6ofKind12forSectionAtypSgSS_10Foundation9IndexPathVtF":{"name":"supplementaryModel(ofKind:forSectionAt:)","abstract":"

    Returns supplementary model of kind for section at indexPath.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionHeaderModelsyySayqd__GlF":{"name":"setSectionHeaderModels(_:)","abstract":"

    Sets section header models, using supplementaryHeaderKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/SupplementaryStorage.html#/s:14DTModelStorage013SupplementaryB0PAAE22setSectionFooterModelsyySayqd__GlF":{"name":"setSectionFooterModels(_:)","abstract":"

    Sets section footer models, using supplementaryFooterKind.

    ","parent_name":"SupplementaryStorage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in section.

    ","parent_name":"Storage"},"Protocols/Storage.html#/s:14DTModelStorage0B0P4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at concrete indexPath.

    ","parent_name":"Storage"},"Protocols/EquatableDiffingAlgorithm.html#/s:14DTModelStorage25EquatableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SQRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"EquatableDiffingAlgorithm"},"Protocols/HashableDiffingAlgorithm.html#/s:14DTModelStorage24HashableDiffingAlgorithmP4diff4from2toSayAA22SingleSectionOperationOGSayqd__G_AJtAA18EntityIdentifiableRd__SHRd__lF":{"name":"diff(from:to:)","abstract":"

    Undocumented

    ","parent_name":"HashableDiffingAlgorithm"},"Protocols/EntityIdentifiable.html#/s:14DTModelStorage18EntityIdentifiableP10identifiers11AnyHashableVvp":{"name":"identifier","abstract":"

    Unique identifier of object. It must never change for this specific object.

    ","parent_name":"EntityIdentifiable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    Section index for current section

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocatable.html#/s:14DTModelStorage16SectionLocatableP23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionLocatable"},"Protocols/SectionLocationIdentifyable.html#/s:14DTModelStorage27SectionLocationIdentifyableP12sectionIndex3forSiSgAA0C0_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns section index for section, or nil if section was not found.

    ","parent_name":"SectionLocationIdentifyable"},"Protocols/Section.html#/s:14DTModelStorage7SectionP4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns an item at index, if it exists in Section.

    ","parent_name":"Section"},"Protocols/Section.html#/s:14DTModelStorage7SectionP13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section.

    ","parent_name":"Section"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP0C4TypeQa":{"name":"ModelType","abstract":"

    Type of model that is being transferred

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferP6update4withy0C4TypeQz_tF":{"name":"update(with:)","abstract":"

    Updates view with model.

    ","parent_name":"ModelTransfer"},"Protocols/ModelTransfer.html#/s:14DTModelStorage13ModelTransferPAAE14modelConditionyAA07MappingF0OSb10Foundation9IndexPathV_0C4TypeQztcFZ":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ModelTransfer"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP23storageDidPerformUpdateyyAA0bG0CF":{"name":"storageDidPerformUpdate(_:)","abstract":"

    Transfers data storage updates.

    ","parent_name":"StorageUpdating"},"Protocols/StorageUpdating.html#/s:14DTModelStorage0B8UpdatingP21storageNeedsReloadingyyF":{"name":"storageNeedsReloading()","abstract":"

    Method is called when UI needs to be fully updated for data storage changes.

    ","parent_name":"StorageUpdating"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP0C0Qa":{"name":"Anomaly","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP13anomalyActionyy0C0Qzcvp":{"name":"anomalyAction","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP06reportC0yy0C0QzF":{"name":"reportAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerP07silenceC0yy0C0QzF":{"name":"silenceAnomaly(_:)","abstract":"

    Undocumented

    ","parent_name":"AnomalyHandler"},"Protocols/AnomalyHandler.html#/s:14DTModelStorage14AnomalyHandlerPAAE07silenceC014usingConditionySb0C0Qzc_tF":{"name":"silenceAnomaly(usingCondition:)","abstract":"

    Silences anomalies, based on provided condition. If this condition returns true, anomalyHandler will not be called for this anomaly.

    ","parent_name":"AnomalyHandler"},"Protocols/AccumulationStrategy.html#/s:14DTModelStorage20AccumulationStrategyP10accumulate8oldItems03newG0Sayqd__GAG_AGtAA18EntityIdentifiableRd__lF":{"name":"accumulate(oldItems:newItems:)","abstract":"

    Accumulate oldItems and newItems into resulting array.

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

    Strategy to accumulate oldItems and newItems into resulting array.

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

    AnomalyHandler protocol serves as interface for various anomaly handlers.

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

    StorageUpdating protocol is used to transfer data storage updates.

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

    Protocol used to pass model data to your cell or supplementary view. Every cell or supplementary view you have should conform to this protocol.

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

    Section protocol defines an interface for sections returned by DTModelStorage object."},"Protocols/SectionLocationIdentifyable.html":{"name":"SectionLocationIdentifyable","abstract":"

    Identifies index of section in storage

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

    Allows access to supplementaries for specific section

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

    A type that can be identified by identifier.

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

    Algorithm that requires elements in collection to be Hashable

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

    Algorithm that requires elements in collection to be Equatable

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

    Storage protocol is used to define common interface for storage classes.

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

    SupplementaryStorage is used to handle header/footer and supplementary models in storage.

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

    Type-erased interface for ViewModelMapping generic class.

    "},"Extensions/UINib.html#/s:So5UINibC14DTModelStorageE9nibExists11withNibName8inBundleSbSS_So8NSBundleCtFZ":{"name":"nibExists(withNibName:inBundle:)","abstract":"

    Returns true, if nib file with nibName exists in bundle.

    ","parent_name":"UINib"},"Extensions/UINib.html":{"name":"UINib"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO4noneyA2CmF":{"name":"none","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO7sectionyACSicACmF":{"name":"section(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/MappingCondition.html#/s:14DTModelStorage16MappingConditionO6customyACSb10Foundation9IndexPathV_yptccACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"MappingCondition"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO4cellyA2CmF":{"name":"cell","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO013supplementaryC0yACSS_tcACmF":{"name":"supplementaryView(kind:)","abstract":"

    Undocumented

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17supplementaryKindSSSgyF":{"name":"supplementaryKind()","abstract":"

    Returns supplementaryKind for .supplementaryView case, nil for .cell case.

    ","parent_name":"ViewType"},"Enums/ViewType.html#/s:14DTModelStorage8ViewTypeO17mappingCandidates3for9withModel2atSayAA0cI15MappingProtocol_pGAI_yp10Foundation9IndexPathVtF":{"name":"mappingCandidates(for:withModel:at:)","abstract":"

    Returns mappings candidates of correct viewType, for which modelTypeCheckingBlock with model returns true.

    ","parent_name":"ViewType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6deleteyA2CmF":{"name":"delete","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO4moveyA2CmF":{"name":"move","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6insertyA2CmF":{"name":"insert","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/ChangeType.html#/s:14DTModelStorage10ChangeTypeO6updateyA2CmF":{"name":"update","abstract":"

    Undocumented

    ","parent_name":"ChangeType"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6deleteyACSicACmF":{"name":"delete(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6insertyACSicACmF":{"name":"insert(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO4moveyACSi_SitcACmF":{"name":"move(from:to:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/SingleSectionOperation.html#/s:14DTModelStorage22SingleSectionOperationO6updateyACSicACmF":{"name":"update(_:)","abstract":"

    Undocumented

    ","parent_name":"SingleSectionOperation"},"Enums/RuntimeHelper.html#/s:14DTModelStorage13RuntimeHelperO25recursivelyUnwrapAnyValueyypSgypFZ":{"name":"recursivelyUnwrapAnyValue(_:)","abstract":"

    Returns recursively unwrapped any optional.

    ","parent_name":"RuntimeHelper"},"Enums/MemoryStorageError/SearchReason.html#/s:14DTModelStorage06MemoryB5ErrorO12SearchReasonO12itemNotFoundyAEyp_tcAEmF":{"name":"itemNotFound(item:)","abstract":"

    Undocumented

    ","parent_name":"SearchReason"},"Enums/MemoryStorageError/InsertionReason.html#/s:14DTModelStorage06MemoryB5ErrorO15InsertionReasonO15indexPathTooBigyAE10Foundation05IndexH0VcAEmF":{"name":"indexPathTooBig(_:)","abstract":"

    Undocumented

    ","parent_name":"InsertionReason"},"Enums/MemoryStorageError/InsertionReason.html":{"name":"InsertionReason","abstract":"

    Errors that can happen when inserting items into memory storage - insertItem(_:to:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError/SearchReason.html":{"name":"SearchReason","abstract":"

    Errors that can happen when replacing item in memory storage - replaceItem(_:with:) method

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO15insertionFailedyA2C15InsertionReasonO_tcACmF":{"name":"insertionFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO12searchFailedyA2C12SearchReasonO_tcACmF":{"name":"searchFailed(reason:)","abstract":"

    Undocumented

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageError.html#/s:14DTModelStorage06MemoryB5ErrorO20localizedDescriptionSSvp":{"name":"localizedDescription","abstract":"

    Description of error

    ","parent_name":"MemoryStorageError"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO24insertionIndexPathTooBigyAC10Foundation0fG0V_SitcACmF":{"name":"insertionIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    When inserting item to indexPath, there were only countOfElementsInSection items in section

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31batchInsertionItemCountMismatchyACSi_SitcACmF":{"name":"batchInsertionItemCountMismatch(itemsCount:indexPathsCount:)","abstract":"

    When inserting batch of items, number of items and number of indexPaths was different

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO017replaceItemFailedF8NotFoundyACSS_tcACmF":{"name":"replaceItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to replace item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO016removeItemFailedF8NotFoundyACSS_tcACmF":{"name":"removeItemFailedItemNotFound(itemDescription:)","abstract":"

    Attempt to remove item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO014moveItemFailedF8NotFoundyAC10Foundation9IndexPathV_tcACmF":{"name":"moveItemFailedItemNotFound(indexPath:)","abstract":"

    Attempt to move item, that is not found in storage

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO29moveItemFailedIndexPathTooBigyAC10Foundation0hI0V_SitcACmF":{"name":"moveItemFailedIndexPathTooBig(indexPath:countOfElementsInSection:)","abstract":"

    Attempt to move item to too big indexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO31moveItemFailedInvalidIndexPathsyAC10Foundation0I4PathV_AGS2itcACmF":{"name":"moveItemFailedInvalidIndexPaths(sourceIndexPath:destinationIndexPath:sourceElementsInSection:destinationElementsInSection:)","abstract":"

    Inconsistent indexPaths when moving item from sourceIndexPath to destinationIndexPath.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Debug information for MemoryStorageAnomaly.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html#/s:14DTModelStorage06MemoryB7AnomalyO11descriptionSSvp":{"name":"description","abstract":"

    Short description for MemoryStorageAnomaly. Useful for sending to analytics, which might have character limit.

    ","parent_name":"MemoryStorageAnomaly"},"Enums/MemoryStorageAnomaly.html":{"name":"MemoryStorageAnomaly","abstract":"

    MemoryStorageAnomaly represents various errors and unwanted behaviors that can happen when using MemoryStorage class.

    "},"Enums/MemoryStorageError.html":{"name":"MemoryStorageError","abstract":"

    This struct contains error types that can be thrown for various MemoryStorage errors

    "},"Enums/RuntimeHelper.html":{"name":"RuntimeHelper","abstract":"

    This class is used to introspect Swift and Objective-C types, providing necessary mapping information.

    "},"Enums/SingleSectionOperation.html":{"name":"SingleSectionOperation","abstract":"

    Edit operation in single section.

    "},"Enums/ChangeType.html":{"name":"ChangeType","abstract":"

    Possible change types for objects and sections

    "},"Enums/ViewType.html":{"name":"ViewType","abstract":"

    ViewType enum allows differentiating between mappings for different kinds of views. For example, UICollectionView headers might use ViewType.supplementaryView(UICollectionElementKindSectionHeader) value.

    "},"Enums/MappingCondition.html":{"name":"MappingCondition","abstract":"

    Defines condition, under which mapping is going to be applied.

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionHeaderSSvp":{"name":"DTTableViewElementSectionHeader","abstract":"

    Suggested supplementary kind for UITableView header

    "},"Global%20Variables.html#/s:14DTModelStorage31DTTableViewElementSectionFooterSSvp":{"name":"DTTableViewElementSectionFooter","abstract":"

    Suggested supplementary kind for UITableView footer

    "},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewTypeAA0cG0Ovp":{"name":"viewType","abstract":"

    View type for this mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9viewClassyXlXpvp":{"name":"viewClass","abstract":"

    View class, that will be used for current mapping

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC7xibNameSSSgvp":{"name":"xibName","abstract":"

    Xib name for mapping. This value will not be nil only if XIBs are used for this particular mapping.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC6bundleSo8NSBundleCvp":{"name":"bundle","abstract":"

    Bundle in which resources for this mapping will be searched for. For example, DTTableViewManager uses this property to get bundle, from which xib file for UITableViewCell will be retrieved. Defaults to Bundle(for: T.self).","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC22modelTypeCheckingBlockySbypcvp":{"name":"modelTypeCheckingBlock","abstract":"

    Type checking block, that will verify whether passed model should be mapped to viewClass.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC09modelTypeG13CheckingBlockySbypXpcvp":{"name":"modelTypeTypeCheckingBlock","abstract":"

    Closure, that can be used to check model type when model is not available(generic context for example, when model Type is available only).

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC11updateBlockyyyp_yptcvp":{"name":"updateBlock","abstract":"

    Type-erased update block, that will be called when ModelTransfer update(with:) method needs to be executed.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9conditionAA0E9ConditionOvp":{"name":"condition","abstract":"

    Mapping condition, under which this mapping is going to work. Defaults to .none.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC15reuseIdentifierSSvp":{"name":"reuseIdentifier","abstract":"

    Reuse identifier to be used for reusable views. Mappings for UICollectionViewCell and UICollectionReusableView on iOS 14 / tvOS 14 and higher ignore this parameter unless you are using storyboard prototyped cells or supplementary views.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC26cellRegisteredByStoryboardSbvp":{"name":"cellRegisteredByStoryboard","abstract":"

    If cell is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC35supplementaryRegisteredByStoryboardSbvp":{"name":"supplementaryRegisteredByStoryboard","abstract":"

    If supplementary view is designed in storyboard, and thus don’t require explicit UITableView/UICollectionView registration, please set this property to true. Defaults to false.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC9reactionsSayAA13EventReactionCGvp":{"name":"reactions","abstract":"

    Event reactions, attached to current mapping instance

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC14modelConditionyAA0eG0OSb10Foundation9IndexPathV_q_tcF":{"name":"modelCondition(_:)","abstract":"

    Returns custom MappingCondition that allows to customize mappings based on IndexPath and ModelType.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC8viewType0F5Class7xibName12mappingBlockACyxq_GAA0cG0O_qd__mSSSgyAHcSgtcAA0D8TransferRd__lufc":{"name":"init(viewType:viewClass:xibName:mappingBlock:)","abstract":"

    Undocumented

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzrlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo012UICollectionC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC17cellConfiguration7mappingACyxq_Gyx_q_10Foundation9IndexPathVtc_yAFcSgtcSo07UITableC4CellCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(cellConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableViewCell registration. This initializer is used, when UICollectionViewCell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzrlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzrlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind26supplementaryConfiguration7mappingACyxq_GSS_yx_q_10Foundation9IndexPathVtcyAGcSgtcSo020UICollectionReusableC0CRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:supplementaryConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UICollectionReusableView registration. This initializer is used, when UICollectionSupplementaryView conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC4kind25headerFooterConfiguration7mappingACyxq_GSS_yx_q_SitcyAGcSgtcSo6UIViewCRbzAA0D8TransferRz0D4TypeQzRs_rlufc":{"name":"init(kind:headerFooterConfiguration:mapping:)","abstract":"

    Creates ViewModelMapping for UITableView header/footer registration. This initializer is used when header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC10updateCell4cell2at4withyyp_10Foundation9IndexPathVyptF":{"name":"updateCell(cell:at:with:)","abstract":"

    Update cell at indexPath with model. This can be used in scenarios where you want to update a cell, but animations are not required.","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo07UITablecI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from tableView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo6UIViewCSgSo07UITableC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls headerFooterConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC29dequeueConfiguredReusableCell3for5model9indexPathSo012UICollectioncI0CSgSo0nC0C_yp10Foundation05IndexM0VtF":{"name":"dequeueConfiguredReusableCell(for:model:indexPath:)","abstract":"

    Dequeues reusable cell for model, indexPath from collectionView. Calls cellConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this cell conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/ViewModelMapping.html#/s:14DTModelStorage16ViewModelMappingC038dequeueConfiguredReusableSupplementaryC03for4kind5model9indexPathSo012UICollectionhC0CSgSo0oC0C_SSyp10Foundation05IndexN0VtF":{"name":"dequeueConfiguredReusableSupplementaryView(for:kind:model:indexPath:)","abstract":"

    Dequeues reusable supplementary view for model, indexPath from tableView. Calls supplementaryConfiguration closure, that was passed to initializer, then calls ModelTransfer.update(with:) if this header/footer conforms to ModelTransfer protocol.

    ","parent_name":"ViewModelMapping"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC13objectChangesSayAA10ChangeTypeO_Say10Foundation9IndexPathVGtGvp":{"name":"objectChanges","abstract":"

    Object changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14sectionChangesSayAA10ChangeTypeO_SaySiGtGvp":{"name":"sectionChanges","abstract":"

    Section changes in update, in order of occurence

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC14updatedObjectsSDy10Foundation9IndexPathVypGvp":{"name":"updatedObjects","abstract":"

    Objects that were updated, with initial index paths","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC33containsDeferredDatasourceUpdatesSbvp":{"name":"containsDeferredDatasourceUpdates","abstract":"

    If update contains deferred datasource updates, they need to be applied before applying any animations.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC25enqueuedDatasourceUpdatesSayyACKcGvp":{"name":"enqueuedDatasourceUpdates","abstract":"

    Enqueued datasource updates for later execution. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateCACycfc":{"name":"init()","abstract":"

    Create an empty update.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Returns true, if update is empty.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC30applyDeferredDatasourceUpdatesyyF":{"name":"applyDeferredDatasourceUpdates()","abstract":"

    Call this method to apply all deferred datasource updates.","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC017enqueueDatasourceC0yyyACKcF":{"name":"enqueueDatasourceUpdate(_:)","abstract":"

    Enqueues datasource update for later execution into enqueuedDatasourceUpdates property. This can be used by UICollectionView and UITableView batch updates mechanisms to update datasources inside of performBatchUpdates(_:completion:) method.

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

    Compare StorageUpdates

    ","parent_name":"StorageUpdate"},"Classes/StorageUpdate.html#/s:14DTModelStorage0B6UpdateC11descriptionSSvp":{"name":"description","abstract":"

    Description of object changes

    ","parent_name":"StorageUpdate"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in a storage

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C13numberOfItems02inD0S2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsSayxGvp":{"name":"items","abstract":"

    Array of items, that section contains.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C5itemsACyxGSayxG_tcfc":{"name":"init(items:)","abstract":"

    Creates storage with array of items. Do not call this method directly. Instead use concrete subclasses of SingleSectionStorage, such as SingleSectionEquatableStorage.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve item at given indexPath.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Abstract method to calculate diffs. Do not use this method directly. Instead, use subclassed method, for example SingleSectionEquatableStorage.calculateDiffs(to:).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8setItemsyySayxGF":{"name":"setItems(_:)","abstract":"

    Replaces items with newItems, collecting changes along the way. Changes are calculated using calculateDiffs(to:) method and delivered to StorageUpdating delegate, which can animate changes in resulting UI(for example UITableView or UICollectionView).

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionStorage.html#/s:14DTModelStorage013SingleSectionB0C8addItemsyySayxG_AA20AccumulationStrategy_ptF":{"name":"addItems(_:_:)","abstract":"

    Adds newItems on top of items, using specified accumulation strategy.

    ","parent_name":"SingleSectionStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Hashable.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of HashableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionHashableStorage.html#/s:14DTModelStorage021SingleSectionHashableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionHashableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C6differAA0E16DiffingAlgorithm_pvp":{"name":"differ","abstract":"

    Diffing algorithm that requires all it’s elements to be Equatable.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C5items6differACyxGSayxG_AA0E16DiffingAlgorithm_ptcfc":{"name":"init(items:differ:)","abstract":"

    Creates storage with items and concrete implementation of EquatableDiffingAlgorithm - differ.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SingleSectionEquatableStorage.html#/s:14DTModelStorage022SingleSectionEquatableB0C14calculateDiffs2toSayAA0cD9OperationOGSayxG_tF":{"name":"calculateDiffs(to:)","abstract":"

    Calculate diffs between items and newItems.

    ","parent_name":"SingleSectionEquatableStorage"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC4item2atypSgSi_tF":{"name":"item(at:)","abstract":"

    Returns item at index, if it exists, nil otherwise.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsSayypGvp":{"name":"items","abstract":"

    Items for current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC23sectionLocationDelegateAA0cF12Identifyable_pSgvp":{"name":"sectionLocationDelegate","abstract":"

    delegate, that knows about current section index in storage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC07currentC5IndexSiSgvp":{"name":"currentSectionIndex","abstract":"

    section index of current section in MemoryStorage.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5itemsACSayypG_tcfc":{"name":"init(items:)","abstract":"

    Creates section model.

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC8setItemsyySayxGlF":{"name":"setItems(_:)","abstract":"

    Undocumented

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC5items6ofTypeSayxGxm_tlF":{"name":"items(ofType:)","abstract":"

    Returns items of type in current section

    ","parent_name":"SectionModel"},"Classes/SectionModel.html#/s:14DTModelStorage12SectionModelC13numberOfItemsSivp":{"name":"numberOfItems","abstract":"

    Number of items in current section

    ","parent_name":"SectionModel"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13defaultActionyyAA0cbD0OcvpZ":{"name":"defaultAction","abstract":"

    Default action to perform when anomaly is detected. Prints debugDescription of anomaly by default.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerC13anomalyActionyyAA0cbD0Ocvp":{"name":"anomalyAction","abstract":"

    Action to perform when anomaly is detected. Defaults to defaultAction.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorageAnomalyHandler.html#/s:14DTModelStorage06MemoryB14AnomalyHandlerCACycfc":{"name":"init()","abstract":"

    Creates MemoryStorageAnomalyHandler.

    ","parent_name":"MemoryStorageAnomalyHandler"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14anomalyHandlerAA0cb7AnomalyE0Cvp":{"name":"anomalyHandler","abstract":"

    Anomaly handler, that handles reported by MemoryStorage anomalies.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8sectionsSayAA7Section_pGvp":{"name":"sections","abstract":"

    sections of MemoryStorage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C12sectionIndex3forSiSgAA7Section_p_tF":{"name":"sectionIndex(for:)","abstract":"

    Returns index of section or nil, if section is now found

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C18totalNumberOfItemsSivp":{"name":"totalNumberOfItems","abstract":"

    Returns total number of items contained in all MemoryStorage sections

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns item at indexPath or nil, if it is not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8setItems_10forSectionySayxG_SitlF":{"name":"setItems(_:forSection:)","abstract":"

    Sets items for section at index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C22setItemsForAllSectionsyySaySayxGGlF":{"name":"setItemsForAllSections(_:)","abstract":"

    Sets items for sections in memory storage. This method creates all required sections, if necessary.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10setSection_03forE0yAA0E5ModelC_SitF":{"name":"setSection(_:forSection:)","abstract":"

    Sets section for index. This will reload UI after updating

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C13insertSection_7atIndexyAA0E5ModelC_SitF":{"name":"insertSection(_:atIndex:)","abstract":"

    Inserts section at sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8addItems_9toSectionySayxG_SitlF":{"name":"addItems(_:toSection:)","abstract":"

    Adds items to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7addItem_9toSectionyx_SitlF":{"name":"addItem(_:toSection:)","abstract":"

    Adds item to section with section index.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10insertItem_2toyx_10Foundation9IndexPathVtKlF":{"name":"insertItem(_:to:)","abstract":"

    Inserts item to indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2atySayxG_10Foundation9IndexPathVtKlF":{"name":"insertItems(_:at:)","abstract":"

    Inserts contents of items at indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11insertItems_2toySayxG_Say10Foundation9IndexPathVGtlF":{"name":"insertItems(_:to:)","abstract":"

    Inserts items to indexPaths

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10reloadItemyyxSQRzlF":{"name":"reloadItem(_:)","abstract":"

    Reloads item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11replaceItem_4withyx_yptKSQRzlF":{"name":"replaceItem(_:with:)","abstract":"

    Replace item itemToReplace with replacingItem.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C10removeItemyyxKSQRzlF":{"name":"removeItem(_:)","abstract":"

    Removes item.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItemsyySayxGSQRzlF":{"name":"removeItems(_:)","abstract":"

    Removes items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems2atySay10Foundation9IndexPathVG_tF":{"name":"removeItems(at:)","abstract":"

    Removes items at indexPaths.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14deleteSectionsyy10Foundation8IndexSetVF":{"name":"deleteSections(_:)","abstract":"

    Deletes indexes from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11moveSection_02toE0ySi_SitF":{"name":"moveSection(_:toSection:)","abstract":"

    Moves section from sourceSectionIndex to destinationSectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C8moveItem2at2toy10Foundation9IndexPathV_AItF":{"name":"moveItem(at:to:)","abstract":"

    Moves item from source indexPath to destination indexPath.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C24moveItemWithoutAnimation4from2toy10Foundation9IndexPathV_AItF":{"name":"moveItemWithoutAnimation(from:to:)","abstract":"

    Moves item from sourceIndexPath to destinationIndexPath without animations.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C14removeAllItemsyyF":{"name":"removeAllItems()","abstract":"

    Removes all items from storage.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C11removeItems11fromSectionySi_tF":{"name":"removeItems(fromSection:)","abstract":"

    Remove items from section with sectionIndex.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C5items9inSectionSayypGSgSi_tF":{"name":"items(inSection:)","abstract":"

    Returns items in section with section index, or nil if section does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C9indexPath7forItem10Foundation05IndexE0VSgx_tSQRzlF":{"name":"indexPath(forItem:)","abstract":"

    Returns indexPath of searchableItem in MemoryStorage or nil, if it’s not found.

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C7section7atIndexAA12SectionModelCSgSi_tF":{"name":"section(atIndex:)","abstract":"

    Returns section at sectionIndex or nil, if it does not exist

    ","parent_name":"MemoryStorage"},"Classes/MemoryStorage.html#/s:14DTModelStorage06MemoryB0C23updateWithoutAnimationsyyyyXEF":{"name":"updateWithoutAnimations(_:)","abstract":"

    Runs block of actions without notifying self.delegate.

    ","parent_name":"MemoryStorage"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC09reaction5D0ypyp_ypypypyptcSgvp":{"name":"reaction5Arguments","abstract":"

    Type-erased reaction with 5 arguments

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC_9modelType11argumentOne0I3Two9signature_ACxm_q_mq0_mq1_mSSq2_q0__q1_xq_10Foundation9IndexPathVtctcr3_lufc":{"name":"init(_:modelType:argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates five argument event reaction for View/Cell model mapped events.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FiveArgumentsEventReaction.html#/s:14DTModelStorage26FiveArgumentsEventReactionC011performWithD0yypyp_ypypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FiveArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC09reaction4D0ypyp_ypypyptcSgvp":{"name":"reaction4Arguments","abstract":"

    Type-erased reaction with 4 arguments

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC_9modelType8argument9signature_ACxm_q_mq0_mSSq1_q0__xq_10Foundation9IndexPathVtctcr2_lufc":{"name":"init(_:modelType:argument:signature:_:)","abstract":"

    Creates four argument event reaction for View/Cell mapped reactions.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/FourArgumentsEventReaction.html#/s:14DTModelStorage26FourArgumentsEventReactionC011performWithD0yypyp_ypypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"FourArgumentsEventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reactionypyp_ypyptcSgvp":{"name":"reaction","abstract":"

    3 arguments reaction block with all arguments type-erased.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC15methodSignatureSSvp":{"name":"methodSignature","abstract":"

    Objective-C method signature

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8viewType05modelF09signature_ACxm_q_mSSq0_x_q_10Foundation9IndexPathVtctcr1_lufc":{"name":"init(viewType:modelType:signature:_:)","abstract":"

    Creates reaction with signature.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9modelType9signature_ACxm_SSq_x_10Foundation9IndexPathVtctcr0_lufc":{"name":"init(modelType:signature:_:)","abstract":"

    Creates reaction with signature, viewType and modelType.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC9signature_ACSS_xyctclufc":{"name":"init(signature:_:)","abstract":"

    Creates no argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8argument9signature_ACxm_SSq_xctcr0_lufc":{"name":"init(argument:signature:_:)","abstract":"

    Creates a single argument event reaction.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC11argumentOne0E3Two9signature_ACxm_q_mSSq0_x_q_tctcr1_lufc":{"name":"init(argumentOne:argumentTwo:signature:_:)","abstract":"

    Creates two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC20performWithArgumentsyypyp_ypypt_tF":{"name":"performWithArguments(_:)","abstract":"

    Performs reaction with arguments.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC08unmappedD04from9signatureACSgSayACG_SStFZ":{"name":"unmappedReaction(from:signature:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_ypSgSayACG_SStFZ":{"name":"performUnmappedReaction(from:_:)","abstract":"

    Perform zero argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_8argumentypSgSayACG_SSxtlFZ":{"name":"performUnmappedReaction(from:_:argument:)","abstract":"

    Perform single argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC015performUnmappedD04from_11argumentOne0H3TwoypSgSayACG_SSxq_tr0_lFZ":{"name":"performUnmappedReaction(from:_:argumentOne:argumentTwo:)","abstract":"

    Perform two argument event reaction

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC8reaction4from9signature8forModel2at4view17supplementaryKindACSgSayAA04ViewI15MappingProtocol_pG_SSyp10Foundation9IndexPathVSo6UIViewCSgSSSgtFZ":{"name":"reaction(from:signature:forModel:at:view:supplementaryKind:)","abstract":"

    Searches for reaction using specified parameters.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC07performD04from9signature4view5model8location17supplementaryKindypSayAA24ViewModelMappingProtocol_pG_SSypSgyp10Foundation9IndexPathVSSSgtFZ":{"name":"performReaction(from:signature:view:model:location:supplementaryKind:)","abstract":"

    Performs reaction of type, signature, with view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform4ArgumentsD04from9signature8argument4view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform4ArgumentsReaction(from:signature:argument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with argument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/EventReaction.html#/s:14DTModelStorage13EventReactionC017perform5ArgumentsD04from9signature13firstArgument06secondJ04view5model8locationypSayAA24ViewModelMappingProtocol_pG_SSypypypSgyp10Foundation9IndexPathVtFZ":{"name":"perform5ArgumentsReaction(from:signature:firstArgument:secondArgument:view:model:location:)","abstract":"

    Performs reaction of type, signature, with firstArgument, secondArgument, view, model in location.

    ","parent_name":"EventReaction"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerSo09NSFetchedfG0CyxGvp":{"name":"fetchedResultsController","abstract":"

    Fetched results controller of storage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C24fetchedResultsControllerACyxGSo09NSFetchedfG0CyxG_tcfc":{"name":"init(fetchedResultsController:)","abstract":"

    Initialize CoreDataStorage with NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C16numberOfSectionsSiyF":{"name":"numberOfSections()","abstract":"

    Returns number of sections in storage.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C13numberOfItems9inSectionS2i_tF":{"name":"numberOfItems(inSection:)","abstract":"

    Returns number of items in a given section

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C4item2atypSg10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Retrieve object at index path from CoreDataStorage

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C27controllerWillChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerWillChangeContent(_:)","abstract":"

    NSFetchedResultsController is about to start changing content - we’ll start monitoring for updates.

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange2at3for12newIndexPathySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_yp10Foundation0kL0VSgSo0mnG4TypeVAPtF":{"name":"controller(_:didChange:at:for:newIndexPath:)","abstract":"

    React to specific change in NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C10controller_9didChange14atSectionIndex3forySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pG_So0lmI4Info_pSiSo0lmG4TypeVtF":{"name":"controller(_:didChange:atSectionIndex:for:)","abstract":"

    Undocumented

    ","parent_name":"CoreDataStorage"},"Classes/CoreDataStorage.html#/s:14DTModelStorage08CoreDataB0C26controllerDidChangeContentyySo26NSFetchedResultsControllerCySo20NSFetchRequestResult_pGF":{"name":"controllerDidChangeContent(_:)","abstract":"

    Finish update from NSFetchedResultsController

    ","parent_name":"CoreDataStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C07currentD0AA0bD0CSgvp":{"name":"currentUpdate","abstract":"

    Current update

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C22batchUpdatesInProgressSbvp":{"name":"batchUpdatesInProgress","abstract":"

    Batch updates are in progress. If true, update will not be finished.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C8delegateAA0B8Updating_pSgvp":{"name":"delegate","abstract":"

    Delegate for storage updates

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C14performUpdatesyyyyXEF":{"name":"performUpdates(_:)","abstract":"

    Performs update block in storage. After update is finished, delegate will be notified.","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C05startD0yyF":{"name":"startUpdate()","abstract":"

    Starts update in storage.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseUpdateDeliveringStorage.html#/s:14DTModelStorage020BaseUpdateDeliveringB0C06finishD0yyF":{"name":"finishUpdate()","abstract":"

    Finishes update.

    ","parent_name":"BaseUpdateDeliveringStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19headerModelProviderypSgSicSgvp":{"name":"headerModelProvider","abstract":"

    Returns a header model for specified section index or nil.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C19footerModelProviderypSgSicSgvp":{"name":"footerModelProvider","abstract":"

    Returns a footer model for specified section index or nil

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C26supplementaryModelProviderypSgSS_10Foundation9IndexPathVtcSgvp":{"name":"supplementaryModelProvider","abstract":"

    Returns supplementary model for specified section indexPath and supplementary kind, or nil. Setter for this property is overridden to allow calling headerModelProvider and footerModelProvider closures.

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryHeaderKindSSSgvp":{"name":"supplementaryHeaderKind","abstract":"

    Supplementary kind for header in current storage

    ","parent_name":"BaseSupplementaryStorage"},"Classes/BaseSupplementaryStorage.html#/s:14DTModelStorage017BaseSupplementaryB0C23supplementaryFooterKindSSSgvp":{"name":"supplementaryFooterKind","abstract":"

    Supplementary kind for footer in current storage

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

    BaseSupplementaryStorage is a base class, that implements common functionality for SupplementaryStorage protocol and serves as a base class for MemoryStorage, CoreDataStorage, SingleSectionStorage, RealmStorage.

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

    Base class for storage classes

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

    This class represents model storage in CoreData"},"Classes/EventReaction.html":{"name":"EventReaction","abstract":"

    Data holder for reaction

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

    Subclass of EventReaction, tuned to work with 4 arguments.

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

    Subclass of EventReaction, tuned to work with 5 arguments.

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

    Storage of models in memory.

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

    MemoryStorageAnomalyHandler handles anomalies from MemoryStorage.

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

    Data holder for single section in MemoryStorage.

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

    SingleSectionStorage that requires all it’s elements to be Equatable.

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

    SingleSectionStorage that requires all it’s elements to be Hashable.

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

    Abstract base class that represents a single section of items. Supports supplementary items to allow representing supplementary views in section.

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

    Object representing update in storage.

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

    ViewModelMapping class serves to store mappings, and capture model and cell types.

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

    The following classes are available globally.

    "},"Global%20Variables.html":{"name":"Global Variables","abstract":"

    The following global variables are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 4c816dc3..07f7cbb7 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -63,20 +63,6 @@ "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, - { - "file": "/Users/denystelezhkin/Projects/DTModelStorage/Sources/DTModelStorage/MemoryStorage.swift", - "line": 154, - "symbol": "MemoryStorage.defersDatasourceUpdates", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/denystelezhkin/Projects/DTModelStorage/Sources/DTModelStorage/ProxyDiffableDataSourceStorage.swift", - "line": 32, - "symbol": "ProxyDiffableDataSourceStorage", - "symbol_kind": "source.lang.swift.decl.class", - "warning": "undocumented" - }, { "file": "/Users/denystelezhkin/Projects/DTModelStorage/Sources/DTModelStorage/SectionModel.swift", "line": 61,